[PATCH] xfree86: Add Loongson MIPS support

Mark Kettenis mark.kettenis at xs4all.nl
Wed Oct 12 08:15:57 PDT 2011


> Date: Wed, 12 Oct 2011 07:48:00 -0700
> From: Alan Coopersmith <alan.coopersmith at oracle.com>
> 
> On 10/11/11 11:58 PM, Matt Kraai wrote:
> > Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=41038
> > ---
> >   hw/xfree86/dri/sarea.h                  |    2 ++
> >   hw/xfree86/os-support/linux/lnx_video.c |   20 ++++++++++++++++++--
> >   2 files changed, 20 insertions(+), 2 deletions(-)
> >
> >   I asked the person that I received this patch from,
> >   liushiwei at gmail.com, to certify the Developer's Certificate of
> >   Origin.  They said that this patch was available under the GPL2+ and
> >   was written by zhangfx at lemote.com.  The modified files are not
> >   licensed under the GPL.  Do I need to ask them to relicense the
> >   patch?
> 
> Yes. GPL licensed code will not be accepted into Xorg, only MIT/BSD licensed.
> 
> The patch itself needs work:
> 
> > +	extern unsigned int IOPortBase;
> 
> Don't add extern variable declarations in functions, especially ones already
> defined in headers.
> 
> > +#elif defined(__mips__)
> > +	fd = open("/dev/mem", O_RDWR);
> > +	IOPortBase = (volatile unsigned char *)mmap(0, 0x20000,
> > +			PROT_READ | PROT_WRITE, MAP_SHARED, fd,
> > +			0x1fd00000);
> > +	if (IOPortBase == MAP_FAILED) {
> > +		xf86Msg(X_WARNING,
> > +				"xf86EnableIOPorts: Failed to map iobase (%s)\n",
> > +				strerror(errno));
> > +		return FALSE;
> > +	}
> > +	close(fd);
> > +	xf86Msg(X_WARNING,
> > +	       "xf86EnableIOPorts: map iobase (%x)\n",
> > +	        IOPortBase);
> 
> This is almost an exact copy of the existing powerpc code - is it really
> necessary to duplicate it all instead of just doing something more like:
> 
> #if defined(__powerpc__)
> 	ioBase_phys = syscall(__NR_pciconfig_iobase, 2, 0, 0);
> #elif defined(__mips__)
> 	ioBase_phys = 0x1fd00000;
> #endif
> 
> and then sharing the rest of the code?

Also, that code is pretty much going to be made obsolete by Jeremy
Huddleston's pci bus cleanup diff.  A better approach would be to
convert the relevant drivers for loongson to use the new pci_io_xxx
interfaces in libpciaccess instead of the raw in/out calls.


More information about the xorg-devel mailing list