<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO --- - sna: (Haswell) X-server freezes when enabling DP at docking station"
href="https://bugs.freedesktop.org/show_bug.cgi?id=71267#c11">Comment # 11</a>
on <a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO --- - sna: (Haswell) X-server freezes when enabling DP at docking station"
href="https://bugs.freedesktop.org/show_bug.cgi?id=71267">bug 71267</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>And now compiles:
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index bf961698f847..8c2b744b03a3 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1161,9 +1161,16 @@ void ironlake_edp_panel_vdd_off(struct intel_dp
*intel_dp, bool sync)
return;
WARN(!intel_dp->want_panel_vdd, "eDP VDD not forced on");
-
intel_dp->want_panel_vdd = false;
+ if (cancel_delayed_work(&intel_dp->panel_vdd_work)) {
+ struct drm_device *dev = intel_dp_to_dev(intel_dp);
+
+ mutex_unlock(&dev->mode_config.mutex);
+ cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
+ mutex_lock(&dev->mode_config.mutex);
+ }
+
if (sync) {
ironlake_panel_vdd_off_sync(intel_dp);
} else {</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>