Patch: linux-2.5.42/drivers/base/power.c - add state for SHUT_DOWN

From: Eric Blade (eblade@blackmagik.dynup.net)
Date: Mon Oct 14 2002 - 00:53:17 EST


OK, I tested this against a fresh kernel tree, not once but 4 times.
I'm not sure why people have had problems applying this.

This also fixes some slight spacing issues - if(x) vs if (x) ...

This doesn't fix the problem with IDE spinning down on reboot, but it
does fix what could potentially be problems with very low power suspend
levels in the ACPI code.

--- a/include/linux/device.h Sat Oct 12 00:22:19 2002
+++ linux/include/linux/device.h Mon Oct 14 01:48:47 2002
@@ -40,6 +40,7 @@
        SUSPEND_SAVE_STATE,
        SUSPEND_DISABLE,
        SUSPEND_POWER_DOWN,
+ SUSPEND_SHUT_DOWN,
 };

 enum {
--- a/drivers/base/power.c Sat Oct 12 00:22:11 2002
+++ linux/drivers/base/power.c Mon Oct 14 01:49:22 2002
@@ -31,7 +31,7 @@
        struct device * prev = NULL;
        int error = 0;

- if(level == SUSPEND_POWER_DOWN)
+ if (level == SUSPEND_SHUT_DOWN)
                printk(KERN_EMERG "Shutting down devices\n");
        else
                printk(KERN_EMERG "Suspending devices\n");
@@ -41,11 +41,11 @@
                struct device * dev = get_device_locked(to_dev(node));
                if (dev) {
                        spin_unlock(&device_lock);
- if(dev->driver) {
- if(level == SUSPEND_POWER_DOWN) {
- if(dev->driver->remove)
+ if (dev->driver) {
+ if (level == SUSPEND_SHUT_DOWN) {
+ if (dev->driver->remove)
                                               
dev->driver->remove(dev);
- } else if(dev->driver->suspend)
+ } else if (dev->driver->suspend)
                                        error =
dev->driver->suspend(dev,state,level);
                        }
                        if (prev)
@@ -96,7 +96,7 @@
  */
 void device_shutdown(void)
 {
- device_suspend(4, SUSPEND_POWER_DOWN);
+ device_suspend(4, SUSPEND_SHUT_DOWN);
 }

 EXPORT_SYMBOL(device_suspend);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:48 EST