> 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

Reply via email to