Skip to contentSkip to conversation

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

PATCH Eric Blade 1 participant 1 message Oct 14, 2002 Driver core

lore
Share & tools
lore

Eric Blade

author
#0 lore raw

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.

include/linux/device.h Mon Oct 14 01:48:47 2002 renamed from include/linux/device.h Sat Oct 12 00:22:19 2002 +1 -0
@@ -40,6 +40,7 @@
        SUSPEND_SAVE_STATE,
        SUSPEND_DISABLE,
        SUSPEND_POWER_DOWN,
+       SUSPEND_SHUT_DOWN,
 };
 
 enum {
drivers/base/power.c Mon Oct 14 01:49:22 2002 renamed from drivers/base/power.c Sat Oct 12 00:22:11 2002 +4 -4
@@ -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);