> Subject: [PATCH v2 09/15] drm/i915/display: convert W/As in intel_fbc.c to > new framework > > Convert the low-hanging fruits of workaround checks to the workaround > framework. Instead of having display structure checks for the workarounds all > over, concentrate the checks in intel_wa.c.
*intel_display_wa.c With that fixed Reviewed-by: Suraj Kandpal <[email protected]> > > Acked-by: Jani Nikula <[email protected]> > Signed-off-by: Luca Coelho <[email protected]> > --- > drivers/gpu/drm/i915/display/intel_display_wa.c | 4 ++++ > drivers/gpu/drm/i915/display/intel_display_wa.h | 2 ++ > drivers/gpu/drm/i915/display/intel_fbc.c | 4 ++-- > 3 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c > b/drivers/gpu/drm/i915/display/intel_display_wa.c > index 798e77200751..1459e5df1dd3 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_wa.c > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c > @@ -70,6 +70,8 @@ static bool intel_display_needs_wa_16025573575(struct > intel_display *display) bool __intel_display_wa(struct intel_display > *display, > enum intel_display_wa wa, const char *name) { > switch (wa) { > + case INTEL_DISPLAY_WA_1409120013: > + return IS_DISPLAY_VER(display, 11, 12); > case INTEL_DISPLAY_WA_1409767108: > return (display->platform.alderlake_s || > (display->platform.rocketlake && > @@ -109,6 +111,8 @@ bool __intel_display_wa(struct intel_display *display, > enum intel_display_wa wa, > case INTEL_DISPLAY_WA_16011342517: > return display->platform.alderlake_p && > IS_DISPLAY_STEP(display, STEP_A0, STEP_D0); > + case INTEL_DISPLAY_WA_16011863758: > + return DISPLAY_VER(display) >= 11; > case INTEL_DISPLAY_WA_16023588340: > return intel_display_needs_wa_16023588340(display); > case INTEL_DISPLAY_WA_16025573575: > diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h > b/drivers/gpu/drm/i915/display/intel_display_wa.h > index 2e5ce21e0455..87fe404962ce 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_wa.h > +++ b/drivers/gpu/drm/i915/display/intel_display_wa.h > @@ -27,6 +27,7 @@ bool intel_display_needs_wa_16023588340(struct > intel_display *display); > * number. > */ > enum intel_display_wa { > + INTEL_DISPLAY_WA_1409120013, > INTEL_DISPLAY_WA_1409767108, > INTEL_DISPLAY_WA_13012396614, > INTEL_DISPLAY_WA_14010547955, > @@ -42,6 +43,7 @@ enum intel_display_wa { > INTEL_DISPLAY_WA_15013987218, > INTEL_DISPLAY_WA_15018326506, > INTEL_DISPLAY_WA_16011342517, > + INTEL_DISPLAY_WA_16011863758, > INTEL_DISPLAY_WA_16023588340, > INTEL_DISPLAY_WA_16025573575, > INTEL_DISPLAY_WA_22010178259, > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c > b/drivers/gpu/drm/i915/display/intel_fbc.c > index 9f39b6990bbd..a9e1dc7caa64 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbc.c > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c > @@ -184,7 +184,7 @@ static unsigned int skl_fbc_min_cfb_stride(struct > intel_display *display, > * Wa_16011863758: icl+ > * Avoid some hardware segment address miscalculation. > */ > - if (DISPLAY_VER(display) >= 11) > + if (intel_display_wa(display, 16011863758)) > stride += 64; > > /* > @@ -950,7 +950,7 @@ static void intel_fbc_program_workarounds(struct > intel_fbc *fbc) > } > > /* Wa_1409120013:icl,jsl,tgl,dg1 */ > - if (IS_DISPLAY_VER(display, 11, 12)) > + if (intel_display_wa(display, 1409120013)) > intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id), > 0, DPFC_CHICKEN_COMP_DUMMY_PIXEL); > /* > -- > 2.51.0
