Bug 8090 - Second head doesn't work on Radeon x800 with dual digital output
Summary: Second head doesn't work on Radeon x800 with dual digital output
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 7.0.0
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
: 10023 10433 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-08-31 12:34 UTC by Bas Zoetekouw
Modified: 2007-12-14 07:06 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
xorg.conf (2.82 KB, text/plain)
2006-08-31 12:35 UTC, Bas Zoetekouw
no flags Details
Xlog if second head is CRT (65.06 KB, text/plain)
2006-08-31 12:36 UTC, Bas Zoetekouw
no flags Details
Xlog if second head is digital TFT (58.26 KB, text/plain)
2006-08-31 12:36 UTC, Bas Zoetekouw
no flags Details

Description Bas Zoetekouw 2006-08-31 12:34:24 UTC
The second head of my dual-head setup doesn't work (i.e. doesn get any signal)
if a DVI-D monitor is connected.  It works correctly if an analog (CRT) screen
is connected.  The first head is a DVI-D monitor in both cases.

The X log shows that the second head is correctly detected as a TMDS or CRT
monitor, and does show any other errors afaics.
Comment 1 Bas Zoetekouw 2006-08-31 12:35:43 UTC
Created attachment 6768 [details]
xorg.conf
Comment 2 Bas Zoetekouw 2006-08-31 12:36:07 UTC
Created attachment 6769 [details]
Xlog if second head is CRT
Comment 3 Bas Zoetekouw 2006-08-31 12:36:34 UTC
Created attachment 6770 [details]
Xlog if second head is digital TFT
Comment 4 Alex Deucher 2006-09-27 07:44:22 UTC
Radeons only have one integrated TMDS transmitter.  Dual DVI care are
implemented via an external TMDS transmitter attached to the DVO port.  The
external transmitter is control via the i2c bus.  The radeon currently does not
have support for external TMDS encoders.
Comment 5 Daniel Stone 2007-02-27 01:33:25 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 6 Nagy Zoltan 2007-07-21 12:11:35 UTC
i think i've encounterd the same problem as described here.
when i saw it i've searched for some info/tool..to find out what's happenning and i've found radeontool, and compared it's "regs" output between the radeon and the fglrx driver...
the differences was: 
RADEON_CRTC2_GEN_CNTL / RADEON_CRTC2_CRT2_ON
was off
 - when i've enabled the secondary head entered to clone mode with the same half part of my desktop as the other
RADEON_DISP_OUTPUT_CNTL / RADEON_DISP_DAC_SOURCE_CRTC2
was on
when i've switched it off, my primary head switched to it's "good" other part..

i've a r350, now working perfectly with: radeon/mergedfb
so i've a solution, but it's "ugly" and i'm jey not sure 'why' this is a working solution...because according to radeon_regs.h...i've just switched off the second head's dac... ;)

Comment 7 Nagy Zoltan 2007-07-21 13:10:54 UTC
i pulled up the current radeon_regs.h - and the mask bits are both set to the crtc2, that's why i should switch the first dac to the first source, and not leave both on the secondary

while i've read the radeon_regs header...i've thinked about it...is it possible to switch the card to negate the whole framebuffer?
Comment 8 Alex Deucher 2007-07-21 14:38:58 UTC
The DAC is only used for analog output.  For the second DVI you need to initialize the TMDS controller attached to the DVO port (controlled via FP2 regs and i2c).  to get it working you need to have the external TMDS chip initialized by either the bios or fglrx as there is not currently any code to init the external TMDS chip.  Either crtc can drive any ouput as long as you set the routing bits properly.
Comment 9 Timo Jyrinki 2007-08-09 02:50:40 UTC
*** Bug 10433 has been marked as a duplicate of this bug. ***
Comment 10 Alex Deucher 2007-10-11 09:08:21 UTC
There's code to support external DVO chips in ati git, but YMMV as the gpio lines used for i2c tend to be pretty flakey.
Comment 11 Bas Zoetekouw 2007-10-20 05:40:12 UTC
I've just tried out version 6.7.195 (git of oct 9th), but still no luck.  Is there any info I can provide or anything I can debug to help fixing this issue?
Comment 12 Alex Deucher 2007-10-21 09:32:28 UTC
(In reply to comment #11)
> I've just tried out version 6.7.195 (git of oct 9th), but still no luck.  Is
> there any info I can provide or anything I can debug to help fixing this issue?
> 

Sorry, I forgot that x800 were ATOM bios based when I replied, so they won't work with the new code I added.  Unfortunately, this won't work until we implement better ATOM bios support in the radeon driver.
Comment 13 Alex Deucher 2007-11-12 15:40:03 UTC
*** Bug 10023 has been marked as a duplicate of this bug. ***
Comment 14 Alex Deucher 2007-12-04 21:27:02 UTC
This now works with the atombios-support branch of the radeon driver.
Comment 15 Alex Deucher 2007-12-11 09:14:31 UTC
Fixed in atombios-support branch of radeon driver.
Comment 16 Bas Zoetekouw 2007-12-14 07:06:46 UTC
I just tried the atombios branch of the driver, and I'm happy to report that it works perfectly.  Thanks a lot Alex (and everyone else involved)!


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.