Re: 2.6.25-rc2 System no longer powers off after suspend-to-disk. Screen becomes green.

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Jeff Chua <jeff.chua.linux@...>
Cc: Linus Torvalds <torvalds@...>, lkml <linux-kernel@...>, Dave Airlie <airlied@...>, Rafael J. Wysocki <rjw@...>, <linux-acpi@...>, suspend-devel List <suspend-devel@...>, Greg KH <gregkh@...>
Date: Wednesday, February 20, 2008 - 4:09 pm

On Wednesday, February 20, 2008 11:18 am Jesse Barnes wrote:

Given the way the PM core works, do we need to set a flag like this?  I really 
hope there's a better way of doing this...

Thanks,
Jesse

diff --git a/drivers/char/drm/i915_drv.c b/drivers/char/drm/i915_drv.c
index 4048f39..a2d6242 100644
--- a/drivers/char/drm/i915_drv.c
+++ b/drivers/char/drm/i915_drv.c
@@ -238,6 +238,13 @@ static void i915_restore_vga(struct drm_device *dev)
 
 }
 
+/*
+ * If we're doing a suspend to disk, we don't want to power off the device.
+ * Unfortunately, the PM core doesn't tell us if we're headed for a regular
+ * S3 state or that it's about to shut down the machine, so we use this flag.
+ */
+static int i915_hibernate;
+
 static int i915_suspend(struct drm_device *dev, pm_message_t state)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
@@ -252,6 +259,9 @@ static int i915_suspend(struct drm_device *dev, 
pm_message_t state)
 	if (state.event == PM_EVENT_PRETHAW)
 		return 0;
 
+	if (state.event == PM_EVENT_FREEZE)
+		i915_hibernate = 1;
+
 	pci_save_state(dev->pdev);
 	pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB);
 
@@ -366,7 +376,7 @@ static int i915_suspend(struct drm_device *dev, 
pm_message_t state)
 
 	i915_save_vga(dev);
 
-	if (state.event == PM_EVENT_SUSPEND) {
+	if (!i915_hibernate) {
 		/* Shut down the device */
 		pci_disable_device(dev->pdev);
 		pci_set_power_state(dev->pdev, PCI_D3hot);
@@ -385,6 +395,8 @@ static int i915_resume(struct drm_device *dev)
 	if (pci_enable_device(dev->pdev))
 		return -1;
 
+	i915_hibernate = 0;
+
 	pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB);
 
 	/* Pipe & plane A info */
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Wed Feb 20, 7:49 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Wed Feb 20, 9:07 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Thu Feb 21, 12:27 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Thu Feb 21, 6:11 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Thu Feb 21, 8:28 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Thu Feb 21, 4:30 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Jesse Barnes, (Wed Feb 20, 4:09 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Wed Feb 20, 4:14 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Wed Feb 20, 4:45 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Alexey Starikovskiy, (Wed Feb 20, 5:26 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Wed Feb 20, 6:36 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Wed Feb 20, 7:35 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Wed Feb 20, 8:13 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Wed Feb 20, 8:59 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Fri Feb 22, 1:02 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Fri Feb 22, 1:44 pm)
Re: 2.6.25-rc2 System no longer powers off after suspend-to-..., Rafael J. Wysocki, (Fri Feb 22, 7:16 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Fri Feb 22, 12:10 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Thu Feb 21, 8:31 pm)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Thu Feb 21, 8:54 pm)
i915 hibernation patch (was: Re: [Suspend-devel] 2.6.25-rc2 ..., Rafael J. Wysocki, (Fri Feb 22, 7:31 pm)
Re: i915 hibernation patch (was: Re: [Suspend-devel] 2.6.25-..., Rafael J. Wysocki, (Fri Feb 22, 9:55 pm)
[PATCH] PM: Introduce PM_EVENT_HIBERNATE (was: Re: i915 hibe..., Rafael J. Wysocki, (Sat Feb 23, 2:13 pm)
Re: [PATCH] PM: Introduce PM_EVENT_HIBERNATE (was: Re: i915 ..., Rafael J. Wysocki, (Sun Feb 24, 7:11 am)
Re: [PATCH] PM: Introduce PM_EVENT_HIBERNATE (was: Re: i915 ..., Rafael J. Wysocki, (Sun Feb 24, 7:25 am)
Re: [Suspend-devel] 2.6.25-rc2 System no longer powers off a..., Rafael J. Wysocki, (Thu Feb 21, 9:06 pm)