summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorEgbert Eich <eich@suse.de>2015-09-23 16:15:27 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-09-23 16:56:30 +0200
commit0706f17c307b056ff6f1848320ba82d76945a6ff (patch)
tree8cbb6ee4a94746516faac04e1eb43363aa088cee /drivers/gpu/drm/i915/i915_drv.h
parent8204502a6aa2eab8cd5779020c2881fbc6361a96 (diff)
downloadlwn-0706f17c307b056ff6f1848320ba82d76945a6ff.tar.gz
lwn-0706f17c307b056ff6f1848320ba82d76945a6ff.zip
drm/i915: Avoid race of intel_crt_detect_hotplug() with HPD interrupt, v2
An HPD interrupt may fire while we are in a function that changes the PORT_HOTPLUG_EN register - especially when an HPD interrupt storm occurs. Since the interrupt handler changes the enabled HPD lines when it detects such a storm the read-modify-write cycles may interfere. To avoid this, shiled the rmw cycles with IRQ save spinlocks. Changes since v1: - Implement a function which takes care of accessing PORT_HOTPLUG_EN. Signed-off-by: Egbert Eich <eich@suse.de> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 4e8178d34a34..ba4596e9e7eb 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2742,6 +2742,9 @@ i915_disable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
void valleyview_enable_display_irqs(struct drm_i915_private *dev_priv);
void valleyview_disable_display_irqs(struct drm_i915_private *dev_priv);
+void i915_hotplug_interrupt_update(struct drm_i915_private *dev_priv,
+ uint32_t mask,
+ uint32_t bits);
void
ironlake_enable_display_irq(struct drm_i915_private *dev_priv, u32 mask);
void