2024-02-09 13:02:31

by Andrejs Cainikovs

[permalink] [raw]
Subject: [PATCH v1] arm64: dts: ti: k3-am62-main: disable usb lpm

From: Andrejs Cainikovs <[email protected]>

AM62 USB works with some devices, while failing to operate with others.

[ 560.189822] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[ 560.195631] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 2
[ 574.388509] xhci-hcd xhci-hcd.4.auto: can't setup: -110
[ 574.393814] xhci-hcd xhci-hcd.4.auto: USB bus 2 deregistered
[ 574.399544] xhci-hcd: probe of xhci-hcd.4.auto failed with error -110

This seems to be related to LPM (Link Power Management), and disabling it
turns USB into reliable working state.

As per AM62 reference manual:

> 4.8.2.1 USB2SS Unsupported Features
>
> The following features are not supported on this family of devices:
> ...
> - USB 2.0 ECN: Link Power Management (LPM)
> ...

Fixes: 2240f96cf3cd ("arm64: dts: ti: k3-am62-main: Add support for USB")
Signed-off-by: Andrejs Cainikovs <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
index 464b7565d085..c49fbce5cb70 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
@@ -640,6 +640,8 @@ usb0: usb@31000000 {
interrupt-names = "host", "peripheral";
maximum-speed = "high-speed";
dr_mode = "otg";
+ snps,usb2-gadget-lpm-disable;
+ snps,usb2-lpm-disable;
};
};

@@ -663,6 +665,8 @@ usb1: usb@31100000 {
interrupt-names = "host", "peripheral";
maximum-speed = "high-speed";
dr_mode = "otg";
+ snps,usb2-gadget-lpm-disable;
+ snps,usb2-lpm-disable;
};
};

--
2.34.1



2024-02-12 12:15:54

by Roger Quadros

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: dts: ti: k3-am62-main: disable usb lpm

Hi Andrejs,

On 09/02/2024 15:02, Andrejs Cainikovs wrote:
> From: Andrejs Cainikovs <[email protected]>
>
> AM62 USB works with some devices, while failing to operate with others.

Could you please share which devices failed to work for you?

>
> [ 560.189822] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
> [ 560.195631] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 2
> [ 574.388509] xhci-hcd xhci-hcd.4.auto: can't setup: -110
> [ 574.393814] xhci-hcd xhci-hcd.4.auto: USB bus 2 deregistered
> [ 574.399544] xhci-hcd: probe of xhci-hcd.4.auto failed with error -110
>
> This seems to be related to LPM (Link Power Management), and disabling it
> turns USB into reliable working state.
>
> As per AM62 reference manual:
>
>> 4.8.2.1 USB2SS Unsupported Features
>>
>> The following features are not supported on this family of devices:
>> ...
>> - USB 2.0 ECN: Link Power Management (LPM)
>> ...
>
> Fixes: 2240f96cf3cd ("arm64: dts: ti: k3-am62-main: Add support for USB")
> Signed-off-by: Andrejs Cainikovs <[email protected]>
> ---
> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> index 464b7565d085..c49fbce5cb70 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> @@ -640,6 +640,8 @@ usb0: usb@31000000 {
> interrupt-names = "host", "peripheral";
> maximum-speed = "high-speed";
> dr_mode = "otg";
> + snps,usb2-gadget-lpm-disable;
> + snps,usb2-lpm-disable;
> };
> };
>
> @@ -663,6 +665,8 @@ usb1: usb@31100000 {
> interrupt-names = "host", "peripheral";
> maximum-speed = "high-speed";
> dr_mode = "otg";
> + snps,usb2-gadget-lpm-disable;
> + snps,usb2-lpm-disable;
> };
> };
>

Instead of this could you please check if this series fixes the issue for you?
https://lore.kernel.org/all/[email protected]/

--
cheers,
-roger

2024-02-12 12:54:22

by Francesco Dolcini

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: dts: ti: k3-am62-main: disable usb lpm

Hello Roger,

