[v1] arm64: dts: ti: k3-am62-main: disable usb lpm

Message ID 20240209130213.38908-1-andrejs.cainikovs@gmail.com
State New
Headers
Series [v1] arm64: dts: ti: k3-am62-main: disable usb lpm |

Commit Message

Andrejs Cainikovs Feb. 9, 2024, 1:02 p.m. UTC
  From: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>

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 <andrejs.cainikovs@toradex.com>
---
 arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Roger Quadros Feb. 12, 2024, 12:13 p.m. UTC | #1
Hi Andrejs,

On 09/02/2024 15:02, Andrejs Cainikovs wrote:
> From: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
> 
> 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 <andrejs.cainikovs@toradex.com>
> ---
>  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/20240205141221.56076-1-rogerq@kernel.org/
  
Francesco Dolcini Feb. 12, 2024, 12:54 p.m. UTC | #2
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/20240205141221.56076-1-rogerq@kernel.org/

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
  
Roger Quadros Feb. 13, 2024, 11:34 a.m. UTC | #3
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/20240205141221.56076-1-rogerq@kernel.org/
> 
> 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.
  
Francesco Dolcini Feb. 13, 2024, 11:43 a.m. UTC | #4
On Fri, Feb 09, 2024 at 02:02:12PM +0100, Andrejs Cainikovs wrote:
> From: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
> 
> 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 <andrejs.cainikovs@toradex.com>

Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>

Francesco
  
Roger Quadros Feb. 14, 2024, 9:25 a.m. UTC | #5
On 09/02/2024 15:02, Andrejs Cainikovs wrote:
> From: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
> 
> 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 <andrejs.cainikovs@toradex.com>

Reviewed-by: Roger Quadros <rogerq@kernel.org>
  
Andrejs Cainikovs Feb. 14, 2024, 9:46 a.m. UTC | #6
On 12/02/2024 13:13, Roger Quadros wrote:
> Hi Andrejs,
> 
> On 09/02/2024 15:02, Andrejs Cainikovs wrote:
>> From: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
>>
>> 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 <andrejs.cainikovs@toradex.com>
>> ---
>>  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/20240205141221.56076-1-rogerq@kernel.org/
>
  
Vignesh Raghavendra Feb. 15, 2024, 9:45 a.m. UTC | #7
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
  

Patch

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;
 		};
 	};