summaryrefslogtreecommitdiff
path: root/extra/xf86-video-sisimedia
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-11-10 01:23:31 -0800
committerroot <root@rshg054.dnsready.net>2012-11-10 01:23:31 -0800
commit6eea0bd1e92ed5aa53cb5f59102529c88e9e1786 (patch)
treeb069468f4084f5af5ad3ba2ecab7e6b4deb90267 /extra/xf86-video-sisimedia
parent3f7cb62ef558ea147661abe007a4293c0069fc62 (diff)
Sat Nov 10 01:23:30 PST 2012
Diffstat (limited to 'extra/xf86-video-sisimedia')
-rw-r--r--extra/xf86-video-sisimedia/PKGBUILD21
-rw-r--r--extra/xf86-video-sisimedia/deprecated-sym2.patch1068
-rw-r--r--extra/xf86-video-sisimedia/sisimedia-no-xaa.patch11
-rw-r--r--extra/xf86-video-sisimedia/sisimedia-xorg-1.13.patch654
4 files changed, 1748 insertions, 6 deletions
diff --git a/extra/xf86-video-sisimedia/PKGBUILD b/extra/xf86-video-sisimedia/PKGBUILD
index d008b2df0..cc18267a8 100644
--- a/extra/xf86-video-sisimedia/PKGBUILD
+++ b/extra/xf86-video-sisimedia/PKGBUILD
@@ -1,17 +1,16 @@
-# $Id: PKGBUILD 162836 2012-07-01 08:04:55Z andyrtr $
+# $Id: PKGBUILD 170686 2012-11-09 14:38:32Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=xf86-video-sisimedia
pkgver=0.9.1
-pkgrel=4
+pkgrel=5
pkgdesc="X.org SiS 671 video driver"
arch=(i686 x86_64)
url="http://www.linuxconsulting.ro/xorg-drivers/"
license=('custom')
depends=('glibc')
-makedepends=('xorg-server-devel>=1.12.0' 'libdrm' 'xf86driproto' 'mesa' 'xf86dgaproto')
-optdepends=('sis-dri: DRI1 support from community repo')
-conflicts=('xorg-server<1.12.0')
+makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=13' 'xf86dgaproto')
+conflicts=('xorg-server<1.13.0' 'X-ABI-VIDEODRV_VERSION<13' 'X-ABI-VIDEODRV_VERSION>=14')
options=('!libtool')
source=(ftp://ftp.archlinux.org/other/xf86-video-sisimedia/xf86-video-sisimedia-0.9.1_20091203.tar.bz2
xf86-video-sis-0.9.1-20102701.patch
@@ -36,6 +35,9 @@ source=(ftp://ftp.archlinux.org/other/xf86-video-sisimedia/xf86-video-sisimedia-
xf86MapDomainMemory-pci_device_map_legacy.patch
sync-with-freedesktop.patch
fix-xv-crash.patch
+ sisimedia-no-xaa.patch
+ sisimedia-xorg-1.13.patch
+ deprecated-sym2.patch
COPYING)
sha1sums=('22e6616df49ec82755daae08043a29aaf92fa430'
'61715bb86180decde55a56fad9a12d841c89fbb2'
@@ -60,6 +62,9 @@ sha1sums=('22e6616df49ec82755daae08043a29aaf92fa430'
'4ea8d76b3e74172109e7013a2931e571d3a2f4e1'
'1d29504466840d2fbe1fc355d78666c1a9cd9b76'
'1fdd74a2aef9455ac5c37d1fe0146d81aa905d2d'
+ '370af234867df98206a98c8cd0a6c89323593f6b'
+ '4ea333d659abe2b78f07511467c5356f39bf8695'
+ '9bef0b61c0505cc64464073d73684e6933d3f84c'
'a64e244f274bcb155f892d0488a1a4b1b2f7d70d')
build() {
@@ -86,6 +91,10 @@ build() {
patch -Np1 -i "${srcdir}/xf86MapDomainMemory-pci_device_map_legacy.patch"
patch -Np1 -i "${srcdir}/sync-with-freedesktop.patch"
patch -Np0 -i "${srcdir}/fix-xv-crash.patch"
+ patch -Np1 -i "${srcdir}/sisimedia-no-xaa.patch"
+ patch -Np1 -i "${srcdir}/sisimedia-xorg-1.13.patch"
+
+ patch -Np1 -i "${srcdir}/deprecated-sym2.patch"
sed -i -e 's,sis_drv,sisimedia_drv,g' src/Makefile.am
sed -i -e 's,\"sis\",\"sisimedia\",g' src/sis.h
@@ -93,7 +102,7 @@ build() {
autoreconf -fi
- ./configure --prefix=/usr
+ ./configure --prefix=/usr --disable-dri
make
}
diff --git a/extra/xf86-video-sisimedia/deprecated-sym2.patch b/extra/xf86-video-sisimedia/deprecated-sym2.patch
new file mode 100644
index 000000000..f02682333
--- /dev/null
+++ b/extra/xf86-video-sisimedia/deprecated-sym2.patch
@@ -0,0 +1,1068 @@
+This patch for remove all depreceated / obselete symbol on compiling
+Contributor saa7_go < saa7.go@gmail.com >
+
+diff -u xf86-video-sismedia-0.9.1/src/initextx.c xf86-video-sismedia-0.9.1-dep-clean/src/initextx.c
+--- xf86-video-sismedia-0.9.1/src/initextx.c 2011-03-06 11:27:56.368767584 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/initextx.c 2011-03-06 11:34:50.298266877 +0700
+@@ -284,10 +284,10 @@
+ }
+ }
+
+- if(!(new = xalloc(sizeof(DisplayModeRec)))) return first;
++ if(!(new = malloc(sizeof(DisplayModeRec)))) return first;
+ memset(new, 0, sizeof(DisplayModeRec));
+- if(!(new->name = xalloc(10))) {
+- xfree(new);
++ if(!(new->name = malloc(10))) {
++ free(new);
+ return first;
+ }
+ if(!first) first = new;
+@@ -436,11 +436,11 @@
+ }
+ }
+
+- if(!(new = xalloc(sizeof(DisplayModeRec)))) return first;
++ if(!(new = malloc(sizeof(DisplayModeRec)))) return first;
+
+ memset(new, 0, sizeof(DisplayModeRec));
+- if(!(new->name = xalloc(12))) {
+- xfree(new);
++ if(!(new->name = malloc(12))) {
++ free(new);
+ return first;
+ }
+ if(!first) first = new;
+@@ -521,11 +521,11 @@
+
+ if(pSiS->SiS_Pr->CP_DataValid[i]) {
+
+- if(!(new = xalloc(sizeof(DisplayModeRec)))) return first;
++ if(!(new = malloc(sizeof(DisplayModeRec)))) return first;
+
+ memset(new, 0, sizeof(DisplayModeRec));
+- if(!(new->name = xalloc(10))) {
+- xfree(new);
++ if(!(new->name = malloc(10))) {
++ free(new);
+ return first;
+ }
+ if(!first) first = new;
+diff -u xf86-video-sismedia-0.9.1/src/sis6326_video.c xf86-video-sismedia-0.9.1-dep-clean/src/sis6326_video.c
+--- xf86-video-sismedia-0.9.1/src/sis6326_video.c 2011-03-06 11:27:56.376768671 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis6326_video.c 2011-03-06 12:24:06.324251591 +0700
+@@ -171,7 +171,7 @@
+ adaptors = &newAdaptor;
+ } else {
+ /* need to free this someplace */
+- newAdaptors = xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
++ newAdaptors = malloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
+ if(newAdaptors) {
+ memcpy(newAdaptors, adaptors, num_adaptors *
+ sizeof(XF86VideoAdaptorPtr));
+@@ -186,7 +186,7 @@
+ xf86XVScreenInit(pScreen, adaptors, num_adaptors);
+
+ if(newAdaptors)
+- xfree(newAdaptors);
++ free(newAdaptors);
+ }
+
+ /* client libraries expect an encoding */
+@@ -532,7 +532,7 @@
+ return NULL;
+ #endif
+
+- if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
++ if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) +
+ sizeof(SISPortPrivRec) +
+ sizeof(DevUnion))))
+ return NULL;
+diff -u xf86-video-sismedia-0.9.1/src/sis_cursor.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_cursor.c
+--- xf86-video-sismedia-0.9.1/src/sis_cursor.c 2011-03-06 11:27:56.376768671 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_cursor.c 2011-03-06 12:24:06.400262694 +0700
+@@ -1253,11 +1253,11 @@
+ SISPtr pSiS = SISPTR(pScrn);
+ xf86CursorInfoPtr infoPtr;
+
+- if(!(pSiS->CursorScratch = xcalloc(1, max(2048, pSiS->CursorSize))))
++ if(!(pSiS->CursorScratch = calloc(1, max(2048, pSiS->CursorSize))))
+ return FALSE;
+
+ if(!(infoPtr = xf86CreateCursorInfoRec())) {
+- xfree(pSiS->CursorScratch);
++ free(pSiS->CursorScratch);
+ pSiS->CursorScratch = NULL;
+ return FALSE;
+ }
+diff -u xf86-video-sismedia-0.9.1/src/sis_dga.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_dga.c
+--- xf86-video-sismedia-0.9.1/src/sis_dga.c 2011-03-06 11:27:56.380769214 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_dga.c 2011-03-06 11:34:50.458289501 +0700
+@@ -156,18 +156,18 @@
+
+ if(pMode->HDisplay != otherPitch) {
+
+- newmodes = xrealloc(modes, (*num + 2) * sizeof(DGAModeRec));
++ newmodes = realloc(modes, (*num + 2) * sizeof(DGAModeRec));
+ oneMore = TRUE;
+
+ } else {
+
+- newmodes = xrealloc(modes, (*num + 1) * sizeof(DGAModeRec));
++ newmodes = realloc(modes, (*num + 1) * sizeof(DGAModeRec));
+ oneMore = FALSE;
+
+ }
+
+ if(!newmodes) {
+- xfree(modes);
++ free(modes);
+ return NULL;
+ }
+ modes = newmodes;
+@@ -353,12 +353,12 @@
+ newdgamodes = SISDGAMakeModes(pScrn, &newdgamodenum, TRUE);
+
+ if(DGAReInitModes(screenInfo.screens[pScrn->scrnIndex], newdgamodes, newdgamodenum)) {
+- xfree(pSiS->DGAModes);
++ free(pSiS->DGAModes);
+ pSiS->DGAModes = newdgamodes;
+ pSiS->numDGAModes = newdgamodenum;
+ return TRUE;
+ } else {
+- xfree(newdgamodes);
++ free(newdgamodes);
+ return FALSE;
+ }
+ #else
+diff -u xf86-video-sismedia-0.9.1/src/sis_dri.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_dri.c
+--- xf86-video-sismedia-0.9.1/src/sis_dri.c 2011-03-06 11:27:56.380769214 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_dri.c 2011-03-06 12:24:06.456270873 +0700
+@@ -156,19 +156,19 @@
+ case 32:
+ numConfigs = (useZ16) ? 8 : 16;
+
+- if(!(pConfigs = (__GLXvisualConfig*)xcalloc(sizeof(__GLXvisualConfig),
++ if(!(pConfigs = (__GLXvisualConfig*)calloc(sizeof(__GLXvisualConfig),
+ numConfigs))) {
+ return FALSE;
+ }
+- if(!(pSISConfigs = (SISConfigPrivPtr)xcalloc(sizeof(SISConfigPrivRec),
++ if(!(pSISConfigs = (SISConfigPrivPtr)calloc(sizeof(SISConfigPrivRec),
+ numConfigs))) {
+- xfree(pConfigs);
++ free(pConfigs);
+ return FALSE;
+ }
+- if(!(pSISConfigPtrs = (SISConfigPrivPtr*)xcalloc(sizeof(SISConfigPrivPtr),
++ if(!(pSISConfigPtrs = (SISConfigPrivPtr*)calloc(sizeof(SISConfigPrivPtr),
+ numConfigs))) {
+- xfree(pConfigs);
+- xfree(pSISConfigs);
++ free(pConfigs);
++ free(pSISConfigs);
+ return FALSE;
+ }
+ for(i=0; i<numConfigs; i++) pSISConfigPtrs[i] = &pSISConfigs[i];
+@@ -330,7 +330,7 @@
+ pDRIInfo->busIdString = DRICreatePCIBusID(pSIS->PciInfo);
+ } else {
+ #endif
+- pDRIInfo->busIdString = xalloc(64);
++ pDRIInfo->busIdString = malloc(64);
+ sprintf(pDRIInfo->busIdString, "PCI:%d:%d:%d",
+ pSIS->PciBus, pSIS->PciDevice, pSIS->PciFunc);
+ #ifdef SISHAVECREATEBUSID
+@@ -389,7 +389,7 @@
+ pDRIInfo->SAREASize = SAREA_MAX;
+ #endif
+
+- if(!(pSISDRI = (SISDRIPtr)xcalloc(sizeof(SISDRIRec), 1))) {
++ if(!(pSISDRI = (SISDRIPtr)calloc(sizeof(SISDRIRec), 1))) {
+ DRIDestroyInfoRec(pSIS->pDRIInfo);
+ pSIS->pDRIInfo = 0;
+ return FALSE;
+@@ -407,7 +407,7 @@
+
+ if(!DRIScreenInit(pScreen, pDRIInfo, &pSIS->drmSubFD)) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR, "[dri] DRIScreenInit failed. Disabling the DRI.\n");
+- xfree(pDRIInfo->devPrivate);
++ free(pDRIInfo->devPrivate);
+ pDRIInfo->devPrivate = 0;
+ DRIDestroyInfoRec(pSIS->pDRIInfo);
+ pSIS->pDRIInfo = 0;
+@@ -867,7 +867,7 @@
+
+ if(pSIS->pDRIInfo) {
+ if(pSIS->pDRIInfo->devPrivate) {
+- xfree(pSIS->pDRIInfo->devPrivate);
++ free(pSIS->pDRIInfo->devPrivate);
+ pSIS->pDRIInfo->devPrivate = NULL;
+ }
+ DRIDestroyInfoRec(pSIS->pDRIInfo);
+@@ -875,12 +875,12 @@
+ }
+
+ if(pSIS->pVisualConfigs) {
+- xfree(pSIS->pVisualConfigs);
++ free(pSIS->pVisualConfigs);
+ pSIS->pVisualConfigs = NULL;
+ }
+
+ if(pSIS->pVisualConfigsPriv) {
+- xfree(pSIS->pVisualConfigsPriv);
++ free(pSIS->pVisualConfigsPriv);
+ pSIS->pVisualConfigsPriv = NULL;
+ }
+
+diff -u xf86-video-sismedia-0.9.1/src/sis_driver.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_driver.c
+--- xf86-video-sismedia-0.9.1/src/sis_driver.c 2011-03-06 11:27:56.384769757 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_driver.c 2011-03-06 12:24:06.512279052 +0700
+@@ -497,7 +497,7 @@
+ numDevSections, drv, &usedChipsXGI);
+
+ /* Free it since we don't need that list after this */
+- xfree(devSections);
++ free(devSections);
+
+ numUsed = numUsedSiS + numUsedXGI;
+ xf86DrvMsg(0, X_INFO, "SISPRobe - test1\n");
+@@ -595,8 +595,8 @@
+
+ }
+
+- if(usedChipsSiS) xfree(usedChipsSiS);
+- if(usedChipsXGI) xfree(usedChipsXGI);
++ if(usedChipsSiS) free(usedChipsSiS);
++ if(usedChipsXGI) free(usedChipsXGI);
+ xf86DrvMsg(0, X_INFO, "SISProbe end\n");
+ return foundScreen;
+ }
+@@ -642,12 +642,12 @@
+ #endif
+
+ if(pSiS->pstate) {
+- xfree(pSiS->pstate);
++ free(pSiS->pstate);
+ pSiS->pstate = NULL;
+ }
+
+ if(pSiS->fonts) {
+- xfree(pSiS->fonts);
++ free(pSiS->fonts);
+ pSiS->fonts = NULL;
+ }
+
+@@ -660,15 +660,15 @@
+ * head.
+ */
+ if(pSiSEnt->BIOS)
+- xfree(pSiSEnt->BIOS);
++ free(pSiSEnt->BIOS);
+ pSiSEnt->BIOS = pSiS->BIOS = NULL;
+
+ if(pSiSEnt->SiS_Pr)
+- xfree(pSiSEnt->SiS_Pr);
++ free(pSiSEnt->SiS_Pr);
+ pSiSEnt->SiS_Pr = pSiS->SiS_Pr = NULL;
+
+ if(pSiSEnt->RenderAccelArray)
+- xfree(pSiSEnt->RenderAccelArray);
++ free(pSiSEnt->RenderAccelArray);
+ pSiSEnt->RenderAccelArray = pSiS->RenderAccelArray = NULL;
+
+ pSiSEnt->pScrn_1 = NULL;
+@@ -681,17 +681,17 @@
+ } else {
+ #endif
+ if(pSiS->BIOS) {
+- xfree(pSiS->BIOS);
++ free(pSiS->BIOS);
+ pSiS->BIOS = NULL;
+ }
+
+ if(pSiS->SiS_Pr) {
+- xfree(pSiS->SiS_Pr);
++ free(pSiS->SiS_Pr);
+ pSiS->SiS_Pr = NULL;
+ }
+
+ if(pSiS->RenderAccelArray) {
+- xfree(pSiS->RenderAccelArray);
++ free(pSiS->RenderAccelArray);
+ pSiS->RenderAccelArray = NULL;
+ }
+ #ifdef SISDUALHEAD
+@@ -699,17 +699,17 @@
+ #endif
+ #ifdef SISMERGED
+ if(pSiS->CRT2HSync) {
+- xfree(pSiS->CRT2HSync);
++ free(pSiS->CRT2HSync);
+ pSiS->CRT2HSync = NULL;
+ }
+
+ if(pSiS->CRT2VRefresh) {
+- xfree(pSiS->CRT2VRefresh);
++ free(pSiS->CRT2VRefresh);
+ pSiS->CRT2VRefresh = NULL;
+ }
+
+ if(pSiS->MetaModes) {
+- xfree(pSiS->MetaModes);
++ free(pSiS->MetaModes);
+ pSiS->MetaModes = NULL;
+ }
+
+@@ -721,9 +721,9 @@
+ while(pSiS->CRT2pScrn->monitor->Modes) {
+ xf86DeleteMode(&pSiS->CRT2pScrn->monitor->Modes, pSiS->CRT2pScrn->monitor->Modes);
+ }
+- xfree(pSiS->CRT2pScrn->monitor);
++ free(pSiS->CRT2pScrn->monitor);
+ }
+- xfree(pSiS->CRT2pScrn);
++ free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ }
+
+@@ -735,10 +735,10 @@
+ do {
+ DisplayModePtr p = pScrn->currentMode->next;
+ if(pScrn->currentMode->Private)
+- xfree(pScrn->currentMode->Private);
++ free(pScrn->currentMode->Private);
+ if(pScrn->currentMode->name)
+- xfree(pScrn->currentMode->name);
+- xfree(pScrn->currentMode);
++ free(pScrn->currentMode->name);
++ free(pScrn->currentMode);
+ pScrn->currentMode = p;
+ } while(pScrn->currentMode != pScrn->modes);
+ }
+@@ -758,22 +758,22 @@
+ }
+
+ if(pSiS->currcrt1analogedid) {
+- xfree(pSiS->currcrt1analogedid);
++ free(pSiS->currcrt1analogedid);
+ pSiS->currcrt1analogedid = NULL;
+ }
+
+ if(pSiS->currcrt1digitaledid) {
+- xfree(pSiS->currcrt1digitaledid);
++ free(pSiS->currcrt1digitaledid);
+ pSiS->currcrt1digitaledid = NULL;
+ }
+
+ if(pSiS->currcrt2analogedid) {
+- xfree(pSiS->currcrt2analogedid);
++ free(pSiS->currcrt2analogedid);
+ pSiS->currcrt2analogedid = NULL;
+ }
+
+ if(pSiS->currcrt2digitaledid) {
+- xfree(pSiS->currcrt2digitaledid);
++ free(pSiS->currcrt2digitaledid);
+ pSiS->currcrt2digitaledid = NULL;
+ }
+
+@@ -784,7 +784,7 @@
+
+ while(pSiS->SISVESAModeList) {
+ sisModeInfoPtr mp = pSiS->SISVESAModeList->next;
+- xfree(pSiS->SISVESAModeList);
++ free(pSiS->SISVESAModeList);
+ pSiS->SISVESAModeList = mp;
+ }
+
+@@ -801,7 +801,7 @@
+ if(pScrn->driverPrivate == NULL)
+ return;
+
+- xfree(pScrn->driverPrivate);
++ free(pScrn->driverPrivate);
+ pScrn->driverPrivate = NULL;
+ }
+
+@@ -1017,22 +1017,22 @@
+ Bool gotit = FALSE;
+
+ if(!ioctl(fd, SISFB_GET_INFO_SIZE, &sisfbinfosize)) {
+- if((mysisfbinfo = xalloc(sisfbinfosize))) {
++ if((mysisfbinfo = malloc(sisfbinfosize))) {
+ if(!ioctl(fd, (SISFB_GET_INFO | (sisfbinfosize << 16)), mysisfbinfo)) {
+ gotit = TRUE;
+ } else {
+- xfree(mysisfbinfo);
++ free(mysisfbinfo);
+ mysisfbinfo = NULL;
+ }
+ }
+ } else {
+- if((mysisfbinfo = xalloc(sizeof(*mysisfbinfo) + 16))) {
++ if((mysisfbinfo = malloc(sizeof(*mysisfbinfo) + 16))) {
+ if(!ioctl(fd, SISFB_GET_INFO_OLD, mysisfbinfo)) {
+ gotit = TRUE;
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Possibly old version of sisfb detected. Please update.\n");
+ } else {
+- xfree(mysisfbinfo);
++ free(mysisfbinfo);
+ mysisfbinfo = NULL;
+ }
+ }
+@@ -1171,7 +1171,7 @@
+ }
+ }
+ }
+- xfree(mysisfbinfo);
++ free(mysisfbinfo);
+ mysisfbinfo = NULL;
+ }
+ close (fd);
+@@ -1250,7 +1250,7 @@
+ }
+ #endif
+ if(!pSiS->BIOS) {
+- if(!(pSiS->BIOS = xcalloc(1, BIOS_SIZE))) {
++ if(!(pSiS->BIOS = calloc(1, BIOS_SIZE))) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Could not allocate memory for video BIOS image\n");
+ } else {
+@@ -1352,7 +1352,7 @@
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Could not find/read video BIOS\n");
+- xfree(pSiS->BIOS);
++ free(pSiS->BIOS);
+ pSiS->BIOS = NULL;
+ }
+ }
+@@ -1851,7 +1851,7 @@
+ {
+ if((*ptr)) {
+ memcpy((*ptr), pMonitor, sizeof(xf86Monitor));
+- xfree(pMonitor);
++ free(pMonitor);
+ } else {
+ (*ptr) = pMonitor;
+ }
+@@ -1882,7 +1882,7 @@
+ }
+ #endif
+
+- xfree((*ptr));
++ free((*ptr));
+ *ptr = NULL;
+
+ }
+@@ -2158,7 +2158,7 @@
+ xf86PrintEDID(pMonitor);
+ if(pMonitor->rawData) {
+ /* Get rid of raw data */
+- xfree(pMonitor->rawData);
++ free(pMonitor->rawData);
+ pMonitor->rawData = NULL;
+ }
+ pScrn->monitor->DDC = pMonitor = SiSSetEDIDPtr(&pSiS->currcrt1analogedid, pMonitor);
+@@ -2821,12 +2821,12 @@
+ DisplayModePtr dest = NULL;
+
+ if(source) {
+- if((dest = xalloc(sizeof(DisplayModeRec)))) {
++ if((dest = malloc(sizeof(DisplayModeRec)))) {
+ memcpy(dest, source, sizeof(DisplayModeRec));
+ dest->name = NULL;
+ dest->next = dest->prev = NULL;
+- if(!(dest->name = xalloc(strlen(source->name) + 1))) {
+- xfree(dest);
++ if(!(dest->name = malloc(strlen(source->name) + 1))) {
++ free(dest);
+ dest = NULL;
+ } else {
+ strcpy(dest->name, source->name);
+@@ -5256,7 +5256,7 @@
+ /* MergedFB: Create CRT2 pScrn and make it a copy of pScrn */
+ #ifdef SISMERGED
+ if(pSiS->MergedFB) {
+- pSiS->CRT2pScrn = xalloc(sizeof(ScrnInfoRec));
++ pSiS->CRT2pScrn = malloc(sizeof(ScrnInfoRec));
+ if(!pSiS->CRT2pScrn) {
+ SISErrorLog(pScrn, "Failed to allocate memory for 2nd pScrn, %s\n", mergeddisstr);
+ pSiS->MergedFB = FALSE;
+@@ -5292,7 +5292,7 @@
+ } else {
+ SISErrorLog(pScrn, mergednocrt1, mergeddisstr);
+ }
+- if(pSiS->CRT2pScrn) xfree(pSiS->CRT2pScrn);
++ if(pSiS->CRT2pScrn) free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ pSiS->MergedFB = FALSE;
+ }
+@@ -5341,7 +5341,7 @@
+ } else {
+ SISErrorLog(pScrn, mergednocrt2, mergeddisstr);
+ }
+- if(pSiS->CRT2pScrn) xfree(pSiS->CRT2pScrn);
++ if(pSiS->CRT2pScrn) free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ pSiS->MergedFB = FALSE;
+ }
+@@ -5711,7 +5711,7 @@
+ #endif
+
+ /* Don't need the clock ranges from here on */
+- xfree(clockRanges);
++ free(clockRanges);
+
+ /* Set display resolution */
+ #ifdef SISMERGED
+@@ -6719,7 +6719,7 @@
+ (function == MODE_SAVE)) {
+ /* don't rely on the memory not being touched */
+ if(!pSiS->pstate) {
+- pSiS->pstate = xalloc(pSiS->stateSize);
++ pSiS->pstate = malloc(pSiS->stateSize);
+ }
+ memcpy(pSiS->pstate, pSiS->state, pSiS->stateSize);
+ }
+@@ -9086,10 +9086,10 @@
+ if(!(nramp = xf86GetGammaRampSize(pScreen))) return;
+
+ for(i=0; i<3; i++) {
+- ramp[i] = (UShort *)xalloc(nramp * sizeof(UShort));
++ ramp[i] = (UShort *)malloc(nramp * sizeof(UShort));
+ if(!ramp[i]) {
+- if(ramp[0]) { xfree(ramp[0]); ramp[0] = NULL; }
+- if(ramp[1]) { xfree(ramp[1]); ramp[1] = NULL; }
++ if(ramp[0]) { free(ramp[0]); ramp[0] = NULL; }
++ if(ramp[1]) { free(ramp[1]); ramp[1] = NULL; }
+ return;
+ }
+ }
+@@ -9149,9 +9149,9 @@
+
+ xf86ChangeGammaRamp(pScreen, nramp, ramp[0], ramp[1], ramp[2]);
+
+- xfree(ramp[0]);
+- xfree(ramp[1]);
+- xfree(ramp[2]);
++ free(ramp[0]);
++ free(ramp[1]);
++ free(ramp[2]);
+ ramp[0] = ramp[1] = ramp[2] = NULL;
+ }
+ #endif
+@@ -9442,7 +9442,7 @@
+
+ if(pSiS->ShadowFB) {
+ pSiS->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * width);
+- pSiS->ShadowPtr = xalloc(pSiS->ShadowPitch * height);
++ pSiS->ShadowPtr = malloc(pSiS->ShadowPitch * height);
+ displayWidth = pSiS->ShadowPitch / (pScrn->bitsPerPixel >> 3);
+ FBStart = pSiS->ShadowPtr;
+ } else {
+@@ -9626,14 +9626,14 @@
+
+ pSiS->CRT2ColNum = 1 << pScrn->rgbBits;
+
+- if((pSiS->crt2gcolortable = xalloc(pSiS->CRT2ColNum * 2 * sizeof(LOCO)))) {
++ if((pSiS->crt2gcolortable = malloc(pSiS->CRT2ColNum * 2 * sizeof(LOCO)))) {
+ pSiS->crt2colors = &pSiS->crt2gcolortable[pSiS->CRT2ColNum];
+- if((pSiS->crt2cindices = xalloc(256 * sizeof(int)))) {
++ if((pSiS->crt2cindices = malloc(256 * sizeof(int)))) {
+ int i = pSiS->CRT2ColNum;
+ SISCalculateGammaRampCRT2(pScrn);
+ while(i--) pSiS->crt2cindices[i] = i;
+ } else {
+- xfree(pSiS->crt2gcolortable);
++ free(pSiS->crt2gcolortable);
+ pSiS->crt2gcolortable = NULL;
+ pSiS->CRT2SepGamma = FALSE;
+ }
+@@ -10810,7 +10810,7 @@
+ if(pSiS->useEXA) {
+ if(pSiS->EXADriverPtr) {
+ exaDriverFini(pScreen);
+- xfree(pSiS->EXADriverPtr);
++ free(pSiS->EXADriverPtr);
+ pSiS->EXADriverPtr = NULL;
+ pSiS->exa_scratch = NULL;
+ }
+@@ -10823,38 +10823,38 @@
+ }
+
+ if(pSiS->CursorScratch) {
+- xfree(pSiS->CursorScratch);
++ free(pSiS->CursorScratch);
+ pSiS->CursorScratch = NULL;
+ }
+
+ if(pSiS->ShadowPtr) {
+- xfree(pSiS->ShadowPtr);
++ free(pSiS->ShadowPtr);
+ pSiS->ShadowPtr = NULL;
+ }
+
+ if(pSiS->DGAModes) {
+- xfree(pSiS->DGAModes);
++ free(pSiS->DGAModes);
+ pSiS->DGAModes = NULL;
+ }
+
+ if(pSiS->adaptor) {
+- xfree(pSiS->adaptor);
++ free(pSiS->adaptor);
+ pSiS->adaptor = NULL;
+ pSiS->ResetXv = pSiS->ResetXvGamma = pSiS->ResetXvDisplay = NULL;
+ }
+
+ if(pSiS->blitadaptor) {
+- xfree(pSiS->blitadaptor);
++ free(pSiS->blitadaptor);
+ pSiS->blitadaptor = NULL;
+ }
+
+ if(pSiS->crt2gcolortable) {
+- xfree(pSiS->crt2gcolortable);
++ free(pSiS->crt2gcolortable);
+ pSiS->crt2gcolortable = NULL;
+ }
+
+ if(pSiS->crt2cindices) {
+- xfree(pSiS->crt2cindices);
++ free(pSiS->crt2cindices);
+ pSiS->crt2cindices = NULL;
+ }
+
+diff -u xf86-video-sismedia-0.9.1/src/sis_hwmc.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_hwmc.c
+--- xf86-video-sismedia-0.9.1/src/sis_hwmc.c 2011-03-06 11:27:56.388770300 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_hwmc.c 2011-03-06 12:24:06.612293658 +0700
+@@ -274,7 +274,7 @@
+ * Set *num_priv to the number of 32bit words that make up the size of
+ * of the data that priv will point to.
+ *
+- * *priv = (long *) xcalloc (elements, sizeof(element))
++ * *priv = (long *) calloc (elements, sizeof(element))
+ * *num_priv = (elements * sizeof(element)) >> 2;
+ *
+ **************************************************************************/
+@@ -310,7 +310,7 @@
+ return BadAlloc;
+ }
+
+- *priv = xcalloc(1,sizeof(SiSXvMCCreateContextRec));
++ *priv = calloc(1,sizeof(SiSXvMCCreateContextRec));
+ contextRec = (SiSXvMCCreateContextRec *)*priv;
+
+ if(!*priv) {
+@@ -322,7 +322,7 @@
+ if(drmCreateContext(pSiS->drmSubFD, &(contextRec->drmcontext) ) < 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "[MC] SiSXvMCCreateContext: Unable to create DRMContext!\n");
+- xfree(*priv);
++ free(*priv);
+ return BadAlloc;
+ }
+
+@@ -336,7 +336,7 @@
+ DRM_FRAME_BUFFER, 0, &pSiS->fb_handle) < 0){
+
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,"[MC] Frame buffer AddMap failed!\n");
+- xfree(*priv);
++ free(*priv);
+ *num_priv = 0;
+ return BadAlloc;
+ }
+@@ -357,7 +357,7 @@
+ break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR," [MC] XvMC is not supposted on this chip! Stop.\n");
+- xfree(*priv);
++ free(*priv);
+ *num_priv = 0;
+ return BadValue;
+ }
+@@ -408,7 +408,7 @@
+ #endif
+
+
+- *priv = xcalloc(1,sizeof(SiSXvMCCreateSurfaceRec));
++ *priv = calloc(1,sizeof(SiSXvMCCreateSurfaceRec));
+
+
+ if(!*priv) {
+@@ -435,7 +435,7 @@
+ }
+
+
+- xfree(*priv);
++ free(*priv);
+ return BadAlloc;
+
+ }
+@@ -454,7 +454,7 @@
+ __FUNCTION__, __FILE__);
+ #endif
+
+- *priv = (long *)xcalloc(1,sizeof(long));
++ *priv = (long *)calloc(1,sizeof(long));
+
+ if(!*priv) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+diff -u xf86-video-sismedia-0.9.1/src/sis_memcpy.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_memcpy.c
+--- xf86-video-sismedia-0.9.1/src/sis_memcpy.c 2011-03-06 11:27:56.388770300 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_memcpy.c 2011-03-06 11:34:50.694322870 +0700
+@@ -637,13 +637,13 @@
+ (*buf1) = (UChar *)pSiS->FbBase + offset;
+ (*buf1) = (UChar *)(((ULong)(*buf1) + 31) & ~31);
+
+- if(!((*buf2) = (UChar *)xalloc(BUFFERSIZE + 15))) {
++ if(!((*buf2) = (UChar *)malloc(BUFFERSIZE + 15))) {
+ SISFreeFBMemory(pScrn, &handle);
+ return NULL;
+ }
+
+- if(!((*buf3) = (UChar *)xalloc(BUFFERSIZE + 15))) {
+- xfree((*buf2));
++ if(!((*buf3) = (UChar *)malloc(BUFFERSIZE + 15))) {
++ free((*buf2));
+ SISFreeFBMemory(pScrn, &handle);
+ return NULL;
+ }
+@@ -1101,8 +1101,8 @@
+
+ /* Free buffers */
+ SISFreeFBMemory(pScrn, &fbhandle);
+- xfree(buf2);
+- xfree(buf3);
++ free(buf2);
++ free(buf3);
+
+ xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
+ "Using %s method for aligned data transfers %s video RAM\n",
+diff -u xf86-video-sismedia-0.9.1/src/sis_mergedfb.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_mergedfb.c
+--- xf86-video-sismedia-0.9.1/src/sis_mergedfb.c 2011-03-06 11:27:56.388770300 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_mergedfb.c 2011-03-06 22:18:01.785310903 +0700
+@@ -170,13 +170,13 @@
+ char namebuffer[32], namebuf1[64], namebuf2[64];
+ char printbuffer[256];
+
+- if(!((mode = xalloc(sizeof(DisplayModeRec)))))
++ if(!((mode = malloc(sizeof(DisplayModeRec)))))
+ return dest;
+
+ memcpy(mode, i, sizeof(DisplayModeRec));
+
+- if(!((mode->Private = xalloc(sizeof(SiSMergedDisplayModeRec))))) {
+- xfree(mode);
++ if(!((mode->Private = malloc(sizeof(SiSMergedDisplayModeRec))))) {
++ free(mode);
+ return dest;
+ }
+
+@@ -265,8 +265,8 @@
+ "Skipped \"%s\" (%dx%d), not enough video RAM or beyond hardware specs\n",
+ mode->name, mode->HDisplay, mode->VDisplay);
+ }
+- xfree(mode->Private);
+- xfree(mode);
++ free(mode->Private);
++ free(mode);
+
+ return dest;
+ }
+@@ -306,7 +306,7 @@
+
+ /* Generate a mode name */
+ sprintf(namebuffer, "%dx%d", mode->HDisplay, mode->VDisplay);
+- if((mode->name = xalloc(strlen(namebuffer) + 1))) {
++ if((mode->name = malloc(strlen(namebuffer) + 1))) {
+ strcpy(mode->name, namebuffer);
+ }
+
+@@ -849,7 +849,7 @@
+
+ if(pSiS->MergedFB) {
+
+- pSiS->CRT2pScrn->monitor = xalloc(sizeof(MonRec));
++ pSiS->CRT2pScrn->monitor = malloc(sizeof(MonRec));
+
+ if(pSiS->CRT2pScrn->monitor) {
+
+@@ -889,7 +889,7 @@
+ } else {
+
+ SISErrorLog(pScrn, "Failed to allocate memory for CRT2 monitor, MergedFB mode disabled.\n");
+- if(pSiS->CRT2pScrn) xfree(pSiS->CRT2pScrn);
++ if(pSiS->CRT2pScrn) free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ pSiS->MergedFB = FALSE;
+
+@@ -911,9 +911,9 @@
+ xf86DeleteMode(&pSiS->CRT2pScrn->monitor->Modes, pSiS->CRT2pScrn->monitor->Modes);
+ }
+ pSiS->CRT2pScrn->monitor->DDC = NULL;
+- xfree(pSiS->CRT2pScrn->monitor);
++ free(pSiS->CRT2pScrn->monitor);
+ }
+- xfree(pSiS->CRT2pScrn);
++ free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ }
+ }
+@@ -1917,7 +1917,7 @@
+ ClientPtr client;
+ xXineramaLayoutChangeNotifyEvent se;
+
+- pHead = (SiSXineramaEventPtr *)LookupIDByType(pWin->drawable.id, EventType);
++ dixLookupResourceByType((pointer) &pHead, pWin->drawable.id, EventType, NullClient, DixUnknownAccess);
+ if(!pHead) {
+ return WT_WALKCHILDREN;
+ }
+@@ -2628,6 +2628,7 @@
+ WindowPtr pWin;
+ SiSXineramaEventPtr pXineramaEvent, pNewXineramaEvent, *pHead;
+ XID clientResource;
++ int lookup_ret;
+
+ REQUEST_SIZE_MATCH(xXineramaSelectInputReq);
+ /*IvansLee define NEW_XORG_VERSION.*/
+@@ -2640,9 +2641,10 @@
+ if(!pWin)
+ return BadWindow;
+ #if NEW_XORG_VERSION == 1 /*New Xorg Version >= 1.4 */
+- pHead = (SiSXineramaEventPtr *)SecurityLookupIDByType(client,
+- pWin->drawable.id, EventType,
+- DixWriteAccess);
++ lookup_ret = dixLookupResourceByType((pointer) &pHead,
++ pWin->drawable.id, EventType,
++ client, DixWriteAccess);
++ pHead = (lookup_ret == Success ? pHead : NULL);
+ #else
+ pHead = (SiSXineramaEventPtr *)SecurityLookupIDByType(client,
+ pWin->drawable.id, EventType,
+@@ -2661,7 +2663,7 @@
+ }
+
+ /* Build a new entry */
+- if(!(pNewXineramaEvent = (SiSXineramaEventPtr)xalloc(sizeof(SiSXineramaEventRec)))) {
++ if(!(pNewXineramaEvent = (SiSXineramaEventPtr)malloc(sizeof(SiSXineramaEventRec)))) {
+ return BadAlloc;
+ }
+ pNewXineramaEvent->next = 0;
+@@ -2686,7 +2688,7 @@
+ * done through the resource database.
+ */
+ if(!pHead) {
+- pHead = (SiSXineramaEventPtr *)xalloc(sizeof(SiSXineramaEventPtr));
++ pHead = (SiSXineramaEventPtr *)malloc(sizeof(SiSXineramaEventPtr));
+ if(!pHead || !AddResource(pWin->drawable.id, EventType, (pointer)pHead)) {
+ FreeResource(clientResource, RT_NONE);
+ return BadAlloc;
+@@ -2715,7 +2717,7 @@
+ } else {
+ *pHead = pXineramaEvent->next;
+ }
+- xfree(pXineramaEvent);
++ free(pXineramaEvent);
+ SiSXineramaClientsListening--;
+ }
+ }
+@@ -2854,7 +2856,7 @@
+ {
+ /* Called by CloseDownExtensions() */
+ if(SiSXineramadataPtr) {
+- Xfree(SiSXineramadataPtr);
++ free(SiSXineramadataPtr);
+ SiSXineramadataPtr = NULL;
+ }
+ }
+@@ -2866,7 +2868,7 @@
+ SiSXineramaEventPtr *pHead, pCur, pPrev;
+ WindowPtr pWin = pXineramaEvent->window;
+
+- pHead = (SiSXineramaEventPtr *)LookupIDByType(pWin->drawable.id, EventType);
++ dixLookupResourceByType((pointer) &pHead, pWin->drawable.id, EventType, NullClient, DixUnknownAccess);
+ if(pHead) {
+ pPrev = NULL;
+ for(pCur = *pHead; pCur && pCur != pXineramaEvent; pCur = pCur->next) {
+@@ -2877,7 +2879,7 @@
+ else *pHead = pXineramaEvent->next;
+ }
+ }
+- xfree((pointer)pXineramaEvent);
++ free((pointer)pXineramaEvent);
+ return 1;
+ }
+
+@@ -2890,9 +2892,9 @@
+ for(pCur = *pHead; pCur; pCur = pNext) {
+ pNext = pCur->next;
+ FreeResource(pCur->clientResource, ClientType);
+- xfree((pointer)pCur);
++ free((pointer)pCur);
+ }
+- xfree((pointer)pHead);
++ free((pointer)pHead);
+ return 1;
+ }
+
+@@ -2965,7 +2967,7 @@
+ if(!pSiS->XineramaExtEntry) break;
+
+ if(!(SiSXineramadataPtr = (SiSXineramaData *)
+- xcalloc(SiSXineramaNumScreens, sizeof(SiSXineramaData)))) break;
++ calloc(SiSXineramaNumScreens, sizeof(SiSXineramaData)))) break;
+
+ SiSXineramaEventbase = pSiS->XineramaExtEntry->eventBase;
+ EventSwapVector[SiSXineramaEventbase + XineramaLayoutChangeNotify] =
+diff -u xf86-video-sismedia-0.9.1/src/sis_opt.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_opt.c
+--- xf86-video-sismedia-0.9.1/src/sis_opt.c 2011-03-06 11:27:56.388770300 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_opt.c 2011-03-06 11:34:50.818340404 +0700
+@@ -459,7 +459,7 @@
+ xf86CollectOptions(pScrn, NULL);
+
+ /* Process the options */
+- if(!(pSiS->Options = xalloc(sizeof(SISOptions)))) return;
++ if(!(pSiS->Options = malloc(sizeof(SISOptions)))) return;
+
+ memcpy(pSiS->Options, SISOptions, sizeof(SISOptions));
+
+@@ -920,7 +920,7 @@
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_CRT2POS))) {
+ int result;
+ Bool valid = FALSE;
+- char *tempstr = xalloc(strlen(strptr) + 1);
++ char *tempstr = malloc(strlen(strptr) + 1);
+ result = sscanf(strptr, "%s %d", tempstr, &ival);
+ if(result >= 1) {
+ if(!xf86NameCmp(tempstr,"LeftOf")) {
+@@ -978,18 +978,18 @@
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Except for \"Clone\", the parameter may be followed by an integer.\n");
+ }
+- xfree(tempstr);
++ free(tempstr);
+ }
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_METAMODES))) {
+- pSiS->MetaModes = xalloc(strlen(strptr) + 1);
++ pSiS->MetaModes = malloc(strlen(strptr) + 1);
+ if(pSiS->MetaModes) memcpy(pSiS->MetaModes, strptr, strlen(strptr) + 1);
+ }
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_CRT2HSYNC))) {
+- pSiS->CRT2HSync = xalloc(strlen(strptr) + 1);
++ pSiS->CRT2HSync = malloc(strlen(strptr) + 1);
+ if(pSiS->CRT2HSync) memcpy(pSiS->CRT2HSync, strptr, strlen(strptr) + 1);
+ }
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_CRT2VREFRESH))) {
+- pSiS->CRT2VRefresh = xalloc(strlen(strptr) + 1);
++ pSiS->CRT2VRefresh = malloc(strlen(strptr) + 1);
+ if(pSiS->CRT2VRefresh) memcpy(pSiS->CRT2VRefresh, strptr, strlen(strptr) + 1);
+ }
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_MERGEDDPI))) {
+@@ -1009,8 +1009,8 @@
+ }
+ if(pSiS->UseSiSXinerama) {
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_SCR0))) {
+- char *tempstr1 = xalloc(strlen(strptr) + 1);
+- char *tempstr2 = xalloc(strlen(strptr) + 1);
++ char *tempstr1 = malloc(strlen(strptr) + 1);
++ char *tempstr2 = malloc(strlen(strptr) + 1);
+ char *tempstr;
+ int i, result;
+ pSiS->MFBScr0LR = pSiS->MFBScr0TB = -1;
+@@ -1037,8 +1037,8 @@
+ "Bad or incomplete argument(s) for Option \"%s\"\n",
+ pSiS->Options[SiS_FIFT(pSiS->Options, OPTION_SCR0)].name);
+ }
+- xfree(tempstr1);
+- xfree(tempstr2);
++ free(tempstr1);
++ free(tempstr2);
+ } else if(xf86GetOptValBool(pSiS->Options, OPTION_CRT2ISSCRN0, &val)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Option \"%s\" is deprecated, use \"%s\"\n",
+diff -u xf86-video-sismedia-0.9.1/src/sis_utility.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_utility.c
+--- xf86-video-sismedia-0.9.1/src/sis_utility.c 2011-03-06 11:27:56.392770842 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_utility.c 2011-03-06 12:24:06.740312353 +0700
+@@ -2185,7 +2185,7 @@
+ * in SiSCtrlExtUnregister())
+ */
+ if(extEntry->extPrivate) {
+- xfree(extEntry->extPrivate);
++ free(extEntry->extPrivate);
+ extEntry->extPrivate = NULL;
+ }
+ }
+@@ -2206,7 +2206,7 @@
+
+ if(!(myext = CheckExtension(SISCTRL_PROTOCOL_NAME))) {
+
+- if(!(myctrl = xcalloc(sizeof(xSiSCtrlScreenTable), 1)))
++ if(!(myctrl = calloc(sizeof(xSiSCtrlScreenTable), 1)))
+ return;
+
+ if(!(myext = AddExtension(SISCTRL_PROTOCOL_NAME, 0, 0,
+@@ -2216,7 +2216,7 @@
+ StandardMinorOpcode))) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Failed to add SISCTRL extension\n");
+- xfree(myctrl);
++ free(myctrl);
+ return;
+ }
+
+diff -u xf86-video-sismedia-0.9.1/src/sis_vga.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_vga.c
+--- xf86-video-sismedia-0.9.1/src/sis_vga.c 2011-03-06 11:27:56.396771384 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_vga.c 2011-03-06 11:34:51.038371506 +0700
+@@ -1450,7 +1450,7 @@
+ attr10 = SiS_ReadAttr(pSiS, 0x10);
+ if(attr10 & 0x01) return;
+
+- if(!(pSiS->fonts = xalloc(SIS_FONTS_SIZE * 2))) {
++ if(!(pSiS->fonts = malloc(SIS_FONTS_SIZE * 2))) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Could not save console fonts, mem allocation failed\n");
+ return;
+diff -u xf86-video-sismedia-0.9.1/src/sis_video.c xf86-video-sismedia-0.9.1-dep-clean/src/sis_video.c
+--- xf86-video-sismedia-0.9.1/src/sis_video.c 2011-03-06 11:27:56.396771384 +0700
++++ xf86-video-sismedia-0.9.1-dep-clean/src/sis_video.c 2011-03-06 12:24:06.824324624 +0700
+@@ -349,7 +349,7 @@
+ if(newAdaptor) size++;
+ if(newBlitAdaptor) size++;
+
+- newAdaptors = xalloc(size * sizeof(XF86VideoAdaptorPtr*));
++ newAdaptors = malloc(size * sizeof(XF86VideoAdaptorPtr*));
+ if(newAdaptors) {
+ if(num_adaptors) {
+ memcpy(newAdaptors, adaptors, num_adaptors * sizeof(XF86VideoAdaptorPtr));
+@@ -379,7 +379,7 @@
+ }
+
+ if(newAdaptors) {
+- xfree(newAdaptors);
++ free(newAdaptors);
+ }
+
+ #ifdef ENABLEXvMC
+@@ -1049,7 +1049,7 @@
+ }
+ #endif
+
+- if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
++ if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) +
+ sizeof(SISPortPrivRec) +
+ sizeof(DevUnion)))) {
+ return NULL;
+@@ -4543,7 +4543,7 @@
+ }
+ #endif
+
+- if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
++ if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) +
+ (sizeof(DevUnion) * NUM_BLIT_PORTS) +
+ sizeof(SISBPortPrivRec)))) {
+ return NULL;
+Common subdirectories: xf86-video-sismedia-0.9.1/src/xvmc and xf86-video-sismedia-0.9.1-dep-clean/src/xvmc
diff --git a/extra/xf86-video-sisimedia/sisimedia-no-xaa.patch b/extra/xf86-video-sisimedia/sisimedia-no-xaa.patch
new file mode 100644
index 000000000..d97ca5a2b
--- /dev/null
+++ b/extra/xf86-video-sisimedia/sisimedia-no-xaa.patch
@@ -0,0 +1,11 @@
+--- xf86-video-sis-0.9.1/src/Makefile.am.0202~ 2007-05-30 04:12:02.000000000 +0200
++++ xf86-video-sis-0.9.1/src/Makefile.am 2012-10-19 23:24:31.954954666 +0200
+@@ -23,7 +23,7 @@
+ # -avoid-version prevents gratuitous .0.0.0 version numbers on the end
+ # _ladir passes a dummy rpath to libtool so the thing will actually link
+ # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
+-AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@
++AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@ -DSIS_USE_EXA
+ sis_drv_la_LTLIBRARIES = sis_drv.la
+ sis_drv_la_LDFLAGS = -module -avoid-version
+ sis_drv_ladir = @moduledir@/drivers
diff --git a/extra/xf86-video-sisimedia/sisimedia-xorg-1.13.patch b/extra/xf86-video-sisimedia/sisimedia-xorg-1.13.patch
new file mode 100644
index 000000000..25cc94fb1
--- /dev/null
+++ b/extra/xf86-video-sisimedia/sisimedia-xorg-1.13.patch
@@ -0,0 +1,654 @@
+diff -ur xf86-video-sis-0.9.1/src/sis_config.h xf86-video-sis-0.9.1-bero/src/sis_config.h
+--- xf86-video-sis-0.9.1/src/sis_config.h 2007-05-30 04:12:02.000000000 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis_config.h 2012-10-19 23:27:16.178901583 +0200
+@@ -67,7 +67,7 @@
+ #endif
+
+ #if 1
+-#define SIS_USE_XAA /* Include support for XAA */
++#undef SIS_USE_XAA /* Don't include support for XAA, current xorg servers don't support it */
+ #endif
+
+ #ifdef SISVRAMQ
+diff -ur xf86-video-sis-0.9.1/src/sis_dga.c xf86-video-sis-0.9.1-bero/src/sis_dga.c
+--- xf86-video-sis-0.9.1/src/sis_dga.c 2012-10-20 00:10:10.325720321 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis_dga.c 2012-10-19 23:34:00.514846689 +0200
+@@ -421,8 +421,8 @@
+ pScrn->currentMode = pSiS->CurrentLayout.mode;
+ pSiS->DGAactive = FALSE;
+
+- (*pScrn->SwitchMode)(index, pScrn->currentMode, 0);
+- (*pScrn->AdjustFrame)(index, pScrn->frameX0, pScrn->frameY0, 0);
++ (*pScrn->SwitchMode)(pScrn, pScrn->currentMode);
++ (*pScrn->AdjustFrame)(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+ } else { /* set new mode */
+
+@@ -444,10 +444,10 @@
+ pSiS->CurrentLayout.displayWidth = pMode->bytesPerScanline / (pMode->bitsPerPixel >> 3);
+ pSiS->CurrentLayout.displayHeight = pMode->imageHeight;
+
+- (*pScrn->SwitchMode)(index, pMode->mode, 0);
++ (*pScrn->SwitchMode)(pScrn, pMode->mode);
+ /* Adjust viewport to 0/0 after mode switch */
+ /* This fixes the vmware-in-dualhead problems */
+- (*pScrn->AdjustFrame)(index, 0, 0, 0);
++ (*pScrn->AdjustFrame)(pScrn, 0, 0);
+ pSiS->CurrentLayout.DGAViewportX = pSiS->CurrentLayout.DGAViewportY = 0;
+ }
+
+@@ -471,7 +471,7 @@
+ ){
+ SISPtr pSiS = SISPTR(pScrn);
+
+- (*pScrn->AdjustFrame)(pScrn->pScreen->myNum, x, y, flags);
++ (*pScrn->AdjustFrame)(pScrn, x, y);
+ pSiS->DGAViewportStatus = 0; /* There are never pending Adjusts */
+ pSiS->CurrentLayout.DGAViewportX = x;
+ pSiS->CurrentLayout.DGAViewportY = y;
+diff -ur xf86-video-sis-0.9.1/src/sis_driver.c xf86-video-sis-0.9.1-bero/src/sis_driver.c
+--- xf86-video-sis-0.9.1/src/sis_driver.c 2012-10-20 00:10:10.379719645 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis_driver.c 2012-10-20 00:06:35.196409807 +0200
+@@ -8546,9 +8546,9 @@
+ /* No need to go through pScrn->AdjustFrame; the coords
+ * didn't change
+ */
+- SISAdjustFrame(pSiSEnt->pScrn_2->scrnIndex,
++ SISAdjustFrame(pSiSEnt->pScrn_2,
+ pSiSEnt->pScrn_2->frameX0,
+- pSiSEnt->pScrn_2->frameY0, 0);
++ pSiSEnt->pScrn_2->frameY0);
+ }
+ } else {
+ /* Head 2 (slave) is always CRT1 */
+@@ -8565,9 +8565,9 @@
+ /* No need to go through pScrn->AdjustFrame; the coords
+ * didn't change
+ */
+- SISAdjustFrame(pSiSEnt->pScrn_1->scrnIndex,
++ SISAdjustFrame(pSiSEnt->pScrn_1,
+ pSiSEnt->pScrn_1->frameX0,
+- pSiSEnt->pScrn_1->frameY0, 0);
++ pSiSEnt->pScrn_1->frameY0);
+ }
+ }
+
+@@ -8613,7 +8613,7 @@
+
+ SiS_SiSLVDSBackLight(pSiS, TRUE);
+
+- (*pScrn->AdjustFrame)(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++ (*pScrn->AdjustFrame)(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+ } else {
+ #endif
+@@ -8723,14 +8723,13 @@
+ /*******************************************************/
+
+ static void
+-SISBlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask)
++SISBlockHandler(ScreenPtr pScreen, pointer pTimeout, pointer pReadmask)
+ {
+- ScreenPtr pScreen = screenInfo.screens[i];
+- ScrnInfoPtr pScrn = xf86Screens[i];
++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+ SISPtr pSiS = SISPTR(pScrn);
+
+ pScreen->BlockHandler = pSiS->BlockHandler;
+- (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
++ (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask);
+ pScreen->BlockHandler = SISBlockHandler;
+
+ #ifdef SISDUALHEAD
+@@ -8747,7 +8746,7 @@
+ #endif
+
+ if(pSiS->AdjustFramePending && pSiS->AdjustFrame) {
+- (*pSiS->AdjustFrame)(i, pSiS->AdjustFrameX, pSiS->AdjustFrameY, pSiS->AdjustFrameFlags);
++ (*pSiS->AdjustFrame)(pScrn, pSiS->AdjustFrameX, pSiS->AdjustFrameY);
+ /* Reset it since Xv insists on installing its own every time. */
+ pScrn->AdjustFrame = SISNewAdjustFrame;
+ pSiS->AdjustFramePending = FALSE;
+@@ -9230,7 +9229,7 @@
+ * depth, bitsPerPixel)
+ */
+ static Bool
+-SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
++SISScreenInit(ScreenPtr pScreen, int argc, char **argv)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ SISPtr pSiS = SISPTR(pScrn);
+@@ -9409,7 +9408,7 @@
+ pScrn->frameY1 = pScrn->frameY0 + pScrn->currentMode->VDisplay - 1;
+ }
+ }
+- SISAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++ SISAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+ /* Reset visual list. */
+ miClearVisualTypes();
+@@ -9841,7 +9840,7 @@
+ pSiS->SiS_SD_Flags |= SiS_SD_PSEUDOXINERAMA;
+ if(pSiS->HaveNonRect) {
+ /* Reset the viewport (now eventually non-recangular) */
+- SISAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++ SISAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+ }
+ }
+ } else {
+@@ -10177,9 +10176,8 @@
+ }
+
+ static ModeStatus
+-SISValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
++SISValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool verbose, int flags)
+ {
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+
+ if(pSiS->UseVESA) {
+@@ -10335,9 +10333,8 @@
+ #endif
+
+ Bool
+-SISSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
++SISSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ {
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+ /* This is part 2 of the ugly hack in sis_shadow.c:
+ * There we set pScrn->currentMode to something
+@@ -10353,7 +10350,7 @@
+ */
+
+ if(!pSiS->skipswitchcheck) {
+- if(SISValidMode(scrnIndex, mode, TRUE, flags) != MODE_OK) {
++ if(SISValidMode(pScrn, mode, TRUE, 0) != MODE_OK) {
+ return FALSE;
+ }
+ }
+@@ -10368,7 +10365,7 @@
+
+ (*pSiS->SyncAccel)(pScrn);
+
+- if(!(SISModeInit(xf86Screens[scrnIndex], mode)))
++ if(!(SISModeInit(pScrn, mode)))
+ return FALSE;
+
+ /* Since RandR (indirectly) uses SwitchMode(), we need to
+@@ -10485,21 +10482,18 @@
+ }
+
+ static void
+-SISNewAdjustFrame(int scrnIndex, int x, int y, int flags)
++SISNewAdjustFrame(ScrnInfoPtr pScrn, int x, int y)
+ {
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+
+ pSiS->AdjustFramePending = TRUE;
+ pSiS->AdjustFrameX = x;
+ pSiS->AdjustFrameY = y;
+- pSiS->AdjustFrameFlags = flags;
+ }
+
+ void
+-SISAdjustFrame(int scrnIndex, int x, int y, int flags)
++SISAdjustFrame(ScrnInfoPtr pScrn, int x, int y)
+ {
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+ UChar temp, cr11backup;
+ ULong base;
+@@ -10511,7 +10505,7 @@
+
+ #ifdef SISMERGED
+ if(pSiS->MergedFB) {
+- SISMFBAdjustFrame(scrnIndex, x, y, flags);
++ SISMFBAdjustFrame(pScrn, x, y);
+ return;
+ }
+ #endif
+@@ -10578,9 +10572,8 @@
+
+
+ static Bool
+-SISEnterVT(int scrnIndex, int flags)
++SISEnterVT(ScrnInfoPtr pScrn)
+ {
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+ SiS_SiSFB_Lock(pScrn, TRUE);
+
+@@ -10596,7 +10589,7 @@
+ /* No need to go through pScrn->AdjustFrame; Xv's
+ * EnterVT handles the overlay(s) anyway.
+ */
+- SISAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++ SISAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+
+ /* Mark for 3D full-screen bug */
+@@ -10625,15 +10618,14 @@
+
+
+ static void
+-SISLeaveVT(int scrnIndex, int flags)
++SISLeaveVT(ScrnInfoPtr pScrn)
+ {
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+ #ifdef SISDRI
+ ScreenPtr pScreen;
+
+ if(pSiS->directRenderingEnabled) {
+- pScreen = screenInfo.screens[scrnIndex];
++ pScreen = xf86ScreenToScrn(pScrn);
+ /* Mark for 3D full-screen bug */
+ /* DRILock(pScreen, 0); */
+ }
+@@ -10702,9 +10694,9 @@
+
+
+ static Bool
+-SISCloseScreen(int scrnIndex, ScreenPtr pScreen)
++SISCloseScreen(ScreenPtr pScreen)
+ {
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+ SISPtr pSiS = SISPTR(pScrn);
+ #ifdef SISDUALHEAD
+ SISEntPtr pSiSEnt = pSiS->entityPrivate;
+@@ -10872,7 +10864,7 @@
+
+ pScreen->CloseScreen = pSiS->CloseScreen;
+
+- return(*pScreen->CloseScreen)(scrnIndex, pScreen);
++ return(*pScreen->CloseScreen)(pScreen);
+ }
+
+
+@@ -10883,10 +10875,9 @@
+ /* Free up any per-generation data structures */
+
+ static void
+-SISFreeScreen(int scrnIndex, int flags)
++SISFreeScreen(ScrnInfoPtr pScrn)
+ {
+ #ifdef SIS_NEED_MAP_IOP
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+
+ if(pSiS) {
+@@ -10900,7 +10891,7 @@
+ }
+ #endif
+
+- SISFreeRec(xf86Screens[scrnIndex]);
++ SISFreeRec(pScrn);
+ }
+
+
+@@ -11134,7 +11125,7 @@
+ pSiS->VBFlags3 = pSiS->VBFlags_backup3 = newvbflags3;
+
+ pSiS->skipswitchcheck = TRUE;
+- if(!((*pScrn->SwitchMode)(pScrn->scrnIndex,pScrn->currentMode,0)))
++ if(!((*pScrn->SwitchMode)(pScrn,pScrn->currentMode)))
+ {
+ pSiS->skipswitchcheck = FALSE;
+ return FALSE;
+@@ -11143,7 +11134,7 @@
+
+ /*xf86DrvMsg(0,X_INFO,"frameX0=%d, frameY0=%d.\n",pScrn->frameX0,pScrn->frameY0);*/
+
+- SISAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0,0);
++ SISAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+ return TRUE;
+
+@@ -11204,14 +11195,14 @@
+ (*pSiS->SyncAccel)(pScrn);
+
+ pSiS->skipswitchcheck = TRUE;
+- if(!((*pScrn->SwitchMode)(pScrn->scrnIndex,pScrn->currentMode,0)))
++ if(!((*pScrn->SwitchMode)(pScrn,pScrn->currentMode)))
+ {
+ pSiS->skipswitchcheck = FALSE;
+ return FALSE;
+ }
+ pSiS->skipswitchcheck = FALSE;
+
+- SISAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0,0);
++ SISAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+ return TRUE;
+ }
+@@ -11259,7 +11250,7 @@
+
+ xf86ZoomViewport(pScreen,1);
+
+- SISAdjustFrame(pScrn->scrnIndex,0,0,0);
++ SISAdjustFrame(pScrn,0,0);
+
+
+ return TRUE;
+@@ -11268,9 +11259,8 @@
+
+ /**************************************************************************/
+ static Bool
+-SISPMEvent(int scrnIndex, pmEvent event, Bool undo)
++SISPMEvent(ScrnInfoPtr pScrn, pmEvent event, Bool undo)
+ {
+- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+ unsigned char hotkeyflag = 0;/*check BIOS flag.*/
+ unsigned char checkflag = 0;/*just for test using.*/
+@@ -11287,13 +11277,13 @@
+ {
+ xf86DrvMsg(0,X_INFO,"PM_EVENT:event=%d,undo=%d.\n",event,undo);
+ if (!undo && !pSiS->suspended) {
+- pScrn->LeaveVT(scrnIndex, 0);
++ pScrn->LeaveVT(pScrn);
+ pSiS->suspended = TRUE;
+ sleep(0);
+ }
+ else if (undo && pSiS->suspended) {
+ sleep(0);
+- pScrn->EnterVT(scrnIndex, 0);
++ pScrn->EnterVT(pScrn);
+ pSiS->suspended = FALSE;
+ }
+ }
+@@ -11305,7 +11295,7 @@
+ {
+ if (pSiS->suspended) {
+ sleep(0);
+- pScrn->EnterVT(scrnIndex, 0);
++ pScrn->EnterVT(pScrn);
+ pSiS->suspended = FALSE;
+ SaveScreens(SCREEN_SAVER_FORCER, ScreenSaverReset);
+ }
+diff -ur xf86-video-sis-0.9.1/src/sis_driver.h xf86-video-sis-0.9.1-bero/src/sis_driver.h
+--- xf86-video-sis-0.9.1/src/sis_driver.h 2012-10-20 00:10:10.296720683 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis_driver.h 2012-10-20 00:04:47.586755113 +0200
+@@ -770,14 +770,14 @@
+ static void SISIdentify(int flags);
+ static Bool SISProbe(DriverPtr drv, int flags);
+ static Bool SISPreInit(ScrnInfoPtr pScrn, int flags);
+-static Bool SISScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
+-static Bool SISEnterVT(int scrnIndex, int flags);
+-static void SISLeaveVT(int scrnIndex, int flags);
+-static Bool SISCloseScreen(int scrnIndex, ScreenPtr pScreen);
++static Bool SISScreenInit(ScreenPtr pScreen, int argc, char **argv);
++static Bool SISEnterVT(ScrnInfoPtr pScrn);
++static void SISLeaveVT(ScrnInfoPtr pScrn);
++static Bool SISCloseScreen(ScreenPtr pScreen);
+ static Bool SISSaveScreen(ScreenPtr pScreen, int mode);
+-static Bool SISSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
+-static void SISNewAdjustFrame(int scrnIndex, int x, int y, int flags);
+-static Bool SISPMEvent(int scrnIndex, pmEvent event, Bool undo);/*APM-ACPI, adding by Ivans.*/
++static Bool SISSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
++static void SISNewAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
++static Bool SISPMEvent(ScrnInfoPtr pScrn, pmEvent event, Bool undo);/*APM-ACPI, adding by Ivans.*/
+
+ #if XSERVER_LIBPCIACCESS
+ static Bool SIS_pci_probe(DriverPtr driver, int entity_num, struct pci_device *device, intptr_t match_data);
+@@ -791,8 +791,8 @@
+ #ifdef SISDUALHEAD
+ static Bool SISSaveScreenDH(ScreenPtr pScreen, int mode);
+ #endif
+-static void SISFreeScreen(int scrnIndex, int flags);
+-static ModeStatus SISValidMode(int scrnIndex, DisplayModePtr mode,
++static void SISFreeScreen(ScrnInfoPtr pScrn);
++static ModeStatus SISValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode,
+ Bool verbose, int flags);
+ #ifdef SIS_HAVE_RR_FUNC
+ #ifdef SIS_HAVE_DRIVER_FUNC
+@@ -811,7 +811,7 @@
+ static Bool SISMapIOPMem(ScrnInfoPtr pScrn);
+ static Bool SISUnmapIOPMem(ScrnInfoPtr pScrn);
+ #endif
+-void SISAdjustFrame(int scrnIndex, int x, int y, int flags);
++void SISAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
+ UChar SISSearchCRT1Rate(ScrnInfoPtr pScrn, DisplayModePtr mode);
+ UShort SiS_CheckModeCRT1(ScrnInfoPtr pScrn, DisplayModePtr mode,
+ unsigned int VBFlags, unsigned int VBFlags3, Bool hcm);
+@@ -858,7 +858,7 @@
+ extern Bool SiSVGASaveScreen(ScreenPtr pScreen, int mode);
+
+ /* shadow, randr, randr-rotation */
+-extern void SISPointerMoved(int index, int x, int y);
++extern void SISPointerMoved(ScrnInfoPtr pScrn, int x, int y);
+ extern void SISRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+ extern void SISRefreshAreaReflect(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+ extern void SISRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+@@ -922,8 +922,8 @@
+ extern Bool SiSMFBRebuildModelist(ScrnInfoPtr pScrn, ClockRangePtr clockRanges);
+ extern Bool SiSMFBRevalidateModelist(ScrnInfoPtr pScrn, ClockRangePtr clockRanges);
+ extern void SiSMFBSetDpi(ScrnInfoPtr pScrn1, ScrnInfoPtr pScrn2, SiSScrn2Rel srel);
+-extern void SISMFBPointerMoved(int scrnIndex, int x, int y);
+-extern void SISMFBAdjustFrame(int scrnIndex, int x, int y, int flags);
++extern void SISMFBPointerMoved(ScrnInfoPtr pScrn, int x, int y);
++extern void SISMFBAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
+ #ifdef SISXINERAMA
+ extern void SiSXineramaExtensionInit(ScrnInfoPtr pScrn);
+ extern Bool SiSnoPanoramiXExtension;
+diff -ur xf86-video-sis-0.9.1/src/sis.h xf86-video-sis-0.9.1-bero/src/sis.h
+--- xf86-video-sis-0.9.1/src/sis.h 2012-10-20 00:10:10.361719870 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis.h 2012-10-19 23:56:46.635767827 +0200
+@@ -73,6 +73,7 @@
+ #include "xf86Cursor.h"
+ #include "xf86cmap.h"
+ #include "vbe.h"
++#include "xf86fbman.h"
+
+ /*I.L. modified*/
+ #include "sispcirename.h"
+@@ -241,7 +242,7 @@
+ #define SIS_MAX_SUBPICTURES 2
+
+ #if !defined(SIS_USE_XAA) && !defined(SIS_USE_EXA)
+-#define SIS_USE_XAA
++#define SIS_USE_EXA
+ #endif
+
+ #ifdef SIS_USE_XAA
+@@ -1319,8 +1320,8 @@
+ #ifdef SIS_USE_XAA
+ void (*RenderCallback)(ScrnInfoPtr);
+ Time RenderTime;
+- FBLinearPtr AccelLinearScratch;
+ #endif
++ FBLinearPtr AccelLinearScratch;
+ #ifdef SIS_USE_EXA
+ void (*ExaRenderCallback)(ScrnInfoPtr);
+ Time ExaRenderTime;
+@@ -1342,7 +1343,7 @@
+ int SiSDPIVX, SiSDPIVY;
+ int virtualX, virtualY;
+ int Rotate, Reflect;
+- void (*PointerMoved)(int index, int x, int y);
++ void (*PointerMoved)(ScrnInfoPtr pScrn, int x, int y);
+
+ /* ShadowFB support */
+ Bool ShadowFB;
+@@ -1420,7 +1421,6 @@
+ Bool AdjustFramePending;
+ int AdjustFrameX;
+ int AdjustFrameY;
+- int AdjustFrameFlags;
+
+ /* DGA */
+ DGAModePtr DGAModes;
+diff -ur xf86-video-sis-0.9.1/src/sis_hwmc.c xf86-video-sis-0.9.1-bero/src/sis_hwmc.c
+--- xf86-video-sis-0.9.1/src/sis_hwmc.c 2012-10-20 00:10:10.348720033 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis_hwmc.c 2012-10-19 23:38:25.482534137 +0200
+@@ -58,8 +58,10 @@
+ #include "xf86xvmc.h"
+ #include <X11/extensions/Xv.h>
+ #include <X11/extensions/XvMC.h>
++#ifdef SIS_USE_XAA
+ #include "xaa.h"
+ #include "xaalocal.h"
++#endif
+ #include "dixstruct.h"
+ #include "fourcc.h"
+ #include "sis_common.h"
+diff -ur xf86-video-sis-0.9.1/src/sis_mergedfb.c xf86-video-sis-0.9.1-bero/src/sis_mergedfb.c
+--- xf86-video-sis-0.9.1/src/sis_mergedfb.c 2012-10-20 00:10:10.351719996 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis_mergedfb.c 2012-10-20 00:07:08.475993754 +0200
+@@ -1706,7 +1706,7 @@
+ /* Need to go the official way to avoid hw access and
+ * to update Xv's overlays
+ */
+- (pScrn1->AdjustFrame)(scrnIndex, pScrn1->frameX0, pScrn1->frameY0, 0);
++ (pScrn1->AdjustFrame)(pScrn1, pScrn1->frameX0, pScrn1->frameY0);
+ }
+ }
+
+diff -ur xf86-video-sis-0.9.1/src/sis_shadow.c xf86-video-sis-0.9.1-bero/src/sis_shadow.c
+--- xf86-video-sis-0.9.1/src/sis_shadow.c 2007-05-30 04:12:02.000000000 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis_shadow.c 2012-10-20 00:08:12.018199367 +0200
+@@ -81,11 +81,11 @@
+ }
+
+ if(framechanged && pScrn->AdjustFrame)
+- pScrn->AdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++ pScrn->AdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+ } else {
+
+- (*pSiS->PointerMoved)(index, x, y);
++ (*pSiS->PointerMoved)(pScrn, x, y);
+
+ }
+ }
+diff -ur xf86-video-sis-0.9.1/src/sis_utility.c xf86-video-sis-0.9.1-bero/src/sis_utility.c
+--- xf86-video-sis-0.9.1/src/sis_utility.c 2012-10-20 00:10:10.352719983 +0200
++++ xf86-video-sis-0.9.1-bero/src/sis_utility.c 2012-10-20 00:09:45.884025883 +0200
+@@ -273,7 +273,7 @@
+ unsigned int VBFlags, unsigned int VBFlags3, Bool hcm);
+ extern UShort SiS_CheckModeCRT2(ScrnInfoPtr pScrn, DisplayModePtr mode,
+ unsigned int VBFlags, unsigned int VBFlags3, Bool hcm);
+-extern void SISAdjustFrame(int scrnIndex, int x, int y, int flags);
++extern void SISAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
+ extern float SiSCalcVRate(DisplayModePtr mode);
+ extern void SiS_UpdateGammaCRT2(ScrnInfoPtr pScrn);
+ #ifdef SISGAMMARAMP
+@@ -427,7 +427,7 @@
+ (*pSiS->SyncAccel)(pScrn);
+
+ pSiS->skipswitchcheck = TRUE;
+- if(!((*pScrn->SwitchMode)(pScrn->scrnIndex, pScrn->currentMode, 0))) {
++ if(!((*pScrn->SwitchMode)(pScrn, pScrn->currentMode))) {
+ pSiS->skipswitchcheck = FALSE;
+ return FALSE;
+ }
+@@ -436,7 +436,7 @@
+ /* No need to go through pScrn->AdjustFrame; the coords
+ * didn't change
+ */
+- SISAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++ SISAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+ return TRUE;
+ }
+@@ -480,7 +480,7 @@
+ /* Sync the accelerators */
+ (*pSiS->SyncAccel)(pScrn);
+ pSiS->skipswitchcheck = TRUE;
+- if(!((*pScrn->SwitchMode)(pScrn->scrnIndex, pScrn->currentMode, 0))) {
++ if(!((*pScrn->SwitchMode)(pScrn, pScrn->currentMode))) {
+ pSiS->skipswitchcheck = FALSE;
+ return FALSE;
+ }
+@@ -489,7 +489,7 @@
+ /* No need to go through pScrn->AdjustFrame; the coords
+ * didn't change
+ */
+- SISAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++ SISAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+ }
+
+ return TRUE;
+@@ -624,7 +624,7 @@
+ pSiS->VBFlags3 = pSiS->VBFlags_backup3 = newvbflags3;
+
+ pSiS->skipswitchcheck = TRUE;
+- if(!(pScrn->SwitchMode(pScrn->scrnIndex, pScrn->currentMode, 0))) {
++ if(!(pScrn->SwitchMode(pScrn, pScrn->currentMode))) {
+ pSiS->skipswitchcheck = FALSE;
+ return FALSE;
+ }
+@@ -633,7 +633,7 @@
+ /* No need to go through pScrn->AdjustFrame; the coords
+ * didn't change
+ */
+- SISAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++ SISAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
+
+ return TRUE;
+ }
+--- xf86-video-sis-0.9.1/src/sis6326_video.c.bero 2012-10-20 00:13:59.712852587 +0200
++++ xf86-video-sis-0.9.1/src/sis6326_video.c 2012-10-20 00:15:51.035460862 +0200
+@@ -72,7 +72,7 @@ static void SIS6326QueryBestSize(ScrnIn
+ short, unsigned int *,unsigned int *, pointer);
+ static int SIS6326PutImage( 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 SIS6326QueryImageAttributes(ScrnInfoPtr,
+ int, unsigned short *, unsigned short *, int *, int *);
+ static void SIS6326VideoTimerCallback(ScrnInfoPtr pScrn, Time now);
+@@ -1231,7 +1231,7 @@ SIS6326PutImage(
+ int id, unsigned char* buf,
+ short width, short height,
+ Bool sync,
+- RegionPtr clipBoxes, pointer data
++ RegionPtr clipBoxes, pointer data, DrawablePtr pDraw
+ ){
+ SISPtr pSiS = SISPTR(pScrn);
+ SISPortPrivPtr pPriv = (SISPortPrivPtr)data;
+--- xf86-video-sis-0.9.1/src/sis_video.c.bero 2012-10-20 00:16:13.212183614 +0200
++++ xf86-video-sis-0.9.1/src/sis_video.c 2012-10-20 00:20:38.099872064 +0200
+@@ -3948,7 +3948,7 @@ SISPutImage(
+ int id, UChar *buf,
+ short width, short height,
+ Bool sync,
+- RegionPtr clipBoxes, pointer data
++ RegionPtr clipBoxes, pointer data, DrawablePtr pDraw
+ ){
+ SISPtr pSiS = SISPTR(pScrn);
+ SISPortPrivPtr pPriv = (SISPortPrivPtr)data;
+@@ -4089,8 +4089,11 @@ SISPutImage(
+ static int
+ SISReputImage(
+ ScrnInfoPtr pScrn,
++ short src_x, short src_y,
+ short drw_x, short drw_y,
+- RegionPtr clipBoxes, pointer data
++ short src_w, short src_h,
++ short drw_w, short drw_h,
++ RegionPtr clipBoxes, pointer data, DrawablePtr pDraw
+ ){
+ SISPtr pSiS = SISPTR(pScrn);
+ SISPortPrivPtr pPriv = (SISPortPrivPtr)data;
+--- xf86-video-sis-0.9.1/src/sis_video.h.bero 2012-10-20 00:16:58.076622733 +0200
++++ xf86-video-sis-0.9.1/src/sis_video.h 2012-10-20 00:20:18.443117807 +0200
+@@ -107,10 +107,13 @@ static void SISQueryBestSize(ScrnInfoPt
+ short, unsigned int *,unsigned int *, pointer);
+ static int SISPutImage(ScrnInfoPtr,
+ short, short, short, short, short, short, short, short,
+- int, UChar *, short, short, Bool, RegionPtr, pointer);
++ int, UChar *, short, short, Bool, RegionPtr, pointer, DrawablePtr);
+ static int SISReputImage(ScrnInfoPtr pScrn,
++ short src_x, short src_y,
+ short drw_x, short drw_y,
+- RegionPtr clipBoxes, pointer data);
++ short src_w, short src_h,
++ short drw_w, short drw_h,
++ RegionPtr clipBoxes, pointer data, DrawablePtr pDraw);
+ static int SISQueryImageAttributes(ScrnInfoPtr,
+ int, UShort *, UShort *, int *, int *);
+ static void SISVideoTimerCallback(ScrnInfoPtr pScrn, Time now);