PKGBUILDs/extra/xf86-video-vga/git-1b4bf389.patch
2009-10-09 21:23:22 -05:00

467 lines
13 KiB
Diff

diff -ruN -x .cvsignore -x .gitignore -X xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/.gitignore xf86-video-vga-4.1.0/README xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/README
--- xf86-video-vga-4.1.0/README 1970-01-01 00:00:00.000000000 +0000
+++ xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/README 2009-01-31 05:06:53.000000000 +0000
@@ -0,0 +1,20 @@
+xf86-video-vga - Generic VGA video driver for the Xorg X server
+
+Please submit bugs & patches to the Xorg bugzilla:
+
+ https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+ http://lists.freedesktop.org/mailman/listinfo/xorg
+
+The master development code repository can be found at:
+
+ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-vga
+
+ http://cgit.freedesktop.org/xorg/driver/xf86-video-vga
+
+For more information on the git code manager, see:
+
+ http://wiki.x.org/wiki/GitPage
diff -ruN -x .cvsignore -x .gitignore -X xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/.gitignore xf86-video-vga-4.1.0/autogen.sh xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/autogen.sh
--- xf86-video-vga-4.1.0/autogen.sh 1970-01-01 00:00:00.000000000 +0000
+++ xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/autogen.sh 2009-01-31 05:06:53.000000000 +0000
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+autoreconf -v --install || exit 1
+cd $ORIGDIR || exit $?
+
+$srcdir/configure --enable-maintainer-mode "$@"
diff -ruN -x .cvsignore -x .gitignore -X xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/.gitignore xf86-video-vga-4.1.0/configure.ac xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/configure.ac
--- xf86-video-vga-4.1.0/configure.ac 2006-04-07 21:48:23.000000000 +0000
+++ xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/configure.ac 2009-01-31 05:06:53.000000000 +0000
@@ -57,6 +57,30 @@
sdkdir=$(pkg-config --variable=sdkdir xorg-server)
# Checks for libraries.
+SAVE_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
+ [XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no],
+ [#include "xorg-server.h"])
+AC_CHECK_HEADER(xf1bpp.h,[AC_DEFINE(HAVE_XF1BPP, 1, [Have 1bpp support])],[])
+AC_CHECK_HEADER(xf4bpp.h,[AC_DEFINE(HAVE_XF4BPP, 1, [Have 4bpp support])],[])
+CPPFLAGS="$SAVE_CPPFLAGS"
+
+SAVE_CFLAGS="$CFLAGS"
+CFLAGS="$XORG_CFLAGS"
+AC_CHECK_DECL(xf86ConfigIsaEntity,
+ [AC_DEFINE(HAVE_ISA, 1, [Have ISA support])],
+ [],
+ [#include "xf86.h"])
+CFLAGS="$SAVE_CFLAGS"
+
+if test "x$XSERVER_LIBPCIACCESS" = xyes; then
+ PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
+ XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
+fi
+AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+
+# Checks for libraries.
# Checks for header files.
AC_HEADER_STDC
diff -ruN -x .cvsignore -x .gitignore -X xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/.gitignore xf86-video-vga-4.1.0/man/Makefile.am xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/man/Makefile.am
--- xf86-video-vga-4.1.0/man/Makefile.am 2005-12-06 22:48:40.000000000 +0000
+++ xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/man/Makefile.am 2009-01-31 05:06:53.000000000 +0000
@@ -1,4 +1,3 @@
-# $Id: Makefile.am,v 1.5 2005/11/28 22:04:15 alanc Exp $
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
diff -ruN -x .cvsignore -x .gitignore -X xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/.gitignore xf86-video-vga-4.1.0/man/vga.man xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/man/vga.man
--- xf86-video-vga-4.1.0/man/vga.man 2004-04-23 19:53:24.000000000 +0000
+++ xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/man/vga.man 2009-01-31 05:06:53.000000000 +0000
@@ -1,4 +1,4 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/vga.man,v 1.2 2001/01/27 18:20:56 dawes Exp $
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/vga.man,v 1.3 2001/12/17 20:52:34 dawes Exp $
.\" shorthand for double quote that works everywhere.
.ds q \N'34'
.TH VGA __drivermansuffix__ __vendorversion__
@@ -60,6 +60,6 @@
when using those depths in a multi-head configuration where one or more
of the other screens is operating at a different depth.
.SH "SEE ALSO"
-__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
+__xservername__(1), __xconfigfile__(__filemansuffix__), Xserver(1), X(__miscmansuffix__)
.SH AUTHORS
Authors include: Marc La France, David Dawes, and Dirk Hohndel.
diff -ruN -x .cvsignore -x .gitignore -X xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/.gitignore xf86-video-vga-4.1.0/src/generic.c xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/src/generic.c
--- xf86-video-vga-4.1.0/src/generic.c 2006-04-07 21:48:01.000000000 +0000
+++ xf86-video-vga-1b4bf38991d91c94ce1f15aee185e152f88abb73/src/generic.c 2009-01-31 05:06:53.000000000 +0000
@@ -50,8 +50,13 @@
#include "fb.h"
+#if HAVE_XF4BPP
#include "xf4bpp.h"
+#endif
+
+#if HAVE_XF1BPP
#include "xf1bpp.h"
+#endif
#include "shadowfb.h"
@@ -62,6 +67,10 @@
#include "xf86Resources.h"
#include "xf86int10.h"
+#ifdef XSERVER_LIBPCIACCESS
+#include <pciaccess.h>
+#endif
+
/* Some systems #define VGA for their own purposes */
#undef VGA
@@ -79,10 +88,31 @@
#define CLOCK_TOLERANCE 2000 /* Clock matching tolerance (2MHz) */
#endif
+/*
+ * This structure is used to wrap the screen's CloseScreen vector.
+ */
+typedef struct _GenericRec
+{
+ Bool ShadowFB;
+ Bool KGAUniversal;
+ CARD8 * ShadowPtr;
+ CARD32 ShadowPitch;
+ CloseScreenProcPtr CloseScreen;
+ OptionInfoPtr Options;
+#ifdef XSERVER_LIBPCIACCESS
+ struct pci_device *pciInfo;
+#endif
+} GenericRec, *GenericPtr;
+
+
/* Forward definitions */
static const OptionInfoRec *GenericAvailableOptions(int chipid, int busid);
static void GenericIdentify(int);
static Bool GenericProbe(DriverPtr, int);
+#ifdef XSERVER_LIBPCIACCESS
+static Bool GenericPciProbe(DriverPtr drv, int entity_num,
+ struct pci_device *dev, intptr_t match_data);
+#endif
static Bool GenericPreInit(ScrnInfoPtr, int);
static Bool GenericScreenInit(int, ScreenPtr, int, char **);
static Bool GenericSwitchMode(int, DisplayModePtr, int);
@@ -90,13 +120,33 @@
static Bool GenericEnterVT(int, int);
static void GenericLeaveVT(int, int);
static void GenericFreeScreen(int, int);
+#ifdef HAVE_ISA
static int VGAFindIsaDevice(GDevPtr dev);
+#endif
#ifdef SPECIAL_FB_BYTE_ACCESS
static Bool GenericMapMem(ScrnInfoPtr scrp);
#endif
static ModeStatus GenericValidMode(int, DisplayModePtr, Bool, int);
+static GenericPtr GenericGetRec(ScrnInfoPtr pScreenInfo);
+
+enum GenericTypes
+{
+ CHIP_VGA_GENERIC
+};
+
+#ifdef XSERVER_LIBPCIACCESS
+static const struct pci_id_match generic_device_match[] = {
+ {
+ PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY,
+ 0x00030000, 0x00ffffff, CHIP_VGA_GENERIC
+ },
+
+ { 0, 0, 0 },
+};
+#endif
+
/* The root of all evil... */
_X_EXPORT DriverRec VGA =
{
@@ -106,7 +156,13 @@
GenericProbe,
GenericAvailableOptions,
NULL,
- 0
+ 0,
+ NULL,
+
+#ifdef XSERVER_LIBPCIACCESS
+ generic_device_match,
+ GenericPciProbe
+#endif
};
typedef enum
@@ -146,8 +202,12 @@
#ifdef XFree86LOADER
static const char *miscfbSymbols[] =
{
+#if HAVE_XF1BPP
"xf1bppScreenInit",
+#endif
+#if HAVE_XF4BPP
"xf4bppScreenInit",
+#endif
NULL
};
#endif
@@ -210,7 +270,13 @@
if (!Initialised)
{
Initialised = TRUE;
- xf86AddDriver(&VGA, Module, 0);
+ xf86AddDriver(&VGA, Module,
+#ifdef XSERVER_LIBPCIACCESS
+ HaveDriverFuncs
+#else
+ 0
+#endif
+ );
LoaderRefSymLists(vgahwSymbols, miscfbSymbols, fbSymbols,
shadowfbSymbols, int10Symbols, NULL);
return (pointer)TRUE;
@@ -224,11 +290,6 @@
#endif
-enum GenericTypes
-{
- CHIP_VGA_GENERIC
-};
-
/* Supported chipsets */
static SymTabRec GenericChipsets[] =
{
@@ -236,17 +297,21 @@
{-1, NULL}
};
+#ifndef XSERVER_LIBPCIACCESS
static PciChipsets GenericPCIchipsets[] =
{
{CHIP_VGA_GENERIC, PCI_CHIP_VGA, RES_SHARED_VGA},
{-1, -1, RES_UNDEFINED},
};
+#endif
+#ifdef HAVE_ISA
static IsaChipsets GenericISAchipsets[] =
{
{CHIP_VGA_GENERIC, RES_EXCLUSIVE_VGA},
{-1, 0}
};
+#endif
static void
GenericIdentify(int flags)
@@ -267,6 +332,37 @@
* do a minimal probe for supported hardware.
*/
+#ifdef XSERVER_LIBPCIACCESS
+static Bool
+GenericPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev,
+ intptr_t match_data)
+{
+ ScrnInfoPtr pScrn;
+
+ pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL,
+ NULL, NULL, NULL, NULL, NULL);
+ if (pScrn != NULL) {
+ GenericPtr pGeneric = GenericGetRec(pScrn);
+
+ pScrn->driverVersion = VGA_VERSION_CURRENT;
+ pScrn->driverName = VGA_DRIVER_NAME;
+ pScrn->name = VGA_NAME;
+ pScrn->Probe = GenericProbe;
+ pScrn->PreInit = GenericPreInit;
+ pScrn->ScreenInit = GenericScreenInit;
+ pScrn->SwitchMode = GenericSwitchMode;
+ pScrn->AdjustFrame = GenericAdjustFrame;
+ pScrn->EnterVT = GenericEnterVT;
+ pScrn->LeaveVT = GenericLeaveVT;
+ pScrn->FreeScreen = GenericFreeScreen;
+
+ pGeneric->pciInfo = dev;
+ }
+
+ return (pScrn != NULL);
+}
+#endif
+
static Bool
GenericProbe(DriverPtr drv, int flags)
{
@@ -283,6 +379,7 @@
if ((numDevSections = xf86MatchDevice(VGA_NAME, &devSections)) <= 0)
return FALSE;
+#ifndef XSERVER_LIBPCIACCESS
/* PCI BUS */
if (xf86GetPciVideoInfo())
{
@@ -324,7 +421,9 @@
xfree(usedChips);
}
}
+#endif
+#ifdef HAVE_ISA
/* Isa Bus */
numUsed = xf86MatchIsaInstances(VGA_NAME, GenericChipsets,
GenericISAchipsets, drv,
@@ -360,11 +459,13 @@
xfree(usedChips);
}
}
+#endif
xfree(devSections);
return foundScreen;
}
+#ifdef HAVE_ISA
static int
VGAFindIsaDevice(GDevPtr dev)
{
@@ -390,20 +491,7 @@
return (int)CHIP_VGA_GENERIC;
}
-
-/*
- * This structure is used to wrap the screen's CloseScreen vector.
- */
-typedef struct _GenericRec
-{
- Bool ShadowFB;
- Bool KGAUniversal;
- CARD8 * ShadowPtr;
- CARD32 ShadowPitch;
- CloseScreenProcPtr CloseScreen;
- OptionInfoPtr Options;
-} GenericRec, *GenericPtr;
-
+#endif
static GenericPtr
GenericGetRec(ScrnInfoPtr pScreenInfo)
@@ -509,8 +597,14 @@
switch (pScreenInfo->depth)
{
- case 1: Module = "xf1bpp"; Sym = "xf1bppScreenInit"; break;
- case 4: Module = "xf4bpp"; Sym = "xf4bppScreenInit"; break;
+ case 1:
+#if HAVE_XF1BPP
+ Module = "xf1bpp"; Sym = "xf1bppScreenInit"; break;
+#endif
+ case 4:
+#if HAVE_XF4BPP
+ Module = "xf4bpp"; Sym = "xf4bppScreenInit"; break;
+#endif
case 8: Module = "fb"; break;
default:
@@ -673,6 +767,8 @@
/* Set display resolution */
xf86SetDpi(pScreenInfo, 0, 0);
+
+#if HAVE_XF1BPP && HAVE_XF4BPP
if (xf86ReturnOptValBool(pGenericPriv->Options, OPTION_SHADOW_FB, FALSE))
{
pGenericPriv->ShadowFB = TRUE;
@@ -688,7 +784,7 @@
"Enabling universal \"KGA\" treatment.\n");
}
-#ifdef SPECIAL_FB_BYTE_ACCESS
+# ifdef SPECIAL_FB_BYTE_ACCESS
if (!pGenericPriv->ShadowFB && (pScreenInfo->depth == 4))
{
xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
@@ -696,8 +792,13 @@
" ShadowFB enabled.\n");
pGenericPriv->ShadowFB = TRUE;
}
+# endif
+
+#else
+ pGenericPriv->ShadowFB = TRUE;
#endif
+
if (pGenericPriv->ShadowFB)
{
pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER;
@@ -1378,6 +1479,7 @@
#endif
ShadowFBInit(pScreen, GenericRefreshArea1bpp);
}
+#if HAVE_XF1BPP
else
{
Inited = xf1bppScreenInit(pScreen, pvgaHW->Base,
@@ -1386,6 +1488,7 @@
pScreenInfo->xDpi, pScreenInfo->yDpi,
pScreenInfo->displayWidth);
}
+#endif
break;
case 4:
if (pGenericPriv->ShadowFB)
@@ -1410,6 +1513,7 @@
#endif
ShadowFBInit(pScreen, GenericRefreshArea4bpp);
}
+#if HAVE_XF4BPP
else
{
Inited = xf4bppScreenInit(pScreen, pvgaHW->Base,
@@ -1418,6 +1522,7 @@
pScreenInfo->xDpi, pScreenInfo->yDpi,
pScreenInfo->displayWidth);
}
+#endif
break;
case 8:
Inited = fbScreenInit(pScreen, pvgaHW->Base,
@@ -1579,6 +1684,9 @@
{
vgaHWPtr hwp = VGAHWPTR(scrp);
int scr_index = scrp->scrnIndex;
+#ifdef XSERVER_LIBPCIACCESS
+ GenericPtr pPriv = GenericGetRec(scrp);
+#endif
if (hwp->Base)
return TRUE;
@@ -1589,7 +1697,12 @@
if (hwp->MapPhys == 0)
hwp->MapPhys = VGA_DEFAULT_PHYS_ADDR;
- hwp->Base = xf86MapDomainMemory(scr_index, VIDMEM_MMIO, hwp->Tag,
+ hwp->Base = xf86MapDomainMemory(scr_index, VIDMEM_MMIO,
+#ifdef XSERVER_LIBPCIACCESS
+ pPriv->pciInfo,
+#else
+ hwp->Tag,
+#endif
hwp->MapPhys, hwp->MapSize);
return hwp->Base != NULL;
}