diff options
| author | David Brownell <david-b@pacbell.net> | 2006-08-30 17:09:47 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-09-26 00:08:38 -0400 |
| commit | 1d3a82af45428c5e8deaa119cdeb79611ae46371 (patch) | |
| tree | e8e5b7a03a979e149541149cab5570352b90656f | |
| parent | 1ebfd79eb46a89eacf3cbdf4a463d5d572d3557b (diff) | |
PM: no suspend_prepare() phase
Remove the new suspend_prepare() phase. It doesn't seem very usable,
has never been tested, doesn't address fault cleanup, and would need
a sibling resume_complete(); plus there are no real use cases. It
could be restored later if those issues get resolved.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| -rw-r--r-- | drivers/base/power/suspend.c | 27 | ||||
| -rw-r--r-- | drivers/pci/pci-driver.c | 14 | ||||
| -rw-r--r-- | include/linux/device.h | 1 | ||||
| -rw-r--r-- | include/linux/pci.h | 1 | ||||
| -rw-r--r-- | kernel/power/main.c | 4 |
5 files changed, 0 insertions, 47 deletions
diff --git a/drivers/base/power/suspend.c b/drivers/base/power/suspend.c index e86db83746ac..6453c25103d2 100644 --- a/drivers/base/power/suspend.c +++ b/drivers/base/power/suspend.c | |||
| @@ -118,33 +118,6 @@ static int suspend_device_late(struct device *dev, pm_message_t state) | |||
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | /** | 120 | /** |
| 121 | * device_prepare_suspend - save state and prepare to suspend | ||
| 122 | * | ||
| 123 | * NOTE! Devices cannot detach at this point - not only do we | ||
| 124 | * hold the device list semaphores over the whole prepare, but | ||
| 125 | * the whole point is to do non-invasive preparatory work, not | ||
| 126 | * the actual suspend. | ||
| 127 | */ | ||
| 128 | int device_prepare_suspend(pm_message_t state) | ||
| 129 | { | ||
| 130 | int error = 0; | ||
| 131 | struct device * dev; | ||
| 132 | |||
| 133 | down(&dpm_sem); | ||
| 134 | down(&dpm_list_sem); | ||
| 135 | list_for_each_entry_reverse(dev, &dpm_active, power.entry) { | ||
| 136 | if (!dev->bus || !dev->bus->suspend_prepare) | ||
| 137 | continue; | ||
| 138 | error = dev->bus->suspend_prepare(dev, state); | ||
| 139 | if (error) | ||
| 140 | break; | ||
| 141 | } | ||
| 142 | up(&dpm_list_sem); | ||
| 143 | up(&dpm_sem); | ||
| 144 | return error; | ||
| 145 | } | ||
| 146 | |||
| 147 | /** | ||
| 148 | * device_suspend - Save state and stop all devices in system. | 121 | * device_suspend - Save state and stop all devices in system. |
| 149 | * @state: Power state to put each device in. | 122 | * @state: Power state to put each device in. |
| 150 | * | 123 | * |
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 9e7d6ceb3805..8948ac9ab681 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c | |||
| @@ -264,19 +264,6 @@ static int pci_device_remove(struct device * dev) | |||
| 264 | return 0; | 264 | return 0; |
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | static int pci_device_suspend_prepare(struct device * dev, pm_message_t state) | ||
| 268 | { | ||
| 269 | struct pci_dev * pci_dev = to_pci_dev(dev); | ||
| 270 | struct pci_driver * drv = pci_dev->driver; | ||
| 271 | int i = 0; | ||
| 272 | |||
| 273 | if (drv && drv->suspend_prepare) { | ||
| 274 | i = drv->suspend_prepare(pci_dev, state); | ||
| 275 | suspend_report_result(drv->suspend_prepare, i); | ||
| 276 | } | ||
| 277 | return i; | ||
| 278 | } | ||
| 279 | |||
| 280 | static int pci_device_suspend(struct device * dev, pm_message_t state) | 267 | static int pci_device_suspend(struct device * dev, pm_message_t state) |
| 281 | { | 268 | { |
| 282 | struct pci_dev * pci_dev = to_pci_dev(dev); | 269 | struct pci_dev * pci_dev = to_pci_dev(dev); |
| @@ -544,7 +531,6 @@ struct bus_type pci_bus_type = { | |||
| 544 | .uevent = pci_uevent, | 531 | .uevent = pci_uevent, |
| 545 | .probe = pci_device_probe, | 532 | .probe = pci_device_probe, |
| 546 | .remove = pci_device_remove, | 533 | .remove = pci_device_remove, |
| 547 | .suspend_prepare= pci_device_suspend_prepare, | ||
| 548 | .suspend = pci_device_suspend, | 534 | .suspend = pci_device_suspend, |
| 549 | .suspend_late = pci_device_suspend_late, | 535 | .suspend_late = pci_device_suspend_late, |
| 550 | .resume_early = pci_device_resume_early, | 536 | .resume_early = pci_device_resume_early, |
diff --git a/include/linux/device.h b/include/linux/device.h index b40be6fca6fa..b3646462d6dc 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -52,7 +52,6 @@ struct bus_type { | |||
| 52 | int (*remove)(struct device * dev); | 52 | int (*remove)(struct device * dev); |
| 53 | void (*shutdown)(struct device * dev); | 53 | void (*shutdown)(struct device * dev); |
| 54 | 54 | ||
| 55 | int (*suspend_prepare)(struct device * dev, pm_message_t state); | ||
| 56 | int (*suspend)(struct device * dev, pm_message_t state); | 55 | int (*suspend)(struct device * dev, pm_message_t state); |
| 57 | int (*suspend_late)(struct device * dev, pm_message_t state); | 56 | int (*suspend_late)(struct device * dev, pm_message_t state); |
| 58 | int (*resume_early)(struct device * dev); | 57 | int (*resume_early)(struct device * dev); |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 4b2e629467c7..9514bbfe96e2 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -345,7 +345,6 @@ struct pci_driver { | |||
| 345 | const struct pci_device_id *id_table; /* must be non-NULL for probe to be called */ | 345 | const struct pci_device_id *id_table; /* must be non-NULL for probe to be called */ |
| 346 | int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); /* New device inserted */ | 346 | int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); /* New device inserted */ |
| 347 | void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */ | 347 | void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */ |
| 348 | int (*suspend_prepare) (struct pci_dev *dev, pm_message_t state); | ||
| 349 | int (*suspend) (struct pci_dev *dev, pm_message_t state); /* Device suspended */ | 348 | int (*suspend) (struct pci_dev *dev, pm_message_t state); /* Device suspended */ |
| 350 | int (*suspend_late) (struct pci_dev *dev, pm_message_t state); | 349 | int (*suspend_late) (struct pci_dev *dev, pm_message_t state); |
| 351 | int (*resume_early) (struct pci_dev *dev); | 350 | int (*resume_early) (struct pci_dev *dev); |
diff --git a/kernel/power/main.c b/kernel/power/main.c index 0c3ed6ac938e..6d295c776794 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
| @@ -57,10 +57,6 @@ static int suspend_prepare(suspend_state_t state) | |||
| 57 | if (!pm_ops || !pm_ops->enter) | 57 | if (!pm_ops || !pm_ops->enter) |
| 58 | return -EPERM; | 58 | return -EPERM; |
| 59 | 59 | ||
| 60 | error = device_prepare_suspend(PMSG_SUSPEND); | ||
| 61 | if (error) | ||
| 62 | return error; | ||
| 63 | |||
| 64 | pm_prepare_console(); | 60 | pm_prepare_console(); |
| 65 | 61 | ||
| 66 | disable_nonboot_cpus(); | 62 | disable_nonboot_cpus(); |
