1

I recently purchased a HP Z27 monitor. It's 4K/UHD, and supports video input via usb-c.

It also has 3 "downstream USB 3.0" ports that are available for use when the usb-c cable is connected.

I'm connecting it to a Lenovo X1 Carbon (7th Gen), running debian testing/bullseye. It has 2 USB-A ports, both labeled with:

usb superspeed

It also has 2 USB-C ports, both labeled with:

enter image description here

Here's my current kernel:

$ uname -a
Linux tak 5.4.0-2-amd64 #1 SMP Debian 5.4.8-1 (2020-01-05) x86_64 GNU/Linux

lspci suggests the laptop has the following thunderbolt controller (which presumably the USB-C ports are connected to):

Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)

Here's lsusb with nothing plugged in:

$ lsusb -tv
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 04f2:b67d Chicony Electronics Co., Ltd 
    |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 04f2:b67d Chicony Electronics Co., Ltd 
    |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
        ID 06cb:00bd Synaptics, Inc.

... and here's lsusb with the monitor connected via usb-c, and nothing plugged into the monitors downstream USB-A ports:

$ lsusb -tv
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 2: Dev 6, If 0, Class=Hub, Driver=hub/2p, 480M
        ID 03f0:0169 HP, Inc 
        |__ Port 1: Dev 8, If 0, Class=Hub, Driver=hub/4p, 480M
            ID 03f0:0169 HP, Inc 
    |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 04f2:b67d Chicony Electronics Co., Ltd 
    |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 04f2:b67d Chicony Electronics Co., Ltd 
    |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
        ID 06cb:00bd Synaptics, Inc.

If I plug a USB 3.0 external drive into a USB-A port on the laptop, it appears in lsusb under a "3.0 hub", and has a speed of "5000M"

$ lsusb -tv
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 4: Dev 11, If 0, Class=Mass Storage, Driver=uas, 5000M
        ID 0bc2:ab26 Seagate RSS LLC Backup Plus Slim Portable Drive 1 TB
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 2: Dev 23, If 0, Class=Hub, Driver=hub/2p, 480M
        ID 03f0:0169 HP, Inc 
        |__ Port 1: Dev 24, If 0, Class=Hub, Driver=hub/4p, 480M
            ID 03f0:0169 HP, Inc 
    |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 04f2:b67d Chicony Electronics Co., Ltd 
    |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 04f2:b67d Chicony Electronics Co., Ltd 
    |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
        ID 06cb:00bd Synaptics, Inc.

However, if I plug the same drive into one of the Z27 downstream "USB 3.0" ports, the drive doesn't appear in lsusb.

If I avoid the USB-C ports on the X1 Carbon and connect to the monitor via HDMI (for video) and USB-A (laptop) to USB-C (monitor), then the external drive is detected when plugged into the monitor and has a speed of 5000M.

$ lsusb -tv
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 4: Dev 12, If 0, Class=Hub, Driver=hub/1p, 5000M
        ID 03f0:0620 HP, Inc 
        |__ Port 1: Dev 13, If 0, Class=Hub, Driver=hub/4p, 5000M
            ID 03f0:0620 HP, Inc 
            |__ Port 2: Dev 14, If 0, Class=Mass Storage, Driver=uas, 5000M
                ID 0bc2:ab26 Seagate RSS LLC Backup Plus Slim Portable Drive 1 TB
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 4: Dev 28, If 0, Class=Hub, Driver=hub/2p, 480M
        ID 03f0:0169 HP, Inc 
        |__ Port 1: Dev 29, If 0, Class=Hub, Driver=hub/4p, 480M
            ID 03f0:0169 HP, Inc 
    |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 04f2:b67d Chicony Electronics Co., Ltd 
    |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 04f2:b67d Chicony Electronics Co., Ltd 
    |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
        ID 06cb:00bd Synaptics, Inc.

Surprisingly, in the last example "HP Inc" devices appear under two root_hubs, even though the monitor only has a single USB connection to the laptop.

  • This question addresses why plugging in the monitor with a single cable results in a HP hub under two root_hubs - USB 1/2 is electrically different to USB 3, so a single USB 3.0 port connects to two controllers and downstream devices will appear on the appropriate controller unix.stackexchange.com/questions/421801/… – James Healy Jan 22 at 13:33
1

Some laptops have USB-C and USB-A ports (and controllers) that share bandwidth... in addition to the limitation of the video-over-USB connection using all the available bandwidth. I specifically seem to remember that bandwidth sharing was an issue on the Carbon 6th gen?? Anyway, if you send video over the USB-C port to the monitor, then the downstream ports do not work (at full speed).

Once you split things apart, by sending the video over the HDMI cable, and attaching the monitor USB hub to a dedicated port, then the device at the end is assigned the expected bandwidth (and no video signal reduces the bandwidth).

The HP specs say "1 USB Type-C™ (Alternative mode DisplayPort™ 1.2, power delivery up to 65 W)", which refers to a port that can be either a USB 3 hub, xor a DisplayPort... so not both simultaneously.

| improve this answer | |
  • 1
    Thanks, it does seem like USB-C bandwidth is part of the problem. Thanks to your prompt, I found a way in the monitor settings to reduce the video bandwidth which seems to allow the in-monitor ports to run at USB 3.0 speeds. – James Healy Jan 22 at 22:53
2

When I connect the monitor like this:

  • video: HDMI (for video)
  • USB data: USB-A (laptop) to USB-C (monitor)

Then all USB-A ports on the monitor work as USB 3.0, and my USB 3.0 external drive connects at 5000M.

When I connect the monitor via USB-C for video/data/power-delivery, all USB-A ports on the monitor work as USB 2.0.

However, I've discovered that when the monitor is connected via USB-C there's an extra option in the on-screen menu:

  1. 3840x2160 60Hz + USB 2.0
  2. 3840x2160 30Hz + USB 3.0

(1) was the factory default. If I change this to (2), then the USB-A ports on the monitor act as USB 3.0 when the monitor is connected via USB-C.

I use this monitor for office work, so dropping to 30Hz isn't an issue for me. It's something to be aware about for anyone hoping to run USB 3.0 and the higher refresh rate at the same time.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.