summaryrefslogtreecommitdiff
path: root/drivers/usb/chipidea/core.c
diff options
context:
space:
mode:
authorLi Jun <b47624@freescale.com>2014-10-16 22:18:00 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:21:34 +0800
commit680ed7f042e74dab0c043ef9bdfa67255dc1e600 (patch)
tree1562ecb75398bb43b5e916029020582230971056 /drivers/usb/chipidea/core.c
parent794371e6471026ea46d4ae24b2ea8a2d64a87b84 (diff)
MLK-9618-7 usb: chipidea: otg: delay turn on vbus when detecting data pulse
This patch adds a timer to delay turn on vbus after detecting data pulse from B-device, this is required by OTG SRP timing. Signed-off-by: Li Jun <b47624@freescale.com> (cherry picked from commit f02ee3e93715c41f5b1e11140f36e350c7ed4d6b)
Diffstat (limited to 'drivers/usb/chipidea/core.c')
-rw-r--r--drivers/usb/chipidea/core.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index c6563c5ca30e..bea58d9d4cf0 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -1162,13 +1162,10 @@ static void ci_otg_fsm_wakeup_by_srp(struct ci_hdrc *ci)
{
if ((ci->fsm.otg->state == OTG_STATE_A_IDLE) &&
(ci->fsm.a_bus_drop == 1) && (ci->fsm.a_bus_req == 0)) {
- if (!hw_read_otgsc(ci, OTGSC_ID)) {
- ci->fsm.a_srp_det = 1;
- ci->fsm.a_bus_drop = 0;
- } else {
+ if (!hw_read_otgsc(ci, OTGSC_ID))
+ otg_add_timer(&ci->fsm, A_DP_END);
+ else
ci->fsm.id = 1;
- }
- ci_otg_queue_work(ci);
}
}