usb: musb: fix oops on musb_gadget_pullup
commite839bad463ad3348f3d239512839c93baf57a1a9
authorJohn Stultz <john.stultz@linaro.org>
Thu, 21 Jul 2011 00:09:34 +0000 (20 17:09 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 17 Aug 2011 17:55:51 +0000 (17 10:55 -0700)
tree361e6c3b40aa7dd943793b90e29372cb1fa24f73
parent024d78c79eb4ee5395ed8f13233b5b15e3445db3
usb: musb: fix oops on musb_gadget_pullup

commit 72c487dfb94d02025fb7437dfe2314d836d5a9ab upstream.

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 ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/musb/musb_gadget.c