drm/i915/dsb: Always set DSB_SKIP_WAITS_EN
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 6 Mar 2024 04:08:06 +0000 (06:08 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 7 Mar 2024 16:19:07 +0000 (18:19 +0200)
Bspec asks us to always set the DSB_SKIP_WAITS_EN bit in
DSB_CHICKEN. This seems to instruct DSB to skip vblank and
scanline waits when PSR is entered.

I don't think we have any cases currently where we would want
to enter PSR while DSB is waiting for something, but let's
set the bit anyway to align with Bspec's wishes.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240306040806.21697-4-ville.syrjala@linux.intel.com
Reviewed-by: Animesh Manna <animesh.manna@intel.com>
drivers/gpu/drm/i915/display/intel_dsb.c

index e4515bf..4baaa92 100644 (file)
@@ -343,12 +343,13 @@ static int intel_dsb_dewake_scanline(const struct intel_crtc_state *crtc_state)
 static u32 dsb_chicken(struct intel_crtc *crtc)
 {
        if (crtc->mode_flags & I915_MODE_FLAG_VRR)
-               return DSB_CTRL_WAIT_SAFE_WINDOW |
+               return DSB_SKIP_WAITS_EN |
+                       DSB_CTRL_WAIT_SAFE_WINDOW |
                        DSB_CTRL_NO_WAIT_VBLANK |
                        DSB_INST_WAIT_SAFE_WINDOW |
                        DSB_INST_NO_WAIT_VBLANK;
        else
-               return 0;
+               return DSB_SKIP_WAITS_EN;
 }
 
 static void _intel_dsb_commit(struct intel_dsb *dsb, u32 ctrl,