X.Org modules which could use some help to release

Submitted by Thomas Klausner on July 19, 2019, 9:31 p.m.

Details

Message ID 20190719213102.ujfd5dcngh26qmvb@danbala
State New
Headers show
Series "X.Org modules which could use some help to release" ( rev: 2 ) in X.org

Not browsing as part of any series.

Commit Message

Thomas Klausner July 19, 2019, 9:31 p.m.
Oh, forgot one diff, attached now.
 Thomas

On Fri, Jul 19, 2019 at 11:26:06PM +0200, Thomas Klausner wrote:
> On Mon, Jul 15, 2019 at 02:31:13PM -0700, Alan Coopersmith wrote:
> > On 7/15/19 4:02 AM, Thomas Klausner wrote:
> > > As a datapoint:
> > 
> > Thanks for the info.
> > 
> > > Of these, the following have packages in pkgsrc:
> > > 
> > > libWindowsWM
> > 
> > This is supposed to only be useful on Cygwin, but a Cygwin package search
> > says they don't ship it, and it hasn't had a release since 2009,  so I
> > wonder if anyone uses it, or just keeps building it because no one ever
> > said "stop".
> > 
> > > libXTrap
> > 
> > Similarly, this just seems like something build because they never knew
> > what it was for - do they really have much software that adopted a
> > proposed extension for X11R5, that's been deprecated since XTEST &
> > RECORD came out in X11R6 in 1994?  (Oh, hey, time to change 15 -> 25 in
> > https://gitlab.freedesktop.org/xorg/lib/libxtrap/blob/master/README.md )
> > 
> > > rstart
> > 
> > We dropped this with a note to use ssh X-forwarding instead.
> 
> Thanks. I removed these three and xtrap from pkgsrc.
> 
> > > and the following:
> > > 
> > > beforelight
> 
> No local changes.
> 
> > > xf86-video-ark
> 
> Adaptation to latest xorg-server.
> 
> > > xf86-video-newport
> 
> Bigger diff, see attachment.
> 
> > > xf86-video-tga
> 
> Adaptation to latest xorg-server.
> 
> > > xf86-video-tseng
> 
> Adaptation to latest xorg-server, and some small diffs.
> 
> > > xf86-video-xgi
> 
> Big diff, see attachment.
> 
> > > xf86dga
> 
> No local changes.
> 
> > > xfwp
> 
> No local changes.
> 
> > > xvidtune
> 
> No changes.
> 
> > > are included in NetBSD's xsrc, probably some with patches.
> > > 
> > > I can't tell if they are there for historic reasons or if anyone is
> > > actually still using them.
> > 
> > Well, NetBSD still claims to support some of the ancient platforms for
> > those drivers, so they might be:
> > 
> >  - xf86-video-tga - DEC Alpha graphics, for mid-90's systems such as:
> >    https://en.wikipedia.org/wiki/DEC_Multia
> > 
> >  - xf86-video-newport - SGI MIPS workstation graphics:
> >    https://en.wikipedia.org/wiki/SGI_Indy#Graphics
> > 
> > but those drivers don't seem to be getting all the API/ABI updates, and
> > haven't had releases to make them compatible with any recent X server,
> > so they'd have to be patching them to make them work.  Perhaps NetBSD
> > folks who support those platforms should become their maintainers?
> 
> I usually can't even get NetBSD committers to send their diffs
> upstream to you, so making them maintainer is even less likely to have
> positive results.
> 
> I don't know what the best solution is.
> 
> Should we try getting the diffs merged? (See attachments, I can try to
> group them in commits with messages if someone will apply them.)
> 
> Cheers,
>  Thomas

> mibstore.h and its miInitializeBackingStore() have been otherwise empty
> since at least xorg-server 1.10.  remove all reference to them as the
> header is gone in xorg-server 1.18.
> 
> Index: dist/src/ark_driver.c
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-ark/dist/src/ark_driver.c,v
> retrieving revision 1.1.1.4
> retrieving revision 1.2
> diff -u -r1.1.1.4 -r1.2
> --- dist/src/ark_driver.c	23 Jul 2015 01:15:49 -0000	1.1.1.4
> +++ dist/src/ark_driver.c	16 Aug 2016 01:27:46 -0000	1.2
> @@ -39,7 +39,6 @@
>  #include "compiler.h"
>  #include "mipointer.h"
>  #include "micmap.h"
> -#include "mibstore.h"
>  #include "fb.h"
>  #include "ark.h"
>  
> @@ -538,7 +537,6 @@
>  
>  	fbPictureInit (pScreen, 0, 0);
>  
> -	miInitializeBackingStore(pScreen);
>  	xf86SetBackingStore(pScreen);
>  
>  	if (!pARK->NoAccel) {

> Index: dist/src/newport.h
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-newport/dist/src/newport.h,v
> retrieving revision 1.1.1.2
> retrieving revision 1.4
> diff -u -r1.1.1.2 -r1.4
> --- dist/src/newport.h	23 Jul 2015 01:15:59 -0000	1.1.1.2
> +++ dist/src/newport.h	23 Jul 2015 01:19:16 -0000	1.4
> @@ -38,6 +38,7 @@
>  /* register definitions of the Newport card */
>  #include "newport_regs.h"
>  
> +#define NEWPORT_REGISTERS   0xf0000
>  #define NEWPORT_BASE_ADDR0  0x1f0f0000
>  #define NEWPORT_BASE_OFFSET 0x00400000
>  #define NEWPORT_MAX_BOARDS 4
> Index: dist/src/newport_cmap.c
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-newport/dist/src/newport_cmap.c,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -r1.1.1.1 -r1.2
> --- dist/src/newport_cmap.c	14 Feb 2009 03:04:46 -0000	1.1.1.1
> +++ dist/src/newport_cmap.c	6 Oct 2009 20:28:14 -0000	1.2
> @@ -71,7 +71,8 @@
>  	}
>  #endif
>  	for(i = 0; i < 256; i++) {
> -		NewportCmapSetRGB(pNewport->pNewportRegs, i, pNewport->txt_colormap[i]);
> +		NewportCmapSetRGB(pNewport->pNewportRegs, i, 
> +		    pNewport->txt_colormap[i]);
>  	}
>  }
>  
> @@ -80,8 +81,8 @@
>  static void NewportCmapFifoWait(NewportRegsPtr pNewportRegs)
>  {
>          while(1) {
> -		pNewportRegs->set.dcbmode = (NPORT_DMODE_ACM0 |  NCMAP_PROTOCOL |
> -						NCMAP_REGADDR_SREG | NPORT_DMODE_W1);
> +		pNewportRegs->set.dcbmode = (NPORT_DMODE_ACM0 | NCMAP_PROTOCOL |
> +		    NCMAP_REGADDR_SREG | NPORT_DMODE_W1);
>  		if(!(pNewportRegs->set.dcbdata0.bytes.b3 & 4))
>  			break;
>          }
> @@ -91,6 +92,7 @@
>  /* set the colormap entry at addr to color */
>  void NewportCmapSetRGB( NewportRegsPtr pNewportRegs, unsigned short addr, LOCO color)
>  {
> +	uint32_t colour;
>  	NewportWait(pNewportRegs);	/* this one should not be necessary */
>  	NewportBfwait(pNewportRegs);
>  	pNewportRegs->set.dcbmode = (NPORT_DMODE_ACMALL | NCMAP_PROTOCOL |
> @@ -99,9 +101,9 @@
>  	pNewportRegs->set.dcbdata0.hwords.s1 = addr;
>  	pNewportRegs->set.dcbmode = (NPORT_DMODE_ACMALL | NCMAP_PROTOCOL |
>  				 NCMAP_REGADDR_PBUF | NPORT_DMODE_W3);
> -	pNewportRegs->set.dcbdata0.all = (color.red << 24) |
> -						(color.green << 16) |
> +	colour = (color.red << 24) | (color.green << 16) |
>  						(color.blue << 8);
> +	pNewportRegs->set.dcbdata0.all = colour;
>  }
>  
>  /* get the colormap entry at addr */
> Index: dist/src/newport_driver.c
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-newport/dist/src/newport_driver.c,v
> retrieving revision 1.1.1.2
> retrieving revision 1.12
> diff -u -r1.1.1.2 -r1.12
> --- dist/src/newport_driver.c	23 Jul 2015 01:15:59 -0000	1.1.1.2
> +++ dist/src/newport_driver.c	16 Aug 2016 01:27:47 -0000	1.12
> @@ -33,13 +33,17 @@
>  #include "config.h"
>  #endif
>  
> +#if defined(__NetBSD__)
> +#include <fcntl.h>
> +#include <dev/wscons/wsconsio.h>
> +#include <sys/ioctl.h>
> +#endif
> +
>  /* function prototypes, common data structures & generic includes */
>  #include "newport.h"
>  
>  /* Drivers using the mi SW cursor need: */
>  #include "mipointer.h"
> -/* Drivers using the mi implementation of backing store need: */
> -#include "mibstore.h"
>  /* Drivers using the mi colourmap code need: */
>  #include "micmap.h"
>  
> @@ -55,6 +59,12 @@
>  
>  #include <string.h>
>  #include <stdio.h>
> +#include <unistd.h>
> +
> +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) > 6
> +#define xf86LoaderReqSymLists(...) do {} while (0)
> +#define LoaderRefSymLists(...) do {} while (0)
> +#endif
>  
>  #define NEWPORT_VERSION		4000
>  #define NEWPORT_NAME		"NEWPORT"
> @@ -195,7 +205,8 @@
>  static void
>  NewportIdentify(int flags)
>  {
> -	xf86PrintChipsets( NEWPORT_NAME, "driver for Newport Graphics Card", NewportChipsets);
> +	xf86PrintChipsets( NEWPORT_NAME, "driver for Newport Graphics Card", 
> +	    NewportChipsets);
>  }
>  
>  static Bool
> @@ -210,16 +221,31 @@
>  #endif
>  	unsigned probedIDs[NEWPORT_MAX_BOARDS];
>  	memType base;
> -
>  	if ((numDevSections = xf86MatchDevice(NEWPORT_DRIVER_NAME, &devSections)) <= 0) 
>                  return FALSE;
> +
>  	numUsed = NewportHWProbe(probedIDs);
>  	if ( numUsed <= 0 ) 
>  		return FALSE;
>  
> -	if(flags & PROBE_DETECT) 
> +	if ( xf86DoConfigure && xf86DoConfigurePass1 ) {
> +		GDevPtr pGDev;
> +		for (i = 0; i < numUsed; i++) {
> +			pGDev = xf86AddBusDeviceToConfigure(NEWPORT_DRIVER_NAME,
> +				BUS_NONE, NULL, 0);
> +			if (pGDev) {
> +				/*
> +				 * XF86Match???Instances() treat chipID and 
> +				 * chipRev as overrides, so clobber them here.
> +				 */
> +				pGDev->chipID = pGDev->chipRev = -1;
> +			}
> +	    	}
> +	}
> +
> +	if(flags & PROBE_DETECT) {
>  		foundScreen = TRUE;
> -	else {
> +	} else {
>  		for (i = 0; i < numDevSections; i++) {
>  			dev = devSections[i];
>  			busID =  xf86SetIntOption(dev->options, "BusID", 0);
> @@ -372,9 +398,11 @@
>  		pNewport->board_rev, pNewport->rex3_rev, 
>  		pNewport->cmap_rev, pNewport->xmap9_rev);
>  
> -	if ( (xf86GetOptValInteger(pNewport->Options, OPTION_BITPLANES, &pNewport->bitplanes)))
> +	if ( (xf86GetOptValInteger(pNewport->Options, OPTION_BITPLANES, 
> +	    &pNewport->bitplanes)))
>  	from = X_CONFIG;
> -	xf86DrvMsg(pScrn->scrnIndex, from, "Newport has %d bitplanes\n", pNewport->bitplanes);
> +	xf86DrvMsg(pScrn->scrnIndex, from, "Newport has %d bitplanes\n", 
> +	    pNewport->bitplanes);
>  
>  	if ( pScrn->depth > pNewport->bitplanes ) {
>  		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, \
> @@ -459,6 +487,12 @@
>  		return FALSE;
>  	}
>  
> +	/* Load XAA module */
> +	if (!xf86LoadSubModule(pScrn, "xaa")) {
> +		NewportFreeRec(pScrn);
> +		return FALSE;
> +	}
> +	xf86LoaderReqSymLists(xaaSymbols, NULL);
>  	return TRUE;
>  }
>  
> @@ -537,7 +571,6 @@
>  		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
>  			   "RENDER extension initialisation failed.\n");
>  
> -	miInitializeBackingStore(pScreen);
>  	xf86SetBackingStore(pScreen);
>  
>  	xf86SetBlackWhitePixels(pScreen);
> @@ -617,7 +650,7 @@
>  	if (serverGeneration == 1) {
>  		xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options);
>  	}
> -	
> +	NewportModeInit(pScrn, pScrn->currentMode);
>  	return TRUE;
>  }
>  
> @@ -709,7 +742,8 @@
>  
>  	width = mode->HDisplay;
>  	height = mode->VDisplay;
> -	if (width != 1280 || height != 1024) {
> +	if ((width > 1280) || (width < 1024) ||
> +	    (height < 768) || (height > 1024)) {
>  		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, \
>  		"Width = %d and height = %d is not supported by by this driver\n", width, height);
>  		return FALSE;
> @@ -735,17 +769,22 @@
>  					NPORT_DMODE1_RWPCKD;
>  	} else { /* 24bpp */
>  		CARD32 mode = 0L;
> +		LOCO col;
> +		int i;
>  
>  		/* tell the xmap9s that we are using 24bpp */
>  		NewportBfwait(pNewport->pNewportRegs);
> -		pNewportRegs->set.dcbmode = (DCB_XMAP_ALL | W_DCB_XMAP9_PROTOCOL |
> -				XM9_CRS_CONFIG | NPORT_DMODE_W1 );
> -		pNewportRegs->set.dcbdata0.bytes.b3 &= ~(XM9_8_BITPLANES | XM9_PUPMODE);
> +		pNewportRegs->set.dcbmode = (DCB_XMAP_ALL | 
> +		    W_DCB_XMAP9_PROTOCOL | XM9_CRS_CONFIG | NPORT_DMODE_W1 );
> +		pNewportRegs->set.dcbdata0.bytes.b3 &= 
> +		    ~(XM9_8_BITPLANES | XM9_PUPMODE);
>  		NewportBfwait(pNewport->pNewportRegs);
>  		/* set up the mode register for 24bpp */
> -		mode = XM9_MREG_PIX_SIZE_24BPP | XM9_MREG_PIX_MODE_RGB1
> +		mode = XM9_MREG_PIX_SIZE_24BPP | XM9_MREG_PIX_MODE_RGB2
>  				| XM9_MREG_GAMMA_BYPASS;
> -		NewportXmap9SetModeRegister( pNewportRegs , 0, mode);
> +		for (i = 0; i < 32; i++)
> +			NewportXmap9SetModeRegister( pNewportRegs , i, mode);
> +
>  		/* select the set up mode register */
>  		NewportBfwait(pNewport->pNewportRegs);
>  		pNewportRegs->set.dcbmode = (DCB_XMAP_ALL | W_DCB_XMAP9_PROTOCOL |
> @@ -759,16 +798,29 @@
>  					NPORT_DMODE1_RGBMD | 
>  					/* turn on 8888 = RGBA pixel packing */
>  					NPORT_DMODE1_HD32 | NPORT_DMODE1_RWPCKD;
> -		/* After setting up XMAP9 we have to reinitialize the CMAP for
> -		 * whatever reason (the docs say nothing about it). RestorePalette()
> -		 * is just a lazy way to do this */
> -		NewportRestorePalette( pScrn );
> +		/*
> +		 * After setting up XMAP9 we have to reinitialize the CMAP for
> +		 * whatever reason (the docs say nothing about it). 
> +		 */
> +
> +
> +		for (i = 0; i < 256; i++) {
> +			col.red = col.green = col.blue = i;
> +			NewportCmapSetRGB(NEWPORTREGSPTR(pScrn), i, col);
> +		}
> +		for (i = 0; i < 256; i++) {
> +			col.red = col.green = col.blue = i;
> +			NewportCmapSetRGB(NEWPORTREGSPTR(pScrn), i + 0x1f00,
> +			    col);
> +		}
> +
>  	}
>  	/* blank the framebuffer */
>  	NewportWait(pNewportRegs);
> -	pNewportRegs->set.drawmode0 = (NPORT_DMODE0_DRAW | NPORT_DMODE0_DOSETUP |
> -					NPORT_DMODE0_STOPX | NPORT_DMODE0_STOPY |
> -					NPORT_DMODE0_BLOCK);
> +	pNewportRegs->set.drawmode0 = (NPORT_DMODE0_DRAW |
> +				       NPORT_DMODE0_DOSETUP |
> +				       NPORT_DMODE0_STOPX | NPORT_DMODE0_STOPY |
> +				       NPORT_DMODE0_BLOCK);
>  	pNewportRegs->set.drawmode1 = pNewport->drawmode1 |
>  					NPORT_DMODE1_FCLR |
>  					NPORT_DMODE1_RGBMD;
> @@ -812,10 +864,22 @@
>  static unsigned
>  NewportHWProbe(unsigned probedIDs[])
>  {
> -	FILE* cpuinfo;
> -	char line[80];
>  	unsigned hasNewport = 0;
>  
> +#if defined(__NetBSD__)
> +	int fd, type, i;
> +
> +	probedIDs[0] = 0;
> +
> +	fd = open("/dev/ttyE0", O_RDONLY, 0);
> +	i = ioctl(fd, WSDISPLAYIO_GTYPE, &type);
> +	close(fd);
> +
> +	if ( (i == 0) && ( type == WSDISPLAY_TYPE_NEWPORT) )
> +		hasNewport = 1;
> +#else
> +	FILE* cpuinfo;
> +	char line[80];
>  	if ((cpuinfo = fopen("/proc/cpuinfo", "r"))) {
>  		while(fgets(line, 80, cpuinfo) != NULL) {
>  			if(strstr(line, "SGI Indy") != NULL) {
> @@ -831,6 +895,7 @@
>  		}
>  		fclose(cpuinfo);
>  	}
> +#endif
>  	return hasNewport;
>  }
>  
> @@ -866,12 +931,19 @@
>  {
>  	NewportPtr pNewport = NEWPORTPTR(pScrn);
>  
> +#if defined(__NetBSD__)
> +	pNewport->pNewportRegs = xf86MapVidMem(pScrn->scrnIndex,
> +			VIDMEM_MMIO, NEWPORT_REGISTERS, sizeof(NewportRegs));
> +#else
>  	pNewport->pNewportRegs = xf86MapVidMem(pScrn->scrnIndex, 
>  			VIDMEM_MMIO,
> -			NEWPORT_BASE_ADDR0 + pNewport->busID * NEWPORT_BASE_OFFSET,
> -			 sizeof(NewportRegs));
> -	if ( ! pNewport->pNewportRegs ) 
> +			NEWPORT_BASE_ADDR0 + pNewport->busID * 
> +			    NEWPORT_BASE_OFFSET, sizeof(NewportRegs));
> +#endif
> +	if ( ! pNewport->pNewportRegs ) {
> +		xf86Msg(X_ERROR, "can't map registers\n");
>  		return FALSE;
> +	}
>  	return TRUE;
>  }
>  
> Index: dist/src/newport_regs.c
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-newport/dist/src/newport_regs.c,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -r1.1.1.1 -r1.2
> --- dist/src/newport_regs.c	14 Feb 2009 03:04:46 -0000	1.1.1.1
> +++ dist/src/newport_regs.c	6 Oct 2009 20:28:14 -0000	1.2
> @@ -14,19 +14,19 @@
>  void 
>  NewportVc2Set(NewportRegsPtr pNewportRegs, unsigned char vc2Ireg, unsigned short val)
>  {
> -	pNewportRegs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_INDEX | NPORT_DMODE_W3 |
> -					NPORT_DMODE_ECINC | VC2_PROTOCOL);
> +	pNewportRegs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_INDEX | 
> +	    NPORT_DMODE_W3 | NPORT_DMODE_ECINC | VC2_PROTOCOL);
>  	pNewportRegs->set.dcbdata0.all = (vc2Ireg << 24) | (val << 8);
>  }
>  
>  unsigned short 
>  NewportVc2Get(NewportRegsPtr pNewportRegs, unsigned char vc2Ireg)
>  {
> -	pNewportRegs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_INDEX | NPORT_DMODE_W1 |
> -					NPORT_DMODE_ECINC | VC2_PROTOCOL);
> +	pNewportRegs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_INDEX | 
> +	    NPORT_DMODE_W1 | NPORT_DMODE_ECINC | VC2_PROTOCOL);
>  	pNewportRegs->set.dcbdata0.bytes.b3 = vc2Ireg;
> -	pNewportRegs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_IREG | NPORT_DMODE_W2 |
> -					NPORT_DMODE_ECINC | VC2_PROTOCOL);
> +	pNewportRegs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_IREG | 
> +	    NPORT_DMODE_W2 | NPORT_DMODE_ECINC | VC2_PROTOCOL);
>  	return pNewportRegs->set.dcbdata0.hwords.s1;
>  }
>  
> @@ -106,7 +106,7 @@
>  	while(1) {
>  		NewportBfwait( pNewportRegs);
>  		pNewportRegs->set.dcbmode = (xmapChip | R_DCB_XMAP9_PROTOCOL |
> -						XM9_CRS_FIFO_AVAIL | NPORT_DMODE_W1);
> +		    XM9_CRS_FIFO_AVAIL | NPORT_DMODE_W1);
>  		if( (pNewportRegs->set.dcbdata0.bytes.b3) & 7 ) 
>  			break;
>  	}
> Index: dist/src/newport_regs.h
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-newport/dist/src/newport_regs.h,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -r1.1.1.1 -r1.2
> --- dist/src/newport_regs.h	14 Feb 2009 03:04:46 -0000	1.1.1.1
> +++ dist/src/newport_regs.h	6 Oct 2009 20:28:14 -0000	1.2
> @@ -397,8 +397,8 @@
>  #   define XM9_CRS_FIFO_AVAIL        (2 << DCB_CRS_SHIFT)
>  #       define XM9_FIFO_0_AVAIL      0
>  #       define XM9_FIFO_1_AVAIL      1
> -#       define XM9_FIFO_2_AVAIL      3
> -#       define XM9_FIFO_3_AVAIL      2
> +#       define XM9_FIFO_2_AVAIL      2
> +#       define XM9_FIFO_3_AVAIL      3
>  #       define XM9_FIFO_FULL         XM9_FIFO_0_AVAIL
>  #       define XM9_FIFO_EMPTY        XM9_FIFO_3_AVAIL
>  #   define XM9_CRS_CURS_CMAP_MSB     (3 << DCB_CRS_SHIFT)
> @@ -412,7 +412,7 @@
>  		   (setup << DCB_CSSETUP_SHIFT)|    \
>  		   (width << DCB_CSWIDTH_SHIFT))
>  
> -#define W_DCB_XMAP9_PROTOCOL       DCB_CYCLES (2, 1, 0)
> +#define W_DCB_XMAP9_PROTOCOL       DCB_CYCLES (1, 2, 3)
>  #define WSLOW_DCB_XMAP9_PROTOCOL   DCB_CYCLES (5, 5, 0)
>  #define WAYSLOW_DCB_XMAP9_PROTOCOL DCB_CYCLES (12, 12, 0)
>  #define R_DCB_XMAP9_PROTOCOL       DCB_CYCLES (2, 1, 3)

