diff options
author | Grazvydas Ignotas <notasas@gmail.com> | 2013-03-09 19:48:55 -0500 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2013-03-22 02:40:48 -0400 |
commit | e5615112807c27dd256f0bd8fc8b1f6f5e1b90af (patch) | |
tree | 8ed30f332433febf67c9850bf17ecfd901cc54e0 /drivers/usb/musb/musb_core.c | |
parent | 4261b8f3538c1cae63e30110a164614ea2f10299 (diff) |
usb: musb: core: honour initial transceiver state
As the usb 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 <notasas@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/musb/musb_core.c')
-rw-r--r-- | drivers/usb/musb/musb_core.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 6bd879257e4c..5fbabc0037b4 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c | |||
@@ -1952,9 +1952,13 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl) | |||
1952 | musb_write_ulpi_buscontrol(musb->mregs, busctl); | 1952 | musb_write_ulpi_buscontrol(musb->mregs, busctl); |
1953 | } | 1953 | } |
1954 | 1954 | ||
1955 | MUSB_DEV_MODE(musb); | 1955 | if (musb->xceiv->otg->default_a) { |
1956 | musb->xceiv->otg->default_a = 0; | 1956 | MUSB_HST_MODE(musb); |
1957 | musb->xceiv->state = OTG_STATE_B_IDLE; | 1957 | musb->xceiv->state = OTG_STATE_A_IDLE; |
1958 | } else { | ||
1959 | MUSB_DEV_MODE(musb); | ||
1960 | musb->xceiv->state = OTG_STATE_B_IDLE; | ||
1961 | } | ||
1958 | 1962 | ||
1959 | status = musb_gadget_setup(musb); | 1963 | status = musb_gadget_setup(musb); |
1960 | 1964 | ||