Please note that I've asked AI to write the following summary after an extensive debugging session.
Summary
The tps6598x USB-C PD/alt-mode controller driver repeatedly fails with tps6598x_read_status: failed to read status, preventing DP Alt Mode and USB 3.x negotiation. All USB-C hubs/devices fall back to USB 2.0 only. HDMI video output via DP Alt Mode does not work.
Hardware
- Device: MacBook Air (M1, J813)
- Kernel:
7.1.6-1-1-ARCH (7.1.6.asahi1-1-ARCH)
- USB-C controller: TI CD321x (
tps6598x at I2C address 0-0038)
Symptoms
- USB-C hub that support USB 3.1 / Thunderbolt 3 enumerate as USB 2.0 (480 Mbps) only
- No USB 3.x superspeed lanes are ever negotiated
- DP Alt Mode never establishes — HDMI video output from USB-C hub does not work
- All USB 2.0 devices on the hub function normally (keyboard, mouse, mass storage, LAN, etc.)
- Same hub works correctly on macOS — hardware is fine
dmesg output
tps6598x 0-0038: tps6598x_read_status: failed to read status
tps6598x 0-0038: cd321x_interrupt: failed to read events
These errors repeat continuously at boot and on every hotplug event.
Relevant kernel config
CONFIG_TYPEC=y
CONFIG_TYPEC_TCPM=y
CONFIG_TYPEC_TCPCI=y
CONFIG_TYPEC_UCSI=y
CONFIG_TYPEC_TPS6598X_CORE=y
CONFIG_TYPEC_TPS6598X=y
CONFIG_TYPEC_DP_ALTMODE=y
CONFIG_USB_APPLEDISPLAY=y
The driver is present and loaded. The failure is at runtime during I2C status reads.
Reproduction
- Connect the USB-C hub with DP Alt Mode video output
- Observe dmesg — repeated
tps6598x_read_status: failed to read status
- Check
/sys/bus/usb/devices/*/speed — hub and all downstream devices show 480 (USB 2.0)
- Video output does not work
- Same hub on macOS works at USB 3.x speeds with video output
Expected behavior
tps6598x should successfully read controller status
- USB 3.x lanes should negotiate when the hub supports it
- DP Alt Mode should establish, enabling video output via USB-C hubs
Actual behavior
tps6598x I2C reads fail immediately
- Fallback to USB 2.0-only operation
- No video output possible via USB-C hubs
Notes
- This appears to be a hardware/firmware quirk specific to this J813 unit — the driver works in principle but the I2C communication with the controller fails at runtime
- A full power cycle of the hub can temporarily restore USB 2.0 device enumeration, but USB 3.x and DP Alt Mode remain unavailable
- No DisplayLink is involved — this is native DP Alt Mode hardware that the kernel driver cannot initialize
Please note that I've asked AI to write the following summary after an extensive debugging session.
Summary
The
tps6598xUSB-C PD/alt-mode controller driver repeatedly fails withtps6598x_read_status: failed to read status, preventing DP Alt Mode and USB 3.x negotiation. All USB-C hubs/devices fall back to USB 2.0 only. HDMI video output via DP Alt Mode does not work.Hardware
7.1.6-1-1-ARCH(7.1.6.asahi1-1-ARCH)tps6598xat I2C address0-0038)Symptoms
dmesg output
These errors repeat continuously at boot and on every hotplug event.
Relevant kernel config
The driver is present and loaded. The failure is at runtime during I2C status reads.
Reproduction
tps6598x_read_status: failed to read status/sys/bus/usb/devices/*/speed— hub and all downstream devices show480(USB 2.0)Expected behavior
tps6598xshould successfully read controller statusActual behavior
tps6598xI2C reads fail immediatelyNotes