diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/core/hub.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index bb416cdee1a7..6f84d383ecee 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
@@ -1448,11 +1448,11 @@ void usb_set_device_state(struct usb_device *udev, | |||
1448 | || new_state == USB_STATE_SUSPENDED) | 1448 | || new_state == USB_STATE_SUSPENDED) |
1449 | ; /* No change to wakeup settings */ | 1449 | ; /* No change to wakeup settings */ |
1450 | else if (new_state == USB_STATE_CONFIGURED) | 1450 | else if (new_state == USB_STATE_CONFIGURED) |
1451 | device_init_wakeup(&udev->dev, | 1451 | device_set_wakeup_capable(&udev->dev, |
1452 | (udev->actconfig->desc.bmAttributes | 1452 | (udev->actconfig->desc.bmAttributes |
1453 | & USB_CONFIG_ATT_WAKEUP)); | 1453 | & USB_CONFIG_ATT_WAKEUP)); |
1454 | else | 1454 | else |
1455 | device_init_wakeup(&udev->dev, 0); | 1455 | device_set_wakeup_capable(&udev->dev, 0); |
1456 | } | 1456 | } |
1457 | if (udev->state == USB_STATE_SUSPENDED && | 1457 | if (udev->state == USB_STATE_SUSPENDED && |
1458 | new_state != USB_STATE_SUSPENDED) | 1458 | new_state != USB_STATE_SUSPENDED) |
@@ -1799,10 +1799,18 @@ int usb_new_device(struct usb_device *udev) | |||
1799 | { | 1799 | { |
1800 | int err; | 1800 | int err; |
1801 | 1801 | ||
1802 | /* Increment the parent's count of unsuspended children */ | 1802 | if (udev->parent) { |
1803 | if (udev->parent) | 1803 | /* Increment the parent's count of unsuspended children */ |
1804 | usb_autoresume_device(udev->parent); | 1804 | usb_autoresume_device(udev->parent); |
1805 | 1805 | ||
1806 | /* Initialize non-root-hub device wakeup to disabled; | ||
1807 | * device (un)configuration controls wakeup capable | ||
1808 | * sysfs power/wakeup controls wakeup enabled/disabled | ||
1809 | */ | ||
1810 | device_init_wakeup(&udev->dev, 0); | ||
1811 | device_set_wakeup_enable(&udev->dev, 1); | ||
1812 | } | ||
1813 | |||
1806 | usb_detect_quirks(udev); | 1814 | usb_detect_quirks(udev); |
1807 | err = usb_enumerate_device(udev); /* Read descriptors */ | 1815 | err = usb_enumerate_device(udev); /* Read descriptors */ |
1808 | if (err < 0) | 1816 | if (err < 0) |