MLK-10051-1 usb: host: don't break clear suspend feature if otg fsm is used
authorLi Jun <B47624@freescale.com>
Wed, 24 Dec 2014 10:23:04 +0000 (18:23 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:47:15 +0000 (14:47 -0500)
Current code just do not do reusme signaling for clear suspend feature if it's
a OTG port with b_hnp_enable set, this result in OTG host cannot clear suspend
and resume OTG device after system resume from sleep, then host will disconnect
the OTG B-device and enumerate it again. To make OTG A-device in host state can
do clear feature of suspend like an usual host, and also be compatible legacy
OTG device, this patch adds another condition to check if OTG FSM driver is used
,as in OTG FSM driver, we need not do HNP in that case.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit f92731f787ca00ef8cd0ab9d591e4e24d5a40cc4)
(cherry picked from commit 92f5f68e853713e1179c0e30c1e84456ba11302e)

drivers/usb/host/ehci-hub.c

index 74f62d6..6a96628 100644 (file)
@@ -935,7 +935,7 @@ int ehci_hub_control(
                                break;
 #ifdef CONFIG_USB_OTG
                        if ((hcd->self.otg_port == (wIndex + 1))
-                           && hcd->self.b_hnp_enable) {
+                           && hcd->self.b_hnp_enable && !hcd->self.otg_fsm) {
                                otg_start_hnp(hcd->usb_phy->otg);
                                break;
                        }