linux/drivers/usb/musb
David Brownell ab983f2a1b musb: support disconnect after HNP roleswitch
Adjust HNP state machines in MUSB driver so that they handle the
case where the cable is disconnected.  The A-side machine was
very wrong (unrecoverable); the B-Side was much less so.

 - A_PERIPHERAL ... as usual, the non-observability of the ID
   pin through Mentor's registers makes trouble.  We can't go
   directly to A_WAIT_VFALL to end the session and start the
   disconnect processing.  We can however sense link suspending,
   go to A_WAIT_BCON, and from there use OTG timeouts to finally
   trigger that A_WAIT_VFALL transition.  (Hoping that nobody
   reconnects quickly to that port and notices the wrong state.)

 - B_HOST ... actually clear the Host Request (HR) bit as the
   messages say, disconnect the peripheral from the root hub,
   and don't detour through a suspend state.  (In some cases
   this would eventually have cleaned up.)

Also adjust the A_SUSPEND transition to respect the A_AIDL_BDIS
timeout, so if HNP doesn't trigger quickly enough the A_WAIT_VFALL
transition happens as it should.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-06-15 21:44:41 -07:00
..
blackfin.c musb: proper hookup to transceiver drivers 2009-06-15 21:44:40 -07:00
blackfin.h
cppi_dma.c musb: split out CPPI interrupt handler 2009-06-15 21:44:40 -07:00
cppi_dma.h musb: split out CPPI interrupt handler 2009-06-15 21:44:40 -07:00
davinci.c musb: proper hookup to transceiver drivers 2009-06-15 21:44:40 -07:00
davinci.h USB: musb: partial DaVinci dm355 support 2009-03-24 16:20:36 -07:00
Kconfig musb: proper hookup to transceiver drivers 2009-06-15 21:44:40 -07:00
Makefile USB: musb: add Blackfin Kconfig options and Makefile 2009-01-07 10:00:08 -08:00
musb_core.c musb: support disconnect after HNP roleswitch 2009-06-15 21:44:41 -07:00
musb_core.h musb: otg timer cleanup 2009-06-15 21:44:40 -07:00
musb_debug.h
musb_dma.h
musb_gadget_ep0.c musb_gadget: fix unhandled endpoint 0 IRQs 2009-06-15 21:44:39 -07:00
musb_gadget.c musb: support disconnect after HNP roleswitch 2009-06-15 21:44:41 -07:00
musb_gadget.h
musb_host.c musb: proper hookup to transceiver drivers 2009-06-15 21:44:40 -07:00
musb_host.h
musb_io.h USB: musb: Blackfin provides read/write I/O accessor in header files 2009-01-07 10:00:08 -08:00
musb_regs.h USB: musb: add Blackfin specific configuration to MUSB 2009-01-07 10:00:07 -08:00
musb_virthub.c musb: support disconnect after HNP roleswitch 2009-06-15 21:44:41 -07:00
musbhsdma.c USB: musb: sanitize clearing TXCSR DMA bits (take 2) 2009-04-17 10:50:25 -07:00
musbhsdma.h USB: musb: enable low level DMA operation for Blackfin 2009-01-07 10:00:07 -08:00
omap2430.c musb: otg timer cleanup 2009-06-15 21:44:40 -07:00
omap2430.h
tusb6010_omap.c USB: musb: tusb6010 buildfix 2009-01-27 16:15:33 -08:00
tusb6010.c musb: proper hookup to transceiver drivers 2009-06-15 21:44:40 -07:00
tusb6010.h USB: musb: Remove my email address from few musb related drivers 2009-04-23 14:15:27 -07:00