linux/drivers/usb/musb
Daniel Mack c03da38d5d usb: musb: use is_host_active() to distinguish between host and gadget mode
On AM33xx platforms, unplugging a device in the middle of an active
transfer leads to a drop of MUSB_DEVCTL_HM in MUSB_DEVCTL before the
system is informed about a disconnect. This consequently makes the musb
core call the gadget code to handle the interrupt request, which then
crashes the kernel because the relevant pointers haven't been set up
for gadget mode.

To fix this, use is_host_active() rather than (devctl & MUSB_DEVCTL_HM)
in musb_interrupt() and musb_dma_completion() to detect whether the
controller is in host or peripheral mode. This information is provided
by the driver logic and does not rely on register contents.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-06-30 14:26:22 -05:00
..
am35x.c usb: phy: generic: allow multiples calls to usb_phy_generic_register() 2014-04-21 14:07:25 -05:00
blackfin.c usb: musb: backfin: Introduce the use of the managed version of kzalloc 2014-06-30 12:26:57 -05:00
blackfin.h
cppi_dma.c usb: musb: dma: merge ->start/stop into create/destroy 2013-07-29 13:53:18 +03:00
cppi_dma.h
da8xx.c usb: phy: generic: allow multiples calls to usb_phy_generic_register() 2014-04-21 14:07:25 -05:00
davinci.c usb: musb: davinci: use devm_ functions. 2014-06-30 12:26:48 -05:00
davinci.h
jz4740.c usb: musb: add support for JZ4740 usb device controller 2013-12-20 09:53:24 -06:00
Kconfig usb: musb: omap2plus bus glue needs USB host support 2014-05-14 09:23:32 -05:00
Makefile usb: musb: add support for JZ4740 usb device controller 2013-12-20 09:53:24 -06:00
musb_am335x.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
musb_core.c usb: musb: use is_host_active() to distinguish between host and gadget mode 2014-06-30 14:26:22 -05:00
musb_core.h usb: musb: tusb6010: Add tusb_revision to struct musb to store the revision. 2014-05-16 12:14:55 -05:00
musb_cppi41.c usb: musb: musb_cppi41: Dont reprogram DMA if tear down is initiated 2014-03-05 14:40:05 -06:00
musb_debug.h
musb_debugfs.c usb: remove use of __devinit 2012-11-21 13:27:16 -08:00
musb_dma.h usb: musb dma: add cppi41 dma driver 2013-08-09 17:40:16 +03:00
musb_dsps.c usb: musb: dsps: Call usb_phy(_shutdown/_init) during musb_platform_reset() 2014-06-30 12:27:54 -05:00
musb_gadget_ep0.c usb: musb: gadget: read ep0 fifo only if rxcount is non zero 2013-04-02 11:42:50 +03:00
musb_gadget.c usb: musb: fix setting JZ4740 gadget periphal mode on reset 2013-12-20 09:53:59 -06:00
musb_gadget.h usb: musb: add Kconfig options for HOST, GAGDET or DUAL_ROLE modes 2013-05-28 19:22:23 +03:00
musb_host.c usb: musb: remove unnecessary (void) prefix at function calls 2014-06-30 14:26:21 -05:00
musb_host.h usb: musb: fix prototype for musb_port_reset 2013-12-20 15:05:43 -06:00
musb_io.h usb: musb: use io{read,write}*_rep accessors 2012-12-17 17:15:13 -08:00
musb_regs.h
musb_virthub.c usb: musb: correct use of schedule_delayed_work() 2014-02-20 09:17:24 -06:00
musbhsdma.c usb: musb: dma: merge ->start/stop into create/destroy 2013-07-29 13:53:18 +03:00
musbhsdma.h usb: musb: remove generic_interrupt 2012-11-06 15:32:13 +02:00
omap2430.c usb: musb: omap2430: make sure clocks are enabled when running mailbox 2014-04-15 12:08:02 -05:00
omap2430.h usb: start using the control module driver 2013-01-25 12:27:24 +02:00
tusb6010_omap.c usb: musb: tusb6010: Use musb->tusb_revision instead of tusb_get_revision call. 2014-05-16 12:16:31 -05:00
tusb6010.c usb: musb: tusb6010: Introduce the use of the managed version of kzalloc 2014-06-30 12:26:49 -05:00
tusb6010.h usb: musb: tusb6010: Use musb->tusb_revision instead of tusb_get_revision call. 2014-05-16 12:16:31 -05:00
ux500_dma.c usb: musb: ux500_dma: fix potential NULL dereference error 2013-12-17 13:17:42 -06:00
ux500.c usb: musb: ux500: use devm_ functions 2014-06-30 12:14:39 -05:00