<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:jbarnes@virtuousgeek.org" title="Jesse Barnes <jbarnes@virtuousgeek.org>"> <span class="fn">Jesse Barnes</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - [BYT] No HDMI hotplugging"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89008">bug 89008</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>NEEDINFO
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - [BYT] No HDMI hotplugging"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89008#c17">Comment # 17</a>
              on <a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - [BYT] No HDMI hotplugging"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89008">bug 89008</a>
              from <span class="vcard"><a class="email" href="mailto:jbarnes@virtuousgeek.org" title="Jesse Barnes <jbarnes@virtuousgeek.org>"> <span class="fn">Jesse Barnes</span></a>
</span></b>
        <pre>There's probably a nicer way to do this, but it seems like preserving HPD
behavior by default is the right thing to do.  Having a runtime way to disable
it would be nice though, or a config option, so if your userspace can handle
the polling we could allow the DISP2D power well to shut down.

Egbert, can you give it a try?

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 92f8300..1ffeef2 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2441,6 +2441,7 @@ struct i915_params {
     bool mmio_debug;
     bool verbose_state_checks;
     bool nuclear_pageflip;
+    bool keep_hpd_enabled;
 };
 extern struct i915_params i915 __read_mostly;

diff --git a/drivers/gpu/drm/i915/i915_params.c
b/drivers/gpu/drm/i915/i915_params.c
index 44f2262..48acf4b 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -53,6 +53,7 @@ struct i915_params i915 __read_mostly = {
     .mmio_debug = 0,
     .verbose_state_checks = 1,
     .nuclear_pageflip = 0,
+    .keep_hpd_enabled = 1,
 };

 module_param_named(modeset, i915.modeset, int, 0400);
@@ -183,3 +184,6 @@ MODULE_PARM_DESC(verbose_state_checks,
 module_param_named_unsafe(nuclear_pageflip, i915.nuclear_pageflip, bool,
0600);
 MODULE_PARM_DESC(nuclear_pageflip,
          "Force atomic modeset functionality; only planes work for now
(default: false).");
+
+module_param_named(keep_hpd_enabled, i915.keep_hpd_enabled, bool, 0600);
+MODULE_PARM_DESC(keep_hpd_enabled, "Keep hotplug detection enabled (costs some
power) (default: true)");
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c
b/drivers/gpu/drm/i915/intel_runtime_pm.c
index 6d8e29a..1d45609 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -544,6 +544,9 @@ static void vlv_display_power_well_disable(struct
drm_i915_private *dev_priv,
 {
     WARN_ON_ONCE(power_well->data != PUNIT_POWER_WELL_DISP2D);

+    if (i915.keep_hpd_enabled)
+        return;
+
     spin_lock_irq(&dev_priv->irq_lock);
     valleyview_disable_display_irqs(dev_priv);
     spin_unlock_irq(&dev_priv->irq_lock);</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are on the CC list for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>