diff options
Diffstat (limited to 'drivers/usb/core/driver.c')
| -rw-r--r-- | drivers/usb/core/driver.c | 13 | 
1 files changed, 3 insertions, 10 deletions
| diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index de98a94d1853..a6bd53ace035 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -1272,8 +1272,7 @@ static int usb_resume_both(struct usb_device *udev, pm_message_t msg)  static void choose_wakeup(struct usb_device *udev, pm_message_t msg)  { -	int			w, i; -	struct usb_interface	*intf; +	int	w;  	/* Remote wakeup is needed only when we actually go to sleep.  	 * For things like FREEZE and QUIESCE, if the device is already @@ -1285,16 +1284,10 @@ static void choose_wakeup(struct usb_device *udev, pm_message_t msg)  		return;  	} -	/* If remote wakeup is permitted, see whether any interface drivers +	/* Enable remote wakeup if it is allowed, even if no interface drivers  	 * actually want it.  	 */ -	w = 0; -	if (device_may_wakeup(&udev->dev) && udev->actconfig) { -		for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++) { -			intf = udev->actconfig->interface[i]; -			w |= intf->needs_remote_wakeup; -		} -	} +	w = device_may_wakeup(&udev->dev);  	/* If the device is autosuspended with the wrong wakeup setting,  	 * autoresume now so the setting can be changed. | 
