[PATCH 1/2] drm/i915/xe3lpd: Disable HDCP Line Rekeying for Xe3

Kandpal, Suraj suraj.kandpal at intel.com
Mon Nov 4 18:10:35 UTC 2024



> -----Original Message-----
> From: Roper, Matthew D <matthew.d.roper at intel.com>
> Sent: Monday, November 4, 2024 11:25 PM
> To: Kandpal, Suraj <suraj.kandpal at intel.com>
> Cc: intel-xe at lists.freedesktop.org; intel-gfx at lists.freedesktop.org
> Subject: Re: [PATCH 1/2] drm/i915/xe3lpd: Disable HDCP Line Rekeying for Xe3
> 
> On Mon, Nov 04, 2024 at 02:01:42PM +0530, Suraj Kandpal wrote:
> > We need to disable HDCP Line Rekeying for Xe3 when we are using an
> > HDMI encoder. Also remove the Wa comment tag as this follows the bspec
> > and does not implement the wa.
> >
> > v2: add additional definition instead of function, commit message typo
> > fix and update.
> > v3: restore lost conditional from v2.
> > v4: subject line and subject message updated, fix the if ladder order,
> > fix the bit definition order.
> > v5: Add the bspec link and remove the Wa comment tag
> > v6: Rebase over new changes
> >
> > Bspec: 69964
> > Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
> 
> I think the code changes are fine now (although you seem to have dropped
> the general ladder re-order that was done in v4; was that intentional or a
> mistake?), but the subject/commit message seem misleading since the
> change this patch is making isn't changing if/when rekeying is disabled, all it's
> doing is changing the bit used.  So a commit message more along the lines of
> 
>         drm/i915/xe3lpd: Update HDCP rekying bit
> 
>         The TRANS_DDI_FUNC_CTL bit used to enable/disable HDCP rekeying
>         has moved from bit 12 (Xe2) to bit 15 (Xe3); update the RMW
>         toggle accordingly.
> 
>         Also drop the misleading workaround comment tag on this function
>         since disabling of HDCP rekeying is something that happens on
>         all platforms, not just those impacted by that workaround.
> 
> If you decide to reinstate the ladder re-order that you had on an earlier
> version of this patch, you could add another sentence like
> 
>         While we're here, also re-order the if/else ladder to use
>         standard "newest platform first" order.
> 

Sure will reladder the checks and update the commit message accordingly must have missed it
due to the rebase.

Regards,
Suraj Kandpal

> Anyway, with some kind of commit message cleanup,
> 
>         Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
> 
> 
> Matt
> 
> > ---
> >  drivers/gpu/drm/i915/display/intel_hdcp.c | 7 +++++--
> >  drivers/gpu/drm/i915/i915_reg.h           | 1 +
> >  2 files changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > index f6d42ec6949e..8bca532d1176 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > @@ -31,7 +31,6 @@
> >  #define KEY_LOAD_TRIES	5
> >  #define HDCP2_LC_RETRY_CNT			3
> >
> > -/* WA: 16022217614 */
> >  static void
> >  intel_hdcp_disable_hdcp_line_rekeying(struct intel_encoder *encoder,
> >  				      struct intel_hdcp *hdcp)
> > @@ -43,7 +42,11 @@ intel_hdcp_disable_hdcp_line_rekeying(struct
> intel_encoder *encoder,
> >  		return;
> >
> >  	if (DISPLAY_VER(display) >= 14) {
> > -		if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0,
> STEP_FOREVER))
> > +		if (DISPLAY_VER(display) >= 30)
> > +			intel_de_rmw(display,
> > +				     TRANS_DDI_FUNC_CTL(display, hdcp-
> >cpu_transcoder),
> > +				     0,
> XE3_TRANS_DDI_HDCP_LINE_REKEY_DISABLE);
> > +		else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0,
> > +STEP_FOREVER))
> >  			intel_de_rmw(display, MTL_CHICKEN_TRANS(hdcp-
> >cpu_transcoder),
> >  				     0, HDCP_LINE_REKEY_DISABLE);
> >  		else if (IS_DISPLAY_VERx100_STEP(display, 1401, STEP_B0,
> > STEP_FOREVER) || diff --git a/drivers/gpu/drm/i915/i915_reg.h
> > b/drivers/gpu/drm/i915/i915_reg.h index 22be4a731d27..c160e087972a
> > 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -3819,6 +3819,7 @@ enum skl_power_gate {
> >  #define  TRANS_DDI_PVSYNC		(1 << 17)
> >  #define  TRANS_DDI_PHSYNC		(1 << 16)
> >  #define  TRANS_DDI_PORT_SYNC_ENABLE	REG_BIT(15)
> > +#define  XE3_TRANS_DDI_HDCP_LINE_REKEY_DISABLE	REG_BIT(15)
> >  #define  TRANS_DDI_EDP_INPUT_MASK	(7 << 12)
> >  #define  TRANS_DDI_EDP_INPUT_A_ON	(0 << 12)
> >  #define  TRANS_DDI_EDP_INPUT_A_ONOFF	(4 << 12)
> > --
> > 2.34.1
> >
> 
> --
> Matt Roper
> Graphics Software Engineer
> Linux GPU Platform Enablement
> Intel Corporation


More information about the Intel-gfx mailing list