diff mbox

drm/nouveau: suspend to D3hot, not to D3cold

Message ID 52542686.6000602@canonical.com (mailing list archive)
State New, archived
Headers show

Commit Message

Maarten Lankhorst Oct. 8, 2013, 3:36 p.m. UTC
In the autumn and winter it's considered bad form to set power state to D3cold, it might
cause the device to freeze to death. This is also the case in the other seasons, so any
device in the southern hemisphere is affected too.

D3cold is not a valid state in a call to pci_set_power_state, only up to D3hot is allowed.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
---

Comments

Dave Airlie Oct. 8, 2013, 10:05 p.m. UTC | #1
On Wed, Oct 9, 2013 at 1:36 AM, Maarten Lankhorst
<maarten.lankhorst@canonical.com> wrote:
> In the autumn and winter it's considered bad form to set power state to D3cold, it might
> cause the device to freeze to death. This is also the case in the other seasons, so any
> device in the southern hemisphere is affected too.
>
> D3cold is not a valid state in a call to pci_set_power_state, only up to D3hot is allowed.

NAK,

pci_set_power_state calls pci_platform_pm->set_state, which should be
acpi_pci_set_power_state, which clearly accepts D3cold as a parameter.

The only reason the HDMI audio driver doesn't use D3cold is because it
has no acpi handle for the device.

Dave.
diff mbox

Patch

diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 89efeff..566e544 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -945,7 +945,7 @@  static int nouveau_pmops_runtime_suspend(struct device *dev)
 	ret = nouveau_do_suspend(drm_dev);
 	pci_save_state(pdev);
 	pci_disable_device(pdev);
-	pci_set_power_state(pdev, PCI_D3cold);
+	pci_set_power_state(pdev, PCI_D3hot);
 	drm_dev->switch_power_state = DRM_SWITCH_POWER_DYNAMIC_OFF;
 	return ret;
 }