[Intel-gfx] [PATCH 4/4] drm/i915/display/psr2: Force a PSR exit in the frontbuffer modification flushes

José Roberto de Souza jose.souza at intel.com
Sat Jul 17 01:12:27 UTC 2021


The CURSURFLIVE() write do not works with PSR2 selective fetch, the
only way to update screen is to program PSR2 plane and transcoder
registers during the vblank.

We could use the frontbuffer dirty areas set by userspace with
drmModeDirtyFB() but we would still need to wait for the vblank to
properly update the PSR2 registers.
What I think is not worthy the development time considering that there
is so few userspace applications that makes use of this old method.

So here forcing a PSR exit in this case, this will guaratee that panel
will be properly updated.

Cc: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 1c41042841fb1..7316967aba94b 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1448,7 +1448,7 @@ static void psr_force_hw_tracking_exit(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
 
-	if (DISPLAY_VER(dev_priv) >= 9)
+	if (DISPLAY_VER(dev_priv) >= 9 && !intel_dp->psr.psr2_sel_fetch_enabled)
 		/*
 		 * Display WA #0884: skl+
 		 * This documented WA for bxt can be safely applied
-- 
2.32.0



More information about the Intel-gfx mailing list