On Thu, Feb 12, 2026 at 08:46:09PM +0200, Luca Coelho wrote:
> 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.
> 
> Acked-by: Jani Nikula <[email protected]>
> Signed-off-by: Luca Coelho <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_display_wa.c    | 2 ++
>  drivers/gpu/drm/i915/display/intel_display_wa.h    | 1 +
>  drivers/gpu/drm/i915/display/intel_modeset_setup.c | 3 ++-
>  3 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c 
> b/drivers/gpu/drm/i915/display/intel_display_wa.c
> index 3aa79e607bf8..72f645686efd 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_wa.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c
> @@ -79,6 +79,8 @@ bool __intel_display_wa(struct intel_display *display, enum 
> intel_display_wa wa,
>       case INTEL_DISPLAY_WA_13012396614:
>               return DISPLAY_VERx100(display) == 3000 ||
>                       DISPLAY_VERx100(display) == 3500;
> +     case INTEL_DISPLAY_WA_14010480278:
> +             return (IS_DISPLAY_VER(display, 10, 12));

This is now quite confusing. That w/a number only means something for
tgl+. I think if we want to start converting this kind of places someone
needs to come up with an actual plan how to deal with older platforms.

Also I'm pretty sure that even among the new platforms some w/a's are
listed with different numbers for different platforms. Has anyone
thought what we should do about that?

>       case INTEL_DISPLAY_WA_14010547955:
>               return display->platform.dg2;
>       case INTEL_DISPLAY_WA_14010685332:
> diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h 
> b/drivers/gpu/drm/i915/display/intel_display_wa.h
> index 57345d0abe1c..d8359f88de29 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_wa.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_wa.h
> @@ -30,6 +30,7 @@ enum intel_display_wa {
>       INTEL_DISPLAY_WA_1409120013,
>       INTEL_DISPLAY_WA_1409767108,
>       INTEL_DISPLAY_WA_13012396614,
> +     INTEL_DISPLAY_WA_14010480278,
>       INTEL_DISPLAY_WA_14010547955,
>       INTEL_DISPLAY_WA_14010685332,
>       INTEL_DISPLAY_WA_14011294188,
> diff --git a/drivers/gpu/drm/i915/display/intel_modeset_setup.c 
> b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> index 9b0becee221c..7ee1494a67af 100644
> --- a/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> +++ b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> @@ -25,6 +25,7 @@
>  #include "intel_display_power.h"
>  #include "intel_display_regs.h"
>  #include "intel_display_types.h"
> +#include "intel_display_wa.h"
>  #include "intel_dmc.h"
>  #include "intel_fifo_underrun.h"
>  #include "intel_modeset_setup.h"
> @@ -913,7 +914,7 @@ static void intel_early_display_was(struct intel_display 
> *display)
>        * Display WA #1185 WaDisableDARBFClkGating:glk,icl,ehl,tgl
>        * Also known as Wa_14010480278.
>        */
> -     if (IS_DISPLAY_VER(display, 10, 12))
> +     if (intel_display_wa(display, 14010480278))

>               intel_de_rmw(display, GEN9_CLKGATE_DIS_0, 0, DARBF_GATING_DIS);
>  
>       /*
> -- 
> 2.51.0

-- 
Ville Syrjälä
Intel

Reply via email to