[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