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

From: Andrejs Cainikovs
Date: Wed Feb 14 2024 - 04:53:21 EST


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@xxxxxxxxxxx>
>>
>> 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@xxxxxxxxxxx>
>> ---
>> 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@xxxxxxxxxx/
>