usbcore: non-hub-specific uses of autosuspend
This patch (as741) makes the non-hub parts of usbcore actually use the autosuspend facilities added by an earlier patch. Devices opened through usbfs are autoresumed and then autosuspended upon close. Likewise for usb-skeleton. Devices are autoresumed for usb_set_configuration. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
645daaab0b
commit
01d883d44a
@@ -172,14 +172,10 @@ static void generic_disconnect(struct usb_device *udev)
|
||||
|
||||
/* if this is only an unbind, not a physical disconnect, then
|
||||
* unconfigure the device */
|
||||
if (udev->state == USB_STATE_CONFIGURED)
|
||||
if (udev->actconfig)
|
||||
usb_set_configuration(udev, 0);
|
||||
|
||||
usb_remove_sysfs_dev_files(udev);
|
||||
|
||||
/* in case the call failed or the device was suspended */
|
||||
if (udev->state >= USB_STATE_CONFIGURED)
|
||||
usb_disable_device(udev, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
@@ -208,4 +204,5 @@ struct usb_device_driver usb_generic_driver = {
|
||||
.suspend = generic_suspend,
|
||||
.resume = generic_resume,
|
||||
#endif
|
||||
.supports_autosuspend = 1,
|
||||
};
|
||||
|
Reference in New Issue
Block a user