aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2018-09-05 06:00:05 -0400
committerImre Deak <imre.deak@intel.com>2018-09-05 13:21:40 -0400
commitacb3ef0ee40ea657280a4a11d9f60eb2937c0dca (patch)
treedfad5d854a06e54a1165454346a0628313c3c2ff
parent288f1ced5e24abe3e768224f701a205c3a7e16f9 (diff)
drm/i915/bdw: Increase IPS disable timeout to 100ms
During IPS disabling the current 42ms timeout value leads to occasional timeouts, increase it to 100ms which seems to get rid of the problem. References: https://bugs.freedesktop.org/show_bug.cgi?id=107494 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107562 Reported-by: Diego Viola <diego.viola@gmail.com> Tested-by: Diego Viola <diego.viola@gmail.com> Cc: Diego Viola <diego.viola@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180905100005.7663-1-imre.deak@intel.com
-rw-r--r--drivers/gpu/drm/i915/intel_display.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b79ad9c57d35..1c7321dadd84 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5082,10 +5082,14 @@ void hsw_disable_ips(const struct intel_crtc_state *crtc_state)
5082 mutex_lock(&dev_priv->pcu_lock); 5082 mutex_lock(&dev_priv->pcu_lock);
5083 WARN_ON(sandybridge_pcode_write(dev_priv, DISPLAY_IPS_CONTROL, 0)); 5083 WARN_ON(sandybridge_pcode_write(dev_priv, DISPLAY_IPS_CONTROL, 0));
5084 mutex_unlock(&dev_priv->pcu_lock); 5084 mutex_unlock(&dev_priv->pcu_lock);
5085 /* wait for pcode to finish disabling IPS, which may take up to 42ms */ 5085 /*
5086 * Wait for PCODE to finish disabling IPS. The BSpec specified
5087 * 42ms timeout value leads to occasional timeouts so use 100ms
5088 * instead.
5089 */
5086 if (intel_wait_for_register(dev_priv, 5090 if (intel_wait_for_register(dev_priv,
5087 IPS_CTL, IPS_ENABLE, 0, 5091 IPS_CTL, IPS_ENABLE, 0,
5088 42)) 5092 100))
5089 DRM_ERROR("Timed out waiting for IPS disable\n"); 5093 DRM_ERROR("Timed out waiting for IPS disable\n");
5090 } else { 5094 } else {
5091 I915_WRITE(IPS_CTL, 0); 5095 I915_WRITE(IPS_CTL, 0);