On Wed, 20 Sep 2023, Suraj Kandpal <suraj.kandpal@xxxxxxxxx> wrote: > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h > index eba2057c5a9e..e53dbe8d9048 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h > +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h > @@ -9,6 +9,8 @@ > #include <linux/err.h> > #include <linux/types.h> > > +#include "i915_drv.h" > + Please don't include i915_drv.h from headers if it can be avoided. This patch for sure has no reason to do so. > struct drm_i915_private; > > struct intel_hdcp_gsc_message { > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h > new file mode 100644 > index 000000000000..8da3c50d759f > --- /dev/null > +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.h > @@ -0,0 +1,56 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2023 Intel Corporation > + */ > + > +#ifndef __INTEL_HDCP_GSC_MESSAGE_H__ > +#define __INTEL_HDCP_GSC_MESSAGE_H__ > + > +#include <drm/i915_hdcp_interface.h> > + > +#include "intel_hdcp_gsc.h" What in this header requires including either of those headers that can't be solved with forward declatations? *Always* use forward declarations instead of #includes in headers if you can. AFAICT this only needs #include <linux/types.h> and a bunch of forward declarations. BR, Jani. > + > +bool intel_hdcp_gsc_check_status(struct drm_i915_private *i915); > +int > +intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data, > + struct hdcp2_ake_init *ake_data); > +int > +intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev, > + struct hdcp_port_data *data, > + struct hdcp2_ake_send_cert *rx_cert, > + bool *km_stored, > + struct hdcp2_ake_no_stored_km > + *ek_pub_km, > + size_t *msg_sz); > +int > +intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data, > + struct hdcp2_ake_send_hprime *rx_hprime); > +int > +intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *data, > + struct hdcp2_ake_send_pairing_info *pairing_info); > +int > +intel_hdcp_gsc_initiate_locality_check(struct device *dev, > + struct hdcp_port_data *data, > + struct hdcp2_lc_init *lc_init_data); > +int > +intel_hdcp_gsc_verify_lprime(struct device *dev, struct hdcp_port_data *data, > + struct hdcp2_lc_send_lprime *rx_lprime); > +int intel_hdcp_gsc_get_session_key(struct device *dev, > + struct hdcp_port_data *data, > + struct hdcp2_ske_send_eks *ske_data); > +int > +intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev, > + struct hdcp_port_data *data, > + struct hdcp2_rep_send_receiverid_list > + *rep_topology, > + struct hdcp2_rep_send_ack > + *rep_send_ack); > +int intel_hdcp_gsc_verify_mprime(struct device *dev, > + struct hdcp_port_data *data, > + struct hdcp2_rep_stream_ready *stream_ready); > +int intel_hdcp_gsc_enable_authentication(struct device *dev, > + struct hdcp_port_data *data); > +int > +intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data); > + > +#endif /* __INTEL_HDCP_GSC_MESSAGE_H__ */ -- Jani Nikula, Intel