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.

Signed-off-by: Luca Coelho <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_cdclk.c      | 2 +-
 drivers/gpu/drm/i915/display/intel_display_wa.c | 3 +++
 drivers/gpu/drm/i915/display/intel_display_wa.h | 1 +
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c 
b/drivers/gpu/drm/i915/display/intel_cdclk.c
index 29d90d612bb2..927b05038e2b 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -4006,7 +4006,7 @@ void intel_init_cdclk_hooks(struct intel_display *display)
                display->cdclk.table = dg2_cdclk_table;
        } else if (display->platform.alderlake_p) {
                /* Wa_22011320316:adl-p[a0] */
-               if (display->platform.alderlake_p && IS_DISPLAY_STEP(display, 
STEP_A0, STEP_B0)) {
+               if (intel_display_wa(display, 22011320316)) {
                        display->cdclk.table = adlp_a_step_cdclk_table;
                        display->funcs.cdclk = &tgl_cdclk_funcs;
                } else if (display->platform.alderlake_p_raptorlake_u) {
diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c 
b/drivers/gpu/drm/i915/display/intel_display_wa.c
index 80eecfd33a28..f0311cd477a5 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.c
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.c
@@ -104,6 +104,9 @@ bool __intel_display_wa(struct intel_display *display, enum 
intel_display_wa wa,
                return intel_display_needs_wa_16025573575(display);
        case INTEL_DISPLAY_WA_22010178259:
                return DISPLAY_VER(display) == 12;
+       case INTEL_DISPLAY_WA_22011320316:
+               return display->platform.alderlake_p &&
+                       IS_DISPLAY_STEP(display, STEP_A0, STEP_B0);
        case INTEL_DISPLAY_WA_22014263786:
                return IS_DISPLAY_VERx100(display, 1100, 1400);
        case INTEL_DISPLAY_WA_22021048059:
diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h 
b/drivers/gpu/drm/i915/display/intel_display_wa.h
index 54f5ea05b293..0d0501fc276f 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.h
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.h
@@ -41,6 +41,7 @@ enum intel_display_wa {
        INTEL_DISPLAY_WA_16023588340,
        INTEL_DISPLAY_WA_16025573575,
        INTEL_DISPLAY_WA_22010178259,
+       INTEL_DISPLAY_WA_22011320316,
        INTEL_DISPLAY_WA_22014263786,
        INTEL_DISPLAY_WA_22021048059,
 };
-- 
2.51.0

Reply via email to