<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [bsw] unclaimed read/write to PORT_HOTPLUG_EN during init"
href="https://bugs.freedesktop.org/show_bug.cgi?id=98255#c1">Comment # 1</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [bsw] unclaimed read/write to PORT_HOTPLUG_EN during init"
href="https://bugs.freedesktop.org/show_bug.cgi?id=98255">bug 98255</a>
from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
<pre>Food for thought:
diff --git a/drivers/gpu/drm/i915/intel_hotplug.c
b/drivers/gpu/drm/i915/intel_hotplug.c
index 334d47b..2fe29d8 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -219,8 +219,10 @@ static void intel_hpd_irq_storm_reenable_work(struct
work_struct *work)
}
}
}
- if (dev_priv->display.hpd_irq_setup)
- dev_priv->display.hpd_irq_setup(dev_priv);
+ if (dev_priv->display_irqs_enabled) {
+ if (dev_priv->display.hpd_irq_setup)
+ dev_priv->display.hpd_irq_setup(dev_priv);
+ }
spin_unlock_irq(&dev_priv->irq_lock);
intel_runtime_pm_put(dev_priv);
@@ -425,8 +427,10 @@ void intel_hpd_irq_handler(struct drm_i915_private
*dev_priv,
}
}
- if (storm_detected)
- dev_priv->display.hpd_irq_setup(dev_priv);
+ if (dev_priv->display_irqs_enabled) {
+ if (storm_detected)
+ dev_priv->display.hpd_irq_setup(dev_priv);
+ }
spin_unlock(&dev_priv->irq_lock);
/*
@@ -471,10 +475,16 @@ void intel_hpd_init(struct drm_i915_private *dev_priv)
* Interrupt setup is already guaranteed to be single-threaded, this is
* just to make the assert_spin_locked checks happy.
*/
- spin_lock_irq(&dev_priv->irq_lock);
- if (dev_priv->display.hpd_irq_setup)
- dev_priv->display.hpd_irq_setup(dev_priv);
- spin_unlock_irq(&dev_priv->irq_lock);
+ if (dev_priv->display_irqs_enabled) {
+ intel_runtime_pm_get(dev_priv);
+
+ spin_lock_irq(&dev_priv->irq_lock);
+ if (dev_priv->display.hpd_irq_setup)
+ dev_priv->display.hpd_irq_setup(dev_priv);
+ spin_unlock_irq(&dev_priv->irq_lock);
+
+ intel_runtime_pm_put(dev_priv);
+ }
}</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
<li>You are the assignee for the bug.</li>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>