usb: cdns3: core: quit if it uses role switch class
authorPeter Chen <peter.chen@nxp.com>
Tue, 1 Sep 2020 02:33:48 +0000 (10:33 +0800)
committerFelipe Balbi <balbi@kernel.org>
Fri, 2 Oct 2020 06:57:40 +0000 (09:57 +0300)
If the board uses role switch class for switching the role, it should
not depends on SoC OTG hardware siginal any more, so quit early.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/cdns3/core.c

index 4c1445cf2ad06956db2ee3fee01faa88868bdac6..a0f73d4711ae2168226468aa3fd8cfd20d5e88ab 100644 (file)
@@ -280,6 +280,10 @@ int cdns3_hw_role_switch(struct cdns3 *cdns)
        enum usb_role real_role, current_role;
        int ret = 0;
 
+       /* Depends on role switch class */
+       if (cdns->role_sw)
+               return 0;
+
        pm_runtime_get_sync(cdns->dev);
 
        current_role = cdns->role;