[Bug 98255] [bsw] unclaimed read/write to PORT_HOTPLUG_EN during init

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Oct 14 12:47:19 UTC 2016


https://bugs.freedesktop.org/show_bug.cgi?id=98255

--- Comment #1 from Chris Wilson <chris at chris-wilson.co.uk> ---
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);
+       }
 }

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20161014/36f2a8b5/attachment.html>


More information about the intel-gfx-bugs mailing list