> Index: dist/src/compat-api.h
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-tga/dist/src/compat-api.h,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -r1.1.1.1 -r1.2
> --- dist/src/compat-api.h	3 Jun 2013 09:59:08 -0000	1.1.1.1
> +++ dist/src/compat-api.h	31 Dec 2018 22:17:21 -0000	1.2
> @@ -78,11 +78,19 @@
>  
>  #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
>  
> +#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
> +#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
> +#define BLOCKHANDLER_ARGS arg, pTimeout
> +
> +#define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, int result
> +#define WAKEUPHANDLER_ARGS arg, result
> +#else
>  #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
>  #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
>  
>  #define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result, pointer read_mask
>  #define WAKEUPHANDLER_ARGS arg, result, read_mask
> +#endif
>  
>  #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
>  #define CLOSE_SCREEN_ARGS pScreen
> Index: dist/src/tga_accel.c
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-tga/dist/src/tga_accel.c,v
> retrieving revision 1.1.1.2
> retrieving revision 1.4
> diff -u -r1.1.1.2 -r1.4
> --- dist/src/tga_accel.c	3 Jun 2013 09:59:08 -0000	1.1.1.2
> +++ dist/src/tga_accel.c	20 Aug 2016 00:27:22 -0000	1.4
> @@ -37,7 +37,6 @@
>  #include "xf86cmap.h"
>  #include "mipointer.h"
>  
> -#include "mibstore.h"
>  #include "miline.h"
>  
>  #include "tga_regs.h"
> Index: dist/src/tga_driver.c
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-tga/dist/src/tga_driver.c,v
> retrieving revision 1.1.1.4
> retrieving revision 1.4
> diff -u -r1.1.1.4 -r1.4
> --- dist/src/tga_driver.c	3 Jun 2013 09:59:08 -0000	1.1.1.4
> +++ dist/src/tga_driver.c	20 Aug 2016 00:27:22 -0000	1.4
> @@ -46,8 +46,6 @@
>  
>  /* software cursor */
>  #include "mipointer.h"
> -/* backing store */
> -#include "mibstore.h"
>  
>  /*  #include "mibank.h" */
>  /* colormap manipulation */
> @@ -1451,7 +1449,6 @@
>      
>      fbPictureInit (pScreen, 0, 0);
>      
> -    miInitializeBackingStore(pScreen);
>      xf86SetBackingStore(pScreen);
>      xf86SetSilkenMouse(pScreen);
>  

