[Intel-gfx] Enable DisplayPort MST on low cost USB-C docks

Matthias Walther matthias at walther.xyz
Fri Jan 28 19:50:38 UTC 2022


Hello,

there are a lot of quite similar, low cost USB-C docks with multiple 
display output (usually 2x HDMI + 1x VGA) available on the big online 
platforms such as Amazon, Ebay, and Aliexpress.

Internally the display outputs are connected via DisplayPort. If you 
connect a monitor to one of the ports, it's detected as display port 
connection in xrandr. Always the same dpX in xrandr, independently of 
which physical port in use. This suggests that all physical outputs are 
connected to the same DisplayPort output.

On Microsoft's Windows these docks support multi headed output, like a 
different image on all displays (called expand mode in Windows). However 
the vendor advertises, that on MacOS the adapter can only display the 
same image on all ports of the adapter. This might be a hint, that the 
adapter internally uses DisplayPort's Multi-Stream Transport (MST) 
technology for the second and third display output (2nd HDMI, VGA), as 
Apple does not support MST while Microsoft does. Linux behaves just like 
MacOS here and only mirrors the image.

Linux is supposed to support MST since like around 2014. There are 
parameters to enable it for i915, e. g. i915.enable_dp_mst={1,2}.

However unfortunately those USB-C docks do not support multi-headed 
output on Linux. The second monitor is not detected, there is just a 
mirrored image of the first monitor on monitor two and three.

Does Linux support MST over Thunderbolt 3/4? Is there maybe a hidden 
command that the Windows driver uses to switch MST on in the dock's 
chipset?

Any hints on how to debug this would be highly appreciated! Those 
adapters become more and more popular, they are affordable and it would 
be awesome to make them fully work with Linux.

Best,
Matthias



More information about the Intel-gfx mailing list