PM: no suspend_prepare() phase
Subsystems (5)
PATCH 1/1 PM: no suspend_prepare() phase
[ As previously discussed. ]
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 <[email protected]>
drivers/base/power/suspend.c +0 -27
@@ -123,33 +123,6 @@ static int suspend_device_late(struct de }/** -* device_prepare_suspend - save state and prepare to suspend -* -* NOTE! Devices cannot detach at this point - not only do we -* hold the device list semaphores over the whole prepare, but -* the whole point is to do non-invasive preparatory work, not -* the actual suspend. -*/ -int device_prepare_suspend (pm_message_t state) -{ -int error =0 ; -struct device * dev; - -down (&dpm_sem); -down (&dpm_list_sem); -list_for_each_entry_reverse (dev, &dpm_active, power.entry) { -if (!dev->bus || !dev->bus->suspend_prepare) -continue ; - error = dev->bus->suspend_prepare (dev, state); -if (error) -break ; - } -up (&dpm_list_sem); -up (&dpm_sem); -return error; -} - -/** * device_suspend - Save state and stop all devices in system. * @state: Power state to put each device in. *
drivers/pci/pci-driver.c +0 -14
@@ -264,19 +264,6 @@ static int pci_device_remove(struct devireturn 0 ; } -static int pci_device_suspend_prepare (struct device * dev,pm_message_t state) -{ -struct pci_dev * pci_dev =to_pci_dev (dev); -struct pci_driver * drv = pci_dev->driver; -int i =0 ; - -if (drv && drv->suspend_prepare) { - i = drv->suspend_prepare (pci_dev, state); -suspend_report_result (drv->suspend_prepare, i); - } -return i; -} -static int pci_device_suspend (struct device * dev,pm_message_t state) {struct pci_dev * pci_dev =to_pci_dev (dev);
@@ -544,7 +531,6 @@ struct bus_type pci_bus_type = { .uevent = pci_uevent, .probe = pci_device_probe, .remove = pci_device_remove, - .suspend_prepare= pci_device_suspend_prepare, .suspend = pci_device_suspend, .suspend_late = pci_device_suspend_late, .resume_early = pci_device_resume_early,
include/linux/device.h +0 -1
@@ -52,7 +52,6 @@ struct bus_type {int (*remove)(struct device * dev);void (*shutdown)(struct device * dev); -int (*suspend_prepare)(struct device * dev,pm_message_t state);int (*suspend)(struct device * dev,pm_message_t state);int (*suspend_late)(struct device * dev,pm_message_t state);int (*resume_early)(struct device * dev);
include/linux/pci.h +0 -1
@@ -345,7 +345,6 @@ struct pci_driver {const struct pci_device_id *id_table;/* must be non-NULL for probe to be called */ int (*probe) (struct pci_dev *dev,const struct pci_device_id *id);/* New device inserted */ void (*remove) (struct pci_dev *dev);/* Device removed (NULL if not a hot-plug capable driver) */ -int (*suspend_prepare) (struct pci_dev *dev,pm_message_t state);int (*suspend) (struct pci_dev *dev,pm_message_t state);/* Device suspended */ int (*suspend_late) (struct pci_dev *dev,pm_message_t state);int (*resume_early) (struct pci_dev *dev);
kernel/power/main.c +0 -4
@@ -57,10 +57,6 @@ static int suspend_prepare(suspend_stateif (!pm_ops || !pm_ops->enter)return -EPERM ; - error =device_prepare_suspend (PMSG_SUSPEND ); -if (error) -return error; -pm_prepare_console ();disable_nonboot_cpus ();