> Index: dist/src/compat-api.h
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-tseng/dist/src/compat-api.h,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -r1.1.1.1 -r1.2
> --- dist/src/compat-api.h	3 Jun 2013 09:59:12 -0000	1.1.1.1
> +++ dist/src/compat-api.h	31 Dec 2018 22:17:21 -0000	1.2
> @@ -78,11 +78,19 @@
>  
>  #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
>  
> +#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
> +#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
> +#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
> +
> +#define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, int result
> +#define WAKEUPHANDLER_ARGS arg, result
> +#else
>  #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
>  #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
>  
>  #define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result, pointer read_mask
>  #define WAKEUPHANDLER_ARGS arg, result, read_mask
> +#endif
>  
>  #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
>  #define CLOSE_SCREEN_ARGS pScreen
> Index: dist/src/tseng_accel.c
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-tseng/dist/src/tseng_accel.c,v
> retrieving revision 1.1.1.3
> retrieving revision 1.2
> diff -u -r1.1.1.3 -r1.2
> --- dist/src/tseng_accel.c	3 Jun 2013 09:59:12 -0000	1.1.1.3
> +++ dist/src/tseng_accel.c	3 Jun 2013 10:28:19 -0000	1.2
> @@ -115,7 +115,7 @@
>      }
>  }
>  
> -static void 
> +void 
>  tseng_recover_timeout(TsengPtr pTseng)
>  {
>      if (pTseng->ChipType == ET4000) {
> Index: dist/src/tseng_accel.h
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-tseng/dist/src/tseng_accel.h,v
> retrieving revision 1.1.1.1
> retrieving revision 1.2
> diff -u -r1.1.1.1 -r1.2
> --- dist/src/tseng_accel.h	2 Aug 2008 05:17:35 -0000	1.1.1.1
> +++ dist/src/tseng_accel.h	3 Jun 2013 10:28:19 -0000	1.2
> @@ -95,7 +95,7 @@
>  #define MAX_WAIT_CNT 500000	       /* how long we wait before we time out */
>  #undef WAIT_VERBOSE		       /* if defined: print out how long we waited */
>  
> -static void tseng_recover_timeout(TsengPtr pTseng);
> +void tseng_recover_timeout(TsengPtr pTseng);
>  
>  static __inline__ void 
>  tseng_wait(TsengPtr pTseng, int reg, char *name, unsigned char mask)
> Index: dist/src/tseng_driver.c
> ===================================================================
> RCS file: /cvsroot/xsrc/external/mit/xf86-video-tseng/dist/src/tseng_driver.c,v
> retrieving revision 1.1.1.5
> retrieving revision 1.3
> diff -u -r1.1.1.5 -r1.3
> --- dist/src/tseng_driver.c	3 Jun 2013 09:59:12 -0000	1.1.1.5
> +++ dist/src/tseng_driver.c	31 Dec 2018 22:17:21 -0000	1.3
> @@ -39,9 +39,6 @@
>  /* All drivers initialising the SW cursor need this */
>  #include "mipointer.h"
>  
> -/* All drivers implementing backing store need this */
> -#include "mibstore.h"
> -
>  #include "fb.h"
>  
>  #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
> @@ -1040,10 +1037,6 @@
>      else
>  	pTseng->Bytesperpixel = 1;  /* this is fake for < 8bpp, but simplifies other code */
>  
> -    /* hardware limits */
> -    pScrn->maxHValue = Tseng_HMAX;
> -    pScrn->maxVValue = Tseng_VMAX;
> -
>      /*
>       * This must happen after pScrn->display has been set because
>       * xf86SetWeight references it.
> @@ -1136,8 +1129,8 @@
>      /* Select valid modes from those available */
>      i = xf86ValidateModes(pScrn, pScrn->monitor->Modes,
>  	pScrn->display->modes, &pTseng->clockRange,
> -	NULL, 32, pScrn->maxHValue, 8*pTseng->Bytesperpixel, /* H limits */
> -	0, pScrn->maxVValue,	       /* V limits */
> +	NULL, 32, /* XXXMRG pScrn->maxHValue*/ 2048, 8*pTseng->Bytesperpixel, /* H limits */
> +	0, /* XXXMRG pScrn->maxVValue*/ 2048,	       /* V limits */
>  	pScrn->display->virtualX,
>  	pScrn->display->virtualY,
>  	pTseng->FbMapSize,
> @@ -1453,7 +1446,6 @@
>  	}
>      }
>  
> -    miInitializeBackingStore(pScreen);
>      xf86SetSilkenMouse(pScreen);
>      /* Initialise cursor functions */
>      miDCInitialize(pScreen, xf86GetPointerScreenFuncs());

Patch hide | download patch | download mbox

Index: dist/src/vb_ext.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/vb_ext.c,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- dist/src/vb_ext.c	19 Jul 2012 15:24:38 -0000	1.1.1.1
+++ dist/src/vb_ext.c	2 Nov 2012 07:44:10 -0000	1.3
@@ -139,7 +139,7 @@ 
     USHORT tempax = 0 , tempbx , tempcx , temp ,
            P2reg0 = 0 , SenseModeNo = 0 , OutputSelect = pVBInfo->OutputSelect,
            ModeIdIndex , i ;
-    pVBInfo->BaseAddr = ( USHORT )HwDeviceExtension->pjIOAddress ;
+    pVBInfo->BaseAddr = ( ULONG )HwDeviceExtension->pjIOAddress ;
 
     {		/* for 301 */
         if ( pVBInfo->VBInfo & SetCRT2ToHiVisionTV )
@@ -510,7 +510,7 @@ 
     /* VB_DEVICE_INFO VBINF; */
     /* PVB_DEVICE_INFO pVBInfo = pXGI->XGI_Pr */ /* &VBINF */;
 
-	ErrorF("XGISetDPMS(VESA_POWER_STATE = 0x%x)...\n", VESA_POWER_STATE);
+	ErrorF("XGISetDPMS(VESA_POWER_STATE = 0x%lx)...\n", VESA_POWER_STATE);
 
     InitTo330Pointer( pXGIHWDE->jChipType,  pVBInfo ) ;
     ReadVBIOSTablData( pXGIHWDE->jChipType , pVBInfo) ;
Index: dist/src/vb_i2c.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/vb_i2c.c,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- dist/src/vb_i2c.c	19 Jul 2012 15:24:39 -0000	1.1.1.1
+++ dist/src/vb_i2c.c	2 Nov 2012 07:47:19 -0000	1.3
@@ -3,6 +3,7 @@ 
 #include "config.h"
 #endif
 
+#include <unistd.h>
 #include "osdef.h"
 #include "vgatypes.h"
 /* #include "vb_util.h" */ /* Jong@08032009 */
@@ -114,7 +115,7 @@ 
 #define ENABLE_GPIOC          0x04
 VOID
 EnableGPIOA(
-PUCHAR pjIOPort, I2C_ACCESS_CMD CmdType)
+XGIIOADDRESS pjIOPort, I2C_ACCESS_CMD CmdType)
 {
 	PDEBUGI2C(ErrorF("EnableGPIOA()-pjIOPort=0x%x...\n", pjIOPort));
 
@@ -134,7 +135,7 @@ 
 
 VOID
 EnableGPIOB(
-PUCHAR pjIOPort, I2C_ACCESS_CMD CmdType)
+XGIIOADDRESS pjIOPort, I2C_ACCESS_CMD CmdType)
 {
     UCHAR ujCR4A = XGI_GetReg(pjIOPort, IND_CR4A_GPIO_REG_III);
 
@@ -152,7 +153,7 @@ 
 
 VOID
 EnableGPIOC(
-PUCHAR pjIOPort, I2C_ACCESS_CMD CmdType)
+XGIIOADDRESS pjIOPort, I2C_ACCESS_CMD CmdType)
 {
     UCHAR ujCR4A = XGI_GetReg(pjIOPort, IND_CR4A_GPIO_REG_III);
 
@@ -1174,8 +1175,8 @@ 
 *************************************************************************/
 VOID vWriteClockLineDVI(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data)
 {
-    UCHAR       temp;
-    PUCHAR      pjI2cIOBase;
+    UCHAR        temp;
+    XGIIOADDRESS pjI2cIOBase;
 
 	PDEBUGI2C(ErrorF("vWriteClockLineDVI()...begin\n"));
 
@@ -1224,8 +1225,8 @@ 
 *************************************************************************/
 VOID vWriteDataLineDVI(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data)
 {
-    UCHAR       temp;
-    PUCHAR      pjI2cIOBase;
+    UCHAR        temp;
+    XGIIOADDRESS pjI2cIOBase;
 
 	PDEBUGI2C(ErrorF("vWriteDataLineDVI()...begin\n"));
 
@@ -1277,8 +1278,8 @@ 
 *************************************************************************/
 BOOLEAN bReadClockLineDVI(PXGI_HW_DEVICE_INFO pHWDE)
 {
-    UCHAR   cPortData;
-    PUCHAR  pjI2cIOBase;
+    UCHAR        cPortData;
+    XGIIOADDRESS pjI2cIOBase;
 
 	PDEBUGI2C(ErrorF("bReadClockLineDVI()...begin\n"));
 
@@ -1318,7 +1319,7 @@ 
 BOOLEAN bReadDataLineDVI(PXGI_HW_DEVICE_INFO pHWDE)
 {
     UCHAR       cPortData;
-    PUCHAR      pjI2cIOBase; 
+    XGIIOADDRESS      pjI2cIOBase; 
 
 	PDEBUGI2C(ErrorF("bReadDataLineDVI()...begin\n"));
 
@@ -1357,7 +1358,7 @@ 
 //*************************************************************************//
 VOID vWaitForCRT1HsyncActive(PXGI_HW_DEVICE_INFO  pHWDE)
 {
-    PUCHAR  pjPort = pHWDE->pjIOAddress + INPUT_STATUS_1_COLOR;
+    XGIIOADDRESS  pjPort = pHWDE->pjIOAddress + INPUT_STATUS_1_COLOR;
     ULONG   i;
 
     for (i = 0; i < 0x00FFFF; i++)
@@ -1398,7 +1399,7 @@ 
 VOID vWriteClockLineCRT(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data)
 {
     UCHAR       temp, ujSR1F;
-    PUCHAR      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
+    XGIIOADDRESS      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
 
     PDEBUGI2C(ErrorF("I2C:Write CRT clock = %x\n", data & 1));
 
@@ -1433,7 +1434,7 @@ 
 VOID vWriteDataLineCRT(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data)
 {
     UCHAR       temp, ujSR1F;
-    PUCHAR      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
+    XGIIOADDRESS      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
 
     PDEBUGI2C(ErrorF("I2C:Write CRT data = %x\n", data & 1));
 
@@ -1467,7 +1468,7 @@ 
 BOOLEAN bReadClockLineCRT(PXGI_HW_DEVICE_INFO pHWDE)
 {
     UCHAR       cPortData;
-    PUCHAR      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
+    XGIIOADDRESS      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
 
     cPortData = XGI_GetReg(pjI2cIOBase, IND_SR11_DDC_REG);
     cPortData = GETBITS(cPortData, 0:0);
@@ -1489,7 +1490,7 @@ 
 BOOLEAN bReadDataLineCRT(PXGI_HW_DEVICE_INFO pHWDE)
 {
     UCHAR cPortData;
-    PUCHAR      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
+    XGIIOADDRESS      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
 
     cPortData = XGI_GetReg(pjI2cIOBase, IND_SR11_DDC_REG);
     cPortData = GETBITS(cPortData, 1:1);
@@ -1517,7 +1518,7 @@ 
 VOID vWriteClockLineFCNT(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data)
 {
     UCHAR       temp;
-    PUCHAR      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
+    XGIIOADDRESS      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
 
     PDEBUGI2C(ErrorF("I2C:Write FCNT clock = %x\n", data & 1));
 
@@ -1541,7 +1542,7 @@ 
 VOID vWriteDataLineFCNT(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data)
 {
     UCHAR       temp, temp2, temp3;
-    PUCHAR      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
+    XGIIOADDRESS      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
 
     PDEBUGI2C(ErrorF("I2C:Write FCNT data = %x\n", data & 1));
 
@@ -1565,7 +1566,7 @@ 
 BOOLEAN bReadClockLineFCNT(PXGI_HW_DEVICE_INFO pHWDE)
 {
     UCHAR       cPortData;
-    PUCHAR      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
+    XGIIOADDRESS      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
 
     cPortData = XGI_GetReg(pjI2cIOBase, IND_SR11_DDC_REG);
     cPortData = GETBITS(cPortData, 2:2);
@@ -1587,7 +1588,7 @@ 
 BOOLEAN bReadDataLineFCNT(PXGI_HW_DEVICE_INFO pHWDE)
 {
     UCHAR       cPortData;
-    PUCHAR      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
+    XGIIOADDRESS      pjI2cIOBase = pHWDE->pjIOAddress + SEQ_ADDRESS_PORT;
 
     cPortData = XGI_GetReg(pjI2cIOBase, IND_SR11_DDC_REG);
     cPortData = GETBITS(cPortData, 3:3);
@@ -1630,8 +1631,10 @@ 
 		return(bReadClockLineDVI(pHWDE));
 	else if(pHWDE->crtno == 2)
 		return(bReadClockLineFCNT(pHWDE));
-	else
+	else {
 		ErrorF("Error(XGI) : Unkonwn output device! \n");
+		return FALSE;
+	}
 }
 
 BOOLEAN bReadDataLine(PXGI_HW_DEVICE_INFO pHWDE)
@@ -1642,8 +1645,10 @@ 
 		return(bReadDataLineDVI(pHWDE));
 	else if(pHWDE->crtno == 2)
 		return(bReadDataLineFCNT(pHWDE));
-	else
+	else {
 		ErrorF("Error(XGI) : Unkonwn output device! \n");
+		return FALSE;
+	}
 }
 
 BOOLEAN bEDIDCheckSum(PUCHAR  pjEDIDBuf,ULONG   ulBufSize)
@@ -1890,4 +1895,4 @@ 
 
    PDEBUGI2C(ErrorF("bGetEDID()-return(%d)\n", status == NO_ERROR ? 1:0));
     return (status == NO_ERROR);
-}
\ No newline at end of file
+}
Index: dist/src/vb_i2c.h
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/vb_i2c.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dist/src/vb_i2c.h	19 Jul 2012 15:24:39 -0000	1.1.1.1
+++ dist/src/vb_i2c.h	19 Jul 2012 19:18:20 -0000	1.2
@@ -7,7 +7,7 @@ 
 #endif 
 #ifndef u32
 #define u32 unsigned long
-#define u8 unsigned long
+#define u8 uint8_t
 #endif
 
 /* Jong@08052009 */
@@ -81,8 +81,11 @@ 
 //#define MASK(n)         BITSMASK(1?n, 0?n)
 // set bits as 1 between bit(a) and bit(b)
 #define MASK(n)         ( BITS(LARGE(n)-SMALL(n)+1) << SMALL(n) )
+
+#ifndef GETBITS
 // get bits [a:b]'s binary value
 #define GETBITS(b,n)    ( ((b) & MASK(n)) >> SMALL(n) ) /* Jong@08032009 */
+#endif /* GETBITS */
 // set binary value from [a:0] to [c:d]
 #define SETBITS(b, n)   ( ( (b) << ((1?n) > (0?n) ? (0?n) : (1?n)) ) & MASK(n) )
 // move bits value from [a:b] to [c:d]
@@ -180,5 +183,6 @@ 
 extern  BOOLEAN I2CRead(PXGI_HW_DEVICE_INFO pHWDE,PI2CControl pI2CControl);
 extern  BOOLEAN I2CWrite(PXGI_HW_DEVICE_INFO pHWDE,  PI2CControl pI2CControl);
 extern  BOOLEAN ResetI2C(PXGI_HW_DEVICE_INFO pHWDE,  PI2CControl pI2CControl);
+extern  BOOLEAN bGetEDID(PXGI_HW_DEVICE_INFO, ULONG , PUCHAR, ULONG);
 
 #endif
Index: dist/src/vb_setmode.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/vb_setmode.c,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- dist/src/vb_setmode.c	19 Jul 2012 15:24:40 -0000	1.1.1.1
+++ dist/src/vb_setmode.c	2 Nov 2012 07:55:38 -0000	1.3
@@ -189,7 +189,7 @@ 
 void XGI_SetCRT2ECLK(USHORT ModeNo, USHORT ModeIdIndex,
                      USHORT RefreshRateTableIndex, PVB_DEVICE_INFO pVBInfo);
 void InitTo330Pointer(UCHAR, PVB_DEVICE_INFO pVBInfo);
-void XGI_GetLCDSync(USHORT * HSyncWidth, USHORT * VSyncWidth,
+void XGI_GetLCDSync(ULONG * HSyncWidth, ULONG * VSyncWidth,
                     PVB_DEVICE_INFO pVBInfo);
 void XGI_DisableBridge(PXGI_HW_DEVICE_INFO HwDeviceExtension,
                        PVB_DEVICE_INFO pVBInfo);
@@ -325,8 +325,8 @@ 
         (void) memcpy(pVBInfo->ECLKData, XGI330_ECLKData, sizeof(XGI330_ECLKData));
     }
 
-    pVBInfo->VCLKData = XGI_VCLKData;
-    pVBInfo->VBVCLKData = XGI_VBVCLKData;
+    pVBInfo->VCLKData = (const XGI_VCLKDataStruct *)XGI_VCLKData;
+    pVBInfo->VBVCLKData = (const XGI_VBVCLKDataStruct *)XGI_VBVCLKData;
     pVBInfo->ScreenOffset = XGI330_ScreenOffset;
     pVBInfo->StResInfo = XGI330_StResInfo;
     pVBInfo->ModeResInfo = XGI330_ModeResInfo;
@@ -3131,7 +3131,7 @@ 
 
 
 static void
-get_HDE_VDE(PVB_DEVICE_INFO pVBInfo, USHORT *HDE, USHORT *VDE)
+get_HDE_VDE(PVB_DEVICE_INFO pVBInfo, ULONG *HDE, ULONG *VDE)
 {
     switch (pVBInfo->LCDResInfo) {
     case Panel1024x768:
@@ -3265,7 +3265,7 @@ 
 XGI_SetLVDSRegs(USHORT ModeNo, USHORT ModeIdIndex,
                 USHORT RefreshRateTableIndex, PVB_DEVICE_INFO pVBInfo)
 {
-    USHORT tempbx, tempax, tempcx, tempdx, push1, push2, modeflag;
+    ULONG tempbx, tempax, tempcx, tempdx, push1, push2, modeflag;
     unsigned long temp, temp1, temp2, temp3, push3;
     XGI330_LCDDataDesStruct *LCDPtr = NULL;
     XGI330_LCDDataDesStruct2 *LCDPtr1 = NULL;
@@ -6282,7 +6282,7 @@ 
                PXGI_HW_DEVICE_INFO HwDeviceExtension,
                USHORT RefreshRateTableIndex, PVB_DEVICE_INFO pVBInfo)
 {
-    USHORT push1,
+    ULONG push1,
         push2,
         pushbx,
         tempax,
@@ -8610,7 +8610,7 @@ 
 /* Description : */
 /* --------------------------------------------------------------------- */
 void
-XGI_GetLCDSync(USHORT * HSyncWidth, USHORT * VSyncWidth,
+XGI_GetLCDSync(ULONG * HSyncWidth, ULONG * VSyncWidth,
                PVB_DEVICE_INFO pVBInfo)
 {
     USHORT Index;
@@ -9502,7 +9502,7 @@ 
     if (pVBInfo->
         VBType & (VB_XGI301B | VB_XGI302B | VB_XGI301LV | VB_XGI302LV |
                   VB_XGI301C))
-        *tempch++;
+        (*tempch)++;
 }
 
 
@@ -10018,7 +10018,7 @@ 
 {
 	/* Jong 10/08/2007; merge code */
     USHORT tempbx ; 
-    UCHAR *CHTVVCLKPtr = NULL ;
+    const UCHAR *CHTVVCLKPtr = NULL ;
 
 	unsigned VCLKIndex;
     USHORT CRT2Index;
@@ -10242,4 +10242,4 @@ 
     }
 
 	PDEBUG(ErrorF("XGIInitMiscVBInfo()...End\n"));
-}
\ No newline at end of file
+}
Index: dist/src/vb_table.h
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/vb_table.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dist/src/vb_table.h	19 Jul 2012 15:24:41 -0000	1.1.1.1
+++ dist/src/vb_table.h	19 Jul 2012 19:18:20 -0000	1.2
@@ -3112,14 +3112,14 @@ 
  { 1152, 864, 8,16}
 };
 
-static const UCHAR XGI330_OutputSelect = 0x40;
-static const UCHAR XGI330_SoftSetting = 0x30;
-static const UCHAR XGI330_SR07 = 0x18;
-static const UCHAR XG21_DVOSetting = 0x00 ;
-static const UCHAR XG21_CR2E = 0x00 ;
-static const UCHAR XG21_CR2F = 0x00 ;
-static const UCHAR XG21_CR46 = 0x00 ;
-static const UCHAR XG21_CR47 = 0x00 ;
+static UCHAR XGI330_OutputSelect = 0x40;
+static UCHAR XGI330_SoftSetting = 0x30;
+static UCHAR XGI330_SR07 = 0x18;
+static UCHAR XG21_DVOSetting = 0x00 ;
+static UCHAR XG21_CR2E = 0x00 ;
+static UCHAR XG21_CR2F = 0x00 ;
+static UCHAR XG21_CR46 = 0x00 ;
+static UCHAR XG21_CR47 = 0x00 ;
 
 UCHAR XG27_CR97 = 0xC1 ;
 UCHAR XG27_SR36 = 0x30 ;
Index: dist/src/vgatypes.h
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/vgatypes.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dist/src/vgatypes.h	19 Jul 2012 15:24:41 -0000	1.1.1.1
+++ dist/src/vgatypes.h	19 Jul 2012 19:18:20 -0000	1.2
@@ -212,7 +212,7 @@ 
 
 typedef struct _XGI_HW_DEVICE_INFO  XGI_HW_DEVICE_INFO, *PXGI_HW_DEVICE_INFO;
 
-typedef BOOLEAN (*PXGI_QUERYSPACE)   (PXGI_HW_DEVICE_INFO, ULONG, ULONG, ULONG *);
+typedef BOOLEAN (*PXGI_QUERYSPACE)   (PXGI_HW_DEVICE_INFO, ULONG, ULONG, CARD32 *);
 
 struct _XGI_HW_DEVICE_INFO
 {
@@ -229,7 +229,7 @@ 
 
     ULONG  ulVideoMemorySize;    /* size, in bytes, of the memory on the board */
 
-    PUCHAR pjIOAddress;          /* base I/O address of VGA ports (0x3B0) */
+    XGIIOADDRESS pjIOAddress;          /* base I/O address of VGA ports (0x3B0) */
 
     PUCHAR pjCustomizedROMImage;
 
Index: dist/src/xgi.h
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/xgi.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dist/src/xgi.h	19 Jul 2012 15:24:41 -0000	1.1.1.1
+++ dist/src/xgi.h	19 Jul 2012 19:18:20 -0000	1.2
@@ -32,13 +32,6 @@ 
 #ifndef _XGI_H_
 #define _XGI_H_
 
-#define DEBUG 
-#define DEBUG1
-#define DEBUG2
-#define DEBUG3
-#define DEBUG4
-#define DEBUG5
-
 /***************
 #define DEBUG 
 #define DEBUG1
@@ -51,7 +44,7 @@ 
 
 #ifndef XGI_VIDEO_HW /* avoid compile error in xgi_videohw.c; weird!  */
 /* Jong 07/27/2009; use run-time debug instead except for HW acceleration routines */
-extern BOOL g_bRunTimeDebug;
+extern Bool g_bRunTimeDebug;
 #define RUNTIMEDEBUG(p)		if(g_bRunTimeDebug)p;
 
 /* Jong@08052009 */
@@ -1017,7 +1010,10 @@ 
 extern void XGI_SetRegAND(XGIIOADDRESS Port, USHORT Index, USHORT DataAND);
 extern void XGI_SetRegOR(XGIIOADDRESS Port, USHORT Index, USHORT DataOR);
 
+#ifndef __NetBSD__
 #define uint8_t	CARD8
+#endif
+
 extern void XGI_WriteDAC(XGIIOADDRESS dac_data, unsigned shift,
     unsigned ordering, uint8_t red, uint8_t green, uint8_t blue);
 
Index: dist/src/xgi_accel.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/xgi_accel.c,v
retrieving revision 1.1.1.1
retrieving revision 1.6
diff -u -r1.1.1.1 -r1.6
--- dist/src/xgi_accel.c	19 Jul 2012 15:24:41 -0000	1.1.1.1
+++ dist/src/xgi_accel.c	9 Nov 2012 09:28:52 -0000	1.6
@@ -34,6 +34,7 @@ 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
+#include <unistd.h>
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
@@ -958,6 +959,7 @@ 
             return TRUE;
 	}
 #endif /* EXA */
+	return FALSE;
 }
 
 void
@@ -1738,11 +1740,12 @@ 
     ErrorF("----------------------------------------------------------------------\n") ;
 
 	SwWP = Volari_GetSwWP() ;
-    ErrorF("SwWP=0x%x\n", SwWP) ;
-    ErrorF("pXGI->cmdQueueBase=0x%x\n", pXGI->cmdQueueBase) ;
+    ErrorF("SwWP=0x%lx\n", SwWP) ;
+    ErrorF("pXGI->cmdQueueBase=%p\n", pXGI->cmdQueueBase) ;
 	for( i = 0 ; i < SwWP ; i+=0x04 )
 	{
-		ErrorF("[%04X]: %08lX\n",i, *(CARD32 *)(pXGI->cmdQueueBase+i));
+		ErrorF("[%04X]: %08lX\n",i,
+		    (unsigned long)*(CARD32 *)(pXGI->cmdQueueBase+i));
 	}
 }
 
Index: dist/src/xgi_driver.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/xgi_driver.c,v
retrieving revision 1.1.1.1
retrieving revision 1.4
diff -u -r1.1.1.1 -r1.4
--- dist/src/xgi_driver.c	19 Jul 2012 15:24:43 -0000	1.1.1.1
+++ dist/src/xgi_driver.c	16 Aug 2016 01:27:48 -0000	1.4
@@ -47,9 +47,9 @@ 
 #include "config.h"
 #endif
 
-#define  PACKAGE_VERSION_MAJOR   6
-#define  PACKAGE_VERSION_MINOR   1
-#define  PACKAGE_VERSION_PATCHLEVEL   6803
+#define  PACKAGE_VERSION_MAJOR   1
+#define  PACKAGE_VERSION_MINOR   6
+#define  PACKAGE_VERSION_PATCHLEVEL   0
 
 #include "fb.h"
 #include "micmap.h"
@@ -70,18 +70,21 @@ 
 #include "vbe.h"
 
 #include "mipointer.h"
-#include "mibstore.h"
 
 #include "xgi.h"
 #include "xgi_regs.h"
 #include "xgi_vb.h"
 #include "xgi_dac.h"
 #include "vb_def.h"
+#include "vb_ext.h"
+#include "vb_i2c.h"
+#include "vb_setmode.h"
 #include "xgi_driver.h"
+#include "xgi_accel.h"
 #include "valid_mode.h"
 
 #define _XF86DGA_SERVER_
-#include <X11/extensions/xf86dgastr.h>
+#include <X11/extensions/xf86dgaproto.h>
 
 #include "globals.h"
 
@@ -106,11 +109,8 @@ 
 #include <unistd.h>
 #endif
 
-/* Jong 01/22/2009; compiler error; type conflict */
-/*
 #include <fcntl.h>
 #include <sys/ioctl.h>
-*/
 
 #ifdef XSERVER_LIBPCIACCESS
 static Bool XGIPciProbe(DriverPtr drv, int entity_num,
@@ -132,7 +132,7 @@ 
 
 /* Jong 07/27/2009; use run-time debug instead except for HW acceleration routines */
 /* Set Option "RunTimeDebug" to "true" in X configuration file */
-BOOL g_bRunTimeDebug=0;
+Bool g_bRunTimeDebug=0;
 
 /* Jong@09072009 */
 unsigned char g_DVI_I_SignalType = 0x00;
@@ -500,6 +500,7 @@ 
         xf86AddDriver(&XGI, module, 0);
 #endif
 
+#if 0
         LoaderRefSymLists(vgahwSymbols, fbSymbols, xaaSymbols,
                           shadowSymbols, ramdacSymbols, ddcSymbols,
                           vbeSymbols, int10Symbols,
@@ -507,6 +508,7 @@ 
                           drmSymbols, driSymbols,
 #endif
                           NULL);
+#endif
         return (pointer) TRUE;
     }
 
@@ -762,7 +764,7 @@ 
 
 typedef struct 
 {
-	unsigned char   name[10];
+    char   name[10];
     unsigned int    DCLK;
     unsigned int    HDisplay;
     unsigned int    HSyncStart;
@@ -862,13 +864,13 @@ 
         "**************************************************\n";
 
     va_start(ap, format);
-    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
+    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
     xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "                      ERROR:\n");
     xf86VDrvMsgVerb(pScrn->scrnIndex, X_ERROR, 1, format, ap);
     va_end(ap);
     xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                "                  END OF MESSAGE\n");
-    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
+    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
 }
 
 #ifdef XSERVER_LIBPCIACCESS
@@ -1615,7 +1617,9 @@ 
     ErrorF("get EDID with VBIOS call...\n");
     if (xf86LoadSubModule(pScrn, "int10")) 
 	{
+#if 0
         xf86LoaderReqSymLists(int10Symbols, NULL);
+#endif
         pInt = xf86InitInt10(pXGI->pEnt->index);
         if (pInt == NULL) {
             xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
@@ -1676,9 +1680,9 @@ 
 
 			g_DVI_I_SignalType = (buffer[20] & 0x80) >> 7;
 			ErrorF("DVI-I : %s signal ...\n", (g_DVI_I_SignalType == 0x01) ? "DVI" : "CRT" );
-
+#if 0
             xf86LoaderReqSymLists(ddcSymbols, NULL);
-
+#endif
 			/* Jong 09/04/2007; Alan fixed abnormal EDID data */
 			/* pMonitor = xf86InterpretEDID(pScrn->scrnIndex, buffer) ; */
 			if ( (buffer[0]==0) && (buffer[7]==0) )
@@ -2218,9 +2222,9 @@ 
 
         if (xf86LoadSubModule(pScrn, "ddc")) 
 		{
-
+#if 0
             xf86LoaderReqSymLists(ddcSymbols, NULL);
-
+#endif
             if (pXGI->xgi_HwDevExt.jChipType == XG27) 
 			{
 				ErrorF("Getting CRT EDID (DAC1-CRT1)...\n");
@@ -2684,9 +2688,9 @@ 
         XGIErrorLog(pScrn, "Could not load vgahw module\n");
         return FALSE;
     }
-
+#if 0
     xf86LoaderReqSymLists(vgahwSymbols, NULL);
-
+#endif
     /* Due to the liberal license terms this is needed for
      * keeping the copyright notice readable and intact in
      * binary distributions. Removing this is a copyright
@@ -2768,11 +2772,11 @@ 
 #endif
 
 		  xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, 
-				  "VGA memory map from 0x%x to 0x%x \n", 
+				  "VGA memory map from %p to %p \n", 
 #ifdef XSERVER_LIBPCIACCESS
-				  pXGI->PciInfo->regions[2].base_addr, VGAHWPTR(pScrn)->Base);
+				  (void *)(intptr_t)pXGI->PciInfo->regions[2].base_addr, VGAHWPTR(pScrn)->Base);
 #else
-				  pXGI->PciInfo->ioBase[2], VGAHWPTR(pScrn)->Base);
+				  (void *)(intptr_t)pXGI->PciInfo->ioBase[2], VGAHWPTR(pScrn)->Base);
 #endif
         }
     }
@@ -2798,7 +2802,9 @@ 
                    "Initializing display adapter through int10\n");
 
         if (xf86LoadSubModule(pScrn, "int10")) {
+#if 0
             xf86LoaderReqSymLists(int10Symbols, NULL);
+#endif
             pXGI->pInt = xf86InitInt10(pXGI->pEnt->index);
         }
         else {
@@ -2829,9 +2835,9 @@ 
         XGIFreeRec(pScrn);
         return FALSE;
     }
-
+#if 0
     xf86LoaderReqSymLists(ramdacSymbols, NULL);
-
+#endif
     /* Set pScrn->monitor */
     pScrn->monitor = pScrn->confScreen->monitor;
 
@@ -3049,7 +3055,7 @@ 
     pXGI->xgi_HwDevExt.pjIOAddress = (XGIIOADDRESS) (pXGI->RelIO + 0x30);
     xf86DrvMsg(pScrn->scrnIndex, from, "Relocated IO registers at 0x%lX\n",
                (unsigned long) pXGI->RelIO);
-	ErrorF("xgi_driver.c-pXGI->xgi_HwDevExt.pjIOAddress=0x%x...\n", pXGI->xgi_HwDevExt.pjIOAddress);
+	ErrorF("xgi_driver.c-pXGI->xgi_HwDevExt.pjIOAddress=0x%lx...\n", pXGI->xgi_HwDevExt.pjIOAddress);
 
     if (!xf86SetDepthBpp(pScrn, 0, 0, 0, pix24flags)) {
         XGIErrorLog(pScrn, "xf86SetDepthBpp() error\n");
@@ -3695,7 +3701,9 @@ 
 #if !defined(__powerpc__)
     /* Now load and initialize VBE module. */
     if (xf86LoadSubModule(pScrn, "vbe")) {
+#if 0
         xf86LoaderReqSymLists(vbeSymbols, NULL);
+#endif
         pXGI->pVbe = VBEExtendedInit(pXGI->pInt, pXGI->pEnt->index,
                                      SET_BIOS_SCRATCH | RESTORE_BIOS_SCRATCH);
         if (!pXGI->pVbe) {
@@ -3728,7 +3736,7 @@ 
 			pScrn->monitor->nHsync = 1;
 			pScrn->monitor->hsync[0].lo=30;
 			pScrn->monitor->hsync[0].hi=50;
-			ErrorF("No HorizSync information set in Monitor section and use default (%d, %d)...\n", 
+			ErrorF("No HorizSync information set in Monitor section and use default (%g, %g)...\n", 
 				pScrn->monitor->hsync[0].lo, pScrn->monitor->hsync[0].hi);
 		}
 
@@ -3737,7 +3745,7 @@ 
 			pScrn->monitor->nVrefresh = 1;
 			pScrn->monitor->vrefresh[0].lo=40;
 			pScrn->monitor->vrefresh[0].hi=60;
-			ErrorF("No VertRefresh information set in Monitor section and use default (%d, %d)...\n", 
+			ErrorF("No VertRefresh information set in Monitor section and use default (%g, %g)...\n", 
 				pScrn->monitor->vrefresh[0].lo, pScrn->monitor->vrefresh[0].hi);
 		}
 	}
@@ -4117,8 +4125,9 @@ 
         XGIFreeRec(pScrn);
         return FALSE;
     }
+#if 0
     xf86LoaderReqSymLists(fbSymbols, NULL);
-
+#endif
     /* Load XAA if needed */
     if (!pXGI->NoAccel) 
 	{
@@ -4139,7 +4148,9 @@ 
 				XGIFreeRec(pScrn);
 				return FALSE;
 			}
+#if 0
 			xf86LoaderReqSymLists(xaaSymbols, NULL);
+#endif
 		}
 #endif
 
@@ -4150,7 +4161,9 @@ 
 			  XGIErrorLog(pScrn, "Could not load exa module\n");
 			  return FALSE;
 		   }
+#if 0
 		   xf86LoaderReqSymLists(exaSymbols, NULL);
+#endif
 		}
 #endif
 	}
@@ -4169,14 +4182,18 @@ 
             XGIFreeRec(pScrn);
             return FALSE;
         }
+#if 0
         xf86LoaderReqSymLists(shadowSymbols, NULL);
+#endif
     }
 
     /* Load the dri module if requested. */
 #ifdef XF86DRI
     if(pXGI->loadDRI) {
         if (xf86LoadSubModule(pScrn, "dri")) {
+#if 0
             xf86LoaderReqSymLists(driSymbols, drmSymbols, NULL);
+#endif
         }
         else {
             if (!IS_DUAL_HEAD(pXGI))
@@ -4771,7 +4788,9 @@ 
 #if !defined(__powerpc__)
     if (!IS_DUAL_HEAD(pXGI) || !IS_SECOND_HEAD(pXGI)) {
         if (xf86LoadSubModule(pScrn, "vbe")) {
+#if 0
             xf86LoaderReqSymLists(vbeSymbols, NULL);
+#endif
             pXGI->pVbe = VBEExtendedInit(NULL, pXGI->pEnt->index,
                                          SET_BIOS_SCRATCH |
                                          RESTORE_BIOS_SCRATCH);
@@ -5044,7 +5063,6 @@ 
     PDEBUG(ErrorF("--- AccelInit ---  \n"));
     PDEBUG(XGIDumpRegs(pScrn));
 
-    miInitializeBackingStore(pScreen);
     xf86SetBackingStore(pScreen);
     xf86SetSilkenMouse(pScreen);
 
Index: dist/src/xgi_driver.h
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/xgi_driver.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dist/src/xgi_driver.h	19 Jul 2012 15:24:43 -0000	1.1.1.1
+++ dist/src/xgi_driver.h	19 Jul 2012 19:18:20 -0000	1.2
@@ -493,10 +493,10 @@ 
       },
 };
 
-unsigned const char XGIScalingP1Regs[] = {
+static unsigned const char XGIScalingP1Regs[] = {
 	0x08,0x09,0x0b,0x0c,0x0d,0x0e,0x10,0x11,0x12
 };
-unsigned const char XGIScalingP4Regs[] = {
+static unsigned const char XGIScalingP4Regs[] = {
 	0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b
 };
 
Index: dist/src/xgi_opt.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/xgi_opt.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dist/src/xgi_opt.c	19 Jul 2012 15:24:43 -0000	1.1.1.1
+++ dist/src/xgi_opt.c	19 Jul 2012 19:18:20 -0000	1.2
@@ -315,13 +315,13 @@ 
 				Non_DDCDefaultResolutionY , 
 				Non_DDCDefaultRefreshRate  );
 
-		if( (xf86NameCmp(Non_DDCDefaultResolutionX,"") == NULL) || (xf86NameCmp(Non_DDCDefaultResolutionY,"") == NULL) ) 
+		if( (xf86NameCmp(Non_DDCDefaultResolutionX,"") == 0) || (xf86NameCmp(Non_DDCDefaultResolutionY,"") == 0) ) 
 		{
 			strcpy(Non_DDCDefaultResolutionX, "1024");
 			strcpy(Non_DDCDefaultResolutionY, "768");
 		}
 
-		if( (xf86NameCmp(Non_DDCDefaultRefreshRate,"") == NULL) || (xf86NameCmp(Non_DDCDefaultRefreshRate,"auto") == NULL) ) 
+		if( (xf86NameCmp(Non_DDCDefaultRefreshRate,"") == 0) || (xf86NameCmp(Non_DDCDefaultRefreshRate,"auto") == 0) ) 
 				strcpy(Non_DDCDefaultRefreshRate, "60");
 
 		ErrorF("Non-DDC default mode is (%s x %s @ %s Hz)...\n", 
Index: dist/src/xgi_setup.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/xgi_setup.c,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- dist/src/xgi_setup.c	19 Jul 2012 15:24:43 -0000	1.1.1.1
+++ dist/src/xgi_setup.c	20 Jul 2012 01:35:41 -0000	1.3
@@ -47,10 +47,11 @@ 
 #include "xgi.h"
 #include "xgi_regs.h"
 #include "xgi_dac.h"
+#include "xgi_driver.h"
 /* #include "valid_mode.h" */
 
 #define _XF86DGA_SERVER_
-#include <X11/extensions/xf86dgastr.h>
+#include <X11/extensions/xf86dgaproto.h>
 
 #include "globals.h"
 #ifdef HAVE_XEXTPROTO_71
@@ -65,7 +66,7 @@ 
 extern  int  FbDevExist;
 
 static Bool bAccessVGAPCIInfo(PXGI_HW_DEVICE_INFO pHwDevInfo, ULONG ulOffset,
-    ULONG ulSet, ULONG *pulValue);
+    ULONG ulSet, CARD32 *pulValue);
 static Bool bAccessNBridgePCIInfo(PXGI_HW_DEVICE_INFO pHwDevInfo,
     ULONG ulOffset, ULONG ulSet, ULONG *pulValue);
 static Bool XGI_IsXG21(ScrnInfoPtr pScrn);
@@ -659,7 +660,7 @@ 
 }
 
 Bool
-bAccessVGAPCIInfo(PXGI_HW_DEVICE_INFO pHwDevInfo, ULONG ulOffset, ULONG ulSet, ULONG *pulValue)
+bAccessVGAPCIInfo(PXGI_HW_DEVICE_INFO pHwDevInfo, ULONG ulOffset, ULONG ulSet, CARD32 *pulValue)
 {
     XGIPtr pXGI ;
 #ifdef XSERVER_LIBPCIACCESS
@@ -678,7 +679,7 @@ 
 	err = pci_device_cfg_write_u32(pXGI->PciInfo, *pulValue,
 				       ulOffset & ~3);
     } else {
-	err = pci_device_cfg_write_u32(pXGI->PciInfo, pulValue,
+	err = pci_device_cfg_read_u32(pXGI->PciInfo, (uint32_t *)pulValue,
 				       ulOffset & ~3);
     }
 
Index: dist/src/xgi_video.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-xgi/dist/src/xgi_video.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dist/src/xgi_video.c	19 Jul 2012 15:24:43 -0000	1.1.1.1
+++ dist/src/xgi_video.c	19 Jul 2012 19:18:20 -0000	1.2
@@ -101,7 +101,7 @@ 
         short, short, short, short, unsigned int *, unsigned int *, pointer);
 static int XGIPutImage( ScrnInfoPtr,
         short, short, short, short, short, short, short, short,
-        int, unsigned char*, short, short, Bool, RegionPtr, pointer);
+        int, unsigned char*, short, short, Bool, RegionPtr, pointer, DrawablePtr);
 static int XGIQueryImageAttributes(ScrnInfoPtr,
         int, unsigned short *, unsigned short *,  int *, int *);
 
@@ -1081,7 +1081,8 @@ 
   int id, unsigned char* buf,
   short width, short height,
   Bool sync,
-  RegionPtr clipBoxes, pointer data
+  RegionPtr clipBoxes, pointer data,
+  DrawablePtr pDraw
 ){	
    XGIPtr pXGI = XGIPTR(pScrn);
    XGIPortPrivPtr pPriv = (XGIPortPrivPtr)data;