Date: Wed, 15 Apr 2009 15:29:06 -0400 From: John Nielsen <lists@jnielsen.net> To: freebsd-x11@freebsd.org Subject: Re: r128 dual-head error Message-ID: <200904151529.06871.lists@jnielsen.net> In-Reply-To: <1239821670.2194.10.camel@balrog.2hip.net> References: <200904131902.22584.lists@jnielsen.net> <200904142212.07237.lists@jnielsen.net> <1239821670.2194.10.camel@balrog.2hip.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 15 April 2009, Robert Noland wrote: > 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. Thanks. FWIW I did confirm that the space is un-mapped between the two calls. I'll see if I can grok libpciaccess. > > 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@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-x11 > > To unsubscribe, send any mail to "freebsd-x11-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904151529.06871.lists>