[ltp] Explore radeon(4) features, especially mergedfb and Metamodes.

Alex Deucher linux-thinkpad@linux-thinkpad.org
Mon, 21 Aug 2006 22:51:04 -0400


On 8/21/06, Stefan Schmidt <stefan@sostec.de> wrote:
> Hello.
>
> The last days i found some time to play around with the settings of the
> radeon driver. I focused on two goals here:
>
> 1. Improve the handling of an external LCD or beamer via vga. Especially
> "hotplug" teh monitor after X is already started. Also ynamically
> switching between clone mode and mergedfb pseudo-Xinerama. Of course
> with different resolutions. 1400x1050 on the internal LCD and mostly
> 1280x1024 on the external one.
>
> 2. The second problem goes in the same direction but is slightly
> different as it uses an external LCD connected via DVI throught a
> minidock or a dockingstation.
> The main problem here is to dock and undock without restarting X.
>
>
> So start with one, what do i have?
>
> Thanks to mergedfb and Metamodes i've a pretty nice setup for an
> external LCD via vga now. pseuod-Xinerama with different resolution
> (MergedNonRectangular) or sliding desktop and clone mode. Also i'm able
> to switch between pseudo-Xinerama and clone mode during a running X
> session via xrandr. Great.
>
> What is still needed to make me lucky?
>
> - Add second monitor during the X session. (I read in Marius config file
>   a comment that this could be possible if i define the frequencies of
>   the monitor, so no probing is needed.)

you can "force" on the secondary output so that it will already be
active if you plug in a display at run time.  However true hotplug is
not yet possible, although it's in progress in the intel driver and
should be available in a standard way once Keithp finishes he new
multi-head capable revision of xrandr.

>
> - The MergedNonRectangular option seems not to work for clone mode. And
>   1280 on a 1400 screen looks ugly. Does this really not work, or i'm
>   just to stupid?

It's like that on purpose to avoid producing dead spots if you are
only using one head and it's not clear where the smaller crtc should
be positioned: top left, bottom right, etc.  If you want you can hack
the driver to not adjust the frame of the smaller display in clone
modes.  It would be pretty trivial to do.

>
> - It would be nice to dynamically change the position of the second
>   monitor. At home it's on the left side and at work it's on the right.
>   :)

This should be possible with Keithp's new xrandr.  the problem now is
that mergedfb still uses a fixed framebuffer size so you'd have to
pre-allocate enough framebuffer for every possible orientation which
would be wasteful.

>
>
> Now to the dock/undock problem.
>
> Normally i should be able to use the stuff above to get a descent
> workaround to undock my notebook without restarting X, but i use DVI
> throught the dockingstation. Anybody know the exact status of using the
> DVI port the same way i use the vga port? Alex?

I assume you mean LVDS (laptop panel) simultaneously with TMDS (DVI)?
right how both LVDS and TMDS are hardcoded to crtc1 in the driver.
I've had a series of ongoing paches to de-couple the outputs (TMDS,
LVDS, DACs, etc.) from the crtcs.  Unfortunately, I don't have a
laptop with a DVI port, so I haven't really made any progress on the
front.
patch for reference:
http://www.botchco.com/alex/xorg/superpatch/modular/

Alex

>
> If i could use the DVI port like the vga port i could use Metamodes and
> xrandr to switch form pseudo-Xinerama to clone mode an undock
> afterwards.
>
> Last but not least some thanks goes to Jeremy Kerr and Marius Gedminas
> for their doc and config files. And of course to Alex Deucher for making
> mergedfb inside the radeon driver possible.
>
> http://ozlabs.org/~jk/docs/mergefb/
> http://mg.pov.lt/xorg.conf
>
> regards
> Stefan Schmidt
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.1 (GNU/Linux)
> Comment: http://www.datenfreihafen.org/contact.html
>
> iD8DBQFE6hCnbNSsvd31FmURAgL7AJ0UzQYKOnYPnYqbYCGCcn7HdFj22gCdFAZ7
> UchwWviCvJ8ZDIxxx38nSq4=
> =s9m1
> -----END PGP SIGNATURE-----
>
>
>