Skip to contentSkip to conversation

BUG Found, was: USB-Serial FT4232H unusable with kernel 5.9.x

DISCUSSION Andy Shevchenko 1 participant 2 messages Oct 30, 2020 1 message not in the archive USB

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): 21357769.49031603989896975.JavaMail.root@pr006msr

#1 lore raw
Quoted 1 line · On Thu, Oct 29, 2020 at 05:44:56PM +0100, [email protected] wrote:

By bisecting the regression I found that the FT4232 was only an innocent bystander. The real culprit was the PCIe-USB adapter that stopped sending interrupts (or sent wrong interrupts) in kernel 5.9. I have just removed the whole patch and my system is working again as in 5.8.I hope that someone will revise this patch considering that the Pericom PI7C9X440SL is affected by it.

Thank you for the report!

Can you share output of

% lspci -vvv -nk -s <XXX> # where <XXX> is a slot of PCIe USB

for working and non-working cases?

Quoted 3 lines

Here's the commit responsible:

commit 306c54d0edb6 usb: hcd: Try MSI interrupts on PCI devices

This commit per se should not affect devices which rightfully announce MSI support. It is possible that I have missed something or above mentioned device is not MSI compatible.

Btw, can this PCIe-USB be connected to completely different motherboard / machine for a testing purposes? It might be that PCI host bridge is not friendly with the device or other way around.

...

Quoted 8 lines

With 5.9 I noticed that these delays are dependent on how the ports are mapped t o linux devices:- if I remove the JTAG
quirk and allow all ports to be connected to ttyUSBs, there seems to
be no delay before the first message: 33 usec as in linux 5.8. Of course I cannot then configure the first two ports for JTAG (FTOpen fails).
- conversely, if I
remove the ftdi_sio module (with all ttyUSB devices) the initial delay
is even longer (7.6 seconds), and then the (slow) JTAG configuration s ucceeds.
Can someone confirm and investigate? Does the same happen with ST Micro Connect Lite?
And how can I debug this one?

Can you also monitor /proc/interrupts for working and non-working cases? Simply share its contents as well.

Signature · 2 lines
With Best Regards,
Andy Shevchenko
#2 lore raw
Quoted 35 lines · Andy Shevchenko
Quoted 1 line · On Thu, Oct 29, 2020 at 05:44:56PM +0100, [email protected] wrote:

By bisecting the regression I found that the FT4232 was only an innocent bystander. The real culprit was the PCIe-USB adapter that stopped sending interrupts (or sent wrong interrupts) in kernel 5.9. I have just removed the whole patch and my system is working again as in 5.8.I hope that someone will revise this patch considering that the Pericom PI7C9X440SL is affected by it.

Thank you for the report!

Can you share output of

% lspci -vvv -nk -s <XXX> # where <XXX> is a slot of PCIe USB

for working and non-working cases?

Quoted 3 lines

Here's the commit responsible:

commit 306c54d0edb6 usb: hcd: Try MSI interrupts on PCI devices

This commit per se should not affect devices which rightfully announce MSI support. It is possible that I have missed something or above mentioned device is not MSI compatible.

Btw, can this PCIe-USB be connected to completely different motherboard / machine for a testing purposes? It might be that PCI host bridge is not friendly with the device or other way around.

...

Quoted 8 lines

With 5.9 I noticed that these delays are dependent on how the ports are mapped t o linux devices:- if I remove the JTAG
quirk and allow all ports to be connected to ttyUSBs, there seems to
be no delay before the first message: 33 usec as in linux 5.8. Of course I cannot then configure the first two ports for JTAG (FTOpen fails).
- conversely, if I
remove the ftdi_sio module (with all ttyUSB devices) the initial delay
is even longer (7.6 seconds), and then the (slow) JTAG configuration s ucceeds.
Can someone confirm and investigate? Does the same happen with ST Micro Connect Lite?
And how can I debug this one?

Quoted 2 lines

Can you also monitor /proc/interrupts for working and non-working cases? Simply share its contents as well.

Also, can you add 'ignore_loglevel' to the kernel command line and add dmesg output of working and non-working cases?

(You may share the archive or set of files via some share service and give a
link here)

Signature · 2 lines
With Best Regards,
Andy Shevchenko