[RESPONDED] AMD + Ubuntu + USB-C - External camera unable to use USB 3.2 speed

I just upgraded from FW13 12th generation Intel to AMD 7840U and am having issues now with my external camera that I use for streaming, in the sense that the camera issues a warning that it could not detect USB 3.2 and therefore will only output a 720@25p video stream. This was not the case with the Intel setup, where the camera was happy to stream in 1080p for example. I would thus rule out any cable or hub issues.

For context, my upgrade took place by ordering a complete new AMD laptop and simply moving the SSD from the Intel laptop over, therefore I am sure that software has not changed (other than moving over to the OEM kernel as instructed by Framework).

System info:
Ubuntu 22.04

	Vendor: INSYDE Corp.
	Version: 03.03
	Release Date: 10/17/2023
	Address: 0xE0000
       product: AMD Ryzen 7 7840U w/ Radeon  780M Graphics
       vendor: Advanced Micro Devices [AMD]
       physical id: 4
       bus info: cpu@0
       version: 25.116.1
Kernel version: 6.1.0-1024-oem

The cable is hooked up via the back right adapter slot using the brand new USB-C adapter that came with the AMD order.

Excerpt of lsusb -t output on AMD laptop:

/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 21, If 0, Class=Hub, Driver=hub/5p, 480M
        |__ Port 4: Dev 32, If 0, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 4: Dev 32, If 1, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 4: Dev 32, If 2, Class=Video, Driver=uvcvideo, 480M
        |__ Port 4: Dev 32, If 3, Class=Video, Driver=uvcvideo, 480M

Excerpt of lsusb -t when run on Intel 12gen, also connected via back right USB-C port, with no other device changes than swapping out to the Intel laptop:

/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
        |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 10000M
            |__ Port 2: Dev 5, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
        |__ Port 2: Dev 4, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 4: Dev 7, If 0, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 4: Dev 7, If 3, Class=Video, Driver=uvcvideo, 5000M
        |__ Port 4: Dev 7, If 1, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 4: Dev 7, If 2, Class=Video, Driver=uvcvideo, 5000M

Here it’s clear the camera device was connected at 5Gbps.

Curious, what camera is it exactly?

@DanielKinskey-Lebeda It’s a Sony A7M4.


I actually have a second PC connected to the hub (it can switch between two sources) and that also shows the camera connection at 5Gbps:

/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
    |__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 5000M
            |__ Port 2: Dev 5, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
        |__ Port 2: Dev 4, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 4: Dev 6, If 1, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 4: Dev 6, If 2, Class=Video, Driver=uvcvideo, 5000M
        |__ Port 4: Dev 6, If 0, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 4: Dev 6, If 3, Class=Video, Driver=uvcvideo, 5000M

Given that the Framework 13 USB-C adapter already only shows as 480M with the AMD board, I am guessing now that this is already the source issue here and that the camera is unrelated.

1 Like

I am out of the office at the moment, but will re-test this with my own camera (Logitech Brio) when I return home. Confirming this is with your AMD Ryzen™ 7040 Series and it is a direct connection to a USB-A expansion card (no docks or hubs or adapters)?

Yes, the issue occurs on the AMD 7040 series and no, this is not for a USB-A but a USB-C expansion card (plugged into the back right expansion port). Also, it is not a direct connection to the camera but via a hub.

Note that all cables and the hub are 5Gpbs capable and the entire setup is working fine as expected when I use the 12th gen Intel Framework 13 laptop. It is only the AMD one that is giving me this issue.

Please try this without the hub. I realize what it is capable of, however, please test this without the hub.

I just connected the camera directly through the cable that I use to otherwise connect to the hub. It is a USB-C (camera-facing) to USB-A (hub/computer-facing) cable, therefore I connected it to my front left USB-A expansion card.

In this case it was able to get the full 5Gbps speed:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    |__ Port 2: Dev 4, If 0, Class=Audio, Driver=snd-usb-audio, 5000M
    |__ Port 2: Dev 4, If 1, Class=Audio, Driver=snd-usb-audio, 5000M
    |__ Port 2: Dev 4, If 2, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 2: Dev 4, If 3, Class=Video, Driver=uvcvideo, 5000M

