aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaulo Zanoni <paulo.r.zanoni@intel.com>2013-08-19 12:18:08 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-08-23 08:52:33 -0400
commitbd633a7c1ca0663ba10426a0a6aeda0257cbe804 (patch)
tree226b7b2ee5fc5c06801d8a9557ffd6ce2d9fdc09
parent215733fadb87709e91b3a622d786865292c9ab11 (diff)
drm/i915: fix SDEIMR assertion when disabling LCPLL
This was causing WARNs in one machine, so instead of trying to guess exactly which hotplug bits should exist, just do the test on the non-HPD bits. We don't care about the state of the hotplug bits, we just care about the others, that need to be 1. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index a2c8cb360ae8..fc92773ef552 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5932,11 +5932,7 @@ static void assert_can_disable_lcpll(struct drm_i915_private *dev_priv)
5932 struct intel_ddi_plls *plls = &dev_priv->ddi_plls; 5932 struct intel_ddi_plls *plls = &dev_priv->ddi_plls;
5933 struct intel_crtc *crtc; 5933 struct intel_crtc *crtc;
5934 unsigned long irqflags; 5934 unsigned long irqflags;
5935 uint32_t val, pch_hpd_mask; 5935 uint32_t val;
5936
5937 pch_hpd_mask = SDE_PORTB_HOTPLUG_CPT | SDE_PORTC_HOTPLUG_CPT;
5938 if (!(dev_priv->pch_id == INTEL_PCH_LPT_LP_DEVICE_ID_TYPE))
5939 pch_hpd_mask |= SDE_PORTD_HOTPLUG_CPT | SDE_CRT_HOTPLUG_CPT;
5940 5936
5941 list_for_each_entry(crtc, &dev->mode_config.crtc_list, base.head) 5937 list_for_each_entry(crtc, &dev->mode_config.crtc_list, base.head)
5942 WARN(crtc->base.enabled, "CRTC for pipe %c enabled\n", 5938 WARN(crtc->base.enabled, "CRTC for pipe %c enabled\n",
@@ -5962,7 +5958,7 @@ static void assert_can_disable_lcpll(struct drm_i915_private *dev_priv)
5962 WARN((val & ~DE_PCH_EVENT_IVB) != val, 5958 WARN((val & ~DE_PCH_EVENT_IVB) != val,
5963 "Unexpected DEIMR bits enabled: 0x%x\n", val); 5959 "Unexpected DEIMR bits enabled: 0x%x\n", val);
5964 val = I915_READ(SDEIMR); 5960 val = I915_READ(SDEIMR);
5965 WARN((val & ~pch_hpd_mask) != val, 5961 WARN((val | SDE_HOTPLUG_MASK_CPT) != 0xffffffff,
5966 "Unexpected SDEIMR bits enabled: 0x%x\n", val); 5962 "Unexpected SDEIMR bits enabled: 0x%x\n", val);
5967 spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags); 5963 spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
5968} 5964}