<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>