diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.c')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 0692622ee2b..b293ef0bae7 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
| @@ -68,9 +68,11 @@ static int i915_suspend(struct drm_device *dev, pm_message_t state) | |||
| 68 | i915_save_state(dev); | 68 | i915_save_state(dev); |
| 69 | 69 | ||
| 70 | /* If KMS is active, we do the leavevt stuff here */ | 70 | /* If KMS is active, we do the leavevt stuff here */ |
| 71 | if (drm_core_check_feature(dev, DRIVER_MODESET) && i915_gem_idle(dev)) { | 71 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { |
| 72 | dev_err(&dev->pdev->dev, "GEM idle failed, aborting suspend\n"); | 72 | if (i915_gem_idle(dev)) |
| 73 | return -EBUSY; | 73 | dev_err(&dev->pdev->dev, |
| 74 | "GEM idle failed, resume may fail\n"); | ||
| 75 | drm_irq_uninstall(dev); | ||
| 74 | } | 76 | } |
| 75 | 77 | ||
| 76 | intel_opregion_free(dev); | 78 | intel_opregion_free(dev); |
| @@ -108,6 +110,8 @@ static int i915_resume(struct drm_device *dev) | |||
| 108 | if (ret != 0) | 110 | if (ret != 0) |
| 109 | ret = -1; | 111 | ret = -1; |
| 110 | mutex_unlock(&dev->struct_mutex); | 112 | mutex_unlock(&dev->struct_mutex); |
| 113 | |||
| 114 | drm_irq_install(dev); | ||
| 111 | } | 115 | } |
| 112 | 116 | ||
| 113 | return ret; | 117 | return ret; |
