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 e4515bf920388e317dd60e5fa1e5e40b9efa4de4..4baaa92ceaec8414b23a7df774bce5fe6d0a0139 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,