diff options
author | David Brownell <david-b@pacbell.net> | 2005-05-12 12:06:27 -0700 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-05-17 14:54:55 -0700 |
commit | 0b405a0f7e4d4d18fd1fe46ddf5ff465443036ab (patch) | |
tree | 49d74df6eddfdd095c650e0af34cde7f4548a2d5 /drivers/base/power | |
parent | 82428b62aa6294ea640c7e920a9224ecaf46db65 (diff) | |
download | op-kernel-dev-0b405a0f7e4d4d18fd1fe46ddf5ff465443036ab.zip op-kernel-dev-0b405a0f7e4d4d18fd1fe46ddf5ff465443036ab.tar.gz |
[PATCH] Driver Core: remove driver model detach_state
The driver model has a "detach_state" mechanism that:
- Has never been used by any in-kernel drive;
- Is superfluous, since driver remove() methods can do the same thing;
- Became buggy when the suspend() parameter changed semantics and type;
- Could self-deadlock when called from certain suspend contexts;
- Is effectively wasted documentation, object code, and headspace.
This removes that "detach_state" mechanism; net code shrink, as well
as a per-device saving in the driver model and sysfs.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base/power')
-rw-r--r-- | drivers/base/power/power.h | 11 | ||||
-rw-r--r-- | drivers/base/power/shutdown.c | 16 |
2 files changed, 0 insertions, 27 deletions
diff --git a/drivers/base/power/power.h b/drivers/base/power/power.h index e5eda74..2e700d7 100644 --- a/drivers/base/power/power.h +++ b/drivers/base/power/power.h @@ -1,18 +1,7 @@ - - -enum { - DEVICE_PM_ON, - DEVICE_PM1, - DEVICE_PM2, - DEVICE_PM3, - DEVICE_PM_OFF, -}; - /* * shutdown.c */ -extern int device_detach_shutdown(struct device *); extern void device_shutdown(void); diff --git a/drivers/base/power/shutdown.c b/drivers/base/power/shutdown.c index 9797990..f50a08b 100644 --- a/drivers/base/power/shutdown.c +++ b/drivers/base/power/shutdown.c @@ -19,22 +19,6 @@ extern struct subsystem devices_subsys; -int device_detach_shutdown(struct device * dev) -{ - if (!dev->detach_state) - return 0; - - if (dev->detach_state == DEVICE_PM_OFF) { - if (dev->driver && dev->driver->shutdown) { - dev_dbg(dev, "shutdown\n"); - dev->driver->shutdown(dev); - } - return 0; - } - return dpm_runtime_suspend(dev, dev->detach_state); -} - - /** * We handle system devices differently - we suspend and shut them * down last and resume them first. That way, we don't do anything stupid like |