Peter,
On 24/11/2020 08:43, Peter Chen wrote:
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.
We use both hardware role switch and /sys entries for manually forcing
a certain role.
We do not set any "usb-role-switch" property at DTS.
Currently cdns->role_sw is being always set by driver irrespective of
any DT property, so this patch is clearly wrong and needs to be reverted.
What do you think?
cheers,
-roger
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki