* [PATCH] usb: xhci-dwc3: Bail out if "dr_mode" is "peripheral"
@ 2024-12-06 11:04 Siddharth Vadapalli
2024-12-09 13:20 ` Roger Quadros
0 siblings, 1 reply; 5+ messages in thread
From: Siddharth Vadapalli @ 2024-12-06 11:04 UTC (permalink / raw)
To: trini, marex, bmeng.cn, mkorpershoek, rogerq, jonas
Cc: u-boot, srk, s-vadapalli
Since the compatible "snps,dwc3" can be specified in the device-tree for
the Designware USB Controller configured for not only Host and OTG modes
of operation, but also for Peripheral mode of operation, bail out if
"dr_mode" is "peripheral".
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
---
Hello,
This patch is based on commit
448add55297 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic
of the master branch of U-Boot.
Regards,
Siddharth.
drivers/usb/host/xhci-dwc3.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index e3e0ceff43e..7b1311503fe 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -208,6 +208,9 @@ static int xhci_dwc3_probe(struct udevice *dev)
writel(reg, &dwc3_reg->g_usb2phycfg[0]);
dr_mode = usb_get_dr_mode(dev_ofnode(dev));
+ if (dr_mode == USB_DR_MODE_PERIPHERAL)
+ return -ENODEV;
+
if (dr_mode == USB_DR_MODE_OTG &&
dev_read_bool(dev, "usb-role-switch")) {
dr_mode = usb_get_role_switch_default_mode(dev_ofnode(dev));
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH] usb: xhci-dwc3: Bail out if "dr_mode" is "peripheral"
2024-12-06 11:04 [PATCH] usb: xhci-dwc3: Bail out if "dr_mode" is "peripheral" Siddharth Vadapalli
@ 2024-12-09 13:20 ` Roger Quadros
2025-01-16 9:36 ` Mattijs Korpershoek
0 siblings, 1 reply; 5+ messages in thread
From: Roger Quadros @ 2024-12-09 13:20 UTC (permalink / raw)
To: Siddharth Vadapalli, trini, marex, bmeng.cn, mkorpershoek, jonas
Cc: u-boot, srk
Hi Siddharth,
On 06/12/2024 13:04, Siddharth Vadapalli wrote:
> Since the compatible "snps,dwc3" can be specified in the device-tree for
> the Designware USB Controller configured for not only Host and OTG modes
> of operation, but also for Peripheral mode of operation, bail out if
> "dr_mode" is "peripheral".
>
> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
> ---
>
> Hello,
>
> This patch is based on commit
> 448add55297 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic
> of the master branch of U-Boot.
>
> Regards,
> Siddharth.
>
> drivers/usb/host/xhci-dwc3.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
> index e3e0ceff43e..7b1311503fe 100644
> --- a/drivers/usb/host/xhci-dwc3.c
> +++ b/drivers/usb/host/xhci-dwc3.c
> @@ -208,6 +208,9 @@ static int xhci_dwc3_probe(struct udevice *dev)
> writel(reg, &dwc3_reg->g_usb2phycfg[0]);
>
> dr_mode = usb_get_dr_mode(dev_ofnode(dev));
> + if (dr_mode == USB_DR_MODE_PERIPHERAL)
> + return -ENODEV;
> +
> if (dr_mode == USB_DR_MODE_OTG &&
> dev_read_bool(dev, "usb-role-switch")) {
> dr_mode = usb_get_role_switch_default_mode(dev_ofnode(dev));
Although this proposal was suggested in [1] and later clarified in
[2] I will summarize the discussion here.
This patch fix is not sufficient for all cases as the xhci-dwc3.c
driver will still be probed if dr_mode is OTG or HOST along with
other platform drivers if enabled in config.
The only current solution is not not enable CONFIG_USB_XHCI_DWC3
together with another platform driver config (e.g. CONFIG_USB_DWC3_GENERIC)
if snps,dwc3 should not be managed by xhci-dwc3.c.
[1] - https://lore.kernel.org/all/unf757pwgah5ylkcfdumtdo5zs2ny3nxct5u26t6up7aldqim2@mxhhtb53gw4x/
[2] - https://lore.kernel.org/all/a9c458f8-68e5-448b-9977-e7bf37b00d35@kernel.org/
--
cheers,
-roger
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] usb: xhci-dwc3: Bail out if "dr_mode" is "peripheral"
2024-12-09 13:20 ` Roger Quadros
@ 2025-01-16 9:36 ` Mattijs Korpershoek
2025-01-16 10:18 ` Siddharth Vadapalli
0 siblings, 1 reply; 5+ messages in thread
From: Mattijs Korpershoek @ 2025-01-16 9:36 UTC (permalink / raw)
To: Roger Quadros, Siddharth Vadapalli, trini, marex, bmeng.cn, jonas
Cc: u-boot, srk
Hi Siddharth,
On lun., déc. 09, 2024 at 15:20, Roger Quadros <rogerq@kernel.org> wrote:
> Hi Siddharth,
>
> On 06/12/2024 13:04, Siddharth Vadapalli wrote:
>> Since the compatible "snps,dwc3" can be specified in the device-tree for
>> the Designware USB Controller configured for not only Host and OTG modes
>> of operation, but also for Peripheral mode of operation, bail out if
>> "dr_mode" is "peripheral".
>>
>> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
>> ---
>>
>> Hello,
>>
>> This patch is based on commit
>> 448add55297 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic
>> of the master branch of U-Boot.
>>
>> Regards,
>> Siddharth.
>>
>> drivers/usb/host/xhci-dwc3.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
>> index e3e0ceff43e..7b1311503fe 100644
>> --- a/drivers/usb/host/xhci-dwc3.c
>> +++ b/drivers/usb/host/xhci-dwc3.c
>> @@ -208,6 +208,9 @@ static int xhci_dwc3_probe(struct udevice *dev)
>> writel(reg, &dwc3_reg->g_usb2phycfg[0]);
>>
>> dr_mode = usb_get_dr_mode(dev_ofnode(dev));
>> + if (dr_mode == USB_DR_MODE_PERIPHERAL)
>> + return -ENODEV;
>> +
>> if (dr_mode == USB_DR_MODE_OTG &&
>> dev_read_bool(dev, "usb-role-switch")) {
>> dr_mode = usb_get_role_switch_default_mode(dev_ofnode(dev));
>
> Although this proposal was suggested in [1] and later clarified in
> [2] I will summarize the discussion here.
>
> This patch fix is not sufficient for all cases as the xhci-dwc3.c
> driver will still be probed if dr_mode is OTG or HOST along with
> other platform drivers if enabled in config.
>
> The only current solution is not not enable CONFIG_USB_XHCI_DWC3
> together with another platform driver config (e.g. CONFIG_USB_DWC3_GENERIC)
> if snps,dwc3 should not be managed by xhci-dwc3.c.
Given Roger's explanation, should we simply drop this, or is any other
action expected from the U-Boot maintainers?
Thanks,
Mattijs
>
> [1] - https://lore.kernel.org/all/unf757pwgah5ylkcfdumtdo5zs2ny3nxct5u26t6up7aldqim2@mxhhtb53gw4x/
> [2] - https://lore.kernel.org/all/a9c458f8-68e5-448b-9977-e7bf37b00d35@kernel.org/
>
> --
> cheers,
> -roger
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] usb: xhci-dwc3: Bail out if "dr_mode" is "peripheral"
2025-01-16 9:36 ` Mattijs Korpershoek
@ 2025-01-16 10:18 ` Siddharth Vadapalli
2025-01-16 10:28 ` Mattijs Korpershoek
0 siblings, 1 reply; 5+ messages in thread
From: Siddharth Vadapalli @ 2025-01-16 10:18 UTC (permalink / raw)
To: Mattijs Korpershoek
Cc: Roger Quadros, Siddharth Vadapalli, trini, marex, bmeng.cn, jonas,
u-boot, srk
On Thu, Jan 16, 2025 at 10:36:45AM +0100, Mattijs Korpershoek wrote:
> Hi Siddharth,
Hello Mattijs,
>
> On lun., déc. 09, 2024 at 15:20, Roger Quadros <rogerq@kernel.org> wrote:
>
> > Hi Siddharth,
> >
> > On 06/12/2024 13:04, Siddharth Vadapalli wrote:
[...]
> >> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
> >> index e3e0ceff43e..7b1311503fe 100644
> >> --- a/drivers/usb/host/xhci-dwc3.c
> >> +++ b/drivers/usb/host/xhci-dwc3.c
> >> @@ -208,6 +208,9 @@ static int xhci_dwc3_probe(struct udevice *dev)
> >> writel(reg, &dwc3_reg->g_usb2phycfg[0]);
> >>
> >> dr_mode = usb_get_dr_mode(dev_ofnode(dev));
> >> + if (dr_mode == USB_DR_MODE_PERIPHERAL)
> >> + return -ENODEV;
> >> +
> >> if (dr_mode == USB_DR_MODE_OTG &&
> >> dev_read_bool(dev, "usb-role-switch")) {
> >> dr_mode = usb_get_role_switch_default_mode(dev_ofnode(dev));
> >
> > Although this proposal was suggested in [1] and later clarified in
> > [2] I will summarize the discussion here.
> >
> > This patch fix is not sufficient for all cases as the xhci-dwc3.c
> > driver will still be probed if dr_mode is OTG or HOST along with
> > other platform drivers if enabled in config.
> >
> > The only current solution is not not enable CONFIG_USB_XHCI_DWC3
> > together with another platform driver config (e.g. CONFIG_USB_DWC3_GENERIC)
> > if snps,dwc3 should not be managed by xhci-dwc3.c.
>
> Given Roger's explanation, should we simply drop this, or is any other
> action expected from the U-Boot maintainers?
This patch could be dropped. Roger's suggestion is to fix this issue by
updating the platform configs wherein CONFIG_USB_XHCI_DWC3 should be
disabled on platforms that have "dr_mode" set to "peripheral".
Regards,
Siddharth.
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] usb: xhci-dwc3: Bail out if "dr_mode" is "peripheral"
2025-01-16 10:18 ` Siddharth Vadapalli
@ 2025-01-16 10:28 ` Mattijs Korpershoek
0 siblings, 0 replies; 5+ messages in thread
From: Mattijs Korpershoek @ 2025-01-16 10:28 UTC (permalink / raw)
To: Siddharth Vadapalli
Cc: Roger Quadros, Siddharth Vadapalli, trini, marex, bmeng.cn, jonas,
u-boot, srk
On jeu., janv. 16, 2025 at 15:48, Siddharth Vadapalli <s-vadapalli@ti.com> wrote:
> On Thu, Jan 16, 2025 at 10:36:45AM +0100, Mattijs Korpershoek wrote:
>> Hi Siddharth,
>
> Hello Mattijs,
>
>>
>> On lun., déc. 09, 2024 at 15:20, Roger Quadros <rogerq@kernel.org> wrote:
>>
>> > Hi Siddharth,
>> >
>> > On 06/12/2024 13:04, Siddharth Vadapalli wrote:
>
> [...]
>
>> >> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
>> >> index e3e0ceff43e..7b1311503fe 100644
>> >> --- a/drivers/usb/host/xhci-dwc3.c
>> >> +++ b/drivers/usb/host/xhci-dwc3.c
>> >> @@ -208,6 +208,9 @@ static int xhci_dwc3_probe(struct udevice *dev)
>> >> writel(reg, &dwc3_reg->g_usb2phycfg[0]);
>> >>
>> >> dr_mode = usb_get_dr_mode(dev_ofnode(dev));
>> >> + if (dr_mode == USB_DR_MODE_PERIPHERAL)
>> >> + return -ENODEV;
>> >> +
>> >> if (dr_mode == USB_DR_MODE_OTG &&
>> >> dev_read_bool(dev, "usb-role-switch")) {
>> >> dr_mode = usb_get_role_switch_default_mode(dev_ofnode(dev));
>> >
>> > Although this proposal was suggested in [1] and later clarified in
>> > [2] I will summarize the discussion here.
>> >
>> > This patch fix is not sufficient for all cases as the xhci-dwc3.c
>> > driver will still be probed if dr_mode is OTG or HOST along with
>> > other platform drivers if enabled in config.
>> >
>> > The only current solution is not not enable CONFIG_USB_XHCI_DWC3
>> > together with another platform driver config (e.g. CONFIG_USB_DWC3_GENERIC)
>> > if snps,dwc3 should not be managed by xhci-dwc3.c.
>>
>> Given Roger's explanation, should we simply drop this, or is any other
>> action expected from the U-Boot maintainers?
>
> This patch could be dropped. Roger's suggestion is to fix this issue by
> updating the platform configs wherein CONFIG_USB_XHCI_DWC3 should be
> disabled on platforms that have "dr_mode" set to "peripheral".
Thank you for confirming.
I've marked as "Handled elsewhere" on patchwork:
https://patchwork.ozlabs.org/project/uboot/patch/20241206110424.897283-1-s-vadapalli@ti.com/
>
> Regards,
> Siddharth.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-01-16 10:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-06 11:04 [PATCH] usb: xhci-dwc3: Bail out if "dr_mode" is "peripheral" Siddharth Vadapalli
2024-12-09 13:20 ` Roger Quadros
2025-01-16 9:36 ` Mattijs Korpershoek
2025-01-16 10:18 ` Siddharth Vadapalli
2025-01-16 10:28 ` Mattijs Korpershoek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox