Skip site navigation (1)Skip section navigation (2)
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>