Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 169912 Details for
Bug 239075
x11-drivers/xf86-video-via fails to compile
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
xf86-video-via-0.2.2-libpciaccess.patch
xf86-video-via-0.2.2-libpciaccess.patch (text/plain), 38.97 KB, created by
Honza Macháček
on 2008-10-26 09:40:45 UTC
(
hide
)
Description:
xf86-video-via-0.2.2-libpciaccess.patch
Filename:
MIME Type:
Creator:
Honza Macháček
Created:
2008-10-26 09:40:45 UTC
Size:
38.97 KB
patch
obsolete
>diff -Naur xf86-video-via-0.2.2/configure.ac xf86-video-via-0.2.2-r1/configure.ac >--- configure.ac 2006-10-13 22:48:26.000000000 +0000 >+++ configure.ac 2008-10-25 15:11:59.000000000 +0000 >@@ -69,6 +69,16 @@ > AC_HEADER_STDC > AC_CHECK_HEADERS([inttypes.h]) > >+# Check for libpciaccess usage >+AC_CHECK_HEADER(xf86Modes.h,[XMODES=yes],[XMODES=no],[#include "xorg-server.h"]) >+AC_CHECK_DECL(XSERVER_LIBPCIACCESS, >+ [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no], >+ [#include "xorg/xorg-server.h"]) >+ >+if test x$XSERVER_LIBPCIACCESS = xyes; then >+ PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) >+fi >+ > > if test "x$DRI" != xno; then > AC_CHECK_FILE([${sdkdir}/dri.h], >@@ -117,6 +127,15 @@ > > AM_CONDITIONAL(XVMC, test x$XVMC = xyes) > >++# Check the ABI_VIDEODRV_VERSION >+SAVE_CFLAGS="$CFLAGS" >+CFLAGS="$CFLAGS $XORG_CFLAGS" >+ >+AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test x$XSERVER_LIBPCIACCESS = xyes) >+if test "$XSERVER_LIBPCIACCESS" = yes; then >+ AC_DEFINE(XSERVER_LIBPCIACCESS,1,[Enable libpciaccess]) >+fi >+ > AC_SUBST([DRI_CFLAGS]) > AC_SUBST([XORG_CFLAGS]) > AC_SUBST([moduledir]) >diff -Naur xf86-video-via-0.2.2/src/via.h xf86-video-via-0.2.2-r1/src/via.h >--- src/via.h 2006-10-11 22:28:51.000000000 +0000 >+++ src/via.h 2008-10-26 06:38:33.000000000 +0000 >@@ -647,5 +647,20 @@ > #define MPG_SLICE_DATA 0xA0 > > >+#ifdef XSERVER_LIBPCIACCESS >+#define VIA_MEMBASE(p,n) (p)->regions[(n)].base_addr >+#define VENDOR_ID(p) (p)->vendor_id >+#define DEVICE_ID(p) (p)->device_id >+#define SUBVENDOR_ID(p) (p)->subvendor_id >+#define SUBSYS_ID(p) (p)->subdevice_id >+#define CHIP_REVISION(p) (p)->revision >+#else >+#define VIA_MEMBASE(p,n) (p)->memBase[n] >+#define VENDOR_ID(p) (p)->vendor >+#define DEVICE_ID(p) (p)->chipType >+#define SUBVENDOR_ID(p) (p)->subsysVendor >+#define SUBSYS_ID(p) (p)->subsysCard >+#define CHIP_REVISION(p) (p)->chipRev >+#endif > > #endif /* _VIA_H_ */ >diff -Naur xf86-video-via-0.2.2/src/via_dri.c xf86-video-via-0.2.2-r1/src/via_dri.c >--- src/via_dri.c 2006-10-11 22:28:51.000000000 +0000 >+++ src/via_dri.c 2008-10-26 06:41:18.000000000 +0000 >@@ -107,9 +107,15 @@ > > pVIADRI->irqEnabled = drmGetInterruptFromBusID > (pVia->drmFD, >+#ifdef XSERVER_LIBPCIACCESS >+ ((pVia->PciInfo->domain << 8) | pVia->PciInfo->bus), >+ pVia->PciInfo->dev, pVia->PciInfo->func >+#else > ((pciConfigPtr)pVia->PciInfo->thisCard)->busnum, > ((pciConfigPtr)pVia->PciInfo->thisCard)->devnum, >- ((pciConfigPtr)pVia->PciInfo->thisCard)->funcnum); >+ ((pciConfigPtr)pVia->PciInfo->thisCard)->funcnum >+#endif >+ ); > if ((drmCtlInstHandler(pVia->drmFD, pVIADRI->irqEnabled))) { > xf86DrvMsg(pScrn->scrnIndex, X_WARNING, > "[drm] Failure adding irq handler. " >@@ -664,9 +670,15 @@ > pDRIInfo->clientDriverName = VIAClientDriverName; > pDRIInfo->busIdString = xalloc(64); > sprintf(pDRIInfo->busIdString, "PCI:%d:%d:%d", >- ((pciConfigPtr)pVia->PciInfo->thisCard)->busnum, >- ((pciConfigPtr)pVia->PciInfo->thisCard)->devnum, >- ((pciConfigPtr)pVia->PciInfo->thisCard)->funcnum); >+#ifdef XSERVER_LIBPCIACCESS >+ ((pVia->PciInfo->domain << 8) | pVia->PciInfo->bus), >+ pVia->PciInfo->dev, pVia->PciInfo->func >+#else >+ ((pciConfigPtr)pVia->PciInfo->thisCard)->busnum, >+ ((pciConfigPtr)pVia->PciInfo->thisCard)->devnum, >+ ((pciConfigPtr)pVia->PciInfo->thisCard)->funcnum >+#endif >+ ); > pDRIInfo->ddxDriverMajorVersion = VIA_DRIDDX_VERSION_MAJOR; > pDRIInfo->ddxDriverMinorVersion = VIA_DRIDDX_VERSION_MINOR; > pDRIInfo->ddxDriverPatchVersion = VIA_DRIDDX_VERSION_PATCH; >diff -Naur xf86-video-via-0.2.2/src/via_driver.c xf86-video-via-0.2.2-r1/src/via_driver.c >--- src/via_driver.c 2006-10-11 22:28:51.000000000 +0000 >+++ src/via_driver.c 2008-10-26 07:55:20.000000000 +0000 >@@ -58,7 +58,43 @@ > */ > > static void VIAIdentify(int flags); >+ >+#ifdef XSERVER_LIBPCIACCESS >+struct pci_device * >+via_pci_device(const struct pci_slot_match *bridge_match) >+{ >+ struct pci_device_iterator *slot_iterator; >+ struct pci_device *bridge; >+ >+ slot_iterator = pci_slot_match_iterator_create(bridge_match); >+ bridge = pci_device_next(slot_iterator); >+ pci_iterator_destroy(slot_iterator); >+ return bridge; >+} >+ >+struct pci_device * >+via_host_bridge(void) >+{ >+ static const struct pci_slot_match bridge_match = { >+ 0, 0, 0, 0, 0 >+ }; >+ return via_pci_device(&bridge_match); >+} >+ >+viaPciDeviceVga(void) >+{ >+ static const struct pci_slot_match bridge_match = { >+ 0, 0, 0, 3, 0 >+ }; >+ return via_pci_device(&bridge_match); >+} >+ >+static Bool via_pci_probe(DriverPtr drv, int entity_num, >+ struct pci_device *dev, intptr_t match_data); >+#else /* !XSERVER_LIBPCIACCESS */ > static Bool VIAProbe(DriverPtr drv, int flags); >+#endif >+ > static Bool VIAPreInit(ScrnInfoPtr pScrn, int flags); > static Bool VIAEnterVT(int scrnIndex, int flags); > static void VIALeaveVT(int scrnIndex, int flags); >@@ -80,15 +116,45 @@ > static Bool VIAMapFB(ScrnInfoPtr pScrn); > static void VIAUnmapMem(ScrnInfoPtr pScrn); > >+#ifdef XSERVER_LIBPCIACCESS >+ >+#define VIA_DEVICE_MATCH(d,i) \ >+ { 0x1106, (d), PCI_MATCH_ANY, PCI_MATCH_ANY, 0, 0, (i) } >+ >+static const struct pci_id_match via_device_match[] = { >+ VIA_DEVICE_MATCH (PCI_CHIP_VT3204, 0 ), >+ VIA_DEVICE_MATCH (PCI_CHIP_VT3259, 0 ), >+ VIA_DEVICE_MATCH (PCI_CHIP_CLE3122, 0 ), >+ VIA_DEVICE_MATCH (PCI_CHIP_VT3205, 0 ), >+ VIA_DEVICE_MATCH (PCI_CHIP_VT3314, 0 ), >+ VIA_DEVICE_MATCH (PCI_CHIP_VT3336, 0 ), >+ VIA_DEVICE_MATCH (PCI_CHIP_VT3364, 0 ), >+ VIA_DEVICE_MATCH (PCI_CHIP_VT3324, 0 ), >+ VIA_DEVICE_MATCH (PCI_CHIP_VT3327, 0 ), >+ { 0, 0, 0 }, >+}; >+ >+#endif /* XSERVER_LIBPCIACCESS */ >+ > _X_EXPORT DriverRec VIA = > { > VIA_VERSION, > DRIVER_NAME, > VIAIdentify, >+#ifdef XSERVER_LIBPCIACCESS >+ NULL, >+#else > VIAProbe, >+#endif > VIAAvailableOptions, > NULL, > 0 >+, >+ NULL, >+#ifdef XSERVER_LIBPCIACCESS >+ via_device_match, >+ via_pci_probe >+#endif > }; > > >@@ -374,7 +440,13 @@ > > if (!setupDone) { > setupDone = TRUE; >- xf86AddDriver(&VIA, module, 0); >+ xf86AddDriver(&VIA, module, >+#ifdef XSERVER_LIBPCIACCESS >+ HaveDriverFuncs >+#else >+ 0 >+#endif >+ ); > LoaderRefSymLists(vgaHWSymbols, > fbSymbols, > ramdacSymbols, >@@ -459,6 +531,44 @@ > } /* VIAIdentify */ > > >+#ifdef XSERVER_LIBPCIACCESS >+static Bool >+via_pci_probe(DriverPtr driver, int entity_num, >+ struct pci_device *device, intptr_t match_data) >+{ >+ ScrnInfoPtr scrn = NULL; >+ EntityInfoPtr entity; >+ DevUnion *private; >+ >+ scrn = xf86ConfigPciEntity(scrn, 0, entity_num, VIAPciChipsets, >+ NULL, NULL, NULL, NULL, NULL); >+ >+ if (scrn != NULL) { >+ scrn->driverVersion = VIA_VERSION; >+ scrn->driverName = DRIVER_NAME; >+ scrn->name = "VIA"; >+ scrn->Probe = NULL; >+ >+ entity = xf86GetEntityInfo(entity_num); >+ >+ scrn->PreInit = VIAPreInit; >+ scrn->ScreenInit = VIAScreenInit; >+ scrn->SwitchMode = VIASwitchMode; >+ scrn->AdjustFrame = VIAAdjustFrame; >+ scrn->EnterVT = VIAEnterVT; >+ scrn->LeaveVT = VIALeaveVT; >+ scrn->FreeScreen = VIAFreeScreen; >+ scrn->ValidMode = ViaValidMode; >+ >+ xf86Msg(X_NOTICE, >+ "VIA Technologies does not support this driver in any way.\n"); >+ xf86Msg(X_NOTICE, >+ "For support, please contact the driver maintainer or your X vendor.\n"); >+ } >+ return scrn != NULL; >+} >+#else /* !XSERVER_LIBPCIACCESS */ >+ > static Bool VIAProbe(DriverPtr drv, int flags) > { > GDevPtr *devSections; >@@ -565,6 +675,7 @@ > return foundScreen; > > } /* VIAProbe */ >+#endif /* !XSERVER_LIBPCIACCESS */ > > #ifdef XF86DRI > static void kickVblank(ScrnInfoPtr pScrn) >@@ -636,6 +747,10 @@ > int i, bMemSize = 0; > Bool UseVBEModes = FALSE; > >+#ifdef XSERVER_LIBPCIACCESS >+ struct pci_device *bridge = via_host_bridge(); >+#endif >+ > DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAPreInit\n")); > > if (pScrn->numEntities > 1) >@@ -1149,7 +1264,7 @@ > pEnt->device->chipID); > } else { > from = X_PROBED; >- pVia->ChipId = pVia->PciInfo->chipType; >+ pVia->ChipId = DEVICE_ID(pVia->PciInfo); > pVia->Chipset = LookupChipID(VIAPciChipsets, pVia->ChipId); > pScrn->chipset = (char *)xf86TokenToString(VIAChipsets, > pVia->Chipset); >@@ -1163,7 +1278,13 @@ > else { > /*pVia->ChipRev = pVia->PciInfo->chipRev;*/ > /* Read PCI bus 0, dev 0, function 0, index 0xF6 to get chip rev. */ >+#ifdef XSERVER_LIBPCIACCESS >+ struct pci_device *bridge = via_host_bridge(); >+ >+ pci_device_cfg_read_u8(bridge, &pVia->ChipRev, 0xF6); >+#else > pVia->ChipRev = pciReadByte(pciTag(0, 0, 0), 0xF6); >+#endif > } > > if (pEnt->device->videoRam != 0) { >@@ -1205,8 +1326,10 @@ > } > #endif /* HAVE_PM800 */ > >+#ifndef XSERVER_LIBPCIACCESS > pVia->PciTag = pciTag(pVia->PciInfo->bus, pVia->PciInfo->device, > pVia->PciInfo->func); >+#endif > > if (!VIAMapMMIO(pScrn)) { > VIAFreeRec(pScrn); >@@ -1271,20 +1394,64 @@ > } > > /* detect amount of installed ram */ >- if (pScrn->videoRam < 16384 || pScrn->videoRam > 65536) { >- if(pVia->Chipset == VIA_CLE266) >- bMemSize = hwp->readSeq(hwp, 0x34); >- else >- bMemSize = hwp->readSeq(hwp, 0x39); >+ from = X_PROBED; >+ CARD8 videoRam; > >- if (bMemSize > 16 && bMemSize <= 128) >- pScrn->videoRam = (bMemSize + 1) << 9; >- else if (bMemSize > 0 && bMemSize < 31) >- pScrn->videoRam = bMemSize << 12; >- else { >- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Memory size detection failed: using 16MB\n"); >- pScrn->videoRam = 16 << 10; /* Assume the base 16Mb */ >- } >+#ifdef XSERVER_LIBPCIACCESS >+ struct pci_device *vgaDevice = viaPciDeviceVga(); >+#endif >+ >+ switch (pVia->Chipset) { >+ case VIA_CLE266: >+ case VIA_KM400: >+#ifdef XSERVER_LIBPCIACCESS >+ pci_device_cfg_read_u8(bridge, &videoRam, 0xE1); >+#else >+ videoRam = pciReadByte(pciTag(0, 0, 0), 0xE1) & 0x70; >+#endif >+ pScrn->videoRam = (1 << ((videoRam & 0x70) >> 4)) << 10; >+ break; >+ case VIA_PM800: >+ case VIA_VM800: >+ case VIA_K8M800: >+#ifdef XSERVER_LIBPCIACCESS >+ pci_device_cfg_read_u8(vgaDevice, &videoRam, 0xA1); >+#else >+ videoRam = pciReadByte(pciTag(0, 0, 3), 0xA1) & 0x70; >+#endif >+ pScrn->videoRam = (1 << ((videoRam & 0x70) >> 4)) << 10; >+ break; >+ case VIA_K8M890: >+ case VIA_P4M890: >+ case VIA_P4M900: >+ case VIA_CX700: >+#ifdef XSERVER_LIBPCIACCESS >+ pci_device_cfg_read_u8(vgaDevice, &videoRam, 0xA1); >+#else >+ videoRam = pciReadByte(pciTag(0, 0, 3), 0xA1) & 0x70; >+#endif >+ pScrn->videoRam = (1 << ((videoRam & 0x70) >> 4)) << 12; >+ break; >+ default: >+ if (pScrn->videoRam < 16384 || pScrn->videoRam > 65536) { >+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, >+ "Using old memory-detection method.\n"); >+ bMemSize = hwp->readSeq(hwp, 0x39); >+ if (bMemSize > 16 && bMemSize <= 128) >+ pScrn->videoRam = (bMemSize + 1) << 9; >+ else if (bMemSize > 0 && bMemSize < 31) >+ pScrn->videoRam = bMemSize << 12; >+ else { >+ from = X_DEFAULT; >+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, >+ "Memory size detection failed: using 16 MB.\n"); >+ pScrn->videoRam = 16 << 10; >+ } >+ } else { >+ from = X_DEFAULT; >+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, >+ "No memory-detection done. Use VideoRAM option.\n"); >+ } > } > > /* Split FB for SAMM */ >@@ -1774,25 +1941,67 @@ > { > VIAPtr pVia = VIAPTR(pScrn); > >+#ifdef XSERVER_LIBPCIACCESS >+ int err; >+#endif >+ > DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAMapMMIO\n")); > >+#ifdef XSERVER_LIBPCIACCESS >+ pVia->FrameBufferBase = pVia->PciInfo->regions[0].base_addr; >+ pVia->MmioBase = pVia->PciInfo->regions[1].base_addr; >+#else > pVia->FrameBufferBase = pVia->PciInfo->memBase[0]; > pVia->MmioBase = pVia->PciInfo->memBase[1]; >+#endif > > xf86DrvMsg(pScrn->scrnIndex, X_PROBED, > "mapping MMIO @ 0x%lx with size 0x%x\n", > pVia->MmioBase, VIA_MMIO_REGSIZE); > >+#ifdef XSERVER_LIBPCIACCESS >+ err = pci_device_map_range(pVia->PciInfo, >+ pVia->MmioBase, >+ VIA_MMIO_REGSIZE, >+ PCI_DEV_MAP_FLAG_WRITABLE, >+ (void **)&pVia->MapBase); >+ >+ if (err) { >+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, >+ "Unable to map mmio BAR. %s (%d)\n", strerror(err), err); >+ return FALSE; >+ } >+#else > pVia->MapBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_MMIO, pVia->PciTag, > pVia->MmioBase, VIA_MMIO_REGSIZE); >+ if (!pVia->MapBase) >+ return FALSE; >+#endif > > xf86DrvMsg(pScrn->scrnIndex, X_PROBED, > "mapping BitBlt MMIO @ 0x%lx with size 0x%x\n", > pVia->MmioBase + VIA_MMIO_BLTBASE, VIA_MMIO_BLTSIZE); > >+#ifdef XSERVER_LIBPCIACCESS >+ err = pci_device_map_range(pVia->PciInfo, >+ pVia->MmioBase + VIA_MMIO_BLTBASE, >+ VIA_MMIO_BLTSIZE, >+ (PCI_DEV_MAP_FLAG_WRITABLE >+ | PCI_DEV_MAP_FLAG_WRITE_COMBINE), >+ (void **)&pVia->BltBase); >+ >+ if (err) { >+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, >+ "Unable to map blt BAR. %s (%d)\n", strerror(err), err); >+ return FALSE; >+ } >+#else > pVia->BltBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_MMIO, pVia->PciTag, > pVia->MmioBase + VIA_MMIO_BLTBASE, > VIA_MMIO_BLTSIZE); >+ if (!pVia->BltBase) >+ return FALSE; >+#endif > > if (!pVia->MapBase || !pVia->BltBase) { > xf86DrvMsg(pScrn->scrnIndex, X_ERROR, >@@ -1838,6 +2047,10 @@ > { > VIAPtr pVia = VIAPTR(pScrn); > >+#ifdef XSERVER_LIBPCIACCESS >+ int err; >+#endif >+ > DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAMapFB\n")); > xf86DrvMsg(pScrn->scrnIndex, X_PROBED, > "mapping framebuffer @ 0x%lx with size 0x%lx\n", >@@ -1845,6 +2058,17 @@ > > if (pVia->videoRambytes) { > >+#ifdef XSERVER_LIBPCIACCESS >+ err = pci_device_map_range(pVia->PciInfo, pVia->FrameBufferBase, >+ pVia->videoRambytes, >+ PCI_DEV_MAP_FLAG_WRITABLE, >+ (void **)&pVia->FBBase); >+ if (err) { >+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, >+ "Unable to map mmio BAR. %s (%d)\n", strerror(err), err); >+ return FALSE; >+ } >+#else > pVia->FBBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER, > pVia->PciTag, pVia->FrameBufferBase, > pVia->videoRambytes); >@@ -1854,6 +2078,7 @@ > "Internal error: could not map framebuffer\n"); > return FALSE; > } >+#endif > > pVia->FBFreeStart = (pScrn->displayWidth * pScrn->bitsPerPixel >> 3) * > pScrn->virtualY; >@@ -1864,7 +2089,11 @@ > pVia->FBBase, pVia->FBFreeStart, pVia->FBFreeEnd); > } > >+#ifdef XSERVER_LIBPCIACCESS >+ pScrn->memPhysBase = pVia->PciInfo->regions[0].base_addr; >+#else > pScrn->memPhysBase = pVia->PciInfo->memBase[0]; >+#endif > pScrn->fbOffset = 0; > if(pVia->IsSecondary) pScrn->fbOffset = pScrn->videoRam << 10; > >@@ -1882,14 +2111,31 @@ > /* Disable MMIO */ > ViaSeqMask(VGAHWPTR(pScrn), 0x1A, 0x00, 0x60); > >+#ifdef XSERVER_LIBPCIACCESS >+ if (pVia->MapBase) >+ pci_device_unmap_range(pVia->PciInfo, (pointer) pVia->MapBase, >+ VIA_MMIO_REGSIZE); >+ >+ if (pVia->BltBase) >+ pci_device_unmap_range(pVia->PciInfo, (pointer) pVia->BltBase, >+ VIA_MMIO_BLTSIZE); >+ >+ if (pVia->FBBase) >+ pci_device_unmap_range(pVia->PciInfo, (pointer) pVia->FBBase, >+ pVia->videoRambytes); >+#else > if (pVia->MapBase) >- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pVia->MapBase, VIA_MMIO_REGSIZE); >+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer) pVia->MapBase, >+ VIA_MMIO_REGSIZE); > > if (pVia->BltBase) >- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pVia->BltBase, VIA_MMIO_BLTSIZE); >+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer) pVia->BltBase, >+ VIA_MMIO_BLTSIZE); > > if (pVia->FBBase) >- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pVia->FBBase, pVia->videoRambytes); >+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer) pVia->FBBase, >+ pVia->videoRambytes); >+#endif > } > > /* >diff -Naur xf86-video-via-0.2.2/src/via_driver.h xf86-video-via-0.2.2-r1/src/via_driver.h >--- src/via_driver.h 2006-10-11 22:28:51.000000000 +0000 >+++ src/via_driver.h 2008-10-26 07:04:17.000000000 +0000 >@@ -57,6 +57,12 @@ > #include "via_dmabuffer.h" > #include "via_3d.h" > >+/* Adapt to libpciaccess */ >+#include "xorg-server.h" >+#ifdef XSERVER_LIBPCIACCESS >+#include <pciaccess.h> >+#endif >+ > #ifdef XF86DRI > #define _XF86DRI_SERVER_ > #include "sarea.h" >@@ -213,8 +219,18 @@ > int rotate; > > CloseScreenProcPtr CloseScreen; >+ >+ /* Adapt to libpciaccess */ >+#ifdef XSERVER_LIBPCIACCESS >+ struct pci_device* PciInfo; >+ int mmio_bar; >+ int fb_bar; >+ int gtt_bar; >+#else > pciVideoPtr PciInfo; > PCITAG PciTag; >+#endif >+ > int Chipset; > int ChipId; > int ChipRev; >@@ -438,4 +454,21 @@ > Bool VIADRIRingBufferInit(ScrnInfoPtr pScrn); > #endif /* XF86DRI */ > >+/* Macros allowing libpciaccess usage */ >+#ifdef XSERVER_LIBPCIACCESS >+#define I810_MEMBASE(p,n) (p)->regions[(n)].base_addr >+#define VENDOR_ID(p) (p)->vendor_id >+#define DEVICE_ID(p) (p)->device_id >+#define SUBVENDOR_ID(p) (p)->subvendor_id >+#define SUBSYS_ID(p) (p)->subdevice_id >+#define CHIP_REVISION(p) (p)->revision >+#else >+#define I810_MEMBASE(p,n) (p)->memBase[n] >+#define VENDOR_ID(p) (p)->vendor >+#define DEVICE_ID(p) (p)->chipType >+#define SUBVENDOR_ID(p) (p)->subsysVendor >+#define SUBSYS_ID(p) (p)->subsysCard >+#define CHIP_REVISION(p) (p)->chipRev >+#endif /* XSERVER_LIBPCIACCESS */ >+ > #endif /* _VIA_DRIVER_H_ */ >diff -Naur xf86-video-via-0.2.2/src/via_id.c xf86-video-via-0.2.2-r1/src/via_id.c >--- src/via_id.c 2006-10-11 22:28:51.000000000 +0000 >+++ src/via_id.c 2008-10-26 08:52:42.000000000 +0000 >@@ -87,48 +87,56 @@ > * > */ > static struct ViaCardIdStruct ViaCardId[] = { >- /* CLE266 */ >+ /*** CLE266 ***/ >+ {"ECS CLE266 (1.0)", VIA_CLE266, 0x1019, 0x1B43, VIA_DEVICE_CRT | VIA_DEVICE_TV}, > {"LT21 VA28", VIA_CLE266, 0x1019, 0x1B44, VIA_DEVICE_CRT}, > {"ECS G320", VIA_CLE266, 0x1019, 0xB320, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"Asustek Terminator C3V", VIA_CLE266, 0x1043, 0x8155, VIA_DEVICE_CRT}, > {"VIA VT3122 (CLE266)-EPIA M/MII/...", VIA_CLE266, 0x1106, 0x3122, VIA_DEVICE_CRT | VIA_DEVICE_TV}, >- /* KM400 */ >+ {"MSI MS-6723", VIA_CLE266, 0x1462, 0X7238, VIA_DEVICE_CRT | VIA_DEVICE_TV}, >+ {"Clevo T200V", VIA_CLE266, 0x1558, 0x200A, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Biostar ARKplus III", VIA_CLE266, 0x1565, 0x3204, VIA_DEVICE_CRT | VIA_DEVICE_TV}, /* FS454 TV encoder */ >+ >+ /*** KM400, KM400A, KN400, P4M800 ***/ > {"ECS KM400-M2", VIA_KM400, 0x1019, 0x1842, VIA_DEVICE_CRT}, > {"Acer Aspire 135x", VIA_KM400, 0x1025, 0x0033, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, > {"Asustek A7V8X-MX", VIA_KM400, 0x1043, 0x80ED, VIA_DEVICE_CRT}, > {"Asustek A7V8X-LA", VIA_KM400, 0x1043, 0x80F9, VIA_DEVICE_CRT}, >- {"Asustek A7V8X-MX SE/A7V400-MX", VIA_KM400, 0x1043, 0x8118, VIA_DEVICE_CRT}, >+ {"Asustek A7V8X-MX SE / A7V400-MX", VIA_KM400, 0x1043, 0x8118, VIA_DEVICE_CRT}, > {"Asustek Terminator A7VT", VIA_KM400, 0x1043, 0x813E, VIA_DEVICE_CRT | VIA_DEVICE_TV}, >- {"Mitac 8375X", VIA_KM400, 0x1071, 0x8375, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka UMAX 585T */ >+ {"Mitac 8375X", VIA_KM400, 0x1071, 0x8375, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "UMAX 585T" */ > {"Soltek SL-75MIV2", VIA_KM400, 0x1106, 0x0000, VIA_DEVICE_CRT}, /* VIA/0x0000 */ > {"VIA VT3205 (KM400)", VIA_KM400, 0x1106, 0x3205, VIA_DEVICE_CRT | VIA_DEVICE_TV}, /* borrowed by Soltek SL-B7C-FGR */ > {"VIA VT7205 (KM400A)", VIA_KM400, 0x1106, 0x7205, VIA_DEVICE_CRT}, /* borrowed by Biostar iDEQ 200V/Chaintech 7VIF4 */ > {"Shuttle FX43", VIA_KM400, 0x1297, 0xF643, VIA_DEVICE_CRT | VIA_DEVICE_TV}, >- {"Giga-byte 7VM400(A)M", VIA_KM400, 0x1458, 0xD000, VIA_DEVICE_CRT}, /* 7VM400M, GA-7VM400AM */ >+ {"Giga-byte 7VM400(A)M", VIA_KM400, 0x1458, 0xD000, VIA_DEVICE_CRT}, > {"MSI KM4(A)M-V", VIA_KM400, 0x1462, 0x7061, VIA_DEVICE_CRT}, /* aka "DFI KM400-MLV" */ > {"MSI PM8M2-V", VIA_KM400, 0x1462, 0x7071, VIA_DEVICE_CRT}, > {"MSI KM4(A)M-L", VIA_KM400, 0x1462, 0x7348, VIA_DEVICE_CRT}, >- {"MSI PM8M2-V", VIA_KM400, 0x1462, 0x7071, VIA_DEVICE_CRT}, > {"Abit VA-10 (1)", VIA_KM400, 0x147B, 0x140B, VIA_DEVICE_CRT}, > {"Abit VA-10 (2)", VIA_KM400, 0x147B, 0x140C, VIA_DEVICE_CRT}, > {"Abit VA-20", VIA_KM400, 0x147B, 0x1411, VIA_DEVICE_CRT}, > {"Averatec 322x", VIA_KM400, 0x14FF, 0x030D, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"FIC K7M-400A", VIA_KM400, 0x1509, 0x9233, VIA_DEVICE_CRT}, >+ {"Biostar M7VIZ", VIA_KM400, 0x1565, 0x1200, VIA_DEVICE_CRT}, > {"Biostar P4M800-M7", VIA_KM400, 0x1565, 0x1202, VIA_DEVICE_CRT}, >- {"Uniwill 755CI", VIA_KM400, 0x1584, 0x800A, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "Gericom hummer advance", "Maxdata M-Book 1200X" */ >+ {"Uniwill 755CI", VIA_KM400, 0x1584, 0x800A, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "Gericom Hummer Advance", "Maxdata M-Book 1200X" */ > {"Packard Bell Quasar2 (MSI MS6786)", VIA_KM400, 0x1631, 0xD002, VIA_DEVICE_CRT}, > {"Epox EP-8KMM3I", VIA_KM400, 0x1695, 0x9023, VIA_DEVICE_CRT}, > {"ASRock Inc. K7VM2/3/4", VIA_KM400, 0x1849, 0x7205, VIA_DEVICE_CRT}, >- {"ACorp KM400QP", VIA_KM400, 0x1915, 0x1100, VIA_DEVICE_CRT| VIA_DEVICE_TV}, >+ {"ACorp KM400QP", VIA_KM400, 0x1915, 0x1100, VIA_DEVICE_CRT | VIA_DEVICE_TV}, >+ {"Mercury P4VM800M7 (1.0)", VIA_KM400, 0x3344, 0x1122, VIA_DEVICE_CRT}, > {"Soyo K7VME", VIA_KM400, 0xA723, 0x10FD, VIA_DEVICE_CRT}, >- /* K8M800 */ >+ >+ /*** K8M800, K8N800, K8N800A ***/ > {"ZX-5360", VIA_K8M800, 0x1019, 0x0F60, VIA_DEVICE_CRT | VIA_DEVICE_LCD }, >- {"ECS K8M800-M2", VIA_K8M800, 0x1019, 0x1828, VIA_DEVICE_CRT}, >+ {"ECS K8M800-M2 (1.0)", VIA_K8M800, 0x1019, 0x1828, VIA_DEVICE_CRT}, >+ {"ECS K8M800-M2 (2.0)", VIA_K8M800, 0x1019, 0x1B45, VIA_DEVICE_CRT}, > {"Acer Aspire 136x", VIA_K8M800, 0x1025, 0x006E, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, > {"Asustek K8V-MX", VIA_K8M800, 0x1043, 0x8129, VIA_DEVICE_CRT}, >- {"Mitac 8399", VIA_K8M800, 0x1071, 0x8399, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "pogolinux konabook 3100" */ >+ {"Mitac 8399", VIA_K8M800, 0x1071, 0x8399, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "Pogolinux Konabook 3100" */ > {"Mitac 8889", VIA_K8M800, 0x1071, 0x8889, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, >- {"PCChips M861G", VIA_K8M800, 0x1106, 0x0204, VIA_DEVICE_CRT}, >+ {"MSI K8M Neo-V (broken pci id)", VIA_K8M800, 0x1106, 0x0204, VIA_DEVICE_CRT}, > {"VIA VT3108 (K8M800)", VIA_K8M800, 0x1106, 0x3108, VIA_DEVICE_CRT}, /* borrowed by Asustek A8V-MX */ > {"Shuttle FX21", VIA_K8M800, 0x1297, 0x3052, VIA_DEVICE_CRT}, > {"Shuttle FX83", VIA_K8M800, 0x1297, 0xF683, VIA_DEVICE_CRT | VIA_DEVICE_TV}, >@@ -137,6 +145,7 @@ > {"MSI K8M Neo-V", VIA_K8M800, 0x1462, 0x0320, VIA_DEVICE_CRT}, > {"MSI K8MM-V", VIA_K8M800, 0x1462, 0x7142, VIA_DEVICE_CRT}, > {"MSI K8MM3-V", VIA_K8M800, 0x1462, 0x7181, VIA_DEVICE_CRT}, >+ {"MSI K9MM-V", VIA_K8M800, 0x1462, 0x7312, VIA_DEVICE_CRT}, > {"MSI K8MM-ILSR", VIA_K8M800, 0x1462, 0x7410, VIA_DEVICE_CRT}, > {"Abit KV-80", VIA_K8M800, 0x147B, 0x1419, VIA_DEVICE_CRT}, > {"Abit KV-81", VIA_K8M800, 0x147B, 0x141A, VIA_DEVICE_CRT}, >@@ -145,31 +154,113 @@ > {"Averatec 3715", VIA_K8M800, 0x14FF, 0x0322, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"Averatec 54xx", VIA_K8M800, 0x1509, 0x3930, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"FIC K8M-800M", VIA_K8M800, 0x1509, 0x6001, VIA_DEVICE_CRT}, >+ {"Clevo L570W", VIA_K8M800, 0x1558, 0x0570, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Mesh Pegasus", VIA_K8M800, 0x1558, 0x4702, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"Biostar K8VGA-M", VIA_K8M800, 0x1565, 0x1203, VIA_DEVICE_CRT}, > {"DFI K8M800-MLVF", VIA_K8M800, 0x15BD, 0x1002, VIA_DEVICE_CRT}, > {"Packard Bell Easynote E6116/E63xx", VIA_K8M800, 0x1631, 0xC008, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, > {"Packard Bell Easynote B3 800/B3340", VIA_K8M800, 0x1631, 0xC009, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Packard Bell Imedia 2097", VIA_K8M800, 0x1631, 0xD007, VIA_DEVICE_CRT}, >+ {"Fujitsu-Siemens Amilo K7610", VIA_K8M800, 0x1734, 0x10B3, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"ASRock K8Upgrade-VM800", VIA_K8M800, 0x1849, 0x3108, VIA_DEVICE_CRT}, >- /* PM800 */ >+ >+ /*** PM800, PM880, PN800, CN400 ***/ > {"VIA VT3118 (PM800)", VIA_PM800, 0x1106, 0x3118, VIA_DEVICE_CRT}, /* borrowed by ECS PM800-M2 */ >+ {"Hasee F700C", VIA_PM800, 0x1071, 0x8650, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"Mitac 8666", VIA_PM800, 0x1071, 0x8666, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, > {"Medion MIM2080", VIA_PM800, 0x1071, 0x8965, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, >+ {"TwinHead E12BL", VIA_PM800, 0x14FF, 0x0314, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"MaxSelect Optima C4", VIA_PM800, 0x1558, 0x5402, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"Biostar P4VMA-M", VIA_PM800, 0x1565, 0x1202, VIA_DEVICE_CRT}, >+ {"Sotec WA2330S5", VIA_PM800, 0x161F, 0x2037, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, > {"Packard Bell Easynote R1100", VIA_PM800, 0x1631, 0xC015, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"Fujitsu/Siemens Amilo Pro V2010", VIA_PM800, 0x1734, 0x1078, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, >+ {"Fujitsu/Siemens Amilo L7310", VIA_PM800, 0x1734, 0x10AB, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"ASRock P4VM8", VIA_PM800, 0x1849, 0x3118, VIA_DEVICE_CRT}, > {"Chaintech MPM800-3", VIA_PM800, 0x270F, 0x7671, VIA_DEVICE_CRT}, >- {"MaxSelect Optima C4", VIA_PM800, 0x1558, 0x5402, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >- /* VN800 */ >+ {"KamLAB KINO-LUKE-533-R20", VIA_PM800, 0x3344, 0x1122, VIA_DEVICE_CRT}, >+ >+ /*** P4M800Pro, VN800, CN700 ***/ >+ {"Clevo/RoverBook Partner E419L", VIA_VM800, 0x1019, 0x0F75, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"PCChips P23G", VIA_VM800, 0x1019, 0x1623, VIA_DEVICE_CRT}, >+ {"ECS P4M800PRO-M", VIA_VM800, 0x1019, 0x2122, VIA_DEVICE_CRT}, >+ {"ECS C7VCM", VIA_VM800, 0x1019, 0xAA2D, VIA_DEVICE_CRT}, >+ {"PCChips V21G", VIA_VM800, 0x1019, 0xAA51, VIA_DEVICE_CRT}, >+ {"Asustek P5VDC-MX", VIA_VM800, 0x1043, 0x3344, VIA_DEVICE_CRT}, >+ {"Asustek P5VDC-TVM", VIA_VM800, 0x1043, 0x81CE, VIA_DEVICE_CRT}, > {"Gateway MX3210", VIA_VM800, 0x107B, 0x0216, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"VIA VT3344 (VM800) - EPIA EN", VIA_VM800, 0x1106, 0x3344, VIA_DEVICE_CRT | VIA_DEVICE_TV}, > {"Gigabyte GA-8VM800M-775", VIA_VM800, 0x1458, 0xD000, VIA_DEVICE_CRT}, > {"MSI PM8M-V", VIA_VM800, 0x1462, 0x7104, VIA_DEVICE_CRT}, >+ {"MSI Fuzzy CN700/CN700T/CN700G", VIA_VM800, 0x1462, 0x7199, VIA_DEVICE_CRT | VIA_DEVICE_TV}, >+ {"MSI PM8M3-V", VIA_VM800, 0x1462, 0x7211, VIA_DEVICE_CRT}, > {"MSI PM8PM", VIA_VM800, 0x1462, 0x7222, VIA_DEVICE_CRT}, >- {"Biostar P4M80-M4", VIA_VM800, 0x1565, 0x1202, VIA_DEVICE_CRT}, >+ {"RoverBook Partner W500", VIA_VM800, 0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Clevo/RoverBook Voyager V511L", VIA_VM800, 0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Clevo M5xxS", VIA_VM800, 0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Biostar P4M80-M4 / P4VMA-M", VIA_VM800, 0x1565, 0x1202, VIA_DEVICE_CRT}, >+ {"Biostar P4M800 Pro-M7", VIA_VM800, 0x1565, 0x1206, VIA_DEVICE_CRT}, > {"Fujitsu/Siemens Amilo Pro V2030", VIA_VM800, 0x1734, 0x109B, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Fujitsu/Siemens Amilo Pro V2035", VIA_VM800, 0x1734, 0x10AE, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Fujitsu/Siemens Amilo Pro V2055", VIA_VM800, 0x1734, 0x10CA, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Fujitsu/Siemens Amilo L7320", VIA_VM800, 0x1734, 0x10CD, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, > {"ASRock P4VM800", VIA_VM800, 0x1849, 0x3344, VIA_DEVICE_CRT}, > {"Asustek P5V800-MX", VIA_VM800, 0x3344, 0x1122, VIA_DEVICE_CRT}, >+ >+ /*** K8M890 ***/ >+ {"IBM AnyPlace Kiosk 3xx", VIA_K8M890, 0x1106, 0x3230, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Asustek A8V-VM", VIA_K8M890, 0x1043, 0x81B5, VIA_DEVICE_CRT}, >+ {"Asustek M2V-MX SE", VIA_K8M890, 0x1043, 0x8297, VIA_DEVICE_CRT}, >+ {"Foxconn K8M890M2MA-RS2H", VIA_K8M890, 0x105B, 0x0C84, VIA_DEVICE_CRT}, >+ {"Shuttle FX22V1", VIA_K8M890, 0x1297, 0x3080, VIA_DEVICE_CRT}, >+ {"MSI K9VGM-V", VIA_K8M890, 0x1462, 0x7253, VIA_DEVICE_CRT}, >+ {"Averatec 226x", VIA_K8M890, 0x14FF, 0xA002, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Fujitsu/Siemens Amilo La 1703", VIA_K8M890, 0x1734, 0x10D9, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ >+ /*** P4M900, VN896, CN896 ***/ >+ {"VIA Epia SN", VIA_P4M900, 0x0908, 0x1975, VIA_DEVICE_CRT}, >+ {"Hewlett Packard 2133 Mini-Note", VIA_P4M900, 0x103C, 0x3030, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Asustek P5VD2-VM", VIA_P4M900, 0x1043, 0x81CE, VIA_DEVICE_CRT}, >+ {"Asustek P5VD2-VM SE", VIA_P4M900, 0x1043, 0x8252, VIA_DEVICE_CRT}, >+ {"Foxconn P4M9007MB-8RS2H", VIA_P4M900, 0x105B, 0x0C87, VIA_DEVICE_CRT}, >+ {"Mitac 8515", VIA_P4M900, 0x1071, 0x8515, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Medion Notebook MD96483", VIA_P4M900, 0x1071, 0x8615, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Mitac 8624", VIA_P4M900, 0x1071, 0x8624, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"VIA VT3364 (P4M900)", VIA_P4M900, 0x1106, 0x3371, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Gigabyte GA-VM900M", VIA_P4M900, 0x1458, 0xD000, VIA_DEVICE_CRT}, >+ {"MSI VR321", VIA_P4M900, 0x1462, 0x3355, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"MSI P4M900M / P4M900M2-F/L", VIA_P4M900, 0x1462, 0x7255, VIA_DEVICE_CRT}, >+ {"Everex NC1501/NC1503", VIA_P4M900, 0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Clevo M660SE", VIA_P4M900, 0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Clevo M660SR", VIA_P4M900, 0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Neo Endura 540SLe", VIA_P4M900, 0x1558, 0x5408, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Clevo M54xSR", VIA_P4M900, 0x1558, 0x5409, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Biostar P4M900M-M7 SE", VIA_P4M900, 0x1565, 0x1207, VIA_DEVICE_CRT}, >+ {"Fujitsu/Siemens Amilo Pro V3515", VIA_P4M900, 0x1734, 0x10CB, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Fujitsu/Siemens Amilo Li1705", VIA_P4M900, 0x1734, 0x10F7, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"ASRock P4VM900-SATA2", VIA_P4M900, 0x1849, 0x3371, VIA_DEVICE_CRT}, >+ >+ /*** CX700 ***/ >+ {"VIA VT8454B", VIA_CX700, 0x0908, 0x1975, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* Evaluation board, reference possibly wrong */ >+ {"VIA VT3324 (CX700)", VIA_CX700, 0x1106, 0x3157, VIA_DEVICE_CRT}, >+ {"MSI Fuzzy CX700/CX700D", VIA_CX700, 0x1462, 0x8020, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, >+ {"Samsung Q1B", VIA_CX700, 0x144D, 0xC02C, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"FIC CE260", VIA_CX700, 0x1509, 0x2D30, VIA_DEVICE_LCD}, >+ {"FIC CE261", VIA_CX700, 0x1509, 0x2F07, VIA_DEVICE_LCD}, >+ {"Gigabyte M704 / RoverPC A700GQ", VIA_CX700, 0x161F, 0x2060, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"Packard Bell EasyNote XS", VIA_CX700, 0x1631, 0xC201, VIA_DEVICE_LCD}, /* aka Everex Cloudbook CE1200V */ >+ >+ /*** P4M890, VN890 ***/ >+ {"PCChips P29G", VIA_P4M890, 0x1019, 0x1629, VIA_DEVICE_CRT}, >+ {"PCChips ????", VIA_P4M890, 0x1019, 0x2174, VIA_DEVICE_CRT}, >+ {"Asustek P5V-VM ULTRA", VIA_P4M890, 0x1043, 0x81B5, VIA_DEVICE_CRT}, >+ {"Asustek P5V-VM DH", VIA_P4M890, 0x1043, 0x81CE, VIA_DEVICE_CRT}, >+ {"Mitac 8615", VIA_P4M890, 0x1071, 0x8615, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, >+ {"VIA VT3343 (P4M890)", VIA_P4M890, 0x1106, 0x3343, VIA_DEVICE_CRT}, >+ {"MSI P4M890M-L/IL (MS-7255)", VIA_P4M890, 0x1462, 0x7255, VIA_DEVICE_CRT}, >+ {"Biostar P4M890-M7 TE", VIA_P4M890, 0x1565, 0x1207, VIA_DEVICE_CRT}, >+ {"ASRock P4VM890", VIA_P4M890, 0x1849, 0x3343, VIA_DEVICE_CRT}, >+ > /* keep this */ > {NULL, VIA_UNKNOWN, 0x0000, 0x0000, VIA_DEVICE_NONE} > }; >@@ -209,15 +300,15 @@ > struct ViaCardIdStruct *Id; > VIAPtr pVia = VIAPTR(pScrn); > >- if ((pVia->PciInfo->subsysVendor == pVia->PciInfo->vendor) && >- (pVia->PciInfo->subsysCard == pVia->PciInfo->chipType)) >+ if ((SUBVENDOR_ID(pVia->PciInfo) == VENDOR_ID(pVia->PciInfo)) && >+ (SUBSYS_ID(pVia->PciInfo) == DEVICE_ID(pVia->PciInfo))) > xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Manufacturer plainly copied main PCI" > " ids to Subsystem/Card ids.\n"); > > for (Id = ViaCardId; Id->String; Id++) { > if ((Id->Chip == pVia->Chipset) && >- (Id->Vendor == pVia->PciInfo->subsysVendor) && >- (Id->Device == pVia->PciInfo->subsysCard)) { >+ (Id->Vendor == SUBVENDOR_ID(pVia->PciInfo)) && >+ (Id->Device == SUBSYS_ID(pVia->PciInfo))) { > xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Detected %s.\n", Id->String); > pVia->Id = Id; > return; >@@ -225,8 +316,8 @@ > } > > xf86DrvMsg(pScrn->scrnIndex, X_ERROR, >- "Unknown Card-Ids (%4X|%4X), report this to the driver maintainer ASAP\n" >- , pVia->PciInfo->subsysVendor, pVia->PciInfo->subsysCard); >+ "Unknown Card-Ids (%4X|%4X), report this to the driver maintainer ASAP\n", >+ DEVICE_ID(pVia->PciInfo), SUBVENDOR_ID(pVia->PciInfo), SUBSYS_ID(pVia->PciInfo)); > pVia->Id = NULL; > } > >diff -Naur xf86-video-via-0.2.2/src/via_id.h xf86-video-via-0.2.2-r1/src/via_id.h >--- src/via_id.h 2006-10-11 22:28:51.000000000 +0000 >+++ src/via_id.h 2008-10-26 08:44:21.000000000 +0000 >@@ -43,6 +43,10 @@ > VIA_K8M800, > VIA_PM800, > VIA_VM800, >+ VIA_K8M890, >+ VIA_P4M900, >+ VIA_CX700, >+ VIA_P4M890, > VIA_LAST > }; > >@@ -62,6 +66,10 @@ > #define PCI_CHIP_CLE3122 0x3122 /* CLE266 */ > #define PCI_CHIP_VT3205 0x7205 /* KM400 */ > #define PCI_CHIP_VT3314 0x3344 /* VM800 */ >+#define PCI_CHIP_VT3336 0x3230 /* K8M890 */ >+#define PCI_CHIP_VT3364 0x3371 /* P4M900 */ >+#define PCI_CHIP_VT3324 0x3157 /* CX700 */ >+#define PCI_CHIP_VT3327 0x3343 /* P4M890 */ > > /* > * There is also quite some conflicting information on the >diff -Naur xf86-video-via-0.2.2/src/xvmc/viaLowLevel.h xf86-video-via-0.2.2-r1/src/xvmc/viaLowLevel.h >--- src/xvmc/viaLowLevel.h 2006-10-11 22:28:51.000000000 +0000 >+++ src/xvmc/viaLowLevel.h 2008-10-18 21:11:59.000000000 +0000 >@@ -63,6 +63,15 @@ > #define VIA_SLICEIDLEVAL 0x00000200 > #define VIA_IDLEVAL 0x00000204 > >+/* Define uint32_t for <drm/drm.h> */ >+#if HAVE_INTTYPES_H >+# include <inttypes.h> >+#else >+# ifndef uint32_t >+# define uint32_t CARD32 >+# endif >+#endif >+ > #include "via_drm.h" > #include "viaXvMCPriv.h" >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 239075
:
166777
|
169088
| 169912 |
169913
|
180525