]> git.baikalelectronics.ru Git - kernel.git/commit
USB: put claimed interfaces in the "suspended" state
authorAlan Stern <stern@rowland.harvard.edu>
Fri, 9 Apr 2010 20:03:43 +0000 (16:03 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 22 Apr 2010 22:18:28 +0000 (15:18 -0700)
commit83a0aa5a123f2f00ff9bc274030fa657647c3d94
tree08a55158da82af74fdb3696815ad2c7610185fd2
parentf60a7b7208df0ea5abf970bb091a290ebe00a553
USB: put claimed interfaces in the "suspended" state

This patch (as1370) fixes a bug in the USB runtime power management
code.  When a driver claims an interface, it doesn't expect to need to
call usb_autopm_get_interface() or usb_autopm_put_interface() for
runtime PM to work.  Runtime PM can be controlled by the driver's
primary interface; the additional interfaces it claims shouldn't
interfere.  As things stand, the claimed interfaces will prevent the
device from autosuspending.

To fix this problem, the patch sets interfaces to the suspended state
when they are claimed.

Also, although in theory this shouldn't matter, the patch changes the
suspend code so that interfaces are suspended in reverse order from
detection and resuming.  This is how the PM core works, and we ought
to use the same approach.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Debugged-and-tested-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/driver.c