@@ -913,6 +913,9 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev,
if (storm_detected)
dev_priv->display.hpd_irq_setup(dev);
+
+ queue_work(dev_priv->wq,
+ &dev_priv->hotplug_work);
}
static void gmbus_irq_handler(struct drm_device *dev)
@@ -1021,8 +1024,6 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
hotplug_status);
if (hotplug_trigger) {
intel_hpd_irq_handler(dev, hotplug_trigger, hpd_status_i915);
- queue_work(dev_priv->wq,
- &dev_priv->hotplug_work);
}
I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
I915_READ(PORT_HOTPLUG_STAT);
@@ -1051,7 +1052,6 @@ static void ibx_irq_handler(struct drm_device *dev, u32 pch_iir)
if (hotplug_trigger) {
intel_hpd_irq_handler(dev, hotplug_trigger, hpd_ibx);
- queue_work(dev_priv->wq, &dev_priv->hotplug_work);
}
if (pch_iir & SDE_AUDIO_POWER_MASK) {
int port = ffs((pch_iir & SDE_AUDIO_POWER_MASK) >>
@@ -1155,7 +1155,6 @@ static void cpt_irq_handler(struct drm_device *dev, u32 pch_iir)
if (hotplug_trigger) {
intel_hpd_irq_handler(dev, hotplug_trigger, hpd_cpt);
- queue_work(dev_priv->wq, &dev_priv->hotplug_work);
}
if (pch_iir & SDE_AUDIO_POWER_MASK_CPT) {
int port = ffs((pch_iir & SDE_AUDIO_POWER_MASK_CPT) >>
@@ -3238,8 +3237,6 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
hotplug_status);
if (hotplug_trigger) {
intel_hpd_irq_handler(dev, hotplug_trigger, hpd_status_i915);
- queue_work(dev_priv->wq,
- &dev_priv->hotplug_work);
}
I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
POSTING_READ(PORT_HOTPLUG_STAT);
@@ -3484,8 +3481,6 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
if (hotplug_trigger) {
intel_hpd_irq_handler(dev, hotplug_trigger,
IS_G4X(dev) ? hpd_status_gen4 : hpd_status_i915);
- queue_work(dev_priv->wq,
- &dev_priv->hotplug_work);
}
I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
I915_READ(PORT_HOTPLUG_STAT);