Commit f2888fab authored by Imre Deak's avatar Imre Deak Committed by Daniel Vetter

drm/i915: unify legacy S3 suspend and S4 freeze handlers

i915_suspend() is called from the DRM legacy S3 suspend/S4 freeze paths
and the switcheroo suspend path. For switcheroo we only ever need to
perform a full suspend (PM_EVENT_SUSPEND) and for the DRM legacy path
we can handle the S4 freeze (PM_EVENT_FREEZE) the same way as S3
suspend. The only difference atm between suspend and freeze is that
during freeze we don't disable the PCI device, but there is no reason
why we can't do so. So unify the two cases to reduce complexity.

Note that for the DRM legacy case the thaw event is not handled, so
we disable the display before creating the hibernation image and it
won't get re-enabled until reboot. We could fix this leaving the
display enabled for the image creation/writing (if we care enough
about UMS), but this can be done as a follow-up.
Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent c3c09c95
...@@ -670,11 +670,9 @@ int i915_suspend(struct drm_device *dev, pm_message_t state) ...@@ -670,11 +670,9 @@ int i915_suspend(struct drm_device *dev, pm_message_t state)
if (error) if (error)
return error; return error;
if (state.event == PM_EVENT_SUSPEND) { /* Shut down the device */
/* Shut down the device */ pci_disable_device(dev->pdev);
pci_disable_device(dev->pdev); pci_set_power_state(dev->pdev, PCI_D3hot);
pci_set_power_state(dev->pdev, PCI_D3hot);
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment