diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 658fe24961eb..fa5d0ed76378 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -428,7 +428,6 @@ static int i915_drm_freeze(struct drm_device *dev) | |||
428 | 428 | ||
429 | /* We do a lot of poking in a lot of registers, make sure they work | 429 | /* We do a lot of poking in a lot of registers, make sure they work |
430 | * properly. */ | 430 | * properly. */ |
431 | hsw_disable_package_c8(dev_priv); | ||
432 | intel_display_set_init_power(dev_priv, true); | 431 | intel_display_set_init_power(dev_priv, true); |
433 | 432 | ||
434 | drm_kms_helper_poll_disable(dev); | 433 | drm_kms_helper_poll_disable(dev); |
@@ -467,6 +466,7 @@ static int i915_drm_freeze(struct drm_device *dev) | |||
467 | i915_save_state(dev); | 466 | i915_save_state(dev); |
468 | 467 | ||
469 | intel_opregion_fini(dev); | 468 | intel_opregion_fini(dev); |
469 | intel_uncore_fini(dev); | ||
470 | 470 | ||
471 | console_lock(); | 471 | console_lock(); |
472 | intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED); | 472 | intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED); |
@@ -603,10 +603,6 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) | |||
603 | schedule_work(&dev_priv->console_resume_work); | 603 | schedule_work(&dev_priv->console_resume_work); |
604 | } | 604 | } |
605 | 605 | ||
606 | /* Undo what we did at i915_drm_freeze so the refcount goes back to the | ||
607 | * expected level. */ | ||
608 | hsw_enable_package_c8(dev_priv); | ||
609 | |||
610 | mutex_lock(&dev_priv->modeset_restore_lock); | 606 | mutex_lock(&dev_priv->modeset_restore_lock); |
611 | dev_priv->modeset_restore = MODESET_DONE; | 607 | dev_priv->modeset_restore = MODESET_DONE; |
612 | mutex_unlock(&dev_priv->modeset_restore_lock); | 608 | mutex_unlock(&dev_priv->modeset_restore_lock); |
@@ -848,6 +844,9 @@ static int i915_runtime_suspend(struct device *device) | |||
848 | 844 | ||
849 | DRM_DEBUG_KMS("Suspending device\n"); | 845 | DRM_DEBUG_KMS("Suspending device\n"); |
850 | 846 | ||
847 | if (HAS_PC8(dev)) | ||
848 | hsw_enable_pc8(dev_priv); | ||
849 | |||
851 | i915_gem_release_all_mmaps(dev_priv); | 850 | i915_gem_release_all_mmaps(dev_priv); |
852 | 851 | ||
853 | del_timer_sync(&dev_priv->gpu_error.hangcheck_timer); | 852 | del_timer_sync(&dev_priv->gpu_error.hangcheck_timer); |
@@ -862,6 +861,7 @@ static int i915_runtime_suspend(struct device *device) | |||
862 | */ | 861 | */ |
863 | intel_opregion_notify_adapter(dev, PCI_D1); | 862 | intel_opregion_notify_adapter(dev, PCI_D1); |
864 | 863 | ||
864 | DRM_DEBUG_KMS("Device suspended\n"); | ||
865 | return 0; | 865 | return 0; |
866 | } | 866 | } |
867 | 867 | ||
@@ -878,6 +878,10 @@ static int i915_runtime_resume(struct device *device) | |||
878 | intel_opregion_notify_adapter(dev, PCI_D0); | 878 | intel_opregion_notify_adapter(dev, PCI_D0); |
879 | dev_priv->pm.suspended = false; | 879 | dev_priv->pm.suspended = false; |
880 | 880 | ||
881 | if (HAS_PC8(dev)) | ||
882 | hsw_disable_pc8(dev_priv); | ||
883 | |||
884 | DRM_DEBUG_KMS("Device resumed\n"); | ||
881 | return 0; | 885 | return 0; |
882 | } | 886 | } |
883 | 887 | ||