Re: Different speed of USB control transfers for HS USB devices depending on used USB port

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michal,

On Mon, Dec 9, 2024 at 11:03 PM Michał Pecio <michal.pecio@xxxxxxxxx> wrote:
> I see obvious pattern that the bad ports are bus 001 and the good port
> is bus 003, and they are two different chips.
>
> Do you see similar correlation with chip types on other motherboards?

Yes. Here's the result of my test:

HCs which show the problem:
Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 xHCI
Compliant Host Controller [1022:43d5] (rev 01)
Advanced Micro Devices, Inc. [AMD] 500 Series Chipset USB 3.1 XHCI
Controller [1022:43ee]
Advanced Micro Devices, Inc. [AMD] 600 Series Chipset USB 3.2
Controller [1022:43f7] (rev 01)

HCs which don't show the problem:
Advanced Micro Devices, Inc. [AMD] Device [1022:15b6]
Advanced Micro Devices, Inc. [AMD] Device [1022:15b7]
Advanced Micro Devices, Inc. [AMD] Device [1022:15b8]
Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller
[8086:a36d] (rev 10)

The tests were done without any external hubs.

> Generally, with xHCI it's on the controller to packetize and schedule
> such transfers, so this is likey a hardware problem.

Sounds plausible. On one of the systems I also booted Windows and I
observed exactly the same issue.

Since most USB devices use control requests mainly for the enumeration
with quite small data sizes, the problem is typically not visible.

I stumbled over the issue when using DFU (Device Firmware Upgrade).
DFU does all data transfer via control requests and so any larger data
transfer with the problematic HCs is about 50 times slower.

I'm open for any suggestions on how to proceed from here.

Best regards,
Christian





[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux