]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/display: Update DBUF_TRACKER_STATE_SERVICE only on appropriate platforms
authorRavi Kumar Vodapalli <ravi.kumar.vodapalli@intel.com>
Wed, 8 Jan 2025 20:02:10 +0000 (01:32 +0530)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 8 Jan 2025 20:19:06 +0000 (12:19 -0800)
The bspec only asks the driver to reprogram the DBUF_CTL's
DBUF_TRACKER_STATE_SERVICE field to 0x8 on DG2 and platforms with
display version 12. All other platforms should avoid reprogramming
this register at driver init.

Although we've been accidentally reprogramming DBUF_CTL on platforms
where the spec does not ask us to, that mistake has been harmless so
far because the value being programmed by the driver happened to
match the hardware's default settings.

So, update DBUF_TRACKER_STATE_SERVICE field to 0x8 only for
1. display version 12
2. DG2.
Other platforms unless stated should use their default value.

Bspec: 49213
Signed-off-by: Ravi Kumar Vodapalli <ravi.kumar.vodapalli@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250108200210.1815229-1-ravi.kumar.vodapalli@intel.com
[mattrope: Tweaked patch subject to accurately reflect content]
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
drivers/gpu/drm/i915/display/intel_display_power.c

index d3b8453a1705f2d068b45b329b5dd06075c7bb52..8e86fcbcc189b68bc2c7d1a574c3e5aea1069b56 100644 (file)
@@ -1126,9 +1126,6 @@ static void gen12_dbuf_slices_config(struct intel_display *display)
 {
        enum dbuf_slice slice;
 
-       if (display->platform.alderlake_p)
-               return;
-
        for_each_dbuf_slice(display, slice)
                intel_de_rmw(display, DBUF_CTL_S(slice),
                             DBUF_TRACKER_STATE_SERVICE_MASK,
@@ -1681,7 +1678,7 @@ static void icl_display_core_init(struct intel_display *display,
        /* 4. Enable CDCLK. */
        intel_cdclk_init_hw(display);
 
-       if (DISPLAY_VER(display) >= 12)
+       if (DISPLAY_VER(display) == 12 || display->platform.dg2)
                gen12_dbuf_slices_config(display);
 
        /* 5. Enable DBUF. */