On Mon, Feb 12, 2024 at 02:13:56PM +0200, Roger Quadros wrote:
> On 09/02/2024 15:02, Andrejs Cainikovs wrote:
> > diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> > index 464b7565d085..c49fbce5cb70 100644
> > --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> > +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> > @@ -663,6 +665,8 @@ usb1: usb@31100000 {
> > interrupt-names = "host", "peripheral";
> > maximum-speed = "high-speed";
> > dr_mode = "otg";
> > + snps,usb2-gadget-lpm-disable;
> > + snps,usb2-lpm-disable;
>
> Instead of this could you please check if this series fixes the issue for you?
> https://lore.kernel.org/all/[email protected]/

Isn't this change correct despite whatever the test results on that
change are going to be? The manual is pretty adamant on LPM not being
supported by the AM62 SoC.

Francesco


2024-02-13 11:34:30

by Roger Quadros

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: dts: ti: k3-am62-main: disable usb lpm



On 12/02/2024 14:54, Francesco Dolcini wrote:
> Hello Roger,
>
> On Mon, Feb 12, 2024 at 02:13:56PM +0200, Roger Quadros wrote:
>> On 09/02/2024 15:02, Andrejs Cainikovs wrote:
>>> diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>>> index 464b7565d085..c49fbce5cb70 100644
>>> --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>>> +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>>> @@ -663,6 +665,8 @@ usb1: usb@31100000 {
>>> interrupt-names = "host", "peripheral";
>>> maximum-speed = "high-speed";
>>> dr_mode = "otg";
>>> + snps,usb2-gadget-lpm-disable;
>>> + snps,usb2-lpm-disable;
>>
>> Instead of this could you please check if this series fixes the issue for you?
>> https://lore.kernel.org/all/[email protected]/
>
> Isn't this change correct despite whatever the test results on that
> change are going to be? The manual is pretty adamant on LPM not being
> supported by the AM62 SoC.
>

You are right. We should have this in regardless.

--
cheers,
-roger

2024-02-13 11:43:56

by Francesco Dolcini

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: dts: ti: k3-am62-main: disable usb lpm

On Fri, Feb 09, 2024 at 02:02:12PM +0100, Andrejs Cainikovs wrote:
> From: Andrejs Cainikovs <[email protected]>
>
> AM62 USB works with some devices, while failing to operate with others.
>
> [ 560.189822] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
> [ 560.195631] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 2
> [ 574.388509] xhci-hcd xhci-hcd.4.auto: can't setup: -110
> [ 574.393814] xhci-hcd xhci-hcd.4.auto: USB bus 2 deregistered
> [ 574.399544] xhci-hcd: probe of xhci-hcd.4.auto failed with error -110
>
> This seems to be related to LPM (Link Power Management), and disabling it
> turns USB into reliable working state.
>
> As per AM62 reference manual:
>
> > 4.8.2.1 USB2SS Unsupported Features
> >
> > The following features are not supported on this family of devices:
> > ...
> > - USB 2.0 ECN: Link Power Management (LPM)
> > ...
>
> Fixes: 2240f96cf3cd ("arm64: dts: ti: k3-am62-main: Add support for USB")
> Signed-off-by: Andrejs Cainikovs <[email protected]>

Reviewed-by: Francesco Dolcini <[email protected]>

Francesco


2024-02-14 09:25:59

by Roger Quadros

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: dts: ti: k3-am62-main: disable usb lpm



On 09/02/2024 15:02, Andrejs Cainikovs wrote:
> From: Andrejs Cainikovs <[email protected]>
>
> AM62 USB works with some devices, while failing to operate with others.
>
> [ 560.189822] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
> [ 560.195631] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 2
> [ 574.388509] xhci-hcd xhci-hcd.4.auto: can't setup: -110
> [ 574.393814] xhci-hcd xhci-hcd.4.auto: USB bus 2 deregistered
> [ 574.399544] xhci-hcd: probe of xhci-hcd.4.auto failed with error -110
>
> This seems to be related to LPM (Link Power Management), and disabling it
> turns USB into reliable working state.
>
> As per AM62 reference manual:
>
>> 4.8.2.1 USB2SS Unsupported Features
>>
>> The following features are not supported on this family of devices:
>> ...
>> - USB 2.0 ECN: Link Power Management (LPM)
>> ...
>
> Fixes: 2240f96cf3cd ("arm64: dts: ti: k3-am62-main: Add support for USB")
> Signed-off-by: Andrejs Cainikovs <[email protected]>

Reviewed-by: Roger Quadros <[email protected]>

2024-02-14 09:53:39

by Andrejs Cainikovs

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: dts: ti: k3-am62-main: disable usb lpm

On 12/02/2024 13:13, Roger Quadros wrote:
> Hi Andrejs,
>
> On 09/02/2024 15:02, Andrejs Cainikovs wrote:
>> From: Andrejs Cainikovs <[email protected]>
>>
>> AM62 USB works with some devices, while failing to operate with others.
>
> Could you please share which devices failed to work for you?

Hi Roger,

This USB memory stick is the one that is failing most of the time:
ID 058f:6387 Alcor Micro Corp. Flash Drive (DigiKey 1GB)

I used following test to reproduce the issue: boot without any devices
connected, once booted - connect to PC for gadget mode (RNDIS), and then
unplug cable and connect USB drive.

I did not had any failures with this USB memory stick, btw:
ID 0951:1643 Kingston Technology DataTraveler G3

/Andrejs
>>
>> [ 560.189822] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
>> [ 560.195631] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 2
>> [ 574.388509] xhci-hcd xhci-hcd.4.auto: can't setup: -110
>> [ 574.393814] xhci-hcd xhci-hcd.4.auto: USB bus 2 deregistered
>> [ 574.399544] xhci-hcd: probe of xhci-hcd.4.auto failed with error -110
>>
>> This seems to be related to LPM (Link Power Management), and disabling it
>> turns USB into reliable working state.
>>
>> As per AM62 reference manual:
>>
>>> 4.8.2.1 USB2SS Unsupported Features
>>>
>>> The following features are not supported on this family of devices:
>>> ...
>>> - USB 2.0 ECN: Link Power Management (LPM)
>>> ...
>>
>> Fixes: 2240f96cf3cd ("arm64: dts: ti: k3-am62-main: Add support for USB")
>> Signed-off-by: Andrejs Cainikovs <[email protected]>
>> ---
>> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>> index 464b7565d085..c49fbce5cb70 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>> +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>> @@ -640,6 +640,8 @@ usb0: usb@31000000 {
>> interrupt-names = "host", "peripheral";
>> maximum-speed = "high-speed";
>> dr_mode = "otg";
>> + snps,usb2-gadget-lpm-disable;
>> + snps,usb2-lpm-disable;
>> };
>> };
>>
>> @@ -663,6 +665,8 @@ usb1: usb@31100000 {
>> interrupt-names = "host", "peripheral";
>> maximum-speed = "high-speed";
>> dr_mode = "otg";
>> + snps,usb2-gadget-lpm-disable;
>> + snps,usb2-lpm-disable;
>> };
>> };
>>
>
> Instead of this could you please check if this series fixes the issue for you?
> https://lore.kernel.org/all/[email protected]/
>


2024-02-15 09:46:32

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: dts: ti: k3-am62-main: disable usb lpm

Hi Andrejs Cainikovs,

On Fri, 09 Feb 2024 14:02:12 +0100, Andrejs Cainikovs wrote:
> AM62 USB works with some devices, while failing to operate with others.
>
> [ 560.189822] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
> [ 560.195631] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 2
> [ 574.388509] xhci-hcd xhci-hcd.4.auto: can't setup: -110
> [ 574.393814] xhci-hcd xhci-hcd.4.auto: USB bus 2 deregistered
> [ 574.399544] xhci-hcd: probe of xhci-hcd.4.auto failed with error -110
>
> [...]

I have applied the following to branch ti-k3-dts-next on [1].
Thank you!

[1/1] arm64: dts: ti: k3-am62-main: disable usb lpm
commit: 576ad1d1d8b12a632598f7963d640f9422781f9a

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
--
Vignesh