Unfortunately the point remains that the hub-based setup that worked fine with the 12th gen Intel Framework 13 no longer works at full speed with the AMD Framework 13.

Well, I did another test and plugged the hub to the back left USB-C port on the AMD model.

Surprisingly, things work correctly here:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
        |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 10000M
            |__ Port 2: Dev 5, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
        |__ Port 2: Dev 4, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 4: Dev 6, If 3, Class=Video, Driver=uvcvideo, 5000M
        |__ Port 4: Dev 6, If 1, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 4: Dev 6, If 2, Class=Video, Driver=uvcvideo, 5000M
        |__ Port 4: Dev 6, If 0, Class=Audio, Driver=snd-usb-audio, 5000M

It is only the back right USB-C expansion that is not able to get the full speed connection.

To further narrow this down, I also swapped the two back USB-C expansion cards and saw no change: Back left port is able to get 5Gpbs, back right port only gets 480Mbps.

Hubs/docks fall outside of our area of control. When we have the same model in the office, we can often test against it. But overall, I would caution that docks and hubs will fall into community support territory.

All of that said, it’s absolutely worth sharing your experiences here and also sharing them with your own distro provider.

1 Like

Fair point, however doesn’t the fact that the back left Framework 13 port works at full speed and the back right port does not, limit this to an issue with the AMD board?

In other words, all I’m changing is where I plug the cable, so why would this not be an issue of the laptop? I’m not seeing Framework advertising that the two back ports have any difference on the AMD board.

Do you have anything else you can plug into the back right port to see if you can get full speed out of it from another device?

This is an excellent suggestion. Worth testing against this to see if it replicates.

I only have the camera at hand to test with. Connected it directly with a USB-C/USB-C cable on the back left and then again on the back right. Both times the connection was at full 5Gbps as it should be.

Unfortunately that still doesn’t explain why the behavior differs between the two back ports on AMD when going through the hub and why this was not an issue on 12th gen Intel Framework 13.

In case that helps, the hub is a Dell UltraSharp U4021QW screen.

We’d need to see a comparable to get much further as we’re reliant on one webcam we don’t have access to. I’d like to see this compared to another device if possible.

It’s really odd. Now suddenly the right expansion is able to get 5Gbps and the left one isn’t. So the issue must be triggered by yet something else and not the left or right side.

I’ll do more testing to further narrow the issue down.

1 Like

Sounds good, keep us posted and keep an eye on the logs to see if anything crops up.

Was able to reproduce the slow speed as follows:

  • Put Framework into sleep state, waiting for pulsating power light before next step
  • Turn on other computer and have hub (monitor) automatically switch over to this other PC
  • Turn off the other computer
  • Wake Framework up from sleep by pressing power button
  • Wait for monitor to switch back to Framework
  • Turn on the camera (if not yet on)

The camera connection is now slow and the camera will issue the low speed warning.

I can get things back to full speed by simply turning the monitor off and back on which - apparently - I have not tried before :laughing:. This is a workaround I can absolutely live with.

@Matt_Hartley Is there a possibility though that the trigger is the AMD laptop re-initializing the USB connection in a different way when coming back from sleep vs. the Intel one, which then appears to put the monitor into this bad state? I was running the Intel setup quite intensively for several months and must have had all kinds of power cycling, sleep and cable plugging combinations over time and never once saw this issue there.


And for the record, dmesg has this line after resuming from sleep:

[1050170.613480] usb 1-2.4: new high-speed USB device number 17 using xhci_hcd

After power cycling the monitor it has this message:

[1050305.940753] usb 2-1.4: new SuperSpeed USB device number 12 using xhci_hcd

Syslog did not contain any additional messages that I could identify as relevant.

@Mario_Limonciello would have better insights here. That said, go ahead and give this a run as sudo and share what it finds.

Filing this now with the engineering team. Thanks

My knee jerk reaction here is to start with PD controller to ensure it’s behaving as expected.

1 Like