HDMI USB-C expansion card not working

Which Linux distro are you using? Fedora

Which release version? 43

Which kernel are you using? 6.17.12-300.fc43.x86_64

Which BIOS version are you using? 03.17

Which Framework Laptop 13 model are you using? AMD Ryzen™ 7040 Series

So I plugged in my laptop to my HiSense TV yesterday using the HDMI expansion port, it was fine until I unplug, and plugged it in again. Today, I was trying to troubleshoot the issue, it seems like when I unplug and plug the module, it displays this error message: ucsi_acpi USBC000:00: unknown error 256.

Troubleshooting methods I did:

  • Unplugging and replugging
  • Powering off the system and disconnecting the battery for 90 seconds

Kernel Logs:

[47005.375822] ucsi_acpi USBC000:00: unknown error 256
[47005.375834] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[47006.434385] usb 3-2: new full-speed USB device number 6 using xhci_hcd
[47006.595263] usb 3-2: New USB device found, idVendor=32ac, idProduct=0002, bcdDevice= 0.00
[47006.595281] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[47006.595289] usb 3-2: Product: HDMI Expansion Card
[47006.595295] usb 3-2: Manufacturer: Framework
[47006.595301] usb 3-2: SerialNumber: 11AD1D00028940122C0D0B00
[47006.662158] hid-generic 0003:32AC:0002.001E: hiddev96,hidraw3: USB HID v1.11 Device [Framework HDMI Expansion Card] on usb-0000:c1:00.3-2/input1
[47021.585202] lockdown_is_locked_down: 4 callbacks suppressed
[47021.585209] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
[47097.122444] usb 3-4: reset full-speed USB device number 2 using xhci_hcd
[47097.386353] usb 3-4: reset full-speed USB device number 2 using xhci_hcd
[47149.186526] wlp1s0: disconnect from AP 50:d4:f7:a5:c8:fb for new auth to 50:d4:f7:a5:df:c7
[47149.415965] wlp1s0: authenticate with 50:d4:f7:a5:df:c7 (local address=da:25:c5:20:f4:45)
[47149.431407] wlp1s0: send auth to 50:d4:f7:a5:df:c7 (try 1/3)
[47149.434404] wlp1s0: authenticated
[47149.435100] wlp1s0: associate with 50:d4:f7:a5:df:c7 (try 1/3)
[47149.450730] wlp1s0: RX ReassocResp from 50:d4:f7:a5:df:c7 (capab=0x1511 status=0 aid=5)
[47149.483575] wlp1s0: associated
[47149.483665] wlp1s0: Limiting TX power to 30 (30 - 0) dBm as advertised by 50:d4:f7:a5:df:c7
[47479.588717] usb 3-4: reset full-speed USB device number 2 using xhci_hcd
[47479.856676] usb 3-4: reset full-speed USB device number 2 using xhci_hcd
[47515.400067] usb 3-2: USB disconnect, device number 6
[47519.667523] ucsi_acpi USBC000:00: unknown error 256
[47519.667540] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[47520.697305] usb 3-2: new full-speed USB device number 7 using xhci_hcd
[47520.857195] usb 3-2: New USB device found, idVendor=32ac, idProduct=0002, bcdDevice= 0.00
[47520.857213] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[47520.857219] usb 3-2: Product: HDMI Expansion Card
[47520.857225] usb 3-2: Manufacturer: Framework
[47520.857229] usb 3-2: SerialNumber: 11AD1D00028940122C0D0B00
[47520.936964] hid-generic 0003:32AC:0002.001F: hiddev96,hidraw3: USB HID v1.11 Device [Framework HDMI Expansion Card] on usb-0000:c1:00.3-2/input1
^T[47793.425163] usb 3-4: reset full-speed USB device number 2 using xhci_hcd
[47793.691747] usb 3-4: reset full-speed USB device number 2 using xhci_hcd
[47829.777252] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7

The HDMI standard requires the use of HDCP, a “High-bandwidth Digital Content Protection (HDCP) is a form of digital copy protection developed by Intel Corporation to prevent copying of digital audio and video content as it travels across connections.”

This requires that every part of the stream of data from one HDMI device to another has to meet the exacting specifications to try to prevent making unauthorized digital copies of the data being transmitted.

There have been 16 different versions of the HDMI specifications from HDMI 1.0 to HDMI 2.2. The HDMI Forum has not allowed the HDMI 2.1 version from 2017 to be used in the open source drivers used by Linux.

If the HDCP detects a possible “problem” anywhere in the chain, it can prevent the transmission of the data.

It may be that the cable(s) you are using to connect your Framework’s HDMI port to the input HDMI port on your TV has become damaged in some way and that is preventing the video signal from reaching your TV. If you have another HDMI cable try using that and see if it works. There are different versions of HDMI cables. Higher version HDMI cables are backwardly compatible. You will have fewer problems if you buy high quality, more expensive HDMI cables than the cheapest ones available.

Also power cycle your TV and your Framework to see if that helps.

If your TV is connected directly to the Internet, your TV might have gotten a firmware upgrade which may be related to this problem.

If your TV has a display port or DVI input, that may be less likely to have problems than HDMI which can be very problematic because of the different versions and the HDCP copy protection.

You could also try using a USB C hub which has it’s own HDMI port rather than using the Framework HDMI expansion card.

https://en.wikipedia.org/wiki/High-bandwidth_Digital_Content_Protection

https://en.wikipedia.org/wiki/HDMI

It turns out the TV wasn’t an issue, it seems to be the HDMI module itself, which produced that error (seen the kernel log). Not sure how I managed to cause that issue yesterday, as before it was fine.

I was able to figure out that it was the HDMI expansion card as I unplugged and replugged the module from the Framework Laptop itself.