Same MST display appears as 2 /dev/i2c devices
The following problem has been seen with both amdgpu and i915 drivers. Presumably it applies to other drm video drivers as well.
I am the developer of ddcutil. While I don't have the hardware to reproduce the problem myself, there have been sufficient user reports that I was able to code a workaround to at least the first version of the problem I'm reporting. I will encourage people who have filed ddcutil issues to do so here as well.
The problem is this. When using MST, the EDID for a monitor can be read from 2 different /dev/i2c devices. Typically only 1 of them supports DDC. (The ddcutil detect command reports the display that does not support DDC as a "phantom display".)
The first case, for which there have been several issue reports, is a docking station. Each of the "valid" /dev/i2c devices has name "MST". One of the displays also appears on a /dev/i2c device with a normal name and appears under the /sys/bus/drm tree. Not knowing the driver internals, I conjecture that the devices named "MST" are those on the docking station, while the duplicated "phantom" duplicated display is the /dev/i2c device in the /sys/bus/drm tree.
For the second case, I have had only one bug report, without sufficient diagnostics of /sys. However, it appears related. In this case there is no docking station. The monitors are just MST daisy chained off a single connector on the laptop. In that case, there are 2 /dev/i2c devices for one of the monitors. Both report the EDID, and but in this case both support DDC communication.