drm/i915/psr: disable aux_frame_sync on psr2 exit
authorNagaraju, Vathsala <vathsala.nagaraju@intel.com>
Wed, 11 Jan 2017 15:14:33 +0000 (20:44 +0530)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Fri, 13 Jan 2017 00:35:01 +0000 (16:35 -0800)
Screen freeze observed if AUX_FRAME_SYNC is not disabled
on psr2 exit.AUX_FRAME_SYNC needed for psr2 is enabled during
psr2 entry. It must be disabled on psr2 exit.

v2: rebase

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>
Signed-off-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Patil Deepti <deepti.patil@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1484147673-2044-1-git-send-email-vathsala.nagaraju@intel.com
drivers/gpu/drm/i915/intel_psr.c

index 8827647795207f1b684c45f8531b2cab3eb636c8..d57ec780959a5087832574c2450c63794b6cecde 100644 (file)
@@ -590,6 +590,11 @@ static void hsw_psr_disable(struct intel_dp *intel_dp)
        struct drm_i915_private *dev_priv = to_i915(dev);
 
        if (dev_priv->psr.active) {
+               if (dev_priv->psr.aux_frame_sync)
+                       drm_dp_dpcd_writeb(&intel_dp->aux,
+                                       DP_SINK_DEVICE_AUX_FRAME_SYNC_CONF,
+                                       0);
+
                if (dev_priv->psr.psr2_support) {
                        I915_WRITE(EDP_PSR2_CTL,
                                I915_READ(EDP_PSR2_CTL) &
@@ -728,6 +733,10 @@ static void intel_psr_exit(struct drm_i915_private *dev_priv)
                return;
 
        if (HAS_DDI(dev_priv)) {
+               if (dev_priv->psr.aux_frame_sync)
+                       drm_dp_dpcd_writeb(&intel_dp->aux,
+                                       DP_SINK_DEVICE_AUX_FRAME_SYNC_CONF,
+                                       0);
                if (dev_priv->psr.psr2_support) {
                        val = I915_READ(EDP_PSR2_CTL);
                        WARN_ON(!(val & EDP_PSR2_ENABLE));