Browse Source

usb: phy: fsm: update OTG HNP state transition

According to:"On-The-Go and Embedded Host Supplement to the USB Revision 2.0
Specification July 27, 2012 Revision 2.0 version 1.1a"

- add a_wait_vrise to a_wait_vfall
- update condition from a_wait_vrise to a_wait_bcon

Signed-off-by: Li Jun <b47624@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Li Jun 11 years ago
parent
commit
2284bb3550
1 changed files with 4 additions and 3 deletions
  1. 4 3
      drivers/usb/phy/phy-fsm-usb.c

+ 4 - 3
drivers/usb/phy/phy-fsm-usb.c

@@ -303,10 +303,11 @@ int otg_statemachine(struct otg_fsm *fsm)
 			otg_set_state(fsm, OTG_STATE_A_WAIT_VRISE);
 			otg_set_state(fsm, OTG_STATE_A_WAIT_VRISE);
 		break;
 		break;
 	case OTG_STATE_A_WAIT_VRISE:
 	case OTG_STATE_A_WAIT_VRISE:
-		if (fsm->id || fsm->a_bus_drop || fsm->a_vbus_vld ||
-				fsm->a_wait_vrise_tmout) {
+		if (fsm->a_vbus_vld)
 			otg_set_state(fsm, OTG_STATE_A_WAIT_BCON);
 			otg_set_state(fsm, OTG_STATE_A_WAIT_BCON);
-		}
+		else if (fsm->id || fsm->a_bus_drop ||
+				fsm->a_wait_vrise_tmout)
+			otg_set_state(fsm, OTG_STATE_A_WAIT_VFALL);
 		break;
 		break;
 	case OTG_STATE_A_WAIT_BCON:
 	case OTG_STATE_A_WAIT_BCON:
 		if (!fsm->a_vbus_vld)
 		if (!fsm->a_vbus_vld)