usb: musb: honour initial transceiver state
Subsystems (2)
PATCH 1/1 usb: musb: honour initial transceiver state
As the OTG transceiver driver usually starts first, it should already have default_a variable set according to ID pin state, so don't override it. In case default_a was not changed by trasceiver, it will default to 0 and this code will work as before.
Signed-off-by Grazvydas Ignotas <[email protected]>
--- drivers/usb/musb/musb_core.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/usb/musb/musb_core.c +7 -3
@@ -1955,9 +1955,13 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)musb_write_ulpi_buscontrol (musb->mregs, busctl); } -MUSB_DEV_MODE (musb); - musb->xceiv->otg->default_a =0 ; - musb->xceiv->state =OTG_STATE_B_IDLE ; +if (musb->xceiv->otg->default_a) { +MUSB_HST_MODE (musb); + musb->xceiv->state =OTG_STATE_A_IDLE ; + }else { +MUSB_DEV_MODE (musb); + musb->xceiv->state =OTG_STATE_B_IDLE ; + } status =musb_gadget_setup (musb);
Signature · 1 line
1.7.9.5