Radeon X300, radeonfb, dual head
Jerome Glisse
j.glisse at gmail.com
Wed Apr 18 05:58:06 PDT 2007
On 4/18/07, Hans-Jürgen Koch <hjk at linutronix.de> wrote:
> 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
I am not at all an expert in this radeonfb + X things (somethings i avoid
to use :)) but i think that radeonfb might get in the way of the X server
does mergedfb work with a kernel without any framebuffer driver ?
best,
Jerome Glisse
More information about the xorg
mailing list