Both HDMI and DP external displays no longer working

I’ve been away for a few weeks and suddenly the two external displays I’m using on my Framework 16—one connected by HDMI and one by DisplayPort—both stopped working. I had not updated drivers or kernel during my time away, although I have now as part of my initial attempts to solve the problem (with no visible change).

Connecting the cable for either of the displays gives me a sequence like this:

[  +5.525411] usb 7-1: USB disconnect, device number 3
[  +1.314449] ucsi_acpi USBC000:00: unknown error 256
[  +0.000011] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[  +0.286807] ucsi_acpi USBC000:00: unknown error 256
[  +0.000012] ucsi_acpi USBC000:00: con4: failed to register partner alt modes (-5)
[  +0.668679] usb 7-1: new full-speed USB device number 4 using xhci_hcd
[  +0.143457] amdgpu 0000:c1:00.0: [drm] Alt mode has timed out after 214 ms
[  +0.030560] usb 7-1: New USB device found, idVendor=32ac, idProduct=0002, bcdDevice= 0.00
[  +0.000009] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0.000005] usb 7-1: Product: HDMI Expansion Card
[  +0.000002] usb 7-1: Manufacturer: Framework
[  +0.000003] usb 7-1: SerialNumber: 11AD1D00A49C4010191D0B00
[  +0.062290] hid-generic 0003:32AC:0002.0019: hiddev97,hidraw2: USB HID v1.11 Device [Framework HDMI Expansion Card] on usb-0000:c3:00.4-1/input1
[  +1.241587] ucsi_acpi USBC000:00: unknown error 256
[  +0.000013] ucsi_acpi USBC000:00: con4: failed to register partner alt modes (-5)
[  +0.242797] ucsi_acpi USBC000:00: unknown error 256
[  +0.000010] ucsi_acpi USBC000:00: con4: failed to register partner alt modes (-5)

I believe I’ve had GET_CABLE_PROPERTY errors since forever and they weren’t an issue before, but don’t quote me on that.

The monitor isn’t detected by the window manager, and I’m trying to figure out whether Linux even sees the video device or not. I don’t know how to introspect these kinds of things, unfortunately. Any advice?

System setup: Arch with Linux 6.10.5, sway/wayland, no graphics module so iGPU only.

When I first got my FW16 ( using Arch Linux with KDE Plasma + wayland ), my external displays didn’t work but I later found I didn’t have “kscreen” installed which monitors whether I’ve plugged in external displays or not

I’ve not used sway before but does sway have something similar?

If so, check that, for whatever reason, something may have changed there

I don’t think there ever was something like that in sway… and it surely wouldn’t have changed during that period, as I kept the laptop in sleep mode the entire time. I didn’t reboot between plugging them off and putting them back on today, which makes software changes not the most natural culprit.

I should add that I also tested rebooting with the monitors already plugged in, which didn’t work, and I confirmed that the HDMI display does work with another device.

yeah sorry, I forgot you mentioned the “no changes”.

I looked at the errors ( I have some of these errors too but my external displays are working ) and then I thought about the “kscreen” issue I had

For reference, can you share what your dmesg output looks like with working monitors? I’d like to know whether it’s normal to have a disconnect when plugging the display, to have the expansion card be detected even though it was always there, whether specific driver messages are expected, and whether the display itself should appear as a new device.

the errors I see are

[ 3775.000486] ucsi_acpi USBC000:00: unknown error 256
[ 3775.000515] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[ 5695.616960] ucsi_acpi USBC000:00: unknown error 256
[ 5695.616971] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)

but I think they’re BIOS errors and framework is aware of them

this is when it connects

[ 8931.301038] ucsi_acpi USBC000:00: unknown error 256
[ 8931.301054] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[ 8931.641118] usb 1-1: new full-speed USB device number 14 using xhci_hcd
[ 8931.789807] usb 1-1: not running at top speed; connect to a high speed hub
[ 8931.809802] usb 1-1: New USB device found, idVendor=2109, idProduct=0103, bcdDevice=31.36
[ 8931.809810] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8931.809813] usb 1-1: Product: USB 2.0 BILLBOARD
[ 8931.809815] usb 1-1: Manufacturer: VLI Inc.
[ 8931.809817] usb 1-1: SerialNumber: 0000000000000001

and when it disconnects

[ 8936.568277] usb 1-1: USB disconnect, device number 14

This is displayport and it’s not the framework displayport module but I’ll try that

This is when I plugged in the displayport module ( display not connected ) in port 2

[ 9121.304965] ucsi_acpi USBC000:00: unknown error 256
[ 9121.304972] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[ 9121.548126] usb 1-1: new full-speed USB device number 18 using xhci_hcd
[ 9121.713159] usb 1-1: New USB device found, idVendor=32ac, idProduct=0003, bcdDevice= 0.00
[ 9121.713168] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9121.713171] usb 1-1: Product: DisplayPort Expansion Card
[ 9121.713173] usb 1-1: Manufacturer: Framework
[ 9121.713175] usb 1-1: SerialNumber: 11AD1D006E09301332060B00
[ 9121.790474] hid-generic 0003:32AC:0003.0014: hiddev98,hidraw7: USB HID v1.11 Device [Framework DisplayPort Expansion Card] on usb-0000:c2:00.3-1/input1

This is when I plug in my display panel

[ 9168.619736] usb 1-1: USB disconnect, device number 18
[ 9170.021983] ucsi_acpi USBC000:00: unknown error 256
[ 9170.021990] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[ 9170.560137] usb 1-1: new full-speed USB device number 19 using xhci_hcd
[ 9170.721519] usb 1-1: New USB device found, idVendor=32ac, idProduct=0003, bcdDevice= 0.00
[ 9170.721530] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9170.721534] usb 1-1: Product: DisplayPort Expansion Card
[ 9170.721537] usb 1-1: Manufacturer: Framework
[ 9170.721540] usb 1-1: SerialNumber: 11AD1D006E09301332060B00
[ 9170.783855] hid-generic 0003:32AC:0003.0015: hiddev98,hidraw7: USB HID v1.11 Device [Framework DisplayPort Expansion Card] on usb-0000:c2:00.3-1/input1

This is when I unplug my display panel

[ 9203.246994] usb 1-1: USB disconnect, device number 19
[ 9204.644004] ucsi_acpi USBC000:00: unknown error 256
[ 9204.644015] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[ 9204.888122] usb 1-1: new full-speed USB device number 20 using xhci_hcd
[ 9205.049759] usb 1-1: New USB device found, idVendor=32ac, idProduct=0003, bcdDevice= 0.00
[ 9205.049770] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9205.049773] usb 1-1: Product: DisplayPort Expansion Card
[ 9205.049776] usb 1-1: Manufacturer: Framework
[ 9205.049778] usb 1-1: SerialNumber: 11AD1D006E09301332060B00
[ 9205.118977] hid-generic 0003:32AC:0003.0016: hiddev98,hidraw7: USB HID v1.11 Device [Framework DisplayPort Expansion Card] on usb-0000:c2:00.3-1/input1

and this is removing the displayport module

[ 9230.213289] usb 1-1: USB disconnect, device number 20

This is with the power adapter ( framework 180W ) plugged in port 1 and displayport module is 2nd gen by framework, not upgraded by me

1 Like

Thanks, so really the only differences are the alt mode messages. The failed to register partner alt modes (-5) error appears not critical as it shows up in multiple other threads that discuss displays still working with them (e.g. [1], [2]) and I think I had them before myself. This leaves the amdgpu driver message:

[  +0.143457] amdgpu 0000:c1:00.0: [drm] Alt mode has timed out after 214 ms

which is new and looks the most relevant because of [drm]. I don’t know how to diagnose this subsystem though.

Other random information: I did try to swap out the cards in slots 1, 2 and 4, i.e. the ones with display output, to no effect.

Yeah, sorry I’m no more of help on that

I’m under the impression that it’s a software issue and not hardware but I could be wrong

If hardware issue then maybe talk to framework support about this.

Ask around on discord before hand, some helpful people there

Seems like drm really sees only the laptop display.

% for x in /sys/class/drm/card1-*; do echo -n $x ": "; cat $x/status; done 
/sys/class/drm/card1-DP-1 : disconnected
/sys/class/drm/card1-DP-2 : disconnected
/sys/class/drm/card1-DP-3 : disconnected
/sys/class/drm/card1-DP-4 : disconnected
/sys/class/drm/card1-DP-5 : disconnected
/sys/class/drm/card1-DP-6 : disconnected
/sys/class/drm/card1-DP-7 : disconnected
/sys/class/drm/card1-DP-8 : disconnected
/sys/class/drm/card1-eDP-1 : connected
/sys/class/drm/card1-Writeback-1 : unknown

When no external display connected

/sys/class/drm/card1-DP-1 : disconnected
/sys/class/drm/card1-DP-2 : disconnected
/sys/class/drm/card1-DP-3 : disconnected
/sys/class/drm/card1-DP-4 : disconnected
/sys/class/drm/card1-DP-5 : disconnected
/sys/class/drm/card1-DP-6 : disconnected
/sys/class/drm/card1-DP-7 : disconnected
/sys/class/drm/card1-DP-8 : disconnected
/sys/class/drm/card1-eDP-1 : connected
/sys/class/drm/card1-Writeback-1 : unknown

with one external display connected ( using my ugreen displayport adapter or framework displayport module ) in port 4

/sys/class/drm/card1-DP-1 : disconnected
/sys/class/drm/card1-DP-2 : disconnected
/sys/class/drm/card1-DP-3 : disconnected
/sys/class/drm/card1-DP-4 : connected
/sys/class/drm/card1-DP-5 : disconnected
/sys/class/drm/card1-DP-6 : disconnected
/sys/class/drm/card1-DP-7 : disconnected
/sys/class/drm/card1-DP-8 : disconnected
/sys/class/drm/card1-eDP-1 : connected
/sys/class/drm/card1-Writeback-1 : unknown

Thank you, so something fairly low-level has to be wrong.

Focusing on the alt mode message which also appears in [1], I followed the suggestion of enabling DRM debug logging. I toggled the CORE, DRIVER and KMS categories (echo 0x7 >1 /sys/module/drm/parameters/debug) and filtered out the messages that appeared repeatedly all the time irrespective of plugging an external display on/off (supposedly related to driving my laptop display). There were quite a few, so for future reference the command was

% sudo dmesg -wP | grep -vE "VRR packet update|PSR (SU|FFU) dirty rect|OBJ ID: [0-9]+|amdgpu_ih_process|CP EOP|drm_ioctl"

with this setup, the output when plugging in the HDMI display is as follows:

[43800.454342] usb 7-1: USB disconnect, device number 18
[43801.767212] ucsi_acpi USBC000:00: unknown error 256
[43801.767230] ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
[43802.055281] ucsi_acpi USBC000:00: unknown error 256
[43802.055290] ucsi_acpi USBC000:00: con4: failed to register partner alt modes (-5)
[43802.663102] amdgpu 0000:c1:00.0: [drm:detect_link_and_local_sink [amdgpu]] DP Alt mode state on HPD: 0
[43802.723964] usb 7-1: new full-speed USB device number 19 using xhci_hcd
[43802.897808] usb 7-1: New USB device found, idVendor=32ac, idProduct=0002, bcdDevice= 0.00
[43802.897820] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[43802.897826] usb 7-1: Product: HDMI Expansion Card
[43802.897831] usb 7-1: Manufacturer: Framework
[43802.897835] usb 7-1: SerialNumber: 11AD1D00A49C4010191D0B00
[43802.903400] amdgpu 0000:c1:00.0: [drm] Alt mode has timed out after 239 ms
[43802.903405] amdgpu 0000:c1:00.0: [drm:link_detect [amdgpu]] link_detect: link_index=3 is_local_sink_detect_success=0 pre_link_type=0 link_type=1
[43802.962447] hid-generic 0003:32AC:0002.002B: hiddev97,hidraw2: USB HID v1.11 Device [Framework HDMI Expansion Card] on usb-0000:c3:00.4-1/input1
[43804.235542] ucsi_acpi USBC000:00: unknown error 256
[43804.235552] ucsi_acpi USBC000:00: con4: failed to register partner alt modes (-5)
[43804.428590] ucsi_acpi USBC000:00: unknown error 256
[43804.428596] ucsi_acpi USBC000:00: con4: failed to register partner alt modes (-5)

Same with the DP display. However, I noticed that when unplugging there is a hotplug event generated

[45212.165756] amdgpu 0000:c1:00.0: [drm:drm_sysfs_connector_hotplug_event] [CONNECTOR:112:DP-3] generating connector hotplug event
[45212.165779] amdgpu 0000:c1:00.0: [drm:drm_client_dev_hotplug] fbdev: ret=0
[45212.170344] amdgpu 0000:c1:00.0: [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:112:DP-3]
[45212.170348] amdgpu 0000:c1:00.0: [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:112:DP-3] disconnected

There is no such event when plugging in either of the displays, I’m not sure whether that’s normal.

I could only find a single driver issue [2] with this message and it looks unrelated, plus it’s fixed anyway.

I’m short on time now but I will try this out on mine later today

1 Like

The log is quite large but maybe there something in there that might catch your attention

There’s a lot more indeed. I see things such as

[48312.022212] amdgpu 0000:c2:00.0: [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:117:DP-4] status updated from disconnected to connected 

as well as two hotplug events (I assume you plugged it in then out?), a list of probed modes on DP-4, and overall a lot of setup information that doesn’t occur for me.

As far as alt mode is concerned, you have

[48311.794202] amdgpu 0000:c2:00.0: [drm:detect_link_and_local_sink [amdgpu]] DP Alt mode state on HPD: 1 

which I do not, so it seems like setting alt modes is the origin of my problem and it timing out is preventing the rest of the setup from happening. I’ll try and understand what these are because I’ve seen them discussed in the context of DP but they show up for HDMI as well, so I’m a bit confused.

Ok, so from what I could gather (probably common knowledge around here, but still…) alt modes are a USB-C hardware feature which allows rearranging pins to optimize for certain protocols, and it’s used mainly for DisplayPort and Thunderbolt. The name “DP Alt Mode” refers to a USB-C port using its alt mode for DP, not a DP-specific thing. Apparently an HDMI alt mode also exists but it seems like driving HDMI displays with USB-C usually happens under the DisplayPort alt-mode with some adaptor. In both cases, setting a USB-C alt mode is required to drive a display with HDMI.

And thus it stands to reason that an error while setting an alt mode would prevent any display driving. I think setting alt mode should be a firmware thing then? Anyone knows how I can introspect/debug this?

(I wanted to update the title but apparently I can’t.)

I assumed framework HDMI module has a chip inside which literally hosts HDMI inside USB-C rather than alt mode like DisplayPort.

I thought the USB body approached HDMI to do alt mode with USB-C but they (HDMI) didn’t complete it.

<offtopic>

AMD later wanted to make an open implementation of HDMI but HDMI forum refused/rejected this

I understand ( not against it ) that you want your HDMI working, I simply vote with my wallet and refuse to use HDMI

</offtopic>

1 Like

I’ve been following the lead that the problem first occurs while setting a USB-C alt mode.

I located the relevant driver, which is /lib/modules/$(uname -r)/kernel/drivers/usb/typec/altmodes/typec_displayport.ko.zst. Interestingly, it was not loaded. It could be loaded on-demand, but since drm was trying to set an alt mode (supposedly DisplayPort, what else?) this sounds curious to me. Anyway, loading it manually didn’t have an effect either.


And then I realized that I had not updated the BIOS to 3.03 like I thought I had. (>_>) Updating gave me my displays back, although it’s unclear to me whether it was a firmware issue (after all it’d always worked with 3.02?!) or whether the update reset some state that was stuck with the USB controller. This suspicion is because I’ve seen posts discussing alt-mode issues going away after using a different OS/kernel.

Circling back on previous considerations, now that it works (at boot + hotplugging + sleep, from quick tests):

  • I no longer get the “Alt mode has timed out” messages
  • I also (slightly unexpectedly) no longer get the “failed to register partner alt modes” messages, so they might have been part of the issue
  • The /sys/class/drm/card1-*/status obviously says “connected
  • The typec_displayport kernel module loads itself automatically

I’d have liked to find a root cause for this, but with my skill I think I should just be happy that it works for now. ^^" Thanks @sinatosk for the help, much appreciated. Mods, please feel free to mark resolved (I still don’t see how to do it myself).

I actually didn’t know about any of that! I can’t say I like it either. Will keep in mind…

Heh, so it was a software issue :wink:

I didn’t think it was BIOS because I assumed you already updated to that.

1 Like