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