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_display_wa.c | 2 ++
 drivers/gpu/drm/i915/display/intel_display_wa.h | 1 +
 drivers/gpu/drm/i915/display/skl_watermark.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 cae2d852fde9..c7e572ba1c60 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.c
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.c
@@ -142,6 +142,8 @@ bool __intel_display_wa(struct intel_display *display, enum 
intel_display_wa wa,
                         IS_DISPLAY_STEP(display, STEP_A0, STEP_B0));
        case INTEL_DISPLAY_WA_22010178259:
                return DISPLAY_VER(display) == 12;
+       case INTEL_DISPLAY_WA_22010947358:
+               return display->platform.alderlake_p;
        case INTEL_DISPLAY_WA_22012278275:
                return display->platform.alderlake_p &&
                        IS_DISPLAY_STEP(display, STEP_A0, STEP_E0);
diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h 
b/drivers/gpu/drm/i915/display/intel_display_wa.h
index b6d6953e0ba3..7de1131685e8 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.h
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.h
@@ -54,6 +54,7 @@ enum intel_display_wa {
        INTEL_DISPLAY_WA_16025596647,
        INTEL_DISPLAY_WA_18034343758,
        INTEL_DISPLAY_WA_22010178259,
+       INTEL_DISPLAY_WA_22010947358,
        INTEL_DISPLAY_WA_22011320316,
        INTEL_DISPLAY_WA_22012278275,
        INTEL_DISPLAY_WA_22012358565,
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c 
b/drivers/gpu/drm/i915/display/skl_watermark.c
index 8e3031adb09f..1940d914ddd5 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -22,6 +22,7 @@
 #include "intel_display_rpm.h"
 #include "intel_display_types.h"
 #include "intel_display_utils.h"
+#include "intel_display_wa.h"
 #include "intel_dram.h"
 #include "intel_fb.h"
 #include "intel_fixed.h"
@@ -3412,7 +3413,7 @@ static u32 pipe_mbus_dbox_ctl(const struct intel_crtc 
*crtc,
        if (DISPLAY_VER(display) >= 14)
                val |= dbuf_state->joined_mbus ?
                        MBUS_DBOX_A_CREDIT(12) : MBUS_DBOX_A_CREDIT(8);
-       else if (display->platform.alderlake_p)
+       else if (intel_display_wa(display, 22010947358))
                /* Wa_22010947358:adl-p */
                val |= dbuf_state->joined_mbus ?
                        MBUS_DBOX_A_CREDIT(6) : MBUS_DBOX_A_CREDIT(4);
-- 
2.51.0

Reply via email to