[PATCH 08/10] drm/i915/hdcp: simplify HDCP GSC firmware usage selection

Kandpal, Suraj suraj.kandpal at intel.com
Wed Apr 30 04:30:56 UTC 2025



> -----Original Message-----
> From: Nikula, Jani <jani.nikula at intel.com>
> Sent: Friday, April 25, 2025 1:32 AM
> To: intel-gfx at lists.freedesktop.org; intel-xe at lists.freedesktop.org
> Cc: Nikula, Jani <jani.nikula at intel.com>; Kandpal, Suraj
> <suraj.kandpal at intel.com>
> Subject: [PATCH 08/10] drm/i915/hdcp: simplify HDCP GSC firmware usage
> selection
> 
> Just localize the GSC decision inside intel_hdcp.c, and deduplicate the
> conditions.
> 
> Cc: Suraj Kandpal <suraj.kandpal at intel.com>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>

LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal at intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_hdcp.c     | 10 ++++++----
>  drivers/gpu/drm/i915/display/intel_hdcp_gsc.c |  5 -----
> drivers/gpu/drm/i915/display/intel_hdcp_gsc.h |  1 -
>  drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      |  5 -----
>  4 files changed, 6 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c
> b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 4857685c4020..39bcf8f3d810 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -32,6 +32,8 @@
>  #include "intel_hdcp_shim.h"
>  #include "intel_pcode.h"
> 
> +#define USE_HDCP_GSC(__display)		(DISPLAY_VER(__display) >=
> 14)
> +
>  #define KEY_LOAD_TRIES	5
>  #define HDCP2_LC_RETRY_CNT			3
> 
> @@ -251,7 +253,7 @@ static bool intel_hdcp2_prerequisite(struct
> intel_connector *connector)
>  		return false;
> 
>  	/* If MTL+ make sure gsc is loaded and proxy is setup */
> -	if (intel_hdcp_gsc_cs_required(display)) {
> +	if (USE_HDCP_GSC(display)) {
>  		if (!intel_hdcp_gsc_check_status(display))
>  			return false;
>  	}
> @@ -2340,7 +2342,7 @@ static int initialize_hdcp_port_data(struct
> intel_connector *connector,
> 
>  static bool is_hdcp2_supported(struct intel_display *display)  {
> -	if (intel_hdcp_gsc_cs_required(display))
> +	if (USE_HDCP_GSC(display))
>  		return true;
> 
>  	if (!IS_ENABLED(CONFIG_INTEL_MEI_HDCP))
> @@ -2364,7 +2366,7 @@ void intel_hdcp_component_init(struct intel_display
> *display)
> 
>  	display->hdcp.comp_added = true;
>  	mutex_unlock(&display->hdcp.hdcp_mutex);
> -	if (intel_hdcp_gsc_cs_required(display))
> +	if (USE_HDCP_GSC(display))
>  		ret = intel_hdcp_gsc_init(display);
>  	else
>  		ret = component_add_typed(display->drm->dev,
> &i915_hdcp_ops, @@ -2639,7 +2641,7 @@ void
> intel_hdcp_component_fini(struct intel_display *display)
>  	display->hdcp.comp_added = false;
>  	mutex_unlock(&display->hdcp.hdcp_mutex);
> 
> -	if (intel_hdcp_gsc_cs_required(display))
> +	if (USE_HDCP_GSC(display))
>  		intel_hdcp_gsc_fini(display);
>  	else
>  		component_del(display->drm->dev, &i915_hdcp_ops); diff --git
> a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> index 1ea2c7204444..4194ef77f7c3 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> @@ -19,11 +19,6 @@ struct intel_hdcp_gsc_context {
>  	void *hdcp_cmd_out;
>  };
> 
> -bool intel_hdcp_gsc_cs_required(struct intel_display *display) -{
> -	return DISPLAY_VER(display) >= 14;
> -}
> -
>  bool intel_hdcp_gsc_check_status(struct intel_display *display)  {
>  	struct drm_i915_private *i915 = to_i915(display->drm); diff --git
> a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> index fbef56db54f2..e963c1fcc39e 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> @@ -12,7 +12,6 @@
>  struct intel_display;
>  struct intel_hdcp_gsc_context;
> 
> -bool intel_hdcp_gsc_cs_required(struct intel_display *display);  ssize_t
> intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
>  				void *msg_in, size_t msg_in_len,
>  				void *msg_out, size_t msg_out_len); diff --git
> a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> index 7712d53627f0..078916072c10 100644
> --- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> +++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> @@ -30,11 +30,6 @@ struct intel_hdcp_gsc_context {
> 
>  #define HDCP_GSC_HEADER_SIZE sizeof(struct intel_gsc_mtl_header)
> 
> -bool intel_hdcp_gsc_cs_required(struct intel_display *display) -{
> -	return DISPLAY_VER(display) >= 14;
> -}
> -
>  bool intel_hdcp_gsc_check_status(struct intel_display *display)  {
>  	struct xe_device *xe = to_xe_device(display->drm);
> --
> 2.39.5



More information about the Intel-xe mailing list