diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_opregion.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_opregion.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c index 8dc1fd3115c2..dc425e74a268 100644 --- a/drivers/gpu/drm/i915/i915_opregion.c +++ b/drivers/gpu/drm/i915/i915_opregion.c | |||
@@ -386,6 +386,7 @@ int intel_opregion_init(struct drm_device *dev, int resume) | |||
386 | if (mboxes & MBOX_ASLE) { | 386 | if (mboxes & MBOX_ASLE) { |
387 | DRM_DEBUG("ASLE supported\n"); | 387 | DRM_DEBUG("ASLE supported\n"); |
388 | opregion->asle = base + OPREGION_ASLE_OFFSET; | 388 | opregion->asle = base + OPREGION_ASLE_OFFSET; |
389 | opregion_enable_asle(dev); | ||
389 | } | 390 | } |
390 | 391 | ||
391 | if (!resume) | 392 | if (!resume) |
@@ -409,7 +410,7 @@ err_out: | |||
409 | return err; | 410 | return err; |
410 | } | 411 | } |
411 | 412 | ||
412 | void intel_opregion_free(struct drm_device *dev) | 413 | void intel_opregion_free(struct drm_device *dev, int suspend) |
413 | { | 414 | { |
414 | struct drm_i915_private *dev_priv = dev->dev_private; | 415 | struct drm_i915_private *dev_priv = dev->dev_private; |
415 | struct intel_opregion *opregion = &dev_priv->opregion; | 416 | struct intel_opregion *opregion = &dev_priv->opregion; |
@@ -417,6 +418,9 @@ void intel_opregion_free(struct drm_device *dev) | |||
417 | if (!opregion->enabled) | 418 | if (!opregion->enabled) |
418 | return; | 419 | return; |
419 | 420 | ||
421 | if (!suspend) | ||
422 | acpi_video_exit(); | ||
423 | |||
420 | opregion->acpi->drdy = 0; | 424 | opregion->acpi->drdy = 0; |
421 | 425 | ||
422 | system_opregion = NULL; | 426 | system_opregion = NULL; |