On Thu, 10 Oct 2024, "Kandpal, Suraj" <suraj.kandpal@xxxxxxxxx> wrote: >> -----Original Message----- >> From: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> >> Sent: Wednesday, October 9, 2024 1:09 PM >> To: Atwood, Matthew S <matthew.s.atwood@xxxxxxxxx>; intel- >> xe@xxxxxxxxxxxxxxxxxxxxx; intel-gfx@xxxxxxxxxxxxxxxxxxxxx >> Cc: Kandpal, Suraj <suraj.kandpal@xxxxxxxxx>; Atwood, Matthew S >> <matthew.s.atwood@xxxxxxxxx> >> Subject: Re: [PATCH 06/10] drm/i915/xe3lpd: Add macro to choose >> HDCP_LINE_REKEY bit >> >> On Tue, 08 Oct 2024, Matt Atwood <matthew.s.atwood@xxxxxxxxx> wrote: >> > From: Suraj Kandpal <suraj.kandpal@xxxxxxxxx> >> > >> > DISPLAY_VER() >= 30 has the HDCP_LINE_REKEY bit redefined from bit 12 >> > to bit 14. Create a macro to choose the correct bit based on >> > DISPLAY_VER(). >> > >> > Signed-off-by: Suraj Kandpal <suraj.kandpal@xxxxxxxxx> >> > Signed-off-by: Matt Atwood <matthew.s.atwood@xxxxxxxxx> >> > --- >> > drivers/gpu/drm/i915/display/intel_hdcp.c | 5 +++-- >> > drivers/gpu/drm/i915/i915_reg.h | 2 +- >> > 2 files changed, 4 insertions(+), 3 deletions(-) >> > >> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c >> > b/drivers/gpu/drm/i915/display/intel_hdcp.c >> > index ed6aa87403e2..e9b0414590ce 100644 >> > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c >> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c >> > @@ -47,10 +47,11 @@ intel_hdcp_disable_hdcp_line_rekeying(struct >> intel_encoder *encoder, >> > intel_de_rmw(display, MTL_CHICKEN_TRANS(hdcp- >> >cpu_transcoder), >> > 0, HDCP_LINE_REKEY_DISABLE); >> > else if (IS_DISPLAY_VER_STEP(display, IP_VER(14, 1), STEP_B0, >> STEP_FOREVER) || >> > - IS_DISPLAY_VER_STEP(display, IP_VER(20, 0), >> STEP_B0, STEP_FOREVER)) >> > + IS_DISPLAY_VER_STEP(display, IP_VER(20, 0), >> STEP_B0, STEP_FOREVER) || >> > + DISPLAY_VER(display) >= 30) >> > intel_de_rmw(display, >> > TRANS_DDI_FUNC_CTL(display, hdcp- >> >cpu_transcoder), >> > - 0, >> TRANS_DDI_HDCP_LINE_REKEY_DISABLE); >> > + 0, >> TRANS_DDI_HDCP_LINE_REKEY_DISABLE(display)); >> > } >> > } >> > >> > diff --git a/drivers/gpu/drm/i915/i915_reg.h >> > b/drivers/gpu/drm/i915/i915_reg.h index d30459f8d1cb..da65500cd0c8 >> > 100644 >> > --- a/drivers/gpu/drm/i915/i915_reg.h >> > +++ b/drivers/gpu/drm/i915/i915_reg.h >> > @@ -3832,7 +3832,7 @@ enum skl_power_gate { >> > #define TRANS_DDI_EDP_INPUT_B_ONOFF (5 << 12) >> > #define TRANS_DDI_EDP_INPUT_C_ONOFF (6 << 12) >> > #define TRANS_DDI_EDP_INPUT_D_ONOFF (7 << 12) >> > -#define TRANS_DDI_HDCP_LINE_REKEY_DISABLE REG_BIT(12) >> > +#define TRANS_DDI_HDCP_LINE_REKEY_DISABLE(display) >> (DISPLAY_VER(display) >= 30 ? REG_BIT(15) : REG_BIT(12)) >> >> Do we really want to extend this style to individual bits? > > I just thought this might be cleaner should we use > TRANS_DDI_HDCP_LINE_REKEY_DISABLE > And > XE3_TRANS_DDI_HDCP_LINE_REKEY_DISABLE instead then? I think so yes. If it becomes too ugly in code, at the very least define the bits separately instead of inline in the ternary operator. BR, Jani. > > Regards, > Suraj Kandpal > >> >> BR, >> Jani. >> >> > #define TRANS_DDI_MST_TRANSPORT_SELECT_MASK >> REG_GENMASK(11, 10) >> > #define TRANS_DDI_MST_TRANSPORT_SELECT(trans) \ >> > REG_FIELD_PREP(TRANS_DDI_MST_TRANSPORT_SELECT_MASK, >> trans) >> >> -- >> Jani Nikula, Intel -- Jani Nikula, Intel