diff mbox

drm/i915: ignore hotplug event across suspend

Message ID 8082FF9BCB2B054996454E47167FF4ECCA8049@SHSMSX102.ccr.corp.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Zhang, Xiong Y March 11, 2013, 3:54 a.m. UTC
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@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c |    6 ++++++
 1 file changed, 6 insertions(+)

Comments

Daniel Vetter March 11, 2013, 11:42 p.m. UTC | #1
On Mon, Mar 11, 2013 at 03:54:11AM +0000, Zhang, Xiong Y wrote:
> 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@intel.com>

Should be fixed with

commit b8efb17b3d687695b81485f606fc4e6c35a50f9a
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Tue Feb 5 15:41:53 2013 +0800

    i915: ignore lid open event when resuming


Cheers, Daniel

> ---
>  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)
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

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)