linux/drivers/usb/musb
Daniel Mack 30d361bf0f usb: musb: do not sleep in atomic context
musb_port_reset() is called from musb_hub_control() which in turn holds
a spinlock, so musb_port_reset() is not allowed to call msleep().

With the asynchronous work helpers in place, this is fortunately easy to
fix by rescheduling the reset deassertion function to after the time
when the wait period is finished.

Note, however, that the MUSB_POWER_RESUME bit is only set on AM33xx
processors under rare conditions such as when to another driver
reporting an error during suspend. Hence, this didn't hit me yet in
normal operation.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-02-18 10:34:07 -06:00
..
am35x.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
blackfin.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08: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: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
davinci.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
davinci.h usb: musb: davinci: Fix build breakage 2012-06-04 18:29:42 +03:00
jz4740.c usb: musb: add support for JZ4740 usb device controller 2013-12-20 09:53:24 -06:00
Kconfig usb: musb: Rework USB and USB_GADGET dependency 2013-12-23 10:28:56 -06: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: do not sleep in atomic context 2014-02-18 10:34:07 -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: correct spelling mistakes in comment and error string 2014-01-03 12:39:31 -08: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: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08: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: host: Fix SuperSpeed hub enumeration 2014-02-18 10:32:23 -06: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: do not sleep in atomic context 2014-02-18 10:34:07 -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: fix obex in g_nokia.ko causing kernel panic 2014-02-18 09:38:11 -06:00
omap2430.h usb: start using the control module driver 2013-01-25 12:27:24 +02:00
tusb6010_omap.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
tusb6010.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
tusb6010.h
ux500_dma.c usb: musb: ux500_dma: fix potential NULL dereference error 2013-12-17 13:17:42 -06:00
ux500.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00