From b8e406ac8fc1bb277610f19259b7bf1f65c4a6bf Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 21 Aug 2012 14:06:49 -0500
Subject: xf86-video-intel:  updated to 2.20

---
 abs/core/xf86-video-intel/PKGBUILD                 |   30 +-
 abs/core/xf86-video-intel/__changelog              |    2 -
 abs/core/xf86-video-intel/git-fixes.patch          | 1050 --------------------
 abs/core/xf86-video-intel/xf86-video-intel.install |    8 +
 4 files changed, 23 insertions(+), 1067 deletions(-)
 delete mode 100644 abs/core/xf86-video-intel/__changelog
 delete mode 100644 abs/core/xf86-video-intel/git-fixes.patch
 create mode 100644 abs/core/xf86-video-intel/xf86-video-intel.install

diff --git a/abs/core/xf86-video-intel/PKGBUILD b/abs/core/xf86-video-intel/PKGBUILD
index 3ef8a54..d15b41d 100644
--- a/abs/core/xf86-video-intel/PKGBUILD
+++ b/abs/core/xf86-video-intel/PKGBUILD
@@ -1,29 +1,29 @@
-# $Id$
+# $Id: PKGBUILD 163776 2012-07-19 20:25:09Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-intel
-pkgver=2.15.0
-pkgrel=3
-pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
+pkgver=2.20.0
+pkgrel=1
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 license=('custom')
-depends=(intel-dri libxvmc libpciaccess libdrm xcb-util libxfixes udev)
-makedepends=('xorg-server-devel' 'libx11' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'libxvmc' 'xcb-util')
-conflicts=('xorg-server<1.9.2' 'xf86-video-i810' 'xf86-video-intel-legacy')
+install=$pkgname.install
+pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
+depends=('intel-dri' 'libxvmc' 'libpciaccess' 'libdrm' 'xcb-util>=0.3.9' 'libxfixes' 'systemd-tools')
+makedepends=('xorg-server-devel>=1.12.0' 'libx11' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'libxvmc' 'libxrender')
+replaces=('xf86-video-intel-uxa' 'xf86-video-intel-sna')
+provides=('xf86-video-intel-uxa' 'xf86-video-intel-sna')
+conflicts=('xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xorg-server<1.12.0' 'xf86-video-i810' 'xf86-video-intel-legacy')
 options=('!libtool')
 groups=('xorg-drivers' 'xorg')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        git-fixes.patch)
-sha1sums=('78ec39a4470cfc0bf13d269fb915f6c5a498ee62'
-          'd7a9102e58c1d6c1bcb99ff6836146bd54a18161')
+source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('21949297220ceda32bba430f778c6409002079dc717c7190dbd1062ab4a56783')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -Np1 -i "${srcdir}/git-fixes.patch"
-
-  autoreconf
-  ./configure --prefix=/usr --enable-dri
+  ./configure --prefix=/usr \
+    --enable-dri
   make
 }
 
