From 339fb3bc032b9f35b07b90480ae82a0fd352e078 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Thu, 30 Aug 2012 18:09:10 +0000 Subject: Replace xf86UnMapVidMem with pci_device_unmap_range Mixing pci_device_map_range with xf86UnMapVidMem doesn't work too well. X.Org bug#18028 Bug found by Bryan Henderson Signed-off-by: Julien Cristau --- diff --git a/src/sis_driver.c b/src/sis_driver.c index 61e8075..4c9b9cb 100644 --- a/src/sis_driver.c +++ b/src/sis_driver.c @@ -7344,7 +7344,11 @@ SISUnmapMem(ScrnInfoPtr pScrn) if(pSiSEnt->MapCountIOBase) { pSiSEnt->MapCountIOBase--; if((pSiSEnt->MapCountIOBase == 0) || (pSiSEnt->forceUnmapIOBase)) { +#ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBase, (pSiS->mmioSize * 1024)); +#else + pci_device_unmap_range(pSiS->PciInfo, pSiSEnt->IOBase, (pSiS->mmioSize * 1024)); +#endif pSiSEnt->IOBase = NULL; pSiSEnt->MapCountIOBase = 0; pSiSEnt->forceUnmapIOBase = FALSE; @@ -7355,7 +7359,11 @@ SISUnmapMem(ScrnInfoPtr pScrn) if(pSiSEnt->MapCountIOBaseDense) { pSiSEnt->MapCountIOBaseDense--; if((pSiSEnt->MapCountIOBaseDense == 0) || (pSiSEnt->forceUnmapIOBaseDense)) { +#ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024)); +#else + pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024)); +#endif pSiSEnt->IOBaseDense = NULL; pSiSEnt->MapCountIOBaseDense = 0; pSiSEnt->forceUnmapIOBaseDense = FALSE; @@ -7366,7 +7374,11 @@ SISUnmapMem(ScrnInfoPtr pScrn) if(pSiSEnt->MapCountFbBase) { pSiSEnt->MapCountFbBase--; if((pSiSEnt->MapCountFbBase == 0) || (pSiSEnt->forceUnmapFbBase)) { +#ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize); +#else + pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize); +#endif pSiSEnt->FbBase = pSiSEnt->RealFbBase = NULL; pSiSEnt->MapCountFbBase = 0; pSiSEnt->forceUnmapFbBase = FALSE; @@ -7376,13 +7388,25 @@ SISUnmapMem(ScrnInfoPtr pScrn) } } else { #endif +#ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024)); +#else + pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024)); +#endif pSiS->IOBase = NULL; #ifdef __alpha__ +#ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024)); +#else + pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024)); +#endif pSiS->IOBaseDense = NULL; #endif +#ifndef XSERVER_LIBPCIACCESS xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->RealFbBase, pSiS->FbMapSize); +#else + pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->RealFbBase, pSiS->FbMapSize); +#endif pSiS->FbBase = pSiS->RealFbBase = NULL; #ifdef SISDUALHEAD } -- cgit v0.9.0.2-2-gbebe From 926d4f655c8491b68a338f50c810f6729686ec9f Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 25 Sep 2012 12:54:51 +0000 Subject: Remove mibstore.h Signed-off-by: Adam Jackson --- diff --git a/src/sis_driver.c b/src/sis_driver.c index 4c9b9cb..46cfefd 100644 --- a/src/sis_driver.c +++ b/src/sis_driver.c @@ -57,7 +57,6 @@ #include "fb.h" #include "micmap.h" #include "mipointer.h" -#include "mibstore.h" #include "edid.h" #define SIS_NEED_inSISREG @@ -8883,7 +8882,6 @@ SISScreenInit(SCREEN_INIT_ARGS_DECL) } pSiS->SiSFastVidCopyDone = TRUE; - miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); xf86SetSilkenMouse(pScreen); -- cgit v0.9.0.2-2-gbebe From 7d4402786b758de3e6ce2641e15a39d612d5c518 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 15 Oct 2012 23:11:30 +0000 Subject: Stop including xf86Priv.h As the name might suggest, it's server-private. Signed-off-by: Adam Jackson --- diff --git a/src/sis.h b/src/sis.h index 46fca2a..20e6134 100644 --- a/src/sis.h +++ b/src/sis.h @@ -75,7 +75,6 @@ #include "compiler.h" #include "xf86Pci.h" -#include "xf86Priv.h" #include "xf86_OSproc.h" #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 #include "xf86Resources.h" diff --git a/src/sis_driver.c b/src/sis_driver.c index 46cfefd..cefe503 100644 --- a/src/sis_driver.c +++ b/src/sis_driver.c @@ -93,6 +93,10 @@ #include "dri.h" #endif +#ifndef DEFAULT_DPI +#define DEFAULT_DPI 96 +#endif + /* * LookupWindow was removed with video abi 11. */ -- cgit v0.9.0.2-2-gbebe From 0a4336efaafac4c34d4287b5df586bbb418f7f76 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Sat, 26 Oct 2013 14:27:17 -0700 Subject: Fix HDisplay/VDisplay typos Found by gcc -Wlogicalops: sis_driver.c: In function 'SiS_CheckModeCRT2': sis_driver.c:13754:5: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] sis_driver.c:13755:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] sis_driver.c:13756:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] sis_driver.c:13758:5: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] sis_driver.c:13759:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] Signed-off-by: Alan Coopersmith Reviewed-by: Gaetan Nadon diff --git a/src/sis_driver.c b/src/sis_driver.c index cefe503..80b8d51 100644 --- a/src/sis_driver.c +++ b/src/sis_driver.c @@ -13751,12 +13751,12 @@ SiS_CheckModeCRT2(ScrnInfoPtr pScrn, DisplayModePtr mode, unsigned int VBFlags, if( ((mode->HDisplay <= pSiS->LCDwidth) && (mode->VDisplay <= pSiS->LCDheight)) || ((pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL848) && - (((mode->HDisplay == 1360) && (mode->HDisplay == 768)) || - ((mode->HDisplay == 1024) && (mode->HDisplay == 768)) || - ((mode->HDisplay == 800) && (mode->HDisplay == 600)))) || + (((mode->HDisplay == 1360) && (mode->VDisplay == 768)) || + ((mode->HDisplay == 1024) && (mode->VDisplay == 768)) || + ((mode->HDisplay == 800) && (mode->VDisplay == 600)))) || ((pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL856) && - (((mode->HDisplay == 1024) && (mode->HDisplay == 768)) || - ((mode->HDisplay == 800) && (mode->HDisplay == 600)))) ) { + (((mode->HDisplay == 1024) && (mode->VDisplay == 768)) || + ((mode->HDisplay == 800) && (mode->VDisplay == 600)))) ) { ModeIndex = SiS_GetModeID_LCD(pSiS->VGAEngine, VBFlags, mode->HDisplay, mode->VDisplay, i, pSiS->FSTN, pSiS->SiS_Pr->SiS_CustomT, pSiS->LCDwidth, pSiS->LCDheight, -- cgit v0.10.2 From 49796d6a3274adc0250ee07faa6bc63e41c98740 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 22 Nov 2013 08:21:18 +1000 Subject: Fix format-security warnings sis_driver.c: In function 'SISErrorLog': sis_driver.c:432:5: error: format not a string literal and no format arguments [-Werror=format-security] xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str); ^ sis_driver.c:439:5: error: format not a string literal and no format arguments [-Werror=format-security] xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str); ^ sis_driver.c: In function 'SiSUpdateXineramaScreenInfo': sis_driver.c:1917:4: error: format not a string literal and no format arguments [-Werror=format-security] xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine); ^ sis_driver.c:1924:8: error: format not a string literal and no format arguments [-Werror=format-security] xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine); Signed-off-by: Peter Hutterer Reviewed-by: Alan Coopersmith diff --git a/src/sis_driver.c b/src/sis_driver.c index 80b8d51..bd9c4e1 100644 --- a/src/sis_driver.c +++ b/src/sis_driver.c @@ -429,14 +429,14 @@ SISErrorLog(ScrnInfoPtr pScrn, const char *format, ...) static const char *str = "**************************************************\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); } static void @@ -1914,14 +1914,14 @@ SiSUpdateXineramaScreenInfo(ScrnInfoPtr pScrn1) if(infochanged && !usenonrect) { xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "Virtual screen size does not match maximum display modes...\n"); - xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine); + xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "%s", rectxine); } } else if(infochanged && usenonrect) { usenonrect = FALSE; xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "Only clone modes available for this virtual screen size...\n"); - xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine); + xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "%s", rectxine); } if(pSiS->maxCRT1_X1) { /* Means we have at least one non-clone mode */ -- cgit v0.10.2 From d0550de19cacab3e591641ba358a72fbc798b231 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 22 Sep 2014 12:45:02 +1000 Subject: sis: fix build against latest xserver diff --git a/src/sis.h b/src/sis.h index 20e6134..385b784 100644 --- a/src/sis.h +++ b/src/sis.h @@ -1004,7 +1004,9 @@ typedef struct { ScrnInfoPtr pScrn; pciVideoPtr PciInfo; int PciBus, PciDevice, PciFunc; +#ifndef XSERVER_LIBPCIACCESS PCITAG PciTag; +#endif EntityInfoPtr pEnt; int Chipset; unsigned char ChipType; diff --git a/src/vstruct.h b/src/vstruct.h index 88f7eb6..5d7a98d 100644 --- a/src/vstruct.h +++ b/src/vstruct.h @@ -237,8 +237,10 @@ struct SiS_Private unsigned char ChipType; unsigned char ChipRevision; #ifdef SIS_XORG_XF86 +#ifndef XSERVER_LIBPCIACCESS PCITAG PciTag; #endif +#endif #ifdef SIS_LINUX_KERNEL void *ivideo; #endif -- cgit v0.10.2 From d2597696ba81862d80ec17b978d8370c58572e27 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 12 Nov 2014 08:04:21 +1000 Subject: sis: more build fixes against master X server. diff --git a/src/sis_driver.c b/src/sis_driver.c index bd9c4e1..125eee7 100644 --- a/src/sis_driver.c +++ b/src/sis_driver.c @@ -3279,9 +3279,11 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) pSiS->PciDevice = PCI_CFG_DEV(pSiS->PciInfo); /*SIS_PCI_DEVICE(pSiS->PciInfo);*/ pSiS->PciFunc = PCI_CFG_FUNC(pSiS->PciInfo); /*SIS_PCI_FUNC(pSiS->PciInfo);*/ +#ifndef XSERVER_LIBPCIACCESS pSiS->PciTag = pciTag(PCI_DEV_BUS(pSiS->PciInfo), PCI_DEV_DEV(pSiS->PciInfo), PCI_DEV_FUNC(pSiS->PciInfo)); +#endif #ifdef SIS_NEED_MAP_IOP /********************************************/ @@ -3905,7 +3907,9 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) if(pSiSEnt) pSiSEnt->SiS_Pr = pSiS->SiS_Pr; #endif memset(pSiS->SiS_Pr, 0, sizeof(struct SiS_Private)); +#ifndef XSERVER_LIBPCIACCESS pSiS->SiS_Pr->PciTag = pSiS->PciTag; +#endif pSiS->SiS_Pr->ChipType = pSiS->ChipType; pSiS->SiS_Pr->ChipRevision = pSiS->ChipRev; pSiS->SiS_Pr->SiS_Backup70xx = 0xff; @@ -7134,7 +7138,9 @@ static Bool SISMapMem(ScrnInfoPtr pScrn) { SISPtr pSiS = SISPTR(pScrn); +#ifndef XSERVER_LIBPCIACCESS int mmioFlags = VIDMEM_MMIO; +#endif #ifdef SISDUALHEAD SISEntPtr pSiSEnt = pSiS->entityPrivate; #endif @@ -7144,9 +7150,11 @@ SISMapMem(ScrnInfoPtr pScrn) * (For Alpha, we need to map SPARSE memory, since we need * byte/short access.) */ +#ifndef XSERVER_LIBPCIACCESS #if defined(__alpha__) mmioFlags |= VIDMEM_SPARSE; #endif +#endif #ifdef SISDUALHEAD if(pSiS->DualHeadMode) { @@ -14017,6 +14025,7 @@ SiS_GetSetBIOSScratch(ScrnInfoPtr pScrn, UShort offset, UChar value) break; } +#ifndef XSERVER_LIBPCIACCESS #ifdef SIS_USE_BIOS_SCRATCH if(SISPTR(pScrn)->Primary) { base = xf86MapVidMem(pScrn->scrnIndex, VIDMEM_MMIO, 0, 0x2000); @@ -14035,6 +14044,7 @@ SiS_GetSetBIOSScratch(ScrnInfoPtr pScrn, UShort offset, UChar value) xf86UnMapVidMem(pScrn->scrnIndex, base, 0x2000); } #endif +#endif return ret; } -- cgit v0.10.2 From 0f50f8c3db2b9f1c9d4ecab8ad278e9db6418a92 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 12 Nov 2014 09:27:33 +1000 Subject: sis: force build, who uses this crazy code anyways diff --git a/src/sis_driver.c b/src/sis_driver.c index 125eee7..854cb54 100644 --- a/src/sis_driver.c +++ b/src/sis_driver.c @@ -9385,6 +9385,7 @@ SISMergedPointerMoved(SCRN_ARG_TYPE arg, int x, int y) } } if(doit) { +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 20 /* screw it */ sigstate = xf86BlockSIGIO(); #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15 { @@ -9402,6 +9403,7 @@ SISMergedPointerMoved(SCRN_ARG_TYPE arg, int x, int y) miPointerAbsoluteCursor(x, y, currentTime.milliseconds); #endif xf86UnblockSIGIO(sigstate); +#endif return; } } -- cgit v0.10.2