Bug 35577

Summary: dual/triplehead secondary monitor not detected
Product: xorg Reporter: mkaar
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED NOTABUG QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg.conf none

Description mkaar 2011-03-22 19:06:36 UTC
Created attachment 44743 [details] [review]
xorg.conf

Using xf86-video-ati 6.14.1 + xinerama on

In my triplehead configuration one monitor stayed blank. According to log file no monitors were detected for the second head - instead a default frame buffer of 1024x768 was created and could be seen on whole desktop screenshots.

Managed to track the problem to drmmode_display.c and code block:

                        if (info->IsPrimary && (num != 0))
                                goto out_free_encoders;
                        else if (info->IsSecondary && (num != 1))
                                goto out_free_encoders;


Radeon HD4870 has three connectors: DVI-0, DIN, DVI-1 numbered 0,1,2

Primary screen is supposed to be connected to DVI-0 and secondary to DVI-1, but due to the code block above DVI-1 (i.e. num=2) got skipped and the secondary monitor was not detected.

Adding && (num !=  2) to the else if helped solve my problem for now. Not sure about what this code is actually supposed to do so I'll just leave the actual fixing part to someone else.
Comment 1 Alex Deucher 2011-03-22 22:16:31 UTC
You need to use the ZaphodHeads option to specify which connectors are assigned to which instance of the driver when using zaphod mode.  If you don't specify the driver just assigns the first two connectors to each instance of the driver.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.