Radeon X300, radeonfb, dual head
Hans-Jürgen Koch
hjk at linutronix.de
Wed Apr 18 05:09:51 PDT 2007
I've got a Radeon X300 (MSI RX300HM) PCIE card. The card has a
VGA and a DVI-I output. I connect two LCD monitors (1680x1050 each)
using VGA outputs (DVI-VGA adapter for one monitor).
I'd like to run xserver-xorg with KDE from Debian unstable in
mergedfb mode showing a 3360x1050 desktop across the two monitors.
I'm running a vanilla 2.6.21-rc7. Now I've got two problems that
might or might not be related:
1.) I compiled radeonfb statically into my kernel and booted with
video=radeonfb:1280x1024-32 at 60. This works fine, the framebuffer
console works as expected. But the X server doesn't come up
properly. Xorg.0.log ends like this:
[...]
(**) RADEON(0): RADEONSaveScreen(2)
(**) RADEON(0): FIFO timed out: 2 entries, stat=0x80026102
(EE) RADEON(0): FIFO timed out, resetting engine...
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 31 entries, stat=0x8002611f
(EE) RADEON(0): FIFO timed out, resetting engine...
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 15 entries, stat=0x8002610f
(EE) RADEON(0): FIFO timed out, resetting engine...
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 15 entries, stat=0x8002610f
(EE) RADEON(0): FIFO timed out, resetting engine...
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 31 entries, stat=0x8002611f
(EE) RADEON(0): FIFO timed out, resetting engine...
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 3 entries, stat=0x80026103
(EE) RADEON(0): FIFO timed out, resetting engine...
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 6 entries, stat=0x80026106
(EE) RADEON(0): FIFO timed out, resetting engine...
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): RADEONCloseScreen
(**) RADEON(0): RADEONDRIStop
(**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0)
(**) RADEON(0): RADEONRestore
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x8202e40)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x1fff0000
(**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC2, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00000000 0x00000000 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=0, fd=0, pd=0
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x0030000c 0x00010060 0x00000000 (0x0000a700)
(**) RADEON(0): Wrote: rd=12, fd=96, pd=1
(**) RADEON(0): Disposing accel...
(**) RADEON(0): Disposing cusor info
(**) RADEON(0): Disposing DGA
(**) RADEON(0): Unmapping memory
FreeFontPath: FPE "unix/:7100" refcount is 2, should be 1; fixing.
That's all, I end up with two black screens.
2.) I compiled vesafb statically, radeonfb only as module. If I boot
with vga=0x318, the framebuffer console works as expected. The
X server starts up, Xorg.0.log looks good (except that DRI is disabled).
But when kdm comes up, I see the same picture on both monitors. What I
see looks like the right half of the 3360x1050 desktop (mouse can be
moved across the left border of the screen, stops at the right border).
Both screens are driven properly with 1680x1050. I tried several
modifications of my xorg.conf, but never managed to get different
images on the two monitors, they always show the same.
Here are the relevant parts of my current xorg.conf:
Section "Device"
Identifier "RadeonX300"
Driver "radeon"
BusID "PCI:1:0:0"
Option "MergedFB" "true"
Option "MonitorLayout" "TMDS,TMDS"
Option "CRT2Position" "RightOf"
Option "CRT2HSync" "32-82"
Option "CRT2VRefresh" "56-75"
Option "MetaModes" "1680x1050-1680x1050"
EndSection
Section "Monitor"
Identifier "NECMonitor1"
Option "DPMS"
HorizSync 32-82
VertRefresh 56-75
EndSection
Section "Monitor"
Identifier "NECMonitor2"
Option "DPMS"
HorizSync 32-82
VertRefresh 56-75
EndSection
Section "Screen"
Identifier "Screen1"
Device "RadeonX300"
Monitor "NECMonitor1"
DefaultDepth 24
SubSection "Display"
Depth 16
Modes "1680x1050"
EndSubSection
SubSection "Display"
Depth 24
Modes "1680x1050"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Screen1" 0 0
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
EndSection
So, at the moment I've got the choice between radeonfb and no X at all
or vesafb and X without proper dual head functionality. That's like
the difference between a rock and a hard place :-)
If you need more information, please tell me.
Any ideas?
Thanks,
Hans
More information about the xorg
mailing list