• Alan Stern's avatar
    USB: put claimed interfaces in the "suspended" state · 571dc79d
    Alan Stern authored
    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: default avatarAlan Stern <stern@rowland.harvard.edu>
    Debugged-and-tested-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    571dc79d
driver.c 51.7 KB