2023-01-23 09:01:40

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH] usb: dwc3: qcom: enable vbus override when in OTG dr-mode

With vbus override enabled when in OTG dr_mode, Host<->Peripheral
switch now works on SM8550, otherwise the DWC3 seems to be stuck
in Host mode only.

Signed-off-by: Neil Armstrong <[email protected]>
---
drivers/usb/dwc3/dwc3-qcom.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
index b0a0351d2d8b..959fc925ca7c 100644
--- a/drivers/usb/dwc3/dwc3-qcom.c
+++ b/drivers/usb/dwc3/dwc3-qcom.c
@@ -901,7 +901,7 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
qcom->mode = usb_get_dr_mode(&qcom->dwc3->dev);

/* enable vbus override for device mode */
- if (qcom->mode == USB_DR_MODE_PERIPHERAL)
+ if (qcom->mode != USB_DR_MODE_HOST)
dwc3_qcom_vbus_override_enable(qcom, true);

/* register extcon to override sw_vbus on Vbus change later */

---
base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2
change-id: 20230123-topic-sm8550-upstream-dwc3-qcom-otg-81795ea148db

Best regards,
--
Neil Armstrong <[email protected]>


2023-01-23 09:35:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] usb: dwc3: qcom: enable vbus override when in OTG dr-mode

On Mon, Jan 23, 2023 at 10:01:25AM +0100, Neil Armstrong wrote:
> With vbus override enabled when in OTG dr_mode, Host<->Peripheral
> switch now works on SM8550, otherwise the DWC3 seems to be stuck
> in Host mode only.
>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---
> drivers/usb/dwc3/dwc3-qcom.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
> index b0a0351d2d8b..959fc925ca7c 100644
> --- a/drivers/usb/dwc3/dwc3-qcom.c
> +++ b/drivers/usb/dwc3/dwc3-qcom.c
> @@ -901,7 +901,7 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
> qcom->mode = usb_get_dr_mode(&qcom->dwc3->dev);
>
> /* enable vbus override for device mode */
> - if (qcom->mode == USB_DR_MODE_PERIPHERAL)
> + if (qcom->mode != USB_DR_MODE_HOST)
> dwc3_qcom_vbus_override_enable(qcom, true);
>
> /* register extcon to override sw_vbus on Vbus change later */
>
> ---

What commit does this fix? Should it go to stable kernels?

thanks,

greg k-h

2023-01-23 11:20:19

by Bryan O'Donoghue

[permalink] [raw]
Subject: Re: [PATCH] usb: dwc3: qcom: enable vbus override when in OTG dr-mode

On 23/01/2023 09:01, Neil Armstrong wrote:
> With vbus override enabled when in OTG dr_mode, Host<->Peripheral
> switch now works on SM8550, otherwise the DWC3 seems to be stuck
> in Host mode only.
>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---
> drivers/usb/dwc3/dwc3-qcom.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
> index b0a0351d2d8b..959fc925ca7c 100644
> --- a/drivers/usb/dwc3/dwc3-qcom.c
> +++ b/drivers/usb/dwc3/dwc3-qcom.c
> @@ -901,7 +901,7 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
> qcom->mode = usb_get_dr_mode(&qcom->dwc3->dev);
>
> /* enable vbus override for device mode */
> - if (qcom->mode == USB_DR_MODE_PERIPHERAL)
> + if (qcom->mode != USB_DR_MODE_HOST)
> dwc3_qcom_vbus_override_enable(qcom, true);
>
> /* register extcon to override sw_vbus on Vbus change later */
>
> ---
> base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2
> change-id: 20230123-topic-sm8550-upstream-dwc3-qcom-otg-81795ea148db
>
> Best regards,

This makes logical sense => only over-ride VBUS when !Host

Reviewed-by: Bryan O'Donoghue <[email protected]>

2023-01-24 08:29:35

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH] usb: dwc3: qcom: enable vbus override when in OTG dr-mode

On 23/01/2023 10:35, Greg Kroah-Hartman wrote:
> On Mon, Jan 23, 2023 at 10:01:25AM +0100, Neil Armstrong wrote:
>> With vbus override enabled when in OTG dr_mode, Host<->Peripheral
>> switch now works on SM8550, otherwise the DWC3 seems to be stuck
>> in Host mode only.
>>
>> Signed-off-by: Neil Armstrong <[email protected]>
>> ---
>> drivers/usb/dwc3/dwc3-qcom.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
>> index b0a0351d2d8b..959fc925ca7c 100644
>> --- a/drivers/usb/dwc3/dwc3-qcom.c
>> +++ b/drivers/usb/dwc3/dwc3-qcom.c
>> @@ -901,7 +901,7 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
>> qcom->mode = usb_get_dr_mode(&qcom->dwc3->dev);
>>
>> /* enable vbus override for device mode */
>> - if (qcom->mode == USB_DR_MODE_PERIPHERAL)
>> + if (qcom->mode != USB_DR_MODE_HOST)
>> dwc3_qcom_vbus_override_enable(qcom, true);
>>
>> /* register extcon to override sw_vbus on Vbus change later */
>>
>> ---
>
> What commit does this fix? Should it go to stable kernels?

a4333c3a6ba9 usb: dwc3: Add Qualcomm DWC3 glue driver

Will resend with Fixes tag,

Neil

>
> thanks,
>
> greg k-h