Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 353a4098 authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman
Browse files

USB: force root hub resume after power loss



This patch(as785) forces the PM core to resume a root hub after a
power loss during system sleep.  If the root hub had been suspended
before the system sleep then normally the PM core would not resume it
afterward.  Without this resume, various sorts of wakeup events (like
port change events) can get lost.

Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 71795c1d
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -1053,6 +1053,12 @@ void usb_root_hub_lost_power(struct usb_device *rhdev)
	unsigned long flags;
	unsigned long flags;


	dev_warn(&rhdev->dev, "root hub lost power or was reset\n");
	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);
	spin_lock_irqsave(&device_state_lock, flags);
	hub = hdev_to_hub(rhdev);
	hub = hdev_to_hub(rhdev);
	for (port1 = 1; port1 <= rhdev->maxchild; ++port1) {
	for (port1 = 1; port1 <= rhdev->maxchild; ++port1) {