linux-stable/drivers/usb/musb
Apelete Seketeli 23db9fd238 usb: musb: fix setting JZ4740 gadget periphal mode on reset
JZ4740 USB Device Controller is not OTG compatible and does not have
DEVCTL register in silicon.

During ethernet-over-usb transactions, on reset, musb driver tries to
read from DEVCTL and consequently sets device as host (A-Device)
instead of peripheral (B-Device), which makes it a composite device to
the USB gadget driver.
This induces a kernel panic during power down where the USB gadget
driver does a null pointer dereference when trying to access the
composite device configuration.

On reset, do not rely on DEVCTL value for setting gadget peripheral
mode. Use is_otg flag instead to set it to B-Device.

Signed-off-by: Apelete Seketeli <apelete@seketeli.net>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-12-20 09:53:59 -06:00
..
am35x.c usb: musb: am35x: use SIMPLE_DEV_PM_OPS 2013-10-02 08:21:23 -05:00
blackfin.c usb: musb: blackfin: use SIMPLE_DEV_PM_OPS 2013-10-02 08:21:55 -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: musb: use platform_device_register_full() to avoid directly messing with dma masks 2013-10-01 09:31:19 -05:00
davinci.c usb: musb: davinci: fix resources passed to MUSB driver for DM6467 2013-10-01 09:44:01 -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: add support for JZ4740 usb device controller 2013-12-20 09:53:24 -06:00
Makefile usb: musb: add support for JZ4740 usb device controller 2013-12-20 09:53:24 -06:00
musb_am335x.c usb: musb_am335x: Remove redundant of_match_ptr 2013-10-04 09:25:11 -05:00
musb_core.c usb: musb: finish suspend/reset work independently from musb_hub_control() 2013-12-19 10:31:11 -06:00
musb_core.h usb: musb: finish suspend/reset work independently from musb_hub_control() 2013-12-19 10:31:11 -06:00
musb_cppi41.c usb: musb: musb_cppi41: handle pre-mature TX complete interrupt 2013-11-25 10:54:14 -06:00
musb_debug.h
musb_debugfs.c
musb_dma.h usb: musb dma: add cppi41 dma driver 2013-08-09 17:40:16 +03:00
musb_dsps.c usb: musb: dsps: polling ID pin status only in otg mode 2013-11-26 11:44:40 -06: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_gadget_ep0.c usb: musb: gadget: read ep0 fifo only if rxcount is non zero 2013-04-02 11:42:50 +03:00
musb_host.c usb: musb: dsps: add support for suspend and resume 2013-11-26 10:58:16 -06:00
musb_host.h usb: musb: finish suspend/reset work independently from musb_hub_control() 2013-12-19 10:31:11 -06:00
musb_io.h
musb_regs.h
musb_virthub.c usb: musb: finish suspend/reset work independently from musb_hub_control() 2013-12-19 10:31:11 -06:00
musbhsdma.c usb: musb: dma: merge ->start/stop into create/destroy 2013-07-29 13:53:18 +03:00
musbhsdma.h
omap2430.c usb: patches for v3.13 2013-10-24 16:18:40 +01:00
omap2430.h
tusb6010.c usb: musb: use platform_device_register_full() to avoid directly messing with dma masks 2013-10-01 09:31:19 -05:00
tusb6010.h
tusb6010_omap.c usb: musb: dma: merge ->start/stop into create/destroy 2013-07-29 13:53:18 +03:00
ux500.c ARM: SoC DT updates for 3.13 2013-11-11 17:34:56 +09:00
ux500_dma.c usb: musb: ux500_dma: fix potential NULL dereference error 2013-12-17 13:17:42 -06:00