diff --git a/abs/core/xf86-video-intel/__changelog b/abs/core/xf86-video-intel/__changelog
deleted file mode 100644
index a7fc3d0..0000000
--- a/abs/core/xf86-video-intel/__changelog
+++ /dev/null
@@ -1,2 +0,0 @@
-# MH
-- Change xorg-server conflicts to xorg-server<1.9.2
diff --git a/abs/core/xf86-video-intel/git-fixes.patch b/abs/core/xf86-video-intel/git-fixes.patch
deleted file mode 100644
index 7ee0d50..0000000
--- a/abs/core/xf86-video-intel/git-fixes.patch
+++ /dev/null
@@ -1,1050 +0,0 @@
-diff --git a/NEWS b/NEWS
-index ea92bcf..61866b0 100644
---- a/NEWS
-+++ b/NEWS
-@@ -2,9 +2,9 @@ Release 2.15.0 (2011-04-14)
- ==============================
- We are pleased to announce this major release of the xf86-video-intel
- driver, roughly on schedule at 3 months since 2.14.0. With the many bug
--fixes in this release, we encourage everyone to upgrade to 2.14.
-+fixes in this release, we encourage everyone to upgrade to 2.15.
- 
--The priority for this quarter has been simply to unexciting and stabilise
-+The priority for this quarter has been simply to be unexciting and stabilise
- the driver further, seeking to capitalise upon the improvements elsewhere
- in the stack.
- 
-diff --git a/configure.ac b/configure.ac
-index fd5a3cf..9449e56 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -77,9 +77,7 @@ AC_ARG_WITH(xorg-module-dir,
-             [moduledir="$libdir/xorg/modules"])
- 
- AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri],
--                                  [Disable DRI support [[default=auto]]]),
--              [DRI="$enableval"],
--              [DRI=auto])
-+                                  [Disable DRI support [[default=auto]]]))
- 
- AC_ARG_ENABLE(xvmc, AS_HELP_STRING([--disable-xvmc],
-                                   [Disable XvMC support [[default=yes]]]),
-@@ -106,40 +104,48 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
- # Obtain compiler/linker options for the driver dependencies
- PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6 xproto fontsproto $REQUIRED_MODULES])
- PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.23])
-+PKG_CHECK_MODULES(DRI, [xf86driproto], , DRI=no)
- PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
- 
- sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
- 
--save_CFLAGS="$CFLAGS"
--CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
--CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
--AC_MSG_CHECKING([whether to include DRI support])
--if test x$DRI != xno; then
--        AC_CHECK_FILE([${sdkdir}/dri.h],
--                      [have_dri_h="yes"], [have_dri_h="no"])
--        AC_CHECK_FILE([${sdkdir}/sarea.h],
--                      [have_sarea_h="yes"], [have_sarea_h="no"])
--        AC_CHECK_FILE([${sdkdir}/dristruct.h],
--                      [have_dristruct_h="yes"], [have_dristruct_h="no"])
-+if test "x$enable_dri" != "xno"; then
-+        save_CFLAGS="$CFLAGS"
-+        save_CPPFLAGS="$CPPFLAGS"
-+        CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
-+        CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
-+        AC_CHECK_HEADERS([dri.h sarea.h dristruct.h],, [DRI=no],
-+                [/* for dri.h */
-+                 #include <xf86str.h>
-+                 /* for dristruct.h */
-+                 #include <xorg-server.h>
-+                 #ifdef HAVE_DRI_H
-+                 # include <dri.h>
-+                 #endif
-+                 #ifdef HAVE_SAREA_H
-+                 # include <sarea.h>
-+                 #endif
-+                ])
-+        CFLAGS="$save_CFLAGS $DEBUGFLAGS"
-+        CPPFLAGS="$save_CPPFLAGS"
-+else
-+        DRI=no
- fi
-+
- AC_MSG_CHECKING([whether to include DRI support])
--if test x$DRI = xauto; then
--        if test "$have_dri_h" = yes -a \
--                "$have_sarea_h" = yes -a \
--                "$have_dristruct_h" = yes; then
--                DRI="yes"
--        else
--                DRI="no"
--        fi
--fi
--AC_MSG_RESULT([$DRI])
--CFLAGS="$save_CFLAGS $DEBUGFLAGS"
-+AC_MSG_RESULT([${DRI-yes}])
- 
--AM_CONDITIONAL(DRI, test x$DRI = xyes)
--if test "$DRI" = yes; then
--        PKG_CHECK_MODULES(DRI, [xf86driproto])
-+AM_CONDITIONAL(DRI, test x$DRI != xno)
-+if test "x$DRI" != "xno"; then
-         AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
-         AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
-+else
-+        DRI_CFLAGS=""
-+        DRI_LIBS=""
-+
-+        if test "x$enable_dri" = "xyes"; then
-+                AC_MSG_ERROR([DRI requested but prerequisites not found])
-+        fi
- fi
- 
- if test "$XVMC" = yes; then
-diff --git a/src/i965_render.c b/src/i965_render.c
-index bfcd3f2..b76107d 100644
---- a/src/i965_render.c
-+++ b/src/i965_render.c
-@@ -182,6 +182,10 @@ i965_check_composite(int op,
- 		     int width, int height)
- {
- 	ScrnInfoPtr scrn = xf86Screens[dest_picture->pDrawable->pScreen->myNum];
-+	intel_screen_private *intel = intel_get_screen_private(scrn);
-+
-+	if (IS_GEN7(intel))
-+		return FALSE;
- 
- 	/* Check for unsupported compositing operations. */
- 	if (op >= sizeof(i965_blend_op) / sizeof(i965_blend_op[0])) {
-diff --git a/src/i965_video.c b/src/i965_video.c
-index c757681..53a9394 100644
---- a/src/i965_video.c
-+++ b/src/i965_video.c
-@@ -1210,7 +1210,7 @@ I965DisplayVideoTextured(ScrnInfoPtr scrn,
- 			intel_batch_submit(scrn);
- 		}
- 
--		intel_batch_start_atomic(scrn, 100);
-+		intel_batch_start_atomic(scrn, 150);
- 
- 		i965_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf, pixmap);
- 
-diff --git a/src/intel_batchbuffer.c b/src/intel_batchbuffer.c
-index 289ed2b..d0a41aa 100644
---- a/src/intel_batchbuffer.c
-+++ b/src/intel_batchbuffer.c
-@@ -175,13 +175,6 @@ void intel_batch_emit_flush(ScrnInfoPtr scrn)
- 	intel_batch_do_flush(scrn);
- }
- 
--static Bool intel_batch_needs_flush(intel_screen_private *intel)
--{
--	ScreenPtr screen = intel->scrn->pScreen;
--	PixmapPtr pixmap = screen->GetScreenPixmap(screen);
--	return intel_get_pixmap_private(pixmap)->batch_write;
--}
--
- void intel_batch_submit(ScrnInfoPtr scrn)
- {
- 	intel_screen_private *intel = intel_get_screen_private(scrn);
-@@ -218,7 +211,9 @@ void intel_batch_submit(ScrnInfoPtr scrn)
- 		ret = drm_intel_bo_mrb_exec(intel->batch_bo,
- 				intel->batch_used*4,
- 				NULL, 0, 0xffffffff,
--				IS_GEN6(intel) ? intel->current_batch: I915_EXEC_DEFAULT);
-+				(HAS_BLT(intel) ?
-+				 intel->current_batch:
-+				 I915_EXEC_DEFAULT));
- 	}
- 
- 	if (ret != 0) {
-@@ -241,8 +236,6 @@ void intel_batch_submit(ScrnInfoPtr scrn)
- 		}
- 	}
- 
--	intel->needs_flush |= intel_batch_needs_flush(intel);
--
- 	while (!list_is_empty(&intel->batch_pixmaps)) {
- 		struct intel_pixmap *entry;
- 
-diff --git a/src/intel_batchbuffer.h b/src/intel_batchbuffer.h
-index 605932a..f5f118e 100644
---- a/src/intel_batchbuffer.h
-+++ b/src/intel_batchbuffer.h
-@@ -50,14 +50,14 @@ static inline int intel_vertex_space(intel_screen_private *intel)
- }
- 
- static inline void
--intel_batch_require_space(ScrnInfoPtr scrn, intel_screen_private *intel, unsigned int sz)
-+intel_batch_require_space(ScrnInfoPtr scrn, intel_screen_private *intel, int sz)
- {
- 	assert(sz < intel->batch_bo->size - 8);
- 	if (intel_batch_space(intel) < sz)
- 		intel_batch_submit(scrn);
- }
- 
--static inline void intel_batch_start_atomic(ScrnInfoPtr scrn, unsigned int sz)
-+static inline void intel_batch_start_atomic(ScrnInfoPtr scrn, int sz)
- {
- 	intel_screen_private *intel = intel_get_screen_private(scrn);
- 
-@@ -137,6 +137,8 @@ intel_batch_mark_pixmap_domains(intel_screen_private *intel,
- 
- 	priv->batch_write |= write_domain != 0;
- 	priv->busy = 1;
-+
-+	intel->needs_flush |= write_domain != 0;
- }
- 
- static inline void
-diff --git a/src/intel_display.c b/src/intel_display.c
-index b6592c4..b55b110 100644
---- a/src/intel_display.c
-+++ b/src/intel_display.c
-@@ -1607,7 +1607,7 @@ Bool intel_mode_pre_init(ScrnInfoPtr scrn, int fd, int cpp)
- 	gp.value = &has_flipping;
- 	(void)drmCommandWriteRead(intel->drmSubFD, DRM_I915_GETPARAM, &gp,
- 				  sizeof(gp));
--	if (has_flipping) {
-+	if (has_flipping && intel->swapbuffers_wait) {
- 		xf86DrvMsg(scrn->scrnIndex, X_INFO,
- 			   "Kernel page flipping support detected, enabling\n");
- 		intel->use_pageflipping = TRUE;
-diff --git a/src/intel_dri.c b/src/intel_dri.c
-index a39b512..48d0f56 100644
---- a/src/intel_dri.c
-+++ b/src/intel_dri.c
-@@ -182,6 +182,8 @@ static PixmapPtr fixup_shadow(DrawablePtr drawable, PixmapPtr pixmap)
- 	/* And redirect the pixmap to the new bo (for 3D). */
- 	intel_set_pixmap_private(old, priv);
- 	old->refcnt++;
-+
-+	intel_get_screen_private(xf86Screens[screen->myNum])->needs_flush = TRUE;
- 	return old;
- }
- 
-@@ -425,7 +427,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
- 
- 	/* Wait for the scanline to be outside the region to be copied */
- 	if (pixmap_is_scanout(get_drawable_pixmap(dst)) &&
--	    intel->swapbuffers_wait) {
-+	    intel->swapbuffers_wait && INTEL_INFO(intel)->gen < 60) {
- 		BoxPtr box;
- 		BoxRec crtcbox;
- 		int y1, y2;
-diff --git a/src/intel_driver.c b/src/intel_driver.c
-index e867351..8666421 100644
---- a/src/intel_driver.c
-+++ b/src/intel_driver.c
-@@ -84,7 +84,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
-  */
- 
- typedef enum {
--   OPTION_ACCELMETHOD,
-    OPTION_DRI,
-    OPTION_VIDEO_KEY,
-    OPTION_COLOR_KEY,
-@@ -105,7 +104,6 @@ typedef enum {
- } I830Opts;
- 
- static OptionInfoRec I830Options[] = {
--   {OPTION_ACCELMETHOD,	"AccelMethod",	OPTV_ANYSTR,	{0},	FALSE},
-    {OPTION_DRI,		"DRI",		OPTV_BOOLEAN,	{0},	TRUE},
-    {OPTION_COLOR_KEY,	"ColorKey",	OPTV_INTEGER,	{0},	FALSE},
-    {OPTION_VIDEO_KEY,	"VideoKey",	OPTV_INTEGER,	{0},	FALSE},
-@@ -328,10 +326,10 @@ static void intel_check_dri_option(ScrnInfoPtr scrn)
- 	if (!xf86ReturnOptValBool(intel->Options, OPTION_DRI, TRUE))
- 		intel->directRenderingType = DRI_DISABLED;
- 
--	if (scrn->depth != 16 && scrn->depth != 24) {
-+	if (scrn->depth != 16 && scrn->depth != 24 && scrn->depth != 30) {
- 		xf86DrvMsg(scrn->scrnIndex, X_CONFIG,
- 			   "DRI is disabled because it "
--			   "runs only at depths 16 and 24.\n");
-+			   "runs only at depths 16, 24, and 30.\n");
- 		intel->directRenderingType = DRI_DISABLED;
- 	}
- }
-@@ -586,6 +584,7 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
- 	case 15:
- 	case 16:
- 	case 24:
-+	case 30:
- 		break;
- 	default:
- 		xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-@@ -658,8 +657,6 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
- 	intel->swapbuffers_wait = xf86ReturnOptValBool(intel->Options,
- 						       OPTION_SWAPBUFFERS_WAIT,
- 						       TRUE);
--	if (IS_GEN6(intel))
--		intel->swapbuffers_wait = FALSE;
- 
- 	xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Framebuffer %s\n",
- 		   intel->tiling & INTEL_TILING_FB ? "tiled" : "linear");
-diff --git a/src/intel_driver.h b/src/intel_driver.h
-index 2e72177..4a584fe 100644
---- a/src/intel_driver.h
-+++ b/src/intel_driver.h
-@@ -184,6 +184,13 @@
- #define PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS	0x0126
- #define PCI_CHIP_SANDYBRIDGE_BRIDGE_S	0x0108	/* Server */
- #define PCI_CHIP_SANDYBRIDGE_S_GT	0x010A
-+
-+#define PCI_CHIP_IVYBRIDGE_M_GT1	0x0156
-+#define PCI_CHIP_IVYBRIDGE_M_GT2	0x0166
-+#define PCI_CHIP_IVYBRIDGE_D_GT1	0x0152
-+#define PCI_CHIP_IVYBRIDGE_D_GT2	0x0162
-+#define PCI_CHIP_IVYBRIDGE_S_GT1	0x015a
-+
- #endif
- 
- #define I85X_CAPID			0x44
-@@ -209,6 +216,7 @@
- #define IS_GEN4(intel) IS_GENx(intel, 4)
- #define IS_GEN5(intel) IS_GENx(intel, 5)
- #define IS_GEN6(intel) IS_GENx(intel, 6)
-+#define IS_GEN7(intel) IS_GENx(intel, 7)
- 
- /* Some chips have specific errata (or limits) that we need to workaround. */
- #define IS_I830(intel) (DEVICE_ID((intel)->PciInfo) == PCI_CHIP_I830_M)
-@@ -222,6 +230,7 @@
- 
- /* supports Y tiled surfaces (pre-965 Mesa isn't ready yet) */
- #define SUPPORTS_YTILING(pI810) (INTEL_INFO(intel)->gen >= 40)
-+#define HAS_BLT(pI810) (INTEL_INFO(intel)->gen >= 60)
- 
- extern SymTabRec *intel_chipsets;
- 
-diff --git a/src/intel_module.c b/src/intel_module.c
-index 8416544..9468e72 100644
---- a/src/intel_module.c
-+++ b/src/intel_module.c
-@@ -39,6 +39,8 @@
- 
- #include <xf86drmMode.h>
- 
-+static struct intel_device_info *chipset_info;
-+
- static const struct intel_device_info intel_i81x_info = {
- 	.gen = 10,
- };
-@@ -71,329 +73,148 @@ static const struct intel_device_info intel_sandybridge_info = {
- 	.gen = 60,
- };
- 
-+static const struct intel_device_info intel_ivybridge_info = {
-+	.gen = 70,
-+};
-+
- static const SymTabRec _intel_chipsets[] = {
--    {PCI_CHIP_I810,		"i810"},
--    {PCI_CHIP_I810_DC100,	"i810-dc100"},
--    {PCI_CHIP_I810_E,		"i810e"},
--    {PCI_CHIP_I815,		"i815"},
--    {PCI_CHIP_I830_M,		"i830M"},
--    {PCI_CHIP_845_G,		"845G"},
--    {PCI_CHIP_I854,		"854"},
--    {PCI_CHIP_I855_GM,		"852GM/855GM"},
--    {PCI_CHIP_I865_G,		"865G"},
--    {PCI_CHIP_I915_G,		"915G"},
--    {PCI_CHIP_E7221_G,		"E7221 (i915)"},
--    {PCI_CHIP_I915_GM,		"915GM"},
--    {PCI_CHIP_I945_G,		"945G"},
--    {PCI_CHIP_I945_GM,		"945GM"},
--    {PCI_CHIP_I945_GME,		"945GME"},
--    {PCI_CHIP_PINEVIEW_M,	"Pineview GM"},
--    {PCI_CHIP_PINEVIEW_G,	"Pineview G"},
--    {PCI_CHIP_I965_G,		"965G"},
--    {PCI_CHIP_G35_G,		"G35"},
--    {PCI_CHIP_I965_Q,		"965Q"},
--    {PCI_CHIP_I946_GZ,		"946GZ"},
--    {PCI_CHIP_I965_GM,		"965GM"},
--    {PCI_CHIP_I965_GME,		"965GME/GLE"},
--    {PCI_CHIP_G33_G,		"G33"},
--    {PCI_CHIP_Q35_G,		"Q35"},
--    {PCI_CHIP_Q33_G,		"Q33"},
--    {PCI_CHIP_GM45_GM,		"GM45"},
--    {PCI_CHIP_G45_E_G,		"4 Series"},
--    {PCI_CHIP_G45_G,		"G45/G43"},
--    {PCI_CHIP_Q45_G,		"Q45/Q43"},
--    {PCI_CHIP_G41_G,		"G41"},
--    {PCI_CHIP_B43_G,		"B43"},
--    {PCI_CHIP_B43_G1,		"B43"},
--    {PCI_CHIP_IRONLAKE_D_G,		"Clarkdale"},
--    {PCI_CHIP_IRONLAKE_M_G,		"Arrandale"},
--    {PCI_CHIP_SANDYBRIDGE_GT1,	"Sandybridge" },
--    {PCI_CHIP_SANDYBRIDGE_GT2,	"Sandybridge" },
--    {PCI_CHIP_SANDYBRIDGE_GT2_PLUS,	"Sandybridge" },
--    {PCI_CHIP_SANDYBRIDGE_M_GT1,	"Sandybridge" },
--    {PCI_CHIP_SANDYBRIDGE_M_GT2,	"Sandybridge" },
--    {PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS,	"Sandybridge" },
--    {PCI_CHIP_SANDYBRIDGE_S_GT,	"Sandybridge" },
--    {-1,				NULL}
-+	{PCI_CHIP_I810,				"i810"},
-+	{PCI_CHIP_I810_DC100,			"i810-dc100"},
-+	{PCI_CHIP_I810_E,			"i810e"},
-+	{PCI_CHIP_I815,				"i815"},
-+	{PCI_CHIP_I830_M,			"i830M"},
-+	{PCI_CHIP_845_G,			"845G"},
-+	{PCI_CHIP_I854,				"854"},
-+	{PCI_CHIP_I855_GM,			"852GM/855GM"},
-+	{PCI_CHIP_I865_G,			"865G"},
-+	{PCI_CHIP_I915_G,			"915G"},
-+	{PCI_CHIP_E7221_G,			"E7221 (i915)"},
-+	{PCI_CHIP_I915_GM,			"915GM"},
-+	{PCI_CHIP_I945_G,			"945G"},
-+	{PCI_CHIP_I945_GM,			"945GM"},
-+	{PCI_CHIP_I945_GME,			"945GME"},
-+	{PCI_CHIP_PINEVIEW_M,			"Pineview GM"},
-+	{PCI_CHIP_PINEVIEW_G,			"Pineview G"},
-+	{PCI_CHIP_I965_G,			"965G"},
-+	{PCI_CHIP_G35_G,			"G35"},
-+	{PCI_CHIP_I965_Q,			"965Q"},
-+	{PCI_CHIP_I946_GZ,			"946GZ"},
-+	{PCI_CHIP_I965_GM,			"965GM"},
-+	{PCI_CHIP_I965_GME,			"965GME/GLE"},
-+	{PCI_CHIP_G33_G,			"G33"},
-+	{PCI_CHIP_Q35_G,			"Q35"},
-+	{PCI_CHIP_Q33_G,			"Q33"},
-+	{PCI_CHIP_GM45_GM,			"GM45"},
-+	{PCI_CHIP_G45_E_G,			"4 Series"},
-+	{PCI_CHIP_G45_G,			"G45/G43"},
-+	{PCI_CHIP_Q45_G,			"Q45/Q43"},
-+	{PCI_CHIP_G41_G,			"G41"},
-+	{PCI_CHIP_B43_G,			"B43"},
-+	{PCI_CHIP_B43_G1,			"B43"},
-+	{PCI_CHIP_IRONLAKE_D_G,			"Clarkdale"},
-+	{PCI_CHIP_IRONLAKE_M_G,			"Arrandale"},
-+	{PCI_CHIP_SANDYBRIDGE_GT1,		"Sandybridge Desktop (GT1)" },
-+	{PCI_CHIP_SANDYBRIDGE_GT2,		"Sandybridge Desktop (GT2)" },
-+	{PCI_CHIP_SANDYBRIDGE_GT2_PLUS,		"Sandybridge Desktop (GT2+)" },
-+	{PCI_CHIP_SANDYBRIDGE_M_GT1,		"Sandybridge Mobile (GT1)" },
-+	{PCI_CHIP_SANDYBRIDGE_M_GT2,		"Sandybridge Mobile (GT2)" },
-+	{PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS,	"Sandybridge Mobile (GT2+)" },
-+	{PCI_CHIP_SANDYBRIDGE_S_GT,		"Sandybridge Server" },
-+	{PCI_CHIP_IVYBRIDGE_M_GT1,		"Ivybridge Mobile (GT1)" },
-+	{PCI_CHIP_IVYBRIDGE_M_GT2,		"Ivybridge Mobile (GT2)" },
-+	{PCI_CHIP_IVYBRIDGE_D_GT1,		"Ivybridge Desktop (GT1)" },
-+	{PCI_CHIP_IVYBRIDGE_D_GT2,		"Ivybridge Desktop (GT2)" },
-+	{PCI_CHIP_IVYBRIDGE_S_GT1,		"Ivybridge Server" },
-+	{-1,					NULL}
- };
- SymTabRec *intel_chipsets = (SymTabRec *) _intel_chipsets;
- 
- #define INTEL_DEVICE_MATCH(d,i) \
--{ 0x8086, (d), PCI_MATCH_ANY, PCI_MATCH_ANY, 0, 0, (i) }
-+    { 0x8086, (d), PCI_MATCH_ANY, PCI_MATCH_ANY, 0, 0, (intptr_t)(i) }
- 
- static const struct pci_id_match intel_device_match[] = {
--    INTEL_DEVICE_MATCH (PCI_CHIP_I810, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I810_DC100, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I810_E, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I815, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I830_M, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_845_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I854, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I855_GM, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I865_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I915_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_E7221_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I915_GM, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I945_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I945_GM, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I945_GME, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_PINEVIEW_M, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_PINEVIEW_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I965_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_G35_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I965_Q, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I946_GZ, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I965_GM, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_I965_GME, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_G33_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_Q35_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_Q33_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_GM45_GM, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_G45_E_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_G45_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_Q45_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_G41_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_B43_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_IRONLAKE_D_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_IRONLAKE_M_G, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_GT1, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_GT2, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_GT2_PLUS, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_M_GT1, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_M_GT2, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS, 0 ),
--    INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_S_GT, 0 ),
--    { 0, 0, 0 },
--};
--
--static PciChipsets intel_pci_chipsets[] = {
--    {PCI_CHIP_I810,		PCI_CHIP_I810,		NULL},
--    {PCI_CHIP_I810_DC100,	PCI_CHIP_I810_DC100,	NULL},
--    {PCI_CHIP_I810_E,		PCI_CHIP_I810_E,	NULL},
--    {PCI_CHIP_I815,		PCI_CHIP_I815,		NULL},
--    {PCI_CHIP_I830_M,		PCI_CHIP_I830_M,	NULL},
--    {PCI_CHIP_845_G,		PCI_CHIP_845_G,		NULL},
--    {PCI_CHIP_I854,		PCI_CHIP_I854,		NULL},
--    {PCI_CHIP_I855_GM,		PCI_CHIP_I855_GM,	NULL},
--    {PCI_CHIP_I865_G,		PCI_CHIP_I865_G,	NULL},
--    {PCI_CHIP_I915_G,		PCI_CHIP_I915_G,	NULL},
--    {PCI_CHIP_E7221_G,		PCI_CHIP_E7221_G,	NULL},
--    {PCI_CHIP_I915_GM,		PCI_CHIP_I915_GM,	NULL},
--    {PCI_CHIP_I945_G,		PCI_CHIP_I945_G,	NULL},
--    {PCI_CHIP_I945_GM,		PCI_CHIP_I945_GM,	NULL},
--    {PCI_CHIP_I945_GME,		PCI_CHIP_I945_GME,	NULL},
--    {PCI_CHIP_PINEVIEW_M,	PCI_CHIP_PINEVIEW_M,	NULL},
--    {PCI_CHIP_PINEVIEW_G,	PCI_CHIP_PINEVIEW_G,		NULL},
--    {PCI_CHIP_I965_G,		PCI_CHIP_I965_G,	NULL},
--    {PCI_CHIP_G35_G,		PCI_CHIP_G35_G,		NULL},
--    {PCI_CHIP_I965_Q,		PCI_CHIP_I965_Q,	NULL},
--    {PCI_CHIP_I946_GZ,		PCI_CHIP_I946_GZ,	NULL},
--    {PCI_CHIP_I965_GM,		PCI_CHIP_I965_GM,	NULL},
--    {PCI_CHIP_I965_GME,		PCI_CHIP_I965_GME,	NULL},
--    {PCI_CHIP_G33_G,		PCI_CHIP_G33_G,		NULL},
--    {PCI_CHIP_Q35_G,		PCI_CHIP_Q35_G,		NULL},
--    {PCI_CHIP_Q33_G,		PCI_CHIP_Q33_G,		NULL},
--    {PCI_CHIP_GM45_GM,		PCI_CHIP_GM45_GM,	NULL},
--    {PCI_CHIP_G45_E_G,		PCI_CHIP_G45_E_G,	NULL},
--    {PCI_CHIP_G45_G,		PCI_CHIP_G45_G,		NULL},
--    {PCI_CHIP_Q45_G,		PCI_CHIP_Q45_G,		NULL},
--    {PCI_CHIP_G41_G,		PCI_CHIP_G41_G,		NULL},
--    {PCI_CHIP_B43_G,		PCI_CHIP_B43_G,		NULL},
--    {PCI_CHIP_IRONLAKE_D_G,	PCI_CHIP_IRONLAKE_D_G,	NULL},
--    {PCI_CHIP_IRONLAKE_M_G,	PCI_CHIP_IRONLAKE_M_G,	NULL},
--    {PCI_CHIP_SANDYBRIDGE_GT1,	PCI_CHIP_SANDYBRIDGE_GT1,	NULL},
--    {PCI_CHIP_SANDYBRIDGE_GT2,	PCI_CHIP_SANDYBRIDGE_GT2,	NULL},
--    {PCI_CHIP_SANDYBRIDGE_GT2_PLUS,	PCI_CHIP_SANDYBRIDGE_GT2_PLUS,	NULL},
--    {PCI_CHIP_SANDYBRIDGE_M_GT1,	PCI_CHIP_SANDYBRIDGE_M_GT1,	NULL},
--    {PCI_CHIP_SANDYBRIDGE_M_GT2,	PCI_CHIP_SANDYBRIDGE_M_GT2,	NULL},
--    {PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS,	PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS, NULL},
--    {PCI_CHIP_SANDYBRIDGE_S_GT,		PCI_CHIP_SANDYBRIDGE_S_GT,	NULL},
--    {-1,				-1, NULL }
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I810, &intel_i81x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I810_DC100, &intel_i81x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I810_E, &intel_i81x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I815, &intel_i81x_info ),
-+
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I830_M, &intel_i8xx_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_845_G, &intel_i8xx_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I854, &intel_i8xx_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I855_GM, &intel_i8xx_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I865_G, &intel_i8xx_info ),
-+
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I915_G, &intel_i915_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_E7221_G, &intel_i915_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I915_GM, &intel_i915_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I945_G, &intel_i915_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I945_GM, &intel_i915_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I945_GME, &intel_i915_info ),
-+
-+	INTEL_DEVICE_MATCH (PCI_CHIP_PINEVIEW_M, &intel_g33_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_PINEVIEW_G, &intel_g33_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_G33_G, &intel_g33_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_Q33_G, &intel_g33_info ),
-+	/* Another marketing win: Q35 is another g33 device not a gen4 part
-+	 * like its G35 brethren.
-+	 */
-+	INTEL_DEVICE_MATCH (PCI_CHIP_Q35_G, &intel_g33_info ),
-+
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I965_G, &intel_i965_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_G35_G, &intel_i965_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I965_Q, &intel_i965_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I946_GZ, &intel_i965_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I965_GM, &intel_i965_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_I965_GME, &intel_i965_info ),
-+
-+	INTEL_DEVICE_MATCH (PCI_CHIP_GM45_GM, &intel_g4x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_G45_E_G, &intel_g4x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_G45_G, &intel_g4x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_Q45_G, &intel_g4x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_G41_G, &intel_g4x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_B43_G, &intel_g4x_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_B43_G1, &intel_g4x_info ),
-+
-+	INTEL_DEVICE_MATCH (PCI_CHIP_IRONLAKE_D_G, &intel_ironlake_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_IRONLAKE_M_G, &intel_ironlake_info ),
-+
-+	INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_GT1, &intel_sandybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_GT2, &intel_sandybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_GT2_PLUS, &intel_sandybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_M_GT1, &intel_sandybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_M_GT2, &intel_sandybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS, &intel_sandybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_SANDYBRIDGE_S_GT, &intel_sandybridge_info ),
-+
-+	INTEL_DEVICE_MATCH (PCI_CHIP_IVYBRIDGE_M_GT1, &intel_ivybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_IVYBRIDGE_M_GT2, &intel_ivybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_IVYBRIDGE_D_GT1, &intel_ivybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_IVYBRIDGE_D_GT2, &intel_ivybridge_info ),
-+	INTEL_DEVICE_MATCH (PCI_CHIP_IVYBRIDGE_S_GT1, &intel_ivybridge_info ),
-+
-+	{ 0, 0, 0 },
- };
- 
- void intel_detect_chipset(ScrnInfoPtr scrn,
- 			  struct pci_device *pci,
- 			  struct intel_chipset *chipset)
- {
--    uint32_t capid;
--
--    switch (DEVICE_ID(pci)) {
--    case PCI_CHIP_I810:
--	chipset->name = "i810";
--	chipset->info = &intel_i81x_info;
--	break;
--    case PCI_CHIP_I810_DC100:
--	chipset->name = "i810-dc100";
--	chipset->info = &intel_i81x_info;
--	break;
--    case PCI_CHIP_I810_E:
--	chipset->name = "i810e";
--	chipset->info = &intel_i81x_info;
--	break;
--    case PCI_CHIP_I815:
--	chipset->name = "i815";
--	chipset->info = &intel_i81x_info;
--	break;
--    case PCI_CHIP_I830_M:
--	chipset->name = "830M";
--	chipset->info = &intel_i8xx_info;
--	break;
--    case PCI_CHIP_845_G:
--	chipset->name = "845G";
--	chipset->info = &intel_i8xx_info;
--	break;
--    case PCI_CHIP_I854:
--	chipset->name = "854";
--	chipset->info = &intel_i8xx_info;
--	break;
--    case PCI_CHIP_I855_GM:
--	/* Check capid register to find the chipset variant */
--	pci_device_cfg_read_u32(pci, &capid, I85X_CAPID);
--	chipset->variant =
--	    (capid >> I85X_VARIANT_SHIFT) & I85X_VARIANT_MASK;
--	switch (chipset->variant) {
--	case I855_GM:
--	    chipset->name = "855GM";
--	    break;
--	case I855_GME:
--	    chipset->name = "855GME";
--	    break;
--	case I852_GM:
--	    chipset->name = "852GM";
--	    break;
--	case I852_GME:
--	    chipset->name = "852GME";
--	    break;
--	default:
--	    xf86DrvMsg(scrn->scrnIndex, X_INFO,
--		       "Unknown 852GM/855GM variant: 0x%x)\n",
--		       chipset->variant);
--	    chipset->name = "852GM/855GM (unknown variant)";
--	    break;
-+	int i;
-+
-+	chipset->info = chipset_info;
-+
-+	for (i = 0; intel_chipsets[i].name != NULL; i++) {
-+		if (DEVICE_ID(pci) == intel_chipsets[i].token) {
-+			chipset->name = intel_chipsets[i].name;
-+			break;
-+		}
-+	}
-+	if (intel_chipsets[i].name == NULL) {
-+		chipset->name = "unknown chipset";
- 	}
--	chipset->info = &intel_i8xx_info;
--	break;
--    case PCI_CHIP_I865_G:
--	chipset->name = "865G";
--	chipset->info = &intel_i8xx_info;
--	break;
--    case PCI_CHIP_I915_G:
--	chipset->name = "915G";
--	chipset->info = &intel_i915_info;
--	break;
--    case PCI_CHIP_E7221_G:
--	chipset->name = "E7221 (i915)";
--	chipset->info = &intel_i915_info;
--	break;
--    case PCI_CHIP_I915_GM:
--	chipset->name = "915GM";
--	chipset->info = &intel_i915_info;
--	break;
--    case PCI_CHIP_I945_G:
--	chipset->name = "945G";
--	chipset->info = &intel_i915_info;
--	break;
--    case PCI_CHIP_I945_GM:
--	chipset->name = "945GM";
--	chipset->info = &intel_i915_info;
--	break;
--    case PCI_CHIP_I945_GME:
--	chipset->name = "945GME";
--	chipset->info = &intel_i915_info;
--	break;
--    case PCI_CHIP_PINEVIEW_M:
--	chipset->name = "Pineview GM";
--	chipset->info = &intel_g33_info;
--	break;
--    case PCI_CHIP_PINEVIEW_G:
--	chipset->name = "Pineview G";
--	chipset->info = &intel_g33_info;
--	break;
--    case PCI_CHIP_I965_G:
--	chipset->name = "965G";
--	chipset->info = &intel_i965_info;
--	break;
--    case PCI_CHIP_G35_G:
--	chipset->name = "G35";
--	chipset->info = &intel_i965_info;
--	break;
--    case PCI_CHIP_I965_Q:
--	chipset->name = "965Q";
--	chipset->info = &intel_i965_info;
--	break;
--    case PCI_CHIP_I946_GZ:
--	chipset->name = "946GZ";
--	chipset->info = &intel_i965_info;
--	break;
--    case PCI_CHIP_I965_GM:
--	chipset->name = "965GM";
--	chipset->info = &intel_i965_info;
--	break;
--    case PCI_CHIP_I965_GME:
--	chipset->name = "965GME/GLE";
--	chipset->info = &intel_i965_info;
--	break;
--    case PCI_CHIP_G33_G:
--	chipset->name = "G33";
--	chipset->info = &intel_g33_info;
--	break;
--    case PCI_CHIP_Q35_G:
--	chipset->name = "Q35";
--	chipset->info = &intel_g33_info;
--	break;
--    case PCI_CHIP_Q33_G:
--	chipset->name = "Q33";
--	chipset->info = &intel_g33_info;
--	break;
--    case PCI_CHIP_GM45_GM:
--	chipset->name = "GM45";
--	chipset->info = &intel_g4x_info;
--	break;
--    case PCI_CHIP_G45_E_G:
--	chipset->name = "4 Series";
--	chipset->info = &intel_g4x_info;
--	break;
--    case PCI_CHIP_G45_G:
--	chipset->name = "G45/G43";
--	chipset->info = &intel_g4x_info;
--	break;
--    case PCI_CHIP_Q45_G:
--	chipset->name = "Q45/Q43";
--	chipset->info = &intel_g4x_info;
--	break;
--    case PCI_CHIP_G41_G:
--	chipset->name = "G41";
--	chipset->info = &intel_g4x_info;
--	break;
--    case PCI_CHIP_B43_G:
--	chipset->name = "B43";
--	chipset->info = &intel_g4x_info;
--	break;
--    case PCI_CHIP_IRONLAKE_D_G:
--	chipset->name = "Clarkdale";
--	chipset->info = &intel_ironlake_info;
--	break;
--    case PCI_CHIP_IRONLAKE_M_G:
--	chipset->name = "Arrandale";
--	chipset->info = &intel_ironlake_info;
--	break;
--    case PCI_CHIP_SANDYBRIDGE_GT1:
--    case PCI_CHIP_SANDYBRIDGE_GT2:
--    case PCI_CHIP_SANDYBRIDGE_GT2_PLUS:
--    case PCI_CHIP_SANDYBRIDGE_M_GT1:
--    case PCI_CHIP_SANDYBRIDGE_M_GT2:
--    case PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS:
--    case PCI_CHIP_SANDYBRIDGE_S_GT:
--	chipset->name = "Sandybridge";
--	chipset->info = &intel_sandybridge_info;
--	break;
--    default:
--	chipset->name = "unknown chipset";
--	break;
--    }
--
--    xf86DrvMsg(scrn->scrnIndex, X_INFO,
--	       "Integrated Graphics Chipset: Intel(R) %s\n", chipset->name);
-+
-+	xf86DrvMsg(scrn->scrnIndex, X_INFO,
-+		   "Integrated Graphics Chipset: Intel(R) %s\n", chipset->name);
- }
- 
- /*
-@@ -404,30 +225,30 @@ void intel_detect_chipset(ScrnInfoPtr scrn,
-  */
- static void intel_identify(int flags)
- {
--    xf86PrintChipsets(INTEL_NAME,
--		      "Driver for Intel Integrated Graphics Chipsets",
--		      intel_chipsets);
-+	xf86PrintChipsets(INTEL_NAME,
-+			  "Driver for Intel Integrated Graphics Chipsets",
-+			  intel_chipsets);
- }
- 
- static Bool intel_driver_func(ScrnInfoPtr pScrn,
- 			      xorgDriverFuncOp op,
- 			      pointer ptr)
- {
--    xorgHWFlags *flag;
-+	xorgHWFlags *flag;
- 
--    switch (op) {
--    case GET_REQUIRED_HW_INTERFACES:
--	flag = (CARD32*)ptr;
-+	switch (op) {
-+	case GET_REQUIRED_HW_INTERFACES:
-+		flag = (CARD32*)ptr;
- #ifdef KMS_ONLY
--	(*flag) = 0;
-+		(*flag) = 0;
- #else
--	(*flag) = HW_IO | HW_MMIO;
-+		(*flag) = HW_IO | HW_MMIO;
- #endif
--	return TRUE;
--    default:
--	/* Unknown or deprecated function */
--	return FALSE;
--    }
-+		return TRUE;
-+	default:
-+		/* Unknown or deprecated function */
-+		return FALSE;
-+	}
- }
- 
- static Bool has_kernel_mode_setting(struct pci_device *dev)
-@@ -458,55 +279,65 @@ static Bool has_kernel_mode_setting(struct pci_device *dev)
-  * Setup the dispatch table for the rest of the driver functions.
-  *
-  */
--static Bool intel_pci_probe (DriverPtr		driver,
--			     int		entity_num,
--			     struct pci_device	*device,
--			     intptr_t		match_data)
-+static Bool intel_pci_probe(DriverPtr		driver,
-+			    int			entity_num,
-+			    struct pci_device	*device,
-+			    intptr_t		match_data)
- {
--    ScrnInfoPtr scrn;
-+	ScrnInfoPtr scrn;
-+	PciChipsets intel_pci_chipsets[ARRAY_SIZE(intel_chipsets)];
-+	int i;
-+
-+	chipset_info = (void *)match_data;
- 
--    if (!has_kernel_mode_setting(device)) {
-+	if (!has_kernel_mode_setting(device)) {
- #if KMS_ONLY
--	    return FALSE;
-+		return FALSE;
- #else
--	    switch (DEVICE_ID(device)) {
--	    case PCI_CHIP_I810:
--	    case PCI_CHIP_I810_DC100:
--	    case PCI_CHIP_I810_E:
--	    case PCI_CHIP_I815:
--		    break;
--	    default:
--		    return FALSE;
--	    }
-+		switch (DEVICE_ID(device)) {
-+		case PCI_CHIP_I810:
-+		case PCI_CHIP_I810_DC100:
-+		case PCI_CHIP_I810_E:
-+		case PCI_CHIP_I815:
-+			break;
-+		default:
-+			return FALSE;
-+		}
- #endif
--    }
-+	}
- 
--    scrn = xf86ConfigPciEntity(NULL, 0, entity_num, intel_pci_chipsets,
--			       NULL, NULL, NULL, NULL, NULL);
--    if (scrn != NULL) {
--	scrn->driverVersion = INTEL_VERSION;
--	scrn->driverName = INTEL_DRIVER_NAME;
--	scrn->name = INTEL_NAME;
--	scrn->Probe = NULL;
-+	for (i = 0; i < ARRAY_SIZE(intel_chipsets); i++) {
-+		intel_pci_chipsets[i].numChipset = intel_chipsets[i].token;
-+		intel_pci_chipsets[i].PCIid = intel_chipsets[i].token;
-+		intel_pci_chipsets[i].dummy = NULL;
-+	}
-+
-+	scrn = xf86ConfigPciEntity(NULL, 0, entity_num, intel_pci_chipsets,
-+				   NULL, NULL, NULL, NULL, NULL);
-+	if (scrn != NULL) {
-+		scrn->driverVersion = INTEL_VERSION;
-+		scrn->driverName = INTEL_DRIVER_NAME;
-+		scrn->name = INTEL_NAME;
-+		scrn->Probe = NULL;
- 
- #if KMS_ONLY
--	intel_init_scrn(scrn);
-+		intel_init_scrn(scrn);
- #else
--	switch (DEVICE_ID(device)) {
--	case PCI_CHIP_I810:
--	case PCI_CHIP_I810_DC100:
--	case PCI_CHIP_I810_E:
--	case PCI_CHIP_I815:
--	    lg_i810_init(scrn);
--	    break;
--
--	default:
--	    intel_init_scrn(scrn);
--	    break;
--	}
-+		switch (DEVICE_ID(device)) {
-+		case PCI_CHIP_I810:
-+		case PCI_CHIP_I810_DC100:
-+		case PCI_CHIP_I810_E:
-+		case PCI_CHIP_I815:
-+			lg_i810_init(scrn);
-+			break;
-+
-+		default:
-+			intel_init_scrn(scrn);
-+			break;
-+		}
- #endif
--    }
--    return scrn != NULL;
-+	}
-+	return scrn != NULL;
- }
- 
- #ifdef XFree86LOADER
-@@ -514,16 +345,16 @@ static Bool intel_pci_probe (DriverPtr		driver,
- static MODULESETUPPROTO(intel_setup);
- 
- static XF86ModuleVersionInfo intel_version = {
--    "intel",
--    MODULEVENDORSTRING,
--    MODINFOSTRING1,
--    MODINFOSTRING2,
--    XORG_VERSION_CURRENT,
--    INTEL_VERSION_MAJOR, INTEL_VERSION_MINOR, INTEL_VERSION_PATCH,
--    ABI_CLASS_VIDEODRV,
--    ABI_VIDEODRV_VERSION,
--    MOD_CLASS_VIDEODRV,
--    {0, 0, 0, 0}
-+	"intel",
-+	MODULEVENDORSTRING,
-+	MODINFOSTRING1,
-+	MODINFOSTRING2,
-+	XORG_VERSION_CURRENT,
-+	INTEL_VERSION_MAJOR, INTEL_VERSION_MINOR, INTEL_VERSION_PATCH,
-+	ABI_CLASS_VIDEODRV,
-+	ABI_VIDEODRV_VERSION,
-+	MOD_CLASS_VIDEODRV,
-+	{0, 0, 0, 0}
- };
- 
- static const OptionInfoRec *
-@@ -546,16 +377,16 @@ intel_available_options(int chipid, int busid)
- }
- 
- static DriverRec intel = {
--    INTEL_VERSION,
--    INTEL_DRIVER_NAME,
--    intel_identify,
--    NULL,
--    intel_available_options,
--    NULL,
--    0,
--    intel_driver_func,
--    intel_device_match,
--    intel_pci_probe
-+	INTEL_VERSION,
-+	INTEL_DRIVER_NAME,
-+	intel_identify,
-+	NULL,
-+	intel_available_options,
-+	NULL,
-+	0,
-+	intel_driver_func,
-+	intel_device_match,
-+	intel_pci_probe
- };
- 
- static pointer intel_setup(pointer module,
-@@ -563,24 +394,24 @@ static pointer intel_setup(pointer module,
- 			   int *errmaj,
- 			   int *errmin)
- {
--    static Bool setupDone = 0;
--
--    /* This module should be loaded only once, but check to be sure.
--    */
--    if (!setupDone) {
--	setupDone = 1;
--	xf86AddDriver(&intel, module, HaveDriverFuncs);
--
--	/*
--	 * The return value must be non-NULL on success even though there
--	 * is no TearDownProc.
--	 */
--	return (pointer) 1;
--    } else {
--	if (errmaj)
--	    *errmaj = LDR_ONCEONLY;
--	return NULL;
--    }
-+	static Bool setupDone = 0;
-+
-+	/* This module should be loaded only once, but check to be sure.
-+	*/
-+	if (!setupDone) {
-+		setupDone = 1;
-+		xf86AddDriver(&intel, module, HaveDriverFuncs);
-+
-+		/*
-+		 * The return value must be non-NULL on success even though there
-+		 * is no TearDownProc.
-+		 */
-+		return (pointer) 1;
-+	} else {
-+		if (errmaj)
-+			*errmaj = LDR_ONCEONLY;
-+		return NULL;
-+	}
- }
- 
- _X_EXPORT XF86ModuleData intelModuleData = { &intel_version, intel_setup, NULL };
-diff --git a/src/intel_video.c b/src/intel_video.c
-index 499614f..021ca5f 100644
---- a/src/intel_video.c
-+++ b/src/intel_video.c
-@@ -1599,6 +1599,7 @@ I830PutImageTextured(ScrnInfoPtr scrn,
- 					 pixmap);
- 	}
- 
-+	intel_get_screen_private(scrn)->needs_flush = TRUE;
- 	DamageDamageRegion(drawable, clipBoxes);
- 
- 	return Success;
diff --git a/abs/core/xf86-video-intel/xf86-video-intel.install b/abs/core/xf86-video-intel/xf86-video-intel.install
new file mode 100644
index 0000000..e3ddb55
--- /dev/null
+++ b/abs/core/xf86-video-intel/xf86-video-intel.install
@@ -0,0 +1,8 @@
+post_install() {
+  echo ">>> This driver now allows to switch"
+  echo ">>> between several acceleration methods."
+  echo ">>> Add to the device section in /etc/X11/xorg.conf"
+  echo ">>>   Option \"AccelMethod\" \"sna\""
+  echo ">>> use uxa/xaa method if you run into trouble with sna."
+}
+
-- 
cgit v0.12

