drm/i915: vlv: fix display IRQ enable/disable
We want to enable/disable display IRQs only if global i915 IRQs are enabled. To check the latter it's not enough to consult the DRM dev->irq_enabled flag, since runtime PM can disable/enable IRQs and it won't adjust this flag only the i915 specific dev_priv->pm._irqs_disabled flag. Fix this by using the proper intel_irqs_enabled() helper instead. Fortunately this didn't cause an actual problem since even if we enabled display IRQs too early (before enabling global i915 IRQs) the VLV_MASTER_IER would still be clear masking all IRQs. This issue was caught by commit 920dd15a2b2fc60d054646a8a1ffd6aeb6090e05 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Wed Aug 27 10:43:37 2014 +0200 drm/i915: WARN if interrupts aren't on in en/disable_pipestat Signed-off-by: Imre Deak <imre.deak@intel.com> Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Родитель
47bf17a7d1
Коммит
950eabaf5a
|
@ -3723,7 +3723,7 @@ void valleyview_enable_display_irqs(struct drm_i915_private *dev_priv)
|
|||
|
||||
dev_priv->display_irqs_enabled = true;
|
||||
|
||||
if (dev_priv->dev->irq_enabled)
|
||||
if (intel_irqs_enabled(dev_priv))
|
||||
valleyview_display_irqs_install(dev_priv);
|
||||
}
|
||||
|
||||
|
@ -3736,7 +3736,7 @@ void valleyview_disable_display_irqs(struct drm_i915_private *dev_priv)
|
|||
|
||||
dev_priv->display_irqs_enabled = false;
|
||||
|
||||
if (dev_priv->dev->irq_enabled)
|
||||
if (intel_irqs_enabled(dev_priv))
|
||||
valleyview_display_irqs_uninstall(dev_priv);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче