Assigning pipes to a driver instance is hard as not only do we have a limited number (so choosing which instances should share CRTCs requires user intervention) but also some pipes are limited by hardware to certain outputs and certain modes (and we do not have the full knowledge of the future configuration to be able to determine where to assign the CRTC). As usual, when there is no clear answer, punt it to the user.
This expands the ZaphodHeads option to include an optional comma-separated pipe list followed by a colon before the output list, e.g.
Section "Device" Identifier "Device0" Driver "intel" Option "ZaphodHeads" "1:LVDS" BusID "PCI:0:2:0" Screen 0 EndSection
Section "Device" Identifier "Device1" Driver "intel" Option "ZaphodHeads" "0,2:HDMI1,HDMI2,HDMI3" BusID "PCI:0:2:0" Screen 1 EndSection
94d271b sna: Allow pipes to be manually assigned to ZaphodHeads
man/intel.man | 18 +++++-
src/sna/sna_display.c | 153 +++++++++++++++++++++++++++++++------------------
2 files changed, 113 insertions(+), 58 deletions(-)
Upstream: cgit.freedesktop.org