]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/display: convert W/As in skl_watermark.c to new framework
authorLuca Coelho <luciano.coelho@intel.com>
Thu, 5 Mar 2026 09:59:19 +0000 (11:59 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Mon, 9 Mar 2026 10:32:49 +0000 (12:32 +0200)
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_display_wa.c.

Acked-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260305100100.332956-17-luciano.coelho@intel.com
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/gpu/drm/i915/display/intel_display_wa.c
drivers/gpu/drm/i915/display/intel_display_wa.h
drivers/gpu/drm/i915/display/skl_watermark.c

index f05d96b4b35f92c2a8f6c606335504569e80125e..081a4092cd13ea78e382d10d85679f5f5953a595 100644 (file)
@@ -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);
index 1f664366847df0105cc1c51b4760aec15c814d73..15fec843f15e1bc2207839718b0435ec15b7e4fd 100644 (file)
@@ -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,
index a520d492317be4ab49d3781102d5983e6a79dde1..b1f9546b8cda8e1b86ca9f13a3735e405f5e2932 100644 (file)
@@ -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, INTEL_DISPLAY_WA_22010947358))
                /* Wa_22010947358:adl-p */
                val |= dbuf_state->joined_mbus ?
                        MBUS_DBOX_A_CREDIT(6) : MBUS_DBOX_A_CREDIT(4);