OpenCloudOS-Kernel/drivers/usb/musb
John Stultz 72c487dfb9 usb: musb: fix oops on musb_gadget_pullup
an 'unhandled fault' is causes when a gadget driver calls
usb_gadget_connect() while the USB cable isn't plugged into
the OTG port.

the fault is caused by an access to MUSB's memory space
while its clock is turned off due to pm_runtime kicking
in.

in order to fix the fault, we enclose musb_gadget_pullup()
with pm_runtime_get_sync() ... pm_runtime_put() calls to
be sure we will always reach that path with clock turned on.

[ balbi@ti.com : simplified commit log; removed few things
	which didn't belong there ]

Cc: stable@kernel.org
Reported-by: Zach Pfeffer <zach.pfeffer@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2011-08-01 22:06:50 +03:00
..
Kconfig usb: musb: fix Kconfig 2011-08-01 22:06:45 +03:00
Makefile usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
am35x.c usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
blackfin.c usb: musb: fix compile error 2011-05-18 14:43:12 +03:00
blackfin.h usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
cppi_dma.c usb: musb: drop unneeded musb_debug trickery 2011-05-13 14:34:04 +03:00
cppi_dma.h headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
da8xx.c usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
davinci.c usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
davinci.h USB: musb: partial DaVinci dm355 support 2009-03-24 16:20:36 -07:00
musb_core.c Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2011-07-25 23:08:32 -07:00
musb_core.h usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
musb_debug.h usb: musb: drop unneeded musb_debug trickery 2011-05-13 14:34:04 +03:00
musb_debugfs.c headers: kobject.h redux 2011-01-10 08:51:44 -08:00
musb_dma.h usb: musb: introduce api for dma code to check compatibility with usb request 2011-02-01 10:41:30 +02:00
musb_gadget.c usb: musb: fix oops on musb_gadget_pullup 2011-08-01 22:06:50 +03:00
musb_gadget.h usb: musb: gadget: do not poke with gadget's list_head 2011-02-17 21:11:46 +02:00
musb_gadget_ep0.c usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
musb_host.c usb: musb: host: compare status for negative error values 2011-06-09 12:01:03 +03:00
musb_host.h usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
musb_io.h usb: musb: add Kconfig options for each glue layer 2010-12-10 10:21:09 +02:00
musb_regs.h Merge branch 'usb-next' into musb-merge 2010-12-16 10:05:06 -08:00
musb_virthub.c usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
musbhsdma.c usb: musb: drop unneeded musb_debug trickery 2011-05-13 14:34:04 +03:00
musbhsdma.h Merge branches 'devel-cleanup', 'devel-board', 'devel-early-init' and 'devel-ti816x' into omap-for-linus 2011-02-16 11:32:38 -08:00
omap2430.c usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
omap2430.h USB: musb: get rid of omap_readl/writel 2010-03-02 14:54:38 -08:00
tusb6010.c usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
tusb6010.h USB: musb: Remove my email address from few musb related drivers 2009-04-23 14:15:27 -07:00
tusb6010_omap.c usb: musb: tusb6010_omap: fix build failure: error: 'musb' undeclared 2011-08-01 22:06:44 +03:00
ux500.c usb: musb: ux500: copy dma mask from platform device to musb device 2011-04-13 11:50:57 +03:00
ux500_dma.c usb: musb: ux500: add dma glue layer for ux500 2011-05-18 14:43:15 +03:00