drm/i915: PSR: Mask LPSP hw tracking back again.
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 18 Nov 2015 19:21:55 +0000 (11:21 -0800)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 24 Nov 2015 12:29:03 +0000 (13:29 +0100)
When we introduced PSR we let LPSP masked allowing us to get PSR
independently from the audio runtime PM. However in one of the
attempts to get PSR enabled by default one user reported one specific
case where he would miss screen updates if scrolling the firefox in a
Gnome environment when i915 runtime pm was enabled. So for
this specific case that (I could never create an i-g-t test case)
we decided to remove the LPSP mask and let HW tracking taking care of
this case. The mask got removed later by my
commit 09108b90f04 ("drm/i915: PSR: Remove Low Power HW tracking mask.")

So we started depending on audio driver again, what is bad.

With previous commit
"drm/i915: PSR: Let's rely more on frontbuffer tracking."
we transfered the PSR exit responsability totally to SW frontbuffer
tracking. So now can safelly shut off a bit the HW tracking, or
at least this case that makes us to depend on other drivers.

v2: Update commit message since this patch by itself doesn't solve
    the bugzilla entries.

v3: Another attempt to improve commit message.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Tested-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Damien Lespiau damien.lespiau@intel.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_psr.c

index 452ac3745560e6322a783b02fd4ebc34776ba88c..a02dd3015b91743d7fb89af41e871f71427bb6da 100644 (file)
@@ -411,9 +411,14 @@ void intel_psr_enable(struct intel_dp *intel_dp)
                                skl_psr_setup_su_vsc(intel_dp);
                }
 
-               /* Avoid continuous PSR exit by masking memup and hpd */
+               /*
+                * Per Spec: Avoid continuous PSR exit by masking MEMUP and HPD.
+                * Also mask LPSP to avoid dependency on other drivers that
+                * might block runtime_pm besides preventing other hw tracking
+                * issues now we can rely on frontbuffer tracking.
+                */
                I915_WRITE(EDP_PSR_DEBUG_CTL, EDP_PSR_DEBUG_MASK_MEMUP |
-                          EDP_PSR_DEBUG_MASK_HPD);
+                          EDP_PSR_DEBUG_MASK_HPD | EDP_PSR_DEBUG_MASK_LPSP);
 
                /* Enable PSR on the panel */
                hsw_psr_enable_sink(intel_dp);