On Thu, 29 May 2014 14:11:36 -0700 Jesse Barnes <jbar...@virtuousgeek.org> wrote:
> From: Kristen Carlson Accardi <kris...@linux.intel.com> This one was based on a patch from Imre - I just added the D0 on the resume path. > > This indicates to the firmware that it can power down various other > components or bring them back up, depending on the target system state. > > Signed-off-by: Kristen Carlson Accardi <kris...@linux.intel.com> > Signed-off-by: Jesse Barnes <jbar...@virtuousgeek.org> > --- > drivers/acpi/sleep.c | 1 + > drivers/gpu/drm/i915/i915_drv.c | 10 ++++++++++ > 2 files changed, 11 insertions(+) > > diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c > index c40fb2e..807f333 100644 > --- a/drivers/acpi/sleep.c > +++ b/drivers/acpi/sleep.c > @@ -89,6 +89,7 @@ u32 acpi_target_system_state(void) > { > return acpi_target_sleep_state; > } > +EXPORT_SYMBOL(acpi_target_system_state); > > static bool pwr_btn_event_pending; > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 433bdfa..b6211d7 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -28,6 +28,7 @@ > */ > > #include <linux/device.h> > +#include <linux/acpi.h> > #include <drm/drmP.h> > #include <drm/i915_drm.h> > #include "i915_drv.h" > @@ -491,6 +492,7 @@ static int i915_drm_freeze(struct drm_device *dev) > { > struct drm_i915_private *dev_priv = dev->dev_private; > struct drm_crtc *crtc; > + pci_power_t opregion_target_state; > > intel_runtime_pm_get(dev_priv); > > @@ -540,6 +542,12 @@ static int i915_drm_freeze(struct drm_device *dev) > > i915_save_state(dev); > > + if (acpi_target_system_state() >= ACPI_STATE_S3) > + opregion_target_state = PCI_D3cold; > + else > + opregion_target_state = PCI_D1; > + intel_opregion_notify_adapter(dev, opregion_target_state); > + > intel_opregion_fini(dev); > > console_lock(); > @@ -671,6 +679,8 @@ static int __i915_drm_thaw(struct drm_device *dev, bool > restore_gtt_mappings) > dev_priv->modeset_restore = MODESET_DONE; > mutex_unlock(&dev_priv->modeset_restore_lock); > > + intel_opregion_notify_adapter(dev, PCI_D0); > + > intel_runtime_pm_put(dev_priv); > return 0; > } _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx