USB-C Displayport Inconsistent Operation

Display ports via Kensington UH1450P USB-C hub inconsistently works with Framework 13 mainboard. Anyone got ideas for how to diagnose or fix?

symptoms:

  • Framework will not always recognize display port attached monitors on USB-C hub
  • Problem seems to be with Framework or Framework OS configuration
  • DP Monitor seems to work if device is left unplugged for significant period
    • don’t remember it working when I set device aside a few months ago
    • DP worked fine this morning initially
  • DP Monitor stops working when system is updated
    • have not used board in awhile
    • I ran updates, restarted without unplugging or changing configuration and immediately lost video
    • this has happened before
    • not limited to updates
    • seems to start working aga

troubleshooting = why suspect Framework issue

  • OS sees Hub
    • Other hub ports (USB and network) work when DP USB-C is not working with Framework
    • lsusb output for hub below
  • DP Monitor still works with other devices
  • Unplugging monitor cable from hub and plugging back in triggers source scan on monitor
  • Disconnecting and reconnecting USB-C hub does not work, keyboard and flashdrives reconnect
  • Shutdown of board + disconnecting power for 1 minute does not work

lsusb -v output for HUB:

Bus 003 Device 011: ID 047d:810e Kensington UH1450P USB-C Mobile Dock
Couldn’t open device, some information will be missing
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               2.01
bDeviceClass           17 Billboard
bDeviceSubClass         0 \[unknown\]
bDeviceProtocol         0
bMaxPacketSize0        64
idVendor           0x047d Kensington
idProduct          0x810e UH1450P USB-C Mobile Dock
bcdDevice            0.01
iManufacturer           1 VIA Labs, Inc.
iProduct                2 UH1450P USB-C Mobile Dock
iSerial                 3 0000000000000001
bNumConfigurations      1
Configuration Descriptor:
bLength                 9
bDescriptorType         2
wTotalLength       0x0012
bNumInterfaces          1
bConfigurationValue     1
iConfiguration          3
bmAttributes         0xc0
Self Powered
MaxPower              100mA
Interface Descriptor:
bLength                 9
bDescriptorType         4
bInterfaceNumber        0
bAlternateSetting       0
bNumEndpoints           0
bInterfaceClass        17 Billboard
bInterfaceSubClass      0 \[unknown\]
bInterfaceProtocol      0
iInterface              3

what hardware:

  • Framework Laptop 13 Mainboard (AMD RyzenTM AI 300 Series) - RyzenTM AI 5 340
    • no case
    • no laptop
    • no battery connected to Frame.work battery connector
  • Fedora Linux 42 cinnamon 6.4.9 kernel 6.18.7…updated today
    • edit: issue persists to Fedora Linux 43 6.18.7-100.fc42.x86_64
    • edit: issue persists across Bios change before 3.04 now 3.05
  • Hub: Kensington UH1450P
  • Charger: Anker 82679 Nano Charger (100W) with USB-C; X004B9GLKP
  • Monitor USB-C: Dell P1424H Portable USB-C monitor takes 7.5W max and I’ve previously run USB-C monitor with USB-C hub + DisplayPort to Dell DisplayPort monitor without issue

what connections

  • connections:
    • Power on fan side
    • USB-C hub and USB-C monitor on other near switch
  • External monitor works if connect via “USB-C to Display Port Dongle cable” on the power side 2nd USB-C port. I don’t want to do this because:
    • not enough ports 4 and I have to connect more cables.
    • the USB-C has 2 DP monitor outs and would like to use both
    • I also want to know if hub, board or OS issue

Other Threads - Partially Related but Don’t Answer Question

Ran firmware update now USB-C portable monitor that has always worked is not seen by Framework. This is very annoying.

Naive thought: I suspect the way the board drivers interact with Fedora to keep track off or poll USB-C to monitor connections is wrong. Guess: the bios + OS driver are polling primary and missing some signal to look for secondary.

Before update Both Monitors Work via USB-C cable or dongle not USB-C hub

  • USB-C Dell P1424H monitor connected switch side
  • Non-portable Dell display port monitor connected via USB-C dongle fan side near power usb-c (marked as primary)

After Update - Only Primary non-portable Dell display port monitor using USB-C dongle works

  • USB-C Dell P1424H monitor connected
    • no video.
    • disconnecting and reconnecting USB-C cable does not work to activate monitor
    • monitor is not visible in Fedora Display GUI
    • disconnecting both monitors does not allow to work when reconnected as only monitor
  • Non-portable Dell display port monitor connected via USB-C dongle works
    • works when USB-C disconnected and reconnected
    • still connected on fan-side near power charger connection
  • Connecting Dell display port monitor as a display port monitor via the USB-C hub also did not work (ie consistent with original post), but reconnecting same monitor to USB-C dongle reactivates display

Problem is that video port is locked to last video source marked primary by type in the OS based on the physical Framework port.

Changing connections while running has the following behaviors where primary port = fan-side port near charger last marked primary:

  • connecting USB-C Dell P1424H monitor to the primary port works
  • connecting DP monitor to USB-C dongle to the primary port does NOT work
  • connecting DP monitor to USB-C hub to the primary port does NOT work
  • connecting any monitor of any type to any other USB-C does NOT work

Why is Framework driver not telling Fedora that new monitors are present?

note the new primary port is not the primary port I originally started with.
when I got USB-C dongle DP monitor to work I switched primary to it. So the problem persists across monitors, ports, firmware updates, likely OS update too (currently downloading Fedora 43), different cables…

It is important to mention Framework BIOS version as well.

And log a support ticket.

Might want to mention it on github as well?

1 Like

Sorry I mentioned above that updated the firmware today.
The bios version is 3.05 for INSYDE Corp
the AMD version is 26.96.0

Post OS update to Fedora 43 the problem persists.

Wow. My bad. I have no idea how I missed you saying that the issue occurred after firmware update. I really shouldn’t do stuff before my morning coffee.

Does downgrading the firmware fix it then?

Sorry no need to apologize, I wasn’t as clear as I could have been. Also appreciate anyone looking/reviewing and trying to decipher, it is a long post.

  • issue occurred before firmware update, bios 3.04
    • both before and after Fedora package update
  • issue occurred after firmware update, bios 3.05
    • both before and update from Fedora 42 to Fedora 43

All updates done yesterday.

Re downgrade…

  • Not sure why it would fix given I had the issue before
  • Also command unclear to me, assume fwupdmgr downgrade [DEVICE_ID]
    • but need to figure out DEVICE_ID
    • this post may indicate you don’t need DEVICE_ID
    • also a little hesitant to try given I know I had the problem before with that firmware version

I don’t have time to do it this morning and hopefully while I’m at work I get a response to the ticket I submitted yesterday with useful guidance.

why do my posts now require moderator approval?
… this post worked. there must be some word in the description of the real post it doesn’t like

maybe it will eventually allow the post… summary support helping + still inconsistent. reset by long power off

Support gave a response. Going back and forth, they had me run the system log collection script. Waiting for their response.

During testing to try to get a succinct log collection I noted the following. After the device sat unplugged no power since Sunday 2/1 late afternoon (now 2/4 1900) the display port monitor works, was connected from boot but subsequently does not work if I boot with it disconnected.

  1. DP via USB-C hub works from dead boot (no power for days)
    1. can disconnect, reconnect DP cable and detect the monitor
  2. shutdown, re boot without monitor connected but with USB-C hub connected
    1. can not detect display port monitor
    2. can not detect display port monitor after any subsequent boot
    3. will have to leave it unplugged for an indeterminate time to detect again

I’m curious what you’re setup looks like. Could you post a photo(s)?

My setup still looks bad. I’d intended to do a modular cyberdeck when I bought the board but have not gotten around to CNC’ing the case. Didn’t want to 3D print. I’ve designed the bottom with air vents, but not the top.

Currently just a board on either left over wood cutouts or legos (vertical mount stand) to give the board isolation and airflow. Then a separate USB-C hub and cables.

For the curious still troubleshooting with support.

state summary

  • I can get the DP monitor cable to detect only if present during boot.
  • USB-C cable added without DP cable journalctl output always includes
    Feb 06 09:37:14 fedora kernel: ucsi_acpi USBC000:00: unknown error 256
  • weird behavior in journalctl log pulls activity from December if power is disconnected after shutdown and before reboot
  • USB-C hub DP connection never gave video or output from journalctl
  • USB-C hub does give consistent journalctl output even if some sub-devices are enumerated in a different order

Troubleshooting Summary

This is a very succinct summary of what has been done.

Troubleshooting Phase N

They had me try different connection variations.
They had me do USB-C display port cable hotplug tests while logging:

journalctl \-k \-b | grep \-iE "typec|ucsi|pd|dp|displayport|drm" > dp\_hotplug.txt

This helped them determine whether this is:

  • Hub negotiation related
  • Port-specific
  • Or a firmware/USB-C controller behavior we need to escalate

Troubleshooting Phase N+1

We’ve isolated to DisplayPort detection is failing. “We’re no longer testing monitors, cables, hubs, or Linux distributions. Those variables have effectively been ruled out based on your previous results. What we’re validating now is USB-C / DisplayPort Alt-Mode negotiation at the firmware (Type-C / UCSI) level.

Below are the validation steps and what each one tells us.

Log using sudo journalctl \-k \-f while a USB-C → DisplayPort cable directly, then the DisplayPort monitor through the USB-C hub. Testing different connections.

Checking USB-C controller state:

ls /sys/class/typec/
cat /sys/class/typec/port\*/{power\_operation,data\_role,port\_type} 2>/dev/null

If /sys/class/typec/ does not exist, or if the values do not change when the monitor is plugged in, that indicates DisplayPort Alt-Mode was not negotiated at the firmware level.