.gitignore | 70 ++++++++++++++++++++++++++++++++--- COPYING | 26 +++++++++---- ChangeLog | 48 ------------------------ Makefile.am | 11 +++++ configure.ac | 56 +++++++++++----------------- src/.gitignore | 6 --- src/Makefile.am | 3 + src/ark.h | 12 ++++-- src/ark_accel.c | 6 ++- src/ark_driver.c | 108 +++++++++++++++++++++++++++++++------------------------ 10 files changed, 192 insertions(+), 154 deletions(-)
New commits: commit da0262acee5ea37ea8c69ebadbf5e9e34d83b5f3 Author: Matt Turner <[email protected]> Date: Thu Feb 16 18:39:50 2012 -0500 Don't check for unneeded proto headers. Signed-off-by: Matt Turner <[email protected]> diff --git a/configure.ac b/configure.ac index f859488..8d3d470 100644 --- a/configure.ac +++ b/configure.ac @@ -53,8 +53,6 @@ AC_ARG_WITH(xorg-module-dir, [ --with-xorg-module-dir=DIR ], AC_SUBST(moduledir) # Store the list of server defined optional extensions in REQUIRED_MODULES -XORG_DRIVER_CHECK_EXT(RANDR, randrproto) -XORG_DRIVER_CHECK_EXT(RENDER, renderproto) XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) # Obtain compiler/linker options for the driver dependencies commit e7baf1df0bbc45e1cd697f5df959586ab27103f9 Author: Matt Turner <[email protected]> Date: Thu Jan 26 18:04:34 2012 -0500 xf86-video-ark 0.7.4 Signed-off-by: Matt Turner <[email protected]> diff --git a/configure.ac b/configure.ac index 0eb7121..f859488 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-ark], - [0.7.3], + [0.7.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/ark], [xf86-video-ark]) AC_CONFIG_SRCDIR([Makefile.am]) commit c2667fb882429f9393b0700a2befe6dde4523f02 Author: Matt Turner <[email protected]> Date: Thu Jan 26 18:03:16 2012 -0500 Change types of FBBase/MMIOBase to pointer, remove casts Signed-off-by: Matt Turner <[email protected]> diff --git a/src/ark.h b/src/ark.h index f1bdb35..7462876 100644 --- a/src/ark.h +++ b/src/ark.h @@ -39,8 +39,8 @@ typedef struct _ARKRec { #endif EntityInfoPtr pEnt; CARD32 IOAddress; - unsigned char * FBBase; - unsigned char * MMIOBase; + pointer FBBase; + pointer MMIOBase; unsigned long videoRam; OptionInfoPtr Options; unsigned int Flags; diff --git a/src/ark_driver.c b/src/ark_driver.c index 1f4589c..cda8cdc 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -1037,10 +1037,10 @@ static Bool ARKMapMem(ScrnInfoPtr pScrn) (void) pci_device_map_legacy(pARK->PciInfo, 0xb8000, 0x8000, PCI_DEV_MAP_FLAG_WRITABLE, - (void **)&pARK->MMIOBase); + &pARK->MMIOBase); { - void** result = (void**)&pARK->FBBase; + void** result = &pARK->FBBase; int err = pci_device_map_range(pARK->PciInfo, pARK->PciInfo->regions[0].base_addr, pScrn->videoRam * 1024, @@ -1074,7 +1074,7 @@ static void ARKUnmapMem(ScrnInfoPtr pScrn) vgaHWUnmapMem(pScrn); #ifndef XSERVER_LIBPCIACCESS - xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pARK->FBBase, + xf86UnMapVidMem(pScrn->scrnIndex, pARK->FBBase, pScrn->videoRam * 1024); #else pci_device_unmap_range(pARK->PciInfo, pARK->FBBase, pScrn->videoRam * 1024); commit 99ed41779e28bace7c3321a6d05e6436d4784c48 Author: Matt Turner <[email protected]> Date: Thu Jan 26 17:57:42 2012 -0500 Use pci_device_map_legacy rather than xf86MapDomainMemory Signed-off-by: Matt Turner <[email protected]> diff --git a/configure.ac b/configure.ac index cbd61e3..0eb7121 100644 --- a/configure.ac +++ b/configure.ac @@ -69,7 +69,7 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, CPPFLAGS="$SAVE_CPPFLAGS" if test "x$XSERVER_LIBPCIACCESS" = xyes; then - PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) + PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.12.901]) fi AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) diff --git a/src/ark_driver.c b/src/ark_driver.c index cf0242c..1f4589c 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -1035,8 +1035,9 @@ static Bool ARKMapMem(ScrnInfoPtr pScrn) pScrn->videoRam * 1024); #else - pARK->MMIOBase = xf86MapDomainMemory(pScrn->scrnIndex, VIDMEM_MMIO, - pARK->PciInfo, 0xb8000, 0x8000); + (void) pci_device_map_legacy(pARK->PciInfo, 0xb8000, 0x8000, + PCI_DEV_MAP_FLAG_WRITABLE, + (void **)&pARK->MMIOBase); { void** result = (void**)&pARK->FBBase; commit 5634e78e42d14ab2325854093a42536844cae07f Author: Matt Turner <[email protected]> Date: Thu Jan 26 17:44:36 2012 -0500 Fix typo in 5ab0bf04 Signed-off-by: Matt Turner <[email protected]> diff --git a/src/ark_driver.c b/src/ark_driver.c index 1c68b86..cf0242c 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -258,7 +258,7 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; hwp = VGAHWPTR(pScrn); - vgaHWASetStdFuncs(hwp); + vgaHWSetStdFuncs(hwp); vgaHWGetIOBase(hwp); pScrn->monitor = pScrn->confScreen->monitor; commit c043cc44316f655c9f267bd20d1ea3e3e2b2da91 Author: Matt Turner <[email protected]> Date: Thu Jan 26 17:32:12 2012 -0500 Use unsigned long rather than deprecated IOADDRESS Signed-off-by: Matt Turner <[email protected]> diff --git a/src/ark_accel.c b/src/ark_accel.c index 385a424..5ab75f0 100644 --- a/src/ark_accel.c +++ b/src/ark_accel.c @@ -46,7 +46,7 @@ static int curx, cury, cmd_flags; static void ARKSync(ScrnInfoPtr pScrn) { - IOADDRESS port = 0x3cb; + unsigned long port = 0x3cb; #if ABI_VIDEODRV_VERSION < 12 port += pScrn->domainIOBase + 0x3cb; #endif diff --git a/src/ark_driver.c b/src/ark_driver.c index a39b760..1c68b86 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -82,8 +82,8 @@ static void ARKLoadPalette(ScrnInfoPtr pScrn, int numColors, static void ARKWriteMode(ScrnInfoPtr pScrn, vgaRegPtr pVga, ARKRegPtr new); /* helpers */ -static unsigned char get_daccomm(IOADDRESS); -static unsigned char set_daccom(IOADDRESS, unsigned char comm); +static unsigned char get_daccomm(unsigned long); +static unsigned char set_daccom(unsigned long, unsigned char comm); _X_EXPORT DriverRec ARK = @@ -580,8 +580,8 @@ static void ARKSave(ScrnInfoPtr pScrn) ARKPtr pARK = ARKPTR(pScrn); ARKRegPtr save = &pARK->SavedRegs; vgaHWPtr hwp = VGAHWPTR(pScrn); - IOADDRESS isaIOBase = PIOOFFSET; - IOADDRESS vgaIOBase = isaIOBase + hwp->IOBase; + unsigned long isaIOBase = PIOOFFSET; + unsigned long vgaIOBase = isaIOBase + hwp->IOBase; vgaHWUnlock(hwp); vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_ALL); @@ -645,8 +645,8 @@ static Bool ARKModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) int multiplexing, dac16, modepitch; vgaHWPtr hwp = VGAHWPTR(pScrn); vgaRegPtr pVga = &hwp->ModeReg; - IOADDRESS isaIOBase = PIOOFFSET; - IOADDRESS vgaIOBase = isaIOBase + hwp->IOBase; + unsigned long isaIOBase = PIOOFFSET; + unsigned long vgaIOBase = isaIOBase + hwp->IOBase; unsigned char tmp; int offset; @@ -895,7 +895,7 @@ static void ARKAdjustFrame(int scrnIndex, int x, int y, int flags) ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ARKPtr pARK = ARKPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); - IOADDRESS vgaIOBase = PIOOFFSET + hwp->IOBase; + unsigned long vgaIOBase = PIOOFFSET + hwp->IOBase; int base; base = ((y * pScrn->displayWidth + x) * @@ -922,8 +922,8 @@ static void ARKWriteMode(ScrnInfoPtr pScrn, vgaRegPtr pVga, ARKRegPtr new) { ARKPtr pARK = ARKPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); - IOADDRESS isaIOBase = PIOOFFSET; - IOADDRESS vgaIOBase = isaIOBase + hwp->IOBase; + unsigned long isaIOBase = PIOOFFSET; + unsigned long vgaIOBase = isaIOBase + hwp->IOBase; vgaHWProtect(pScrn, TRUE); @@ -1119,7 +1119,7 @@ static void ARKLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indicies, LOCO *colors, VisualPtr pVisual) { - IOADDRESS isaIOBase = 0; + unsigned long isaIOBase = 0; #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 isaIOBase += pScrn->domainIOBase; #endif @@ -1145,7 +1145,7 @@ static void ARKFreeScreen(int scrnIndex, int flags) } -static unsigned char get_daccomm(IOADDRESS isaIOBase) +static unsigned char get_daccomm(unsigned long isaIOBase) { unsigned char tmp; @@ -1161,7 +1161,7 @@ static unsigned char get_daccomm(IOADDRESS isaIOBase) } -static unsigned char set_daccom(IOADDRESS isaIOBase, unsigned char comm) +static unsigned char set_daccom(unsigned long isaIOBase, unsigned char comm) { #if 0 outb(isaIOBase + 0x3c8, 0); commit 1cac2174beb340f9a8b868818a5261b80435d3eb Author: Matt Turner <[email protected]> Date: Thu Jan 26 17:31:26 2012 -0500 Remove uses of xf86PciInfo.h Signed-off-by: Matt Turner <[email protected]> diff --git a/src/ark.h b/src/ark.h index 077f93b..f1bdb35 100644 --- a/src/ark.h +++ b/src/ark.h @@ -7,10 +7,15 @@ #include "xf86.h" #include "xf86Pci.h" -#include "xf86PciInfo.h" #include "xaa.h" #include "vgaHW.h" +#define PCI_VENDOR_ARK 0xEDD8 +#define PCI_CHIP_1000PV 0xA091 +#define PCI_CHIP_2000PV 0xA099 +#define PCI_CHIP_2000MT 0xA0A1 +#define PCI_CHIP_2000MI 0xA0A9 + typedef struct _ARKRegRec { unsigned char sr10, sr11, sr12, sr13, sr14, sr15, sr16, sr17, sr18, sr20, diff --git a/src/ark_accel.c b/src/ark_accel.c index fb6aff9..385a424 100644 --- a/src/ark_accel.c +++ b/src/ark_accel.c @@ -35,7 +35,6 @@ #include "xf86.h" #include "xf86_OSproc.h" #include "xaa.h" -#include "xf86PciInfo.h" #include "compiler.h" #include "ark.h" diff --git a/src/ark_driver.c b/src/ark_driver.c index caad4c8..a39b760 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -34,7 +34,6 @@ #include "xf86.h" #include "xf86_OSproc.h" #include "xf86Pci.h" -#include "xf86PciInfo.h" #include "xf86fbman.h" #include "xf86cmap.h" #include "compiler.h" commit bd0aa75692cc421bfeada64239fc381c40bc2ec9 Author: Matt Turner <[email protected]> Date: Thu Jan 26 17:19:36 2012 -0500 Add &component=Driver/ark to Bugzilla link Signed-off-by: Matt Turner <[email protected]> diff --git a/configure.ac b/configure.ac index 2142ab6..cbd61e3 100644 --- a/configure.ac +++ b/configure.ac @@ -24,7 +24,7 @@ AC_PREREQ([2.60]) AC_INIT([xf86-video-ark], [0.7.3], - [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], + [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/ark], [xf86-video-ark]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) commit 97a1aa4b460e6ffda16704954012063c094d770b Author: Matt Turner <[email protected]> Date: Mon Sep 26 22:48:08 2011 -0400 Remove if(E != NULL) checks around free(E) Signed-off-by: Matt Turner <[email protected]> diff --git a/src/ark_driver.c b/src/ark_driver.c index 87d2754..caad4c8 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -171,9 +171,6 @@ static Bool ARKGetRec(ScrnInfoPtr pScrn) static void ARKFreeRec(ScrnInfoPtr pScrn) { - if (!pScrn->driverPrivate) - return; - free(pScrn->driverPrivate); pScrn->driverPrivate = NULL; } commit 70321db733c380a3b5f2198d733d75916f54c10b Author: Matt Turner <[email protected]> Date: Mon Sep 26 22:46:51 2011 -0400 Remove xalloc/xcalloc/xrealloc/xfree Signed-off-by: Matt Turner <[email protected]> diff --git a/src/ark_driver.c b/src/ark_driver.c index e8d320c..87d2754 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -174,7 +174,7 @@ static void ARKFreeRec(ScrnInfoPtr pScrn) if (!pScrn->driverPrivate) return; - xfree(pScrn->driverPrivate); + free(pScrn->driverPrivate); pScrn->driverPrivate = NULL; } @@ -208,7 +208,7 @@ static Bool ARKProbe(DriverPtr drv, int flags) devSections, numDevSections, drv, &usedChips); - xfree(devSections); + free(devSections); if (numUsed <= 0) return FALSE; @@ -235,7 +235,7 @@ static Bool ARKProbe(DriverPtr drv, int flags) foundScreen = TRUE; } - xfree(usedChips); + free(usedChips); return foundScreen; } @@ -306,7 +306,7 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) pARK = ARKPTR(pScrn); xf86CollectOptions(pScrn, NULL); - if (!(pARK->Options = xalloc(sizeof(ARKOptions)))) + if (!(pARK->Options = malloc(sizeof(ARKOptions)))) return FALSE; memcpy(pARK->Options, ARKOptions, sizeof(ARKOptions)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pARK->Options); @@ -355,7 +355,7 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) pARK->ChipRev = pARK->PciInfo->revision; #endif } - xfree(pEnt); + free(pEnt); xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Chipset: \"%s\"\n", pScrn->chipset); commit 5ab0bf04c400f3d7d97c931b5d9e1f0318cc6f59 Author: Adam Jackson <[email protected]> Date: Mon Dec 19 17:44:49 2011 -0500 Fix for new vgaHW ABI Signed-off-by: Adam Jackson <[email protected]> diff --git a/src/ark_driver.c b/src/ark_driver.c index 5fe648e..e8d320c 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -262,6 +262,7 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; hwp = VGAHWPTR(pScrn); + vgaHWASetStdFuncs(hwp); vgaHWGetIOBase(hwp); pScrn->monitor = pScrn->confScreen->monitor; commit 075a675e424cc2fbf7ab65e086b111ecfca7105f Author: Adam Jackson <[email protected]> Date: Mon Dec 19 16:11:53 2011 -0500 Make failure to XAA non-fatal No shadowfb support in this driver yet. Signed-off-by: Adam Jackson <[email protected]> diff --git a/src/ark_driver.c b/src/ark_driver.c index b40200c..5fe648e 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -471,8 +471,9 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) if (!pARK->NoAccel) { if (!xf86LoadSubModule(pScrn, "xaa")) { - ARKFreeRec(pScrn); - return FALSE; + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "XAA not available\n"); + pARK->NoAccel = 1; } } commit d9492762b862aa02392a011ed70e38e77e33ee40 Author: Adam Jackson <[email protected]> Date: Thu Nov 17 16:22:16 2011 -0500 Adapt to videoabi 12 Signed-off-by: Adam Jackson <[email protected]> diff --git a/src/ark_accel.c b/src/ark_accel.c index 8963e16..fb6aff9 100644 --- a/src/ark_accel.c +++ b/src/ark_accel.c @@ -47,7 +47,10 @@ static int curx, cury, cmd_flags; static void ARKSync(ScrnInfoPtr pScrn) { - IOADDRESS port = pScrn->domainIOBase + 0x3cb; + IOADDRESS port = 0x3cb; +#if ABI_VIDEODRV_VERSION < 12 + port += pScrn->domainIOBase + 0x3cb; +#endif for (;;) { if (!(inb(port) & 0x40)) diff --git a/src/ark_driver.c b/src/ark_driver.c index fec3e1a..b40200c 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -49,6 +49,12 @@ #include "xf86Resources.h" #endif +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 +#define PIOOFFSET hwp->PIOOffset +#else +#define PIOOFFSET 0 +#endif + #include <string.h> /* @@ -358,10 +364,10 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) #endif /* unlock CRTC[0-7] */ - outb(hwp->PIOOffset + hwp->IOBase + 4, 0x11); - tmp = inb(hwp->PIOOffset + hwp->IOBase + 5); - outb(hwp->PIOOffset + hwp->IOBase + 5, tmp & 0x7f); - modinx(hwp->PIOOffset + 0x3c4, 0x1d, 0x01, 0x01); + outb(PIOOFFSET + hwp->IOBase + 4, 0x11); + tmp = inb(PIOOFFSET + hwp->IOBase + 5); + outb(PIOOFFSET + hwp->IOBase + 5, tmp & 0x7f); + modinx(PIOOFFSET + 0x3c4, 0x1d, 0x01, 0x01); #ifndef XSERVER_LIBPCIACCESS pScrn->memPhysBase = pARK->PciInfo->memBase[0]; @@ -378,7 +384,7 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) if (!pScrn->videoRam) { unsigned char sr10; - sr10 = rdinx(hwp->PIOOffset + 0x3c4, 0x10); + sr10 = rdinx(PIOOFFSET + 0x3c4, 0x10); if (pARK->Chipset == PCI_CHIP_1000PV) { if ((sr10 & 0x40) == 0) pScrn->videoRam = 1024; @@ -403,9 +409,9 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) { int man_id, dev_id; - inb(hwp->PIOOffset + 0x3c6); /* skip cmd register */ - man_id = inb(hwp->PIOOffset + 0x3c6); /* manufacturer id */ - dev_id = inb(hwp->PIOOffset + 0x3c6); /* device id */ + inb(PIOOFFSET + 0x3c6); /* skip cmd register */ + man_id = inb(PIOOFFSET + 0x3c6); /* manufacturer id */ + dev_id = inb(PIOOFFSET + 0x3c6); /* device id */ if (man_id == 0x84 && dev_id == 0x98) { pARK->ramdac = ZOOMDAC; pARK->dac_width = 16; @@ -576,7 +582,7 @@ static void ARKSave(ScrnInfoPtr pScrn) ARKPtr pARK = ARKPTR(pScrn); ARKRegPtr save = &pARK->SavedRegs; vgaHWPtr hwp = VGAHWPTR(pScrn); - IOADDRESS isaIOBase = hwp->PIOOffset; + IOADDRESS isaIOBase = PIOOFFSET; IOADDRESS vgaIOBase = isaIOBase + hwp->IOBase; vgaHWUnlock(hwp); @@ -641,7 +647,7 @@ static Bool ARKModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) int multiplexing, dac16, modepitch; vgaHWPtr hwp = VGAHWPTR(pScrn); vgaRegPtr pVga = &hwp->ModeReg; - IOADDRESS isaIOBase = hwp->PIOOffset; + IOADDRESS isaIOBase = PIOOFFSET; IOADDRESS vgaIOBase = isaIOBase + hwp->IOBase; unsigned char tmp; int offset; @@ -891,7 +897,7 @@ static void ARKAdjustFrame(int scrnIndex, int x, int y, int flags) ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ARKPtr pARK = ARKPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); - IOADDRESS vgaIOBase = hwp->PIOOffset + hwp->IOBase; + IOADDRESS vgaIOBase = PIOOFFSET + hwp->IOBase; int base; base = ((y * pScrn->displayWidth + x) * @@ -918,7 +924,7 @@ static void ARKWriteMode(ScrnInfoPtr pScrn, vgaRegPtr pVga, ARKRegPtr new) { ARKPtr pARK = ARKPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); - IOADDRESS isaIOBase = hwp->PIOOffset; + IOADDRESS isaIOBase = PIOOFFSET; IOADDRESS vgaIOBase = isaIOBase + hwp->IOBase; vgaHWProtect(pScrn, TRUE); @@ -1115,7 +1121,10 @@ static void ARKLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indicies, LOCO *colors, VisualPtr pVisual) { - IOADDRESS isaIOBase = pScrn->domainIOBase; + IOADDRESS isaIOBase = 0; +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 + isaIOBase += pScrn->domainIOBase; +#endif int i, index; for (i=0; i<numColors; i++) { commit 9d3769bed020e9796e51411c63de337da5073bb4 Author: Ondrej Zary <[email protected]> Date: Fri Dec 3 19:23:51 2010 -0500 Don't assume that FB address registers are initialized properly https://bugs.freedesktop.org/show_bug.cgi?id=28249 ark driver does not work with Hercules Stingray 64 card (ark2000pv). X fails to start with: [...] (II) ark(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 (II) ark(0): Creating default Display subsection in Screen section "Default Screen Section" for depth/fbbpp 24/32 (==) ark(0): Depth 24, (--) framebuffer bpp 32 (==) ark(0): RGB weight 888 (==) ark(0): Default visual is TrueColor (**) ark(0): Chipset: "ark2000pv" (--) ark(0): Framebuffer @ 0xe5e50000 (==) ark(0): Using gamma correction (1.0, 1.0, 1.0) (--) ark(0): Detected 2048 bytes video ram [...] Fatal server error: AddScreen/ScreenInit failed for driver 0 Comparing with lspci, the framebuffer address is wrong: 00:0f.0 VGA compatible controller: ARK Logic Inc 2000PV [Stingray] (prog-if 00 [VGA controller]) Flags: medium devsel Memory at e5000000 (32-bit, prefetchable) [size=4M] [virtual] Expansion ROM at 1c000000 [disabled] [size=64K] Reviewed-by: Adam Jackson <[email protected]> diff --git a/src/ark.h b/src/ark.h index de301dc..077f93b 100644 --- a/src/ark.h +++ b/src/ark.h @@ -34,7 +34,6 @@ typedef struct _ARKRec { #endif EntityInfoPtr pEnt; CARD32 IOAddress; - CARD32 FBAddress; unsigned char * FBBase; unsigned char * MMIOBase; unsigned long videoRam; diff --git a/src/ark_driver.c b/src/ark_driver.c index 5de3b9a..fec3e1a 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -363,14 +363,14 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) outb(hwp->PIOOffset + hwp->IOBase + 5, tmp & 0x7f); modinx(hwp->PIOOffset + 0x3c4, 0x1d, 0x01, 0x01); - /* use membase's later on ??? */ - pARK->FBAddress = (rdinx(hwp->PIOOffset + 0x3c4, 0x13) << 16) + - (rdinx(hwp->PIOOffset + 0x3c4, 0x14) << 24); - - pScrn->memPhysBase = pARK->FBAddress; +#ifndef XSERVER_LIBPCIACCESS + pScrn->memPhysBase = pARK->PciInfo->memBase[0]; +#else + pScrn->memPhysBase = pARK->PciInfo->regions[0].base_addr; +#endif xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Framebuffer @ 0x%lx\n", - (unsigned long)pARK->FBAddress); + (unsigned long)pScrn->memPhysBase); if (!xf86SetGamma(pScrn, gzeros)) return FALSE; @@ -748,8 +748,13 @@ static Bool ARKModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) new->sr10 = rdinx(isaIOBase + 0x3c4, 0x10) & ~0x1f; new->sr10 |= 0x1f; - new->sr13 = pARK->FBAddress >> 16; - new->sr14 = pARK->FBAddress >> 24; +#ifndef XSERVER_LIBPCIACCESS + new->sr13 = pARK->PciInfo->memBase[0] >> 16; + new->sr14 = pARK->PciInfo->memBase[0] >> 24; +#else + new->sr13 = pARK->PciInfo->regions[0].base_addr >> 16; + new->sr14 = pARK->PciInfo->regions[0].base_addr >> 24; +#endif new->sr12 = rdinx(isaIOBase + 0x3c4, 0x12) & ~0x03; switch (pScrn->videoRam) { @@ -1022,7 +1027,7 @@ static Bool ARKMapMem(ScrnInfoPtr pScrn) pARK->PciTag, 0xb8000, 0x8000); pARK->FBBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER, - pARK->PciTag, pARK->FBAddress, + pARK->PciTag, pARK->PciInfo->memBase[0], pScrn->videoRam * 1024); #else @@ -1032,14 +1037,17 @@ static Bool ARKMapMem(ScrnInfoPtr pScrn) { void** result = (void**)&pARK->FBBase; int err = pci_device_map_range(pARK->PciInfo, - pARK->FBAddress, + pARK->PciInfo->regions[0].base_addr, pScrn->videoRam * 1024, PCI_DEV_MAP_FLAG_WRITABLE | PCI_DEV_MAP_FLAG_WRITE_COMBINE, result); - if (err) + if (err) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Cound not map framebuffer: %d\n", err); return FALSE; + } } #endif commit 5013a760db93d08b0bb87b6ad2537b1073cedf36 Author: Alan Coopersmith <[email protected]> Date: Fri Jul 23 14:35:43 2010 -0700 xf86-video-ark 0.7.3 Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/configure.ac b/configure.ac index f9744d7..2142ab6 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-ark], - [0.7.2], + [0.7.3], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-ark]) AC_CONFIG_SRCDIR([Makefile.am]) commit 47dd182461728dbe18d7f59be1e3cbbe56b2ca72 Author: Gaetan Nadon <[email protected]> Date: Wed Jul 21 16:49:04 2010 -0400 config: add comments for main statements diff --git a/configure.ac b/configure.ac index d52fa88..f9744d7 100644 --- a/configure.ac +++ b/configure.ac @@ -20,18 +20,18 @@ # # Process this file with autoconf to produce a configure script +# Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-ark], [0.7.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-ark]) - AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR(.) +# Initialize Automake AM_INIT_AUTOMAKE([foreign dist-bzip2]) - AM_MAINTAINER_MODE # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS @@ -40,24 +40,24 @@ m4_ifndef([XORG_MACROS_VERSION], XORG_MACROS_VERSION(1.8) XORG_DEFAULT_OPTIONS -# Checks for programs. +# Initialize libtool AC_DISABLE_STATIC AC_PROG_LIBTOOL AH_TOP([#include "xorg-server.h"]) +# Define a configure option for an alternate module directory AC_ARG_WITH(xorg-module-dir, [ --with-xorg-module-dir=DIR ], [ moduledir="$withval" ], [ moduledir="$libdir/xorg/modules" ]) AC_SUBST(moduledir) - -# Checks for extensions +# Store the list of server defined optional extensions in REQUIRED_MODULES XORG_DRIVER_CHECK_EXT(RANDR, randrproto) XORG_DRIVER_CHECK_EXT(RENDER, renderproto) XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) -# Checks for pkg-config packages +# Obtain compiler/linker options for the driver dependencies PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901] xproto fontsproto $REQUIRED_MODULES) # Checks for libraries. @@ -68,7 +68,6 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [#include "xorg-server.h"]) CPPFLAGS="$SAVE_CPPFLAGS" - if test "x$XSERVER_LIBPCIACCESS" = xyes; then PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) fi commit 92590886eb667e8a3eb7f3e7bc52d435b51a2cb2 Author: Gaetan Nadon <[email protected]> Date: Wed Jul 21 16:07:00 2010 -0400 config: replace deprecated use of AC_OUTPUT with AC_CONFIG_FILES Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index 2723e29..d52fa88 100644 --- a/configure.ac +++ b/configure.ac @@ -77,7 +77,8 @@ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) DRIVER_NAME=ark AC_SUBST([DRIVER_NAME]) -AC_OUTPUT([ - Makefile - src/Makefile +AC_CONFIG_FILES([ + Makefile + src/Makefile ]) +AC_OUTPUT commit 334926f424f1d1755086fcd3d3dad1a8b3b35f22 Author: Gaetan Nadon <[email protected]> Date: Wed Jul 21 14:05:22 2010 -0400 config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index 4f57b42..2723e29 100644 --- a/configure.ac +++ b/configure.ac @@ -27,7 +27,7 @@ AC_INIT([xf86-video-ark], [xf86-video-ark]) AC_CONFIG_SRCDIR([Makefile.am]) -AM_CONFIG_HEADER([config.h]) +AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR(.) AM_INIT_AUTOMAKE([foreign dist-bzip2]) commit b58a6440f088930a5458c68c1b9fe3bd80b37a0e Author: Gaetan Nadon <[email protected]> Date: Wed Jul 21 09:27:42 2010 -0400 config: complete AC_INIT m4 quoting Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index ac992b9..4f57b42 100644 --- a/configure.ac +++ b/configure.ac @@ -22,9 +22,9 @@ AC_PREREQ([2.60]) AC_INIT([xf86-video-ark], - 0.7.2, + [0.7.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], - xf86-video-ark) + [xf86-video-ark]) AC_CONFIG_SRCDIR([Makefile.am]) AM_CONFIG_HEADER([config.h]) commit c1846ca9e802338dc0b29ddcdb7e71554d5d63a0 Author: Gaetan Nadon <[email protected]> Date: Tue Jul 20 20:24:42 2010 -0400 config: remove unrequired AC_HEADER_STDC Autoconf says: "This macro is obsolescent, as current systems have conforming header files. New programs need not use this macro". Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index fc1717b..ac992b9 100644 --- a/configure.ac +++ b/configure.ac @@ -68,8 +68,6 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [#include "xorg-server.h"]) CPPFLAGS="$SAVE_CPPFLAGS" -# Checks for header files. -AC_HEADER_STDC if test "x$XSERVER_LIBPCIACCESS" = xyes; then PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) commit ea755640844290935e115045b7bf06b219123636 Author: Gaetan Nadon <[email protected]> Date: Tue Jul 20 19:41:30 2010 -0400 config: remove AC_PROG_CC as it overrides AC_PROG_C_C99 XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls AC_PROG_C_C99. This sets gcc with -std=gnu99. If AC_PROG_CC macro is called afterwards, it resets CC to gcc. Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index 2d253e2..fc1717b 100644 --- a/configure.ac +++ b/configure.ac @@ -43,7 +43,6 @@ XORG_DEFAULT_OPTIONS # Checks for programs. AC_DISABLE_STATIC AC_PROG_LIBTOOL -AC_PROG_CC AH_TOP([#include "xorg-server.h"]) commit d39d3e0ec1f0cc0304966d9a96c76c00618196af Author: Gaetan Nadon <[email protected]> Date: Tue Jul 20 18:45:18 2010 -0400 config: update AC_PREREQ statement to 2.60 Unrelated to the previous patches, the new value simply reflects the reality that the minimum level for autoconf to configure all x.org modules is 2.60 dated June 2006. ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index 04a9eb1..2d253e2 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ # # Process this file with autoconf to produce a configure script -AC_PREREQ(2.57) +AC_PREREQ([2.60]) AC_INIT([xf86-video-ark], 0.7.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], commit a1df242dcb15a923856779e544c7394135fb8349 Author: Gaetan Nadon <[email protected]> Date: Tue Jul 20 16:15:29 2010 -0400 config: upgrade to util-macros 1.8 for additional man page support Use MAN_SUBST now supplied in XORG_MANPAGE_SECTIONS The value of MAN_SUBST is the same for all X.Org packages. Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index af924be..04a9eb1 100644 --- a/configure.ac +++ b/configure.ac @@ -34,10 +34,10 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE -# Require xorg-macros: XORG_DEFAULT_OPTIONS +# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])]) -XORG_MACROS_VERSION(1.3) + [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])]) +XORG_MACROS_VERSION(1.8) XORG_DEFAULT_OPTIONS # Checks for programs. commit 7cf934ad29516215ef81d13acccbee0766f8d729 Author: Gaetan Nadon <[email protected]> Date: Sat Jun 12 10:32:57 2010 -0400 COPYING: replace stub file with Copyright notice -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

