diff options
Diffstat (limited to 'drivers/usb/phy')
-rw-r--r-- | drivers/usb/phy/phy-fsm-usb.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/phy/phy-fsm-usb.c b/drivers/usb/phy/phy-fsm-usb.c index a62d8c82e8b7..98e8340a5bb1 100644 --- a/drivers/usb/phy/phy-fsm-usb.c +++ b/drivers/usb/phy/phy-fsm-usb.c | |||
@@ -303,17 +303,18 @@ int otg_statemachine(struct otg_fsm *fsm) | |||
303 | otg_set_state(fsm, OTG_STATE_A_WAIT_VRISE); | 303 | otg_set_state(fsm, OTG_STATE_A_WAIT_VRISE); |
304 | break; | 304 | break; |
305 | case OTG_STATE_A_WAIT_VRISE: | 305 | case OTG_STATE_A_WAIT_VRISE: |
306 | if (fsm->id || fsm->a_bus_drop || fsm->a_vbus_vld || | 306 | if (fsm->a_vbus_vld) |
307 | fsm->a_wait_vrise_tmout) { | ||
308 | otg_set_state(fsm, OTG_STATE_A_WAIT_BCON); | 307 | otg_set_state(fsm, OTG_STATE_A_WAIT_BCON); |
309 | } | 308 | else if (fsm->id || fsm->a_bus_drop || |
309 | fsm->a_wait_vrise_tmout) | ||
310 | otg_set_state(fsm, OTG_STATE_A_WAIT_VFALL); | ||
310 | break; | 311 | break; |
311 | case OTG_STATE_A_WAIT_BCON: | 312 | case OTG_STATE_A_WAIT_BCON: |
312 | if (!fsm->a_vbus_vld) | 313 | if (!fsm->a_vbus_vld) |
313 | otg_set_state(fsm, OTG_STATE_A_VBUS_ERR); | 314 | otg_set_state(fsm, OTG_STATE_A_VBUS_ERR); |
314 | else if (fsm->b_conn) | 315 | else if (fsm->b_conn) |
315 | otg_set_state(fsm, OTG_STATE_A_HOST); | 316 | otg_set_state(fsm, OTG_STATE_A_HOST); |
316 | else if (fsm->id | fsm->a_bus_drop | fsm->a_wait_bcon_tmout) | 317 | else if (fsm->id || fsm->a_bus_drop || fsm->a_wait_bcon_tmout) |
317 | otg_set_state(fsm, OTG_STATE_A_WAIT_VFALL); | 318 | otg_set_state(fsm, OTG_STATE_A_WAIT_VFALL); |
318 | break; | 319 | break; |
319 | case OTG_STATE_A_HOST: | 320 | case OTG_STATE_A_HOST: |