Skip to content

Commit

Permalink
PM: Remove prev_state from struct dev_pm_info
Browse files Browse the repository at this point in the history
The prev_state member of struct dev_pm_info (defined in include/linux/pm.h) is
only used during a resume to check if the device's state before the suspend was
'off', in which case the device is not resumed.  However, in such cases the
decision whether or not to resume the device should be made on the driver level
and the resume callbacks from the device's bus and class should be executed
anyway (the may be needed for some things other than just powering on the
device).

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Rafael J. Wysocki authored and Greg Kroah-Hartman committed Jul 11, 2007
1 parent 2a01345 commit 515c535
Show file tree
Hide file tree
Showing 4 changed files with 1 addition and 10 deletions.
3 changes: 1 addition & 2 deletions drivers/base/power/resume.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,7 @@ void dpm_resume(void)
list_move_tail(entry, &dpm_active);

mutex_unlock(&dpm_list_mtx);
if (!dev->power.prev_state.event)
resume_device(dev);
resume_device(dev);
mutex_lock(&dpm_list_mtx);
put_device(dev);
}
Expand Down
2 changes: 0 additions & 2 deletions drivers/base/power/suspend.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,6 @@ int suspend_device(struct device * dev, pm_message_t state)
dev->parent->power.power_state.event);
}

dev->power.prev_state = dev->power.power_state;

if (dev->class && dev->class->suspend && !dev->power.power_state.event) {
suspend_device_dbg(dev, state, "class ");
error = dev->class->suspend(dev, state);
Expand Down
5 changes: 0 additions & 5 deletions drivers/usb/core/hub.c
Original file line number Diff line number Diff line change
Expand Up @@ -1109,11 +1109,6 @@ void usb_root_hub_lost_power(struct usb_device *rhdev)

dev_warn(&rhdev->dev, "root hub lost power or was reset\n");

/* Make sure no potential wakeup events get lost,
* by forcing the root hub to be resumed.
*/
rhdev->dev.power.prev_state.event = PM_EVENT_ON;

spin_lock_irqsave(&device_state_lock, flags);
hub = hdev_to_hub(rhdev);
for (port1 = 1; port1 <= rhdev->maxchild; ++port1) {
Expand Down
1 change: 0 additions & 1 deletion include/linux/pm.h
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,6 @@ struct dev_pm_info {
unsigned can_wakeup:1;
#ifdef CONFIG_PM
unsigned should_wakeup:1;
pm_message_t prev_state;
struct list_head entry;
#endif
};
Expand Down

0 comments on commit 515c535

Please sign in to comment.