r128 dual-head error
lists at jnielsen.net
Wed Apr 15 02:11:53 UTC 2009
On Monday 13 April 2009, Warren Block wrote:
> On Mon, 13 Apr 2009, John Nielsen wrote:
> > I'm trying to get dual-head + Xinerama going on a Dell Inspiron 4000
> > laptop so I can use both the integrated flat panel and an external CRT.
> Multiple screens aren't done with Xinerama any more. xrandr is the new
I don't think r128 is that modern..
> > From what I can tell I have my xorg.conf configured properly and it's
> > trying to do the right thing but it's throwing an error when
> > initializing the secondary screen:
> > (EE) R128(1): Unable to map MMIO aperture. Invalid argument (22)
> Don't know about r128 specifically, but that's an old-style xorg.conf.
> > How should I go about troubleshooting this?
> Rework your xorg.conf, example below.
I did but without much luck.
> Section "Monitor"
> Option "PreferredMode" "1920x1200"
> Option "Position" "1024 0"
These options parsed fine but generated warnings about the fact that they
Running with a single active "Screen" section works fine, but xrandr gives
no indication that it's aware of more than one head/display.
Looking through the r128_driver.c code it looks like the IsPrimary and
IsSecondary booleans only get set to true if there is more than one screen
defined by the configuration.
I did some poor man's debugging of the original issue (by adding some log
print statements to the code). The function which is throwing the "invalid
argument" error is pci_device_map_range, called from R128MapMMIO. With my
dual-screen xinerama config, R128MapMMIO is called once for each screen
during pre-init. This succeeds for both screens (and is followed by
corresponding UnMap calls). It is called again in ScreenInit. The call for
the primary screen succeeds, but the call for the secondary screen fails.
The arguments from the secondary screen's ScreenInit call are _exactly_ the
same as they are in the pre-init call so it's either a really weird bug or
something is happening to pScrn structure in the interim to make it
I didn't follow the chain of events any farther than that. Is there a good
forum on e.g. freedesktop to get some help with this if it's not FreeBSD-
More information about the freebsd-x11