usb: musb: call musb_start() only once in OTG mode
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Tue, 15 Oct 2013 16:29:22 +0000 (18:29 +0200)
committerFelipe Balbi <balbi@ti.com>
Thu, 17 Oct 2013 14:55:03 +0000 (09:55 -0500)
commitae44df2e21b50f9fff28ac75c57e399c04df812c
treed87431c6159128a25ef4f405b597d4eeafb1841e
parent811f33033f9e6a00756e38990d82214c8c619f4c
usb: musb: call musb_start() only once in OTG mode

In commit 001dd84 ("usb: musb: start musb on the udc side, too") it was
ensured that the state engine is started also in OTG mode after a
removal / insertion of the gadget.
Unfortunately this change also introduced a bug: If the device is
configured as OTG and it connected with a remote host _without_ loading
a gadget then we bug() later (because musb->otg->gadget is not
initialized).
Initially I assumed it might be nice to have the host part of musb in
OTG mode working without having a gadget loaded. This bug and fact that
it wasn't working like this before the host/gadget split made me realize
that this was a silly idea.
This patch now introduces back the old behavior where in OTG mode the
host mode is only working after the gadget has been loaded.

Cc: stable@vger.kernel.org # v3.11
Cc: Daniel Mack <zonque@gmail.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_virthub.c