On 20-11-23 13:50:51, Roger Quadros wrote: > This reverts commit 50642709f6590fe40afa6d22c32f23f5b842aed5. > > This commit breaks hardware based role switching on TI platforms. > cdns->role_sw is always going to be non-zero as it is a pointer > to the usb_role_switch instance. Some other means needs to be used > if hardware based role switching is not required by the platform. > > Signed-off-by: Roger Quadros <rogerq@xxxxxx> > --- > drivers/usb/cdns3/core.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/drivers/usb/cdns3/core.c b/drivers/usb/cdns3/core.c > index a0f73d4711ae..4c1445cf2ad0 100644 > --- a/drivers/usb/cdns3/core.c > +++ b/drivers/usb/cdns3/core.c > @@ -280,10 +280,6 @@ 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; > -- Hi Roger, I am sorry about that. Do you use role switch /sys entry, if you have used, I prefer using "usb-role-switch" property at dts to judge if SoC OTG signals or external signals for role switch. If you have not used it, I prefer only setting cdns->role_sw for role switch use cases. -- Thanks, Peter Chen