Thread (16 messages) 16 messages, 2 authors, 22d ago

Re: xhci_hcd / ASMedia ASM4242: Bulk-OUT -EPROTO with Logitec 0789:0308 during DVD+RW recording

From: Michal Pecio <hidden>
Date: 2026-09-04 18:30:29
Also in: lkml

Hi,

Please wrap your lines at 72 characters and maybe ask your LLM to write
something that a human can read within reasonable timeframe ;)

On Sat,  5 Sep 2026 00:46:52 +0900, wakasio wrote:
On an AMD X870E system with an onboard ASMedia ASM4242
USB4/Thunderbolt host controller (PCI ID 1b21:2426), a specific USB
Bulk-Only-Transport optical drive (HL-DT-ST BD-RE BU40N, running
"OmniDrive" third-party firmware) reliably fails during sustained
large writes (optical disc burning, i.e. SCSI WRITE(10) with large
multi-block data-out phases) when connected through this controller's
ports. The Bulk-OUT data-stage URB completes with -EPROTO after
transferring only part of the requested data, at an unpredictable
byte offset, well before completion.

The exact same physical cable, adapter, and drive succeed 100% of the
time (byte-perfect, verified via SHA-1 against known-good reference
images) on every other USB controller in the same machine (a separate
10Gbps Type-C host path/controller, the chipset's own rear USB-A
ports, and a front-panel Type-C port). A second, completely different
USB mass-storage device (an internal DVD-RAM drive, HL-DT-ST DVDRAM
GUD1N, attached via an unrelated ASMedia USB-to-SATA bridge dongle)
succeeds 100% of the time on the same problem controller/port that
fails for the BU40N drive.

Read operations (large Bulk-IN transfers, e.g. ripping discs with the
same drive through the same controller) have never failed in several
days of prior use. The failure has so far only been observed with
this device/controller combination during sustained higher-rate
DVD+RW recording workloads. Bulk-OUT is necessary for the observed
failure, but is not by itself sufficient: CD-R and 2x DVD-RAM writes
on the same device/controller combination completed successfully (see
test matrix below).
EPROTO would typically be bad link quality or some protocol violation
by one or another end of the link. I guess you could try other cables;
gigabit serial links are practically voodo magic.

One quick check worth trying would be to see if xHCI "soft retries" are
being used and to what effect. Run:

  echo 'func handle_tx_event +p' >/proc/dynamic_debug/control
  echo 'func xhci_reset_halted_ep +p' >/proc/dynamic_debug/control

and see how much "Transfer error" and "Soft-reset ep" spam you get. Is
it constant background noise or only one burst and then "Hard-reset"?

Regards,
Michal
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help