MLK-9638-4 usb: ehset: test: start timer for B host switch role back
authorLi Jun <B47624@freescale.com>
Sat, 27 Sep 2014 13:13:42 +0000 (21:13 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:47:12 +0000 (14:47 -0500)
After B device as host enumerates A peripheral and sets configuration,
B host should start to hand host role back to A device when this timer
expires.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 3f4a8c8a20ef69721f9e7886b8d245036d41d91a)
(cherry picked from commit 72b535f92ea078d8c3bd73186763bcb2f39106bb)

drivers/usb/misc/ehset.c
include/linux/usb/otg-fsm.h

index f6236f1..f54473c 100644 (file)
@@ -119,9 +119,16 @@ static int ehset_probe(struct usb_interface *intf,
 
                break;
        case TEST_OTG_TEST_DEVICE_SUPPORT:
-               if (!fsm || dev->bus->is_b_host)
+               if (!fsm)
                        return ret;
 
+               /* B host enumerate test device */
+               if (dev->bus->is_b_host) {
+                       otg_add_timer(fsm, B_TST_SUSP);
+                       ret = 0;
+                       break;
+               }
+
                mutex_lock(&fsm->lock);
                fsm->tst_maint = 1;
                if (le16_to_cpu(dev->descriptor.bcdDevice) & 0x1)
index b38a9e2..5978e9f 100644 (file)
@@ -71,6 +71,7 @@ enum otg_fsm_timer {
        A_DP_END,
        A_TST_MAINT,
        B_SRP_REQD,
+       B_TST_SUSP,
 
        NUM_OTG_FSM_TIMERS,
 };