• David Brownell's avatar
    musb: make initial HNP roleswitch work (v2) · 1de00dae
    David Brownell authored
    Minor HNP bugfixes, so the initial role switch works:
    
     - A-Device:
         * disconnect-during-suspend enters A_PERIPHERAL state
         * kill OTG timer after reset as A_PERIPHERAL ...
         * ... and also pass that reset to the gadget
         * once HNP succeeds, clear the "ignore_disconnect" flag
         * from A_PERIPHERAL, disconnect transitions to A_WAIT_BCON
    
     - B-Device:
         * kill OTG timer on entry to B_HOST state (HNP succeeded)
         * once HNP succeeds, clear "ignore_disconnect" flag
         * kick the root hub only _after_ the state is adjusted
    
    Other state transitions are left alone.  Notably, exit paths from
    the "roles have switched" state ... A_PERIPHERAL handling of that
    stays seriously broken.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    1de00dae
musb_gadget.c 52.9 KB