usb: musb: fix oops on musb_gadget_pullup
authorJohn Stultz <john.stultz@linaro.org>
Thu, 21 Jul 2011 00:09:34 +0000 (17:09 -0700)
committerFelipe Balbi <balbi@ti.com>
Mon, 1 Aug 2011 19:06:50 +0000 (22:06 +0300)
commit72c487dfb94d02025fb7437dfe2314d836d5a9ab
tree047bb96aa1eb097f8ad14b15608efac18c3b2232
parentd4aefec5daf51ebda90ebf0989598c206cf8e640
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>
drivers/usb/musb/musb_gadget.c