when system enter suspend, hibernate and poweroff state, it will disable modeset firstly, then disable irq, but some system generate hotplug event between disable modeset and disable irq, this will result in S3, S4 failure. So this hotplug event should be ignored. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61508 Signed-off-by: Xiong Zhang <xiong.y.zhang at intel.com> --- drivers/gpu/drm/i915/i915_irq.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 2139714..68cc7a7 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -290,6 +290,12 @@ static void i915_hotplug_work_func(struct work_struct *work) struct drm_device *dev = dev_priv->dev; struct drm_mode_config *mode_config = &dev->mode_config; struct intel_encoder *encoder; + + /* some system generate hotplug envent when system enter sleep state. + * it should be ignored. + */ + if (dev_priv->mm.suspended) + return; /* HPD irq before everything is fully set up. */ if (!dev_priv->enable_hotplug_processing)