r128 dual-head error

Robert Noland rnoland at FreeBSD.org
Wed Apr 15 18:55:36 UTC 2009


On Tue, 2009-04-14 at 22:12 -0400, John Nielsen wrote:
> 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
> > way.
> 
> 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"
> <snip>
> >  	Option       "PreferredMode" "1920x1200"
> >  	Option       "Position" "1024 0"
> 
> These options parsed fine but generated warnings about the fact that they 
> were ignored.
> 
> 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 

This is in libpciaccess.  22 is EINVAL, the call may be failing on mtrr
or just the attempt to remap the same register space a second time.  The
problem is either in libpciaccess or the r128 driver.

robert.

> 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 
> "invalid." 
> 
> 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-
> specific?
> 
> Thanks,
> 
> JN
> 
> _______________________________________________
> freebsd-x11 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-x11
> To unsubscribe, send any mail to "freebsd-x11-unsubscribe at freebsd.org"
-- 
Robert Noland <rnoland at FreeBSD.org>
FreeBSD
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-x11/attachments/20090415/c0eddf73/attachment.pgp


More information about the freebsd-x11 mailing list