[ltp] x41 monitor selection

Alex Deucher linux-thinkpad@linux-thinkpad.org
Tue, 30 Jan 2007 14:46:01 -0500


On 1/30/07, Paul Fox <pgf@foxharp.boston.ma.us> wrote:
> hi -- i'm still working on my dual display problem.
>
> as a reminder, my problem is that using the fn-key to switch
> monitors on my X41 will give me either the external or the
> built-in display, but not both.  this is even though both
> displays work fine together when the X server first starts (or is
> restarted).
>
> what i've included here are a) the relevant parts of server initialization,
> where both displays end up active, and b) the results of 3 presses
> of the fn-key, which cycle through the two working modes and back
> to the simultaneous mode, which then doesn't work.
>
> for completeness, the full log is here:
>     http://www.foxharp.boston.ma.us/tmp/Xorg.0.log.x41switch.txt
> and the xorg.conf file is here:
>     http://www.foxharp.boston.ma.us/tmp/xorg.conf.x41switch.txt
> this is all on ubuntu edgy, btw.
>
> but i'm hoping that a glance at the errors reported in the last
> log snippet down below might suggest a solution to someone more
> familiar with the X11 drivers than i am...
>
> many thanks to anyone who takes look!
>

Unfortunately, you are going to be out of luck.  The problem is you
have two things writing to the video hardware without each other's
knowledge.  When you press the fn-key video output toggle, the video
bios arbitrarily writes whatever it wants to do to the video hardware.
 This writes all over the values the xorg driver has written.  After
you've pressed  the fn-key combo a few times the hardware state is
completely hosed up.  You may be able to get it back by switching to
another VT and back as this will cause the X driver to re-program the
hardware.  The reason you can't get simultaneous panel and vga with
the bios is because the primary crtc can't drive both LVDS and the CRT
at the same time on intel hardware. Both clone and dualhead are done
using two crtcs.  Few bioses will program both crtcs for clone view by
default.  Ideally, what you want, is to unlink the fn-key toggle from
the bios acpi function call using the ibm_acpi module.  This will
cause the fn-key toggle to produce acpi events rather than calling the
bios video function.  you can then connect this event to an Xorg
driver call using xrandr.  You can do this with mergedfb now or wait
for full xrandr 1.2 support (which is being worked on now).

Alex