This patch should be applied to an un-modified XFree86 version 4.7.0
source tree.  It is patch 2 of 4 patches that will will convert the
source tree to XFree86 version 4.8.0.

To apply this patch, run the following from the directory containing your
'xc' directory:


	patch -p0 -E < XFree86-4.7.0-4.8.0.diff1
	patch -p0 -E < XFree86-4.7.0-4.8.0.diff2
	patch -p0 -E < XFree86-4.7.0-4.8.0.diff3
	patch -p0 -E < XFree86-4.7.0-4.8.0.diff4

	sh XFree86-4.7.0-4.8.0-cleanup.sh

	gzip -d < XFree86-4.7.0-4.8.0-diff0.tgz | tar vxf -

-------------------------------------------------------------------------------

Prereq: 4.7.0

Index: xc/programs/Xserver/hw/xfree86/drivers/chips/util/Imakefile
diff -u xc/programs/Xserver/hw/xfree86/drivers/chips/util/Imakefile:1.5 xc/programs/Xserver/hw/xfree86/drivers/chips/util/Imakefile:1.6
--- xc/programs/Xserver/hw/xfree86/drivers/chips/util/Imakefile:1.5	Fri Oct 14 08:16:38 2005
+++ xc/programs/Xserver/hw/xfree86/drivers/chips/util/Imakefile	Thu Jun 19 10:09:45 2008
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/util/Imakefile,v 1.5 2005/10/14 15:16:38 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/util/Imakefile,v 1.6 2008/06/19 17:09:45 tsi Exp $
 
 #include <Server.tmpl>
 
@@ -14,15 +14,14 @@
 		ProgramTargetName(memClock)
 INCLUDES      = -I$(XF86COMSRC) -I$(XF86OSSRC) -I$(XF86SRC)/dummylib \
 		-I$(SERVERSRC)/include
-LOCALLIBS     = $(XF86OSSRC)/libxf86_os.a $(XF86SRC)/dummylib/libdummy.a
 LOCAL_LDFLAGS = -L$(XF86OSSRC) -lxf86_os -L$(XF86SRC)/dummylib -ldummy \
 		$(SERVEREXTRASYSLIBS) MathLibrary
 
 AllTarget($(PROGS))
 
-NormalProgramTarget(dRegs,dRegs.o,$(LOCALLIBS),$(LOCAL_LDFLAGS),NullParameter)
-NormalProgramTarget(mRegs,mRegs.o,$(LOCALLIBS),$(LOCAL_LDFLAGS),NullParameter)
-NormalProgramTarget(modClock,modClock.o,$(LOCALLIBS),$(LOCAL_LDFLAGS),NullParameter)
+NormalProgramTarget(dRegs,dRegs.o,NullParameter,$(LOCAL_LDFLAGS),NullParameter)
+NormalProgramTarget(mRegs,mRegs.o,NullParameter,$(LOCAL_LDFLAGS),NullParameter)
+NormalProgramTarget(modClock,modClock.o,NullParameter,$(LOCAL_LDFLAGS),NullParameter)
 
 ProgramTargetName(memClock): ProgramTargetName(modClock)
 	RemoveFile($@)
Index: xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile
diff -u xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile:1.13 xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile:1.14
--- xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile:1.13	Fri Dec 16 19:02:49 2005
+++ xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile	Sat Sep 15 17:14:42 2007
@@ -1,7 +1,7 @@
 XCOMM
 XCOMM This is an Imakefile for the glide driver.  
 XCOMM
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile,v 1.13 2005/12/17 03:02:49 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile,v 1.14 2007/09/16 00:14:42 tsi Exp $
 /*
  * Copyright (c) 1994-2005 by The XFree86 Project, Inc.
  * All rights reserved.
@@ -52,25 +52,16 @@
 #define IHaveModules
 #include <Server.tmpl>
 
-#if !HasGlide2 || !defined(Glide2IncDir)
-all::
-	@echo "This driver requires that you define HasGlide2 and Glide2IncDir in host.def"
-	@exit 1
-install::
-	@echo "This driver requires that you define HasGlide2 and Glide2IncDir in host.def"
-	@exit 1
-#endif
-
 SRCS = glide_driver.c
 OBJS = glide_driver.o
 
 #if defined(XF86DriverSDK)
 INCLUDES = -I../../include
 #else
-INCLUDES = -I$(GLIDE2INCDIR) -I$(XF86COMSRC) -I$(XF86OSSRC) \
-           -I$(SERVERSRC)/fb -I$(SERVERSRC)/mi -I$(XF86SRC)/ramdac \
-           -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c -I$(SERVERSRC)/Xext \
-           -I$(SERVERSRC)/include -I$(XF86SRC)/shadowfb -I$(SERVERSRC)/render
+INCLUDES = -I$(XF86COMSRC) -I$(XF86OSSRC) -I$(SERVERSRC)/fb -I$(SERVERSRC)/mi \
+           -I$(XF86SRC)/ramdac -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
+           -I$(SERVERSRC)/Xext -I$(SERVERSRC)/include -I$(XF86SRC)/shadowfb \
+           -I$(SERVERSRC)/render
 #endif
 
 #if MakeHasPosixVariableSubstitutions
Index: xc/programs/Xserver/hw/xfree86/drivers/glide/glide.h
diff -u /dev/null xc/programs/Xserver/hw/xfree86/drivers/glide/glide.h:1.1
--- /dev/null	Mon Dec 15 09:54:58 2008
+++ xc/programs/Xserver/hw/xfree86/drivers/glide/glide.h	Sat Sep 15 17:15:27 2007
@@ -0,0 +1,199 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide.h,v 1.1 2007/09/16 00:15:27 tsi Exp $ */
+
+#ifndef __GLIDE_H__
+#define __GLIDE_H__
+
+typedef unsigned char   FxU8;
+typedef signed   char   FxI8;
+typedef unsigned short  FxU16;
+typedef signed   short  FxI16;
+typedef signed   int    FxI32;
+typedef unsigned int    FxU32;
+typedef int             FxBool;
+typedef float           FxFloat;
+typedef double          FxDouble;
+
+#ifndef GLIDE_NUM_TMU
+#  define GLIDE_NUM_TMU 2
+#endif
+
+#if ((GLIDE_NUM_TMU < 0) || (GLIDE_NUM_TMU > 3))
+#  error "GLIDE_NUM_TMU set to an invalid value"
+#endif
+
+/* Video defines */
+
+typedef FxI32 GrScreenRefresh_t;
+#define GR_REFRESH_60Hz   0x0
+#define GR_REFRESH_70Hz   0x1
+#define GR_REFRESH_72Hz   0x2
+#define GR_REFRESH_75Hz   0x3
+#define GR_REFRESH_80Hz   0x4
+#define GR_REFRESH_90Hz   0x5
+#define GR_REFRESH_100Hz  0x6
+#define GR_REFRESH_85Hz   0x7
+#define GR_REFRESH_120Hz  0x8
+#define GR_REFRESH_NONE   0xff
+
+typedef FxI32 GrScreenResolution_t;
+#define GR_RESOLUTION_320x200   0x0
+#define GR_RESOLUTION_320x240   0x1
+#define GR_RESOLUTION_400x256   0x2
+#define GR_RESOLUTION_512x384   0x3
+#define GR_RESOLUTION_640x200   0x4
+#define GR_RESOLUTION_640x350   0x5
+#define GR_RESOLUTION_640x400   0x6
+#define GR_RESOLUTION_640x480   0x7
+#define GR_RESOLUTION_800x600   0x8
+#define GR_RESOLUTION_960x720   0x9
+#define GR_RESOLUTION_856x480   0xa
+#define GR_RESOLUTION_512x256   0xb
+#define GR_RESOLUTION_1024x768  0xC
+#define GR_RESOLUTION_1280x1024 0xD
+#define GR_RESOLUTION_1600x1200 0xE
+#define GR_RESOLUTION_400x300   0xF
+#define GR_RESOLUTION_1152x864  0x10
+#define GR_RESOLUTION_1280x960  0x11
+#define GR_RESOLUTION_1600x1024 0x12
+#define GR_RESOLUTION_1792x1344 0x13
+#define GR_RESOLUTION_1856x1392 0x14
+#define GR_RESOLUTION_1920x1440 0x15
+#define GR_RESOLUTION_2048x1536 0x16
+#define GR_RESOLUTION_2048x2048 0x17
+#define GR_RESOLUTION_NONE      0xff
+
+#ifdef GR_RESOLUTION_MAX
+#undef GR_RESOLUTION_MAX
+#endif
+#ifdef GR_RESOLUTION_MIN
+#undef GR_RESOLUTION_MIN
+#endif
+#define GR_RESOLUTION_MIN       GR_RESOLUTION_320x200
+#define GR_RESOLUTION_MAX       GR_RESOLUTION_2048x2048
+
+typedef FxU32 GrColor_t;
+typedef FxU8  GrAlpha_t;
+
+#define MAX_NUM_SST            4
+
+#define GR_ZDEPTHVALUE_NEAREST  0xFFFF
+#define GR_ZDEPTHVALUE_FARTHEST 0x0000
+#define GR_WDEPTHVALUE_NEAREST  0x0000
+#define GR_WDEPTHVALUE_FARTHEST 0xFFFF
+
+typedef FxI32 GrBuffer_t;
+#define GR_BUFFER_FRONTBUFFER      0x0
+#define GR_BUFFER_BACKBUFFER       0x1
+#define GR_BUFFER_AUXBUFFER        0x2
+#define GR_BUFFER_DEPTHBUFFER      0x3
+#define GR_BUFFER_ALPHABUFFER      0x4
+#define GR_BUFFER_TRIPLEBUFFER     0x5
+
+#ifdef CHRIS_DENIS_ANTHONY_HACK
+#define GR_BUFFER_DENIS_HACK_ON    0x6
+#define GR_BUFFER_DENIS_HACK_OFF   0x7
+#endif
+
+typedef FxI32 GrColorFormat_t;
+#define GR_COLORFORMAT_ARGB     0x0
+#define GR_COLORFORMAT_ABGR     0x1
+
+#define GR_COLORFORMAT_RGBA     0x2
+#define GR_COLORFORMAT_BGRA     0x3
+
+typedef FxU32 GrLock_t;
+#define GR_LFB_READ_ONLY  0x00
+#define GR_LFB_WRITE_ONLY 0x01
+#define GR_LFB_IDLE       0x00
+#define GR_LFB_NOIDLE     0x10
+
+typedef FxI32 GrLfbWriteMode_t;
+#define GR_LFBWRITEMODE_565        0x0 /* RGB:RGB */
+#define GR_LFBWRITEMODE_555        0x1 /* RGB:RGB */
+#define GR_LFBWRITEMODE_1555       0x2 /* ARGB:ARGB */
+#define GR_LFBWRITEMODE_RESERVED1  0x3
+#define GR_LFBWRITEMODE_888        0x4 /* RGB */
+#define GR_LFBWRITEMODE_8888       0x5 /* ARGB */
+#define GR_LFBWRITEMODE_RESERVED2  0x6
+#define GR_LFBWRITEMODE_RESERVED3  0x7
+#define GR_LFBWRITEMODE_RESERVED4  0x8
+#define GR_LFBWRITEMODE_RESERVED5  0x9
+#define GR_LFBWRITEMODE_RESERVED6  0xa
+#define GR_LFBWRITEMODE_RESERVED7  0xb
+#define GR_LFBWRITEMODE_565_DEPTH  0xc /* RGB:DEPTH */
+#define GR_LFBWRITEMODE_555_DEPTH  0xd /* RGB:DEPTH */
+#define GR_LFBWRITEMODE_1555_DEPTH 0xe /* ARGB:DEPTH */
+#define GR_LFBWRITEMODE_ZA16       0xf /* DEPTH:DEPTH */
+#define GR_LFBWRITEMODE_ANY        0xFF
+
+typedef FxI32 GrOriginLocation_t;
+#define GR_ORIGIN_UPPER_LEFT    0x0
+#define GR_ORIGIN_LOWER_LEFT    0x1
+#define GR_ORIGIN_ANY           0xFF
+
+typedef struct {
+    int                size;
+    void               *lfbPtr;
+    FxU32              strideInBytes;
+    GrLfbWriteMode_t   writeMode;
+    GrOriginLocation_t origin;
+} GrLfbInfo_t;
+
+typedef int GrSstType;
+#define GR_SSTTYPE_VOODOO    0
+#define GR_SSTTYPE_SST96     1
+#define GR_SSTTYPE_AT3D      2
+#define GR_SSTTYPE_Voodoo2   3
+#define GR_SSTTYPE_Banshee   4
+
+typedef struct GrTMUConfig_St {
+  int    tmuRev;                /* Rev of Texelfx chip */
+  int    tmuRam;                /* 1, 2, or 4 MB */
+} GrTMUConfig_t;
+
+typedef struct GrVoodooConfig_St {
+  int    fbRam;                         /* 1, 2, or 4 MB */
+  int    fbiRev;                        /* Rev of Pixelfx chip */
+  int    nTexelfx;                      /* How many texelFX chips are there? */
+  FxBool sliDetect;                     /* Is it a scan-line interleaved board? */
+  GrTMUConfig_t tmuConfig[GLIDE_NUM_TMU];   /* Configuration of the Texelfx chips */
+} GrVoodooConfig_t;
+
+typedef struct GrSst96Config_St {
+  int   fbRam;                  /* How much? */
+  int   nTexelfx;
+  GrTMUConfig_t tmuConfig;
+} GrSst96Config_t;
+
+typedef GrVoodooConfig_t GrVoodoo2Config_t;
+
+typedef struct GrAT3DConfig_St {
+  int   rev;
+} GrAT3DConfig_t;
+
+typedef struct {
+  int num_sst;                  /* # of HW units in the system */
+  struct {
+    GrSstType type;             /* Which hardware is it? */
+    union SstBoard_u {
+      GrVoodooConfig_t  VoodooConfig;
+      GrSst96Config_t   SST96Config;
+      GrAT3DConfig_t    AT3DConfig;
+      GrVoodoo2Config_t Voodoo2Config;
+    } sstBoard;
+  } SSTs[MAX_NUM_SST];          /* configuration for each board */
+} GrHwConfiguration;
+
+typedef FxU32 GrLfbSrcFmt_t;
+#define GR_LFB_SRC_FMT_565          0x00
+#define GR_LFB_SRC_FMT_555          0x01
+#define GR_LFB_SRC_FMT_1555         0x02
+#define GR_LFB_SRC_FMT_888          0x04
+#define GR_LFB_SRC_FMT_8888         0x05
+#define GR_LFB_SRC_FMT_565_DEPTH    0x0c
+#define GR_LFB_SRC_FMT_555_DEPTH    0x0d
+#define GR_LFB_SRC_FMT_1555_DEPTH   0x0e
+#define GR_LFB_SRC_FMT_ZA16         0x0f
+#define GR_LFB_SRC_FMT_RLE16        0x80
+
+#endif /* __GLIDE_H__ */
Index: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c
diff -u xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c:1.34 xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c:1.35
--- xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c:1.34	Tue Jan 23 10:03:02 2007
+++ xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c	Sat Sep 15 17:14:42 2007
@@ -1,4 +1,4 @@
-
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c,v 1.35 2007/09/16 00:14:42 tsi Exp $ */
 /* 
    XFree86 driver for Glide(tm). (Mainly for Voodoo 1 and 2 cards)
 
@@ -45,7 +45,6 @@
    * Support static loading.  
 */
 
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c,v 1.34 2007/01/23 18:03:02 tsi Exp $ */
 
 #include "xf86Cursor.h"
 #include "colormapst.h"
@@ -63,7 +62,7 @@
 #include "xf86cmap.h"
 #include "shadowfb.h"
 
-#include <glide.h>
+#include "glide.h"      /* Now a local header file */
 
 #define TRUE 1
 #define FALSE 0
@@ -78,9 +77,8 @@
 typedef unsigned char      u8;
 typedef signed short int   s16;
 typedef unsigned short int u16;
-typedef signed long int    s32;
-typedef unsigned long int  u32;
-typedef u8                 bool;
+typedef signed int         s32;
+typedef unsigned int       u32;
  
 /* Card-specific driver information */
 
@@ -95,9 +93,6 @@
 typedef void (*pgrRenderBuffer_t)(GrBuffer_t);
 typedef void (*pgrClipWindow_t)(FxU32, FxU32, FxU32, FxU32);
 typedef void (*pgrBufferClear_t)(GrColor_t, GrAlpha_t, FxU16);
-typedef FxBool (*pgrLfbLock_t)(GrLock_t, GrBuffer_t, GrLfbWriteMode_t, GrOriginLocation_t, 
-                               FxBool, GrLfbInfo_t*);
-typedef FxBool (*pgrLfbUnlock_t)(GrLock_t, GrBuffer_t);
 typedef void (*pgrGlideShutdown_t)(void);
 
 
@@ -131,8 +126,6 @@
 static pgrRenderBuffer_t   pgrRenderBuffer;
 static pgrClipWindow_t     pgrClipWindow;
 static pgrBufferClear_t    pgrBufferClear;
-static pgrLfbLock_t        pgrLfbLock;
-static pgrLfbUnlock_t      pgrLfbUnlock;
 static pgrGlideShutdown_t  pgrGlideShutdown;
 static pgrLfbWriteRegion_t pgrLfbWriteRegion;
 
@@ -417,7 +410,7 @@
 	    pScrn->EnterVT	 = GLIDEEnterVT;
 	    pScrn->LeaveVT	 = GLIDELeaveVT;
 	    pScrn->FreeScreen    = GLIDEFreeScreen;
-	    pScrn->driverPrivate = (void*)sst;
+	    pScrn->driverPrivate = (void *)(unsigned long)sst;
 	    /*
 	     * XXX This is a hack because don't have the PCI info.  Set it as
 	     * an ISA entity with no resources.
@@ -454,7 +447,7 @@
   if (pScrn->numEntities != 1)
     return FALSE;
 
-  sst = (int)(pScrn->driverPrivate);
+  sst = (int)(unsigned long)pScrn->driverPrivate;
   pScrn->driverPrivate = NULL;
 
   /* Set pScrn->monitor */
@@ -957,12 +950,6 @@
   pgrClipWindow(0, 0, 1024, 768);
   pgrBufferClear(0, 0, GR_ZDEPTHVALUE_FARTHEST);
 
-  if (!r)
-  {
-    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not lock glide frame buffer\n");
-    return FALSE;
-  }
-
   pGlide->Blanked = FALSE;
   pGlide->GlideInitiated = TRUE;
   return TRUE;
@@ -1003,8 +990,6 @@
   GLIDE_FIND_FUNC(grRenderBuffer);
   GLIDE_FIND_FUNC(grClipWindow);
   GLIDE_FIND_FUNC(grBufferClear);
-  GLIDE_FIND_FUNC(grLfbLock);
-  GLIDE_FIND_FUNC(grLfbUnlock);
   GLIDE_FIND_FUNC(grGlideShutdown);
   GLIDE_FIND_FUNC(grLfbWriteRegion);
   return TRUE;
Index: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
diff -u xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:1.99 xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:1.101
--- xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:1.99	Mon Apr  9 08:37:15 2007
+++ xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c	Wed Oct  3 07:28:21 2007
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v 1.99 2007/04/09 15:37:15 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v 1.101 2007/10/03 14:28:21 tsi Exp $ */
 /**************************************************************************
 
 Copyright 2001 VA Linux Systems Inc., Fremont, California.
@@ -1605,6 +1605,8 @@
 #if HAVE_GET_PUT_BIOSMEMSIZE
    if ((pI830->saveBIOSMemSize = GetBIOSMemSize(pScrn)) != -1)
       return TRUE;
+
+   pI830->saveBIOSMemSize = 0;
 #endif
 
    if (IS_I830(pI830) || IS_845G(pI830)) {
@@ -1637,6 +1639,8 @@
 /*
  * TweakMemorySize() tweaks the BIOS image to set the correct size.
  * Original implementation by Christian Zietz in a stand-alone tool.
+ * Returns the previous value on success, or 1 (a value not aligned on a
+ * 64K boundary).
  */
 static CARD32
 TweakMemorySize(ScrnInfoPtr pScrn, CARD32 newsize, Bool preinit)
@@ -1657,21 +1661,21 @@
     int reg = (IS_845G(pI830) || IS_I865G(pI830)) ? _845_DRAM_RW_CONTROL
 	: _855_DRAM_RW_CONTROL;
     
-    PCITAG tag =pciTag(0,0,0);
+    PCITAG tag = pciTag(0,0,0);
 
     if(!pI830->PciInfo 
        || !(IS_845G(pI830) || IS_I85X(pI830) || IS_I865G(pI830)))
-	return 0;
+	return 1;
 
     if (!pI830->pVbe)
-	return 0;
+	return 1;
 
     biosAddr = xf86int10Addr(pI830->pVbe->pInt10, 
 				    pI830->pVbe->pInt10->BIOSseg << 4);
 
     if (!pI830->BIOSMemSizeLoc) {
 	if (!preinit)
-	    return 0;
+	    return 1;
 
 	/* Search for MAGIC string */
 	for (i = 0; i < SIZE; i++) {
@@ -1683,7 +1687,7 @@
 		j = 0;
 	    }
 	}
-	if (j < len) return 0;
+	if (j < len) return 1;
 
 	pI830->BIOSMemSizeLoc =  (i - j + 1 + (IS_845G(pI830)
 					    ? _845_IDOFFSET : _855_IDOFFSET));
@@ -1696,7 +1700,7 @@
     
     /* verify that register really contains current size */
     if (preinit && ((ret >> 16) !=  pI830->vbeInfo->TotalMemory))
-	return 0;
+	return 1;
 
     oldpermission = pciReadLong(tag, reg);
     pciWriteLong(tag, reg, DRAM_WRITE | (oldpermission & 0xffff)); 
@@ -1712,7 +1716,7 @@
 	
 	/* verify that change was successful */
 	if (pI830->vbeInfo->TotalMemory != (newsize >> 16)){
-	    ret = 0;
+	    ret = 1;
 	    *(CARD32 *)position = oldsize;
 	} else {
 	    pI830->BIOSMemorySize = KB(pI830->vbeInfo->TotalMemory * 64);
@@ -1724,7 +1728,7 @@
 
     pciWriteLong(tag, reg, oldpermission);
 
-     return ret;
+    return ret;
 }
 
 static void
@@ -1735,7 +1739,7 @@
 
    DPRINTF(PFX, "RestoreBIOSMemSize\n");
 
-   if (TweakMemorySize(pScrn, pI830->saveBIOSMemSize,FALSE))
+   if (TweakMemorySize(pScrn, pI830->saveBIOSMemSize, FALSE) != 1)
        return;
 
    if (!pI830->overrideBIOSMemSize)
@@ -2734,9 +2738,10 @@
 		       "BIOS now sees %ld kB VideoRAM\n",
 		       pI830->BIOSMemorySize / 1024);
  	 } else if ((pI830->saveBIOSMemSize
-		 = TweakMemorySize(pScrn, pI830->newBIOSMemSize,TRUE)) != 0) 
+		 = TweakMemorySize(pScrn, pI830->newBIOSMemSize, TRUE)) != 1) 
 	     pI830->overrideBIOSMemSize = TRUE;
 	 else {
+	     pI830->saveBIOSMemSize = 0;
 	     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 			"BIOS view of memory size can't be changed "
 			"(this is not an error).\n");
@@ -4673,7 +4678,7 @@
    if (pI830->pVbe)
       vbeFree(pI830->pVbe);
    pI830->pVbe = VBEInit(NULL, pI830->pEnt->index);
-   if (!TweakMemorySize(pScrn, pI830->newBIOSMemSize,FALSE))
+   if (TweakMemorySize(pScrn, pI830->newBIOSMemSize, FALSE) == 1)
        SetBIOSMemSize(pScrn, pI830->newBIOSMemSize);
    if (!pI830->pVbe)
       return FALSE;
@@ -5408,7 +5413,7 @@
          return FALSE;
 
    CheckInheritedState(pScrn);
-   if (!TweakMemorySize(pScrn, pI830->newBIOSMemSize,FALSE))
+   if (TweakMemorySize(pScrn, pI830->newBIOSMemSize, FALSE) == 1)
        SetBIOSMemSize(pScrn, pI830->newBIOSMemSize);
 
    ResetState(pScrn, FALSE);
Index: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c
diff -u xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:1.261 xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:1.262
--- xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:1.261	Mon Apr  9 12:05:34 2007
+++ xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c	Sat Sep 15 20:44:18 2007
@@ -1,3 +1,4 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c,v 1.262 2007/09/16 03:44:18 tsi Exp $ */
 /*
  * MGA Millennium (MGA2064W) with Ti3026 RAMDAC driver v.1.1
  *
@@ -44,7 +45,6 @@
  *		Added digital screen option for first head
  */
  
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c,v 1.261 2007/04/09 19:05:34 tsi Exp $ */
 
 /*
  * This is a first cut at a non-accelerated version to work with the
@@ -3654,28 +3654,19 @@
  
 	    fgets(sCmdIn, 255, fdIn);
  
-	    if(sCmdIn)
-	    {
- 
-		MGAExecuteEscCmd(xf86Screens[scrnIndex], sCmdIn, sCmdOut, mode);
+	    MGAExecuteEscCmd(xf86Screens[scrnIndex], sCmdIn, sCmdOut, mode);
  
-		/* Remove file and close file descriptor */
-		remove("/tmp/mgaDriverIn");
-		fclose(fdIn);
-		MWB(
-		    /* Write output data to output file for
-		       calling application */
-		    fputs(sCmdOut, fdOut);
-		    fclose(fdOut);
-		    )
-		mode->Flags &= 0x7FFFFFFF;
-		return TRUE;
-	    }
-	    else
-	    {
-		mode->Flags &= 0x7FFFFFFF;
-		return FALSE;
-	    }
+	    /* Remove file and close file descriptor */
+	    remove("/tmp/mgaDriverIn");
+	    fclose(fdIn);
+	    MWB(
+		/* Write output data to output file for
+		   calling application */
+		fputs(sCmdOut, fdOut);
+		fclose(fdOut);
+		)
+	    mode->Flags &= 0x7FFFFFFF;
+	    return TRUE;
 	}
 	else
 	{
Index: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_esc.c
diff -u xc/programs/Xserver/hw/xfree86/drivers/mga/mga_esc.c:1.5 xc/programs/Xserver/hw/xfree86/drivers/mga/mga_esc.c:1.6
--- xc/programs/Xserver/hw/xfree86/drivers/mga/mga_esc.c:1.5	Thu Aug 25 06:27:51 2005
+++ xc/programs/Xserver/hw/xfree86/drivers/mga/mga_esc.c	Sat Sep 15 20:44:18 2007
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_esc.c,v 1.5 2005/08/25 13:27:51 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_esc.c,v 1.6 2007/09/16 03:44:18 tsi Exp $ */
 /****************************************************************************
 * mga_esc.c
 *
@@ -119,6 +119,7 @@
    pMode->VRefresh = pModeInfo->ulRefreshRate;
 }
 
+/* This function cannot fail */
 static LPMGAMODEINFO  GetModeInfoPtr(ULONG ulScreen)
 {
 
@@ -298,13 +299,6 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
-
     if (pModeInfo->ulHBPorch > (8 * param[1]) )
     {
         pModeInfo->ulHBPorch -=8 * param[1];
@@ -325,12 +319,6 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
     if (pModeInfo->ulHFPorch > (8 * param[1]) )
     {
         pModeInfo->ulHFPorch -=8 * param[1];
@@ -352,12 +340,6 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
     if (pModeInfo->ulVBPorch > (param[1]) )
     {
         pModeInfo->ulVBPorch -= param[1];
@@ -378,12 +360,6 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
     if (pModeInfo->ulVFPorch >= (param[1]) )
     {
         pModeInfo->ulVFPorch -= param[1];
@@ -406,20 +382,12 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
     if ((param[0] & 0xffff) > 1)
     {
-
         ulStep = param[1] * 8;
     }
     else
     {
-
         ulStep = 8;
     }
 
@@ -451,24 +419,15 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
     if ((param[0] & 0xffff) > 1)
     {
-
         ulStep = param[1] * 8;
     }
     else
     {
-
         ulStep = 8;
     }
 
-
     fRefresh = GetVRefresh(pModeInfo);
     fPixelClock = (float)pModeInfo->ulPixClock;
     pModeInfo->ulHBPorch += ulStep;
@@ -490,20 +449,12 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
     if ((param[0] & 0xffff) > 1)
     {
-
         ulStep = param[1];
     }
     else
     {
-
         ulStep = 1;
     }
 
@@ -536,24 +487,15 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
     if ((param[0] & 0xffff) > 1)
     {
-
         ulStep = param[1];
     }
     else
     {
-
         ulStep = 1;
     }
 
-
     fRefresh = GetVRefresh(pModeInfo);
     fPixelClock = (float)pModeInfo->ulPixClock;
     pModeInfo->ulVFPorch += ulStep;
@@ -574,12 +516,6 @@
 
     pModeInfo = GetModeInfoPtr(param[0] >> 16);
 
-    if ( !pMgaModeInfo )
-    {
-        strcpy(sResult, "#error 1");
-        return;
-    }
-
     if ((param[0] & 0xffff) < 2)
     {
         strcpy(sResult, "#error 1");
Index: xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c
diff -u xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c:1.10 xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c:1.11
--- xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c:1.10	Fri Dec 10 08:07:03 2004
+++ xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c	Wed Oct 15 13:56:32 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c,v 1.10 2004/12/10 16:07:03 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c,v 1.11 2008/10/15 20:56:32 tsi Exp $ */
 /*
  * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
  * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
@@ -727,10 +727,8 @@
     drmInfo.sarea_priv_offset   = sizeof(XF86DRISAREARec);
     drmInfo.fb_offset           = pVia->FrameBufferBase;
     drmInfo.mmio_offset         = pVia->registerHandle;
-    if (pVia->IsPCI)
-	drmInfo.agpAddr = (CARD32)NULL;
-    else
-	drmInfo.agpAddr = (CARD32)pVia->agpAddr;
+    if (!pVia->IsPCI)
+	drmInfo.agpAddr = pVia->agpAddr;
 
 	if ((drmCommandWrite(pVia->drmFD, DRM_VIA_MAP_INIT,&drmInfo,
 			     sizeof(drmViaInit))) < 0)
Index: xc/programs/Xserver/hw/xfree86/etc/apSolaris.shar
diff -u xc/programs/Xserver/hw/xfree86/etc/apSolaris.shar:1.4 xc/programs/Xserver/hw/xfree86/etc/apSolaris.shar:1.5
--- xc/programs/Xserver/hw/xfree86/etc/apSolaris.shar:1.4	Mon Jul 10 15:19:11 2006
+++ xc/programs/Xserver/hw/xfree86/etc/apSolaris.shar	Thu May 15 10:25:40 2008
@@ -1,6 +1,6 @@
 #! /bin/sh
-# $XFree86: xc/programs/Xserver/hw/xfree86/etc/apSolaris.shar,v 1.4 2006/07/10 22:19:11 tsi Exp $
-
+# $XFree86: xc/programs/Xserver/hw/xfree86/etc/apSolaris.shar,v 1.5 2008/05/15 17:25:40 tsi Exp $
+#
 # This is a shell archive.  Save it in a file, remove anything before
 # this line, and then unpack it by entering "sh file".  Note, it may
 # create directories; files and directories will be owned by you and
@@ -24,9 +24,9 @@
 X#
 X#   File: makefile for aperture Framebuffer Driver
 X# Author: Doug Anson (danson@lgc.com)
-X#   Date: 2/15/94
+X#   Date: 1994.02.15
 X# Modified: David Holland (davidh@use.com)
-X#   Date: 2/23/94
+X#   Date: 1994.02.23
 X#   - Changed name, and debugging structure
 X# Modified: Marc Aurele La France (tsi@xfree86.org)
 X#   Date: 2001.06.08
@@ -42,6 +42,12 @@
 X#
 X# >>NOTE<< Have a look at Makefile.amd64 for amd64 specifics.
 X#
+X# Modified: Marc Aurele La France (tsi@xfree86.org)
+X#   Date: 2008.05.13
+X#   - Turf debugging messages that have outlived their usefullness
+X#   - Minor changes for stricter DDI compliance
+X#   - Ensure mmap'ings are non-cacheable and marked as having side effects
+X#
 X# GNU gcc compiler
 XCC=gcc
 XCFLGS=-fno-builtin -Wall -O3
@@ -52,14 +58,9 @@
 X#CFLGS=-Xa -xnolib -xO3
 X
 X#
-X# Debug error reporting
-X#DEBUG_FLG=
-X#DEBUG_FLG=-DAPERTURE_DEBUG
-X
-X#
 X# Files and object declarations
 XKERNEL_FLGS=-D_KERNEL -DSUNDDI
-XCFLAGS= $(CFLGS) $(KERNEL_FLGS) $(DEBUG_FLG)
+XCFLAGS= $(CFLGS) $(KERNEL_FLGS)
 XCFILES= aperture.c
 XOBJS= aperture.o
 XDRIVER= aperture
@@ -112,18 +113,24 @@
 X#
 X#   File: Makefile for aperture Framebuffer Driver
 X# Author: Doug Anson (danson@lgc.com)
-X#   Date: 2/15/94
+X#   Date: 1994.02.15
 X# Modified: David Holland (davidh@use.com)
-X#   Date: 2/23/94
+X#   Date: 1994.02.23
 X#   - Changed name, and debugging structure
 X# Modified: Marc Aurele La France (tsi@xfree86.org)
 X#   Date: 2001.06.08
 X#   - SPARC support, cleanup and turf aptest.
 X# Modified: Martin Bochnig (martin@martux.org)
+X#   Date: 2006.06.24
 X#   - amd64 64 bit kernel support, cosmetics and also
 X#     supporting sun4v (and arbitrary sparcv9) platforms
 X#     as well as SunOS 5.10 or higher now
 X#   - Changed name
+X# Modified: Marc Aurele La France (tsi@xfree86.org)
+X#   Date: 2008.05.13
+X#   - Turf debugging messages that have outlived their usefullness
+X#   - Minor changes for stricter DDI compliance
+X#   - Ensure mmap'ings are non-cacheable and marked as having side effects
 X#
 X
 X#
@@ -138,14 +145,9 @@
 X#CFLGS=-Xa -xarch=v9 -xnolib -xO3
 X
 X#
-X# Debug error reporting
-X#DEBUG_FLG=
-X#DEBUG_FLG=-DAPERTURE_DEBUG
-X
-X#
 X# Files and object declarations
 XKERNEL_FLGS=-D_KERNEL -DSUNDDI
-XCFLAGS= $(CFLGS) $(KERNEL_FLGS) $(DEBUG_FLG)
+XCFLAGS= $(CFLGS) $(KERNEL_FLGS)
 XCFILES= aperture.c
 XOBJS= aperture.o
 XDRIVER= aperture
@@ -178,9 +180,9 @@
 X#
 X#   File: Makefile for aperture Framebuffer Driver
 X# Author: Doug Anson (danson@lgc.com)
-X#   Date: 2/15/94
+X#   Date: 1994.02.15
 X# Modified: David Holland (davidh@use.com)
-X#   Date: 2/23/94
+X#   Date: 1994.02.23
 X#   - Changed name, and debugging structure
 X# Modified: Marc Aurele La France (tsi@xfree86.org)
 X#   Date: 2001.06.08
@@ -189,6 +191,11 @@
 X#   Date: 2006.06.24
 X#   - Changed name for generic sparcv9 support
 X#   - updated to better work with Solaris 10 and 11
+X# Modified: Marc Aurele La France (tsi@xfree86.org)
+X#   Date: 2008.05.13
+X#   - Turf debugging messages that have outlived their usefullness
+X#   - Minor changes for stricter DDI compliance
+X#   - Ensure mmap'ings are non-cacheable and marked as having side effects
 X#
 X
 X#
@@ -203,14 +210,9 @@
 X#CFLGS=-Xa -xarch=v9 -xnolib -xO3
 X
 X#
-X# Debug error reporting
-X#DEBUG_FLG=
-X#DEBUG_FLG=-DAPERTURE_DEBUG
-X
-X#
 X# Files and object declarations
 XKERNEL_FLGS=-D_KERNEL -DSUNDDI
-XCFLAGS= $(CFLGS) $(KERNEL_FLGS) $(DEBUG_FLG)
+XCFLAGS= $(CFLGS) $(KERNEL_FLGS)
 XCFILES= aperture.c
 XOBJS= aperture.o
 XDRIVER= aperture
@@ -252,9 +254,7 @@
 X
 XInstallation instructions:
 X
-X1) Check the Makefile, for appropriate CC, and CFLAGS definitions.  Compiling
-X   with APERTURE_DEBUG defined means the driver will generate streams of
-X   debugging output.  You'll probably want to leave this off...
+X1) Check the Makefile, for appropriate CC, and CFLAGS definitions.
 X
 X2) type 'make' (or 'gmake').  The driver should compile without any problems.
 X   No warning messages should be generated.
@@ -330,6 +330,9 @@
 X#include <sys/open.h>
 X#include <sys/stat.h>
 X#include <sys/sunddi.h>
+X#include <sys/vmsystm.h>
+X
+X#include <vm/seg_dev.h>
 X
 X#define DEV_IDENT  "aperture"
 X#define DEV_BANNER "XFree86 aperture driver"
@@ -353,6 +356,8 @@
 X#define NODESPECIFIC_DEV 0
 X#endif
 X
+Xstatic dev_info_t *aperture_dip;	/* private copy of devinfo pointer */
+X
 X/*
 X * open(9E)
 X */
@@ -374,26 +379,10 @@
 X	struct cred *cred;
 X#endif
 X{
-X	int error;
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering open()\n");
-X
-X#endif
-X
 X	if ((typ != OTYP_CHR) || (getminor(*devp)))
-X		error = EINVAL;
-X	else
-X		error = 0;
+X		return EINVAL;
 X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving open() = %d\n", error);
-X
-X#endif
-X
-X	return error;
+X	return 0;
 X}
 X
 X/*
@@ -418,25 +407,91 @@
 X	pfn_t pf;
 X	int error;
 X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering mmap(0x%016lx)\n", off);
-X
-X#endif
-X
-X	pf = btop((unsigned long)off);
+X	pf = ddi_btop(aperture_dip, (unsigned long)off);
 X
 X	/* Deal with mmap(9E) interface limits */
 X	error = (int)pf;
 X	if ((error < 0) || (pf != (pfn_t)error))
 X		error = -1;
 X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving mmap() = 0x%08lx", error);
+X	return error;
+X}
 X
+X/*
+X * segmap(9E)
+X */
+X/*ARGSUSED*/
+Xstatic int
+Xaperture_segmap
+X(
+X#ifdef __STDC__
+X	dev_t dev,
+X	off_t off,
+X	struct as *as,
+X	caddr_t *addrp,
+X	off_t len,
+X	uint_t prot,
+X	uint_t maxprot,
+X	uint_t flags,
+X	struct cred *cred
 X#endif
+X)
+X#ifndef __STDC__
+X	dev_t dev;
+X	off_t off;
+X	struct as *as;
+X	caddr_t *addrp;
+X	off_t len;
+X	uint_t prot;
+X	uint_t maxprot;
+X	uint_t flags;
+X	struct cred *cred;
+X#endif
+X{
+X	struct segdev_crargs segdev_args;
+X	off_t page;
+X	int error;
+X
+X	/* Only allow shared non-exec mappings */
+X	if (((flags & MAP_TYPE) != MAP_SHARED) || (prot & PROT_EXEC) ||
+X	    !(prot & (PROT_READ | PROT_WRITE)))
+X		return (EINVAL);
+X
+X	/* Validate range through mmap(9E) */
+X	for (page = 0;  page < len;  page += PAGESIZE)
+X		if (aperture_mmap(dev, off + page, maxprot) == -1)
+X			return (ENXIO);
 X
+X	as_rangelock(as);
+X	if ((flags & MAP_FIXED) == 0)
+X	{
+X		/* Pick an address */
+X		map_addr(addrp, len, (offset_t)off, 1, flags);
+X		if (*addrp == NULL)
+X		{
+X			as_rangeunlock(as);
+X			return (ENOMEM);
+X		}
+X	}
+X	else
+X	{
+X		/* Specific address;  Turf any previous mappings */
+X		(void) as_unmap(as, *addrp, len);
+X	}
+X
+X	segdev_args.offset = off;
+X	segdev_args.mapfunc = aperture_mmap;
+X	segdev_args.dev = dev;
+X	segdev_args.type = MAP_SHARED;
+X	segdev_args.prot = (uchar_t)prot;
+X	segdev_args.maxprot = (uchar_t)maxprot;
+X	segdev_args.hat_attr = 0;
+X	/* Mark mappings as non-cacheable and having side effects */
+X	segdev_args.hat_flags = HAT_LOAD_NOCONSIST;
+X	segdev_args.devmap_data = NULL;
+X
+X	error = as_map(as, *addrp, len, segdev_create, &segdev_args);
+X	as_rangeunlock(as);
 X	return error;
 X}
 X
@@ -452,16 +507,13 @@
 X	nodev,			/* ioctl */
 X	nodev,			/* devmap */
 X	aperture_mmap,		/* mmap */
-X	ddi_segmap,		/* segmap */
+X	aperture_segmap,	/* segmap */
 X	nochpoll,		/* poll */
 X	ddi_prop_op,		/* cb_prop_op */
 X	0,			/* streamtab  */
 X	D_NEW | D_MP | D_64BIT	/* Driver compatibility flag */
 X};
 X
-X
-Xstatic dev_info_t *aperture_dip;	/* private copy of devinfo pointer */
-X
 X/*
 X * getinfo(9E)
 X */
@@ -483,34 +535,17 @@
 X	void **result;
 X#endif
 X{
-X	int error;
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering getinfo()\n");
-X
-X#endif
-X
 X	switch (infocmd) {
 X	case DDI_INFO_DEVT2DEVINFO:
 X		*result = aperture_dip;
-X		error = DDI_SUCCESS;
-X		break;
+X		return DDI_SUCCESS;
 X	case DDI_INFO_DEVT2INSTANCE:
 X		*result = NULL;
-X		error = DDI_SUCCESS;
-X		break;
+X		return DDI_SUCCESS;
 X	default:
-X		error = DDI_FAILURE;
+X		return DDI_FAILURE;
 X	}
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving getinfo() = %d\n", error);
-X
-X#endif
-X
-X	return error;
+X	/*NOTREACHED*/
 X}
 X
 X/*
@@ -528,26 +563,28 @@
 X	dev_info_t *dip;
 X#endif
 X{
-X	int error;
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering identify()\n");
-X
-X#endif
-X
 X	if (strcmp(ddi_get_name(dip), DEV_IDENT))
-X		error = DDI_NOT_IDENTIFIED;
-X	else
-X		error = DDI_IDENTIFIED;
+X		return DDI_NOT_IDENTIFIED;
 X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving identify() = %d\n", error);
+X	return DDI_IDENTIFIED;
+X}
 X
+X/*
+X * probe(9E)
+X */
+X/*ARGSUSED*/
+Xstatic int
+Xaperture_probe
+X(
+X#ifdef __STDC__
+X	dev_info_t *dip
 X#endif
-X
-X	return error;
+X)
+X#ifndef __STDC__
+X	dev_info_t *dip;
+X#endif
+X{
+X	return DDI_PROBE_SUCCESS;
 X}
 X
 X/*
@@ -569,22 +606,9 @@
 X{
 X	int error;
 X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering attach()\n");
-X
-X#endif
-X
 X	if (cmd != DDI_ATTACH)
 X	{
-X
-X#ifdef APERTURE_DEBUG
-X
-X		cmn_err(CE_CONT, DEV_IDENT ":  not attach(, DDI_ATTACH)\n");
-X
-X#endif
-X
-X		error = DDI_FAILURE;
+X		error = DDI_SUCCESS;
 X	}
 X	else
 X	{
@@ -599,12 +623,6 @@
 X		}
 X	}
 X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving attach() = %d\n", error);
-X
-X#endif
-X
 X	return error;
 X}
 X
@@ -624,42 +642,22 @@
 X	ddi_detach_cmd_t cmd;
 X#endif
 X{
-X	int error;
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering detach()\n");
-X
-X#endif
-X
-X	if (cmd != DDI_DETACH)
-X	{
-X		error = DDI_FAILURE;
-X	}
-X	else
+X	if (cmd == DDI_DETACH)
 X	{
 X		ddi_remove_minor_node(dip, NULL);
 X		aperture_dip = NULL;
-X		error = DDI_SUCCESS;
 X	}
 X
-X#if APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving detach() = %d\n", error);
-X
-X#endif
-X
-X	return error;
+X	return DDI_SUCCESS;
 X}
 X
-X
 Xstatic struct dev_ops aperture_ops =
 X{
 X	DEVO_REV,		/* revision */
 X	0,			/* refcnt  */
 X	aperture_getinfo,	/* getinfo */
 X	aperture_identify,	/* identify */
-X	nulldev,		/* probe */
+X	aperture_probe,		/* probe */
 X	aperture_attach,	/* attach */
 X	aperture_detach,	/* detach */
 X	nodev,			/* reset */
@@ -667,7 +665,6 @@
 X	NULL			/* bus operations */
 X};
 X
-X
 Xstatic struct modldrv modldrv =
 X{
 X	&mod_driverops,		/* mod_ops structure pointer */
@@ -675,7 +672,6 @@
 X	&aperture_ops,		/* dev_ops structure pointer */
 X};
 X
-X
 Xstatic struct modlinkage modlinkage =
 X{
 X	MODREV_1,		/* module API revision */
@@ -685,7 +681,6 @@
 X	}
 X};
 X
-X
 X/*
 X * _init(9E)
 X */
@@ -697,23 +692,7 @@
 X#endif
 X)
 X{
-X	int error;
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering _init()\n");
-X
-X#endif
-X
-X	error = mod_install(&modlinkage);
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving _init() = %d\n", error);
-X
-X#endif
-X
-X	return error;
+X	return mod_install(&modlinkage);
 X}
 X
 X/*
@@ -730,23 +709,7 @@
 X	struct modinfo *modinfop;
 X#endif
 X{
-X	int error;
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering _info()\n");
-X
-X#endif
-X
-X	error = mod_info(&modlinkage, modinfop);
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving _info() = %d\n", error);
-X
-X#endif
-X
-X	return error;
+X	return mod_info(&modlinkage, modinfop);
 X}
 X
 X/*
@@ -760,23 +723,7 @@
 X#endif
 X)
 X{
-X	int error;
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  entering _fini()\n");
-X
-X#endif
-X
-X	error = mod_remove(&modlinkage);
-X
-X#ifdef APERTURE_DEBUG
-X
-X	cmn_err(CE_CONT, DEV_IDENT ":  leaving _fini() = %d\n", error);
-X
-X#endif
-X
-X	return error;
+X	return mod_remove(&modlinkage);
 X}
 END-of-aperture/aperture.c
 echo x - aperture/aperture.conf
@@ -804,4 +751,3 @@
 Xtype=ddi_pseudo;name=aperture	fbs/\M0
 END-of-aperture/devlink.tab
 exit
-
Index: xc/programs/Xserver/hw/xfree86/etc/ioport.c
diff -u xc/programs/Xserver/hw/xfree86/etc/ioport.c:1.9 xc/programs/Xserver/hw/xfree86/etc/ioport.c:1.10
--- xc/programs/Xserver/hw/xfree86/etc/ioport.c:1.9	Thu Jun 28 06:22:26 2007
+++ xc/programs/Xserver/hw/xfree86/etc/ioport.c	Mon Dec 31 16:40:13 2007
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/ioport.c,v 1.9 2007/06/28 13:22:26 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/ioport.c,v 1.10 2008/01/01 00:40:13 tsi Exp $ */
 /*
- * Copyright 2002 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2002 through 2008 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
Index: xc/programs/Xserver/hw/xfree86/etc/mmapr.c
diff -u xc/programs/Xserver/hw/xfree86/etc/mmapr.c:1.18 xc/programs/Xserver/hw/xfree86/etc/mmapr.c:1.19
--- xc/programs/Xserver/hw/xfree86/etc/mmapr.c:1.18	Mon Jan  1 08:08:21 2007
+++ xc/programs/Xserver/hw/xfree86/etc/mmapr.c	Mon Dec 31 16:40:13 2007
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/mmapr.c,v 1.18 2007/01/01 16:08:21 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/mmapr.c,v 1.19 2008/01/01 00:40:13 tsi Exp $ */
 /*
- * Copyright 2002 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2002 through 2008 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
Index: xc/programs/Xserver/hw/xfree86/etc/mmapw.c
diff -u xc/programs/Xserver/hw/xfree86/etc/mmapw.c:1.16 xc/programs/Xserver/hw/xfree86/etc/mmapw.c:1.17
--- xc/programs/Xserver/hw/xfree86/etc/mmapw.c:1.16	Mon Jan  1 08:08:21 2007
+++ xc/programs/Xserver/hw/xfree86/etc/mmapw.c	Mon Dec 31 16:40:13 2007
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/mmapw.c,v 1.16 2007/01/01 16:08:21 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/mmapw.c,v 1.17 2008/01/01 00:40:13 tsi Exp $ */
 /*
- * Copyright 2002 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2002 through 2008 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
Index: xc/programs/Xserver/hw/xfree86/etc/pci.ids
diff -u xc/programs/Xserver/hw/xfree86/etc/pci.ids:1.13 xc/programs/Xserver/hw/xfree86/etc/pci.ids:1.14
--- xc/programs/Xserver/hw/xfree86/etc/pci.ids:1.13	Thu Mar  1 08:01:39 2007
+++ xc/programs/Xserver/hw/xfree86/etc/pci.ids	Wed Mar 26 11:39:11 2008
@@ -11,7 +11,7 @@
 #	This file can be distributed under either the GNU General Public License
 #	(version 2 or higher) or the 3-clause BSD License.
 #
-#	Daily snapshot on Mon 2007-02-12 02:05:02
+#	Daily snapshot on Wed 2008-03-26 02:05:02
 #
 
 # Vendors, devices and subsystems. Please keep sorted.
@@ -40,6 +40,7 @@
 	4800  WinTV PVR-350
 	4801  WinTV PVR-250 MCE
 	4803  WinTV PVR-250
+	7801  WinTV HVR-1800 MCE
 	8003  WinTV PVR-150
 	8801  WinTV PVR-150
 	c801  WinTV PVR-150
@@ -65,6 +66,7 @@
 # SpeedStream is Efficient Networks, Inc, a Siemens Company
 02ac  SpeedStream
 	1012  1012 PCMCIA 10/100 Ethernet Card [RTL81xx]
+02e0  XFX Pine Group Inc
 0315  SK-Electronics Co., Ltd.
 0357  TTTech AG
 	000a  TTP-Monitoring Card V2.0
@@ -82,6 +84,7 @@
 	0109  F5U409-CU USB/Serial Portable Adapter
 	7050  F5D7050 802.11g Wireless USB Adapter
 	705c  F5D7050 v4
+058f  Alcor Micro Corporation
 05a9  OmniVision
 	8519  OV519 series
 05e3  CyberDoor
@@ -95,22 +98,23 @@
 	1703  ISDN Adapter (PCI Bus, DV, W)
 	1704  ISDN Adapter (PCI Bus, D, C)
 067b  Prolific Technology, Inc.
-	2303  PL-2303 USB-to-Serial Converter
 	3507  PL-3507 Hi-Speed USB & IEEE 1394 Combo to IDE Bridge Controller
 069d  Hughes Network Systems (HNS)
 0721  Sapphire, Inc.
 07ca  AVerMedia Technologies Inc.
+	a301  AVerTV 301
 	b808  AVerTV DVB-T Volar (USB 2.0)
 07e2  ELMEG Communication Systems GmbH
 0842  NPG, Personal Grand Technology
 08ff  AuthenTec
 	afe4  [Anchor] AF-S2 FingerLoc Sensor Module
-# Wrong ID used in subsystem ID of VIA USB controllers.
-0925  VIA Technologies, Inc. (Wrong ID)
+0925  First International Computer, Inc.
+	1234  VA-502 Mainboard
 093a  PixArt Imaging Inc.
 	010e  Innovage Mini Digital Camera
 	010f  SDC-300 Webcam
 	2468  CIF Single Chip
+	2600  PAC7311
 	2603  Philips Webcam SPC500NC
 	2608  Maxell MaxCam RotaWeb
 09c1  Arris
@@ -141,6 +145,7 @@
 	0001  PCI to EISA Bridge
 	0002  PCI to ISA Bridge
 	0046  Smart Array 64xx
+		0e11 4091  Smart Array 6i
 		0e11 409a  Smart Array 641
 		0e11 409b  Smart Array 642
 		0e11 409c  Smart Array 6400
@@ -198,8 +203,8 @@
 	ae10  Smart-2/P RAID Controller
 		0e11 4030  Smart-2/P Array Controller
 		0e11 4031  Smart-2SL Array Controller
-		0e11 4032  Smart Array Controller
-		0e11 4033  Smart 3100ES Array Controller
+		0e11 4032  Smart Array 3200 Controller
+		0e11 4033  Smart Array 3100ES Controller
 	ae29  MIS-L
 	ae2a  MPC
 	ae2b  MIS-E
@@ -286,7 +291,7 @@
 		4c53 1000  CC7/CR7/CP7/VC7/VP7/VR7 mainboard
 		4c53 1050  CT7 mainboard
 	0010  53C1510
-		0e11 4040  Integrated Array Controller
+		0e11 4040  Integrated Smart Array Controller
 		0e11 4048  RAID LC2 Controller
 		1000 1000  53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode)
 	0012  53c895a
@@ -312,10 +317,11 @@
 		1028 014a  PowerEdge 1750
 		1028 016c  PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4)
 		1028 0183  PowerEdge 1800
+		1028 018a  PERC 4/IM
 		1028 1010  LSI U320 SCSI Controller
 		103c 12c5  Ultra320 SCSI [A7173A]
 		124b 1170  PMC-USCSI320
-		1734 1052  Primergy RX300 S2
+		1734 1052  PRIMERGY BX/RX/TX S2 series onboard SCSI(IME)
 	0031  53c1030ZC PCI-X Fusion-MPT Dual Ultra320 SCSI
 	0032  53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI
 		1000 1000  LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller
@@ -325,11 +331,25 @@
 		1000 0066  MegaRAID SCSI 320-2XRWS
 	0041  53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI
 	0050  SAS1064 PCI-X Fusion-MPT SAS
+		1028 1f04  SAS 5/E
+		1028 1f09  SAS 5i/R
 	0054  SAS1068 PCI-X Fusion-MPT SAS
+		1028 1f04  SAS 5/E Adapter Controller
+		1028 1f05  SAS 5/i Adapter Controller
+		1028 1f06  SAS 5/i Integrated Controller
+		1028 1f07  SAS 5/iR Integrated RAID Controller
+		1028 1f08  SAS 5/iR Integrated RAID Controller
+		1028 1f09  SAS 5/iR Adapter RAID Controller
 	0055  SAS1068 PCI-X Fusion-MPT SAS
 		1033 8336  SAS1068
-	0056  SAS1064E PCI-Express Fusion-MPT SAS
+	0056  SAS1064ET PCI-Express Fusion-MPT SAS
+	0057  M1064E MegaRAID SAS
 	0058  SAS1068E PCI-Express Fusion-MPT SAS
+		1028 021d  SAS 6/iR Integrated Workstations RAID Controller
+		1028 1f0e  SAS 6/iR Adapter RAID Controller
+		1028 1f0f  SAS 6/iR Integrated Blades RAID Controller
+		1028 1f10  SAS 6/iR Integrated RAID Controller
+	0059  MegaRAID SAS 8208ELP/8208ELP
 	005a  SAS1066E PCI-Express Fusion-MPT SAS
 	005c  SAS1064A PCI-X Fusion-MPT SAS
 	005e  SAS1066 PCI-X Fusion-MPT SAS
@@ -341,20 +361,31 @@
 		1000 1010  MegaRAID SATA 350-8ELP
 		1000 1011  MegaRAID SATA 350-4ELP
 		1000 1012  MegaRAID SAS 8704ELP
+		1000 1016  MegaRAID SAS 8880EM2
 		1014 0363  MegaRAID SAS PCI Express ROMB
 		1014 0364  SystemX MegaRAID SAS 8808E
 		1014 0365  SystemX MegaRAID SAS 8884E
+		1014 0379  SystemX MegaRAID SAS 8880EM2
 		1028 1f0a  PERC 6/E Adapter RAID Controller
 		1028 1f0b  PERC 6/i Adapter RAID Controller
 		1028 1f0c  PERC 6/i Integrated RAID Controller
 		1028 1f0d  CERC 6/i Adapter RAID Controller
-		1028 1f11  CERC 6/i Adapter RAID Controller
+		1028 1f11  CERC 6/i Integrated RAID Controller
+		1033 835a  MegaRAID SAS PCI Express ROMB
 		1043 824d  MegaRAID SAS PCI Express ROMB
 		1170 002f  MegaRAID SAS PCI Express ROMB
+		1170 0036  MegaRAID SAS PCI Express ROMB
+		15d9 c080  MegaRAID SAS PCI Express ROMB
+		17aa 6b7c  MegaRAID SAS PCI Express ROMB
+		8086 1006  RAID Controller SRCSAS28EP
+		8086 100a  RAID Controller SRCSAS28EV
+		8086 1010  RAID Controller SRCSATA28E
 		8086 34cc  Integrated RAID Controller SROMBSAS28E
 		8086 34cd  Integrated RAID Controller SROMBSAS28E
 	0062  SAS1078 PCI-Express Fusion-MPT SAS
 		1000 0062  SAS1078 PCI-Express Fusion-MPT SAS
+	007c  MegaRAID SAS 1078DE
+		1014 0395  ServeRAID-AR10is SAS/SATA Controller
 	008f  53c875J
 		1092 8000  FirePort 40 SCSI Controller
 		1092 8760  FirePort 40 Dual SCSI Host Adapter
@@ -452,8 +483,11 @@
 	9100  INI-9100/9100W SCSI Host
 1002  ATI Technologies Inc
 	3150  M24 1P [Radeon Mobility X600]
+		103c 0934  nx8220
+	3151  M24 [FireMV 2400]
 	3152  M22 [Radeon Mobility X300]
-	3154  M24 1T [FireGL M24 GL]
+	3154  M24GL [Mobility FireGL V3200]
+	3171  M24 [FireMV 2400] (Secondary)
 	3e50  RV380 0x3e50 [Radeon X600]
 	3e54  RV380 0x3e54 [FireGL V3200]
 	3e70  RV380 [Radeon X600] (Secondary)
@@ -527,9 +561,10 @@
 		103c 0024  Pavilion ze4400 builtin Video
 		161f 2029  eMachines M5312 builtin Video
 	4337  Radeon IGP 330M/340M/350M
-		1014 053a  ThinkPad R40e (2684-HVG) builtin VGA controller
+		1014 053a  ThinkPad R40e
 		103c 0850  Radeon IGP 345M
 	4341  IXP150 AC'97 Audio Controller
+	4342  IXP200 3COM 3C920B Ethernet Controller
 	4345  EHCI USB Controller
 	4347  OHCI USB Controller #1
 	4348  OHCI USB Controller #2
@@ -542,53 +577,100 @@
 	436e  436E Serial ATA Controller
 	4370  IXP SB400 AC'97 Audio Controller
 		1025 0079  Aspire 5024WLMMi
+		1025 0091  Aspire 5032WXMi
 		103c 308b  MX6125
 		105b 0c81  Realtek ALC 653
 		107b 0300  MX6421
 	4371  IXP SB400 PCI-PCI Bridge
 		103c 308b  MX6125
+		1462 7217  Aspire L250
 	4372  IXP SB400 SMBus Controller
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
+		1462 7217  Aspire L250
 	4373  IXP SB400 USB2 Host Controller
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
+		1462 7217  Aspire L250
 	4374  IXP SB400 USB Host Controller
 		103c 308b  MX6125
+		1462 7217  Aspire L250
 	4375  IXP SB400 USB Host Controller
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
-	4376  Standard Dual Channel PCI IDE Controller
+		1462 7217  Aspire L250
+	4376  IXP SB400 IDE Controller
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
+		1462 7217  Aspire L250
 	4377  IXP SB400 PCI-ISA Bridge
 		1025 0080  Aspire 5024WLMi
 		103c 308b  MX6125
+		1462 7217  Aspire L250
 	4378  SB400 AC'97 Modem Controller
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
-	4379  4379 Serial ATA Controller
-	437a  437A Serial ATA Controller
+	4379  IXP SB400 Serial ATA Controller
+		1462 7141  Aspire L250
+	437a  IXP SB400 Serial ATA Controller
 		1002 4379  4379 Serial ATA Controller
 		1002 437a  437A Serial ATA Controller
+		1462 7141  Aspire L250
 		14f1 8800  Leadtek WinFast TV2000XP Expert
-	437b  SB450 HDA Audio
+	437b  IXP SB4x0 High Definition Audio Controller
+		1002 437b  IXP SB4x0 High Definition Audio Controller
+		10cf 1326  Fujitsu Lifebook A3040
 		1734 10b8  Realtek High Definition Audio
 	4380  SB600 Non-Raid-5 SATA
+		103c 2813  DC5750 Microtower
+		17f2 5999  KI690-AM2 Motherboard
 	4381  SB600 Raid-5 SATA
 	4382  SB600 AC97 Audio
-	4383  SB600 Azalia
-	4384  SB600 PCI to PCI Bridge
-	4385  SB600 SMBus
+	4383  SBx00 Azalia
+		0206 1028  Latitude D531
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
+	4384  SBx00 PCI to PCI Bridge
+	4385  SBx00 SMBus Controller
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	4386  SB600 USB Controller (EHCI)
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	4387  SB600 USB (OHCI0)
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	4388  SB600 USB (OHCI1)
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	4389  SB600 USB (OHCI2)
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	438a  SB600 USB (OHCI3)
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	438b  SB600 USB (OHCI4)
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	438c  SB600 IDE
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	438d  SB600 PCI to LPC Bridge
+		103c 280a  DC5750 Microtower
+		17f2 5000  KI690-AM2 Motherboard
 	438e  SB600 AC97 Modem
+	4390  SB700/SB800 SATA Controller [IDE mode]
+	4391  SB700/SB800 SATA Controller [AHCI mode]
+	4392  SB700/SB800 SATA Controller [Non-RAID5 mode]
+	4393  SB700/SB800 SATA Controller [RAID5 mode]
+	4394  SB700/SB800 SATA Controller [SATA and FC Enabled]
+	4395  SB800 SATA Controller [Storage mode with HyperFlash-PCIE]
+	4396  SB700/SB800 USB EHCI Controller
+	4397  SB700/SB800 USB OHCI0 Controller
+	4398  SB700/SB800 USB OHCI1 Controller
+	4399  SB700/SB800 USB OHCI2 Controller
+	439c  SB700/SB800 IDE Controller
+	439d  SB700/SB800 LPC host controller
 	4437  Radeon Mobility 7000 IGP
 	4554  210888ET [Mach64 ET]
 	4654  Mach64 VT
@@ -643,9 +725,11 @@
 		1028 00d1  PowerEdge 2550
 		1028 00d9  PowerEdge 2500
 		1028 0134  PowerEdge 600SC
+		1028 014a  PowerEdge 1750
+		1028 0165  PowerEdge 750
 		103c 10e1  NetServer Rage XL
 		107b 6400  6400 Server
-		1734 007a  Primergy RX300
+		1734 007a  PRIMERGY RX/TX series onboard VGA
 		8086 3411  SDS2 Mainboard
 		8086 3427  S875WP1-E mainboard
 		8086 5744  S845WD1-E mainboard
@@ -713,6 +797,8 @@
 	4c44  3D Rage LT Pro AGP-66
 	4c45  Rage Mobility M3 AGP
 	4c46  Rage Mobility M3 AGP 2x
+		1002 0155  IBM Thinkpad A22p
+		1014 0155  IBM Thinkpad A22p
 		1028 00b1  Latitude C600
 	4c47  3D Rage LT-G 215LG
 	4c49  3D Rage LT Pro
@@ -727,7 +813,6 @@
 		1014 0154  ThinkPad A20m/A21m
 		1028 00aa  Latitude CPt
 		1028 00bb  Latitude CPx
-		10e1 10cf  Fujitsu Siemens LifeBook C Series
 		1179 ff00  Satellite 1715XCDS laptop
 		13bd 1019  PC-AR10
 	4c4e  Rage Mobility L AGP 2x
@@ -742,6 +827,7 @@
 		1014 0517  ThinkPad T30
 		1028 00e6  Radeon Mobility M7 LW (Dell Inspiron 8100)
 		1028 012a  Latitude C640
+		1043 1622  Mobility Radeon M7 (L3C/S)
 		144d c006  Radeon Mobility M7 LW in vpr Matrix 170B4
 	4c58  Radeon RV200 LX [Mobility FireGL 7800 M7]
 	4c59  Radeon Mobility M6 LY
@@ -752,15 +838,16 @@
 		104d 8140  PCG-Z1SP laptop
 		1509 1930  Medion MD9703
 	4c5a  Radeon Mobility M6 LZ
-	4c64  Radeon R250 Ld [Radeon Mobility 9000 M9]
-	4c65  Radeon R250 Le [Radeon Mobility 9000 M9]
-	4c66  Radeon R250 [Mobility FireGL 9000]
-		1014 054d  Thinkpad T41
-	4c67  Radeon R250 Lg [Radeon Mobility 9000 M9]
+	4c64  Radeon RV250 Ld [Radeon Mobility 9000 M9]
+	4c65  Radeon RV250 Le [Radeon Mobility 9000 M9]
+	4c66  Radeon RV250 [Mobility FireGL 9000]
+		1014 054d  ThinkPad T41
+	4c67  Radeon RV250 Lg [Radeon Mobility 9000 M9]
 # Secondary chip to the Lf
-	4c6e  Radeon R250 Ln [Radeon Mobility 9000 M9] (Secondary)
+	4c6e  Radeon RV250 Ln [Radeon Mobility 9000 M9] (Secondary)
 	4d46  Rage Mobility M4 AGP
 	4d4c  Rage Mobility M4 AGP
+	4d52  Theater 550 PRO PCI [ATI TV Wonder 550]
 	4e44  Radeon R300 ND [Radeon 9700 Pro]
 		1002 515e  Radeon ES1000
 		1002 5965  Radeon ES1000
@@ -772,6 +859,7 @@
 	4e48  Radeon R350 [Radeon 9800 Pro]
 	4e49  Radeon R350 [Radeon 9800]
 	4e4a  RV350 NJ [Radeon 9800 XT]
+		1002 4e4a  R360 [Radeon 9800 XT]
 	4e4b  R350 NK [FireGL X2]
 	4e50  RV350 [Mobility Radeon 9600 M10]
 		1025 005a  TravelMate 290
@@ -795,6 +883,7 @@
 	4e68  Radeon R350 [Radeon 9800 Pro] (Secondary)
 	4e69  Radeon R350 [Radeon 9800] (Secondary)
 	4e6a  RV350 NJ [Radeon 9800 XT] (Secondary)
+		1002 4e6a  R360 [Radeon 9800 XT] (Secondary)
 		1002 4e71  M10 NQ [Radeon Mobility 9600]
 	4e71  M10 NQ [Radeon Mobility 9600] (Secondary)
 	4f72  RV250 [Radeon 9000 Series]
@@ -893,7 +982,9 @@
 		1002 0908  XVR-100 (supplied by Sun)
 # The IBM card doubles as an ATI PCI video adapter
 		1014 029a  Remote Supervisor Adapter II (RSA2)
-		1014 02c8  IBM eServer xSeries server mainboard
+		1014 02c8  eServer xSeries server mainboard
+		1028 016c  PowerEdge 1850
+		1028 016d  PowerEdge 2850
 		1028 019a  PowerEdge SC1425
 		103c 1292  Radeon 7000
 		1458 4002  RV100 QY [RADEON 7000 PRO MAYA AV Series]
@@ -905,6 +996,10 @@
 		17ee 1001  Radeon 7000 64MB DDR + DVI
 	515a  Radeon RV100 QZ [Radeon 7000/VE]
 	515e  ES1000
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
+		1028 020f  PowerEdge R300
+		1028 0210  PowerEdge T300
 	515f  ES1000
 	5168  Radeon R200 Qh
 	5169  Radeon R200 Qi
@@ -958,7 +1053,8 @@
 	5453  Rage 128 Pro Ultra TS
 	5454  Rage 128 Pro Ultra TT
 	5455  Rage 128 Pro Ultra TU
-	5460  M22 [Radeon Mobility M300]
+	5460  M22 [Mobility Radeon X300]
+		1775 1100  CR11/VR11 Single Board Computer
 	5462  M24 [Radeon Mobility X600]
 	5464  M22 [FireGL GL]
 	5548  R423 UH [Radeon X800 (PCIE)]
@@ -982,6 +1078,7 @@
 	5652  M26 [Radeon Mobility X700]
 	5653  Radeon Mobility X700 (PCIE)
 		1025 0080  Aspire 5024WLMi
+		103c 0940  HP Compaq NW8240 Mobile Workstation
 	5654  264VT [Mach64 VT]
 		1002 5654  Mach64VT Reference
 	5655  264VT3 [Mach64 VT3]
@@ -994,6 +1091,7 @@
 	5835  RS300M AGP [Radeon Mobility 9100IGP]
 	5838  Radeon 9100 IGP AGP Bridge
 	5940  RV280 [Radeon 9200 PRO] (Secondary)
+		17af 2021  Excalibur Radeon 9250 (Secondary)
 	5941  RV280 [Radeon 9200] (Secondary)
 		1458 4019  Gigabyte Radeon 9200
 		174b 7c12  Sapphire Radeon 9200
@@ -1002,7 +1100,9 @@
 	5944  RV280 [Radeon 9200 SE (PCI)]
 	5950  RS480 Host Bridge
 		1025 0080  Aspire 5024WLMMi
+		103c 280a  DC5750 Microtower
 		103c 308b  MX6125
+		1462 7217  Aspire L250
 	5951  Radeon Xpress 200 (RS480/RS482/RX480/RX482) Chipset - Host bridge
 	5952  RD580 [CrossFire Xpress 3200] Chipset Host Bridge
 	5954  RS480 [Radeon Xpress 200G Series]
@@ -1010,7 +1110,11 @@
 	5955  Radeon XPRESS 200M 5955 (PCIE)
 		1002 5955  RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)]
 		103c 308b  MX6125
+	5956  RD790 Northbridge only dual slot PCI-e_GFX and HT3 K8 part
+	5957  RX780/RX790 Chipset Host Bridge
+	5958  RD780 Northbridge only dual slot PCI-e_GFX and HT1 K8 part
 	5960  RV280 [Radeon 9200 PRO]
+		17af 2020  Excalibur Radeon 9250
 	5961  RV280 [Radeon 9200]
 		1002 2f72  All-in-Wonder 9200 Series
 		1019 4c30  Radeon 9200 VIVO
@@ -1034,9 +1138,39 @@
 		17af 2012  Radeon 9200 SE Excalibur
 		18bc 0170  Sapphire Radeon 9200 SE 128MB Game Buster
 		18bc 0173  GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]
+	5965  RV280 [FireMV 2200 PCI]
 	5969  ES1000
 	5974  RS482 [Radeon Xpress 200]
+		103c 280a  DC5750 Microtower
+		1462 7141  Aspire L250
 	5975  RS485 [Radeon Xpress 1100 IGP]
+	5978  RD790 PCI to PCI bridge (external gfx0 port A)
+	5979  RD790 PCI to PCI bridge (external gfx0 port B)
+	597a  RD790 PCI to PCI bridge (PCI express gpp port A)
+	597b  RD790 PCI to PCI bridge (PCI express gpp port B)
+	597c  RD790 PCI to PCI bridge (PCI express gpp port C)
+	597d  RD790 PCI to PCI bridge (PCI express gpp port D)
+	597e  RD790 PCI to PCI bridge (PCI express gpp port E)
+	597f  RD790 PCI to PCI bridge (PCI express gpp port F)
+	5980  RD790 PCI to PCI bridge (external gfx1 port A)
+	5981  RD790 PCI to PCI bridge (external gfx1 port B)
+	5982  RD790 PCI to PCI bridge (NB-SB link)
+	5a10  RD890 Northbridge only dual slot (2x16) PCI-e GFX Hydra part
+	5a11  RD890 Northbridge only single slot PCI-e GFX Hydra part
+	5a12  RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part
+	5a13  RD890 PCI to PCI bridge (external gfx0 port A)
+	5a14  RD890 PCI to PCI bridge (external gfx0 port B)
+	5a15  RD890 PCI to PCI bridge (PCI express gpp port A)
+	5a16  RD890 PCI to PCI bridge (PCI express gpp port B)
+	5a17  RD890 PCI to PCI bridge (PCI express gpp port C)
+	5a18  RD890 PCI to PCI bridge (PCI express gpp port D)
+	5a19  RD890 PCI to PCI bridge (PCI express gpp port E)
+	5a1a  RD890 PCI to PCI bridge (PCI express gpp port F)
+	5a1b  RD890 PCI to PCI bridge (PCI express gpp port G)
+	5a1c  RD890 PCI to PCI bridge (PCI express gpp port H)
+	5a1d  RD890 PCI to PCI bridge (external gfx1 port A)
+	5a1e  RD890 PCI to PCI bridge (external gfx1 port B)
+	5a1f  RD890 PCI to PCI bridge (NB-SB link)
 	5a33  Radeon Xpress 200 Host Bridge
 	5a34  RS480 PCI-X Root Port
 # Comes in pair with 5a3f
@@ -1046,6 +1180,7 @@
 # Comes in pair with 5a38
 	5a39  RS480 PCI Bridge
 	5a3f  RS480 PCI Bridge
+		1462 7217  Aspire L250
 	5a41  RS400 [Radeon Xpress 200]
 	5a42  RS400 [Radeon Xpress 200M]
 	5a61  RC410 [Radeon Xpress 200]
@@ -1053,8 +1188,10 @@
 	5b60  RV370 5B60 [Radeon X300 (PCIE)]
 		1043 002a  Extreme AX300SE-X
 		1043 032e  Extreme AX300/TD
+		1458 2102  GV-RX30S128D (X300SE)
 		1462 0400  RX300SE-TD128E (MS-8940 REV:200)
 		1462 0402  RX300SE-TD128E (MS-8940)
+		174b 0500  Radeon X300 (PCIE)
 		196d 1086  X300SE HM
 	5b62  RV380 [Radeon X600 (PCIE)]
 	5b63  RV370 [Sapphire X550 Silent]
@@ -1062,6 +1199,7 @@
 	5b65  RV370 5B65 [FireGL D1100 (PCIE)]
 	5b70  RV370 [Radeon X300SE]
 		1462 0403  RX300SE-TD128E (MS-8940) (secondary display)
+		174b 0501  Radeon X300SE
 		196d 1087  X300SE HM
 	5b72  RV380 [Radeon X600]
 	5b73  RV370 secondary [Sapphire X550 Silent]
@@ -1073,11 +1211,13 @@
 	5d44  RV280 [Radeon 9200 SE] (Secondary)
 		1458 4019  Radeon 9200 SE (Secondary)
 		1458 4032  Radeon 9200 SE 128MB
+		147b 6190  R9200SE-DT (Secondary)
 		174b 7c12  Sapphire Radeon 9200 SE (Secondary)
 		1787 5965  Excalibur 9200SE VIVO 128M (Secondary)
 		17af 2013  Radeon 9200 SE Excalibur (Secondary)
 		18bc 0171  Radeon 9200 SE 128MB Game Buster (Secondary)
 		18bc 0172  GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]
+	5d45  RV280 [FireMV 2200 PCI] (secondary)
 	5d48  M28 [Radeon Mobility X800XT]
 	5d49  M28 [Mobility FireGL V5100]
 	5d4a  Mobility Radeon X800
@@ -1128,28 +1268,34 @@
 		1002 0322  All-in-Wonder 2006 PCI-E Edition
 	7143  RV505 [Radeon X1550 Series]
 	7145  Radeon Mobility X1400
+		17aa 2006  Thinkpad T60 model 2007
 	7146  RV515 [Radeon X1300]
 		1002 0322  All-in-Wonder 2006 PCI-E Edition
+		1545 1996  Radeon X1300 512MB PCI-e
 	7147  RV505 [Radeon X1550 64-bit]
 	7149  M52 [Mobility Radeon X1300]
 	714a  M52 [Mobility Radeon X1300]
 	714b  M52 [Mobility Radeon X1300]
 	714c  M52 [Mobility Radeon X1300]
 	714d  RV515 [Radeon X1300]
-	714e  RV515 [Radeon X1300]
+	714e  RV515LE [Radeon X1300]
 	7152  RV515GL [FireGL V3300] (Primary)
 	7153  RV515GL [FireGL V3350]
 	715e  RV515 [Radeon X1300]
 	715f  RV505 CE [Radeon X1550 64-bit]
 	7162  RV515 PRO [Radeon X1300/X1550 Series] (Secondary)
 		1002 0323  All-in-Wonder 2006 PCI-E Edition (Secondary)
+	7163  RV505 [Radeon X1550 Series] (Secondary)
 	7166  RV515 [Radeon X1300] (Secondary)
 		1002 0323  All-in-Wonder 2006 PCI-E Edition (Secondary)
+		1545 1997  Radeon X1300 512MB PCI-e (Secondary)
+	716e  RV515LE [Radeon X1300] Secondary
 	7172  RV515GL [FireGL V3300] (Secondary)
 	7173  RV515GL [FireGL V3350] (Secondary)
 	7180  RV516 [Radeon X1300/X1550 Series]
 	7181  RV516 XT Radeon X1600 Series (Primary)
 	7183  RV516 [Radeon X1300/X1550 Series]
+	7186  RV515 [Radeon Mobility X1450]
 	7187  RV516 [Radeon X1300/X1550 Series]
 	7188  M64-S [Mobility Radeon X2300]
 	718a  Mobility Radeon X2300
@@ -1164,10 +1310,12 @@
 	71a7  RV516 [Radeon X1300/X1550 Series] (Secondary)
 	71bb  FireMV 2250 (Secondary)
 	71c0  RV530 [Radeon X1600]
+	71c1  Radeon X1650 Pro
 	71c2  RV530 [Radeon X1600]
 	71c4  M56GL [Mobility FireGL V5200]
 		17aa 2007  ThinkPad T60p
 	71c5  M56P [Radeon Mobility X1600]
+		103c 30a3  Compaq NW8440
 	71c6  RV530LE [Radeon X1600/X1650 PRO]
 	71c7  RV535 [Radeon X1650 Series]
 	71ce  RV530LE [Radeon X1600]
@@ -1176,6 +1324,7 @@
 	71d6  M66-XT [Mobility Radeon X1700]
 	71de  RV530LE [Radeon X1600]
 	71e0  RV530 [Radeon X1600] (Secondary)
+	71e1  Radeon X1650 Pro (Secondary)
 	71e2  RV530 [Radeon X1600] (Secondary)
 	71e6  RV530LE [Radeon X1650 PRO] (Secondary)
 	71e7  RV535 [Radeon X1650 Series]
@@ -1201,11 +1350,11 @@
 	7269  R580 [Radeon X1900 XT] (Secondary)
 	726b  R580 [Radeon X1900]
 	726e  R580 [AMD Stream Processor] (Secondary)
-	7280  Radeon X1950 Pro (Primary) (PCIE)
+	7280  RV570 [Radeon X1950 Pro]
 	7288  Radeon X1950 GT
 	7291  Radeon X1650 XT (Primary) (PCIE)
 	7293  Radeon X1650 Series
-	72a0  Radeon X1950 Pro (Secondary) (PCIE)
+	72a0  RV570 [Radeon X1950 Pro] (secondary)
 	72a8  Radeon X1950 GT (Secondary)
 	72b1  Radeon X1650 XT (Secondary) (PCIE)
 	72b3  Radeon X1650 Series (Secondary)
@@ -1213,11 +1362,73 @@
 	7834  Radeon 9100 PRO IGP
 	7835  Radeon Mobility 9200 IGP
 	7838  Radeon 9100 IGP PCI/AGP Bridge
+	7910  RS690 Host Bridge
+		17f2 5000  KI690-AM2 Motherboard
+	7912  RS690 PCI to PCI Bridge (Internal gfx)
+	7913  RS690 PCI to PCI Bridge (PCI Express Graphics Port 0)
+	7915  RS690 PCI to PCI Bridge (PCI Express Port 1)
+	7916  RS690 PCI to PCI Bridge (PCI Express Port 2)
+	7917  RS690 PCI to PCI Bridge (PCI Express Port 3)
 	7919  Radeon X1200 Series Audio Controller
-	791e  Radeon X1200 Series
-	791f  Radeon X1200 Series
-	793f  Radeon X1200 Series (Secondary)
+		17f2 5000  KI690-AM2 Motherboard
+	791e  RS690 [Radeon X1200 Series]
+		17f2 5000  KI690-AM2 Motherboard
+	791f  RS690M [Radeon X1200 Series]
+	793b  RS600 audio device [Radeon Xpress 12xx Series]
+	793f  RS600 [Radeon Xpress 1200 Series]
+	7941  RS600 [Radeon Xpress 1200 Series]
+	7942  Radeon Xpress 1250
+	796e  Radeon 2100
 	7c37  RV350 AQ [Radeon 9600 SE]
+	9400  R600 [Radeon HD 2900 Series]
+		1002 3000  Sapphire Radeon HD 2900 XT
+	940a  R600GL [Fire GL V8650]
+	940b  R600GL [Fire GL V8600]
+	94c1  Radeon HD 2400 XT
+		1028 0211  Optiplex 755
+	94c3  RV610 video device [Radeon HD 2400 PRO]
+		1002 94c3  Radeon HD 2400PRO
+		174b e400  Sapphire HD 2400 PRO video device
+	94c4  RV610LE [Radeon HD 2400 Series]
+	94c8  Radeon HD 2400 XT
+	94c9  Mobility Radeon HD 2400
+		1002 94c9  Radeon HD2400
+	94cb  Radeon E2400
+	94cc  RV 610LE PCI [Radeon HD 2400]
+	9501  Radeon HD 3870
+	9504  Mobility Radeon HD 3850
+	9505  Radeon HD 3850
+	9507  RV670 [Radeon HD 3850]
+	9508  M88 XT Mobility Radeon HD 3870]
+	950f  R680 [Radeon HD 3870 x2]
+	9515  RV670 AGP [Radeon HD 3850]
+	9559  Mobilitiy Radeon HD 3600 Series
+	9581  M76 [Radeon Mobility HD 2600 Series]
+	9586  RV 630 XT AGP [Radeon HD 2600 XT AGP]
+	9587  RV630 [Radeon HD 2600 AGP Series]
+	9588  RV630 [Radeon HD 2600XT]
+		1458 216c  Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H)
+	9589  RV630 [Radeon HD 2600 Series]
+	9591  Mobilitiy Radeon HD 3650
+	9593  Radeon Mobility HD 3670
+	9596  RV635 PRO AGP [Radeon HD 3650]
+	9598  Mobilitiy Radeon HD 3600 Series
+	95c0  Mobilitiy Radeon HD 3470
+	95c4  Mobilitiy Radeon HD 3400 Series
+	95c5  Mobilitiy Radeon HD 3450
+	960f  RS780 Azalia controller
+	9610  Radeon HD 3200 Graphics
+	9611  Radeon 3100 Graphics
+	9612  RS780M/RS780MN [Radeon HD 3200 Graphics]
+	9613  RS780MC [Radeon HD 3100 Graphics]
+	9614  Radeon HD 3300 Graphics
+	aa00  R600 Audio Device [Radeon HD 2900 Series]
+	aa08  RV630/M76 audio device [Radeon HD 2600 Series]
+	aa10  RV610 audio device [Radeon HD 2400 PRO]
+		174b aa10  Sapphire HD 2400 PRO audio device
+	aa18  Radeon HD 3870 Audio device
+	aa20  RV635 Audio device [Radeon HD 3600 Series]
+	aa28  RV620 Audio device [Radeon HD 34xx Series]
 	cab0  AGP Bridge [IGP 320M]
 	cab2  RS200/RS200M AGP Bridge [IGP 340M]
 	cab3  R200 AGP Bridge [Mobility Radeon 7000 IGP]
@@ -1290,13 +1501,18 @@
 	0035  DP83065 [Saturn] 10/100/1000 Ethernet Controller
 	0500  SCx200 Bridge
 	0501  SCx200 SMI
-	0502  SCx200 IDE
-	0503  SCx200 Audio
+	0502  SCx200, SC1100 IDE controller
+		100b 0502  IDE Controller
+	0503  SCx200, SC1100 Audio Controller
+		100b 0503  XpressAudio controller
 	0504  SCx200 Video
 	0505  SCx200 XBus
 	0510  SC1100 Bridge
-	0511  SC1100 SMI
+		100b 0500  GPIO and LPC support bridge
+	0511  SC1100 SMI & ACPI
+		100b 0501  SC1100 SMI & ACPI bridge
 	0515  SC1100 XBus
+		100b 0505  SC1100 PCI to XBus bridge
 	d001  87410 IDE
 100c  Tseng Labs Inc
 	3202  ET4000/W32p rev A
@@ -1345,6 +1561,7 @@
 		1186 0100  DE-530+
 	0016  DGLPB [OPPO]
 	0017  PV-PCI Graphics Controller (ZLXp-L)
+	0018  Memory Channel interface
 	0019  DECchip 21142/43
 		1011 500a  DE500A Fast Ethernet
 		1011 500b  DE500B Fast Ethernet
@@ -1396,9 +1613,9 @@
 		1374 0003  56k Modem Cardbus
 	0045  DECchip 21553
 	0046  DECchip 21554
-		0e11 4050  Integrated Smart Array
-		0e11 4051  Integrated Smart Array
-		0e11 4058  Integrated Smart Array
+		0e11 4050  Smart Array 4200 Controller
+		0e11 4051  Smart Array 4250ES Controller
+		0e11 4058  Smart Array 431 Controller
 		103c 10c2  NetRAID-4M
 		12d9 000a  IP Telephony card
 		4c53 1050  CT7 mainboard
@@ -1465,25 +1682,25 @@
 		14c0 000c  Crystal CS4281 PCI Audio
 1014  IBM
 	0002  PCI to MCA Bridge
-	0005  Alta Lite
-	0007  Alta MP
-	000a  Fire Coral
+	0005  Processor to I/O Controller [Alta Lite]
+	0007  Processor to I/O Controller [Alta MP]
+	000a  PCI to ISA Bridge (IBM27-82376) [Fire Coral]
 	0017  CPU to PCI Bridge
 	0018  TR Auto LANstreamer
 	001b  GXT-150P
 	001c  Carrera
-	001d  82G2675
+	001d  SCSI-2 FAST PCI Adapter (82G2675)
 	0020  GXT1000 Graphics Adapter
-	0022  IBM27-82351
-	002d  Python
+	0022  PCI to PCI Bridge (IBM27-82351)
+	002d  Processor to I/O Controller [Python]
 	002e  SCSI RAID Adapter [ServeRAID]
 		1014 002e  ServeRAID-3x
 		1014 022e  ServeRAID-4H
 	0031  2 Port Serial Adapter
 # AS400 iSeries PCI sync serial card
 		1014 0031  2721 WAN IOA - 2 Port Sync Serial Adapter
-	0036  Miami
-	0037  82660 CPU to PCI Bridge
+	0036  PCI to 32-bit LocalBus Bridge [Miami]
+	0037  PowerPC to PCI Bridge (IBM27-82660)
 	003a  CPU to PCI Bridge
 	003c  GXT250P/GXT255P Graphics Adapter
 	003e  16/4 Token ring UTP/STP controller
@@ -1557,6 +1774,9 @@
 		1014 0259  ServeRAID-5i
 	01c1  64bit/66MHz PCI ATM 155 UTP
 	01e6  Cryptographic Accelerator
+	01ef  PowerPC 440GP PCI Bridge
+		1734 102b  PCEAS PCI-X Dual Port ESCON Adapter
+		1734 10f8  PCEAT PCI-Express Dual Port ESCON Adapter
 	01ff  10/100 Mbps Ethernet
 	0219  Multiport Serial Adapter
 		1014 021a  Dual RVX
@@ -1577,9 +1797,16 @@
 	02bd  Obsidian chipset SCSI controller
 		1014 02c1  PCI-X DDR 3Gb SAS Adapter (572A/572C)
 		1014 02c2  PCI-X DDR 3Gb SAS RAID Adapter (572B/571D)
+		1014 0338  PCI-X DDR Auxiliary Cache Adapter (575C)
 	0302  Winnipeg PCI-X Host Bridge
 	0308  CalIOC2 PCI-E Root Port
 	0314  ZISC 036 Neural accelerator card
+	032d  Axon - Cell Companion Chip
+		1014 03a1  PCIe PowerXCell 8i Cell Accelerator Board
+	0339  Obsidian-E PCI-E SCSI controller
+		1014 030a  PCIe 3Gb SAS RAID Adapter (574E)
+		1014 033a  PCIe 3Gb SAS Adapter (57B3)
+		1014 0360  PCI-E Auxiliary Cache Adapter (57B7)
 	3022  QLA3022 Network Adapter
 	4022  QLA3022 Network Adapter
 	ffff  MPIC-2 interrupt controller
@@ -1641,6 +1868,16 @@
 	1101  K8 [Athlon64/Opteron] Address Map
 	1102  K8 [Athlon64/Opteron] DRAM Controller
 	1103  K8 [Athlon64/Opteron] Miscellaneous Control
+	1200  Family 10h [Opteron, Athlon64, Sempron] HyperTransport Configuration
+	1201  Family 10h [Opteron, Athlon64, Sempron] Address Map
+	1202  Family 10h [Opteron, Athlon64, Sempron] DRAM Controller
+	1203  Family 10h [Opteron, Athlon64, Sempron] Miscellaneous Control
+	1204  Family 10h [Opteron, Athlon64, Sempron] Link Control
+	1300  Family 11h HyperTransport Configuration
+	1301  Family 11h Address Map
+	1302  Family 11h DRAM Controller
+	1303  Family 11h Miscellaneous Control
+	1304  Family 11h Link Control
 	2000  79c970 [PCnet32 LANCE]
 		1014 2000  NetFinity 10/100 Fast Ethernet
 		1022 2000  PCnet - Fast 79C971
@@ -1670,8 +1907,7 @@
 	2003  Am 1771 MBW [Alchemy]
 	2020  53c974 [PCscsi]
 	2040  79c974
-# CS5536 [Geode companion] Host Bridge
-	2080  Conrad Kostecki
+	2080  CS5536 [Geode companion] Host Bridge
 	2081  Geode LX Video
 	2082  Geode LX AES Security Block
 	208f  CS5536 GeodeLink PCI South Bridge
@@ -1737,6 +1973,18 @@
 		161f 3017  HDAMB
 	746e  AMD-8111 MC97 Modem
 	756b  AMD-8111 ACPI
+	9600  RS780 Host Bridge
+	9601  RS780 Host Bridge Alternate
+	9602  RS780 PCI to PCI bridge (int gfx)
+	9603  RS780 PCI to PCI bridge (ext gfx port 0)
+	9604  RS780 PCI to PCI bridge (PCIE port 0)
+	9605  RS780 PCI to PCI bridge (PCIE port 1)
+	9606  RS780 PCI to PCI bridge (PCIE port 2)
+	9607  RS780 PCI to PCI bridge (PCIE port 3)
+	9608  RS780 PCI to PCI bridge (PCIE port 4)
+	9609  RS780 PCI to PCI bridge (PCIE port 5)
+	960a  RS780 PCI to PCI bridge (NB-SB link)
+	960b  RS780 PCI to PCI bridge (ext gfx port 1)
 1023  Trident Microsystems
 	0194  82C194
 	2000  4DWave DX
@@ -1773,7 +2021,6 @@
 	9470  TGUI 9470
 	9520  Cyber 9520
 	9525  Cyber 9525
-		10cf 1094  Lifebook C6155
 	9540  Cyber 9540
 	9660  TGUI 9660/938x/968x
 	9680  TGUI 9680
@@ -1793,6 +2040,7 @@
 		1023 9880  Blade 3D
 	9910  CyberBlade/XP
 	9930  CyberBlade/XPm
+	9960  CyberBlade XP2
 1024  Zenith Data Systems
 1025  Acer Incorporated [ALI]
 	0090  BCM440x 100Base-TX Fast Ethernet
@@ -1877,6 +2125,7 @@
 	000d  Embedded Remote Access: BMC/SMIC device
 	000e  PowerEdge Expandable RAID controller 4/Di
 	000f  PowerEdge Expandable RAID controller 4/Di
+		1028 014a  PowerEdge 1750
 	0010  Remote Access Card 4
 	0011  Remote Access Card 4 Daughter Card
 	0012  Remote Access Card 4 Daughter Card Virtual UART
@@ -1887,10 +2136,10 @@
 		1028 016f  PowerEdge Expandable RAID Controller 4e/Di
 		1028 0170  PowerEdge Expandable RAID Controller 4e/Di
 	0014  Remote Access Card 4 Daughter Card SMIC interface
-	0015  PowerEdge Expandable RAID controller 5i
+	0015  PowerEdge Expandable RAID controller 5
 		1028 1f01  PERC 5/E Adapter RAID Controller
 		1028 1f02  PERC 5/i Adapter RAID Controller
-	1f03  PERC 5/i
+		1028 1f03  PERC 5/i Integrated RAID Controller
 1029  Siemens Nixdorf IS
 102a  LSI Logic
 	0000  HYDRA
@@ -2037,6 +2286,8 @@
 		102b 0f83  Millennium G550
 		102b 0f84  Millennium G550 Dual Head DDR 32Mb
 		102b 1e41  Millennium G550
+# Clearly the device name should not say AGP anymore...
+		102b 2300  Millennium G550 LP PCIE
 	2537  Millenium P650/P750
 		102b 1820  Millennium P750 64MB
 		102b 1830  Millennium P650 64MB
@@ -2046,10 +2297,12 @@
 	2538  Millenium P650 PCIe
 		102b 08c7  Millennium P650 PCIe 128MB
 		102b 0907  Millennium P650 PCIe 64MB
+		102b 0947  Parhelia APVe
 		102b 1047  Millennium P650 LP PCIe 128MB
 		102b 1087  Millennium P650 LP PCIe 64MB
 		102b 2538  Parhelia APVe
 		102b 3007  QID Low-profile PCIe
+	2539  Millennium P690
 	4536  VIA Framegrabber
 	4cdc  Morphis Vision System Jpeg2000
 	4fc5  Morphis Vision System
@@ -2188,6 +2441,7 @@
 	0180  RAID bus controller 180 SATA/PATA  [SiS]
 	0181  SATA
 	0182  182 SATA/RAID Controller
+		1734 1095  D2030-A1
 	0186  AHCI Controller (0106)
 	0190  190 Gigabit Ethernet Adapter
 	0191  191 Gigabit Ethernet Adapter
@@ -2215,12 +2469,14 @@
 	0645  SiS645 Host & Memory & AGP Controller
 	0646  SiS645DX Host & Memory & AGP Controller
 	0648  645xx
+	0649  SiS649 Host
 	0650  650/M650 Host
 	0651  651 Host
 	0655  655 Host
 	0660  660 Host
 	0661  661FX/M661FX/M661MX Host
 	0662  662 Host
+	0671  671MX
 	0730  730 Host
 	0733  733 Host
 	0735  735 Host
@@ -2231,6 +2487,7 @@
 	0755  755 Host
 	0760  760/M760 Host
 	0761  761/M761 Host
+		1734 1099  D2030-A1 Motherboard
 	0900  SiS900 PCI Fast Ethernet
 		1019 0a14  K7S5A motherboard
 		1039 0900  SiS900 10/100 Ethernet Adapter
@@ -2259,6 +2516,7 @@
 		1039 5513  SiS5513 EIDE Controller (A,B step)
 		1043 8035  CUSI-FX motherboard
 		1462 7010  MS-6701 motherboard
+		1734 1095  D2030-A1 Motherboard
 	5517  5517
 	5571  5571
 	5581  5581 Pentium Chipset
@@ -2276,6 +2534,7 @@
 	6306  530/620 PCI/AGP VGA Display Adapter
 		1039 6306  SiS530,620 GUI Accelerator+3D
 	6325  65x/M650/740 PCI/AGP VGA Display Adapter
+		1039 6325  740 [315 graphics core] on ECS K7SOM+ motherboard
 	6326  86C326 5598/6326
 		1039 6326  SiS6326 GUI Accelerator
 		1092 0a50  SpeedStar A50
@@ -2286,21 +2545,30 @@
 	6330  661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter
 		1039 6330  [M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter
 		1043 8113  SiS Real 256E (ASUS P5S800-VM motherboard)
+		1458 d000  SiS661FX GUI 2D/3D Accelerator
+		1734 1099  D2030-A1
 	6350  770/670 PCIE VGA Display Adapter
 	6351  771/671 PCIE VGA Display Adapter
-	7001  USB 1.0 Controller
+	7001  USB 1.1 Controller
 		1019 0a14  K7S5A motherboard
 		1039 7000  Onboard USB Controller
-		1462 5470  K7SOM+ 5.2C Motherboard
+		1462 5470  ECS K7SOM+ motherboard
 		1462 7010  MS-6701 motherboard
+		1734 1095  D2030-A1 Motherboard
 	7002  USB 2.0 Controller
+		1462 5470  K7SOM+ 5.2C Motherboard
 		1462 7010  MS-6701 motherboard
 		1509 7002  Onboard USB Controller
+		1734 1095  D2030-A1
 	7007  FireWire Controller
 		1462 701d  MS-6701
 	7012  AC'97 Sound Controller
+		1043 818f  A8S-X Motherboard
+		13f6 0300  ECS K7SOM+ motherboard
+		1462 5850  MSI 648 Max (MS-6585)
 		1462 7010  MS-6701 motherboard
 		15bd 1001  DFI 661FX motherboard
+		1734 109f  D2030-A1 Motherboard
 # There are may be different modem codecs here (Intel537 compatible and incompatible)
 	7013  AC'97 Modem Controller
 	7016  SiS7016 PCI Fast Ethernet Adapter
@@ -2312,6 +2580,7 @@
 		1025 000e  SiS PCI Audio Accelerator
 		1025 0018  SiS PCI Audio Accelerator
 		1039 7018  SiS PCI Audio Accelerator
+		1043 1453  SiS PCI Audio Accelerator
 		1043 800b  SiS PCI Audio Accelerator
 		1054 7018  SiS PCI Audio Accelerator
 		107d 5330  SiS PCI Audio Accelerator
@@ -2334,6 +2603,7 @@
 103b  Tatung Co. of America
 103c  Hewlett-Packard Company
 	002a  NX9000 Notebook
+	08bc  NX5000 Notebook
 	1005  A4977A Visualize EG
 	1008  Visualize FX
 	1028  Tach TL Fibre Channel Host Adapter
@@ -2380,6 +2650,7 @@
 	127b  sx1000 System Bus Adapter
 	127c  sx1000 I/O Controller
 	1290  Auxiliary Diva Serial Port
+		103c 1291  Diva SP2
 	1291  Auxiliary Diva Serial Port
 	12b4  zx1 QuickSilver AGP8x Local Bus Adapter
 	12eb  sx2000 System Bus Adapter
@@ -2389,15 +2660,28 @@
 	12fa  BCM4306 802.11b/g Wireless LAN Controller
 	1302  RMP-3 Shared Memory Driver
 	1303  RMP-3 (Remote Management Processor)
+	1361  BCM4312 802.11a/b/g WLAN Controller
+	1371  Broadcom Corporation BCM4312 802.11a/b/g (rev 02)
 	2910  E2910A PCIBus Exerciser
 	2925  E2925A 32 Bit, 33 MHzPCI Exerciser & Analyzer
 	3080  Pavilion ze2028ea
 	3085  Realtek RTL8139/8139C/8139C+
 	30b5  Compaq Presario V3000Z
+	31fb  DL365 ATI ES1000 VGA controller
 	3220  Smart Array P600
 		103c 3225  3 Gb/s SAS RAID
 	3230  Smart Array Controller
+		103c 3223  Smart Array P800
+		103c 3234  P400 SAS Controller
+		103c 3235  P400i SAS Controller
+		103c 3237  E500 SAS Controller
+		103c 323d  P700m SAS Controller
 	3238  Smart Array E200i (SAS Controller)
+# Will present virtual install media as mass storage, keyboard/mouse from console session, etc.
+	3300  Proliant iLO2 virtual USB controller
+# Virtual serial port which is presented on a Java applet
+	3302  Proliant iLO2 virtual UART
+	3305  Proliant iLO2 [Integrated Lights Out] controller
 	4030  zx2 System Bus Adapter
 	4031  zx2 I/O Controller
 	4037  PCIe Local Bus Adapter
@@ -2434,6 +2718,8 @@
 	8168  Realtek PCI-E Gigabit Ethernet Controller (RTL8111B)
 	8187  802.11a/b/g Wireless LAN Card
 	8188  Tiger Hybrid TV Capture Device
+# Found on ASUS M2V motherboard
+	81e7  Realtek ALC-660 6-channel CODEC
 	81f4  EN7300TC512/TD/128M/A(C262G) [Graphics Card EN7300TC512]
 1044  Adaptec (formerly DPT)
 	1012  Domino RAID Engine
@@ -2551,6 +2837,7 @@
 		1048 0a43  GLoria Synergy
 		1048 0a44  GLoria Synergy
 		107d 2633  WinFast 3D L2300
+		1092 0126  FIRE GL 1000 PRO
 		1092 0127  FIRE GL 1000 PRO
 		1092 0136  FIRE GL 1000 PRO
 		1092 0141  FIRE GL 1000 PRO
@@ -2590,6 +2877,7 @@
 	8025  TSB82AA2 IEEE-1394b Link Layer Controller
 		1458 1000  GA-K8N Ultra-9 Mainboard
 	8026  TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
+		1025 0035  TravelMate 660
 		1025 003c  Aspire 2001WLCi (Compaq CL50 motherboard)
 		103c 006a  NX9500
 		1043 808d  A7V333 mainboard.
@@ -2603,39 +2891,50 @@
 		1028 0139  Latitude D400
 		1028 014e  PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D800)
 	802e  PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller
+		1028 018d  Inspiron 700m/710m
 	8031  PCIxx21/x515 Cardbus Controller
 		1025 0080  Aspire 5024WLMi
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		103c 308b  MX6125
 	8032  OHCI Compliant IEEE 1394 Host Controller
 		1025 0080  Aspire 5024WLMi
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		103c 308b  MX6125
 	8033  PCIxx21 Integrated FlashMedia Controller
 		1025 0080  Aspire 5024WLMi
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		103c 308b  MX6125
 	8034  PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller
 		1025 0080  Aspire 5024WLMi
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		103c 308b  MX6125
 	8035  PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 	8036  PCI6515 Cardbus Controller
 	8038  PCI6515 SmartCard Controller
 	8039  PCIxx12 Cardbus Controller
 		103c 309f  nx9420
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 	803a  PCIxx12 OHCI Compliant IEEE 1394 Host Controller
 		103c 309f  nx9420
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 	803b  5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
 		103c 309f  nx9420
+		103c 30a3  Compaq nw8440
 	803c  PCIxx12 SDA Standard Compliant SD Host Controller
 		103c 309f  nx9420
+		103c 30a3  Compaq nw8440
 	803d  PCIxx12 GemCore based SmartCard controller
 		103c 309f  nx9420
 		103c 30a1  NC2400
+	8101  TSB43DB42 IEEE-1394a-2000 Controller (PHY/Link)
 	8201  PCI1620 Firmware Loading Function
 	8204  PCI7410,7510,7610 PCI Firmware Loading Function
 		1028 0139  Latitude D400
@@ -2654,7 +2953,9 @@
 		1186 3b04  DWL-G520+ Wireless PCI Adapter
 		1186 3b05  DWL-G650+ AirPlusG+ CardBus Wireless LAN
 		13d1 aba0  SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+
+		16ec 010d  USR5416 802.11g Wireless Turbo PCI Adapter
 		1737 0033  WPC54G Ver.2 802.11G PC Card
+		17cf 0033  Z-Com XG650 Wireless miniPCI 802.11b/g
 	a001  TDC1570
 	a100  TDC1561
 	a102  TNETA1575 HyperSAR Plus w/PCI Host i/f & UTOPIA i/f
@@ -2675,7 +2976,7 @@
 	ac1a  PCI1210
 	ac1b  PCI1450
 		0e11 b113  Armada M700
-		1014 0130  Thinkpad T20/T22/A21m
+		1014 0130  ThinkPad A21m/T20/T22
 	ac1c  PCI1225
 		0e11 b121  Armada E500
 		1028 0088  Latitude CPi A400XT
@@ -2698,6 +2999,7 @@
 		1028 0196  Inspiron 5160
 		1071 8160  MIM2000
 	ac46  PCI4520 PC card Cardbus Controller
+		1014 0552  ThinkPad
 	ac47  PCI7510 PC card Cardbus Controller
 		1028 0139  Latitude D400
 		1028 013f  Precision M60
@@ -2709,11 +3011,10 @@
 	ac51  PCI1420 PC card Cardbus Controller
 		0e11 004e  Evo N600c
 		1014 0148  ThinkPad A20m
-		1014 023b  ThinkPad T23 (2647-4MG)
+		1014 023b  ThinkPad T23
 		1028 00b1  Latitude C600
 		1028 012a  Latitude C640
 		1033 80cd  Versa Note VXi
-		1095 10cf  Fujitsu-Siemens LifeBook C Series
 		10cf 1095  Lifebook S-4510/C6155
 		e4bf 1000  CP2-2-HIPHOP
 	ac52  PCI1451 PC card Cardbus Controller
@@ -2723,8 +3024,8 @@
 	ac55  PCI1520 PC card Cardbus Controller
 		1014 0512  ThinkPad T30/T40
 	ac56  PCI1510 PC card Cardbus Controller
-		1014 0512  Thinkpad R50e model 1634
-		1014 0528  ThinkPad R40e (2684-HVG) Cardbus Controller
+		1014 0512  ThinkPad R50e
+		1014 0528  ThinkPad R40e
 		17aa 2012  ThinkPad T60/R60 series
 	ac60  PCI2040 PCI to DSP Bridge Controller
 		175c 5100  ASI51xx Audio Adapter
@@ -2733,8 +3034,9 @@
 		175c 8800  ASI88xx Audio Adapter
 	ac8d  PCI 7620
 	ac8e  PCI7420 CardBus Controller
+		1028 018d  Inspiron 700m/710m
 	ac8f  PCI7420/7620 Combo CardBus, 1394a-2000 OHCI and SD/MS-Pro Controller
-		1028 018d  Inspiron 700m
+		1028 018d  Inspiron 700m/710m
 	fe00  FireWire Host Controller
 	fe03  12C01A FireWire Host Controller
 104d  Sony Corporation
@@ -2775,6 +3077,15 @@
 1052  ?Young Micro Systems
 1053  Young Micro Systems
 1054  Hitachi, Ltd
+	3009  2Gbps Fibre Channel to PCI HBA 3009
+	300a  4Gbps Fibre Channel to PCI-X HBA 300a
+	300b  4Gbps Fibre Channel to PCI-X HBA 300b
+	300f  ColdFusion 3 Chipset Processor to I/O Controller
+	3010  ColdFusion 3 Chipset Memory Controller Hub
+	3011  ColdFusion 3e Chipset Processor to I/O Controller
+	3012  ColdFusion 3e Chipset Memory Controller Hub
+	3017  Unassigned Hitachi Shared FC Device 3017
+	301d  PCIe-to-PCIe Bridge with Virtualization IO Assist Feature
 1055  Efar Microsystems
 	9130  SLC90E66 [Victory66] IDE
 	9460  SLC90E66 [Victory66] ISA
@@ -2793,6 +3104,8 @@
 	0012  MPC8548 [PowerQUICC III]
 	0100  MC145575 [HFC-PCI]
 	0431  KTI829c 100VG
+	1073  Nokia N770
+	1219  Nokia N800
 	1801  DSP56301 Digital Signal Processor
 		14fb 0101  Transas Radar Imitator Board [RIM]
 		14fb 0102  Transas Radar Imitator Board [RIM-2]
@@ -2919,6 +3232,7 @@
 		105a 4d68  FastTrak100 TX2
 	6269  PDC20271 (FastTrak TX2000)
 		105a 6269  FastTrak TX2/TX2000
+	6300  PDC81731 [FastTrak SX8300]
 	6621  PDC20621 (FastTrak S150 SX4/FastTrak SX4000 lite)
 	6622  PDC20621 [SATA150 SX4] 4 Channel IDE RAID Controller
 	6624  PDC20621 [FastTrak SX4100]
@@ -2927,11 +3241,17 @@
 	7275  PDC20277 (SBFastTrak133 Lite)
 	8002  SATAII150 SX8
 	8350  80333 [SuperTrak EX8350/EX16350], 80331 [SuperTrak EX8300/EX16300]
-	8650  81348 [SuperTrak EX4650/EX8650/EX8654/EX4650EL]
-		105a 4600  SuperTrak EX4650
+	8650  81384 [SuperTrak EX SAS and SATA RAID Controller]
+		105a 4600  SuperTrak EX4650A
+		105a 4601  SuperTrak EX4650
 		105a 4610  SuperTrak EX4650EL
-		105a 8601  SuperTrak EX8650
+		105a 8600  SuperTrak EX8650EL
+		105a 8601  SuperTrak EX8650A
 		105a 8602  SuperTrak EX8654
+		105a 8603  SuperTrak EX8658
+		105a 8604  SuperTrak EX8650
+		105a 8610  SuperTrak EX8650M
+		105a b600  SuperTrak EX16650
 	c350  80333 [SuperTrak EX12350]
 	e350  80333 [SuperTrak EX24350]
 105b  Foxconn International, Inc.
@@ -3101,6 +3421,7 @@
 	0053  Shasta PCI Bridge
 	0054  Shasta PCI Bridge
 	0055  Shasta PCI Bridge
+	0057  U3 HT Bridge
 	0058  U3L AGP Bridge
 	0059  U3H AGP Bridge
 	0066  Intrepid2 AGP Bridge
@@ -3109,6 +3430,7 @@
 	0069  Intrepid2 ATA/100
 	006a  Intrepid2 Firewire
 	006b  Intrepid2 GMAC (Sun GEM)
+	0074  U4 HT Bridge
 	1645  Tigon3 Gigabit Ethernet NIC (BCM5701)
 106c  Hynix Semiconductor
 	8801  Dual Pentium ISA/PCI Motherboard
@@ -3178,6 +3500,7 @@
 		103c 12d7  4Gb Fibre Channel [AB379A]
 		103c 12dd  4Gb Fibre Channel [AB429A]
 	2432  ISP2432-based 4Gb Fibre Channel to PCI Express HBA
+	2532  ISP2532-based 8Gb Fibre Channel to PCI Express HBA
 	3022  ISP4022-based Ethernet NIC
 	3032  ISP4032-based Ethernet IPv6 NIC
 	4010  ISP4010-based iSCSI TOE HBA
@@ -3186,6 +3509,8 @@
 	5432  SP232-based 4Gb Fibre Channel to PCI Express HBA
 	6312  SP202-based 2Gb Fibre Channel to PCI-X HBA
 	6322  SP212-based 2Gb Fibre Channel to PCI-X HBA
+	7220  IBA7220 InfiniBand HCA
+	8432  10GbE FCoE to PCI Express Converged Network Adapter (CNA)
 1078  Cyrix Corporation
 	0000  5510 [Grappa]
 	0001  PCI Master
@@ -3208,6 +3533,7 @@
 	204d  [GeForce 7800 GTX] Winfast PX7800 GTX TDH
 	2134  WinFast 3D S320 II
 	2971  [GeForce FX 5900] WinFast A350 TDH MyViVo
+	6654  Conexant CX23883 [WinFast DTV1800 H]
 107e  Interphase Corporation
 	0001  5515 ATM Adapter [Flipper]
 	0002  100 VG AnyLan Controller
@@ -3272,22 +3598,55 @@
 108e  Sun Microsystems Computer Corp.
 	0001  EBUS
 	1000  EBUS
-	1001  Happy Meal
+	1001  Happy Meal 10/100 Ethernet [hme]
 	1100  RIO EBUS
-	1101  RIO GEM
+# Correction
+	1101  RIO 10/100 Ethernet [eri]
 	1102  RIO 1394
 	1103  RIO USB
-	1648  [bge] Gigabit Ethernet
-	2bad  GEM
+	1647  Broadcom 570x 10/100/1000 Ethernet [bge]
+	1648  Broadcom 570x 10/100/1000 Ethernet [bge]
+	16a7  Broadcom 570x 10/100/1000 Ethernet [bge]
+	16a8  Broadcom 570x 10/100/1000 Ethernet [bge]
+	2bad  GEM 10/100/1000 Ethernet [ge]
 	5000  Simba Advanced PCI Bridge
+		108e 5000  Netra AX1105-500
 	5043  SunPCI Co-processor
+	6300  Intel 21554 PCI-PCI bus bridge [db21554]
+	6301  Intel 21554 PCI-PCI bus bridge [db21554]
+	6302  Intel 21554 PCI-PCI bus bridge [db21554]
+	6303  Intel 21554 PCI-PCI bus bridge [db21554]
+	6310  Intel 21554 PCI-PCI bus bridge [db21554]
+	6311  Intel 21554 PCI-PCI bus bridge [db21554]
+	6312  Intel 21554 PCI-PCI bus bridge [db21554]
+	6313  Intel 21554 PCI-PCI bus bridge [db21554]
+	6320  Intel 21554 PCI-PCI bus bridge [db21554]
+	6323  Intel 21554 PCI-PCI bus bridge [db21554]
+	6330  Intel 21554 PCI-PCI bus bridge [db21554]
+	6331  Intel 21554 PCI-PCI bus bridge [db21554]
+	6332  Intel 21554 PCI-PCI bus bridge [db21554]
+	6333  Intel 21554 PCI-PCI bus bridge [db21554]
+	6340  Intel 21554 PCI-PCI bus bridge [db21554]
+	6343  Intel 21554 PCI-PCI bus bridge [db21554]
+	6350  Intel 21554 PCI-PCI bus bridge [db21554]
+	6353  Intel 21554 PCI-PCI bus bridge [db21554]
+	6722  Intel 21554 PCI-PCI bus bridge [db21554]
+	676e  SunPCiIII
+	7063  SunPCiII / SunPCiIIpro
 	8000  Psycho PCI Bus Module
 	8001  Schizo PCI Bus Module
 	8002  Schizo+ PCI Bus Module
-	a000  Ultra IIi
-	a001  Ultra IIe
-	a801  Tomatillo PCI Bus Module
+	80f0  PCIe switch [px]
+	80f8  PCIe switch [px]
+	9010  PCIe/PCI bridge switch [pxb_plx]
+	9020  PCIe/PCI bridge switch [pxb_plx]
+	9102  Davicom Fast Ethernet driver for Davicom DM9102A [dmfe]
+	a000  Psycho UPA-PCI Bus Module [pcipsy]
+	a001  Psycho UPA-PCI Bus Module [pcipsy]
+		108e a001  Netra AX1105-500
+	a801  Schizo Fireplane-PCI bus bridge module [pcisch]
 	abba  Cassini 10/100/1000
+	c416  Sun Fire System/System Controller Interface chip [sbbc]
 108f  Systemsoft
 1090  Compro Computer Services, Inc.
 1091  Intergraph Corporation
@@ -3301,6 +3660,8 @@
 	07a0  Sun Expert3D-Lite Graphics Accelerator
 	1091  Sun Expert3D Graphics Accelerator
 1092  Diamond Multimedia Systems
+	0028  Viper V770
+		1092 4a00  Viper V770 32MB
 	00a0  Speedstar Pro SE
 	00a8  Speedstar 64
 	0550  Viper V550
@@ -3346,6 +3707,7 @@
 	2ca0  PCI-6034E
 	70a9  PCI-6528 (Digital I/O at 60V)
 	70b8  PCI-6251 [M Series - High Speed Multifunction DAQ]
+	7144  PXI-5124 (12-bit 200 MS/s Digitizer)
 	b001  IMAQ-PCI-1408
 	b011  IMAQ-PXI-1408
 	b021  IMAQ-PCI-1424
@@ -3391,6 +3753,7 @@
 	3512  SiI 3512 [SATALink/SATARaid] Serial ATA Controller
 		1095 3512  SiI 3512 SATALink Controller
 		1095 6512  SiI 3512 SATARaid Controller
+	3531  Sil 3531 [SATALink/SATARaid] Serial ATA Controller
 1096  Alacron
 1097  Appian Technology
 1098  Quantum Designs (H.K.) Ltd
@@ -3602,7 +3965,9 @@
 		10b4 237e  Velocity 4400
 10b5  PLX Technology, Inc.
 	0001  i960 PCI bus interface
+	1024  Acromag, Inc. IndustryPack Carrier Card
 	1042  Brandywine / jxi2, Inc. - PMC-SyncClock32, IRIG A & B, Nasa 36
+	106a  Dual OX16C952 4 port serial adapter [Megawolf Romulus/4]
 	1076  VScom 800 8 port serial adaptor
 	1077  VScom 400 4 port serial adaptor
 	1078  VScom 210 2 port serial and 1 port parallel adaptor
@@ -3611,17 +3976,40 @@
 	1147  VScom 020 2 port parallel adaptor
 	2540  IXXAT CAN-Interface PC-I 04/PCI
 	2724  Thales PCSM Security Card
-	6540  PCI6540/6466 PCI-PCI bridge (transparent mode)
+	6140  PCI6140 32-bit 33MHz PCI-to-PCI Bridge
+	6150  PCI6150 32-bit 33MHz PCI-to-PCI Bridge
+	6152  PCI6152 32-bit 66MHz PCI-to-PCI Bridge
+	6154  PCI6154 64-bit 66MHz PCI-to-PCI Bridge
+	6254  PCI6254 64-bit 66MHz PCI-to-PCI Bridge
+	6466  PCI6466 64-bit 66MHz PCI-to-PCI Bridge
+	6520  PCI6520 64-bit 133MHz PCI-X-to-PCI-X Bridge
+	6540  PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge
+		1775 1100  CR11 Single Board Computer
 		4c53 10e0  PSL09 PrPMC
 	6541  PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side)
+		1775 1100  CR11 Single Board Computer
 		4c53 10e0  PSL09 PrPMC
 	6542  PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side)
+		1775 1100  CR11 Single Board Computer
 		4c53 10e0  PSL09 PrPMC
 	8111  PEX 8111 PCI Express-to-PCI Bridge
+	8112  PEX8112 x1 Lane PCI Express-to-PCI Bridge
 	8114  PEX 8114 PCI Express-to-PCI/PCI-X Bridge
+	8311  PEX8311 x1 Lane PCI Express-to-Generic Local Bus Bridge
+	8505  PEX 8505 5-lane, 5-port PCI Express Switch
+	8508  PEX 8508 8-lane, 5-port PCI Express Switch
+	8509  PEX 8509 8-lane, 8-port PCI Express Switch
+	8512  PEX 8512 12-lane, 5-port PCI Express Switch
 	8516  PEX 8516  Versatile PCI Express Switch
+	8517  PEX 8517 16-lane, 5-port PCI Express Switch
+	8518  PEX 8518 16-lane, 5-port PCI Express Switch
+	8524  PEX 8524 24-lane, 6-port PCI Express Switch
+	8525  PEX 8525 24-lane, 5-port PCI Express Switch
 	8532  PEX 8532  Versatile PCI Express Switch
-	9030  PCI <-> IOBus Bridge Hot Swap
+	8533  PEX 8533 32-lane, 6-port PCI Express Switch
+	8547  PEX 8547 48-lane, 3-port PCI Express Switch
+	8548  PEX 8548 48-lane, 9-port PCI Express Switch
+	9030  PCI9030 32-bit 33MHz PCI <-> IOBus Bridge
 		10b5 2862  Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board
 		10b5 2906  Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board
 		10b5 2940  Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board
@@ -3677,7 +4065,8 @@
 		d84d 4065  EX-4065 8S(16C550) RS-232
 		d84d 4068  EX-4068 8S(16C650) RS-232
 		d84d 4078  EX-4078 2S(16C552) RS-232+1P
-	9054  PCI <-> IOBus Bridge
+	9052  PCI9052 PCI <-> IOBus Bridge
+	9054  PCI9054 32-bit 33MHz PCI <-> IOBus Bridge
 		10b5 2455  Wessex Techology PHIL-PCI
 		10b5 2696  Innes Corp AM Radcap card
 		10b5 2717  Innes Corp Auricon card
@@ -3692,14 +4081,14 @@
 		16df 0014  PIKA PrimeNet MM cPCI 4
 		16df 0015  PIKA Daytona MM
 		16df 0016  PIKA InLine MM
-	9056  9056 PCI I/O Accelerator
+	9056  PCI9056 32-bit 66MHz PCI <-> IOBus Bridge
 		10b5 2979  CellinkBlade 11 - CPCI board VoATM AAL1
 		14b4 d140  Dektec DTA-140
-	9060  9060
+	9060  PCI9060 32-bit 33MHz PCI <-> IOBus Bridge
 	906d  9060SD
 		125c 0640  Aries 16000P
 	906e  9060ES
-	9080  9080
+	9080  PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge
 		103c 10eb  (Agilent) E2777B 83K Series Optical Communication Interface
 		103c 10ec  (Agilent) E6978-66442 PCI CIC
 		10b5 1123  Sectra KK631 encryption board
@@ -3708,7 +4097,7 @@
 		12d9 0002  PCI Prosody Card
 		12df 4422  4422PCI ["Do-All" Telemetry Data Aquisition System]
 		1517 000b  ECSG-1R3ADC-PMC Clock synthesizer
-	9656  PCI <-> IOBus Bridge
+	9656  PCI9656 PCI <-> IOBus Bridge
 		1517 000f  ECDR-GC314-PMC Receiver
 		1885 0700  Tsunami FPGA PMC with Altera Stratix S40
 		1885 0701  Tsunami FPGA PMC with Altera Stratix S30
@@ -3835,11 +4224,13 @@
 	9200  3c905C-TX/TX-M [Tornado]
 		1028 0095  3C920 Integrated Fast Ethernet Controller
 		1028 0097  3C920 Integrated Fast Ethernet Controller
+		1028 00b4  OptiPlex GX110
 		1028 00fe  Optiplex GX240
 		1028 012a  3C920 Integrated Fast Ethernet Controller [Latitude C640]
 		10b7 1000  3C905CX-TX/TX-M Fast Etherlink for PC Management NIC
 		10b7 7000  10/100 Mini PCI Ethernet Adapter
 		10f1 2466  Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller)
+		144d c005  X10 Laptop
 	9201  3C920B-EMB Integrated Fast Ethernet Controller [Tornado]
 		1043 80ab  A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller
 	9202  3Com 3C920B-EMB-WNM Integrated Fast Ethernet Controller
@@ -3910,12 +4301,14 @@
 		10b9 1523  ALI M1523 ISA Bridge
 	1531  M1531 [Aladdin IV]
 	1533  M1533/M1535 PCI to ISA Bridge [Aladdin IV/V/V+]
-		1014 053b  ThinkPad R40e (2684-HVG) PCI to ISA Bridge
+		1014 053b  ThinkPad R40e
 		10b9 1533  ALi M1533 Aladdin IV/V ISA Bridge
 	1541  M1541
 		10b9 1541  ALI M1541 Aladdin V/V+ AGP System Controller
 	1543  M1543
 	1563  M1563 HyperTransport South Bridge
+		10b9 1563  ASRock 939Dual-SATA2 Motherboard
+		1849 1563  ASRock 939Dual-SATA2 Motherboard
 	1573  PCI to LPC Controller
 	1621  M1621
 	1631  ALI M1631 PCI North Bridge Aladdin Pro III
@@ -3949,16 +4342,20 @@
 	5228  M5228 ALi ATA/RAID Controller
 	5229  M5229 IDE
 		1014 050f  ThinkPad R30
-		1014 053d  ThinkPad R40e (2684-HVG) builtin IDE
+		1014 053d  ThinkPad R40e
 		103c 0024  Pavilion ze4400 builtin IDE
 		1043 8053  A7A266 Motherboard IDE
 		1849 5229  ASRock 939Dual-SATA2 Motherboard IDE (PATA)
 	5235  M5225
 	5237  USB 1.1 Controller
-		1014 0540  ThinkPad R40e (2684-HVG) builtin USB
+		1014 0540  ThinkPad R40e
 		103c 0024  Pavilion ze4400 builtin USB
 		104d 810f  VAIO PCG-U1 USB/OHCI Revision 1.0
+		10b9 5237  ASRock 939Dual-SATA2 Motherboard
+		1849 5237  ASRock 939Dual-SATA2 Motherboard
 	5239  USB 2.0 Controller
+		10b9 5239  ASRock 939Dual-SATA2 Motherboard
+		1849 5239  ASRock 939Dual-SATA2 Motherboard
 	5243  M1541 PCI to AGP Controller
 	5246  AGP8X Controller
 	5247  PCI to AGP Controller
@@ -3974,17 +4371,20 @@
 	5281  ALi M5281 Serial ATA / RAID Host Controller
 	5287  ULi 5287 SATA
 	5288  ULi M5288 SATA
+		1043 8056  A8R-MVP Mainboard
 	5289  ULi 5289 SATA
 	5450  Lucent Technologies Soft Modem AMR
 	5451  M5451 PCI AC-Link Controller Audio Device
 		1014 0506  ThinkPad R30
-		1014 053e  ThinkPad R40e (2684-HVG) builtin Audio
+		1014 053e  ThinkPad R40e
 		103c 0024  Pavilion ze4400 builtin Audio
 		10b9 5451  HP Compaq nc4010 (DY885AA#ABN)
 	5453  M5453 PCI AC-Link Controller Modem Device
 	5455  M5455 PCI AC-Link Controller Audio Device
+		10b9 5455  ASRock 939Dual-SATA2 Motherboard
+		1849 0850  ASRock 939Dual-SATA2 Motherboard
 	5457  M5457 AC'97 Modem Controller
-		1014 0535  ThinkPad R40e (2684-HVG) builtin modem
+		1014 0535  ThinkPad R40e
 		103c 0024  Pavilion ze4400 builtin Modem Device
 	5459  SmartLink SmartPCI561 56K Modem
 	545a  SmartLink SmartPCI563 56K Modem
@@ -3993,12 +4393,15 @@
 	5473  M5473 SD-MMC Controller
 	7101  M7101 Power Management Controller [PMU]
 		1014 0510  ThinkPad R30
-		1014 053c  ThinkPad R40e (2684-HVG) Power Management Controller
+		1014 053c  ThinkPad R40e
 		103c 0024  Pavilion ze4400
+		10b9 7101  ASRock 939Dual-SATA2 Motherboard
+		1849 7101  ASRock 939Dual-SATA2 Motherboard
 10ba  Mitsubishi Electric Corp.
 	0301  AccelGraphics AccelECLIPSE
 	0304  AccelGALAXY A2100 [OEM Evans & Sutherland]
 	0308  Tornado 3000 [OEM Evans & Sutherland]
+		10dd 0024  Tornado 3000
 	1002  VG500 [VolumePro Volume Rendering Accelerator]
 10bb  Dapha Electronics Corporation
 10bc  Advanced Logic Research
@@ -4049,7 +4452,7 @@
 	8005  NM2200 [MagicMedia 256AV Audio]
 		0e11 b0d1  MagicMedia 256AV Audio Device on Discovery
 		0e11 b126  MagicMedia 256AV Audio Device on Durango
-		1014 00dd  MagicMedia 256AV Audio Device on BlackTip Thinkpad
+		1014 00dd  ThinkPad 390/i1720/i1721
 		1025 1003  MagicMedia 256AV Audio Device on TravelMate 720
 		1028 0088  Latitude CPi A
 		1028 008f  MagicMedia 256AV Audio Device on Colorado Inspiron
@@ -4076,6 +4479,7 @@
 		1195 1320  Ultra-SCSI CardBus PC Card REX CB31
 	2300  ABP940-UW
 	2500  ABP940-U2W
+	2700  ABP3950-U3W
 10ce  Radius
 # nee Citicorp TTI
 10cf  Fujitsu Limited.
@@ -4108,6 +4512,7 @@
 	10dc  ATT2C15-3 FPGA
 10dd  Evans & Sutherland
 	0100  Lightning 1200
+		10dd 0023  Lightning 1200 15+16M
 10de  nVidia Corporation
 	0008  NV1 [EDGE 3D]
 	0009  NV1 [EDGE 3D]
@@ -4173,8 +4578,8 @@
 		1102 1029  3D Blaster RIVA TNT2 Ultra
 		1102 102f  3D Blaster RIVA TNT2 Ultra
 		14af 5820  Maxi Gamer Xentor 32
-	002a  NV5 [Riva TnT2]
-	002b  NV5 [Riva TnT2]
+	002a  NV5 [Riva TNT2]
+	002b  NV5 [Riva TNT2]
 	002c  NV6 [Vanta/Vanta LT]
 		1043 0200  AGP-V3800 Combat SDRAM
 		1043 0201  AGP-V3800 Combat
@@ -4224,57 +4629,77 @@
 	004e  NV40GL [Quadro FX 4000]
 	0050  CK804 ISA Bridge
 		1043 815a  K8N4-E or A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		1458 0c11  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 3402  NF4 AM2L Mainboard
 	0051  CK804 ISA Bridge
 	0052  CK804 SMBus
 		1043 815a  K8N4-E or A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		1458 0c11  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 3402  NF4 AM2L Mainboard
 	0053  CK804 IDE
 		1043 815a  K8N4-E or A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		1458 5002  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 3402  NF4 AM2L Mainboard
 	0054  CK804 Serial ATA Controller
 		1043 815a  A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		1458 b003  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 5401  NF4 AM2L Mainboard
 	0055  CK804 Serial ATA Controller
 		1043 815a  K8N4-E or A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		1458 b003  GA-K8N Ultra-9 Mainboard
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 5401  NF4 AM2L Mainboard
 	0056  CK804 Ethernet Controller
 	0057  CK804 Ethernet Controller
 		1043 8141  K8N4-E or A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		1458 e000  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 2501  NF4 AM2L Mainboard
 	0058  CK804 AC'97 Modem
 	0059  CK804 AC'97 Audio Controller
 		1043 812a  K8N4-E or A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 8211  NF4 AM2L Mainboard
 	005a  CK804 USB Controller
 		1043 815a  K8N4-E or A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		1458 5004  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 3402  NF4 AM2L Mainboard
 	005b  CK804 USB Controller
 		1043 815a  K8N4-E or A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		1458 5004  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 3402  NF4 AM2L Mainboard
 	005c  CK804 PCI Bridge
 	005d  CK804 PCIE Bridge
 	005e  CK804 Memory Controller
 		1043 815a  A8N-E Mainboard
+		10f1 2865  Tomcat K8E (S2865)
 		10f1 2891  Thunder K8SRE Mainboard
 		1458 5000  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
+		1565 3402  NF4 AM2L Mainboard
 	005f  CK804 Memory Controller
 	0060  nForce2 ISA Bridge
 		1043 80ad  A7N8X Mainboard
@@ -4282,11 +4707,15 @@
 	0064  nForce2 SMBus (MCP)
 		a0a0 03bb  UK79G-1394 motherboard
 	0065  nForce2 IDE
+		10de 0c11  nForce 2 EIDE Controller
 		a0a0 03b2  UK79G-1394 motherboard
 	0066  nForce2 Ethernet Controller
 		1043 80a7  A7N8X Mainboard onboard nForce2 Ethernet
+		10de 0c11  nForce MCP-T Networking Adapter
+		a0a0 03b3  UK79G-1394 motherboard
 	0067  nForce2 USB Controller
 		1043 0c11  A7N8X Mainboard
+		a0a0 03b4  UK79G-1394 motherboard
 	0068  nForce2 USB Controller
 		1043 0c11  A7N8X Mainboard
 		a0a0 03b4  UK79G-1394 motherboard
@@ -4295,6 +4724,7 @@
 		a0a0 0304  UK79G-1394 motherboard
 	006b  nForce Audio Processing Unit
 		10de 006b  nForce2 MCP Audio Processing Unit
+		a0a0 0304  UK79G-1394 motherboard
 	006c  nForce2 External PCI Bridge
 	006d  nForce2 PCI Bridge
 	006e  nForce2 FireWire (IEEE 1394) Controller
@@ -4319,15 +4749,16 @@
 	0091  G70 [GeForce 7800 GTX]
 	0092  G70 [GeForce 7800 GT]
 	0093  G70 [GeForce 7800 GS]
-	0098  GeForce Go 7800
-	0099  GE Force Go 7800 GTX
+	0095  GeForce 7800 SLI
+	0098  G70 [GeForce Go 7800]
+	0099  G70 [GeForce Go 7800 GTX]
 	009d  G70GL [Quadro FX 4500]
 	00a0  NV5 [Aladdin TNT2]
 		14af 5810  Maxi Gamer Xentor
 	00c0  NV41 [GeForce 6800 GS]
 	00c1  NV41.1 [GeForce 6800]
 	00c2  NV41.2 [GeForce 6800 LE]
-	00c3  NV42 [Geforce 6800 XT]
+	00c3  NV42 [GeForce 6800 XT]
 	00c8  NV41.8 [GeForce Go 6800]
 	00c9  NV41.9 [GeForce Go 6800 Ultra]
 	00cc  NV41 [Quadro FX Go1400]
@@ -4347,37 +4778,46 @@
 	00da  nForce3 Audio
 	00dd  nForce3 PCI Bridge
 	00df  CK8S Ethernet Controller
+		1043 80a7  K8N-E
 		105b 0c43  Winfast NF3250K8AA
 		147b 1c0b  NF8 Mainboard
 	00e0  nForce3 250Gb LPC Bridge
+		1043 813f  K8N-E
 		10de 0c11  Winfast NF3250K8AA
 		1462 7030  K8N Neo-FSR v2.0
 		147b 1c0b  NF8 Mainboard
 	00e1  nForce3 250Gb Host Bridge
+		1043 813f  K8N-E
 		1462 7030  K8N Neo-FSR v2.0
 		147b 1c0b  NF8 Mainboard
 	00e2  nForce3 250Gb AGP Host to PCI Bridge
 	00e3  CK8S Serial ATA Controller (v2.5)
+		1043 813f  K8N-E
 		105b 0c43  Winfast NF3250K8AA
 		147b 1c0b  NF8 Mainboard
 	00e4  nForce 250Gb PCI System Management
+		1043 813f  K8N-E
 		105b 0c43  Winfast NF3250K8AA
 		1462 7030  K8N Neo-FSR v2.0
 		147b 1c0b  NF8 Mainboard
 	00e5  CK8S Parallel ATA Controller (v2.5)
+		1043 813f  K8N-E
 		105b 0c43  Winfast NF3250K8AA
 		1462 7030  K8N Neo-FSR v2.0
 		147b 1c0b  NF8 Mainboard
 	00e6  CK8S Ethernet Controller
 	00e7  CK8S USB Controller
+		1043 813f  K8N-E
 		105b 0c43  Winfast NF3250K8AA
 		1462 7030  K8N Neo-FSR v2.0
 		147b 1c0b  NF8 Mainboard
 	00e8  nForce3 EHCI USB 2.0 Controller
+		1043 813f  K8N-E
 		105b 0c43  Winfast NF3250K8AA
 		1462 7030  K8N Neo-FSR v2.0
 		147b 1c0b  NF8 Mainboard
 	00ea  nForce3 250Gb AC'97 Audio Controller
+		1043 819d  K8N-E
 		105b 0c43  Winfast NF3250K8AA
 		1462 b010  K8N Neo-FSR v2.0
 		147b 1c0b  NF8 Mainboard
@@ -4396,7 +4836,8 @@
 	00f6  NV43 [GeForce 6800 GS]
 		1682 217e  XFX GeForce 6800 XTreme 256MB DDR3 AGP
 	00f8  NV45GL [Quadro FX 3400/4400]
-	00f9  NV40 [GeForce 6800 Series GPU]
+	00f9  NV45 [GeForce 6800 GTO]
+		10de 00f9  NV40 [GeForce 6800 GT]
 		1682 2120  GEFORCE 6800 GT PCI-E
 	00fa  NV36 [GeForce PCX 5750]
 	00fb  NV35 [GeForce PCX 5900]
@@ -4443,6 +4884,7 @@
 		1462 8817  MSI GeForce2 MX400 Pro32S [MS-8817]
 		14af 7102  3D Prophet II MX
 		14af 7103  3D Prophet II MX Dual-Display
+		1545 0023  Xtasy Rev. B2
 	0111  NV11DDR [GeForce2 MX200]
 	0112  NV11 [GeForce2 Go]
 	0113  NV11GL [Quadro2 MXR/EX/Go]
@@ -4460,7 +4902,7 @@
 	0149  NV43 [GeForce Go 6600 GT]
 	014a  Quadro NVS 440
 	014c  Quadro FX 540 MXM
-	014d  NV18GL [Quadro FX 550]
+	014d  NV43GL [Quadro FX 550]
 	014e  NV43GL [Quadro FX 540]
 	014f  NV43 [GeForce 6200]
 	0150  NV15 [GeForce2 GTS/Pro]
@@ -4502,10 +4944,11 @@
 	0175  NV17 [GeForce4 420 Go]
 	0176  NV17 [GeForce4 420 Go 32M]
 		103c 08b0  tc1100 tablet
+		144d c005  X10 Laptop
 		4c53 1090  Cx9 / Vx9 mainboard
 	0177  NV17 [GeForce4 460 Go]
 	0178  NV17GL [Quadro4 550 XGL]
-	0179  NV17 [GeForce4 420 Go 32M]
+	0179  NV17 [GeForce4 440 Go 64M]
 		10de 0179  GeForce4 MX (Mac)
 	017a  NV17GL [Quadro NVS]
 	017b  NV17GL [Quadro4 550 XGL]
@@ -4525,12 +4968,15 @@
 	0186  NV18M [GeForce4 448 Go]
 	0187  NV18M [GeForce4 488 Go]
 	0188  NV18GL [Quadro4 580 XGL]
-	018a  NV18GL [Quadro NVS with AGP8X]
+	018a  NV18GL [Quadro NVS 280 SD]
 	018b  NV18GL [Quadro4 380 XGL]
-	018c  Quadro NVS 50 PCI
+	018c  NV18GL [Quadro NVS 50 PCI]
 	018d  NV18M [GeForce4 448 Go]
-	0191  GeForce 8800 GTX (G80)
+	0191  G80 [GeForce 8800 GTX]
 	0193  G80 [GeForce 8800 GTS]
+	0194  GeForce 8800 Ultra
+	019d  G80 [Quadro FX 5600]
+	019e  G80 [Quadro FX 4600]
 	01a0  NVCrush11 [GeForce2 MX Integrated Graphics]
 	01a4  nForce CPU bridge
 	01ab  nForce 420 Memory Controller (DDR)
@@ -4546,19 +4992,21 @@
 	01c1  nForce AC'97 Modem Controller
 	01c2  nForce USB Controller
 	01c3  nForce Ethernet Controller
-	01d1  GeForce 7300 LE
+	01d0  GeForce 7350 LE
+	01d1  G72 [GeForce 7300 LE]
 		1462 0345  7300LE PCI Express Graphics Adapter
-	01d3  GeForce 7300 SE
+	01d3  G72 [GeForce 7300 SE]
 	01d6  GeForce Go 7200
 	01d7  G72M [Quadro NVS 110M/GeForce Go 7300]
 	01d8  G72M [GeForce Go 7400]
-	01da  Quadro NVS 110M
-	01dc  Quadro FX 350M
-	01dd  G72 [Geforce 7500 LE]
-	01de  Quadro FX 350
+	01da  G72M [Quadro NVS 110M]
+	01db  Quadro NVS 120M
+	01dc  G72GL [Quadro FX 350M]
+	01dd  G72 [GeForce 7500 LE]
+	01de  G72GL [Quadro FX 350]
 		10de 01dc  Quadro  FX Go350M
 	01df  G71 [GeForce 7300 GS]
-	01e0  nForce2 AGP (different version?)
+	01e0  nForce2 IGP2
 		147b 1c09  NV7 Motherboard
 	01e8  nForce2 AGP
 	01ea  nForce2 Memory Controller 0
@@ -4570,6 +5018,7 @@
 	01ed  nForce2 Memory Controller 3
 		a0a0 03b9  UK79G-1394 motherboard
 	01ee  nForce2 Memory Controller 4
+		10de 01ee  MSI Delta-L nForce2 memory controller
 		a0a0 03b9  UK79G-1394 motherboard
 	01ef  nForce2 Memory Controller 5
 		a0a0 03b9  UK79G-1394 motherboard
@@ -4588,6 +5037,7 @@
 	0215  NV40 [GeForce 6800 GT]
 	0218  NV40 [GeForce 6800 XT]
 	0221  NV44A [GeForce 6200]
+		3842 a341  256A8N341DX
 	0222  GeForce 6200 A-LE
 	0240  C51PV [GeForce 6150]
 		1043 81cd  A8N-VM CSM
@@ -4596,7 +5046,9 @@
 	0242  C51G [GeForce 6100]
 	0243  C51 PCI Express Bridge
 	0244  C51 [Geforce 6150 Go]
-		10de 0244  C51 [Geforce 6150 Go]
+		103c 30b5  Presario V3242AU
+		103c 30b7  Presario V6133CL
+		10de 0244  GeForce Go 6150
 	0245  C51 [Quadro NVS 210S/GeForce 6150LE]
 	0246  C51 PCI Express Bridge
 	0247  MCP51 PCI-X GeForce Go 6100
@@ -4612,6 +5064,8 @@
 	0250  NV25 [GeForce4 Ti 4600]
 	0251  NV25 [GeForce4 Ti 4400]
 		1043 8023  v8440 GeForce 4 Ti4400
+		10de 0251  PNY GeForce4 Ti 4400
+		1462 8710  PNY GeForce4 Ti 4400
 	0252  NV25 [GeForce4 Ti]
 	0253  NV25 [GeForce4 Ti 4200]
 		107d 2896  WinFast A250 LE TD (Dual VGA/TV-out/DVI)
@@ -4620,18 +5074,23 @@
 	0259  NV25GL [Quadro4 750 XGL]
 	025b  NV25GL [Quadro4 700 XGL]
 	0260  MCP51 LPC Bridge
+		103c 30b7  Presario V6133CL
 		1043 81bc  A8N-VM CSM Mainboard
+		1458 5001  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	0261  MCP51 LPC Bridge
 	0262  MCP51 LPC Bridge
 	0263  MCP51 LPC Bridge
 	0264  MCP51 SMBus
+		103c 30b7  Presario V6133CL
 		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	0265  MCP51 IDE
+		103c 30b7  Presario V6133CL
 		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	0266  MCP51 Serial ATA Controller
+		103c 30b7  Presario V6133CL
 		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	0267  MCP51 Serial ATA Controller
@@ -4639,30 +5098,44 @@
 		1462 7207  K8NGM2 series
 	0268  MCP51 Ethernet Controller
 	0269  MCP51 Ethernet Controller
+		103c 30b7  Presario V6133CL
 		1043 8141  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	026a  MCP51 MCI
 	026b  MCP51 AC97 Audio Controller
 	026c  MCP51 High Definition Audio
+		103c 30b5  Presario V3242AU
+		103c 30b7  Presario V6133CL
 		10de cb84  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	026d  MCP51 USB Controller
+		103c 30b7  Presario V6133CL
 		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	026e  MCP51 USB Controller
+		103c 30b7  Presario V6133CL
 		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	026f  MCP51 PCI Bridge
+		103c 30b7  Presario V6133CL
 	0270  MCP51 Host Bridge
+		103c 30b7  Presario V6133CL
 		1043 81bc  A8N-VM CSM Mainboard
+		1458 5001  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	0271  MCP51 PMU
+		103c 30b5  Presario V3242AU
+		103c 30b7  Presario V6133CL
 	0272  MCP51 Memory Controller 0
 	027e  C51 Memory Controller 2
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	027f  C51 Memory Controller 3
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	0280  NV28 [GeForce4 Ti 4800]
 	0281  NV28 [GeForce4 Ti 4200 AGP 8x]
@@ -4678,25 +5151,35 @@
 	0293  G71 [GeForce 7900 GX2]
 	0294  G71 [GeForce 7950 GX2]
 	0295  G71 [GeForce 7950 GT]
+		1043 8225  GeForce 7950 GT
 		107d 2a68  WinFast PX7950GT TDH
+		1462 0663  NX7950GT-VT2D512EZ-HD
 	0297  GeForce Go 7950 GTX
 	0298  GeForce Go 7900 GS
 	0299  GeForce Go 7900 GTX
 	029a  G71 [Quadro FX 2500M]
 	029b  G71 [Quadro FX 1500M]
-	029c  Quadro FX 5500
-	029d  Quadro FX 3500
-	029e  Quadro FX 1500
-	029f  Quadro FX 4500 X2
+	029c  G71 [Quadro FX 5500]
+	029d  G71GL [Quadro FX 3500]
+	029e  G71 [Quadro FX 1500]
+	029f  G70 [Quadro FX 4500 X2]
 # Xbox Graphics Processing Unit (Integrated). GeForce3 derivative (NV20 < NV2A < NV25).
 	02a0  NV2A [XGPU]
 	02e0  GeForce 7600 GT
+		02e0 2249  GF 7600GT 560M 256MB DDR3 DUAL DVI TV
 	02e1  G73 [GeForce 7600 GS]
+		1682 222b  PV-T73K-UAL3 (256MB)
 	02e2  GeForce 7300 GT
+	02e3  GeForce 7900 GS
+# An oddball 7950 that doesn't show up on any official NVIDIA lists but was seen in the wild
+	02e4  GeForce 7950 GT AGP
+		1682 2271  PV-T71A-YDF7 (512MB)
 	02f0  C51 Host Bridge
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	02f1  C51 Host Bridge
+		1458 5000  GA-M55plus-S3G
 	02f2  C51 Host Bridge
 	02f3  C51 Host Bridge
 	02f4  C51 Host Bridge
@@ -4704,22 +5187,34 @@
 	02f6  C51 Host Bridge
 	02f7  C51 Host Bridge
 	02f8  C51 Memory Controller 5
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	02f9  C51 Memory Controller 4
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	02fa  C51 Memory Controller 0
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	02fb  C51 PCI Express Bridge
 	02fc  C51 PCI Express Bridge
+		103c 30b7  Presario V6133CL
 	02fd  C51 PCI Express Bridge
+		103c 30b7  Presario V6133CL
 	02fe  C51 Memory Controller 1
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	02ff  C51 Host Bridge
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	0300  NV30 [GeForce FX]
 	0301  NV30 [GeForce FX 5800 Ultra]
@@ -4735,7 +5230,7 @@
 	0317  NV31M Pro
 	031a  NV31M [GeForce FX Go5600]
 	031b  NV31M [GeForce FX Go5650]
-	031c  NVIDIA Quadro FX Go700
+	031c  Quadro FX Go700
 	031d  NV31GLM
 	031e  NV31GLM Pro
 	031f  NV31GLM Pro
@@ -4743,23 +5238,29 @@
 	0321  NV34 [GeForce FX 5200 Ultra]
 	0322  NV34 [GeForce FX 5200]
 		1043 02fb  V9250 Magic
+		1462 9110  MS-8911 (FX5200-TD128)
 		1462 9171  MS-8917 (FX5200-T128)
 		1462 9360  MS-8936 (FX5200-T128)
 	0323  NV34 [GeForce FX 5200LE]
 	0324  NV34M [GeForce FX Go5200 64M]
 		1028 0196  Inspiron 5160
+		103c 006a  Pavillon ZD7000 laptop
 		1071 8160  MIM2000
 	0325  NV34M [GeForce FX Go5250]
 	0326  NV34 [GeForce FX 5500]
+		1458 310d  GeForce FX 5500 128 MB
+		1682 2034  GeForce 5500 256 MB
 	0327  NV34 [GeForce FX 5100]
 	0328  NV34M [GeForce FX Go5200 32M/64M]
 	0329  NV34M [GeForce FX Go5200]
+		10de 0010  Powerbook G4
 	032a  NV34GL [Quadro NVS 280 PCI]
 	032b  NV34GL [Quadro FX 500/600 PCI]
 	032c  NV34GLM [GeForce FX Go 5300]
 	032d  NV34 [GeForce FX Go5100]
 	032f  NV34GL
 	0330  NV35 [GeForce FX 5900 Ultra]
+		1043 8137  V9950 Ultra / 256 MB
 	0331  NV35 [GeForce FX 5900]
 		1043 8145  V9950GE
 	0332  NV35 [GeForce FX 5900XT]
@@ -4768,6 +5269,7 @@
 	0338  NV35GL [Quadro FX 3000]
 	033f  NV35GL [Quadro FX 700]
 	0341  NV36.1 [GeForce FX 5700 Ultra]
+		1462 9380  MS-8938 (FX5700U-TD128)
 	0342  NV36.2 [GeForce FX 5700]
 	0343  NV36 [GeForce FX 5700LE]
 	0344  NV36.4 [GeForce FX 5700VE]
@@ -4783,43 +5285,57 @@
 	0360  MCP55 LPC Bridge
 	0361  MCP55 LPC Bridge
 	0362  MCP55 LPC Bridge
+		147b 12c4  KN9-Ultra Mainboard
 	0363  MCP55 LPC Bridge
 	0364  MCP55 LPC Bridge
 	0365  MCP55 LPC Bridge
 	0366  MCP55 LPC Bridge
 	0367  MCP55 LPC Bridge
 	0368  MCP55 SMBus
+		147b 12c4  KN9-Ultra Mainboard
 	0369  MCP55 Memory Controller
+		147b 12c4  KN9-Ultra Mainboard
 	036a  MCP55 Memory Controller
 	036b  MCP55 SMU
 	036c  MCP55 USB Controller
+		147b 12c4  KN9-Ultra Mainboard
 	036d  MCP55 USB Controller
+		147b 12c4  KN9-Ultra Mainboard
 	036e  MCP55 IDE
+		147b 12c4  KN9-Ultra Mainboard
 	0370  MCP55 PCI bridge
 	0371  MCP55 High Definition Audio
 	0372  MCP55 Ethernet
 	0373  MCP55 Ethernet
+		147b 12c4  KN9-Ultra Mainboard
 	0374  MCP55 PCI Express bridge
 	0375  MCP55 PCI Express bridge
 	0376  MCP55 PCI Express bridge
 	0377  MCP55 PCI Express bridge
 	0378  MCP55 PCI Express bridge
 	037a  MCP55 Memory Controller
+	037c  G70 [GeForce 7800 GS] (rev a2)
 	037e  MCP55 SATA Controller
 	037f  MCP55 SATA Controller
+		147b 12c4  KN9-Ultra Mainboard
 	0390  GeForce 7650 GS
 	0391  G70 [GeForce 7600 GT]
 		1458 3427  GV-NX76T128D-RH
 	0392  G70 [GeForce 7600 GS]
 		1462 0622  NX7600GS-T2D256EH
 	0393  G70 [GeForce 7300 GT]
+		10de 0412  NX7300GT-TD256EH
+		1462 0412  NX7300GT-TD256EH
 	0394  G70 [GeForce 7600 LE]
 	0395  G70 [GeForce 7300 GT]
 	0397  GeForce Go 7700
 	0398  G70 [GeForce Go 7600]
+		1025 006c  Acer 9814 WKMI
+	0399  GeForce Go 7600 GT
 	039b  GeForce Go 7900 SE
 	039c  Quadro FX 550M
-	039e  Quadro FX 560
+		10de 039c  Quadro FX 560M
+	039e  G73GL [Quadro FX 560]
 	03a0  C55 Host Bridge
 	03a1  C55 Host Bridge
 	03a2  C55 Host Bridge
@@ -4848,11 +5364,13 @@
 	03b9  C55 PCI Express bridge
 	03ba  C55 Memory Controller
 	03bb  C55 PCI Express bridge
+	03bc  C55 Memory Controller
 	03d0  GeForce 6100 nForce 430
 	03d1  GeForce 6100 nForce 405
 	03d2  GeForce 6100 nForce 400
 	03d5  GeForce 6100 nForce 420
 	03e0  MCP61 LPC Bridge
+		1849 03e0  939NF6G-VSTA Board
 	03e1  MCP61 LPC Bridge
 	03e2  MCP61 LPC Bridge
 	03e3  MCP61 LPC Bridge
@@ -4861,20 +5379,57 @@
 	03e6  MCP61 Ethernet
 	03e7  MCP61 SATA Controller
 	03e8  MCP61 PCI Express bridge
+		1849 03e8  939NF6G-VSTA Board
 	03e9  MCP61 PCI Express bridge
+		1849 03e9  939NF6G-VSTA Board
 	03ea  MCP61 Memory Controller
+		1849 03ea  939NF6G-VSTA Board
 	03eb  MCP61 SMBus
+		1849 03eb  939NF6G-VSTA Board
 	03ec  MCP61 IDE
+		1849 03ec  939NF6G-VSTA Board
 	03ee  MCP61 Ethernet
 	03ef  MCP61 Ethernet
+		1849 03ef  939NF6G-VSTA Board
 	03f0  MCP61 High Definition Audio
+		1849 0888  939NF6G-VSTA Board
 	03f1  MCP61 USB Controller
+		1849 03f1  939NF6G-VSTA Board
 	03f2  MCP61 USB Controller
+		1849 03f2  939NF6G-VSTA Board
 	03f3  MCP61 PCI bridge
 	03f4  MCP61 SMU
 	03f5  MCP61 Memory Controller
+		1849 03eb  939NF6G-VSTA Board
 	03f6  MCP61 SATA Controller
+		1849 03f6  939NF6G-VSTA Board
 	03f7  MCP61 SATA Controller
+	0400  GeForce 8600 GTS
+	0402  GeForce 8600 GT
+	0403  GeForce 8600 GS
+	0404  GeForce 8400 GS
+	0407  GeForce 8600M GT
+	0409  GeForce 8700M GT
+	040a  Quadro FX 370
+	040b  Quadro NVS 320M
+	040c  Quadro FX 570M
+	040d  Quadro FX 1600M
+	040e  Quadro FX 570
+	040f  Quadro FX 1700
+	0420  GeForce 8400 SE
+	0421  GeForce 8500 GT
+	0422  GeForce 8400 GS
+	0423  GeForce 8300 GS
+	0425  GeForce 8600M GS
+	0426  G86M [GeForce 8400M GT]
+	0427  GeForce 8400M GS
+	0428  GeForce 8400M G
+	0429  Quadro NVS 140M
+		17aa 20d8  ThinkPad T61
+	042a  Quadro NVS 130M
+	042b  Quadro NVS 135M
+	042d  Quadro FX 360M
+	042f  Quadro NVS 290
 	0440  MCP65 LPC Bridge
 	0441  MCP65 LPC Bridge
 	0442  MCP65 LPC Bridge
@@ -4906,8 +5461,61 @@
 	045d  MCP65 SATA Controller
 	045e  MCP65 SATA Controller
 	045f  MCP65 SATA Controller
+	0531  GeForce 7150M
+	0533  GeForce 7000M (rev a2)
+	053a  GeForce 7050 PV / nForce 630a
+	053b  GeForce 7050 PV / nForce 630a
+	053e  GeForce 7025
+	0541  MCP67 Memory Controller
+	0542  MCP67 SMBus
+	0543  MCP67 Co-processor
+	0547  MCP67 Memory Controller
+		1849 0547  ALiveNF7G-HDready
+	0548  MCP67 ISA Bridge
+	054c  MCP67 Ethernet
+		1849 054c  ALiveNF7G-HDready, MCP67 Gigabit Ethernet
+	0550  MCP67 AHCI Controller
+	0554  MCP67 AHCI Controller
+	0555  MCP67 SATA Controller
+	055c  MCP67 High Definition Audio
+	055d  MCP67 High Definition Audio
+	055e  MCP67 OHCI USB 1.1 Controller
+	055f  MCP67 EHCI USB 2.0 Controller
+	0560  MCP67 IDE Controller
+	0561  MCP67 PCI Bridge
+	0562  MCP67 PCI Express Bridge
+		1849 0562  ALiveNF7G-HDready
+	0563  MCP67 PCI Express Bridge
+	056a  GeForce 7100/nForce 630i
+	0600  GeForce 8800 GTS 512
+	0606  GeForce 8800 GS
+	0609  GeForce 8800M GTS
+	060c  GeForce 8800M GTX
+	0611  GeForce 8800 GT
+	061a  Quadro FX 3700
+	0622  Geforce 9600 GT 512mb
+	07cb  nForce 630i memory controller
+	07cd  nForce 630i memory controller
+	07ce  nForce 630i memory controller
+	07cf  nForce 630i memory controller
+	07d0  nForce 630i memory controller
+	07d1  nForce 630i memory controller
+	07d2  nForce 630i memory controller
+	07d3  nForce 630i memory controller
+	07d6  nForce 630i memory controller
+	07dc  MCP73 Ethernet
+	07e1  GeForce 7100/nForce 630i
+	07e3  GeForce 7050/nForce 610i
+	07f4  GeForce 7100/nForce 630i
+	07fc  MCP73 High Definition Audio
+		10de 07fc  MCP73 High Definition Audio
+	07fe  GeForce 7100/nForce 630i
+	0849  GeForce 8200
+	c615  G70 [GeForce 7600 GT]
 10df  Emulex Corporation
 	1ae5  LP6000 Fibre Channel Host Adapter
+	f011  Saturn: LightPulse Fibre Channel Host Adapter
+	f015  Saturn: LightPulse Fibre Channel Host Adapter
 	f085  LP850 Fibre Channel Host Adapter
 	f095  LP952 Fibre Channel Host Adapter
 	f098  LP982 Fibre Channel Host Adapter
@@ -4919,6 +5527,7 @@
 	f0e1  Zephyr LightPulse Fibre Channel Host Adapter
 	f0e5  Zephyr LightPulse Fibre Channel Host Adapter
 	f0f5  Neptune LightPulse Fibre Channel Host Adapter
+	f100  Saturn-X: LightPulse Fibre Channel Host Adapter
 	f700  LP7000 Fibre Channel Host Adapter
 	f701  LP7000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)
 	f800  LP8000 Fibre Channel Host Adapter
@@ -4933,8 +5542,10 @@
 	fc00  Thor-X LightPulse Fibre Channel Host Adapter
 	fc10  Helios-X LightPulse Fibre Channel Host Adapter
 	fc20  Zephyr-X LightPulse Fibre Channel Host Adapter
+	fc40  Saturn-X: LightPulse Fibre Channel Host Adapter
 	fd00  Helios-X LightPulse Fibre Channel Host Adapter
 	fe00  Zephyr-X LightPulse Fibre Channel Host Adapter
+	fe05  Zephyr-X: LightPulse FCoE Adapter
 	ff00  Neptune LightPulse Fibre Channel Host Adapter
 10e0  Integrated Micro Solutions Inc.
 	5026  IMS5026/27/28
@@ -4953,6 +5564,7 @@
 	0000  CA91C042 [Universe]
 	0108  Tsi108 Host Bridge for Single PowerPC
 	0148  Tsi148 [Tempe]
+		1775 1100  VR11 Single Board Computer
 	0860  CA91C860 [QSpan]
 	0862  CA91C862A [QSpan-II]
 	8260  CA91L8200B [Dual PCI PowerSpan II]
@@ -5013,6 +5625,7 @@
 	0139  Zonet Zen3200
 	0260  Realtek 260 High Definition Audio
 	0261  Realtek 261 High Definition Audio
+	0262  Realtek 262 High Definition Audio
 	0280  Realtek 280 High Definition Audio
 	0861  Realtek 861 High Definition Audio
 	0862  Realtek 862 High Definition Audio
@@ -5028,6 +5641,7 @@
 		1259 2400  AT-2400
 	8129  RTL-8129
 		10ec 8129  RT8129 Fast Ethernet Adapter
+		11ec 8129  RT8129 Fast Ethernet Adapter
 	8136  RTL8101E PCI Express Fast Ethernet controller
 	8138  RT8139 (B/C) Cardbus Fast Ethernet Adapter
 		10ec 8138  RT8139 (B/C) Fast Ethernet Adapter
@@ -5055,6 +5669,7 @@
 		1436 8139  RT8139
 		144d c00c  P30/P35 notebook
 		1458 e000  GA-7VM400M/7VT600 Motherboard
+		1462 217c  Aspire L250
 		1462 788c  865PE Neo2-V Mainboard
 		146c 1439  FE-1439TX
 		1489 6001  GF100TXRII
@@ -5062,6 +5677,7 @@
 		149c 139a  LFE-8139ATX
 		149c 8139  LFE-8139TX
 		14cb 0200  LNR-100 Family 10/100 Base-TX Ethernet
+		1565 2300  P4TSV Onboard LAN (RTL8100B)
 		1695 9001  Onboard RTL8101L 10/100 MBit
 		1799 5000  F5D5000 PCI Card/Desktop Network PCI Card
 		1904 8139  RTL8139D Fast Ethernet Adapter
@@ -5071,6 +5687,7 @@
 		a0a0 0007  ALN-325C
 	8167  RTL-8110SC/8169SC Gigabit Ethernet
 		1462 235c  P965 Neo MS-7235 mainboard
+		1462 236c  945P Neo3-F motherboard
 	8168  RTL8111/8168B PCI Express Gigabit Ethernet controller
 	8169  RTL-8169 Gigabit Ethernet
 		1025 0079  Aspire 5024WLMi
@@ -5079,6 +5696,9 @@
 		1458 e000  GA-8I915ME-G Mainboard
 		1462 030c  K8N Neo-FSR v2.0 mainboard
 		1462 702c  K8T NEO 2 motherboard
+		1462 7094  K8T Neo2-F V2.0
+		1734 1091  D2030-A1
+		a0a0 0449  AK86-L motherboard
 	8180  RTL8180L 802.11b MAC
 	8185  RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller
 	8197  SmartLAN56 56K Modem
@@ -5097,8 +5717,13 @@
 	3fc4  RME Digi9652 (Hammerfall)
 	3fc5  RME Hammerfall DSP
 	3fc6  RME Hammerfall DSP MADI
+	8380  Ellips ProfiXpress Profibus Master
 	8381  Ellips Santos Frame Grabber
 	d154  Copley Controls CAN card (PCI-CAN-02)
+# SED is assigned Xilinx PCI device IDs ebf0 through ebff
+	ebf0  SED Systems Modulator/Demodulator
+	ebf1  SED Systems Audio Interface Card
+	ebf2  SED Systems Common PCI Interface
 10ef  Racore Computer Products, Inc.
 	8154  M815x Token Ring Adapter
 10f0  Peritek Corporation
@@ -5126,13 +5751,14 @@
 10ff  NCube
 1100  Jazz Multimedia
 1101  Initio Corporation
+	0002  INI-920 Ultra SCSI Adapter
 	1060  INI-A100U2W
 	1622  INI-1623 PCI SATA-II Controller
 	9100  INI-9100/9100W
-	9400  INI-940
-	9401  INI-950
-	9500  360P
-	9502  Initio INI-9100UW Ultra Wide SCSI Controller INIC-950P chip
+	9400  INI-940 Fast Wide SCSI Adapter
+	9401  INI-935 Fast Wide SCSI Adapter
+	9500  INI-950 SCSI Adapter
+	9502  INI-950P Ultra Wide SCSI Adapter
 1102  Creative Labs
 	0002  SB Live! EMU10k1
 		1102 0020  CT4850 SBLive! Value
@@ -5171,9 +5797,12 @@
 		1102 1001  SB0310 Audigy LS
 		1102 1002  SB0312 Audigy LS
 		1102 1006  SB0410 SBLive! 24-bit
+		1102 1012  SB0790 X-Fi XA
 		1462 1009  K8N Diamond
 	0008  SB0400 Audigy2 Value
 		1102 0008  EMU0404 Digital Audio System
+	0009  [SB X-Fi Xtreme Audio] CA0110-IBG
+		1102 0010  [SB X-Fi Xtreme Audio] CA0110-IBG
 	4001  SB Audigy FireWire Port
 		1102 0010  SB Audigy FireWire Port
 	7002  SB Live! Game Port
@@ -5201,11 +5830,11 @@
 		156d b700  G700/U700  (AlphaTop (Taiwan))
 		156d b795  G795  (AlphaTop (Taiwan))
 		156d b797  G797  (AlphaTop (Taiwan))
-1103  Triones Technologies, Inc.
+# nee Triones Technologies, Inc.
+1103  HighPoint Technologies, Inc.
 	0003  HPT343/345/346/363
 	0004  HPT366/368/370/370A/372/372N
 		1103 0001  HPT370A
-		1103 0003  HPT343 / HPT345 / HPT363 UDMA33
 		1103 0004  HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4)
 		1103 0005  HPT370 UDMA100
 		1103 0006  HPT302/302N
@@ -5214,6 +5843,15 @@
 	0007  HPT371/371N
 	0008  HPT374
 	0009  HPT372N
+	1740  RocketRAID 1740
+	1742  RocketRAID 1742
+	2300  RocketRAID 230x 4 Port SATA-II Controller
+	2310  RocketRAID 2310 4 Port SATA-II Controller
+	2320  RocketRAID 2320 SATA-II Controller
+	2322  RocketRAID 2322 SATA-II Controller
+	2340  RocketRAID 2340 16 Port SATA-II Controller
+	3220  RocketRAID 3220
+	3320  RocketRAID 3320
 1104  RasterOps Corp.
 1105  Sigma Designs, Inc.
 	1105  REALmagic Xcard MPEG 1/2/3/4 DVD Decoder
@@ -5228,6 +5866,7 @@
 		127d 0000  CineView II
 	8485  EM8485 REALmagic DVD/MPEG-4 A/V Decoder
 	8486  EM8486 REALmagic DVD/MPEG-4 A/V Decoder
+	c622  EM8622L MPEG-4.10 (H.264) and SMPTE 421M (VC-1) A/V Decoder
 1106  VIA Technologies, Inc.
 	0102  Embedded VIA Ethernet Controller
 	0130  VT6305 1394.A Controller
@@ -5275,6 +5914,8 @@
 		1297 f641  FX41 motherboard
 		1458 5002  GA-7VAX Mainboard
 		1462 7020  K8T NEO 2 motherboard
+		1462 7094  K8T Neo2-F V2.0
+		1462 7181  K8MM3-V mainboard
 		147b 1407  KV8-MAX3 motherboard
 		1849 0571  K7VT2/K7VT6 motherboard
 	0576  VT82C576 3V [Apollo Master]
@@ -5332,6 +5973,7 @@
 	1364  P4M900 Host Bridge
 	1571  VT82C576M/VT82C586
 	1595  VT82C595/97 [Apollo VP2/97]
+	2106  VIA Rhine Family Fast Ethernet Adapter (VT6105)
 	2204  K8M800 Host Bridge
 	2208  PT890 Host Bridge
 	2238  K8T890 Host Bridge
@@ -5357,7 +5999,7 @@
 	287e  VT8251 Ultra VLINK Controller
 	3022  CLE266
 	3038  VT82xxxxx UHCI USB 1.1 Controller
-		0925 1234  USB Controller
+		0925 1234  VA-502 Mainboard
 		1019 0985  P6VXA Motherboard
 		1019 0a81  L7VTA v1.0 Motherboard (KT400-8235)
 		1043 8080  A7V333 motherboard
@@ -5367,6 +6009,8 @@
 		1179 0001  Magnia Z310
 		1458 5004  GA-7VAX Mainboard
 		1462 7020  K8T NEO 2 motherboard
+		1462 7094  K8T Neo2-F V2.0
+		1462 7181  K8MM3-V mainboard
 		147b 1407  KV8-MAX3 motherboard
 		182d 201d  CN-029 USB2.0 4 port PCI Card
 		1849 3038  K7VT6
@@ -5411,6 +6055,7 @@
 		1043 80a1  A7V8X-X Motherboard
 		1043 80b0  A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX])
 		1043 812a  A8V Deluxe motherboard (Realtek ALC850 codec)
+		10ec 8168  High Definition Audio
 		1106 3059  L7VMM2 Motherboard
 		1106 4161  K7VT2 motherboard
 		1106 4170  PCPartner P4M800-8237R Motherboard
@@ -5420,18 +6065,22 @@
 		1458 a002  GA-7VAX Onboard Audio (Realtek ALC650)
 		1462 0080  K8T NEO 2 motherboard
 		1462 3800  KT266 onboard audio
+		1462 7181  K8MM3-V mainboard
 		147b 1407  KV8-MAX3 motherboard
 		1849 0850  ASRock 775Dual-880 Pro onboard audio (Realtek ALC850)
 		1849 9761  K7VT6 motherboard
-		3005 1695  EP-8KMM3I motherboard onboard audio (Realtek ALC655)
 		4005 4710  MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P)
 		a0a0 01b6  AK77-8XN onboard audio
+		a0a0 0342  AK86-L motherboard
+		aa01 1106  Epia TC10000 Motherboard
 	3065  VT6102 [Rhine-II]
 		1043 80a1  A7V8X-X Motherboard
 		1106 0102  VT6102 [Rhine II] Embeded Ethernet Controller on VT8235
 		1186 1400  DFE-530TX rev A
 		1186 1401  DFE-530TX rev B
 		13b9 1421  LD-10/100AL PCI Fast Ethernet Adapter (rev.B)
+		1462 7061  MS-7061
+		1462 7181  K8MM3-V mainboard
 		147b 1c09  NV7 Motherboard
 		1695 3005  VT6103
 		1695 300c  Realtek ALC655 sound chip
@@ -5457,11 +6106,14 @@
 		1297 f641  FX41 motherboard
 		1458 5004  GA-7VAX Mainboard
 		1462 7020  K8T NEO 2 motherboard
+		1462 7094  K8T Neo2-F V2.0
+		1462 7181  K8MM3-V mainboard
 		147b 1407  KV8-MAX3 motherboard
 		182d 201d  CN-029 USB 2.0 4 port PCI Card
 		1849 3104  K7VT6 motherboard
 	3106  VT6105 [Rhine-III]
 		1186 1403  DFE-530TX rev C
+		1186 1407  DFE-538TX
 	3108  S3 Unichrome Pro VGA Adapter
 	3109  VT8233C PCI to ISA Bridge
 	3112  VT8361 [KLE133] Host Bridge
@@ -5481,9 +6133,11 @@
 		1043 80ed  A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard
 		1458 b003  GA-7VM400AM(F) Motherboard
 		1462 7020  K8T Neo 2 Motherboard
+		1462 7094  K8T Neo2-F V2.0
 		147b 1407  KV8-MAX3 motherboard
 		147b 1408  KV7
 		1849 3149  K7VT6 motherboard
+		a0a0 04ad  AK86-L motherboard
 	3156  P/KN266 Host Bridge
 	3157  CX700M2 UniChrome PRO II Graphics
 	3164  VT6410 ATA133 RAID controller
@@ -5525,6 +6179,7 @@
 	324e  CX700 Internal Module Bus
 	3258  PT880 Host Bridge
 	3259  CN400/PM880 Host Bridge
+	3260  VIA Chrome9 HC IGP
 	3269  KT880 Host Bridge
 	3282  K8T800Pro Host Bridge
 	3287  VT8251 PCI to ISA Bridge
@@ -5536,6 +6191,7 @@
 	3336  K8M890CE Host Bridge
 	3337  VT8237A PCI to ISA Bridge
 	3340  PT900 Host Bridge
+	3343  UniChrome Pro IGP [VIA P4M890 Chipset]
 	3344  UniChrome Pro IGP
 	3349  VT8251 AHCI/SATA 4-Port Controller
 	3351  VT3351 Host Bridge
@@ -5575,11 +6231,13 @@
 	5351  VT3351 I/O APIC Interrupt Controller
 	5364  P4M900 I/O APIC Interrupt Controller
 	6100  VT85C100A [Rhine II]
+	6287  SATA RAID Controller
 	6327  P4M890 Security Device
 	6364  P4M900 Security Device
 	7204  K8M800 Host Bridge
 	7205  VT8378 [S3 UniChrome] Integrated Video
 		1458 d000  Gigabyte GA-7VM400(A)M(F) Motherboard
+		1462 7061  MS-7061
 	7208  PT890 Host Bridge
 	7238  K8T890 Host Bridge
 	7258  PT880 Host Bridge
@@ -5736,11 +6394,7 @@
 	000a  GDT 6115/6515
 	000b  GDT 6125/6525
 	000c  GDT 6535
-	000d  GDT 6555
-	0010  GDT 6115/6515
-	0011  GDT 6125/6525
-	0012  GDT 6535
-	0013  GDT 6555/6555-ECC
+	000d  GDT 6555/6555-ECC
 	0100  GDT 6117RP/6517RP
 	0101  GDT 6127RP/6527RP
 	0102  GDT 6537RP
@@ -5797,6 +6451,7 @@
 	0261  GDT 7529RN/7629RN
 	02ff  GDT MAXRP
 	0300  GDT NEWRX
+	0301  GDT NEWRX2
 111a  Efficient Networks, Inc
 	0000  155P-MF1 (FPGA)
 	0002  155P-MF1 (ASIC)
@@ -5895,6 +6550,7 @@
 		1435 7330  VFG7330
 		1435 7350  VFG7350
 		1461 1044  AVerTVHD MCE A180
+		1461 a14b  AVerTV Studio 509
 		1461 f31f  Avermedia AVerTV GO 007 FM
 		1462 6231  TV@Anywhere plus
 		1489 0214  LifeView FlyTV Platinum FM
@@ -5903,6 +6559,7 @@
 		153b 1162  Terratec Cinergy 400 mobile
 		17de 7350  ATSC 110 Digital / Analog HDTV Tuner
 		185b c100  VideoMate TV
+		185b c900  VideoMate T750
 		5168 0306  LifeView FlyDVB-T DUO
 		5168 0319  LifeView FlyDVB Trio
 		5168 0502  LifeView FlyDVB-T Duo CardBus
@@ -5937,6 +6594,7 @@
 		185b c900  Videomate DVB-T300
 		1894 a006  KNC One TV-Station DVR
 		1894 fe01  KNC One TV-Station RDS / Typhoon TV Tuner RDS
+		5168 0138  FLY TV PRIME 34FM
 	7145  SAA7145
 	7146  SAA7146
 		110a 0000  Fujitsu/Siemens DVB-C card rev1.5
@@ -5970,10 +6628,11 @@
 		13c2 1019  S2-3200
 		13c2 1102  Technotrend/Hauppauge DVB card rev2.1
 		153b 1156  Terratec Cynergy 1200C
+		1894 0020  KNC One DVB-C V1.0
 	9730  SAA9730 Integrated Multimedia and Peripheral Controller
 		1131 0000  Integrated Multimedia and Peripheral Controller
 1132  Mitel Corp.
-1133  Eicon Networks Corporation
+1133  Dialogic Corporation
 	7901  EiconCard S90
 	7902  EiconCard S90
 	7911  EiconCard S91
@@ -5995,55 +6654,67 @@
 	e008  Diva CT Lite S/T PCI
 	e009  Diva CT Lite U PCI
 	e00a  Diva ISDN+V.90 PCI
-	e00b  Diva 2.02 PCI S/T
+	e00b  Diva ISDN PCI 2.02
 	e00c  Diva 2.02 PCI U
-	e00d  Diva ISDN Pro 3.0 PCI
+	e00d  Diva Pro 3.0 PCI
 	e00e  Diva ISDN+CT S/T PCI Rev 2
 	e010  Diva Server BRI-2M PCI
 		110a 0021  Fujitsu Siemens ISDN S0
 	e011  Diva Server BRI S/T Rev 2
 	e012  Diva Server 4BRI-8M PCI
-	e013  Diva Server 4BRI Rev 2
-		1133 1300  Diva Server V-4BRI-8
-		1133 e013  Diva Server 4BRI-8M 2.0 PCI
+	e013  4BRI
+		1133 1300  Diva V-4BRI-8 PCI v2
+		1133 e013  Diva 4BRI-8 PCI v2
 	e014  Diva Server PRI-30M PCI
-	e015  DIVA Server PRI Rev 2
-		1133 e015  Diva Server PRI 2.0 PCI
+	e015  Diva PRI PCI v2
 	e016  Diva Server Voice 4BRI PCI
 	e017  Diva Server Voice 4BRI Rev 2
 		1133 e017  Diva Server Voice 4BRI-8M 2.0 PCI
-	e018  Diva Server BRI-2M 2.0 PCI
-		1133 1800  Diva Server V-BRI-2
-		1133 e018  Diva Server BRI-2M 2.0 PCI
+	e018  BRI
+		1133 1800  Diva V-BRI-2 PCI v2
+		1133 e018  Diva BRI-2 PCI v2
 	e019  Diva Server Voice PRI Rev 2
 		1133 e019  Diva Server Voice PRI 2.0 PCI
-	e01a  Diva Server 2FX
+	e01a  Diva BRI-2FX PCI v2
 	e01b  Diva Server Voice BRI-2M 2.0 PCI
 		1133 e01b  Diva Server Voice BRI-2M 2.0 PCI
-	e01c  Diva Server PRI Rev 3
-		1133 1c01  Diva Server PRI/E1/T1-8
-		1133 1c02  Diva Server PRI/T1-24
-		1133 1c03  Diva Server PRI/E1-30
-		1133 1c04  Diva Server PRI/E1/T1
-		1133 1c05  Diva Server V-PRI/T1-24
-		1133 1c06  Diva Server V-PRI/E1-30
+	e01c  PRI
+		1133 1c01  Diva PRI/E1/T1-8 PCI v3
+		1133 1c02  Diva PRI/T1-24 PCI(e) v3
+		1133 1c03  Diva PRI/E1-30 PCI(e) v3
+		1133 1c04  Diva PRI/E1/T1-CTI PCI(e) v3
+		1133 1c05  Diva V-PRI/T1-24 PCI(e) v3
+		1133 1c06  Diva V-PRI/E1-30 PCI(e) v3
 		1133 1c07  Diva Server PRI/E1/T1-8 Cornet NQ
 		1133 1c08  Diva Server PRI/T1-24 Cornet NQ
 		1133 1c09  Diva Server PRI/E1-30 Cornet NQ
 		1133 1c0a  Diva Server PRI/E1/T1 Cornet NQ
 		1133 1c0b  Diva Server V-PRI/T1-24 Cornet NQ
 		1133 1c0c  Diva Server V-PRI/E1-30 Cornet NQ
-	e01e  Diva Server 2PRI
-	e020  Diva Server 4PRI
-	e022  Diva Server Analog-2P
-	e024  Diva Server Analog-4P
-		1133 2400  Diva Server V-Analog-4P
-		1133 e024  Diva Server Analog-4P
-	e028  Diva Server Analog-8P
-		1133 2800  Diva Server V-Analog-8P
-		1133 e028  Diva Server Analog-8P
-	e02a  Diva Server IPM-300
-	e02c  Diva Server IPM-600
+	e01e  2PRI
+		1133 1e01  Diva 2PRI/E1/T1-60 PCI v1
+		1133 e01e  Diva V-2PRI/E1/T1-60 PCI v1
+	e020  4PRI
+		1133 2001  Diva 4PRI/E1/T1-120 PCI v1
+		1133 e020  Diva V-4PRI/E1/T1-120 PCI v1
+	e022  Analog-2
+		1133 2200  Diva V-Analog-2 PCI v1
+		1133 e022  Diva Analog-2 PCI v1
+	e024  Analog-4
+		1133 2400  Diva V-Analog-4 PCI v1
+		1133 e024  Diva Analog-4 PCI v1
+	e028  Analog-8
+		1133 2800  Diva V-Analog-8 PCI v1
+		1133 e028  Diva Analog-8 PCI v1
+	e02a  Diva IPM-300 PCI v1
+	e02c  Diva IPM-600 PCI v1
+	e02e  4BRI
+		1133 2e01  Diva V-4BRI-8 PCIe v2
+		1133 e02e  Diva 4BRI-8 PCIe v2
+	e032  BRI
+		1133 3201  Diva V-BRI-2 PCIe v2
+		1133 e032  Diva BRI-2 PCIe v2
+	e034  Diva BRI-CTI PCI v2
 1134  Mercury Computer Systems
 	0001  Raceway Bridge
 	0002  Dual PCI to RapidIO Bridge
@@ -6224,6 +6895,9 @@
 	00c9  Digi Neo 2 DB9 PRI
 	00ca  Digi Neo 2 RJ45
 	00cb  Digi Neo 2 RJ45 PRI
+	00cc  Digi Neo 1 422
+	00cd  Digi Neo 1 422 485
+	00ce  Digi Neo 2 422 485
 	00d0  ClassicBoard 4 422
 	00d1  ClassicBoard 8 422
 	6001  Avanstar
@@ -6309,13 +6983,14 @@
 	0015  CMIC-GC Host Bridge
 	0016  CMIC-GC Host Bridge
 	0017  GCNB-LE Host Bridge
-	0036  HT1000 PCI/PCI-X bridge
+	0031  HT1100 HPX0 HT Host Bridge
+	0036  BCM5785 [HT1000] PCI/PCI-X Bridge
 	0101  CIOB-X2 PCI-X I/O Bridge
 	0103  EPB PCI-Express to PCI-X Bridge
-	0104  HT1000 PCI/PCI-X bridge
+	0104  BCM5785 [HT1000] PCI/PCI-X Bridge
 	0110  CIOB-E I/O Bridge with Gigabit Ethernet
-	0130  HT2000 PCI-X bridge
-	0132  HT2000 PCI-Express bridge
+	0130  BCM5780 [HT2000] PCI-X bridge
+	0132  BCM5780 [HT2000] PCI-Express Bridge
 		1166 0132  HT2000 PCI-Express bridge
 	0140  HT2100 PCI-Express Bridge
 	0141  HT2100 PCI-Express Bridge
@@ -6326,34 +7001,49 @@
 		4c53 1080  CT8 mainboard
 	0203  CSB6 South Bridge
 		1734 1012  Primergy RX300
-	0205  HT1000 Legacy South Bridge
+	0205  BCM5785 [HT1000] Legacy South Bridge
 	0211  OSB4 IDE Controller
 	0212  CSB5 IDE Controller
+		1028 810b  PowerEdge 2550
 		4c53 1080  CT8 mainboard
 	0213  CSB6 RAID/IDE Controller
 		1028 4134  PowerEdge 600SC
 		1028 c134  Poweredge SC600
 		1734 1012  Primergy RX300
-	0214  HT1000 Legacy IDE controller
+	0214  BCM5785 [HT1000] IDE
 	0217  CSB6 IDE Controller
 		1028 4134  Poweredge SC600
+	021b  HT1100 HD Audio
 	0220  OSB4/CSB5 OHCI USB Controller
 		4c53 1080  CT8 mainboard
 	0221  CSB6 OHCI USB Controller
 		1734 1012  Primergy RX300
-	0223  HT1000 USB Controller
+	0223  BCM5785 [HT1000] USB
 	0225  CSB5 LPC bridge
 	0227  GCLE-2 Host Bridge
 		1734 1012  Primergy RX300
 	0230  CSB5 LPC bridge
 		4c53 1080  CT8 mainboard
-	0234  HT1000 LPC Bridge
+	0234  BCM5785 [HT1000] LPC
+	0235  BCM5785 [HT1000] XIOAPIC0-2
+	0238  BCM5785 [HT1000] WDTimer
 	0240  K2 SATA
 	0241  RAIDCore RC4000
 	0242  RAIDCore BC4000
-	024a  BCM5785 (HT1000) SATA Native SATA Mode
-# The device starts as 024a, and changes to 024b if set to PATA mode in BIOS
-	024b  BCM5785 (HT1000) PATA/IDE Mode
+	024a  BCM5785 [HT1000] SATA (Native SATA Mode)
+# The device starts as 024A, and changes to 024B if set to PATA mode in BIOS
+	024b  BCM5785 [HT1000] SATA (PATA/IDE Mode)
+	0406  HT1100 PCI-X Bridge
+	0408  HT1100 Legacy Device
+	040a  HT1100 ISA-LPC Bridge
+	0410  HT1100 SATA Controller (Native SATA Mode)
+	0411  HT1100 SATA Controller (PATA / IDE Mode)
+	0412  HT1100 USB OHCI Controller
+	0414  HT1100 USB EHCI Controller
+	0416  HT1100 USB EHCI Controller (with Debug Port)
+	0420  HT1100 PCI-Express Bridge
+	0421  HT1100 SAS/SATA Controller
+	0422  HT1100 PCI-Express Bridge
 1167  Mutoh Industries Inc
 1168  Thine Electronics Inc
 1169  Centre for Development of Advanced Computing
@@ -6413,6 +7103,7 @@
 		144d c006  vpr Matrix 170B4 CardBus bridge
 	0476  RL5c476 II
 		1014 0185  ThinkPad A/T/X Series
+		1028 014f  Latitude X300 laptop
 		1028 0188  Inspiron 6000 laptop
 		1043 1967  V6800V
 		1043 1987  Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines )
@@ -6420,6 +7111,7 @@
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
 		104d 814e  VAIO GRZ390Z
 		10f7 8338  Panasonic CF-Y5 laptop
+		144d c005  X10 Laptop
 		144d c00c  P30/P35 notebook
 		14ef 0220  PCD-RP-220S
 		17aa 201c  Thinkpad X60s
@@ -6434,13 +7126,16 @@
 		144d c006  vpr Matrix 170B4
 	0552  R5C552 IEEE 1394 Controller
 		1014 0511  ThinkPad A/T/X Series
+		1028 014f  Latitude X300 laptop
 		1028 0188  Inspiron 6000 laptop
+		144d c005  X10 Laptop
 		144d c00c  P30/P35 notebook
 		17aa 201e  Thinkpad X60s
 	0554  R5C554
 	0575  R5C575 SD Bus Host Adapter
 	0576  R5C576 SD Bus Host Adapter
 	0592  R5C592 Memory Stick Bus Host Adapter
+		103c 30b7  Presario V6133CL
 		1043 1967  V6800V
 		144d c018  X20 IV
 	0811  R5C811
@@ -6449,13 +7144,18 @@
 		1014 0598  Thinkpad Z60m
 		1028 0188  Inspiron 6000 laptop
 		1028 01a2  Inspiron 9200
+		103c 30b7  Presario V6133CL
 		1043 1967  ASUS V6800V
 		10f7 8338  Panasonic CF-Y5 laptop
 		144d c018  X20 IV
 		17aa 201d  Thinkpad X60s
 	0832  R5C832 IEEE 1394 Controller
+		103c 30b7  Presario V6133CL
 	0841  R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394
+	0843  R5C843 MMC Host Controller
+		103c 30b7  Presario V6133CL
 	0852  xD-Picture Card Controller
+		103c 30b7  Presario V6133CL
 		1043 1967  V6800V
 1181  Telmatics International
 1183  Fujikura Ltd
@@ -6491,11 +7191,16 @@
 	3a13  AirPlus DWL-G520 Wireless PCI Adapter(rev.B)
 	3a14  AirPremier DWL-AG530 Wireless PCI Adapter
 	3a63  AirXpert DWL-AG660 Wireless Cardbus Adapter
+	3c00  D-link DWL-G650X
 	4000  DL2000-based Gigabit Ethernet
+	4001  DGE-550SX PCI-X Gigabit Ethernet Adapter
 	4300  DGE-528T Gigabit Ethernet Adapter
 # There are at least 3 revisions of this adapter; 4800 is board revision A1 as far as I can tell, revision B1 is 4c00.
 	4800  DGE-530T Gigabit Ethernet Adapter (rev 11)
+	4b00  DGE-560T PCI Express Gigabit Ethernet Adapter
 	4b01  DGE-530T Gigabit Ethernet Adapter (rev 11)
+	4b02  DGE-560SX PCI Express Gigabit Ethernet Adapter
+	4b03  DGE-550T Gigabit Ethernet Adapter V.B1
 	4c00  Gigabit Ethernet Adapter
 		1186 4c00  DGE-530T Gigabit Ethernet Adapter
 	8400  D-Link DWL-650+ CardBus PC Card
@@ -6582,12 +7287,14 @@
 # Nee Galileo Technology, Inc.
 11ab  Marvell Technology Group Ltd.
 	0146  GT-64010/64010A System Controller
+	0f53  88E6318 Link Street network controller
 	11ab  MV88SE614x SATA II PCI-E controller
 	138f  W8300 802.11 Adapter (rev 07)
 	1fa6  Marvell W8300 802.11 Adapter
 	1fa7  88W8310 and 88W8000G [Libertas] 802.11g client chipset
 	1faa  88w8335 [Libertas] 802.11b/g Wireless
-		1385 4e00  WG511 v2 54MBit/ Wireless PC-Card
+		1385 4e00  WG511v2 54 Mbps Wireless PC Card
+		1385 6b00  WG311v3 802.11g Wireless PCI Adapter
 	2a01  88W8335 [Libertas] 802.11b/g Wireless
 	4320  88E8001 Gigabit Ethernet Controller
 		1019 0f38  Marvell 88E8001 Gigabit Ethernet Controller (ECS)
@@ -6654,6 +7361,10 @@
 		1854 001e  Marvell 88E8036 Fast Ethernet Controller (LGE)
 		1854 0020  Marvell 88E8036 Fast Ethernet Controller (LGE)
 	4352  88E8038 PCI-E Fast Ethernet Controller
+	4353  88E8039 PCI-E Fast Ethernet Controller
+	4354  88E8040 PCI-E Fast Ethernet Controller
+	4356  88EC033 Ethernet Controller
+	435a  88E8048 PCI-E Fast Ethernet Controller
 	4360  88E8052 PCI-E ASF Gigabit Ethernet Controller
 		1043 8134  Marvell 88E8052 Gigabit Ethernet Controller (Asus)
 		107b 4009  Marvell 88E8052 Gigabit Ethernet Controller (Wistron)
@@ -6710,6 +7421,13 @@
 		a0a0 0506  Marvell 88E8053 Gigabit Ethernet Controller (Aopen)
 	4363  88E8055 PCI-E Gigabit Ethernet Controller
 	4364  88E8056 PCI-E Gigabit Ethernet Controller
+	4365  88E8070 based Ethernet Controller
+	4366  88EC036 PCI-E Gigabit Ethernet Controller
+	4367  88EC032 Ethernet Controller
+	4368  88EC034 Ethernet Controller
+	4369  88EC042 Ethernet Controller
+	436a  Marvell Yukon 88E8058 PCI-E Gigabit Ethernet Controller
+	436b  88E8071 PCI-E Gigabit Ethernet Controller
 	4611  GT-64115 System Controller
 	4620  GT-64120/64120A/64121A System Controller
 	4801  GT-48001
@@ -6719,14 +7437,18 @@
 	5080  MV88SX5080 8-port SATA I PCI-X Controller
 	5081  MV88SX5081 8-port SATA I PCI-X Controller
 	6041  MV88SX6041 4-port SATA II PCI-X Controller
+	6042  88SX6042 PCI-X 4-Port SATA-II
 	6081  MV88SX6081 8-port SATA II PCI-X Controller
 	6101  88SE6101 single-port PATA133 interface
+	6121  88SE6121 SATA II Controller
 	6141  88SE614x SATA II PCI-E controller
+	6145  88SE6145 SATA II PCI-E controller
 	6450  64560 System Controller
 	6460  MV64360/64361/64362 System Controller
 	6480  MV64460/64461/64462 System Controller
 		1775 c200  C2K CompactPCI single board computer
 	6485  MV64460/64461/64462 System Controller, Revision B
+	7042  88SX7042 PCI-e 4-port SATA-II
 	f003  GT-64010 Primary Image Piranha Image Generator
 11ac  Canon Information Systems Research Aust.
 11ad  Lite-On Communications Inc
@@ -6864,7 +7586,6 @@
 		1033 80a8  Versa Note Vxi
 		144f 4005  Magnia SG20
 		1468 0450  Evo N600c
-		4005 144f  LifeBook C Series
 	0451  LT WinModem
 	0452  LT WinModem
 	0453  LT WinModem
@@ -6941,6 +7662,8 @@
 	1981  AD1981HD sound chip
 	1983  AD1983HD sound chip
 	1986  AD1986A sound chip
+		11d4 1986  Lenovo N100 B9G
+	198b  AD1988B Sound Chip
 	5340  AD1881 sound chip
 11d5  Ikon Corporation
 	0115  10115
@@ -7007,7 +7730,10 @@
 	9881  RL100TX Fast Ethernet
 11f7  Scientific Atlanta
 11f8  PMC-Sierra Inc.
+	7364  PM7364 [FREEDM - 32 Frame Engine & Datalink Mgr]
 	7375  PM7375 [LASAR-155 ATM SAR]
+	7384  PM7384 [FREEDM - 84P672 Frm Engine & Datalink Mgr]
+	8000  PM8000  [SPC - SAS Protocol Controller]
 11f9  I-Cube Inc
 11fa  Kasan Electronics Company, Ltd.
 11fb  Datel Inc
@@ -7029,6 +7755,15 @@
 	000d  RocketModem 4-port
 	000e  RocketPort Plus 2 port RS232
 	000f  RocketPort Plus 2 port RS422
+	0040  RocketPort Infinity Octa, 8port, RJ45
+	0041  RocketPort Infinity 32port, External Interface
+	0042  RocketPort Infinity 8port, External Interface
+	0043  RocketPort Infinity 16port, External Interface
+	0044  RocketPort Infinity Quad, 4port, DB
+	0045  RocketPort Infinity Octa, 8port, DB
+	0047  RocketPort Infinity 4port, RJ45
+	004f  RocketPort Infinity 2port, SMPTE
+	0052  RocketPort Infinity Octa, 8port, SMPTE
 	0801  RocketPort UPCI 32 port w/external I/F
 	0802  RocketPort UPCI 8 port w/external I/F
 	0803  RocketPort UPCI 16 port w/external I/F
@@ -7108,6 +7843,7 @@
 	7130  Integrated MS/xD Controller
 	7134  OZ711MP1/MS1 MemoryCardBus Controller
 	7135  Cardbus bridge
+	7136  OZ711SP1 Memory CardBus Controller
 	71e2  OZ711E2 SmartCardBus Controller
 	7212  OZ711M2 4-in-1 MemoryCardBus Controller
 	7213  OZ6933E CardBus Controller
@@ -7171,6 +7907,11 @@
 1220  Ariel Corporation
 	1220  AMCC 5933 TMS320C80 DSP/Imaging board
 1221  Contec Co., Ltd
+	9172  PO-64L(PCI)H [Isolated Digital Output Board for PCI]
+	91a2  PO-32L(PCI)H [Isolated Digital Output Board for PCI]
+	91c3  DA16-16(LPCI)L [Un-insulated highly precise analog output board for Low Profile PCI]
+	b152  DIO-96D2-LPCI
+	c103  ADA16-32/2(PCI)F [High-Speed Analog I/O Board for PCI]
 1222  Ancor Communications, Inc.
 1223  Artesyn Communication Products
 	0003  PM/Link
@@ -7303,7 +8044,7 @@
 	0640  Aries 16000P
 125d  ESS Technology
 	0000  ES336H Fax Modem (Early Model)
-	1948  Solo?
+	1948  ES1948 Maestro-1
 	1968  ES1968 Maestro 2
 		1028 0085  ES1968 Maestro-2 PCI
 		1033 8051  ES1968 Maestro-2 Audiodrive
@@ -7354,6 +8095,7 @@
 		1668 0414  HWP01170-01 802.11b PCI Wireless Adapter
 		16a5 1601  AIR.mate PC-400 PCI Wireless LAN Adapter
 		1737 3874  WMP11 Wireless 802.11b PCI Adapter
+		8086 2510  M3AWEB Wireless 802.11b MiniPCI Adapter
 		8086 2513  Wireless 802.11b MiniPCI Adapter
 	3886  ISL3886 [Prism Javelin/Prism Xbow]
 		17cf 0037  XG-901 and clones Wireless Adapter
@@ -7363,6 +8105,7 @@
 		10b8 a835  SMC2835W V2 Wireless Cardbus Adapter
 		1113 4203  WN4201B
 		1113 8201  T-Com T-Sinus 154pcicard Wireless PCI Adapter
+		1113 b301  T-Sinus 154card Cardbus
 		1113 ee03  SMC2802W V2 Wireless PCI Adapter [ISL3886]
 		1113 ee08  SMC2835W V3 EU Wireless Cardbus Adapter
 		1186 3202  DWL-G650 A1 Wireless Adapter
@@ -7489,6 +8232,7 @@
 1278  Transtech Parallel Systems Ltd.
 	0701  TPE3/TM3 PowerPC Node
 	0710  TPE5 PowerPC PCI board
+	1101  TS-C43 card with 4 ADSP-TS101 processors
 1279  Transmeta Corporation
 	0060  TM8000 Northbridge
 	0061  TM8000 AGP bridge
@@ -7625,9 +8369,11 @@
 	9132  Ethernet 100/10 MBit
 1283  Integrated Technology Express, Inc.
 	673a  IT8330G
-	8211  ITE 8211F Single Channel UDMA 133 (ASUS 8211 (ITE IT8212 ATA RAID Controller))
+	8152  IT8152F/G Advanced RISC-to-PCI Companion Chip
+	8211  ITE 8211F Single Channel UDMA 133
 		1043 8138  P5GD1-VW Mainboard
-	8212  IT/ITE8212 Dual channel ATA RAID controller (PCI version seems to be IT8212, embedded seems to be ITE8212)
+# PCI version seems to be IT8212, embedded seems to be ITE8212
+	8212  IT/ITE8212 Dual channel ATA RAID controller
 		1283 0001  IT/ITE8212 Dual channel ATA RAID controller
 	8330  IT8330G
 	8872  IT8874F PCI Dual Serial Port Controller
@@ -7734,6 +8480,7 @@
 		12b9 00ab  USR 56k Internal Voice Modem (Model 5609)
 		12b9 00ac  USR 56k Internal Voice Modem (Model 3298)
 		12b9 00ad  USR 56k Internal FAX Modem (Model 5610)
+		12b9 baba  USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk]
 12ba  BittWare, Inc.
 12bb  Nippon Unisoft Corporation
 12bc  Array Microsystems
@@ -7786,6 +8533,14 @@
 	0086  THR2 Multi-scale Thresholder
 12c6  Mitani Corporation
 12c7  Dialogic Corp
+# 12 Line, 6 port, CT-BUS/SC-BUS, loopstart FXO adaptor.
+	0546  Springware D/120JCT-LS
+# 24 Channel, 1 Port, CT-BUS/SC-BUS, T1/PRI adaptor.
+	0647  Springware D/240JCT-T1
+# 4 Line, 4 port, CT-BUS/SC-BUS, loopstart FXO adaptor. Revision 01
+	0676  Springware D/41JCT-LS
+# 48 Channel, 2 Port, CT-BUS/SC-BUS, T1/PRI adaptor.
+	0685  Springware D/480JCT-2T1
 12c8  G Force Co, Ltd
 12c9  Gigi Operations
 12ca  Integrated Computing Engines
@@ -7833,7 +8588,7 @@
 12d6  Analogic Corp
 12d7  Biotronic SRL
 12d8  Pericom Semiconductor
-	01a7  PCI to PCI bridge
+	01a7  PI7C21P100 PCI to PCI Bridge
 	8150  PCI to PCI Bridge
 12d9  Aculab PLC
 	0002  PCI Prosody
@@ -7841,6 +8596,7 @@
 	0005  Aculab E1/T1 PCI card
 	1078  Prosody X class e1000 device
 		12d9 000d  Prosody X PCI
+		12d9 000e  Prosody X cPCI
 12da  True Time Inc.
 12db  Annapolis Micro Systems, Inc
 12dc  Symicron Computer Communication Ltd.
@@ -7976,7 +8732,21 @@
 	004d  PCI-QUAD04
 	0052  PCI-DAS4020/12
 	0054  PCI-DIO96
+	005d  PCI-DAS6023
 	005e  PCI-DAS6025
+	005f  PCI-DAS6030
+	0060  PCI-DAS6031
+	0061  PCI-DAS6032
+	0062  PCI-DAS6033
+	0063  PCI-DAS6034
+	0064  PCI-DAS6035
+	0065  PCI-DAS6040
+	0066  PCI-DAS6052
+	0067  PCI-DAS6070
+	0068  PCI-DAS6071
+	006f  PCI-DAS6036
+	0078  PCI-DAS6013
+	0079  PCI-DAS6014
 1308  Jato Technologies Inc.
 	0001  NetCelerator Adapter
 		1308 0001  NetCelerator Adapter
@@ -8072,7 +8842,7 @@
 132c  Micrel Inc
 132d  Integrated Silicon Solution, Inc.
 1330  MMC Networks
-1331  Radisys Corp.
+1331  RadiSys Corporation
 	0030  ENP-2611
 	8200  82600 Host Bridge
 	8201  82600 IDE
@@ -8164,13 +8934,16 @@
 	0102  PCI509 DCF77 Radio Clock
 	0103  PCI510 DCF77 Radio Clock
 	0104  PCI511 DCF77 Radio Clock
+	0105  PEX511 DCF77 Radio Clock (PCI Express)
 	0201  GPS167PCI GPS Receiver
 	0202  GPS168PCI GPS Receiver
 	0203  GPS169PCI GPS Receiver
 	0204  GPS170PCI GPS Receiver
+	0205  GPS170PEX GPS Receiver (PCI Express)
 	0301  TCR510PCI IRIG Timecode Reader
 	0302  TCR167PCI IRIG Timecode Reader
 	0303  TCR511PCI IRIG Timecode Reader
+	0304  TCR511PEX IRIG Timecode Reader (PCI Express)
 1361  Soliton Systems K.K.
 1362  Fujifacom Corporation
 1363  Phoenix Technology Ltd
@@ -8262,7 +9035,7 @@
 	4900  WG311v1 54 Mbps Wireless PCI Adapter
 	4a00  WAG311 802.11a/g Wireless PCI Adapter
 	4b00  WG511T 108 Mbps Wireless PC Card
-	4c00  WG311v2 54 Mbps Wireless PCI Adapter
+	4c00  WG311v2 54 Mbps Wireless-G PCI Adapter
 	4d00  WG311T 108 Mbps Wireless PCI Adapter
 	4e00  WG511v2 54 Mbps Wireless PC Card
 	4f00  WG511U Double 108 Mbps  Wireless PC Card
@@ -8292,10 +9065,29 @@
 1391  Development Concepts Inc
 1392  Medialight Inc
 1393  Moxa Technologies Co Ltd
+	0001  UC7000 Serial
+	1020  CP102 (2-port RS-232 PCI)
+	1021  CP102UL (2-port RS-232 Universal PCI)
+	1022  CP102U (2-port RS-232 Universal PCI)
 	1040  Smartio C104H/PCI
+	1041  CP104U (4-port RS-232 Universal PCI)
+	1042  CP104JU (4-port RS-232 Universal PCI)
+	1043  CP104EL (4-port RS-232 Smart PCI Express)
+	1044  POS104UL (4-port RS-232 Universal PCI)
+	1080  CB108 (8-port RS-232 PC/104-plus Module)
+	1140  CT-114 series
 	1141  Industrio CP-114
+	1142  CB114 (4-port RS-232/422/485 PC/104-plus Module)
+	1180  CP118U (8-port RS-232/422/485 Smart Universal PCI)
+	1181  CP118EL (8-port RS-232/422/485 Smart PCI Express)
+	1320  CP132 (2-port RS-422/485 PCI)
+	1321  CP132U (2-Port RS-422/485 Universal PCI)
+	1340  CP134U (4-Port RS-422/485 Universal PCI)
+	1341  CB134I (4-port RS-422/485 PC/104-plus Module)
+	1380  CP138U (8-port RS-232/422/485 Smart Universal PCI)
 	1680  Smartio C168H/PCI
 	1681  CP-168U V2 Smart Serial Board (8-port RS-232)
+	1682  CP168EL (8-port RS-232 Smart PCI Express)
 	2040  Intellio CP-204J
 	2180  Intellio C218 Turbo PCI
 	3200  Intellio C320 Turbo PCI
@@ -8308,6 +9100,7 @@
 	08b4  ISDN network Controller [HFC-4S]
 		1397 b520  HFC-4S [IOB4ST]
 		1397 b540  HFC-4S [Swyx 4xS0 SX2 QuadBri]
+		1397 b556  HFC-4S [Junghanns DuoDBRI]
 	16b8  ISDN network Controller [HFC-8S]
 	2bd0  ISDN network controller [HFC-PCI]
 		0675 1704  ISDN Adapter (PCI Bus, D, C)
@@ -8315,6 +9108,7 @@
 		1397 2bd0  ISDN Board
 		e4bf 1000  CI1-1-Harp
 	30b1  ISDN network Controller [HFC-E1]
+	b700  ISDN network controller PrimuX S0 [HFC-PCI]
 	f001  GSM Network Controller [HFC-4GSM]
 1398  Clarion co. Ltd
 1399  Rios systems Co Ltd
@@ -8342,6 +9136,7 @@
 	001d  7956 Security Processor
 	0020  7955 Security Processor
 	0026  8155 Security Processor
+	002e  9630 Compression Processor
 13a4  Rascom Inc
 13a5  Audio Digital Imaging Inc
 13a6  Videonics Inc
@@ -8387,6 +9182,7 @@
 	1004  9650SE SATA-II RAID
 13c2  Technotrend Systemtechnik GmbH
 	000e  Technotrend/Hauppauge DVB card rev2.3
+	1019  TTechnoTrend-budget DVB S2-3200
 13c3  Janz Computer AG
 13c4  Phase Metrics
 13c5  Alphi Technology Corp
@@ -8413,6 +9209,7 @@
 	ab08  21x4x DEC-Tulip compatible 10/100 Ethernet
 13d2  Shark Multimedia Inc
 13d3  IMC Networks
+	3219  DTV-DVB 7049A DVB-T USB Stick
 13d4  Graphics Microsystems Inc
 13d5  Media 100 Inc
 13d6  K.I. Technology Co Ltd
@@ -8447,6 +9244,7 @@
 13f0  Sundance Technology Inc / IC Plus Corp
 	0200  IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY
 	0201  ST201 Sundance Ethernet
+	1021  TC9020 Gigabit Ethernet
 	1023  IP1000 Family Gigabit Ethernet
 13f1  Oce' - Technologies B.V.
 13f2  Ford Microelectronics Inc
@@ -8466,8 +9264,25 @@
 		1043 8077  CMI8738 6-channel audio controller
 		1043 80e2  CMI8738 6ch-MX
 		13f6 0111  CMI8738/C3DX PCI Audio Device
+		13f6 9761  Theatron Agrippa
+		153b 1144  Aureon 5.1
+		153b 1170  Aureon 7.1
 		1681 a000  Gamesurround MUSE XL
+		270f 1103  CT-7NJS Ultra motherboard
+		584d 3731  Digital X-Mystique
+		584d 3741  X-Plosion 7.1
+		584d 3751  X-Raider 7.1
+		584d 3761  X-Mystique 7.1 LP
+		584d 3771  X-Mystique 7.1 LP Value
+		7284 8384  Striker 7.1
 	0211  CM8738
+	8788  CMI8788 [Oxygen HD Audio]
+		1043 8269  Virtuoso 200 (Xonar D2)
+		14c3 1710  HIFIER
+		1a58 0910  Barracuda AC-1
+		415a 5431  X-Meridian 7.1
+		584d 3781  HDA X-Purity 7.1 Platinum
+		7284 9761  CLARO
 	9880  CM9880
 13f7  Wildfire Communications
 13f8  Ad Lib Multimedia Inc
@@ -8484,6 +9299,8 @@
 # This board has two PCI functions, appears as two PCI devices
 		1602 0002  PCI-1602 2-port isolated RS-422/485
 		1612 0004  PCI-1612 4-port RS-232/422/485
+	1603  PCI-1603 2-port isolated RS-232/current loop
+	1604  PCI-1604 2-port RS-232
 	16ff  PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD)
 		1601 0000  PCI-1601 2-port unisolated RS-422/485 PCI communications card
 		1602 0000  PCI-1602 2-port isolated RS-422/485
@@ -8566,9 +9383,19 @@
 		153b 1153  Aureon 7.1 Universe
 		270f f641  ZNF3-150
 		270f f645  ZNF3-250
-		3136 4154  Prodigy 7.1 XT
 1413  Addonics
 1414  Microsoft Corporation
+	5801  XMA Decoder (Xenon)
+	5802  SATA Controller - CdRom (Xenon)
+	5803  SATA Controller - Disk (Xenon)
+	5804  OHCI Controller 0 (Xenon)
+	5805  EHCI Controller 0 (Xenon)
+	5806  OHCI Controller 1 (Xenon)
+	5807  EHCI Controller 1 (Xenon)
+	580a  Fast Ethernet Adapter (Xenon)
+	580b  Secure Flash Controller (Xenon)
+	580d  System Management Controller (Xenon)
+	5811  Xenos GPU (Xenon)
 1415  Oxford Semiconductor Ltd
 	8403  VScom 011H-EP1 1 port parallel adaptor
 	9500  OX16PCI954 (Quad 16950 UART) function 0 (Disabled)
@@ -8613,6 +9440,10 @@
 1425  Chelsio Communications Inc
 	000b  T210 Protocol Engine
 	000c  T204 Protocol Engine
+	0030  T310 10GbE Single Port Protocol Engine Ethernet Adapter
+	0031  T320 10GbE Dual Port Protocol Engine Ethernet Adapter
+	0032  T302 1GbE Dual Port Protocol Engine Ethernet adapter
+	0033  T304 1GbE Quad Port Protocol Engine Ethernet adapter
 1426  Storage Technology Corp.
 1427  Better On-Line Solutions
 1428  Edec Co Ltd
@@ -8707,8 +9538,11 @@
 	6819  Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [MSI CB54G]
 	6825  PCI Card wireless 11g [PC54G]
 	6834  RaLink RT2500 802.11g [PC54G2]
-	7125  K8N motherboard
+	7125  MS-7125 [K8N Neo4 Platinum]
 	7235  P965 Neo MS-7235 mainboard
+	7242  K9AGM RS485 Motherboard
+	7250  MS-7250 Motherboard [K9N Platinum SLI/non-SLI]
+	7327  K9AGM2-FIH Motherboard
 	8725  NVIDIA NV25 [GeForce4 Ti 4600] VGA Adapter
 	9000  NVIDIA NV28 [GeForce4 Ti 4800] VGA Adapter
 	9110  GeFORCE FX5200
@@ -8717,6 +9551,7 @@
 	9510  Radeon 9600XT
 	9511  Radeon 9600XT
 	9591  nVidia Corporation NV36 [GeForce FX 5700LE]
+	b834  Wireless 11g Turbo G PCI card [MSI PC60G]
 1463  Fast Corporation
 1464  Interactive Circuits & Systems Ltd
 1465  GN NETTEST Telecom DIV.
@@ -8773,7 +9608,7 @@
 1496  JOYTECH Computer Co., Ltd.
 1497  SMA Regelsysteme GmBH
 	1497  SMA Technologie AG
-1498  TEWS Datentechnik GmBH
+1498  TEWS Technologies GmbH
 	0330  TPMC816 2 Channel CAN bus controller.
 	0385  TPMC901 Extended CAN bus with 2/4/6 CAN controller
 	21cc  TCP460 CompactPCI 16 Channel Serial Interface RS232/RS422
@@ -8882,6 +9717,8 @@
 14d4  Panacom Technology Corp
 14d5  Nitsuko Corporation
 14d6  Accusys Inc
+	6101  ACS-61xxx, PCIe to SAS/SATA RAID HBA
+	6201  ACS-62xxx, External PCIe to SAS/SATA RAID controller
 14d7  Hirakawa Hewtech Corp
 14d8  HOPF Elektronik GmBH
 # Formerly SiPackets, Inc., formerly API NetWorks, Inc., formerly Alpha Processor, Inc.
@@ -8925,6 +9762,7 @@
 		107b 5048  E4500 Onboard
 	1601  NetXtreme BCM5752M Gigabit Ethernet PCI Express
 	1639  NetXtreme II BCM5709 Gigabit Ethernet
+	163a  NetXtreme II BCM5709S Gigabit Ethernet
 	1644  NetXtreme BCM5700 Gigabit Ethernet
 		1014 0277  Broadcom Vigil B5700 1000Base-T
 		1028 00d1  Broadcom BCM5700
@@ -8951,7 +9789,7 @@
 		0e11 009a  NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)
 		0e11 00c1  NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)
 		1028 0121  Broadcom BCM5701 1000Base-T
-		103c 128a  1000Base-T (PCI) [A7061A]
+		103c 128a  BCM5701 1000Base-T (HP, OEM 3COM)
 		103c 128b  1000Base-SX (PCI) [A7073A]
 		103c 12a4  Core Lan 1000Base-T
 		103c 12c1  IOX Core Lan 1000Base-T [A7109AX]
@@ -8986,6 +9824,7 @@
 		0e11 00cf  NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
 		0e11 00d0  NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
 		0e11 00d1  NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
+		103c 310f  NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
 		10a9 8013  Dual Port Gigabit Ethernet (PCI-X,Copper)
 		10a9 8018  Dual Port Gigabit Ethernet (A330)
 		10a9 801a  Dual Port Gigabit Ethernet (IA-blade)
@@ -8994,6 +9833,7 @@
 		10b7 3000  3C999-T Quad Port 10/100/1000 PCI-X
 		1166 1648  NetXtreme CIOB-E 1000Base-T
 		1734 100b  Primergy RX300
+	1649  NetXtreme BCM5704S_2 Gigabit Ethernet
 	164a  NetXtreme II BCM5706 Gigabit Ethernet
 		103c 3070  NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter
 		103c 3101  NC370T MultifuNCtion Gigabit Server Adapter
@@ -9001,12 +9841,17 @@
 		103c 7037  NC373T PCI Express Multifunction Gigabit Server Adapter
 		103c 7038  NC373i Integrated Multifunction Gigabit Server Adapter
 	164d  NetXtreme BCM5702FE Gigabit Ethernet
+# added marketing name - Everest
+	164e  NetXtreme II BCM57710 10Gigabit PCIe [Everest]
+	164f  NetXtreme II BCM57711 10Gigabit PCIe
+	1650  NetXtreme II BCM57712 10Gigabit PCIe
 	1653  NetXtreme BCM5705 Gigabit Ethernet
 		0e11 00e3  NC7761 Gigabit Server Adapter
 	1654  NetXtreme BCM5705_2 Gigabit Ethernet
 		0e11 00e3  NC7761 Gigabit Server Adapter
 		103c 3100  NC1020 ProLiant Gigabit Server Adapter 32 PCI
 		103c 3226  NC150T 4-port Gigabit Combo Switch & Adapter
+	1658  NetXtreme BCM5720 Gigabit Ethernet
 	1659  NetXtreme BCM5721 Gigabit Ethernet PCI Express
 		1014 02c6  eServer xSeries server mainboard
 		103c 7031  NC320T PCIe Gigabit Server Adapter
@@ -9015,6 +9860,7 @@
 	165a  NetXtreme BCM5722 Gigabit Ethernet PCI Express
 		103c 7051  NC105i PCIe Gigabit Server Adapter
 		103c 7052  NC105T PCIe Gigabit Server Adapter
+	165b  NetXtreme BCM5723 Gigabit Ethernet PCIe
 	165d  NetXtreme BCM5705M Gigabit Ethernet
 		1028 865d  Latitude D400
 	165e  NetXtreme BCM5705M_2 Gigabit Ethernet
@@ -9031,13 +9877,16 @@
 	1672  NetXtreme BCM5754M Gigabit Ethernet PCI Express
 	1673  NetXtreme BCM5755M Gigabit Ethernet PCI Express
 	1674  NetXtreme BCM5756ME Gigabit Ethernet PCI Express
+	1676  NetXtreme BCM5750 Gigabit Ethernet
 	1677  NetXtreme BCM5751 Gigabit Ethernet PCI Express
+		1028 0177  Dimension 8400
 		1028 0179  Optiplex GX280
 		1028 0182  Latitude D610
 		1028 0187  Precision M70
 		1028 01ad  Optiplex GX620
 		103c 3006  DC7100 SFF(DX878AV)
 		1734 105d  Scenic W620
+		3007 103c  HP DC7100 USFF
 	1678  NetXtreme BCM5715 Gigabit Ethernet
 	1679  NetXtreme BCM5715S Gigabit Ethernet
 		103c 1707  NC326m PCIe Dual Port Adapter
@@ -9045,14 +9894,20 @@
 		103c 703c  NC326i PCIe Dual Port Gigabit Server Adapter
 	167a  NetXtreme BCM5754 Gigabit Ethernet PCI Express
 	167b  NetXtreme BCM5755 Gigabit Ethernet PCI Express
+	167c  NetXtreme BCM5750M Gigabit Ethernet
 	167d  NetXtreme BCM5751M Gigabit Ethernet PCI Express
+		103c 0940  HP Compaq nw8240 Mobile Workstation
 		17aa 2081  Thinkpad R60e model 0657
 	167e  NetXtreme BCM5751F Fast Ethernet PCI Express
 	167f  NetLink BCM5787F Fast Ethernet PCI Express
+	1680  NetXtreme BCM5761e Gigabit Ethernet PCIe
+	1681  NetXtreme BCM5761 Gigabit Ethernet PCIe
+	1684  NetXtreme BCM5764M Gigabit Ethernet PCIe
 	1693  NetLink BCM5787M Gigabit Ethernet PCI Express
 	1696  NetXtreme BCM5782 Gigabit Ethernet
 		103c 12bc  d530 CMT (DG746A)
 		14e4 000d  NetXtreme BCM5782 1000Base-T
+	1698  NetLink BCM5784M Gigabit Ethernet PCIe
 	169a  NetLink BCM5786 Gigabit Ethernet PCI Express
 	169b  NetLink BCM5787 Gigabit Ethernet PCI Express
 	169c  NetXtreme BCM5788 Gigabit Ethernet
@@ -9078,6 +9933,7 @@
 	16aa  NetXtreme II BCM5706S Gigabit Ethernet
 		103c 3102  NC370F MultifuNCtion Gigabit Server Adapter
 	16ac  NetXtreme II BCM5708S Gigabit Ethernet
+		1014 0304  NetXtreme II BCM5708S Gigabit Ethernet
 		103c 1706  NC373m Multifunction Gigabit Server Adapter
 		103c 7038  NC373i PCI Express Multifunction Gigabit Server Adapter
 		103c 703b  NC373i Integrated Multifunction Gigabit Server Adapter
@@ -9099,6 +9955,7 @@
 	16fe  NetXtreme BCM5753F Fast Ethernet PCI Express
 	170c  BCM4401-B0 100Base-TX
 		1028 0188  Inspiron 6000 laptop
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
 		1028 01af  Inspiron 6400
 		103c 099c  NX6110/NC6120
@@ -9112,6 +9969,7 @@
 	4210  BCM4210 iLine10 HomePNA 2.0
 	4211  BCM4211 iLine10 HomePNA 2.0 + V.90 56k modem
 	4212  BCM4212 v.90 56k modem
+	4220  802-11b/g Wireless PCI controller, packaged as a Linksys WPC54G ver 1.2 PCMCIA card
 	4301  BCM4303 802.11b Wireless LAN Controller
 		1028 0407  TrueMobile 1180 Onboard WLAN
 		1043 0120  WL-103b Wireless LAN PC Card
@@ -9119,8 +9977,8 @@
 	4306  BCM4307 Ethernet Controller
 	4307  BCM4307 802.11b Wireless LAN Controller
 	4310  BCM4310 Chipcommon I/OController
-	4311  Dell Wireless 1390 WLAN Mini-PCI Card
-	4312  BCM4310 UART
+	4311  BCM94311MCG wlan mini-PCI
+	4312  BCM4312 802.11a/b/g
 	4313  BCM4310 Ethernet Controller
 	4315  BCM4310 USB Controller
 	4318  BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller
@@ -9131,6 +9989,7 @@
 		14e4 0449  Gateway 7510GX
 		14e4 4318  WPC54G version 3 [Wireless-G Notebook Adapter] 802.11g Wireless Lan Controller
 		16ec 0119  U.S.Robotics Wireless MAXg PC Card
+		1737 0042  WMP54GS version 1.1 [Wireless-G PCI Adapter]  802.11g w/SpeedBooster
 		1737 0048  WPC54G-EU version 3 [Wireless-G Notebook Adapter]
 	4319  BCM4311 [AirForce 54g] 802.11a/b/g PCI Express Transceiver
 	4320  BCM4306 802.11b/g Wireless LAN Controller
@@ -9159,7 +10018,11 @@
 		1414 0003  Wireless Notebook Adapter MN-720
 		1414 0004  Wireless PCI Adapter MN-730
 	4326  BCM4307 Chipcommon I/O Controller?
+# This should be the correct naming
+	4328  BCM4328 802.11a/b/g/n
+		1028 000a  Wireless 1500 Draft 802.11n WLAN Mini-card
 	4329  BCM43XG
+	432b  BCM4322 802.11a/b/g/n Wireless LAN Controller
 	4344  EDGE/GPRS data and 802.11b/g combo cardbus [GC89]
 	4401  BCM4401 100Base-T
 		103c 08b0  tc1100 tablet
@@ -9214,6 +10077,7 @@
 	5840  BCM5840 Crypto Accelerator
 	5841  BCM5841 Crypto Accelerator
 	5850  BCM5850 Crypto Accelerator
+	b800  BCM56800 StrataXGS 10GE Switch Controller
 14e5  Pixelfusion Ltd
 14e6  SHINING Technology Inc
 14e7  3CX
@@ -9374,8 +10238,9 @@
 	2f11  HSF 56k HSFi Modem
 	2f20  HSF 56k Data/Fax Modem
 	2f30  HSF 56k Data/Fax Modem
-	5045  HDAUDIO with SmartCP
+	5045  CX20549 (Venice)
 	5047  High Definition Audio [Waikiki]
+	5b7a  CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder
 	8234  RS8234 ATM SAR Controller [ServiceSAR Plus]
 	8800  CX23880/1/2/3 PCI Video and Audio Decoder
 		0070 2801  Hauppauge WinTV 28xxx (Roslyn) models
@@ -9418,13 +10283,16 @@
 		18ac db11  FusionHDTV DVB-T Plus
 		18ac db50  FusionHDTV DVB-T Dual Digital
 		7063 3000  pcHDTV HD3000 HDTV
+		7063 5500  pcHDTV HD-5500
 	8801  CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port]
 		0070 2801  Hauppauge WinTV 28xxx (Roslyn) models
+		7063 5500  pcHDTV HD-5500
 	8802  CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port]
 		0070 2801  Hauppauge WinTV 28xxx (Roslyn) models
 		0070 9002  Nova-T DVB-T Model 909
 		1043 4823  ASUS PVR-416
 		107d 663c  Leadtek PVR 2000
+		107d 665f  WinFast DTV1000-T
 		14f1 0187  Conexant DVB-T reference design
 		17de 08a1  XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture
 		17de 08a6  KWorld/VStream XPert DVB-T
@@ -9434,8 +10302,10 @@
 		18ac db00  DVICO FusionHDTV DVB-T1
 		18ac db10  DVICO FusionHDTV DVB-T Plus
 		7063 3000  pcHDTV HD3000 HDTV
+		7063 5500  pcHDTV HD-5500
 	8804  CX23880/1/2/3 PCI Video and Audio Decoder [IR Port]
 		0070 9002  Nova-T DVB-T Model 909
+		7063 5500  pcHDTV HD-5500
 	8811  CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port]
 		0070 3401  Hauppauge WinTV 34xxx models
 		1462 8606  MSI TV-@nywhere Master
@@ -9544,6 +10414,14 @@
 		1522 2500  RockForceF4 4 Port V.34 Super-G3 Fax Modem
 		1522 2600  RockForceD8 8 Port V.90 Data Modem
 		1522 2700  RockForceF8 8 Port V.34 Super-G3 Fax Modem
+		1522 3000  IQ Express D1 - 1 Port V.92 Data Modem
+		1522 3100  IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem
+		1522 3200  IQ Express D2 - 2 Port V.92 Data Modem
+		1522 3300  IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem
+		1522 3400  IQ Express D4 - 4 Port V.92 Data Modem
+		1522 3500  IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem
+		1522 3c00  IQ Express D8 - 8 Port V.92 Data Modem
+		1522 3d00  IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem
 1523  MUSIC Semiconductors
 1524  ENE Technology Inc
 	0510  CB710 Memory Card Reader Controller
@@ -9553,6 +10431,9 @@
 	0550  ENE PCI Secure Digital Card Reader Controller
 	0551  SD/MMC Card Reader Controller
 	0610  PCI Smart Card Reader Controller
+	0730  ENE PCI Memory Stick Card Reader Controller
+	0750  ENE PCI SmartMedia / xD Card Reader Controller
+	0751  ENE PCI Secure Digital / MMC Card Reader Controller
 	1211  CB1211 Cardbus Controller
 	1225  CB1225 Cardbus Controller
 	1410  CB1410 Cardbus Controller
@@ -9582,6 +10463,7 @@
 1533  BALTIMORE
 1534  ROAD Corp
 1535  EVERGREEN Technologies Inc
+1536  ACTIS Computer
 1537  DATALEX COMMUNCATIONS
 1538  ARALION Inc
 	0303  ARS106S Ultra ATA 133/100/66 Host Controller
@@ -9701,6 +10583,9 @@
 158e  Lara Technology Inc
 158f  Ditect Coop
 1590  3pardata Inc
+	0001  Eagle Cluster Manager
+	0002  Osprey Cluster Manager
+	a01d  FC044X Fibre Channel HBA
 1591  ARN
 1592  Syba Tech Ltd
 	0781  Multi-IO Card
@@ -9738,14 +10623,19 @@
 15ab  Bluesteel Networks Inc
 15ac  North Atlantic Instruments
 15ad  VMware Inc
-	0405  [VMware SVGA II] PCI Display Adapter
-	0710  Virtual SVGA
-	0720  VMware High-Speed Virtual NIC [vmxnet]
+	0405  Abstract SVGA II Adapter
+	0710  Abstract SVGA Adapter
+	0720  Abstract Ethernet Controller
+	0740  Virtual Machine Communication Interface
+	0770  Abstract USB2 EHCI Controller
+	0801  Virtual Machine Interface
+		15ad 0800  Hypervisor ROM Interface
 15ae  Amersham Pharmacia Biotech
 15b0  Zoltrix International Ltd
 15b1  Source Technology Inc
 15b2  Mosaid Technologies Inc
 15b3  Mellanox Technologies
+	0191  MT25408 [ConnectX IB SDR Flash Recovery]
 	5274  MT21108 InfiniBridge
 	5a44  MT23108 InfiniHost
 	5a45  MT23108 [Infinihost HCA Flash Recovery]
@@ -9755,6 +10645,13 @@
 	6278  MT25208 InfiniHost III Ex (Tavor compatibility mode)
 	6279  MT25208 [InfiniHost III Ex HCA Flash Recovery]
 	6282  MT25208 InfiniHost III Ex
+	6340  MT25408 [ConnectX IB SDR]
+	634a  MT25418 [ConnectX IB DDR, PCIe 2.0 2.5GT/s]
+	6354  MT25428 [ConnectX IB QDR]
+	6368  MT25448 [ConnectX EN 10GigE, PCIe 2.0 2.5GT/s]
+	6732  MT26418 [ConnectX IB DDR, PCIe 2.0 5GT/s]
+	673c  MT26428 [ConnectX IB QDR, PCIe 2.0 5GT/s]
+	6750  MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s]
 15b4  CCI/TRIAD
 15b5  Cimetrics Inc
 15b6  Texas Memory Systems Inc
@@ -9820,6 +10717,7 @@
 15e7  Get Engineering Corp
 15e8  National Datacomm Corp
 	0130  Wireless PCI Card
+	0131  NCP130A2 Wireless NIC
 15e9  Pacific Digital Corp
 	1841  ADMA-100 DiscStaQ ATA Controller
 15ea  Tokyo Denshi Sekei K.K.
@@ -9882,6 +10780,8 @@
 	3052  SmartLink SmartPCI562 56K Modem
 	5449  SmartPCI561 Modem
 1657  Brocade Communications Systems, Inc.
+# Same Device_ID used for 410 (1port) and 420 (2 port) HBAs.
+	0646  Brocade 400 4Gb PCIe FC HBA
 165a  Epix Inc
 	c100  PIXCI(R) CL1 Camera Link Video Capture Board [custom QL5232]
 	d200  PIXCI(R) D2X Digital Video Capture Board [custom QL5232]
@@ -9900,6 +10800,8 @@
 	104e  5LS172.6 B&R Dual CAN Interface Card
 	12d7  5LS172.61 B&R Dual CAN Interface Card
 	20ad  5ACPCI.MFIO-K01 Profibus DP / K-Feldbus / COM
+1678  NetEffect
+1679  Tokyo Electron Device Ltd.
 167b  ZyDAS Technology Corp.
 	2102  ZyDAS ZD1202
 		187e 3406  ZyAIR B-122 CardBus 11Mbs Wireless LAN Card
@@ -9910,11 +10812,11 @@
 1682  XFX Pine Group Inc.
 1688  CastleNet Technology Inc.
 	1170  WLAN 802.11b card
-168c  Atheros Communications, Inc.
+168c  Atheros Communications Inc.
 	0007  AR5000 802.11a Wireless Adapter
 	0011  AR5210 802.11a NIC
 	0012  AR5211 802.11ab NIC
-	0013  AR5212 802.11abg NIC
+	0013  AR5212/AR5213 Multiprotocol MAC/baseband processor
 		1113 d301  Philips CPWNA100 Wireless CardBus adapter
 		1186 3202  D-link DWL-G650 (Rev B3,B5) Wireless cardbus adapter
 		1186 3203  DWL-G520 Wireless PCI Adapter
@@ -9929,12 +10831,14 @@
 		1186 3ab0  Allnet ALL0281 Wireless PCI Card
 		1385 4d00  Netgear WG311T Wireless PCI Adapter
 		1458 e911  Gigabyte GN-WIAG02
+		1468 0408  ThinkPad 11b/g Wireless LAN Mini PCI Adapter
 		14b7 0a60  8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter
 		1668 1026  IBM HighRate 11 a/b/g Wireless CardBus Adapter
 		168c 0013  AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter
 		168c 1025  DWL-G650B2 Wireless CardBus Adapter
 		168c 1027  Engenius NL-3054CB ARIES b/g CardBus Adapter
 		168c 1042  Ubiquiti Networks SuperRange a/b/g Cardbus Adapter
+		168c 1051  EZ Connect g 802.11g 108Mbps Wireless PCI Adapter
 		168c 2026  Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter
 		168c 2041  Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter
 		168c 2042  Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter
@@ -9943,7 +10847,8 @@
 		17cf 0042  Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter
 		185f 1012  CM9 Wireless a/b/g MiniPCI Adapter
 		185f 2012  Wistron NeWeb WLAN a+b+g model CB9
-	001a  AR5005G 802.11abg NIC
+# the name AR5005G is used for the reference design using AR2413
+	001a  AR2413 802.11bg NIC
 		1052 168c  Sweex Wireless Lan PC Card 54Mbps
 		1113 ee20  SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU)
 		1113 ee24  SMC Wireless PCI Card WPCI-G
@@ -9955,18 +10860,26 @@
 		168c 001a  Belkin FD7000
 		168c 1052  TP-Link TL-WN510G Wireless CardBus Adapter
 		168c 2052  Compex Wireless 802.11 b/g  MiniPCI Adapter, Rev A1 [WLM54G]
-	001b  AR5006X 802.11abg NIC
+# the name AR5006X is used for the reference design using AR5413
+	001b  AR5413 802.11abg NIC
 		1186 3a19  D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter
 		1186 3a22  D-Link AirPremier AG DWL-AG530 Wireless PCI Adapter
 		1458 e901  GN-WI01HT Wireless a/b/g MiniPCI Adapter
 		168c 001b  Wireless LAN PCI LiteOn
 		168c 2062  EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG)
 		168c 2063  EnGenius EMP-8602 (400mw) or Compex WLM54AG
+		185f 1600  DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW)
 		a727 6804  Wireless 11a/b/g PC Card with XJACK(r) Antenna
-	001c  AR5006EG 802.11 b/g Wireless PCI Express Adapter
-	0020  AR5005VL 802.11bg Wireless NIC
-	0023  AR5416 802.11a/b/g/n Wireless PCI Adapter
-	0024  AR5418 802.11a/b/g/n Wireless PCI Express Adapter
+# the names AR5006* are for AR242{3,4} designs and the names AR5007* are for AR2425 designs
+	001c  AR242x 802.11abg Wireless PCI Express Adapter
+		168c 3061  AR5006EGS 802.11bg NIC (2.4GHz, PCI Express)
+		168c 3062  AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express)
+		168c 3063  AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express)
+		168c 3065  AR5006EG 802.11bg NIC (2.4GHz, PCI Express)
+# the name AR5005VL is used for some AR5513 based designs
+	0020  AR5513 802.11abg Wireless NIC
+	0023  AR5416 802.11abgn Wireless PCI Adapter
+	0024  AR5418 802.11abgn Wireless PCI Express Adapter
 	1014  AR5212 802.11abg NIC
 		1014 058a  ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)
 	3b08  D-Link AirPlus G DWL-G630
@@ -9982,14 +10895,18 @@
 	1101  PLX9052 PCMCIA-to-PCI Wireless LAN
 	1102  PCMCIA-to-PCI Wireless Network Bridge
 	8501  WL-8305 Wireless LAN PCI Adapter
-16ae  Safenet Inc
-	1141  SafeXcel-1141
+16ae  SafeNet Inc
+	0001  SafeXcel 1140
+	000a  SafeXcel 1841
+	1141  SafeXcel 1141
+	1841  SafeXcel 1842
 16af  SparkLAN Communications, Inc.
 16b4  Aspex Semiconductor Ltd
 16b8  Sonnet Technologies, Inc.
 16be  Creatix Polymedia GmbH
 16c6  Micrel-Kendin
 	8695  Centaur KS8695 ARM processor
+	8842  KSZ8842-PMQL 2-Port Ethernet Switch
 16c8  Octasic Inc.
 16c9  EONIC B.V. The Netherlands
 16ca  CENATEK Inc
@@ -9997,12 +10914,48 @@
 16cd  Densitron Technologies
 16ce  Roland Corp.
 16d5  Acromag, Inc.
+	0504  PMC-DX504 Reconfigurable FPGA with LVDS I/O
+	0520  PMC520 Serial Communication, 232 Octal
+	0521  PMC521 Serial Communication, 422/485 Octal
+	1020  PMC-AX1020 Reconfigurable FPGA with A/D & D/A
+	1065  PMC-AX1065 Reconfigurable FPGA with A/D & D/A
+	2004  PMC-DX2004 Reconfigurable FPGA with LVDS I/O
+	2020  PMC-AX2020 Reconfigurable FPGA with A/D & D/A
+	2065  PMC-AX2065 Reconfigurable FPGA with A/D & D/A
+	3020  PMC-AX3020 Reconfigurable FPGA with A/D & D/A
+	3065  PMC-AX3065 Reconfigurable FPGA with A/D & D/A
+	4243  PMC424, APC424, AcPC424 Digital I/O and Counter Timer Module
+	4248  PMC464, APC464, AcPC464 Digital I/O and Counter Timer Module
+	424b  PMC-DX2002 Reconfigurable FPGA with Differential I/O
+	4253  PMC-DX503 Reconfigurable FPGA with TTL and Differential I/O
+	4312  PMC-CX1002 Reconfigurable Conduction-Cooled FPGA Virtex-II with Differential I/O
+	4313  PMC-CX1003 Reconfigurable Conduction-Cooled FPGA Virtex-II with CMOS and Differential I/O
+	4322  PMC-CX2002 Reconfigurable Conduction-Cooled FPGA Virtex-II with Differential I/O
+	4323  PMC-CX2003 Reconfigurable Conduction-Cooled FPGA Virtex-II with CMOS and Differential I/O
+	4350  PMC-DX501 Reconfigurable Digital I/O Module
+	4353  PMC-DX2003 Reconfigurable FPGA with TTL and Differential I/O
+	4357  PMC-DX502 Reconfigurable Differential I/O Module
+	4457  PMC730, APC730, AcPC730 Multifunction Module
+	464d  PMC408 32-Channel Digital Input/Output Module
+	4850  PMC220-16 12-Bit Analog Output Module
+	4a42  PMC483, APC483, AcPC483 Counter Timer Module
+	4a50  PMC484, APC484, AcPC484 Counter Timer Module
+	4a56  PMC230 16-Bit Analog Output Module
+	4b47  PMC330, APC330, AcPC330 Analog Input Module, 16-bit A/D
+	4c40  PMC-LX40 Reconfigurable Virtex-4 FPGA with plug-in I/O
+	4c60  PMC-LX60 Reconfigurable Virtex-4 FPGA with plug-in I/O
+	4d4d  PMC341, APC341, AcPC341 Analog Input Module, Simultaneous Sample & Hold
 	4d4e  PMC482, APC482, AcPC482 Counter Timer Board
+	524d  PMC-DX2001 Reconfigurable FPGA with TTL I/O
+	5335  PMC-SX35 Reconfigurable Virtex-4 FPGA with plug-in I/O
+	5456  PMC470 48-Channel Digital Input/Output Module
+16da  Advantech Co., Ltd.
 16df  PIKA Technologies Inc.
 16e3  European Space Agency
 	1e0f  LEON2FT Processor
 16e5  Intellon Corp.
 	6000  INT6000 Ethernet-to-Powerline Bridge [HomePlug AV]
+	6300  INT6300 Ethernet-to-Powerline Bridge [HomePlug AV]
 16ec  U.S. Robotics
 	00ff  USR997900 10/100 Mbps PCI Network Card
 	0116  USR997902 10/100/1000 Mbps PCI Network Card
@@ -10019,14 +10972,16 @@
 170b  NetOctave
 	0100  NSP2000-SSL crypto accelerator
 170c  YottaYotta Inc.
+1719  EZChip Technologies
 # Seems to be a 2nd ID for Vitesse Semiconductor
 1725  Vitesse Semiconductor
 	7174  VSC7174 PCI/PCI-X Serial ATA Host Bus Controller
 172a  Accelerated Encryption
 	13c8  AEP SureWare Runner 1000V3
-1734  Fujitsu Siemens Computer GmbH
+1734  Fujitsu Siemens Computers
 	1078  Amilo Pro v2010
 	1085  Celsius M450
+	1098  Amilo L 1310G
 1737  Linksys
 	0013  WMP54G Wireless Pci Card
 	0015  WMP54GS Wireless Pci Card
@@ -10046,12 +11001,16 @@
 	03eb  AC1003 Gigabit Ethernet
 1743  Peppercon AG
 	8139  ROL/F-100 Fast Ethernet Adapter with ROL
+1745  ViXS Systems, Inc.
 1749  RLX Technologies
 174b  PC Partner Limited
 174d  WellX Telecom SA
 175c  AudioScience Inc
 175e  Sanera Systems, Inc.
+1760  TEDIA spol. s r. o.
 1775  SBS Technologies
+177d  Cavium Networks
+	0001  Nitrox XL
 1787  Hightech Information System Ltd.
 # also used by Struck Innovative Systeme for joint developments
 1796  Research Centre Juelich
@@ -10061,6 +11020,7 @@
 	0004  CAMAC Controller
 	0005  PROFIBUS
 	0006  AMCC HOTlink
+	000d  Synchronisation Slave
 1797  JumpTec h, GMBH
 1799  Belkin
 	6001  Wireless PCI Card - F5D6001
@@ -10080,6 +11040,7 @@
 	8033  GL880S USB 1.1 controller
 	8034  GL880S USB 2.0 controller
 17aa  Lenovo
+17ab  Phillips Components
 17af  Hightech Information System Ltd.
 17b3  Hawking Technologies
 	ab08  PN672TX 10/100 Ethernet
@@ -10102,17 +11063,17 @@
 	1220  ARC-1220 8-Port PCI-Express to SATA RAID Controller
 	1230  ARC-1230 12-Port PCI-Express to SATA RAID Controller
 	1260  ARC-1260 16-Port PCI-Express to SATA RAID Controller
+	1280  ARC-1231 12-Port PCI-Express to SATA RAID Controller
 17d5  S2io Inc.
 	5831  Xframe 10 Gigabit Ethernet PCI-X
 		103c 12d5  PCI-X 133MHz 10GbE SR Fiber
 		10a9 8020  Single Port 10 Gigabit Ethernet (PCI-X, Fiber)
 		10a9 8024  Single Port 10 Gigabit Ethernet (PCI-X, Fiber)
 	5832  Xframe II 10Gbps Ethernet
+		103c 1337  PCI-X 266MHz 10GigE SR [AD385A]
 		10a9 8021  Single Port 10 Gigabit Ethernet II (PCI-X, Fiber)
 17db  Cray Inc
 	0101  XT Series [Seastar] 3D Toroidal Router
-	0201  XT Series [Seastar] 3D Toroidal Router with RMA
-	0202  XT Series [Seastar] 3D Toroidal Router with RMA
 17de  KWorld Computer Co. Ltd.
 17e4  Sectra AB
 	0001  KK671 Cardbus encryption board
@@ -10152,23 +11113,29 @@
 		1371 0020  CWP-854 Wireless-G PCI Adapter
 		1458 e381  GN-WMKG 802.11b/g Wireless CardBus Adapter
 		1458 e931  GN-WIKG 802.11b/g mini-PCI Adapter
+		1462 6833  Unknown 802.11g mini-PCI Adapter
 		1462 6835  Wireless 11G CardBus CB54G2
 		1737 0032  WMP54G 2.0 PCI Adapter
 		1799 700a  F5D7000 Wireless G Desktop Network Card
 		1799 701a  F5D7010 Wireless G Notebook Network Card
 		185f 22a0  CN-WF513 Wireless Cardbus Adapter
+	0300  Wireless Adapter Canyon CN-WF511
 	0301  RT2561/RT61 802.11g PCI
 		1186 3c08  DWL-G630 Rev E
 		1186 3c09  DWL-G510 Rev C
+		13d1 abe3  miniPCI Pluscom 802.11 a/b/g
 		1458 e934  GN-WP01GS
 		1737 0055  WMP54G ver 4.1
+		1814 2561  EW-7108PCg
 	0302  RT2561/RT61 rev B 802.11g
 		1186 3c08  DWL-G630 Rev E
 		1186 3c09  DWL-G510 Rev C
 		1462 b834  PC54G3 Wireless 11g PCI Card
-	0401  Ralink RT2600 802.11 MIMO
+	0401  RT2600 802.11 MIMO
+	e932  RT2560F 802.11 b/g PCI
 1820  InfiniCon Systems Inc.
 1822  Twinhan Technology Co. Ltd
+	0001  Twinhan VisionPlus DVB [card=113]
 	4e35  Mantis DTV PCI Bridge Controller [Ver 1.0]
 182d  SiteCom Europe BV
 # HFC-based ISDN card
@@ -10176,6 +11143,10 @@
 	9790  WL-121 Wireless Network Adapter 100g+ [Ver.3]
 182e  Raza Microelectronics, Inc.
 	0008  XLR516 Processor
+# Strange vendor ID used by BCM5785 when in RAID mode
+182f  Broadcom
+# HT1000 uses 3 IDs 1166:024a (Native SATA Mode), 1166:024b (PATA/IDE Mode), 182f:000b (RAID Mode) depends on SATA BIOS setting
+	000b  BCM5785 [HT1000] SATA (RAID Mode)
 1830  Credence Systems Corporation
 183b  MikroM GmbH
 	08a7  MVC100 DVI
@@ -10198,6 +11169,16 @@
 	5a46  MT23108 InfiniHost HCA bridge
 	6278  MT25208 InfiniHost III Ex (Tavor compatibility mode)
 	6282  MT25208 InfiniHost III Ex
+186c  Humusoft, s.r.o.
+	0612  AD612 Data Acquisition Device
+	0614  MF614 Multifunction I/O Card
+	0622  AD622 Data Acquisition Device
+	0624  MF624 Multifunction I/O Card
+	0625  MF625 3-phase Motor Driver
+1876  L-3 Communications
+	a101  VigraWATCH PCI
+	a102  VigraWATCH PMC
+	a103  Vigra I/O
 187e  ZyXEL Communication Corporation
 	3403  ZyAir G-110 802.11g
 	340e  M-302 802.11g XtremeMIMO
@@ -10217,6 +11198,7 @@
 	d800  FusionHDTV 3 Gold
 	d810  FusionHDTV 3 Gold-Q
 	d820  FusionHDTV 3 Gold-T
+	db30  FusionHDTV DVB-T Pro
 18b8  Ammasso
 	b001  AMSO 1100 iWARP/RDMA Gigabit Ethernet Coprocessor
 18bc  Info-Tek Corp.
@@ -10258,15 +11240,23 @@
 	0004  Fastcom 422/2-PCI-335
 	0005  Fastcom IGESCC-PCI-ISO/1
 	000a  Fastcom 232/4-PCI-335
+	000f  Fastcom FSCC
+	0010  Fastcom GSCC
+# Dual Serocco
+	0011  Fastcom QSSB
+	0014  SuperFSCC
 18fb  Resilience Corporation
 1904  Hangzhou Silan Microelectronics Co., Ltd.
 	8139  RTL8139D [Realtek] PCI 10/100BaseTX ethernet adaptor
+1905  Micronas USA, Inc.
+1912  Renesas Technology Corp.
 1923  Sangoma Technologies Corp.
 	0040  A200/Remora FXO/FXS Analog AFT card
 	0100  A104d QUAD T1/E1 AFT card
 	0300  A101 single-port T1/E1
 	0400  A104u Quad T1/E1 AFT
-1924  Solarflare Communications (nee Level 5 Networks)
+# nee Level 5 Networks
+1924  Solarflare Communications
 192e  TransDimension
 1931  Option N.V.
 	000c  Qualcomm MSM6275 UMTS chip
@@ -10278,8 +11268,23 @@
 	1113  FireSpy450bT
 	1114  FireSpy850
 	1115  FireSpy850bT
+1954  Curtis, Inc.
 1957  Freescale Semiconductor Inc
-	0012  MPC8548 [PowerQUICC III]
+	0012  MPC8548E
+	0013  MPC8548
+	0014  MPC8543E
+	0015  MPC8543
+	0018  MPC8547E
+	0019  MPC8545E
+	001a  MPC8545
+	0020  MPC8568E
+	0021  MPC8568
+	0022  MPC8567E
+	0023  MPC8567
+	0030  MPC8533E
+	0031  MPC8533
+	0032  MPC8544E
+	0033  MPC8544
 	0080  MPC8349E
 	0081  MPC8349
 	0082  MPC8347E TBGA
@@ -10288,12 +11293,15 @@
 	0085  MPC8347 PBGA
 	0086  MPC8343E
 	0087  MPC8343
+	7010  MPC8641 PCI Host Bridge
+	7011  MPC8641D PCI Host Bridge
 1958  Faster Technology, LLC.
 1959  PA Semi, Inc
 1966  Orad Hi-Tec Systems
 	1975  DVG64 family
 1969  Attansic Technology Corp.
 	1048  L1 Gigabit Ethernet Adapter
+	2048  L2 100 Mbit Ethernet Adapter
 196a  Sensory Networks Inc.
 	0101  NodalCore C-1000 Content Classification Accelerator
 	0102  NodalCore C-2000 Content Classification Accelerator
@@ -10318,7 +11326,7 @@
 	8001  RapidFile
 1993  Innominate Security Technologies AG
 199a  Pulse-LINK, Inc.
-19a2  ServerEngines LLC
+19a2  ServerEngines Corp.
 	0200  BladeEngine 10Gb PCI-E iSCSI adapter
 	0201  BladeEngine 10Gb PCI-E Network Adpater
 19a8  DAQDATA GmbH
@@ -10327,6 +11335,7 @@
 19ae  Progeny Systems Corporation
 	0520  4135 HFT Interface Controller
 19d4  Quixant Limited
+19de  Pico Computing
 19e2  Vector Informatik GmbH
 19e7  NET (Network Equipment Technologies)
 	1001  STIX DSP Card
@@ -10341,16 +11350,29 @@
 	0007  CAN interface PCIcanx II HS or HS/HS
 1a08  Sierra semiconductor
 	0000  SC15064
+1a0e  DekTec Digital Video B.V.
 1a1d  GFaI e.V.
 	1a17  Meta Networks MTP-1G IDPS NIC
+1a22  Ambric Inc.
 1a29  Fortinet, Inc.
+1a2b  Ascom AG
 1a51  Hectronic AB
+1a58  Razer USA Ltd.
 1a5d  Celoxica
+1a68  VirtenSys Limited
 1a71  XenSource, Inc.
-1a73  Violin Technologies, Inc
+1a73  Violin Memory, Inc
+	0001  Mozart [Memory Appliance 1010]
 1a77  Lightfleet Corporation
 1a78  Virident Systems Inc.
 1a8c  Verigy Pte. Ltd.
+	1100  E8001-66443 PCI Express CIC
+1aae  Global Velocity, Inc.
+1ab9  Espia Srl
+1ae0  Google, Inc.
+1ae8  Silicon Software GmbH
+1af4  Qumranet, Inc.
+1af5  Netezza Corp.
 1b13  Jaton Corp
 1c1c  Symphony
 	0001  82C101
@@ -10361,11 +11383,17 @@
 	2020  DC-390
 	690c  690c
 	dc29  DC290
-1fc0  Tumsan Oy
+# nee Tumsan Oy
+1fc0  Ascom (Finland) Oy
 	0300  E2200 Dual E1/Rawpipe Card
-1fc1  PathScale, Inc
+# nee PathScale, Inc
+1fc1  QLogic, Corp.
 	000d  InfiniPath HT-400
 	0010  InfiniPath PE-800
+1fc9  Tehuti Networks Ltd.
+	3009  10 Giga TOE SmartNIC
+	3010  10 Giga TOE SmartNIC
+	3014  10 Giga TOE SmartNIC 2-Port
 1fce  Cognio Inc.
 	0001  Spectrum Analyzer PC Card (SAgE)
 2000  Smart Link Ltd.
@@ -10475,6 +11503,16 @@
 	4710  ALC200/200P
 4033  Addtron Technology Co, Inc.
 	1360  RTL8139 Ethernet
+4040  NetXen Incorporated
+	0001  NXB-10GXSR 10 Gigabit Ethernet PCIe Adapter with SR-XFP optical interface
+		103c 7047  NC510F PCIe 10 Gigabit Server Adapter
+		103c 7048  NC510C PCIe 10 Gigabit Server Adapter
+	0002  NXB-10GCX4 10 Gigabit Ethernet PCIe Adapter with CX4 copper interface
+	0003  NXB-4GCU Quad Gigabit Ethernet PCIe Adapter with 1000-BASE-T interface
+	0004  BladeCenter-H 10 Gigabit Ethernet High Speed Daughter Card
+	0005  NetXen Dual Port 10GbE Multifunction Adapter for c-Class
+	0024  XG Mgmt
+	0025  XG Mgmt
 4143  Digital Equipment Corp
 4144  Alpha Data
 	0044  ADM-XRCIIPro
@@ -10500,6 +11538,7 @@
 		0070 e817  WinTV PVR 500 (2nd unit)
 		0070 ff92  WiNTV PVR-550
 		0270 0801  WinTV PVR 150
+		104d 013d  ENX-26 TV Encoder
 		10fc d038  GV-MVP/RX2W (1st unit)
 		10fc d039  GV-MVP/RX2W (2nd unit)
 		12ab fff3  MPG600
@@ -10523,6 +11562,8 @@
 	1960  RedCreek PCI adapter
 4943  Growth Networks
 494f  ACCES I/O Products, Inc.
+	0c60  PCI-DIO-48
+	0e60  PCI-DIO-48S
 	10e8  LPCI-COM-8SM
 4978  Axil Computer Inc
 4a14  NetVin
@@ -10700,6 +11741,7 @@
 	8d03  VT8751 [ProSavageDDR P4M266]
 	8d04  VT8375 [ProSavage8 KM266/KL266]
 	8e48  Chrome S27 PCIE
+		5333 0130  Chrome S27 256M DDR2
 	9102  86C410 Savage 2000
 		1092 5932  Viper II Z200
 		1092 5934  Viper II Z200
@@ -10755,7 +11797,9 @@
 	0309  80303 I/O Processor PCI-to-PCI Bridge
 	030d  80312 I/O Companion Chip PCI-to-PCI Bridge
 	0326  6700/6702PXH I/OxAPIC Interrupt Controller A
+		1775 1100  CR11/VR11 Single Board Computer
 	0327  6700PXH I/OxAPIC Interrupt Controller B
+		1775 1100  CR11/VR11 Single Board Computer
 	0329  6700PXH PCI Express-to-PCI Bridge A
 	032a  6700PXH PCI Express-to-PCI Bridge B
 	032c  6702PXH PCI Express-to-PCI Bridge A
@@ -10803,15 +11847,16 @@
 # (bi-interleave 1)
 	0537  E8870SP Interleave registers 2 and 3
 	0600  RAID Controller
+		8086 0136  SRCU31L
 		8086 01af  SRCZCR
 		8086 01c1  ICP Vortex GDT8546RZ
 		8086 01f7  SCRU32
 # uninitialized SRCU32 RAID Controller
 	061f  80303 I/O Processor
-	0960  80960RP [i960 RP Microprocessor/Bridge]
-	0962  80960RM [i960RM Bridge]
-	0964  80960RP [i960 RP Microprocessor/Bridge]
-	1000  82542 Gigabit Ethernet Controller
+	0960  80960RP (i960RP) Microprocessor/Bridge
+	0962  80960RM (i960RM) Bridge
+	0964  80960RP (i960RP) Microprocessor/Bridge
+	1000  82542 Gigabit Ethernet Controller (Fiber)
 		0e11 b0df  NC6132 Gigabit Ethernet Adapter (1000-SX)
 		0e11 b0e0  NC6133 Gigabit Ethernet Adapter (1000-LX)
 		0e11 b123  NC6134 Gigabit Ethernet Adapter (1000-LX)
@@ -10834,6 +11879,7 @@
 		8086 2004  PRO/1000 T Server Adapter
 	1008  82544EI Gigabit Ethernet Controller (Copper)
 		1014 0269  iSeries 1000/100/10 Ethernet Adapter
+		1028 011b  PowerEdge 1650/2550
 		1028 011c  PRO/1000 XT Network Connection
 		8086 1107  PRO/1000 XT Server Adapter
 		8086 2107  PRO/1000 XT Server Adapter
@@ -10858,7 +11904,7 @@
 		1014 026a  PRO/1000 MT Network Connection
 		1028 002e  Optiplex GX260
 		1028 0134  PowerEdge 600SC
-		1028 0151  PRO/1000 MT Network Connection
+		1028 0151  Optiplex GX270
 		107b 8920  PRO/1000 MT Desktop Adapter
 		8086 001e  PRO/1000 MT Desktop Adapter
 		8086 002e  PRO/1000 MT Desktop Adapter
@@ -10867,11 +11913,13 @@
 	100f  82545EM Gigabit Ethernet Controller (Copper)
 		1014 0269  iSeries 1000/100/10 Ethernet Adapter
 		1014 028e  PRO/1000 MT Network Connection
+		15ad 0750  Abstract PRO/1000 MT Single Port Adapter
 		8086 1000  PRO/1000 MT Network Connection
 		8086 1001  PRO/1000 MT Server Adapter
 	1010  82546EB Gigabit Ethernet Controller (Copper)
 		0e11 00db  NC7170 Gigabit Server Adapter
 		1014 027c  PRO/1000 MT Dual Port Network Adapter
+		15ad 0760  Abstract PRO/1000 MT Dual Port Adapter
 		18fb 7872  RESlink-X
 		1fc1 0026  Niagara 2260 Bypass Card
 		4c53 1080  CT8 mainboard
@@ -10956,28 +12004,35 @@
 		0e11 0098  Evo N600c
 	1039  82801DB PRO/100 VE (LOM) Ethernet Controller
 		1014 0267  NetVista A30p
+		114a 0582  PC8 onboard ethernet ETH1
 	103a  82801DB PRO/100 VE (CNR) Ethernet Controller
 	103b  82801DB PRO/100 VM (LOM) Ethernet Controller
 	103c  82801DB PRO/100 VM (CNR) Ethernet Controller
 	103d  82801DB PRO/100 VE (MOB) Ethernet Controller
-		1014 0522  Thinkpad R50e model 1634
+		1014 0522  ThinkPad R40
+		8086 103d  82562EZ 10/100 Ethernet Controller
 	103e  82801DB PRO/100 VM (MOB) Ethernet Controller
 	1040  536EP Data Fax Modem
 		16be 1040  V.9X DSP Data Fax Modem
 	1043  PRO/Wireless LAN 2100 3B Mini PCI Adapter
 		103c 08b0  tc1100 tablet
-		8086 2522  Samsung P30 integrated WLAN
+		2527 8086  Asus M6800N
+		8086 2522  Samsung X10/P30 integrated WLAN
 		8086 2527  MIM2000/Centrino
+		8086 2561  Dell Latitude D800
 		8086 2581  Toshiba Satellite M10
-	1048  PRO/10GbE LR Server Adapter
+	1048  82597EX 10GbE Ethernet Controller
 		8086 a01f  PRO/10GbE LR Server Adapter
 		8086 a11f  PRO/10GbE LR Server Adapter
 	1049  82566MM Gigabit Network Connection
+		17aa 20b9  ThinkPad T61
+		30c5 103c  HP Compaq 8510p
 	104a  82566DM Gigabit Network Connection
 	104b  82566DC Gigabit Network Connection
 	104c  82562V 10/100 Network Connection
 	104d  82566MC Gigabit Network Connection
 	1050  82562EZ 10/100 Ethernet Controller
+		1028 019d  Dimension 3000
 		1462 728c  865PE Neo2 (MS-6728)
 		1462 758c  MS-6758 (875P Neo)
 		8086 3020  D865PERL mainboard
@@ -10994,6 +12049,8 @@
 	105b  82546GB Gigabit Ethernet Controller (Copper)
 	105e  82571EB Gigabit Ethernet Controller
 		103c 7044  NC360T PCI Express Dual Port Gigabit Server Adapter
+		103c 704e  Dual Port 1000Base-T (PCIe) [AD337A]
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 6003  Telum GE-QT
 		8086 005e  PRO/1000 PT Dual Port Server Connection
 		8086 105e  PRO/1000 PT Dual Port Network Connection
@@ -11002,6 +12059,7 @@
 		8086 125e  PRO/1000 PT Dual Port Server Adapter
 		8086 135e  PRO/1000 PT Dual Port Server Adapter
 	105f  82571EB Gigabit Ethernet Controller
+		103c 704f  Dual Port 1000Base-SX (PCIe) [AD338A]
 		8086 115f  PRO/1000 PF Dual Port Server Adapter
 		8086 116f  PRO/1000 PF Dual Port Server Adapter
 		8086 125f  PRO/1000 PF Dual Port Server Adapter
@@ -11023,8 +12081,10 @@
 		8086 0075  PRO/1000 CT Network Connection
 		8086 1075  PRO/1000 CT Network Connection
 	1076  82541GI Gigabit Ethernet Controller
-		1028 0165  PowerEdge 750
-		1028 019a  PowerEdge SC1425
+		1028 0165  PRO/1000 MT Network Connection
+		1028 016d  PRO/1000 MT Network Connection
+		1028 019a  PRO/1000 MT Network Connection
+		1028 106d  PRO/1000 MT Network Connection
 		8086 0076  PRO/1000 MT Network Connection
 		8086 1076  PRO/1000 MT Network Connection
 		8086 1176  PRO/1000 MT Desktop Adapter
@@ -11059,9 +12119,11 @@
 		8086 1476  PRO/1000 GT Desktop Adapter
 	107d  82572EI Gigabit Ethernet Controller (Copper)
 		8086 1082  PRO/1000 PT Server Adapter
+		8086 1084  PRO/1000 PT Server Adapter
 		8086 1092  PRO/1000 PT Server Adapter
 	107e  82572EI Gigabit Ethernet Controller (Fiber)
 		8086 1084  PRO/1000 PF Server Adapter
+		8086 1085  PRO/1000 PF Server Adapter
 		8086 1094  PRO/1000 PF Server Adapter
 	107f  82572EI Gigabit Ethernet Controller
 	1080  FA82537EP 56K V.92 Data/Fax Modem PCI
@@ -11093,8 +12155,10 @@
 	109a  82573L Gigabit Ethernet Controller
 		1179 ff10  PRO/1000 PL
 		17aa 2001  ThinkPad T60
-		17aa 207e  Thinkpad X60s
+		17aa 207e  ThinkPad X60s
 		8086 109a  PRO/1000 PL Network Connection
+		8086 309c  DeskTop Board D945GTP
+		8086 30a5  DeskTop Board D975XBX
 	109b  82546GB PRO/1000 GF Quad Port Server Adapter
 	109e  82597EX 10GbE Ethernet Controller
 		8086 a01f  PRO/10GbE CX4 Server Adapter
@@ -11104,6 +12168,12 @@
 	10a4  82571EB Gigabit Ethernet Controller
 		8086 10a4  PRO/1000 PT Quad Port Server Adapter
 		8086 11a4  PRO/1000 PT Quad Port Server Adapter
+	10a5  82571EB Gigabit Ethernet Controller (Fiber)
+		8086 10a5  PRO/1000 PF Quad Port Server Adapter
+		8086 10a6  PRO/1000 PF Quad Port Server Adapter
+	10a7  82575EB Gigabit Network Connection
+		8086 10a8  82575EB Gigabit Riser Card
+	10a9  82575EB Gigabit Backplane Connection
 	10b0  82573L PRO/1000 PL Network Connection
 	10b2  82573V PRO/1000 PM Network Connection
 	10b3  82573E PRO/1000 PM Network Connection
@@ -11112,16 +12182,46 @@
 		103c 3109  NC340T PCI-X Quad-port Gigabit Server Adapter
 		8086 1099  PRO/1000 GT Quad Port Server Adapter
 		8086 1199  PRO/1000 GT Quad Port Server Adapter
+	10b6  82598 10GbE PCI-Express Ethernet Controller
 	10b9  82572EI Gigabit Ethernet Controller (Copper)
+		103c 704a  HP 110T PCIe Gigabit Server Adapter
 		8086 1083  PRO/1000 PT Desktop Adapter
 		8086 1093  PRO/1000 PT Desktop Adapter
 	10ba  80003ES2LAN Gigabit Ethernet Controller (Copper)
 	10bb  80003ES2LAN Gigabit Ethernet Controller (Serdes)
 	10bc  82571EB Gigabit Ethernet Controller (Copper)
+		103c 704b  NC364T PCI Express Quad Port Gigabit Server Adapter
 		8086 10bc  PRO/1000 PT Quad Port LP Server Adapter
 		8086 11bc  PRO/1000 PT Quad Port LP Server Adapter
+	10bd  82566DM-2 Gigabit Network Connection
+		1028 0211  OptiPlex 755
+		3039 17aa  Lenovo M57 USFF
+	10bf  82567LF Gigabit Network Connection
+	10c0  82562V-2 10/100 Network Connection
+	10c2  82562G-2 10/100 Network Connection
+	10c3  82562GT-2 10/100 Network Connection
 	10c4  82562GT 10/100 Network Connection
 	10c5  82562G 10/100 Network Connection
+	10c6  82598EB 10 Gigabit AF Dual Port Network Connection
+		8086 a05f  10 Gigabit XF SR Dual Port Server Adapter
+		8086 a15f  10 Gigabit XF SR Dual Port Server Adapter
+	10c7  82598EB 10 Gigabit AF Network Connection
+		8086 a05f  10 Gigabit XF SR Server Adapter
+		8086 a15f  10 Gigabit XF SR Server Adapter
+		8086 a16f  10 Gigabit XF SR Server Adapter
+	10cb  82567V Gigabit Network Connection
+	10d5  82571PT Gigabit PT Quad Port Server ExpressModule
+	10d6  82575GB Gigabit Network Connection
+		8086 10d6  Gigabit VT Quad Port Server Adapter
+		8086 145a  Gigabit VT Quad Port Server Adapter
+	10d9  82571EB Dual Port Gigabit Mezzanine Adapter
+		103c 1716  NC360m Dual Port 1GbE BL-c Adapter
+	10da  82571EB Quad Port Gigabit Mezzanine Adapter
+		103c 1717  NC364m Quad Port 1GbE BL-c Adapter
+	10dd  82598EB 10 Gigabit AT CX4 Network Connection
+	10e2  82575GB Gigabit Network Connection
+		8086 10e2  Gigabit VT Quad Port Server Adapter
+	10f5  82567LM Gigabit Network Connection
 	1107  PRO/1000 MF Server Adapter (LX)
 	1130  82815 815 Chipset Host Bridge and Memory Controller Hub
 		1025 1016  Travelmate 612 TX
@@ -11130,8 +12230,9 @@
 		8086 4532  D815EEA2 mainboard
 		8086 4557  D815EGEW Mainboard
 	1131  82815 815 Chipset AGP Bridge
-	1132  82815 CGC [Chipset Graphics Controller]
+	1132  82815 Chipset Graphics Controller (CGC)
 		1025 1016  Travelmate 612 TX
+		103c 2001  e-pc 40
 		104d 80df  Vaio PCG-FX403
 		8086 4532  D815EEA2 Mainboard
 		8086 4541  D815EEA Motherboard
@@ -11152,8 +12253,7 @@
 	1226  82596 PRO/10 PCI
 	1227  82865 EtherExpress PRO/100A
 	1228  82556 EtherExpress PRO/100 Smart
-# the revision field differentiates between them (1-3 is 82557, 4-5 is 82558, 6-8 is 82559, 9 is 82559ER)
-	1229  82557/8/9 [Ethernet Pro 100]
+	1229  82557/8/9/0/1 Ethernet Pro 100
 		0e11 3001  82559 Fast Ethernet LOM with Alert on LAN*
 		0e11 3002  82559 Fast Ethernet LOM with Alert on LAN*
 		0e11 3003  82559 Fast Ethernet LOM with Alert on LAN*
@@ -11192,8 +12292,8 @@
 		1014 605c  10/100 EtherJet Secure Management Adapter
 		1014 705c  10/100 Netfinity 10/100 Ethernet Security Adapter
 		1014 805c  10/100 Netfinity 10/100 Ethernet Security Adapter
-		1028 009b  PowerEdge 2500/2550
-		1028 00ce  PowerEdge 1400
+		1028 009b  10/100 Ethernet Server Adapter
+		1028 00ce  10/100 Ethernet Server Adapter
 		1033 8000  PC-9821X-B06
 		1033 8016  PK-UG-X006
 		1033 801f  PK-UG-X006
@@ -11212,6 +12312,7 @@
 		10cf 1115  8255x-based Ethernet Adapter (10/100)
 		10cf 1143  8255x-based Ethernet Adapter (10/100)
 		110a 008b  82551QM Fast Ethernet Multifuction PCI/CardBus Controller
+		114a 0582  PC8 onboard ethernet ETH2
 		1179 0001  8255x-based Ethernet Adapter (10/100)
 		1179 0002  PCI FastEther LAN on Docker
 		1179 0003  8255x-based Fast Ethernet
@@ -11222,6 +12323,7 @@
 		144d 2501  SEM-2000 MiniPCI LAN Adapter
 		144d 2502  SEM-2100IL MiniPCI LAN Adapter
 		1668 1100  EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 1080  CT8 mainboard
 		4c53 10e0  PSL09 PrPMC
@@ -11336,7 +12438,7 @@
 		15d9 3480  P4DP6
 		4c53 1090  Cx9/Vx9 mainboard
 	1462  82870P2 P64H2 Hot Plug Controller
-	1960  80960RP [i960RP Microprocessor]
+	1960  80960RP (i960RP) Microprocessor
 		101e 0431  MegaRAID 431 RAID Controller
 		101e 0438  MegaRAID 438 Ultra2 LVD RAID Controller
 		101e 0466  MegaRAID 466 Express Plus RAID Controller
@@ -11361,90 +12463,103 @@
 		e4bf 1020  CU2-QUARTET
 		e4bf 1040  CU1-CHORUS
 		e4bf 3100  CX1-BAND
-	1962  80960RM [i960RM Microprocessor]
+	1962  80960RM (i960RM) Microprocessor
 		105a 0000  SuperTrak SX6000 I2O CPU
-	1a21  82840 840 (Carmel) Chipset Host Bridge (Hub A)
-	1a23  82840 840 (Carmel) Chipset AGP Bridge
-	1a24  82840 840 (Carmel) Chipset PCI Bridge (Hub B)
-	1a30  82845 845 (Brookdale) Chipset Host Bridge
+	1a21  82840 840 [Carmel] Chipset Host Bridge (Hub A)
+	1a23  82840 840 [Carmel] Chipset AGP Bridge
+	1a24  82840 840 [Carmel] Chipset PCI Bridge (Hub B)
+	1a30  82845 845 [Brookdale] Chipset Host Bridge
 		1028 010e  Optiplex GX240
-	1a31  82845 845 (Brookdale) Chipset AGP Bridge
+		15d9 3280  Supermicro P4SBE Mainboard
+	1a31  82845 845 [Brookdale] Chipset AGP Bridge
 	1a38  5000 Series Chipset DMA Engine
-	1a48  PRO/10GbE SR Server Adapter
+	1a48  82597EX 10GbE Ethernet Controller
+		8086 a01f  PRO/10GbE SR Server Adapter
+		8086 a11f  PRO/10GbE SR Server Adapter
 	1b48  82597EX 10GbE Ethernet Controller
 		8086 a01f  PRO/10GbE LR Server Adapter
 		8086 a11f  PRO/10GbE LR Server Adapter
 	2410  82801AA ISA Bridge (LPC)
-	2411  82801AA IDE
-	2412  82801AA USB
-	2413  82801AA SMBus
-	2415  82801AA AC'97 Audio
+	2411  82801AA IDE Controller
+	2412  82801AA USB Controller
+	2413  82801AA SMBus Controller
+	2415  82801AA AC'97 Audio Controller
 		1028 0095  Precision Workstation 220 Integrated Digital Audio
+		1028 00b4  OptiPlex GX110
 		110a 0051  Activy 2xx
 		11d4 0040  SoundMAX Integrated Digital Audio
 		11d4 0048  SoundMAX Integrated Digital Audio
 		11d4 5340  SoundMAX Integrated Digital Audio
 		1734 1025  Activy 3xx
-	2416  82801AA AC'97 Modem
+	2416  82801AA AC'97 Modem Controller
 	2418  82801AA PCI Bridge
 	2420  82801AB ISA Bridge (LPC)
-	2421  82801AB IDE
-	2422  82801AB USB
-	2423  82801AB SMBus
-	2425  82801AB AC'97 Audio
+	2421  82801AB IDE Controller
+	2422  82801AB USB Controller
+	2423  82801AB SMBus Controller
+	2425  82801AB AC'97 Audio Controller
 		11d4 0040  SoundMAX Integrated Digital Audio
 		11d4 0048  SoundMAX Integrated Digital Audio
-	2426  82801AB AC'97 Modem
+	2426  82801AB AC'97 Modem Controller
 	2428  82801AB PCI Bridge
 	2440  82801BA ISA Bridge (LPC)
 		8086 5744  S845WD1-E
-	2442  82801BA/BAM USB (Hub #1)
+	2442  82801BA/BAM USB Controller #1
 		1014 01c6  Netvista A40/A40p
 		1025 1016  Travelmate 612 TX
 		1028 00c7  Dimension 8100
 		1028 010e  Optiplex GX240
+		103c 126f  e-pc 40
 		1043 8027  TUSL2-C Mainboard
 		104d 80df  Vaio PCG-FX403
 		147b 0507  TH7II-RAID
 		8086 4532  D815EEA2 mainboard
 		8086 4557  D815EGEW Mainboard
 		8086 5744  S845WD1-E mainboard
-	2443  82801BA/BAM SMBus
+	2443  82801BA/BAM SMBus Controller
 		1014 01c6  Netvista A40/A40p
 		1025 1016  Travelmate 612 TX
 		1028 00c7  Dimension 8100
 		1028 010e  Optiplex GX240
+		103c 126f  e-pc 40
 		1043 8027  TUSL2-C Mainboard
 		104d 80df  Vaio PCG-FX403
 		147b 0507  TH7II-RAID
+		15d9 3280  Supermicro P4SBE Mainboard
 		8086 4532  D815EEA2 mainboard
 		8086 4557  D815EGEW Mainboard
 		8086 5744  S845WD1-E mainboard
-	2444  82801BA/BAM USB (Hub #2)
+	2444  82801BA/BAM USB Controller #1
 		1025 1016  Travelmate 612 TX
 		1028 00c7  Dimension 8100
 		1028 010e  Optiplex GX240
+		103c 126f  e-pc 40
 		1043 8027  TUSL2-C Mainboard
 		104d 80df  Vaio PCG-FX403
 		147b 0507  TH7II-RAID
 		8086 4532  D815EEA2 mainboard
 		8086 5744  S845WD1-E mainboard
-	2445  82801BA/BAM AC'97 Audio
+	2445  82801BA/BAM AC'97 Audio Controller
 		0e11 000b  Compaq Deskpro EN Audio
 		0e11 0088  Evo D500
 		1014 01c6  Netvista A40/A40p
 		1025 1016  Travelmate 612 TX
+		103c 126f  e-pc 40
 		104d 80df  Vaio PCG-FX403
 		1462 3370  STAC9721 AC
 		147b 0507  TH7II-RAID
 		8086 4557  D815EGEW Mainboard
-	2446  82801BA/BAM AC'97 Modem
+	2446  82801BA/BAM AC'97 Modem Controller
 		1025 1016  Travelmate 612 TX
 		104d 80df  Vaio PCG-FX403
 	2448  82801 Mobile PCI Bridge
+# (rev d3) (prog-if (rev d3) (prog-if 01 [Subtractive decode])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
+		103c 30a3  Compaq nw8440
 		144d c00c  P30 notebook
 		1734 1055  Amilo M1420
+		e4bf cc47  CCG-RUMBA
 	2449  82801BA/BAM/CA/CAM Ethernet Controller
 		0e11 0012  EtherExpress PRO/100 VM
 		0e11 0091  EtherExpress PRO/100 VE
@@ -11476,30 +12591,33 @@
 		8086 3016  EtherExpress PRO/100 P Mobile Combo
 		8086 3017  EtherExpress PRO/100 P Mobile
 		8086 3018  EtherExpress PRO/100
-	244a  82801BAM IDE U100
+	244a  82801BAM IDE U100 Controller
 		1025 1016  Travelmate 612TX
 		104d 80df  Vaio PCG-FX403
-	244b  82801BA IDE U100
+	244b  82801BA IDE U100 Controller
 		1014 01c6  Netvista A40/A40p
 		1028 00c7  Dimension 8100
 		1028 010e  Optiplex GX240
+		103c 126f  e-pc 40
 		1043 8027  TUSL2-C Mainboard
 		147b 0507  TH7II-RAID
+		15d9 3280  Supermicro P4SBE Mainboard
 		8086 4532  D815EEA2 mainboard
 		8086 4557  D815EGEW Mainboard
 		8086 5744  S845WD1-E mainboard
 	244c  82801BAM ISA Bridge (LPC)
 	244e  82801 PCI Bridge
 		1014 0267  NetVista A30p
+		1028 0211  Optiplex 755
 	2450  82801E ISA Bridge (LPC)
-	2452  82801E USB
-	2453  82801E SMBus
+	2452  82801E USB Controller
+	2453  82801E SMBus Controller
 	2459  82801E Ethernet Controller 0
-	245b  82801E IDE U100
+	245b  82801E IDE U100 Controller
 	245d  82801E Ethernet Controller 1
 	245e  82801E PCI Bridge
 	2480  82801CA LPC Interface Controller
-	2482  82801CA/CAM USB (Hub #1)
+	2482  82801CA/CAM USB Controller #1
 		0e11 0030  Evo N600c
 		1014 0220  ThinkPad A/T/X Series
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
@@ -11512,7 +12630,7 @@
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
 		15d9 3480  P4DP6
 		8086 1958  vpr Matrix 170B4
-	2484  82801CA/CAM USB (Hub #2)
+	2484  82801CA/CAM USB Controller #2
 		0e11 0030  Evo N600c
 		1014 0220  ThinkPad A/T/X Series
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
@@ -11520,27 +12638,30 @@
 		8086 1958  vpr Matrix 170B4
 	2485  82801CA/CAM AC'97 Audio Controller
 		1013 5959  Crystal WMD Audio Codec
-		1014 0222  ThinkPad T23 (2647-4MG) or A30/A30p (2652/2653)
+		1014 0222  ThinkPad A30/A30p/T23
 		1014 0508  ThinkPad T30
 		1014 051c  ThinkPad A/T/X Series
+		1043 1583  L3C (SPDIF)
+		1043 1623  L2B (no SPDIF)
+		1043 1643  L3F
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
 		144d c006  vpr Matrix 170B4
 	2486  82801CA/CAM AC'97 Modem Controller
 		1014 0223  ThinkPad A/T/X Series
-		1014 0503  ThinkPad R31 2656BBG
+		1014 0503  ThinkPad R31
 		1014 051a  ThinkPad A/T/X Series
 		101f 1025  620 Series
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
 		134d 4c21  Dell Inspiron 2100 internal modem
 		144d 2115  vpr Matrix 170B4 internal modem
 		14f1 5421  MD56ORD V.92 MDC Modem
-	2487  82801CA/CAM USB (Hub #3)
+	2487  82801CA/CAM USB Controller #3
 		0e11 0030  Evo N600c
 		1014 0220  ThinkPad A/T/X Series
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
 		15d9 3480  P4DP6
 		8086 1958  vpr Matrix 170B4
-	248a  82801CAM IDE U100
+	248a  82801CAM IDE U100 Controller
 		0e11 0030  Evo N600c
 		1014 0220  ThinkPad A/T/X Series
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
@@ -11555,33 +12676,42 @@
 	24c1  82801DBL (ICH4-L) IDE Controller
 	24c2  82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1
 		1014 0267  NetVista A30p
-		1014 052d  Thinkpad R50e model 1634
+		1014 052d  ThinkPad
 		1025 005a  TravelMate 290
 		1028 0126  Optiplex GX260
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
+		1043 8089  P4B533
 		1071 8160  MIM2000
+		114a 0582  PC8 onboard USB 1.x
+		144d c005  X10 Laptop
 		144d c00c  P30/P35 notebook
 		1462 5800  845PE Max (MS-6580)
 		1509 2990  Averatec 5110H laptop
 		1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
 		1734 1055  Amilo M1420
 		4c53 1090  Cx9 / Vx9 mainboard
+		8086 24c2  Latitude X300
 		8086 4541  Latitude D400
 		e4bf 0cc9  CC9-SAMBA
 		e4bf 0cd2  CD2-BEBOP
 	24c3  82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller
 		1014 0267  NetVista A30p
-		1014 052d  Thinkpad R50e model 1634
+		1014 052d  ThinkPad
 		1025 005a  TravelMate 290
 		1028 0126  Optiplex GX260
+		1028 014f  Latitude X300
+		1028 018d  Inspiron 700m/710m
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
+		114a 0582  PC8 onboard SMbus
+		144d c005  X10 Laptop
 		144d c00c  P30/P35 notebook
 		1458 24c2  GA-8PE667 Ultra
 		1462 5800  845PE Max (MS-6580)
@@ -11592,44 +12722,55 @@
 		e4bf 0cd2  CD2-BEBOP
 	24c4  82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2
 		1014 0267  NetVista A30p
-		1014 052d  Thinkpad R50e model 1634
+		1014 052d  ThinkPad
 		1025 005a  TravelMate 290
 		1028 0126  Optiplex GX260
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
+		1043 8089  P4B533
 		1071 8160  MIM2000
 		144d c00c  P30/P35 notebook
 		1462 5800  845PE Max (MS-6580)
 		1509 2990  Averatec 5110H
 		1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
 		4c53 1090  Cx9 / Vx9 mainboard
+		8086 24c2  Latitude X300
 		8086 4541  Latitude D400
 		e4bf 0cc9  CC9-SAMBA
 		e4bf 0cd2  CD2-BEBOP
 	24c5  82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller
 		0e11 00b8  Analog Devices Inc. codec [SoundMAX]
 		1014 0267  NetVista A30p
-		1014 0537  Thinkpad T41
+		1014 0537  ThinkPad T41
 		1014 055f  Thinkpad R50e model 1634
 		1025 005a  TravelMate 290
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m [SigmaTel STAC9750,51]
 		1028 0196  Inspiron 5160
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
+		1043 80b0  P4B533
 		1071 8160  MIM2000
+		144d c005  X10 Laptop
 		144d c00c  P30/P35 notebook
 		1458 a002  GA-8PE667 Ultra
 		1462 5800  845PE Max (MS-6580)
+		1713 1043  Asus M6800N
 		1734 1005  D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T
 		1734 1055  Amilo M1420
+		8086 24c5  Dell Dimension 2400
+		a002 1458  Realtek AC'97 codec [ALC655]
 	24c6  82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller
-		1014 0524  Thinkpad T41
-		1014 0559  Thinkpad R50e model 1634
+		1014 0524  ThinkPad T41
+		1014 0525  ThinkPad
+		1014 0559  ThinkPad R50e
 		1025 003c  Aspire 2001WLCi (Compal CL50 motherboard) implementation
 		1025 005a  TravelMate 290
 		1028 0196  Inspiron 5160
@@ -11637,41 +12778,53 @@
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
+		144d 2115  X10 Laptop
 		144d c00c  P30/P35 notebook
+# Conexant HSF Softmodem (CXT22)
+		14f1 5422  D480 MDC V.9x Modem
+		1826 1043  Asus M6800N
 	24c7  82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3
 		1014 0267  NetVista A30p
-		1014 052d  Thinkpad R50e model 1634
+		1014 052d  ThinkPad
 		1025 005a  TravelMate 290
 		1028 0126  Optiplex GX260
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
+		1043 8089  P4B533
 		1071 8160  MIM2000
 		144d c00c  P30/P35 notebook
 		1462 5800  845PE Max (MS-6580)
 		1509 2990  Averatec 5110H
 		1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
 		4c53 1090  Cx9 / Vx9 mainboard
+		8086 24c2  Latitude X300
 		8086 4541  Latitude D400
 		e4bf 0cc9  CC9-SAMBA
 		e4bf 0cd2  CD2-BEBOP
 	24ca  82801DBM (ICH4-M) IDE Controller
-		1014 052d  Thinkpad R50e model 1634
+		1014 052d  ThinkPad
 		1025 005a  TravelMate 290
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
+		144d c005  X10 Laptop
 		144d c00c  P30/P35 notebook
 		1734 1055  Amilo M1420
 		8086 4541  Latitude D400
 	24cb  82801DB (ICH4) IDE Controller
 		1014 0267  NetVista A30p
 		1028 0126  Optiplex GX260
+		1043 8089  P4B533
+		114a 0582  PC8 onboard IDE
 		1458 24c2  GA-8PE667 Ultra
 		1462 5800  845PE Max (MS-6580)
 		1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
@@ -11683,24 +12836,29 @@
 		1734 1055  Amilo M1420
 	24cd  82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller
 		1014 0267  NetVista A30p
-		1014 052e  Thinkpad R50e model 1634
+		1014 052e  ThinkPad
 		1025 005a  TravelMate 290
 		1028 011d  Latitude D600
 		1028 0126  Optiplex GX260
 		1028 0139  Latitude D400
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
+		1043 8089  P4B533
 		1071 8160  MIM2000
+		114a 0582  PC8 onboard USB 2.0
 		1179 ff00  Satellite 2430
+		144d c005  X10 Laptop
 		144d c00c  P30/P35 notebook
 		1462 3981  845PE Max (MS-6580)
 		1509 1968  Averatec 5110H
 		1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
 		1734 1055  Amilo M1420
 		4c53 1090  Cx9 / Vx9 mainboard
+		8086 24c2  Latitude X300
 		e4bf 0cc9  CC9-SAMBA
 		e4bf 0cd2  CD2-BEBOP
 	24d0  82801EB/ER (ICH5/ICH5R) LPC Interface Bridge
@@ -11711,14 +12869,18 @@
 		1043 80a6  P4P800 SE Mainboard
 		1458 24d1  GA-8IPE1000 Pro2 motherboard (865PE)
 		1462 7280  865PE Neo2 (MS-6728)
+		1565 5200  P4TSV Motherboard (865G)
 		15d9 4580  P4SCE Mainboard
 		8086 3427  S875WP1-E mainboard
 		8086 4246  Desktop Board D865GBF
 		8086 4c43  Desktop Board D865GLC
 		8086 524c  D865PERL mainboard
 	24d2  82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1
-		1014 02ed  xSeries server mainboard
+		1014 02dd  eServer xSeries server mainboard
+		1014 02ed  eServer xSeries server mainboard
 		1028 0169  Precision 470
+		1028 016c  PowerEdge 1850
+		1028 016d  PowerEdge 2850
 		1028 0183  PowerEdge 1800
 		1028 019a  PowerEdge SC1425
 		103c 006a  NX9500
@@ -11726,29 +12888,35 @@
 		1043 80a6  P5P800-MX Mainboard
 		1458 24d2  GA-8IPE1000/8KNXP motherboard
 		1462 7280  865PE Neo2 (MS-6728)
+		1565 3101  P4TSV Motherboard (865G)
 		15d9 4580  P4SCE Mainboard
-		1734 101c  Primergy RX300 S2
+		1734 101c  PRIMERGY RX/TX series onboard UHCI
 		8086 3427  S875WP1-E mainboard
 		8086 4246  Desktop Board D865GBF
 		8086 4c43  Desktop Board D865GLC
 		8086 524c  D865PERL mainboard
 	24d3  82801EB/ER (ICH5/ICH5R) SMBus Controller
-		1014 02ed  xSeries server mainboard
+		1014 02dd  eServer xSeries server mainboard
+		1014 02ed  eServer xSeries server mainboard
 		1028 0156  Precision 360
 		1028 0169  Precision 470
 		103c 12bc  d330 uT
 		1043 80a6  P4P800 Mainboard
 		1458 24d2  GA-8IPE1000 Pro2 motherboard (865PE)
 		1462 7280  865PE Neo2 (MS-6728)
+		1565 3101  P4TSV Motherboard (865G)
 		15d9 4580  P4SCE Mainboard
-		1734 101c  Primergy RX300 S2
+		1734 101c  PRIMERGY RX/TX S2 series SMBus
 		8086 3427  S875WP1-E mainboard
 		8086 4246  Desktop Board D865GBF
 		8086 4c43  Desktop Board D865GLC
 		8086 524c  D865PERL mainboard
 	24d4  82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2
-		1014 02ed  xSeries server mainboard
+		1014 02dd  eServer xSeries server mainboard
+		1014 02ed  eServer xSeries server mainboard
 		1028 0169  Precision 470
+		1028 016c  PowerEdge 1850
+		1028 016d  PowerEdge 2850
 		1028 0183  PowerEdge 1800
 		1028 019a  PowerEdge SC1425
 		103c 006a  NX9500
@@ -11756,8 +12924,9 @@
 		1043 80a6  P5P800-MX Mainboard
 		1458 24d2  GA-8IPE1000 Pro2 motherboard (865PE)
 		1462 7280  865PE Neo2 (MS-6728)
+		1565 3101  P4TSV Motherboard (865G)
 		15d9 4580  P4SCE Mainboard
-		1734 101c  Primergy RX300 S2
+		1734 101c  PRIMERGY RX/TX S2 series onboard UHCI
 		8086 3427  S875WP1-E mainboard
 		8086 4246  Desktop Board D865GBF
 		8086 4c43  Desktop Board D865GLC
@@ -11781,21 +12950,27 @@
 	24d7  82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3
 		1014 02ed  xSeries server mainboard
 		1028 0169  Precision 470
+		1028 016c  PowerEdge 1850
+		1028 016d  PowerEdge 2850
 		1028 0183  PowerEdge 1800
 		103c 006a  NX9500
 		103c 12bc  d530 CMT (DG746A)
 		1043 80a6  P5P800-MX Mainboard
 		1458 24d2  GA-8IPE1000 Pro2 motherboard (865PE)
 		1462 7280  865PE Neo2 (MS-6728)
+		1565 3101  P4TSV Motherboard (865G)
 		15d9 4580  P4SCE Mainboard
-		1734 101c  Primergy RX300 S2
+		1734 101c  PRIMERGY RX/TX S2 series onboard UHCI
 		8086 3427  S875WP1-E mainboard
 		8086 4246  Desktop Board D865GBF
 		8086 4c43  Desktop Board D865GLC
 		8086 524c  D865PERL mainboard
 	24db  82801EB/ER (ICH5/ICH5R) IDE Controller
-		1014 02ed  xSeries server mainboard
+		1014 02dd  eServer xSeries server mainboard
+		1014 02ed  eServer xSeries server mainboard
 		1028 0169  Precision 470
+		1028 016c  PowerEdge 1850
+		1028 016d  PowerEdge 2850
 		1028 019a  PowerEdge SC1425
 		103c 006a  NX9500
 		103c 12bc  d530 CMT (DG746A)
@@ -11803,8 +12978,9 @@
 		1458 24d2  GA-8IPE1000 Pro2 motherboard (865PE)
 		1462 7280  865PE Neo2 (MS-6728)
 		1462 7580  MSI 875P
+		1565 3101  P4TSV Motherboard (865G)
 		15d9 4580  P4SCE Mainboard
-		1734 101c  Primergy RX300 S2
+		1734 101c  PRIMERGY RX/TX S2 series onboard IDE
 		8086 24db  P4C800 Mainboard
 		8086 3427  S875WP1-E mainboard
 		8086 4246  Desktop Board D865GBF
@@ -11812,8 +12988,11 @@
 		8086 524c  D865PERL mainboard
 	24dc  82801EB (ICH5) LPC Interface Bridge
 	24dd  82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller
-		1014 02ed  xSeries server mainboard
+		1014 02dd  eServer xSeries server mainboard
+		1014 02ed  eServer xSeries server mainboard
 		1028 0169  Precision 470
+		1028 016c  PowerEdge 1850
+		1028 016d  PowerEdge 2850
 		1028 0183  PowerEdge 1800
 		1028 019a  PowerEdge SC1425
 		103c 006a  NX9500
@@ -11831,8 +13010,9 @@
 		1043 80a6  P5P800-MX Mainboard
 		1458 24d2  GA-8IPE1000 Pro2 motherboard (865PE)
 		1462 7280  865PE Neo2 (MS-6728)
+		1565 3101  P4TSV Motherboard (865G)
 		15d9 4580  P4SCE Mainboard
-		1734 101c  Primergy RX300 S2
+		1734 101c  PRIMERGY RX/TX S2 series onboard UHCI
 		8086 3427  S875WP1-E mainboard
 		8086 4246  Desktop Board D865GBF
 		8086 4c43  Desktop Board D865GLC
@@ -11884,6 +13064,7 @@
 	2562  82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device
 		0e11 00b9  Evo D510 SFF
 		1014 0267  NetVista A30p
+		1734 1003  D1521 Mainboard (Fujitsu-Siemens)
 		1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
 	2570  82865G/PE/P DRAM Controller/Host-Hub Interface
 		103c 006a  NX9500
@@ -11917,73 +13098,95 @@
 		1043 2582  P5GD1-VW Mainboard
 		1458 2582  GA-8I915ME-G Mainboard
 		1734 105b  Scenic W620
+		1849 2582  ASRock P4Dual-915GL
 	2584  82925X/XE Memory Controller Hub
+		1028 0177  Dimension 8400
 	2585  82925X/XE PCI Express Root Port
 	2588  E7220/E7221 Memory Controller Hub
 	2589  E7220/E7221 PCI Express Root Port
 	258a  E7221 Integrated Graphics Controller
 	2590  Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller
+		1014 0575  ThinkPad Z60t
 		1028 0182  Dell Latidude C610
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
+		104d 81b7  Vaio VGN-S3XP
 		a304 81b7  Vaio VGN-S3XP
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2591  Mobile 915GM/PM Express PCI Express Root Port
+# (rev 03) (prog-if 00 [Normal decode])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 	2592  Mobile 915GM/GMS/910GML Express Graphics Controller
 		103c 099c  NX6110/NC6120
 		103c 308a  NC6220
 		1043 1881  GMA 900 915GM Integrated Graphics
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	25a1  6300ESB LPC Interface Controller
 	25a2  6300ESB PATA Storage Controller
 		1775 10d0  V5D Single Board Computer IDE
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10e0  PSL09 PrPMC
 	25a3  6300ESB SATA Storage Controller
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10d0  Telum ASLP10 Processor AMC
 		4c53 10e0  PSL09 PrPMC
 	25a4  6300ESB SMBus Controller
 		1775 10d0  V5D Single Board Computer
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10d0  Telum ASLP10 Processor AMC
 		4c53 10e0  PSL09 PrPMC
 	25a6  6300ESB AC'97 Audio Controller
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 	25a7  6300ESB AC'97 Modem Controller
 	25a9  6300ESB USB Universal Host Controller
 		1775 10d0  V5D Single Board Computer USB
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10d0  Telum ASLP10 Processor AMC
 		4c53 10e0  PSL09 PrPMC
 	25aa  6300ESB USB Universal Host Controller
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
+		4c53 10d0  Telum ASLP10 Processor AMC
 		4c53 10e0  PSL09 PrPMC
 	25ab  6300ESB Watchdog Timer
 		1775 10d0  V5D Single Board Computer
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10d0  Telum ASLP10 Processor AMC
 		4c53 10e0  PSL09 PrPMC
 	25ac  6300ESB I/O Advanced Programmable Interrupt Controller
 		1775 10d0  V5D Single Board Computer
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10d0  Telum ASLP10 Processor AMC
 		4c53 10e0  PSL09 PrPMC
 	25ad  6300ESB USB2 Enhanced Host Controller
 		1775 10d0  V5D Single Board Computer USB 2.0
+		1775 1100  CR11/VR11 Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10d0  Telum ASLP10 Processor AMC
 		4c53 10e0  PSL09 PrPMC
 	25ae  6300ESB 64-bit PCI-X Bridge
 	25b0  6300ESB SATA RAID Controller
+		1775 1100  CR11/VR11 Single Board Computer
 		4c53 10d0  Telum ASLP10 Processor AMC
 		4c53 10e0  PSL09 PrPMC
 	25c0  5000X Chipset Memory Controller Hub
@@ -12043,7 +13246,10 @@
 		1462 7028  915P/G Neo2
 		1734 105c  Scenic W620
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2641  82801FBM (ICH6M) LPC Interface Bridge
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 	2642  82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge
 	2651  82801FB/FW (ICH6/ICH6W) SATA Controller
@@ -12052,34 +13258,50 @@
 		1734 105c  Scenic W620
 		8086 4147  D915GAG Motherboard
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2652  82801FR/FRW (ICH6R/ICH6RW) SATA Controller
+		1028 0177  Dimension 8400
 		1462 7028  915P/G Neo2
 	2653  82801FBM (ICH6M) SATA Controller
 	2658  82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1
+		1028 0177  Dimension 8400
 		1028 0179  Optiplex GX280
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		1043 80a6  P5GD1-VW Mainboard
 		1458 2558  GA-8I915ME-G Mainboard
 		1462 7028  915P/G Neo2
 		1734 105c  Scenic W620
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2659  82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2
+		1028 0177  Dimension 8400
 		1028 0179  Optiplex GX280
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		1043 80a6  P5GD1-VW Mainboard
 		1458 2659  GA-8I915ME-G Mainboard
 		1462 7028  915P/G Neo2
 		1734 105c  Scenic W620
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	265a  82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3
+		1028 0177  Dimension 8400
 		1028 0179  Optiplex GX280
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		1043 80a6  P5GD1-VW Mainboard
 		1458 265a  GA-8I915ME-G Mainboard
 		1462 7028  915P/G Neo2
 		1734 105c  Scenic W620
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	265b  82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4
+		1028 0177  Dimension 8400
 		1028 0179  Optiplex GX280
 		103c 099c  NX6110/NC6120
 		1043 80a6  P5GD1-VW Mainboard
@@ -12087,8 +13309,12 @@
 		1462 7028  915P/G Neo2
 		1734 105c  Scenic W620
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	265c  82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
+		1028 0177  Dimension 8400
 		1028 0179  Optiplex GX280
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		1043 80a6  P5GD1-VW Mainboard
 		1458 5006  GA-8I915ME-G Mainboard
@@ -12096,31 +13322,56 @@
 		1734 105c  Scenic W620
 		8086 265c  Dimension 3100
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2660  82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1
+# (rev 03) (prog-if 00 [Normal decode])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
+		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2662  82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2
+# (rev 03) (prog-if 00 [Normal decode])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
+		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2664  82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3
+		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2666  82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4
+		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2668  82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
+		1014 05b7  ThinkPad Z60t
 # based on the PTGD1-LA motherboard
 		103c 2a09  PufferM-UL8E
 		1043 814e  P5GD1-VW Mainboard
 	266a  82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller
+		1028 0177  Dimension 8400
 		1028 0179  Optiplex GX280
 		1043 80a6  P5GD1-VW Mainboard
 		1458 266a  GA-8I915ME-G Mainboard
 		1462 7028  915P/G Neo2
 		1734 105c  Scenic W620
 		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	266c  82801FB/FBM/FR/FW/FRW (ICH6 Family) LAN Controller
 	266d  82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller
 		1025 006a  Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop)
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 	266e  82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller
 		1025 006a  Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop)
+		1028 0177  Dimension 8400
 		1028 0179  Optiplex GX280
 		1028 0182  Latitude D610 Laptop
 		1028 0188  Inspiron 6000 laptop
+		103c 0934  Compaq nw8240/nx8220
 		103c 0944  Compaq NC6220
 		103c 099c  NX6110/NC6120
 		103c 3006  DC7100 SFF(DX878AV)
@@ -12128,16 +13379,21 @@
 		152d 0745  Packard Bell A8550 Laptop
 		1734 105a  Scenic W620
 	266f  82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller
+		1028 0177  Dimension 8400
+		103c 0934  Compaq nw8240/nx8220
 		103c 099c  NX6110/NC6120
 		1043 80a6  P5GD1-VW Mainboard
 		1458 266f  GA-8I915ME-G Mainboard
 		1462 7028  915P/G Neo2
 		1734 105c  Scenic W620
+		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	2670  631xESB/632xESB/3100 Chipset LPC Interface Controller
-	2680  631xESB/632xESB/3100 Chipset SATA Storage Controller IDE
-	2681  631xESB/632xESB SATA Storage Controller AHCI
-	2682  631xESB/632xESB SATA Storage Controller RAID
-	2683  631xESB/632xESB SATA Storage Controller RAID
+	2680  631xESB/632xESB/3100 Chipset SATA IDE Controller
+	2681  631xESB/632xESB SATA AHCI Controller
+	2682  631xESB/632xESB SATA RAID Controller
+	2683  631xESB/632xESB SATA RAID Controller
 	2688  631xESB/632xESB/3100 Chipset UHCI USB Controller #1
 	2689  631xESB/632xESB/3100 Chipset UHCI USB Controller #2
 	268a  631xESB/632xESB/3100 Chipset UHCI USB Controller #3
@@ -12162,9 +13418,12 @@
 	2775  82955X PCI Express Root Port
 	2776  82945G/GZ Integrated Graphics Controller
 	2778  E7230/3000/3010 Memory Controller Hub
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
 	2779  E7230/3000/3010 PCI Express Root Port
 	277a  82975X/3010 PCI Express Root Port
 	277c  82975X Memory Controller Hub
+		1043 8178  P5WDG2 WS Professional motherboard
 	277d  82975X PCI Express Root Port
 	2782  82915G Integrated Graphics Controller
 		1043 2582  P5GD1-VW Mainboard
@@ -12172,156 +13431,333 @@
 	2792  Mobile 915GM/GMS/910GML Express Graphics Controller
 		103c 099c  NX6110/NC6120
 		1043 1881  GMA 900 915GM Integrated Graphics
+		e4bf 0ccd  CCD-CALYPSO
+		e4bf 0cd3  CD3-JIVE
+		e4bf 58b1  XB1
 	27a0  Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub
+		1025 006c  9814 WKMI
 		103c 30a1  NC2400
-		17aa 2017  Thinkpad R60e model 0657
+		103c 30a3  Compaq nw8440
+		17aa 2017  ThinkPad T60/R60 series
 	27a1  Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port
+		103c 30a3  Compaq nw8440
 	27a2  Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
 		103c 30a1  NC2400
-		17aa 201a  Thinkpad R60e model 0657
-	27a6  Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
+		17aa 201a  ThinkPad T60/R60 series
+	27a6  Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller
 		103c 30a1  NC2400
-		17aa 201a  Thinkpad R60e model 0657
+		17aa 201a  ThinkPad T60/R60 series
+	27ac  Mobile 945GME Express Memory Controller Hub
+	27ad  Mobile 945GME Express PCI Express Root Port
+	27ae  Mobile 945GME Express Integrated Graphics Controller
 	27b0  82801GH (ICH7DH) LPC Interface Bridge
+		8086 544e  DeskTop Board D945GTP
 	27b8  82801GB/GR (ICH7 Family) LPC Interface Bridge
+		1028 01e6  PowerEdge 860
 		107b 5048  E4500
 		8086 544e  DeskTop Board D945GTP
 	27b9  82801GBM (ICH7-M) LPC Interface Bridge
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 		10f7 8338  Panasonic CF-Y5 laptop
 		17aa 2009  ThinkPad T60/R60 series
 	27bd  82801GHM (ICH7-M DH) LPC Interface Bridge
-	27c0  82801GB/GR/GH (ICH7 Family) Serial ATA Storage Controller IDE
+		1025 006c  9814 WKMI
+	27c0  82801GB/GR/GH (ICH7 Family) SATA IDE Controller
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
 		107b 5048  E4500
+		1462 7236  945P Neo3-F Rev. 2.2 motherboard
 		8086 544e  DeskTop Board D945GTP
-	27c1  82801GR/GH (ICH7 Family) Serial ATA Storage Controller AHCI
-	27c3  82801GR/GH (ICH7 Family) Serial ATA Storage Controller RAID
-	27c4  82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE
-	27c5  82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI
-		17aa 200d  Thinkpad R60e model 0657
-	27c6  82801GHM (ICH7-M DH) Serial ATA Storage Controller RAID
-	27c8  82801G (ICH7 Family) USB UHCI #1
+	27c1  82801GR/GH (ICH7 Family) SATA AHCI Controller
+		1028 01df  PowerEdge SC440
+		8086 5842  DeskTop Board D975XBX
+	27c3  82801GR/GH (ICH7 Family) SATA RAID Controller
+		8086 544e  DeskTop Board D945GTP
+	27c4  82801GBM/GHM (ICH7 Family) SATA IDE Controller
+		1025 006c  9814 WKMI
+		17aa 200e  Thinkpad T60 model 2007
+	27c5  82801GBM/GHM (ICH7 Family) SATA AHCI Controller
+		103c 30a3  Compaq nw8440
+		17aa 200d  ThinkPad T60/R60 series
+	27c6  82801GHM (ICH7-M DH) SATA RAID Controller
+	27c8  82801G (ICH7 Family) USB UHCI Controller #1
+		1025 006c  9814 WKMI
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 		107b 5048  E4500
 		17aa 200a  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
-	27c9  82801G (ICH7 Family) USB UHCI #2
+	27c9  82801G (ICH7 Family) USB UHCI Controller #2
+		1025 006c  9814 WKMI
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 		107b 5048  E4500
 		17aa 200a  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
-	27ca  82801G (ICH7 Family) USB UHCI #3
+	27ca  82801G (ICH7 Family) USB UHCI Controller #3
+		1025 006c  9814 WKMI
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 		107b 5048  E4500
 		17aa 200a  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
-	27cb  82801G (ICH7 Family) USB UHCI #4
+	27cb  82801G (ICH7 Family) USB UHCI Controller #4
+		1025 006c  9814 WKMI
+		1028 01df  PowerEdge SC440
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 		107b 5048  E4500
 		17aa 200a  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
 	27cc  82801G (ICH7 Family) USB2 EHCI Controller
+		1025 006c  9814 WKMI
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 		17aa 200b  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
 	27d0  82801G (ICH7 Family) PCI Express Port 1
+		103c 30a3  Compaq nw8440
 	27d2  82801G (ICH7 Family) PCI Express Port 2
+		103c 30a3  Compaq nw8440
 	27d4  82801G (ICH7 Family) PCI Express Port 3
 	27d6  82801G (ICH7 Family) PCI Express Port 4
+		103c 30a3  Compaq nw8440
 	27d8  82801G (ICH7 Family) High Definition Audio Controller
+		1025 006c  9814 WKMI
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
+		1043 13c4  Asus G2P
 		107b 5048  E4500
 		10f7 8338  Panasonic CF-Y5 laptop
+		1179 ff10  Toshiba Satellite A100-796 audio (Realtek ALC861)
 		1179 ff31  AC97 Data Fax SoftModem with SmartCP
 		152d 0753  Softmodem
 		1734 10ad  Conexant softmodem SmartCP
 		17aa 2010  ThinkPad T60/R60 series
+		17aa 3802  Lenovo 3000 C200 audio [Realtek ALC861VD]
+		8086 1112  DeskTop Board D945GTP
+		8086 27d8  Lenovo 3000 N100 Audio (Intel HDA)
 	27da  82801G (ICH7 Family) SMBus Controller
+		1025 006c  9814 WKMI
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
 		10f7 8338  Panasonic CF-Y5 laptop
 		17aa 200f  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
+		8086 5842  DeskTop Board D975XBX
 	27dc  82801G (ICH7 Family) LAN Controller
 		8086 308d  DeskTop Board D945GTP
 	27dd  82801G (ICH7 Family) AC'97 Modem Controller
 	27de  82801G (ICH7 Family) AC'97 Audio Controller
+		1462 7267  Realtek ALC883 Audio Controller
 	27df  82801G (ICH7 Family) IDE Controller
+		1028 01df  PowerEdge SC440
+		1028 01e6  PowerEdge 860
 		103c 30a1  NC2400
+		103c 30a3  Compaq nw8440
 		107b 5048  E4500
 		10f7 8338  Panasonic CF-Y5 laptop
-		17aa 200c  Thinkpad R60e model 0657
+		17aa 200c  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
 	27e0  82801GR/GH/GHM (ICH7 Family) PCI Express Port 5
 	27e2  82801GR/GH/GHM (ICH7 Family) PCI Express Port 6
 	2810  82801HB/HR (ICH8/R) LPC Interface Controller
-	2811  Mobile LPC Interface Controller
+		1043 81ec  P5B
+	2811  82801HBM (ICH8M-E) LPC Interface Controller
+		e4bf cc47  CCG-RUMBA
 	2812  82801HH (ICH8DH) LPC Interface Controller
 	2814  82801HO (ICH8DO) LPC Interface Controller
-	2815  Mobile LPC Interface Controller
+	2815  82801HEM (ICH8M) LPC Interface Controller
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		104d 9005  Vaio VGN-FZ260E
 	2820  82801H (ICH8 Family) 4 port SATA IDE Controller
+		1028 01da  OptiPlex 745
 		1462 7235  P965 Neo MS-7235 mainboard
 	2821  82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller
 	2822  82801 SATA RAID Controller
 	2824  82801HB (ICH8) 4 port SATA AHCI Controller
+		1043 81ec  P5B
 	2825  82801H (ICH8 Family) 2 port SATA IDE Controller
+		1028 01da  OptiPlex 745
 		1462 7235  P965 Neo MS-7235 mainboard
-	2828  Mobile SATA IDE Controller
-	2829  Mobile SATA AHCI Controller
-	282a  Mobile SATA RAID Controller
-	2830  82801H (ICH8 Family) USB UHCI #1
+	2828  82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller
+		1028 01f3  Inspiron 1420
+		e4bf cc47  CCG-RUMBA
+	2829  82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller
+		103c 30c0  Compaq 6710b
+		104d 9005  Vaio VGN-FZ260E
+		17aa 20a7  ThinkPad T61
+	282a  Mobile 82801 SATA RAID Controller
+	2830  82801H (ICH8 Family) USB UHCI Controller #1
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
 		1462 7235  P965 Neo MS-7235 mainboard
-	2831  82801H (ICH8 Family) USB UHCI #2
+		17aa 20aa  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
+	2831  82801H (ICH8 Family) USB UHCI Controller #2
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
 		1462 7235  P965 Neo MS-7235 mainboard
-	2832  82801H (ICH8 Family) USB UHCI #3
-	2834  82801H (ICH8 Family) USB UHCI #4
+		17aa 20aa  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
+	2832  82801H (ICH8 Family) USB UHCI Controller #3
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
+		17aa 20aa  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
+	2834  82801H (ICH8 Family) USB UHCI Controller #4
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		103c 30c1  Compaq 6910p
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
 		1462 7235  P965 Neo MS-7235 mainboard
-	2835  82801H (ICH8 Family) USB UHCI #5
-	2836  82801H (ICH8 Family) USB2 EHCI #1
+		17aa 20aa  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
+	2835  82801H (ICH8 Family) USB UHCI Controller #5
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
+		17aa 20aa  ThinkPad T60
+		e4bf cc47  CCG-RUMBA
+	2836  82801H (ICH8 Family) USB2 EHCI Controller #1
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
 		1462 7235  P965 Neo MS-7235 mainboard
-	283a  82801H (ICH8 Family) USB2 EHCI #2
+		17aa 20ab  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
+	283a  82801H (ICH8 Family) USB2 EHCI Controller #2
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
+		17aa 20ab  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
 	283e  82801H (ICH8 Family) SMBus Controller
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
 		1462 7235  P965 Neo MS-7235 mainboard
+		17aa 20a9  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
 	283f  82801H (ICH8 Family) PCI Express Port 1
+		1028 01da  OptiPlex 745
 	2841  82801H (ICH8 Family) PCI Express Port 2
 	2843  82801H (ICH8 Family) PCI Express Port 3
 	2845  82801H (ICH8 Family) PCI Express Port 4
 	2847  82801H (ICH8 Family) PCI Express Port 5
+		1028 01da  OptiPlex 745
 	2849  82801H (ICH8 Family) PCI Express Port 6
 	284b  82801H (ICH8 Family) HD Audio Controller
+		0690 107b  Gateway P-6825
+		1028 01da  OptiPlex 745
+		1028 01f3  Inspiron 1420
+		1028 01f9  Dell Latitude D630
+		103c 30c0  Compaq 6710b
+		1043 81ec  P5B
+		104d 9005  Vaio VGN-FZ260E
+		17aa 20ac  ThinkPad T61
 	284f  82801H (ICH8 Family) Thermal Reporting Device
-	2850  Mobile IDE Controller
-	2910  LPC Interface Controller
-	2911  LPC Interface Controller
-	2912  LPC Interface Controller
-	2914  LPC Interface Controller
-	2916  LPC Interface Controller
-	2918  LPC Interface Controller
-	2920  4 port SATA IDE Controller
-	2921  2 port SATA IDE Controller
-	2922  6 port SATA AHCI Controller
-	2923  4 port SATA AHCI Controller
-	2925  SATA RAID Controller
-	2926  2 port SATA IDE Controller
-	2928  Mobile 2 port SATA IDE Controller
-	292d  Mobile 2 port SATA IDE Controller
-	292e  Mobile 1 port SATA IDE Controller
-	2930  SMBus Controller
-	2932  Thermal Subsystem
-	2934  USB UHCI Controller #1
-	2935  USB UHCI Controller #2
-	2936  USB UHCI Controller #3
-	2937  USB UHCI Controller #4
-	2938  USB UHCI Controller #5
-	2939  USB UHCI Controller #6
-	293a  USB2 EHCI Controller #1
-	293c  USB2 EHCI Controller #2
-	293e  HD Audio Controller
-	2940  PCI Express Port 1
-	2942  PCI Express Port 2
-	2944  PCI Express Port 3
-	2946  PCI Express Port 4
-	2948  PCI Express Port 5
-	294a  PCI Express Port 6
-	294c  Gigabit Ethernet Controller
+	2850  82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		104d 9005  Vaio VGN-FZ260E
+		17aa 20a6  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
+	2912  82801IH (ICH9DH) LPC Interface Controller
+	2914  82801IO (ICH9DO) LPC Interface Controller
+		1028 0211  Optiplex 755
+	2916  82801IR (ICH9R) LPC Interface Controller
+	2917  ICH9M-E LPC Interface Controller
+	2918  82801IB (ICH9) LPC Interface Controller
+	2919  ICH9M LPC Interface Controller
+	2920  82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller
+		1028 020f  PowerEdge R300
+		1028 0210  PowerEdge T300
+		1028 0211  Optiplex 755
+	2921  82801IB (ICH9) 2 port SATA IDE Controller
+	2922  82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller
+	2923  82801IB (ICH9) 4 port SATA AHCI Controller
+	2925  82801IR/IO (ICH9R/DO) SATA RAID Controller
+	2926  82801I (ICH9 Family) 2 port SATA IDE Controller
+		1028 0211  Optiplex 755
+	2928  ICH9M/M-E 2 port SATA IDE Controller
+	2929  ICH9M/M-E SATA AHCI Controller
+	292c  ICH9M-E SATA RAID Controller
+	292d  ICH9M/M-E 2 port SATA IDE Controller
+	2930  82801I (ICH9 Family) SMBus Controller
+		1028 0211  Optiplex 755
+	2932  82801I (ICH9 Family) Thermal Subsystem
+	2934  82801I (ICH9 Family) USB UHCI Controller #1
+		1028 020f  PowerEdge R300
+		1028 0210  PowerEdge T300
+		1028 0211  Optiplex 755
+		1028 2011  Optiplex 755
+	2935  82801I (ICH9 Family) USB UHCI Controller #2
+		1028 020f  PowerEdge R300
+		1028 0210  PowerEdge T300
+		1028 0211  Optiplex 755
+	2936  82801I (ICH9 Family) USB UHCI Controller #3
+		1028 020f  PowerEdge R300
+		1028 0210  PowerEdge T300
+		1028 0211  Optiplex 755
+	2937  82801I (ICH9 Family) USB UHCI Controller #4
+		1028 0211  Optiplex 755
+		1028 2011  Optiplex 755
+		8086 2937  Optiplex 755
+	2938  82801I (ICH9 Family) USB UHCI Controller #5
+		1028 0211  Optiplex 755
+		8086 2938  Optiplex 755
+	2939  82801I (ICH9 Family) USB UHCI Controller #6
+		1028 0210  PowerEdge T300
+	293a  82801I (ICH9 Family) USB2 EHCI Controller #1
+		1028 020f  PowerEdge R300
+		1028 0210  PowerEdge T300
+		1028 0211  Optiplex 755
+	293c  82801I (ICH9 Family) USB2 EHCI Controller #2
+		1028 0211  Optiplex 755
+		8086 293c  Optiplex 755
+	293e  82801I (ICH9 Family) HD Audio Controller
+		1028 0211  Optiplex 755
+		8086 293e  Optiplex 755
+		8086 2940  Optiplex 755
+	2940  82801I (ICH9 Family) PCI Express Port 1
+		1028 0211  Optiplex 755
+		8086 2940  Optiplex 755
+	2942  82801I (ICH9 Family) PCI Express Port 2
+	2944  82801I (ICH9 Family) PCI Express Port 3
+	2946  82801I (ICH9 Family) PCI Express Port 4
+	2948  82801I (ICH9 Family) PCI Express Port 5
+	294a  82801I (ICH9 Family) PCI Express Port 6
+	294c  82566DC-2 Gigabit Network Connection
+		17aa 302e  82566DM-2 Gigabit Network Connection
 	2970  82946GZ/PL/GL Memory Controller Hub
 	2971  82946GZ/PL/GL PCI Express Root Port
 	2972  82946GZ/GL Integrated Graphics Controller
@@ -12330,10 +13766,13 @@
 	2975  82946GZ/GL HECI Controller
 	2976  82946GZ/GL PT IDER Controller
 	2977  82946GZ/GL KT Controller
-	2980  965 G1 Memory Controller Hub
-	2981  965 G1 PCI Express Root Port
-	2982  965 G1 Integrated Graphics Controller
+	2980  82G35 Express DRAM Controller
+	2981  82G35 Express PCI Express Root Port
+	2982  82G35 Express Integrated Graphics Controller
+	2983  82G35 Express Integrated Graphics Controller
+	2984  82G35 Express HECI Controller
 	2990  82Q963/Q965 Memory Controller Hub
+		1028 01da  OptiPlex 745
 	2991  82Q963/Q965 PCI Express Root Port
 	2992  82Q963/Q965 Integrated Graphics Controller
 	2993  82Q963/Q965 Integrated Graphics Controller
@@ -12342,72 +13781,226 @@
 	2996  82Q963/Q965 PT IDER Controller
 	2997  82Q963/Q965 KT Controller
 	29a0  82P965/G965 Memory Controller Hub
+		1043 81ea  P5B
+		1462 7276  MS-7276 [G965MDH]
 	29a1  82P965/G965 PCI Express Root Port
 	29a2  82G965 Integrated Graphics Controller
+		1462 7276  MS-7276 [G965MDH]
 	29a3  82G965 Integrated Graphics Controller
 	29a4  82P965/G965 HECI Controller
 	29a5  82P965/G965 HECI Controller
 	29a6  82P965/G965 PT IDER Controller
 	29a7  82P965/G965 KT Controller
-	29b0  DRAM Controller
-	29b1  PCI Express Root Port
-	29b2  Integrated Graphics Controller
-	29b3  Integrated Graphics Controller
-	29b4  HECI Controller
-	29b5  HECI Controller
-	29b6  PT IDER Controller
-	29b7  Serial KT Controller
-	29c0  DRAM Controller
-	29c1  PCI Express Root Port
-	29c2  Integrated Graphics Controller
-	29c3  Integrated Graphics Controller
-	29c4  HECI Controller
-	29c5  HECI Controller
-	29c6  PT IDER Controller
-	29c7  Serial KT Controller
+	29b0  82Q35 Express DRAM Controller
+		1028 0211  OptiPlex 755
+	29b1  82Q35 Express PCI Express Root Port
+		1028 0211  OptiPlex 755
+	29b2  82Q35 Express Integrated Graphics Controller
+		1028 0211  OptiPlex 755
+	29b3  82Q35 Express Integrated Graphics Controller
+		1028 0211  OptiPlex 755
+	29b4  82Q35 Express MEI Controller
+		1028 0211  OptiPlex 755
+	29b5  82Q35 Express MEI Controller
+	29b6  82Q35 Express PT IDER Controller
+		1028 0211  OptiPlex 755
+	29b7  82Q35 Express Serial KT Controller
+		1028 0211  OptiPlex 755
+	29c0  82G33/G31/P35/P31 Express DRAM Controller
+	29c1  82G33/G31/P35/P31 Express PCI Express Root Port
+	29c2  82G33/G31 Express Integrated Graphics Controller
+	29c3  82G33/G31 Express Integrated Graphics Controller
+	29c4  82G33/G31/P35/P31 Express MEI Controller
+	29c5  82G33/G31/P35/P31 Express MEI Controller
+	29c6  82G33/G31/P35/P31 Express PT IDER Controller
+	29c7  82G33/G31/P35/P31 Express Serial KT Controller
 	29cf  Virtual HECI Controller
-	29d0  DRAM Controller
-	29d1  PCI Express Root Port
-	29d2  Integrated Graphics Controller
-	29d3  Integrated Graphics Controller
-	29d4  HECI Controller
-	29d5  HECI Controller
-	29d6  PT IDER Controller
-	29d7  Serial KT Controller
-	29e0  DRAM Controller
-	29e1  Host-Primary PCI Express Bridge
-	29e4  HECI Controller
-	29e5  HECI Controller
-	29e6  PT IDER Controller
-	29e7  Serial KT Controller
-	29e9  Host-Secondary PCI Express Bridge
-	29f0  Server DRAM Controller
-	29f1  Server Host-Primary PCI Express Bridge
-	29f4  Server HECI Controller
-	29f5  Server HECI Controller
-	29f6  Server PT IDER Controller
-	29f7  Server Serial KT Controller
-	29f9  Server Host-Secondary PCI Express Bridge
-	2a00  Mobile Memory Controller Hub
-	2a01  Mobile PCI Express Root Port
-	2a02  Mobile Integrated Graphics Controller
-	2a03  Mobile Integrated Graphics Controller
-	2a04  Mobile HECI Controller
-	2a05  Mobile HECI Controller
-	2a06  Mobile PT IDER Controller
-	2a07  Mobile KT Controller
-	3092  Integrated RAID
+	29d0  82Q33 Express DRAM Controller
+	29d1  82Q33 Express PCI Express Root Port
+	29d2  82Q33 Express Integrated Graphics Controller
+	29d3  82Q33 Express Integrated Graphics Controller
+	29d4  82Q33 Express MEI Controller
+	29d5  82Q33 Express MEI Controller
+	29d6  82Q33 Express PT IDER Controller
+	29d7  82Q33 Express Serial KT Controller
+	29e0  82X38 Express DRAM Controller
+	29e1  82X38 Express Host-Primary PCI Express Bridge
+	29e4  82X38 Express MEI Controller
+	29e5  82X38 Express MEI Controller
+	29e6  82X38 Express PT IDER Controller
+	29e7  82X38 Express Serial KT Controller
+	29e9  82X38 Express Host-Secondary PCI Express Bridge
+	29f0  3200/3210 Chipset DRAM Controller
+	29f1  3200/3210 Chipset Host-Primary PCI Express Bridge
+	29f4  3200/3210 Chipset MEI Controller
+	29f5  3200/3210 Chipset MEI Controller
+	29f6  3200/3210 Chipset PT IDER Controller
+	29f7  3200/3210 Chipset Serial KT Controller
+	29f9  3210 Chipset Host-Secondary PCI Express Bridge
+	2a00  Mobile PM965/GM965/GL960 Memory Controller Hub
+		1028 01f3  Inspiron 1420
+		103c 30c0  Compaq 6710b
+		104d 9005  Vaio VGN-FZ260E
+		17aa 20b1  ThinkPad T61
+		e4bf cc47  CCG-RUMBA
+	2a01  Mobile PM965/GM965/GL960 PCI Express Root Port
+	2a02  Mobile GM965/GL960 Integrated Graphics Controller
+		1028 01f3  Inspiron 1420
+		1028 01f9  Latitude D630
+		103c 30c0  Compaq 6710b
+		e4bf cc47  CCG-RUMBA
+	2a03  Mobile GM965/GL960 Integrated Graphics Controller
+		1028 01f3  Dell Inspiron 1420
+		103c 30c0  Compaq 6710b
+		e4bf cc47  CCG-RUMBA
+	2a04  Mobile PM965/GM965 MEI Controller
+	2a05  Mobile PM965/GM965 MEI Controller
+	2a06  Mobile PM965/GM965 PT IDER Controller
+	2a07  Mobile PM965/GM965 KT Controller
+	2a10  Mobile GME965/GLE960 Memory Controller Hub
+		e4bf cc47  CCG-RUMBA
+	2a11  Mobile GME965/GLE960 PCI Express Root Port
+	2a12  Mobile GME965/GLE960 Integrated Graphics Controller
+		e4bf cc47  CCG-RUMBA
+	2a13  Mobile GME965/GLE960 Integrated Graphics Controller
+		e4bf cc47  CCG-RUMBA
+	2a14  Mobile GME965/GLE960 MEI Controller
+	2a15  Mobile GME965/GLE960 MEI Controller
+	2a16  Mobile GME965/GLE960 PT IDER Controller
+	2a17  Mobile GME965/GLE960 KT Controller
+	2a40  Cantiga Memory Controller Hub
+	2a41  Cantiga PCI Express Graphics Port
+	2a42  Cantiga Integrated Graphics Controller
+	2a43  Cantiga Integrated Graphics Controller
+	2a44  Cantiga MEI Controller
+	2a45  Cantiga MEI Controller
+	2a46  Cantiga PT IDER Controller
+	2a47  Cantiga AMT SOL Redirection
+	2a50  Cantiga MEI Controller
+	2a51  Cantiga MEI Controller
+	2a52  Cantiga PT IDER Controller
+	2a53  Cantiga AMT SOL Redirection
+	2c01  QuickPath Architecture System Address Decoder
+	2c10  QuickPath Interconnect Link 0
+	2c11  QuickPath Interconnect Physical 0
+	2c14  QuickPath Interconnect Link 1
+	2c15  QuickPath Interconnect Physical 1
+	2c18  QuickPath Memory Controller
+	2c19  QuickPath Memory Controller Target Address Decoder
+	2c1a  QuickPath Memory Controller RAS Registers
+	2c1c  QuickPath Memory Controller Test Registers
+	2c20  QuickPath Memory Controller Channel 0 Control Registers
+	2c21  QuickPath Memory Controller Channel 0 Address Registers
+	2c22  QuickPath Memory Controller Channel 0 Rank Registers
+	2c23  QuickPath Memory Controller Channel 0 Thermal Control Registers
+	2c28  QuickPath Memory Controller Channel 1 Control Registers
+	2c29  QuickPath Memory Controller Channel 1 Address Registers
+	2c2a  QuickPath Memory Controller Channel 1 Rank Registers
+	2c2b  QuickPath Memory Controller Channel 1 Thermal Control Registers
+	2c30  QuickPath Memory Controller Channel 2 Control Registers
+	2c31  QuickPath Memory Controller Channel 2 Address Registers
+	2c32  QuickPath Memory Controller Channel 2 Rank Registers
+	2c33  QuickPath Memory Controller Channel 2 Thermal Control Registers
+	2c40  QuickPath Architecture Generic Non-Core Registers
+	2e00  Eaglelake DRAM Controller
+	2e01  Eaglelake PCI Express Root Port
+	2e02  Eaglelake Integrated Graphics Controller
+	2e03  Eaglelake Integrated Graphics Controller
+	2e04  Eaglelake HECI Controller
+	2e05  Eaglelake HECI Controller
+	2e06  Eaglelake PT IDER Controller
+	2e07  Eaglelake Serial KT Controller
+	2e10  Eaglelake DRAM Controller
+	2e11  Eaglelake PCI Express Root Port
+	2e12  Eaglelake Integrated Graphics Controller
+	2e13  Eaglelake Integrated Graphics Controller
+	2e14  Eaglelake HECI Controller
+	2e15  Eaglelake HECI Controller
+	2e16  Eaglelake PT IDER Controller
+	2e17  Eaglelake Serial KT Controller
+	2e20  Eaglelake DRAM Controller
+	2e21  Eaglelake PCI Express Root Port
+	2e22  Eaglelake Integrated Graphics Controller
+	2e23  Eaglelake HECI Controller
+	2e24  Eaglelake HECI Controller
+	2e25  Eaglelake HECI Controller
+	2e26  Eaglelake PT IDER Controller
+	2e27  Eaglelake Serial KT Controller
+	2e30  Eaglelake DRAM Controller
+	2e31  Eaglelake PCI Express Root Port
+	2e32  Eaglelake Integrated Graphics Controller
+	2e33  Eaglelake Integrated Graphics Controller
+	2e34  Eaglelake HECI Controller
+	2e35  Eaglelake HECI Controller
+	2e36  Eaglelake PT IDER Controller
+	2e37  Eaglelake Serial KT Controller
+	2e40  Eaglelake DRAM Controller
+	2e41  Eaglelake PCI Express Root Port
+	2e42  Eaglelake Integrated Graphics Controller
+	2e43  Eaglelake Integrated Graphics Controller
+	2e44  Eaglelake HECI Controller
+	2e45  Eaglelake HECI Controller
+	2e46  Eaglelake PT IDER Controller
+	2e47  Eaglelake Serial KT Controller
 	3200  GD31244 PCI-X SATA HBA
 		1775 c200  C2K onboard SATA host bus adapter
+	3313  IOP348 I/O Processor (SL8e) in IOC Mode SAS/SATA
+	331b  IOP348 I/O Processor (SL8x) in IOC Mode SAS/SATA
+	3331  IOC340 I/O Controller (VV8e) SAS/SATA
+	3339  IOC340 I/O Controller (VV8x) SAS/SATA
 	3340  82855PM Processor to I/O Controller
-		1014 0529  Thinkpad T41
+		1014 0529  ThinkPad T41
 		1025 005a  TravelMate 290
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
+		144d c005  X10 Laptop
 		144d c00c  P30/P35 notebook
 	3341  82855PM Processor to AGP Controller
 		144d c00c  P30 notebook
+	3363  IOC340 I/O Controller in IOC Mode SAS/SATA
+	33c3  IOP348 I/O Processor (SL8De) in IOC Mode SAS/SATA
+	33cb  IOP348 I/O Processor (SL8Dx) in IOC Mode SAS/SATA
+	3400  QuickPath Architecture I/O Hub to ESI Port
+	3401  QuickPath Architecture I/O Hub to ESI Port
+	3402  QuickPath Architecture I/O Hub to ESI Port
+	3403  QuickPath Architecture I/O Hub to ESI Port
+	3404  QuickPath Architecture I/O Hub to ESI Port
+	3405  QuickPath Architecture I/O Hub to ESI Port
+	3406  QuickPath Architecture I/O Hub to ESI Port
+	3407  QuickPath Architecture I/O Hub to ESI Port
+	3408  QuickPath Architecture I/O Hub PCI Express Root Port 1
+	3409  QuickPath Architecture I/O Hub PCI Express Root Port 2
+	340a  QuickPath Architecture I/O Hub PCI Express Root Port 3
+	340b  QuickPath Architecture I/O Hub PCI Express Root Port 4
+	340c  QuickPath Architecture I/O Hub PCI Express Root Port 5
+	340d  QuickPath Architecture I/O Hub PCI Express Root Port 6
+	340e  QuickPath Architecture I/O Hub PCI Express Root Port 7
+	340f  QuickPath Architecture I/O Hub PCI Express Root Port 8
+	3410  QuickPath Architecture I/O Hub PCI Express Root Port 9
+	3411  QuickPath Architecture I/O Hub PCI Express Root Port 10
+	3418  Quickpath Interconnect Physical Layer Port 0
+	3419  Quickpath Interconnect Physical Layer Port 1
+	3420  QuickPath Architecture I/O Hub PCI Express Root Port 0
+	3421  QuickPath Architecture I/O Hub PCI Express Root Port 0
+	3422  QuickPath Architecture I/O Hub GPIO and Scratch Pad Registers
+	3423  QuickPath Architecture I/O Hub Control Status and RAS Registers
+	3425  QuickPath Interconnect Physical and Link Layer Registers Port 0
+	3426  QuickPath Interconnect Routing and Protocol Layer Registers Port 0
+	3427  QuickPath Interconnect Physical and Link Layer Registers Port 1
+	3428  QuickPath Interconnect Routing and Protocol Layer Registers Port 1
+	3429  DMA Engine
+	342a  DMA Engine
+	342b  DMA Engine
+	342c  DMA Engine
+	342d  QuickPath Architecture I/O Hub I/OxAPIC Interrupt Controller
+	342e  QuickPath Architecture I/O Hub System Management Registers
+	342f  Trusted Execution Technology Registers
+	3430  DMA Engine
+	3431  DMA Engine
+	3432  DMA Engine
+	3433  DMA Engine
+	3438  QuickPath Architecture I/O Hub Throttle Registers
 	3500  6311ESB/6321ESB PCI Express Upstream Port
 	3501  6310ESB PCI Express Upstream Port
 	3504  6311ESB/6321ESB I/OxAPIC Interrupt Controller
@@ -12429,10 +14022,13 @@
 		1014 0513  ThinkPad A/T/X Series
 	3578  82830 830 Chipset Host Bridge
 	3580  82852/82855 GM/GME/PM/GMV Processor to I/O Controller
-		1014 055c  Thinkpad R50e model 1634
+		1014 055c  ThinkPad R50e
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
+		114a 0582  PC8
 		1734 1055  Amilo M1420
 		1775 10d0  V5D Single Board Computer
 		1775 ce90  CE9
@@ -12443,9 +14039,12 @@
 	3581  82852/82855 GM/GME/PM/GMV Processor to AGP Controller
 		1734 1055  Amilo M1420
 	3582  82852/855GM Integrated Graphics Device
-		1014 0562  Thinkpad R50e model 1634
+		1014 0562  ThinkPad R50e
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
+		114a 0582  PC8 integrated graphics
 		1775 10d0  V5D Single Board Computer VGA
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
@@ -12453,43 +14052,60 @@
 		e4bf 0cc9  CC9-SAMBA
 		e4bf 0cd2  CD2-BEBOP
 	3584  82852/82855 GM/GME/PM/GMV Processor to I/O Controller
-		1014 055d  Thinkpad R50e model 1634
+		1014 055d  ThinkPad R50e
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
+		114a 0582  PC8
 		1734 1055  Amilo M1420
 		1775 10d0  V5D Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10e0  PSL09 PrPMC
 	3585  82852/82855 GM/GME/PM/GMV Processor to I/O Controller
-		1014 055e  Thinkpad R50e model 1634
+		1014 055e  ThinkPad R50e
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
+		1028 018d  Inspiron 700m/710m
 		1028 0196  Inspiron 5160
+		114a 0582  PC8
 		1734 1055  Amilo M1420
 		1775 10d0  V5D Single Board Computer
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10e0  PSL09 PrPMC
 	3590  E7520 Memory Controller Hub
+		1014 02dd  eServer xSeries server mainboard
+		1028 016c  PowerEdge 1850
+		1028 016d  PowerEdge 2850
 		1028 019a  PowerEdge SC1425
-		1734 103e  Primergy RX300 S2
+		1734 103e  PRIMERGY RX/TX S2 series
+		1775 1100  CR11/VR11 Single Board Computer
 		4c53 10d0  Telum ASLP10 Processor AMC
 	3591  E7525/E7520 Error Reporting Registers
+		1014 02dd  eServer xSeries server mainboard
 		1028 0169  Precision 470
 		4c53 10d0  Telum ASLP10 Processor AMC
 	3592  E7320 Memory Controller Hub
 	3593  E7320 Error Reporting Registers
 	3594  E7520 DMA Controller
+		1775 1100  CR11/VR11 Single Board Computer
 		4c53 10d0  Telum ASLP10 Processor AMC
 	3595  E7525/E7520/E7320 PCI Express Port A
+		1775 1100  CR11/VR11 Single Board Computer
 	3596  E7525/E7520/E7320 PCI Express Port A1
 	3597  E7525/E7520 PCI Express Port B
+		1775 1100  CR11/VR11 Single Board Computer
 	3598  E7520 PCI Express Port B1
+		1775 1100  CR11/VR11 Single Board Computer
 	3599  E7520 PCI Express Port C
+		1775 1100  CR11/VR11 Single Board Computer
 	359a  E7520 PCI Express Port C1
 	359b  E7525/E7520/E7320 Extended Configuration Registers
+		1014 02dd  eServer xSeries server mainboard
 	359e  E7525 Memory Controller Hub
 		1028 0169  Precision 470
 	35b0  3100 Chipset Memory I/O Controller Hub
@@ -12498,74 +14114,184 @@
 	35b6  3100 Chipset PCI Express Port A
 	35b7  3100 Chipset PCI Express Port A1
 	35c8  3100 Extended Configuration Test Overflow Registers
-	3600  Server Memory Controller Hub
-	3604  Server PCI Express Port 1
-	3605  Server PCI Express Port 2
-	3606  Server PCI Express Port 3
-	3607  Server PCI Express Port 4
-	3608  Server PCI Express Port 5
-	3609  Server PCI Express Port 6
-	360a  Server PCI Express Port 7
-	360b  Server IOAT DMA Controller
-	360c  Server FSB Registers
-	360d  Server Snoop Filter Registers
-	360e  Server Reserved Registers
-	360f  Server FBD Branch 0 Registers
-	3610  Server FBD Branch 1 Registers
-	4000  Memory Controller Hub
-	4008  Memory Controller Hub
-	4010  Memory Controller Hub
-	4021  PCI Express Port 1
-	4022  PCI Express Port 2
-	4023  PCI Express Port 3
-	4024  PCI Express Port 4
-	4025  PCI Express Port 5
-	4026  PCI Express Port 6
-	4027  PCI Express Port 7
-	4028  PCI Express Port 8
-	4029  PCI Express Port 9
-	402d  IBIST Registers
-	402e  IBIST Registers
-	402f  DMA/DCA Engine
-	4030  FSB Registers
-	4032  I/OxAPIC
-	4035  FBD Registers
-	4036  FBD Registers
+	3600  7300 Chipset Memory Controller Hub
+	3604  7300 Chipset PCI Express Port 1
+	3605  7300 Chipset PCI Express Port 2
+	3606  7300 Chipset PCI Express Port 3
+	3607  7300 Chipset PCI Express Port 4
+	3608  7300 Chipset PCI Express Port 5
+	3609  7300 Chipset PCI Express Port 6
+	360a  7300 Chipset PCI Express Port 7
+	360b  7300 Chipset QuickData Technology Device
+	360c  7300 Chipset FSB Registers
+	360d  7300 Chipset Snoop Filter Registers
+	360e  7300 Chipset Debug and Miscellaneous Registers
+	360f  7300 Chipset FBD Branch 0 Registers
+	3610  7300 Chipset FBD Branch 1 Registers
+	3a00  ICH10 4 port SATA IDE Controller
+	3a02  ICH10 6 port SATA AHCI Controller
+	3a05  ICH10 SATA RAID Controller
+	3a06  ICH10 2 port SATA IDE Controller
+	3a14  ICH10 LPC Interface Controller
+	3a16  ICH10 LPC Interface Controller
+	3a18  ICH10 LPC Interface Controller
+	3a1a  ICH10 LPC Interface Controller
+	3a20  ICH10 4 port SATA IDE Controller
+	3a22  ICH10 6 port SATA AHCI Controller
+	3a25  ICH10 SATA RAID Controller
+	3a26  ICH10 2 port SATA IDE Controller
+	3a30  ICH10 SMBus Controller
+	3a32  ICH10 Thermal Subsystem
+	3a34  ICH10 USB UHCI Controller #1
+	3a35  ICH10 USB UHCI Controller #2
+	3a36  ICH10 USB UHCI Controller #3
+	3a37  ICH10 USB UHCI Controller #4
+	3a38  ICH10 USB UHCI Controller #5
+	3a39  ICH10 USB UHCI Controller #6
+	3a3a  ICH10 USB2 EHCI Controller #1
+	3a3c  ICH10 USB2 EHCI Controller #2
+	3a3e  ICH10 HD Audio Controller
+	3a40  ICH10 PCI Express Port 1
+	3a42  ICH10 PCI Express Port 2
+	3a44  ICH10 PCI Express Port 3
+	3a46  ICH10 PCI Express Port 4
+	3a48  ICH10 PCI Express Port 5
+	3a4a  ICH10 PCI Express Port 6
+	3a4c  ICH10 Gigabit Ethernet Controller
+	3a51  ICH10 VECI Controller
+	3a55  ICH10 Virtual SATA Controller
+	3a60  ICH10 SMBus Controller
+	3a62  ICH10 Thermal Subsystem
+	3a64  ICH10 USB UHCI Controller #1
+	3a65  ICH10 USB UHCI Controller #2
+	3a66  ICH10 USB UHCI Controller #3
+	3a67  ICH10 USB UHCI Controller #4
+	3a68  ICH10 USB UHCI Controller #5
+	3a69  ICH10 USB UHCI Controller #6
+	3a6a  ICH10 USB2 EHCI Controller #1
+	3a6c  ICH10 USB2 EHCI Controller #2
+	3a6e  ICH10 HD Audio Controller
+	3a70  ICH10 PCI Express Port 1
+	3a72  ICH10 PCI Express Port 2
+	3a74  ICH10 PCI Express Port 3
+	3a76  ICH10 PCI Express Port 4
+	3a78  ICH10 PCI Express Port 5
+	3a7a  ICH10 PCI Express Port 6
+	3a7c  ICH10 Gigabit Ethernet Controller
+	4000  5400 Chipset Memory Controller Hub
+	4001  5400 Chipset Memory Controller Hub
+	4003  5400 Chipset Memory Controller Hub
+	4021  5400 Chipset PCI Express Port 1
+	4022  5400 Chipset PCI Express Port 2
+	4023  5400 Chipset PCI Express Port 3
+	4024  5400 Chipset PCI Express Port 4
+	4025  5400 Chipset PCI Express Port 5
+	4026  5400 Chipset PCI Express Port 6
+	4027  5400 Chipset PCI Express Port 7
+	4028  5400 Chipset PCI Express Port 8
+	4029  5400 Chipset PCI Express Port 9
+	402d  5400 Chipset IBIST Registers
+	402e  5400 Chipset IBIST Registers
+	402f  5400 Chipset QuickData Technology Device
+	4030  5400 Chipset FSB Registers
+	4031  5400 Chipset CE/SF Registers
+	4032  5400 Chipset IOxAPIC
+	4035  5400 Chipset FBD Registers
+	4036  5400 Chipset FBD Registers
 	4220  PRO/Wireless 2200BG Network Connection
-		2731 8086  WLAN-Adapter
+		103c 0934  Compaq nw8240/nx8220
+		103c 12f6  Compaq nw8240/nx8220
+		8086 2721  Dell B130 laptop integrated WLAN
 		8086 2731  Samsung P35 integrated WLAN
 	4222  PRO/Wireless 3945ABG Network Connection
+		103c 135c  Compaq 6710b
+		103c 30c0  Compaq 6710b
 		8086 1005  PRO/Wireless 3945BG Network Connection
 		8086 1034  PRO/Wireless 3945BG Network Connection
 		8086 1044  PRO/Wireless 3945BG Network Connection
 	4223  PRO/Wireless 2915ABG Network Connection
+		1000 8086  mPCI 3B Americas/Europe ZZA
+		1001 8086  mPCI 3B Europe ZZE
+		1002 8086  mPCI 3B Japan ZZJ
+		1003 8086  mPCI 3B High-Band ZZH
 		1351 103c  Compaq NC6220
 	4224  PRO/Wireless 2915ABG Network Connection
 	4227  PRO/Wireless 3945ABG Network Connection
-		8086 1011  Thinkpad  X60s, R60e model 0657
+		8086 1011  ThinkPad R60e/X60s
 		8086 1014  PRO/Wireless 3945BG Network Connection
-	5001  Pro/DSL 2100 Modem
+	4229  PRO/Wireless 4965 AG or AGN Network Connection
+	4230  PRO/Wireless 4965 AG or AGN Network Connection
+		8086 1110  Lenovo ThinkPad T51
+		8086 1111  Lenovo ThinkPad T61
+	444e  Turbo Memory Controller
+	5001  LE80578
+	5002  LE80578 Graphics Processor Unit
+	5009  LE80578 Video Display Controller
+	500d  LE80578 Expansion Bus
+	500e  LE80578 UART Controller
+	500f  LE80578 General Purpose IO
+	5010  LE80578 I2C Controller
+	5012  LE80578 Serial Peripheral Interface Bus
+	5020  Tolapai Memory Controller Hub
+	5021  Tolapai DRAM Error Reporting Registers
+	5023  Tolapai EDMA Controller
+	5024  Tolapai PCI Express Port PEA0
+	5025  Tolapai PCI Express Port PEA1
+	5028  Tolapai S-ATA IDE
+	5029  Tolapai S-ATA AHCI
+	502a  Tolapai S-ATA RAID0/1
+	502b  Tolapai S-ATA Reserved
+	502c  Tolapai System Device
+	5030  Tolapai System Device
+	5031  Tolapai LPC Bus
+	5032  Tolapai SMBus Controller
+	5033  Tolapai USB 1.1 Controller
+	5035  Tolapai USB 2.0 Controller
+	5037  Tolapai PCI-PCI Bridge (transparent mode)
+	5039  Tolapai Controller Area Network (CAN) interface #1
+	503a  Tolapai Controller Area Network (CAN) interface #2
+	503b  Tolapai Synchronous Serial Port (SPP)
+	503c  Tolapai IEEE 1588 Hardware Assist
+	503d  Tolapai Local Expansion Bus
+	503e  Tolapai Global Control Unit (GCU)
+	503f  Tolapai System Device
+	5040  Tolapai Gigabit Ethernet MAC
+	5041  Tolapai Gigabit Ethernet MAC
+	5042  Tolapai Gigabit Ethernet MAC
+	5043  Tolapai Gigabit Ethernet MAC
+	5044  Tolapai Gigabit Ethernet MAC
+	5045  Tolapai Gigabit Ethernet MAC
+	5046  Tolapai Gigabit Ethernet MAC
+	5047  Tolapai Gigabit Ethernet MAC
+	5048  Tolapai Gigabit Ethernet MAC
+	5049  Tolapai Gigabit Ethernet MAC
+	504a  Tolapai Gigabit Ethernet MAC
+	504b  Tolapai Gigabit Ethernet MAC
+	504c  Tolapai TDM
 	5200  EtherExpress PRO/100 Intelligent Server
 	5201  EtherExpress PRO/100 Intelligent Server
 		8086 0001  EtherExpress PRO/100 Server Ethernet Adapter
-	530d  80310 IOP [IO Processor]
-	65c0  Memory Controller Hub
-	65e2  PCI Express x4 Port 2
-	65e3  PCI Express x4 Port 3
-	65e4  PCI Express x4 Port 4
-	65e5  PCI Express x4 Port 5
-	65e6  PCI Express x4 Port 6
-	65e7  PCI Express x4 Port 7
-	65f0  FSB Registers
-	65f1  Reserved Registers
-	65f3  Reserved Registers
-	65f5  DDR Channel 0 Registers
-	65f6  DDR Channel 1 Registers
-	65f7  PCI Express x8 Port 2-3
-	65f8  PCI Express x8 Port 4-5
-	65f9  PCI Express x8 Port 6-7
-	65fa  PCI Express x16 Port 4-7
-	65ff  DMA Engine
+	530d  80310 (IOP) IO Processor
+	65c0  5100 Chipset Memory Controller Hub
+	65e2  5100 Chipset PCI Express x4 Port 2
+	65e3  5100 Chipset PCI Express x4 Port 3
+	65e4  5100 Chipset PCI Express x4 Port 4
+	65e5  5100 Chipset PCI Express x4 Port 5
+	65e6  5100 Chipset PCI Express x4 Port 6
+	65e7  5100 Chipset PCI Express x4 Port 7
+	65f0  5100 Chipset FSB Registers
+		1028 020f  PowerEdge R300
+		1028 0210  PowerEdge T300
+	65f1  5100 Chipset Reserved Registers
+		1028 0210  PowerEdge T300
+	65f3  5100 Chipset Reserved Registers
+	65f5  5100 Chipset DDR Channel 0 Registers
+	65f6  5100 Chipset DDR Channel 1 Registers
+	65f7  5100 Chipset PCI Express x8 Port 2-3
+	65f8  5100 Chipset PCI Express x8 Port 4-5
+	65f9  5100 Chipset PCI Express x8 Port 6-7
+	65fa  5100 Chipset PCI Express x16 Port 4-7
+	65ff  5100 Chipset DMA Engine
 	7000  82371SB PIIX3 ISA [Natoma/Triton II]
 	7010  82371SB PIIX3 IDE [Natoma/Triton II]
 	7020  82371SB PIIX3 USB [Natoma/Triton II]
@@ -12574,24 +14300,26 @@
 	7051  PB 642365-003 (Business Video Conferencing Card)
 	7100  430TX - 82439TX MTXC
 	7110  82371AB/EB/MB PIIX4 ISA
-		15ad 1976  virtualHW v3
+		15ad 1976  Virtual Machine Chipset
 	7111  82371AB/EB/MB PIIX4 IDE
-		15ad 1976  virtualHW v3
+		15ad 1976  Virtual Machine Chipset
 	7112  82371AB/EB/MB PIIX4 USB
-		15ad 1976  virtualHW v3
+		15ad 1976  Virtual Machine Chipset
 	7113  82371AB/EB/MB PIIX4 ACPI
-		15ad 1976  virtualHW v3
-	7120  82810 GMCH [Graphics Memory Controller Hub]
+		15ad 1976  Virtual Machine Chipset
+	7120  82810 GMCH (Graphics Memory Controller Hub)
 		4c53 1040  CL7 mainboard
 		4c53 1060  PC7 mainboard
-	7121  82810 CGC [Chipset Graphics Controller]
+	7121  82810 (CGC) Chipset Graphics Controller
 		4c53 1040  CL7 mainboard
 		4c53 1060  PC7 mainboard
 		8086 4341  Cayman (CA810) Mainboard
-	7122  82810 DC-100 GMCH [Graphics Memory Controller Hub]
-	7123  82810 DC-100 CGC [Chipset Graphics Controller]
-	7124  82810E DC-133 GMCH [Graphics Memory Controller Hub]
-	7125  82810E DC-133 CGC [Chipset Graphics Controller]
+	7122  82810 DC-100 (GMCH) Graphics Memory Controller Hub
+	7123  82810 DC-100 (CGC) Chipset Graphics Controller
+	7124  82810E DC-133 (GMCH) Graphics Memory Controller Hub
+		1028 00b4  OptiPlex GX110
+	7125  82810E DC-133 (CGC) Chipset Graphics Controller
+		1028 00b4  OptiPlex GX110
 	7126  82810 DC-133 System and Graphics Controller
 	7128  82810-M DC-100 System and Graphics Controller
 	712a  82810-M DC-133 System and Graphics Controller
@@ -12601,8 +14329,9 @@
 		0e11 0500  Armada 1750 Laptop System Chipset
 		0e11 b110  Armada M700/E500
 		1028 008e  PowerEdge 1300 mainboard
+		1043 803b  CUBX-L/E Mainboard
 		1179 0001  Toshiba Tecra 8100 Laptop System Chipset
-		15ad 1976  virtualHW v3
+		15ad 1976  Virtual Machine Chipset
 		4c53 1050  CT7 mainboard
 		4c53 1051  CE7 mainboard
 	7191  440BX/ZX/DX - 82443BX/ZX/DX AGP bridge
@@ -12610,6 +14339,7 @@
 	7192  440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled)
 		0e11 0460  Armada 1700 Laptop System Chipset
 		4c53 1000  CC7/CR7/CP7/VC7/VP7/VR7 mainboard
+		8086 7190  Dell PowerEdge 350
 	7194  82440MX Host Bridge
 		1033 0000  Versa Note Vxi
 		4c53 10a0  CA3/CR3 mainboard
@@ -12642,6 +14372,22 @@
 		8086 0000  Terminator 2x/i
 		8086 0100  Intel740 Graphics Accelerator
 	8002  Trusted Execution Technology Registers
+	8003  Trusted Execution Technology Registers
+	8100  System Controller Hub (SCH Poulsbo)
+	8108  System Controller Hub (SCH Poulsbo) Graphics Controller
+	8110  System Controller Hub (SCH Poulsbo) PCI Express Port 1
+	8112  System Controller Hub (SCH Poulsbo) PCI Express Port 2
+	8114  System Controller Hub (SCH Poulsbo) USB UHCI #1
+	8115  System Controller Hub (SCH Poulsbo) USB UHCI #2
+	8116  System Controller Hub (SCH Poulsbo) USB UHCI #3
+	8117  System Controller Hub (SCH Poulsbo) USB EHCI #1
+	8118  System Controller Hub (SCH Poulsbo) USB Client Controller
+	8119  System Controller Hub (SCH Poulsbo) LPC Bridge
+	811a  System Controller Hub (SCH Poulsbo) IDE Controller
+	811b  System Controller Hub (SCH Poulsbo) HD Audio Controller
+	811c  System Controller Hub (SCH Poulsbo) SDIO Controller #1
+	811d  System Controller Hub (SCH Poulsbo) SDIO Controller #2
+	811e  System Controller Hub (SCH Poulsbo) SDIO Controller #3
 	84c4  450KX/GX [Orion] - 82454KX/GX PCI bridge
 	84c5  450KX/GX [Orion] - 82453KX/GX Memory controller
 	84ca  450NX - 82451NX Memory & I/O Controller
@@ -12862,6 +14608,8 @@
 		15d9 9005  Onboard SCSI Host Adapter
 		8086 3411  SDS2 Mainboard
 	0241  Serial ATA II RAID 1420SA
+	0242  Serial ATA II RAID 1220SA
+	0243  Serial ATA II RAID 1430SA
 	0250  ServeRAID Controller
 		1014 0279  ServeRAID-xx
 		1014 028c  ServeRAID-xx
@@ -12876,6 +14624,14 @@
 		1028 0287  PowerEdge Expandable RAID Controller 320/DC
 		1028 0291  CERC SATA RAID 2 PCI SATA 6ch (DellCorsair)
 		103c 3227  AAR-2610SA
+		108e 0286  STK RAID INT
+		108e 0287  STK RAID EXT
+		108e 7aac  STK RAID REM
+		108e 7aae  STK RAID EX
+		15d9 02b5  AOC-USAS-S4i
+		15d9 02b6  AOC-USAS-S8i
+		15d9 02c9  AOC-USAS-S4iR
+		15d9 02ca  AOC-USAS-S8iR
 		17aa 0286  Legend S220 (Legend Crusader)
 		17aa 0287  Legend S230 (Legend Vulcan)
 		9005 0285  2200S (Vulcan)
@@ -12920,6 +14676,10 @@
 		9005 02c6  ICP ICP5165SL
 		9005 02c7  3085
 		9005 02c8  ICP5805BL
+		9005 02ce  51245
+		9005 02cf  51645
+		9005 02d0  52445
+		9005 02d1  5405
 	0286  AAC-RAID (Rocket)
 		1014 034d  8s
 		1014 9540  ServeRAID 8k/8k-l4
@@ -12952,6 +14712,8 @@
 	0412  AIC-9410W SAS (Razor HBA non-RAID)
 		9005 0412  ASC-48300 (Spirit non-RAID)
 		9005 0413  ASC-58300 (Oakmont non-RAID)
+	0415  ASC-58300 SAS (Razor-External HBA RAID)
+	0416  ASC-58300 SAS (Razor-External HBA non-RAID)
 	041e  AIC-9410W SAS (Razor ASIC non-RAID)
 	041f  AIC-9410W SAS (Razor ASIC RAID)
 		9005 041f  AIC-9410W SAS (Razor ASIC RAID)
@@ -12966,6 +14728,7 @@
 		1014 02c2  PCI-X DDR 3Gb SAS RAID Adapter (572B/572D)
 	0503  Scamp chipset SCSI controller
 		1014 02bf  Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E)
+		1014 02c3  PCI-X DDR 3Gb SAS RAID Adapter (572F)
 		1014 02d5  Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F)
 	0910  AUA-3100B
 	091e  AUA-3100B
@@ -12985,6 +14748,7 @@
 		9005 0045  ASC-29320LPE PCIe U320
 	801c  ASC-39320D U320
 	801d  AIC-7902B U320
+		1014 02cc  ServeRAID 7e
 	801e  AIC-7901A U320
 	801f  AIC-7902 U320
 		1734 1011  Primergy RX300
@@ -13000,6 +14764,7 @@
 	8097  ASC-29320ALP U320 w/HostRAID
 	809c  ASC-39320D(B) U320 w/HostRAID
 	809d  AIC-7902(B) U320 w/HostRAID
+		1014 02cc  ServeRAID 7e
 	809e  AIC-7901A U320 w/HostRAID
 	809f  AIC-7902 U320 w/HostRAID
 907f  Atronics
@@ -13060,13 +14825,15 @@
 	0101  DeepSea 1 High Speed Stereo Vision Frame Grabber
 	0200  DeepSea 2 High Speed Stereo Vision Frame Grabber
 d161  Digium, Inc.
-	0205  Wildcard TE205P
-	0210  Wildcard TE210P
-	0405  Wildcard TE405P Quad-Span togglable E1/T1/J1 card 5.0v
-	0406  Wildcard TE406P Quad-Span togglable E1/T1/J1 echo cancellation card 5.0v
-	0410  Wildcard TE410P Quad-Span togglable E1/T1/J1 card 3.3v
-	0411  Wildcard TE411P Quad-Span togglable E1/T1/J1 echo cancellation card 3.3v
-	2400  Wildcard TDM2400P
+	0120  Wildcard TE120P single-span T1/E1/J1 card
+	0205  Wildcard TE205P dual-span T1/E1/J1 card 5.0V
+	0210  Wildcard TE210P dual-span T1/E1/J1 card 3.3V
+	0405  Wildcard TE405P quad-span T1/E1/J1 card 5.0V
+	0410  Wildcard TE410P quad-span T1/E1/J1 card 3.3V
+	0800  Wildcard TDM800P 8-port analog card
+	2400  Wildcard TDM2400P 24-port analog card
+	3400  Wildcard TC400P transcoder base card
+	b410  Wildcard B410 quad-BRI card
 d4d4  Dy4 Systems Inc
 	0601  PCI Mezzanine Card
 d531  I+ME ACTIA GmbH
@@ -13167,7 +14934,7 @@
 	04  RAID bus controller
 	05  ATA controller
 		20  ADMA single stepping
-		40  ADMA continuous operation
+		30  ADMA continuous operation
 	06  SATA controller
 		00  Vendor specific
 		01  AHCI 1.0
@@ -13179,11 +14946,13 @@
 	02  FDDI network controller
 	03  ATM network controller
 	04  ISDN controller
+	05  WorldFip controller
+	06  PICMG controller
 	80  Network controller
 C 03  Display controller
 	00  VGA compatible controller
-		00  VGA
-		01  8514
+		00  VGA controller
+		01  8514 controller
 	01  XGA compatible controller
 	02  3D controller
 	80  Display controller
@@ -13238,6 +15007,8 @@
 		02  Hayes/16550
 		03  Hayes/16650
 		04  Hayes/16750
+	04  GPIB controller
+	05  Smard Card controller
 	80  Communication controller
 C 08  Generic system peripheral
 	00  PIC
@@ -13258,6 +15029,7 @@
 		00  Generic
 		01  ISA RTC
 	04  PCI Hot-plug controller
+	05  SD Host controller
 	80  System peripheral
 C 09  Input device controller
 	00  Keyboard controller
@@ -13294,16 +15066,23 @@
 	04  Fibre Channel
 	05  SMBus
 	06  InfiniBand
+	07  IPMI SMIC interface
+	08  SERCOS interface
+	09  CANBUS
 C 0d  Wireless controller
 	00  IRDA controller
 	01  Consumer IR controller
 	10  RF controller
+	11  Bluetooth
+	12  Broadband
+	20  802.1a controller
+	21  802.1b controller
 	80  Wireless controller
 C 0e  Intelligent controller
 	00  I2O
 C 0f  Satellite communications controller
-	00  Satellite TV controller
-	01  Satellite audio communication controller
+	01  Satellite TV controller
+	02  Satellite audio communication controller
 	03  Satellite voice communication controller
 	04  Satellite data communication controller
 C 10  Encryption controller
@@ -13314,4 +15093,5 @@
 	00  DPIO module
 	01  Performance counters
 	10  Communication synchronizer
+	20  Signal processing management
 	80  Signal processing controller
Index: xc/programs/Xserver/hw/xfree86/etc/pcitweak.c
diff -u xc/programs/Xserver/hw/xfree86/etc/pcitweak.c:1.19 xc/programs/Xserver/hw/xfree86/etc/pcitweak.c:1.23
--- xc/programs/Xserver/hw/xfree86/etc/pcitweak.c:1.19	Fri Oct 14 08:16:51 2005
+++ xc/programs/Xserver/hw/xfree86/etc/pcitweak.c	Mon Jun 23 07:42:22 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/pcitweak.c,v 1.19 2005/10/14 15:16:51 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/pcitweak.c,v 1.23 2008/06/23 14:42:22 tsi Exp $ */
 /*
  * Copyright (c) 1999-2002 by The XFree86 Project, Inc.
  * All rights reserved.
@@ -88,7 +88,7 @@
 {
     int c;
     PCITAG tag;
-    int bus, device, func;
+    int bus = 0, device = 0, func = 0;
     Bool list = FALSE, rd = FALSE, wr = FALSE;
     Bool byte = FALSE, halfword = FALSE;
     int offset = 0;
Index: xc/programs/Xserver/hw/xfree86/etc/scanpci.c
diff -u xc/programs/Xserver/hw/xfree86/etc/scanpci.c:3.99 xc/programs/Xserver/hw/xfree86/etc/scanpci.c:3.102
--- xc/programs/Xserver/hw/xfree86/etc/scanpci.c:3.99	Wed May 30 08:50:40 2007
+++ xc/programs/Xserver/hw/xfree86/etc/scanpci.c	Mon Jun 23 07:42:22 2008
@@ -1,3 +1,4 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.102 2008/06/23 14:42:22 tsi Exp $ */
 /*
  * Copyright 2000 by Egbert Eich
  * Copyright 1995 by Robin Cutshaw <robin@XFree86.Org>
@@ -23,7 +24,6 @@
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.99 2007/05/30 15:50:40 tsi Exp $ */
 
 #include <X11/X.h>
 #include "os.h"
@@ -340,6 +340,9 @@
     /* Print the rest */
     for (;  i < limit;  i += 4) {
 	CARD32 pcireg = pciReadLong(pcr->tag, i);
+
+	if ((pcireg == (CARD32)(-1L)) && (i == 256))
+	    break;
 	if (!(i & 15))
 	    printf("    0x%03x: ", i);
 	if (!(i & 7))
@@ -657,7 +660,7 @@
 	       pcr->pci_br_rom & 0x1 ? "" : "not ");
     }
 
-    printf("  %sFAST_B2B %sSEC_BUS_RST %sM_ABRT %sVGA_EN %sISA_EN"
+    printf("  %sFAST_B2B %sSEC_BUS_RST %sM_ABRT %sVGA16 %sVGA_EN %sISA_EN"
 	   " %sSERR_EN %sPERR_EN\n",
 	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_FAST_B2B_EN) ?
 		"" : "NO_",
@@ -665,6 +668,8 @@
 		"" : "NO_",
 	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN) ?
 		"" : "NO_",
+	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_VGA16_EN) ?
+		"" : "NO_",
 	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_VGA_EN) ?
 		"" : "NO_",
 	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_ISA_EN) ?
@@ -737,7 +742,7 @@
 	}
     }
 
-    printf("  %s16BIT_INT %sSEC_BUS_RST %sM_ABRT %sVGA_EN %sISA_EN"
+    printf("  %s16BIT_INT %sSEC_BUS_RST %sM_ABRT %sVGA16 %sVGA_EN %sISA_EN"
 	   " %sSERR_EN %sPERR_EN %sPOST_WRITES\n",
 	   (pcr->pci_bridge_control & PCI_CB_BRIDGE_CTL_16BIT_INT) ?
 		"" : "NO_",
@@ -745,6 +750,8 @@
 		"" : "NO_",
 	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN) ?
 		"" : "NO_",
+	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_VGA16_EN) ?
+		"" : "NO_",
 	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_VGA_EN) ?
 		"" : "NO_",
 	   (pcr->pci_bridge_control & PCI_PCI_BRIDGE_ISA_EN) ?
Index: xc/programs/Xserver/hw/xfree86/etc/spaceclean
diff -u xc/programs/Xserver/hw/xfree86/etc/spaceclean:1.1 xc/programs/Xserver/hw/xfree86/etc/spaceclean:1.2
--- xc/programs/Xserver/hw/xfree86/etc/spaceclean:1.1	Sat Jan 28 19:09:51 2006
+++ xc/programs/Xserver/hw/xfree86/etc/spaceclean	Mon Dec 31 16:40:13 2007
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# Copyright 2005 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+# Copyright 2005 through 2008 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
@@ -38,7 +38,7 @@
 #       - This script assumes tab stops at every eight characters.
 #
 
-echo '$XFree86: xc/programs/Xserver/hw/xfree86/etc/spaceclean,v 1.1 2006/01/29 03:09:51 tsi Exp $' | \
+echo '$XFree86: xc/programs/Xserver/hw/xfree86/etc/spaceclean,v 1.2 2008/01/01 00:40:13 tsi Exp $' | \
  awk "{print \""`basename $0`":  Version \" \$3}"
 
 if [ -n "${DEBUG}" ]; then
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist:1.7 xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist:1.9
--- xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist:1.7	Fri Dec  5 07:04:07 2003
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist	Wed Dec 10 08:32:03 2008
@@ -1,24 +1,19 @@
 #!/bin/sh
 #
-# $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist,v 1.7 2003/12/05 15:04:07 dawes Exp $
+# $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist,v 1.9 2008/12/10 16:32:03 tsi Exp $
 #
 
 Usage()
 {
-  echo "`basename $0` [-l] [-t type] [prefix] from-dir to-dir"
+  echo "`basename $0` [-t type] [prefix] from-dir to-dir"
   exit 1
 }
 
 args=
-createlist=NO
 type=list
 
 while [ $# != 0 ]; do
   case $1 in
-  -l)
-    createlist=YES
-    shift
-    ;;
   -t)
     shift
     type=$1
@@ -51,6 +46,16 @@
 FROMDIR=$1
 TODIR=$2
 
+if [ "`echo $FROMDIR | cut -b 1`" != "/" ]; then
+  echo $FROMDIR is not an absolute path
+  exit 2
+fi
+
+if [ "`echo $TODIR | cut -b 1`" != "/" ]; then
+  echo $TODIR is not an absolute path
+  exit 2
+fi
+
 if [ ! -d $FROMDIR ]; then
   echo No such dir $FROMDIR
   exit 2
@@ -69,40 +74,11 @@
 EXTRASFILE=extras
 TAR="gnu-tar"
 TAROPTS="-c -v -z"
-TARLOPTS="-t -v -z -i"
-CKSUM=md5
-SUMFILE=SUMS.md5
-LISTFILE=FILES
-
-GenList()
-{
-  (cd $TODIR/$BINDIR
-    rm -f $SUMFILE $LISTFILE
-    for i in *.tgz; do
-      echo $i
-      $CKSUM $i >> $SUMFILE
-      echo $i >> $LISTFILE
-      echo "------------" >> $LISTFILE
-      $TAR $TARLOPTS -f $i >> $LISTFILE
-      echo "" >> $LISTFILE
-    done
-    if [ -f $TODIR/$EXTRASFILE ]; then
-      for i in `cat $TODIR/$EXTRASFILE`; do
-	$CKSUM `basename $i` >> $SUMFILE
-      done
-    fi
-  )
-}
 
 if [ ! -d $TODIR/$BINDIR ]; then
   mkdir $TODIR/$BINDIR
 fi
 
-if [ $createlist = YES ]; then
-  GenList
-  exit 0;
-fi
-
 # Make sure all directories in $FROMDIR have permissions 755
 find $FROMDIR -type d | xargs chmod 755
 
@@ -146,6 +122,4 @@
   )
 done
 
-# GenList
-
 exit 0
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ix86/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ix86/bin-list:1.11 xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ix86/bin-list:1.13
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ix86/bin-list:1.11	Sun Jan 30 19:21:22 2005
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ix86/bin-list	Tue Dec  9 10:04:29 2008
@@ -26,13 +26,13 @@
 lib/libXRes.dylib
 lib/libXaw.6.1.dylib
 lib/libXaw.6.dylib
-lib/libXaw.7.0.dylib
+lib/libXaw.7.1.dylib
 lib/libXaw.7.dylib
 lib/libXaw.dylib
 lib/libXcursor.1.0.dylib
 lib/libXcursor.1.dylib
 lib/libXcursor.dylib
-lib/libXext.6.4.dylib
+lib/libXext.6.5.dylib
 lib/libXext.6.dylib
 lib/libXext.dylib
 lib/libXfont.1.5.dylib
@@ -73,7 +73,7 @@
 lib/libXss.1.0.dylib
 lib/libXss.1.dylib
 lib/libXss.dylib
-lib/libXt.6.0.dylib
+lib/libXt.6.1.dylib
 lib/libXt.6.dylib
 lib/libXt.dylib
 lib/libXtst.6.1.dylib
@@ -88,12 +88,6 @@
 lib/libXvMC.1.0.dylib
 lib/libXvMC.1.dylib
 lib/libXvMC.dylib
-lib/libXxf86misc.1.1.dylib
-lib/libXxf86misc.1.dylib
-lib/libXxf86misc.dylib
-lib/libXxf86vm.1.0.dylib
-lib/libXxf86vm.1.dylib
-lib/libXxf86vm.dylib
 lib/libdmx.1.0.dylib
 lib/libdmx.1.dylib
 lib/libdmx.dylib
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ppc/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ppc/bin-list:1.11 xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ppc/bin-list:1.13
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ppc/bin-list:1.11	Sun Jan 30 19:21:22 2005
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Darwin-ppc/bin-list	Tue Dec  9 10:04:29 2008
@@ -26,13 +26,13 @@
 lib/libXRes.dylib
 lib/libXaw.6.1.dylib
 lib/libXaw.6.dylib
-lib/libXaw.7.0.dylib
+lib/libXaw.7.1.dylib
 lib/libXaw.7.dylib
 lib/libXaw.dylib
 lib/libXcursor.1.0.dylib
 lib/libXcursor.1.dylib
 lib/libXcursor.dylib
-lib/libXext.6.4.dylib
+lib/libXext.6.5.dylib
 lib/libXext.6.dylib
 lib/libXext.dylib
 lib/libXfont.1.5.dylib
@@ -73,7 +73,7 @@
 lib/libXss.1.0.dylib
 lib/libXss.1.dylib
 lib/libXss.dylib
-lib/libXt.6.0.dylib
+lib/libXt.6.1.dylib
 lib/libXt.6.dylib
 lib/libXt.dylib
 lib/libXtst.6.1.dylib
@@ -88,12 +88,6 @@
 lib/libXvMC.1.0.dylib
 lib/libXvMC.1.dylib
 lib/libXvMC.dylib
-lib/libXxf86misc.1.1.dylib
-lib/libXxf86misc.1.dylib
-lib/libXxf86misc.dylib
-lib/libXxf86vm.1.0.dylib
-lib/libXxf86vm.1.dylib
-lib/libXxf86vm.dylib
 lib/libdmx.1.0.dylib
 lib/libdmx.1.dylib
 lib/libdmx.dylib
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list:1.17 xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list:1.18
--- xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list:1.17	Thu Mar 30 15:19:44 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list	Tue Dec  9 10:04:29 2008
@@ -14,7 +14,7 @@
 lib/libXaw.so.6.1
 lib/libXaw.so.7.1
 lib/libXcursor.so.1.0
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXfont.so.1.5
 lib/libXfontcache.so.1.2
 lib/libXft.so.1.1
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-amd64/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-amd64/bin-list:1.5 xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-amd64/bin-list:1.6
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-amd64/bin-list:1.5	Mon Apr  3 08:59:56 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-amd64/bin-list	Tue Dec  9 10:04:29 2008
@@ -41,7 +41,7 @@
 lib64/libXcursor.so.1.0
 lib64/libXcursor.so.1
 lib64/libXcursor.so
-lib64/libXext.so.6.4
+lib64/libXext.so.6.5
 lib64/libXext.so.6
 lib64/libXext.so
 lib64/libXfont.so.1.5
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list:1.19 xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list:1.20
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list:1.19	Thu Mar 30 15:19:44 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list	Tue Dec  9 10:04:29 2008
@@ -41,7 +41,7 @@
 lib/libXcursor.so.1.0
 lib/libXcursor.so.1
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so.6
 lib/libXext.so
 lib/libXfont.so.1.5
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def:1.8 xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def:1.9
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def:1.8	Tue Jun  5 16:00:40 2001
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def	Sat Sep 15 17:14:43 2007
@@ -1,16 +1,12 @@
 /*
  * Host.def for building Linux/alpha bindists
  *
- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def,v 1.8 2001/06/05 23:00:40 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def,v 1.9 2007/09/16 00:14:43 tsi Exp $
  */
 
 #define InstallEmptyHostDef
 #define BuildBindist
 
-/* Need to have glide 3 installed, where available */
-
-#define HasGlide3 YES
-
 #define BuildXF86DRI YES
 
 #define ForceNormalLib YES
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list:1.17 xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list:1.18
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list:1.17	Thu Mar 30 15:19:44 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list	Tue Dec  9 10:04:29 2008
@@ -44,7 +44,7 @@
 lib/libXcursor.so.1.0
 lib/libXcursor.so.1
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so.6
 lib/libXext.so
 lib/libXfont.so.1.5
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def:1.9 xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def:1.10
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def:1.9	Tue Jun  5 16:00:41 2001
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def	Sat Sep 15 17:14:43 2007
@@ -1,20 +1,12 @@
 /*
  * Host.def for building Linux/ix86 bindists
  *
- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def,v 1.9 2001/06/05 23:00:41 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def,v 1.10 2007/09/16 00:14:43 tsi Exp $
  */
 
 #define InstallEmptyHostDef
 #define BuildBindist
 
-
-/* Need to have glide 2 and glide 3 installed, where available */
-
-#define HasGlide2 YES
-
-/* May need to turn this off for libc5 builds */
-#define HasGlide3 YES
-
 #define BuildXF86DRI YES
 
 #define ForceNormalLib YES
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list:1.18 xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list:1.19
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list:1.18	Thu Mar 30 15:19:44 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list	Tue Dec  9 10:04:29 2008
@@ -41,7 +41,7 @@
 lib/libXcursor.so.1.0
 lib/libXcursor.so.1
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so.6
 lib/libXext.so
 lib/libXfont.so.1.5
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/bin-list:1.15 xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/bin-list:1.16
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/bin-list:1.15	Thu Mar 30 15:19:45 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/bin-list	Tue Dec  9 10:04:29 2008
@@ -41,7 +41,7 @@
 lib/libXcursor.so.1.0
 lib/libXcursor.so.1
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so.6
 lib/libXext.so
 lib/libXfont.so.1.5
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list:1.15 xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list:1.16
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list:1.15	Thu Mar 30 15:19:45 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list	Tue Dec  9 10:04:29 2008
@@ -41,7 +41,7 @@
 lib/libXcursor.so.1.0
 lib/libXcursor.so.1
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so.6
 lib/libXext.so
 lib/libXfont.so.1.5
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/bin-list:1.14 xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/bin-list:1.15
--- xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/bin-list:1.14	Thu Mar 30 15:19:45 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/bin-list	Tue Dec  9 10:04:29 2008
@@ -13,7 +13,7 @@
 lib/libXaw.so.6.1
 lib/libXaw.so.7.1
 lib/libXcursor.so.1.0
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXfont.so.1.5
 lib/libXfontcache.so.1.2
 lib/libXft.so.1.1
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list:1.19 xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list:1.21
--- xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list:1.19	Thu Mar 30 15:19:45 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list	Tue Dec  9 10:04:30 2008
@@ -33,6 +33,9 @@
 lib/libXTrap.so
 lib/libXTrap.so.6
 lib/libXTrap.so.6.4
+lib/libXau.so
+lib/libXau.so.6
+lib/libXau.so.6.0
 lib/libXaw.so
 lib/libXaw.so.6
 lib/libXaw.so.6.1
@@ -41,9 +44,12 @@
 lib/libXcursor.so
 lib/libXcursor.so.1
 lib/libXcursor.so.1.0
+lib/libXdmcp.so
+lib/libXdmcp.so.6
+lib/libXdmcp.so.6.0
 lib/libXext.so
 lib/libXext.so.6
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXfont.so
 lib/libXfont.so.1
 lib/libXfont.so.1.5
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-aout-ix86/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-aout-ix86/bin-list:1.5 xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-aout-ix86/bin-list:1.6
--- xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-aout-ix86/bin-list:1.5	Thu Mar 30 15:19:45 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-aout-ix86/bin-list	Tue Dec  9 10:04:30 2008
@@ -15,7 +15,7 @@
 lib/libXaw.so.6.1
 lib/libXaw.so.7.1
 lib/libXcursor.so.1.0
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXfont.so.1.5
 lib/libXfontcache.so.1.2
 lib/libXft.so.1.1
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list:1.23 xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list:1.24
--- xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list:1.23	Sun Apr 23 21:06:05 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list	Tue Dec  9 10:04:30 2008
@@ -15,7 +15,7 @@
 lib/libXaw.so.7.1
 lib/libXaw.so.8.1
 lib/libXcursor.so.1.0
-lib/libXext.so.7.0
+lib/libXext.so.7.1
 lib/libXfont.so.2.0
 lib/libXfontcache.so.2.0
 lib/libXft.so.1.2
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list:1.18 xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list:1.19
--- xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list:1.18	Thu Mar 30 15:19:46 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list	Tue Dec  9 10:04:30 2008
@@ -25,7 +25,7 @@
 lib/libXaw.so
 lib/libXcursor.so.1.0
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so
 lib/libXfont.so.1.5
 lib/libXfont.so
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list:1.18 xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list:1.19
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list:1.18	Thu Mar 30 15:19:46 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list	Tue Dec  9 10:04:30 2008
@@ -25,7 +25,7 @@
 lib/libXaw.so
 lib/libXcursor.so.1.0
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so
 lib/libXfont.so.1.5
 lib/libXfont.so
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris-sparc/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris-sparc/bin-list:1.2 xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris-sparc/bin-list:1.3
--- xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris-sparc/bin-list:1.2	Thu Mar 30 15:19:46 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris-sparc/bin-list	Tue Dec  9 10:04:30 2008
@@ -25,7 +25,7 @@
 lib/libXaw.so
 lib/libXcursor.so.1.0
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so
 lib/libXfont.so.1.5
 lib/libXfont.so
Index: xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list
diff -u xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list:1.18 xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list:1.19
--- xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list:1.18	Thu Mar 30 15:19:46 2006
+++ xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list	Tue Dec  9 10:04:30 2008
@@ -25,7 +25,7 @@
 lib/libXaw.so
 lib/libXcursor.so.1.0
 lib/libXcursor.so
-lib/libXext.so.6.4
+lib/libXext.so.6.5
 lib/libXext.so
 lib/libXfont.so.1.5
 lib/libXfont.so
Index: xc/programs/Xserver/hw/xfree86/int10/generic.c
diff -u xc/programs/Xserver/hw/xfree86/int10/generic.c:1.31 xc/programs/Xserver/hw/xfree86/int10/generic.c:1.33
--- xc/programs/Xserver/hw/xfree86/int10/generic.c:1.31	Tue Aug 30 09:26:48 2005
+++ xc/programs/Xserver/hw/xfree86/int10/generic.c	Thu Apr  3 07:50:15 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/generic.c,v 1.31 2005/08/30 16:26:48 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/generic.c,v 1.33 2008/04/03 14:50:15 tsi Exp $ */
 /*
  *                   XFree86 int10 module
  *   execute BIOS int 10h calls in x86 real mode environment
@@ -51,7 +51,7 @@
 static void MapVRam(xf86Int10InfoPtr pInt);
 static void UnmapVRam(xf86Int10InfoPtr pInt);
 #ifdef _PC
-#define GET_HIGH_BASE(x) (((V_BIOS + size + getpagesize() - 1)/getpagesize()) \
+#define GET_HIGH_BASE(x) (((V_BIOS + (x) + getpagesize() - 1)/getpagesize()) \
                              * getpagesize())
 #endif
 
@@ -77,7 +77,7 @@
     
 #ifdef _PC
     int size;
-    CARD32 cs;
+    unsigned int cs;
 #endif
 
     screen = (xf86FindScreenForEntity(entityIndex))->scrnIndex;
@@ -132,13 +132,12 @@
      * 64kB at a time.
      */
     (void)memset((char *)base + V_BIOS, 0, SYS_BIOS - V_BIOS);
-#if 0
-    for (cs = V_BIOS;  cs < SYS_BIOS;  cs += V_BIOS_SIZE)
-	if (xf86ReadBIOS(cs, 0, (unsigned char *)base + cs, V_BIOS_SIZE) <
+    if (xf86DomainHasBIOSSegments(xf86GetPciDomain(pInt->Tag)))
+	for (cs = V_BIOS;  cs < SYS_BIOS;  cs += V_BIOS_SIZE)
+	    if (xf86ReadBIOS(cs, 0, (unsigned char *)base + cs, V_BIOS_SIZE) <
 		V_BIOS_SIZE)
-	    xf86DrvMsg(screen, X_WARNING,
-		       "Unable to retrieve all of segment 0x%06X.\n", cs);
-#endif
+		xf86DrvMsg(screen, X_WARNING,
+			   "Unable to retrieve all of segment 0x%06X.\n", cs);
     INTPriv(pInt)->highMemory = V_BIOS;
     
     xf86int10ParseBiosLocation(options,&bios);
@@ -234,6 +233,8 @@
 	    }
 	} else
 	    location_type = pEnt->location.type;
+
+	xfree(pEnt);
 	
 	switch (location_type) {
 	case BUS_PCI:
@@ -252,13 +253,12 @@
 	    break;
 	case BUS_ISA:
 	    vbiosMem = (unsigned char *)sysMem + bios_location;
-#if 0
-	    (void)memset(vbiosMem, 0, V_BIOS_SIZE);
-	    if (xf86ReadBIOS(bios_location, 0, vbiosMem, V_BIOS_SIZE)
-		< V_BIOS_SIZE)
-		xf86DrvMsg(screen, X_WARNING,
-		    "Unable to retrieve all of segment 0x%x.\n",bios_location);
-#endif
+	    if (xf86DomainHasBIOSSegments(xf86GetPciDomain(pInt->Tag)))
+		if (xf86ReadBIOS(bios_location, 0, vbiosMem, V_BIOS_SIZE) <
+		    V_BIOS_SIZE)
+		    xf86DrvMsg(screen, X_WARNING,
+			       "Unable to retrieve all of segment 0x%x.\n",
+			       bios_location);
 	    if (!int10_check_bios(screen, bios_location >> 4, vbiosMem)) {
 	        xf86DrvMsg(screen,X_ERROR,"Cannot read V_BIOS (4)\n");
 		goto error1;
@@ -266,7 +266,6 @@
 	default:
 	    goto error1;
 	}
-	xfree(pEnt);
 	pInt->BIOSseg = V_BIOS >> 4;
 	pInt->num = 0xe6;
 	LockLegacyVGA(pInt, &vga);
@@ -289,17 +288,19 @@
      */
     vbiosMem = (char *)base + V_BIOS;
     (void)memset(vbiosMem, 0, 2 * V_BIOS_SIZE);
-    if (xf86ReadDomainMemory(pInt->Tag, V_BIOS, V_BIOS_SIZE, vbiosMem) <
-	V_BIOS_SIZE)
-	xf86DrvMsg(screen, X_WARNING,
-	    "Unable to retrieve all of segment 0x0C0000.\n");
-    else if ((((unsigned char *)vbiosMem)[0] == 0x55) &&
-	     (((unsigned char *)vbiosMem)[1] == 0xAA) &&
-	     (((unsigned char *)vbiosMem)[2] > 0x80))
-    if (xf86ReadDomainMemory(pInt->Tag, V_BIOS + V_BIOS_SIZE, V_BIOS_SIZE,
+    if (xf86DomainHasBIOSSegments(xf86GetPciDomain(pInt->Tag))) {
+	if (xf86ReadDomainMemory(pInt->Tag, V_BIOS, V_BIOS_SIZE, vbiosMem) <
+	    V_BIOS_SIZE)
+	    xf86DrvMsg(screen, X_WARNING,
+		"Unable to retrieve all of segment 0x0C0000.\n");
+	else if ((((unsigned char *)vbiosMem)[0] == 0x55) &&
+		 (((unsigned char *)vbiosMem)[1] == 0xAA) &&
+		 (((unsigned char *)vbiosMem)[2] > 0x80))
+	if (xf86ReadDomainMemory(pInt->Tag, V_BIOS + V_BIOS_SIZE, V_BIOS_SIZE,
 	    (unsigned char *)vbiosMem + V_BIOS_SIZE) < V_BIOS_SIZE)
-	xf86DrvMsg(screen, X_WARNING,
-	    "Unable to retrieve all of segment 0x0D0000.\n");
+	    xf86DrvMsg(screen, X_WARNING,
+		"Unable to retrieve all of segment 0x0D0000.\n");
+    }
 
     /*
      * If this adapter is the primary, use its post-init BIOS (if we can find
Index: xc/programs/Xserver/hw/xfree86/loader/dixsym.c
diff -u xc/programs/Xserver/hw/xfree86/loader/dixsym.c:1.71 xc/programs/Xserver/hw/xfree86/loader/dixsym.c:1.72
--- xc/programs/Xserver/hw/xfree86/loader/dixsym.c:1.71	Wed Mar  1 19:00:38 2006
+++ xc/programs/Xserver/hw/xfree86/loader/dixsym.c	Tue Mar 18 12:50:48 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.71 2006/03/02 03:00:38 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.72 2008/03/18 19:50:48 tsi Exp $ */
 
 /*
  * Copyright 1995-1998 by Metro Link, Inc.
@@ -342,6 +342,8 @@
     SYMFUNC(AdjustWaitForDelay)
     SYMVAR(noTestExtensions)
     SYMFUNC(GiveUp)
+    SYMFUNC(Fopen)
+    SYMFUNC(Fclose)
     /* log.c */
     SYMFUNC(LogVWrite)
     SYMFUNC(LogWrite)
Index: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c
diff -u xc/programs/Xserver/hw/xfree86/loader/xf86sym.c:1.267 xc/programs/Xserver/hw/xfree86/loader/xf86sym.c:1.268
--- xc/programs/Xserver/hw/xfree86/loader/xf86sym.c:1.267	Tue May 22 09:49:47 2007
+++ xc/programs/Xserver/hw/xfree86/loader/xf86sym.c	Wed Oct 15 13:59:13 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.267 2007/05/22 16:49:47 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.268 2008/10/15 20:59:13 tsi Exp $ */
 
 /*
  *
@@ -629,7 +629,9 @@
     SYMFUNC(xf86CommonSpecialKey)
     SYMFUNC(xf86IsPc98)
     SYMFUNC(xf86DisableRandR)
+#ifdef RANDR
     SYMFUNC(xf86GetRotation)
+#endif
     SYMFUNC(xf86GetVersion)
     SYMFUNC(xf86GetModuleVersion)
     SYMFUNC(xf86GetSubModuleByName)
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile:1.38 xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile:1.39
--- xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile:1.38	Sun Apr  1 08:55:49 2007
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile	Sat Sep 15 20:36:21 2007
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile,v 1.38 2007/04/01 15:55:49 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile,v 1.39 2007/09/16 03:36:21 tsi Exp $
 
 #include <Server.tmpl>
 
@@ -164,4 +164,6 @@
 
 #endif
 
+InstallDriverSDKNonExecFile(xf86Pci.h,$(DRIVERSDKINCLUDEDIR))
+
 DependTarget()
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c:1.99 xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c:1.103
--- xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c:1.99	Tue Jul  3 08:23:08 2007
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c	Thu Jun 19 09:37:47 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c,v 1.99 2007/07/03 15:23:08 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c,v 1.103 2008/06/19 16:37:47 tsi Exp $ */
 /*
  * Pci.c - New server PCI access functions
  *
@@ -324,6 +324,7 @@
   pciInit();
 
   if ((bus >= 0) && ((bus < pciNumBuses) || inProbe) && pciBusInfo[bus] &&
+	(offset < pciBusInfo[bus]->pciMaxOffset) &&
 	pciBusInfo[bus]->funcs->pciReadLong) {
     CARD32 rv = (*pciBusInfo[bus]->funcs->pciReadLong)(tag, offset);
 
@@ -372,6 +373,7 @@
   pciInit();
 
   if ((bus >= 0) && (bus < pciNumBuses) && pciBusInfo[bus] &&
+	(offset < pciBusInfo[bus]->pciMaxOffset) &&
 	pciBusInfo[bus]->funcs->pciWriteLong)
 	  (*pciBusInfo[bus]->funcs->pciWriteLong)(tag, offset, val);
 }
@@ -626,7 +628,7 @@
 	      mask2 = mask1 | (mask1 - 1);
 	      /* Allow for both 16-bit and 32-bit bases */
 	      if ((mask2 == (CARD16)(-1)) || (mask2 == (CARD32)(-1)))
-	        destructive = TRUE;
+		destructive = TRUE;
 	    }
 	  }
 	}
@@ -665,7 +667,7 @@
 	    mask64 |= mask64 - 1;
 	    /* Allow for both 32-bit and 64-bit bases */
 	    if ((mask64 == (CARD32)(-1)) ||
-	        (mask64 == (unsigned long long)(-1LL)))
+		(mask64 == (unsigned long long)(-1LL)))
 	      destructive = TRUE;
 	  }
 	}
@@ -762,12 +764,20 @@
     CARD32 id0, id1, val;
 
     /* Detect a multi-function device that complies to the PCI 2.0 spec */
+    /* Unfortunately, some devices don't have a zero function */
+    while (1) {
+	tag0 = PCI_MAKE_TAG(busnum, devnum, pciFuncNum);
+	id0 = pciReadLong(tag0, PCI_ID_REG);
+	if ((CARD16)(id0 + 1) > (CARD16)1UL) {
+	    if (pciFuncNum > 0)
+		return TRUE;
+	    break;
+	}
+	if (++pciFuncNum >= 8)
+	    return FALSE;
+    }
 
-    tag0 = PCI_MAKE_TAG(busnum, devnum, 0);
-    id0  = pciReadLong(tag0, PCI_ID_REG);
-    if ((CARD16)(id0 + 1) <= (CARD16)1UL)
-	return FALSE;
-
+    pciFuncNum = 1;
     val = pciReadLong(tag0, PCI_HEADER_MISC) & 0x00ff0000;
     if ((val != 0x00ff0000) && (val & PCI_HEADER_MULTIFUNCTION))
 	return TRUE;
@@ -775,7 +785,7 @@
     /*
      * Now, to find non-compliant devices...
      * If there is a valid ID for function 1 and the ID for func 0 and 1
-     * are different, or the base0 values of func 0 and 1 are differend,
+     * are different, or the base0 values of func 0 and 1 are different,
      * then assume there is a multi-function device.
      */
     tag1 = PCI_MAKE_TAG(busnum, devnum, 1);
@@ -830,6 +840,8 @@
 	    for (pciBusNum = 0;  !pciBusInfo[pciBusNum];  ++pciBusNum);
 	    pciFuncNum = 0;
 	    pciDevNum = 0;
+	    if (pciBusInfo[pciBusNum]->pciMaxOffset == 0)
+		pciBusInfo[pciBusNum]->pciMaxOffset = 256;
 	    previousBus = pciBusNum; /* make sure previousBus exists */
 	} else {
 #ifdef PCI_MFDEV_SUPPORT
@@ -844,15 +856,14 @@
 		/*
 		 * Is current dev a multifunction device?
 		 */
-		if (!speculativeProbe && pciMfDev(pciBusNum, pciDevNum))
-		    /* Probe for other functions */
-		    pciFuncNum = 1;
-		else
+		if (!pciMfDev(pciBusNum, pciDevNum)) {
 		    /*
 		     * No more functions this device. Next
 		     * device please
 		     */
-		    pciDevNum ++;
+		    pciDevNum++;
+		    pciFuncNum = 0;
+		}
 	    } else if (++pciFuncNum >= 8) {
 		/* No more functions for this device. Next device please */
 		pciFuncNum = 0;
@@ -900,7 +911,8 @@
 	    *pciBusInfo[pciBusNum] = *pciBusInfo[previousBus];
 
 	    speculativeProbe = TRUE;
-	}
+	} else if (pciBusInfo[pciBusNum]->pciMaxOffset == 0)
+	    pciBusInfo[pciBusNum]->pciMaxOffset = 256;
 
 	/*
 	 * At this point, pciBusNum, pciDevNum, and pciFuncNum have been
@@ -920,24 +932,25 @@
 	if ((CARD16)(devid + 1U) <= (CARD16)1UL)
 	    continue; /* Nobody home.  Next device please */
 
-	/*
-	 * Some devices mis-decode configuration cycles in such a way as to
-	 * create phantom buses.
-	 */
-	if (speculativeProbe && (pciDevNum == 0) && (pciFuncNum == 0) &&
-	    (PCI_BUS_NO_DOMAIN(pciBusNum) > 0)) {
-	    for (;;) {
-		if (++pciDevNum >= pciBusInfo[pciBusNum]->numDevices)
-		    goto NextSpeculativeBus;
-		inProbe = TRUE;
-		tmp = pciReadLong(PCI_MAKE_TAG(pciBusNum, pciDevNum, 0),
-				  PCI_ID_REG);
-		inProbe = FALSE;
-		if (devid != tmp)
-		    break;
-	    }
+	if ((pciDevNum == 0) && (pciFuncNum == 0)) {
+	    /*
+	     * Some devices mis-decode configuration cycles in such a way as to
+	     * create phantom buses.
+	     */
+	    if (speculativeProbe && (PCI_BUS_NO_DOMAIN(pciBusNum) > 0)) {
+		for (;;) {
+		    if (++pciDevNum >= pciBusInfo[pciBusNum]->numDevices)
+			goto NextSpeculativeBus;
+		    inProbe = TRUE;
+		    tmp = pciReadLong(PCI_MAKE_TAG(pciBusNum, pciDevNum, 0),
+				      PCI_ID_REG);
+		    inProbe = FALSE;
+		    if (devid != tmp)
+			break;
+		}
 
-	    pciDevNum = 0;
+		pciDevNum = 0;
+	    }
 	}
 
 	if (pciNumBuses <= pciBusNum)
@@ -987,6 +1000,9 @@
 		    *pciBusInfo[sec_bus] = *pciBusInfo[pri_bus];
 		}
 
+		pciBusInfo[sec_bus]->pciMaxOffset =
+		   pciBusInfo[pri_bus]->pciMaxOffset;
+
 		/* ...but not everything same as parent */
 		pciBusInfo[sec_bus]->primary_bus = pri_bus;
 		pciBusInfo[sec_bus]->secondary = TRUE;
@@ -1006,14 +1022,14 @@
 			capptr = pciReadByte(pciDeviceTag, PCI_CB_CAP_PTR);
 
 		    while (capptr &= ~0x03) {
-			if (pciReadByte(pciDeviceTag, capptr + PCI_CAP_ID) !=
-			    PCI_CAP_PM_ID) {
-			    capptr = pciReadByte(pciDeviceTag,
-						 capptr + PCI_CAP_NEXT);
+			CARD32 PciReg = pciReadLong(pciDeviceTag, capptr);
+
+			if ((CARD8)PciReg != PCI_CAP_PM_ID) {
+			    capptr = (CARD8)(PciReg >> 8);
 			    continue;
 			}
 
-			if (pciReadWord(pciDeviceTag, capptr + PCI_CAP_PM_CSR) &
+			if (pciReadLong(pciDeviceTag, capptr + PCI_CAP_PM_CSR) &
 			    PCI_CAP_PM_MODE_MASK)
 			    pciBusInfo[sec_bus]->numDevices = 0;
 
@@ -1154,6 +1170,23 @@
 	if (devp->pci_header_type == 0xff)
 	    devp->pci_header_type = 0;
 
+#ifdef OLD_FORMAT
+	xf86MsgVerb(X_INFO, 2, "PCI: BusID 0x%.2x,0x%02x,0x%1x "
+		    "ID 0x%04x,0x%04x Rev 0x%02x Class 0x%02x,0x%02x\n",
+		    devp->busnum, devp->devnum, devp->funcnum,
+		    devp->pci_vendor, devp->pci_device, devp->pci_rev_id,
+		    devp->pci_base_class, devp->pci_sub_class);
+#else
+	xf86MsgVerb(X_INFO, 2, "PCI: %.2x:%02x:%1x: chip %04x,%04x"
+		    " card %04x,%04x rev %02x class %02x,%02x,%02x hdr %02x\n",
+		    devp->busnum, devp->devnum, devp->funcnum,
+		    devp->pci_vendor, devp->pci_device,
+		    devp->pci_subsys_vendor, devp->pci_subsys_card,
+		    devp->pci_rev_id, devp->pci_base_class,
+		    devp->pci_sub_class, devp->pci_prog_if,
+		    devp->pci_header_type);
+#endif
+
 	switch (devp->pci_header_type & 0x7f) {
 	case 0:
 	    /* Get base address sizes for type 0 headers */
@@ -1172,14 +1205,7 @@
 	    devp->basesize[6] =  /* Yep, the 6 & 7 are correct */
 		pciGetBaseSize(devp, 7, FALSE, &devp->minBasesize);
 
-	    /* Allow master aborts to complete normally on secondary buses */
-	    if (!(devp->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN))
-		break;
-	    pciWriteWord(tag, PCI_PCI_BRIDGE_CONTROL_REG,
-		devp->pci_bridge_control &
-		     ~(PCI_PCI_BRIDGE_MASTER_ABORT_EN |
-		       PCI_PCI_BRIDGE_SECONDARY_RESET));
-	    break;
+	    goto bridge_control;
 
 	case 2:
 	    /* Read more config space for this device */
@@ -1190,36 +1216,235 @@
 	    devp->basesize[0] =
 		pciGetBaseSize(devp, 0, FALSE, &devp->minBasesize);
 
+	bridge_control:
+	    /*
+	     * Note that, for PCI-X and PCI Express, the diddling of various
+	     * error bits that is done below is ultimately ineffective at
+	     * preventing interrupts.  What it does do though is change the
+	     * kind of interrupt that occurs.  On Solaris at least, this makes
+	     * the difference between being SIGKILL'ed rather than crashing the
+	     * system.
+	     */
+
 	    /* Allow master aborts to complete normally on secondary buses */
-	    if (!(devp->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN))
-		break;
-	    pciWriteWord(tag, PCI_PCI_BRIDGE_CONTROL_REG,
-		devp->pci_bridge_control &
-		     ~(PCI_PCI_BRIDGE_MASTER_ABORT_EN |
-		       PCI_PCI_BRIDGE_SECONDARY_RESET));
-	    break;
+	    if (devp->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN) {
+		pciWriteWord(tag, PCI_PCI_BRIDGE_CONTROL_REG,
+		    devp->pci_bridge_control &
+			~(PCI_PCI_BRIDGE_MASTER_ABORT_EN |
+			  PCI_PCI_BRIDGE_SECONDARY_RESET));
+		if (pciReadWord(tag, PCI_PCI_BRIDGE_CONTROL_REG) &
+		    PCI_PCI_BRIDGE_MASTER_ABORT_EN)
+		    xf86Msg(X_WARNING, "Could not disable hard-failing of"
+			    " master aborts through PCI bridge"
+			    " %.2x:%02x:%02x\n",
+			    devp->busnum, devp->devnum, devp->funcnum);
+	    }
+
+	    /*
+	     * Unsupported request responses are the PCI Express equivalent to
+	     * master aborts.
+	     */
+	    if (devp->pci_status_command & PCI_STAT_CAPABILITY) {
+		CARD16 capptr;
+
+		if ((devp->pci_header_type & 0x7f) == 1)
+		    capptr = devp->pci_capptr;
+		else
+		    capptr = devp->pci_cb_capptr;
+
+		/* Look for PCI Express capability */
+		while (capptr &= ~0xff03) {
+		    CARD32 PciReg = pciReadLong(tag, capptr);
+		    int sec_bus;
+
+		    if ((CARD8)PciReg != PCI_CAP_PCIE_ID) {
+			capptr = (CARD8)(PciReg >> 8);
+			continue;
+		    }
+
+		    devp->pcie_cap_ptr = capptr;
+		    devp->pcie_devtype = (PciReg >> 20) & 0x0f;
+
+		    capptr += PCI_CAP_PCIE_DEV_CTL;
+		    PciReg = pciReadLong(tag, capptr);
+		    devp->pcie_dev_ctl = (CARD16)PciReg;
+
+		    /*
+		     * Disable reporting of unsupported requests.  Grr, because
+		     * these are _also_ reported as non-fatal errors, we must
+		     * disable the port's SERR enable and its ability to
+		     * forward same from downstream.
+		     */
+		    if (PciReg & (PCI_CAP_PCIE_URR_EN | PCI_CAP_PCIE_NFR_EN))
+		    {
+			pciWriteLong(tag, capptr, PciReg &
+			    ~(PCI_CAP_PCIE_URR_EN | PCI_CAP_PCIE_NFR_EN));
+			if (pciReadLong(tag, capptr) &
+			    (PCI_CAP_PCIE_URR_EN | PCI_CAP_PCIE_NFR_EN))
+			    xf86Msg(X_WARNING, "Could not disable reporting of"
+				    " unsupported requests through PCI bridge"
+				    " %.2x:%02x:%02x\n",
+				    devp->busnum, devp->devnum, devp->funcnum);
+		    }
+		    if (devp->pci_status_command & PCI_CMD_SERR_ENABLE) {
+			pciWriteLong(tag, PCI_CMD_STAT_REG,
+			    devp->pci_status_command & ~PCI_CMD_SERR_ENABLE);
+			if (pciReadLong(tag, PCI_CMD_STAT_REG) &
+			    PCI_CMD_SERR_ENABLE)
+			    xf86Msg(X_WARNING, "Could not disable SERR on PCI"
+				    " bridge %.2x:%02x:%02x\n",
+				    devp->busnum, devp->devnum, devp->funcnum);
+		    }
+		    if (devp->pci_bridge_control & PCI_PCI_BRIDGE_SERR_EN) {
+			pciWriteWord(tag, PCI_PCI_BRIDGE_CONTROL_REG,
+			    devp->pci_bridge_control &
+				~(PCI_PCI_BRIDGE_MASTER_ABORT_EN |
+				  PCI_PCI_BRIDGE_SERR_EN |
+				  PCI_PCI_BRIDGE_SECONDARY_RESET));
+			if (pciReadWord(tag, PCI_PCI_BRIDGE_CONTROL_REG) &
+			    PCI_PCI_BRIDGE_SERR_EN)
+			    xf86Msg(X_WARNING, "Could not disable SERR"
+				    " forwarding through PCI bridge"
+				    " %.2x:%02x:%02x\n",
+				    devp->busnum, devp->devnum, devp->funcnum);
+		    }
+
+		    /* Setup for per-device configuration space size */
+		    sec_bus =
+			PCI_SECONDARY_BUS_EXTRACT(devp->pci_pp_bus_register,
+						  tag);
+		    pciBusInfo[devp->busnum]->pciMaxOffset =
+			pciBusInfo[sec_bus]->pciMaxOffset = 4096;
+		    if (devp->pcie_devtype == PCI_CAP_PCIE_DEVTYPE_PCIE_PCI) {
+			pciBusInfo[sec_bus]->pciMaxOffset = 256;
+
+			if ((devp->pci_header_type & 0x7f) == 1)
+			    capptr = devp->pci_capptr;
+			else
+			    capptr = devp->pci_cb_capptr;
+
+			/* Look for PCI-X capability */
+			while (capptr & ~0xff03) {
+			    PciReg = pciReadLong(tag, capptr);
+			    if ((CARD8)PciReg != PCI_CAP_PCIX_ID) {
+				capptr = (CARD8)(PciReg >> 8);
+				continue;
+			    }
+
+			    if ((PciReg & (PCI_CAP_PCIX_STAT_MODE << 16)) >=
+				(PCI_CAP_PCIX_STAT_PCIX2_MIN << 22))
+				pciBusInfo[sec_bus]->pciMaxOffset = 4096;
+
+			    break;
+			}
+		    }
+
+		    /* Look for Advanced Error Reporting capability */
+		    capptr = PCIE_CAP_FIRST;
+		    while (capptr &= ~0xf003) {
+			PciReg = pciReadLong(tag, capptr);
+
+			if ((CARD16)(PciReg + 1) <= (CARD16)1UL)
+			    break;	/* Nothing there or not accessible */
+
+			if ((CARD16)(PciReg) != PCIE_CAP_AER_ID) {
+			    capptr = PciReg >> 20;
+			    continue;
+			}
+
+			devp->aer_cap_ptr = capptr;
+
+			/* Ensure unsupported request errors are not reported */
+			devp->aer_ue_mask =
+			    pciReadLong(tag, capptr + PCIE_CAP_AER_UE_MASK);
+			if (!(devp->aer_ue_mask & PCIE_CAP_AER_UE_URE)) {
+			    pciWriteLong(tag, capptr + PCIE_CAP_AER_UE_MASK,
+				devp->aer_ue_mask | PCIE_CAP_AER_UE_URE);
+			    if (!(pciReadLong(tag,
+					 capptr + PCIE_CAP_AER_UE_MASK) &
+				  PCIE_CAP_AER_UE_URE))
+				xf86Msg(X_WARNING, "Could not disable extended"
+					" reporting of unsupported requests"
+					" through PCI bridge %.2x:%02x:%02x\n",
+					devp->busnum,
+					devp->devnum,
+					devp->funcnum);
+			}
+
+			/* Make unsupported request errors non-fatal */
+			devp->aer_ue_severity =
+			    pciReadLong(tag, capptr + PCIE_CAP_AER_UE_SEV);
+			if (devp->aer_ue_severity & PCIE_CAP_AER_UE_URE) {
+			    pciWriteLong(tag, capptr + PCIE_CAP_AER_UE_SEV,
+				devp->aer_ue_severity & ~PCIE_CAP_AER_UE_URE);
+			    if (pciReadLong(tag, capptr + PCIE_CAP_AER_UE_SEV)
+				& PCIE_CAP_AER_UE_URE)
+				xf86Msg(X_WARNING, "Could not make unsupported"
+					" requests non-fatal through PCI"
+					" bridge %.2x:%02x:%02x\n",
+					devp->busnum,
+					devp->devnum,
+					devp->funcnum);
+			}
+
+			/* Deal with PCI Express to PCI/PCI-X bridges */
+			if (devp->pcie_devtype != PCI_CAP_PCIE_DEVTYPE_PCIE_PCI)
+			    break;
+
+			/*
+			 * Mask out master aborts from the PCI/PCI-X interface.
+			 */
+			devp->aer_sue_mask =
+			   pciReadLong(tag, capptr + PCIE_CAP_AER_SUE_MASK);
+			if ((devp->aer_sue_mask &
+			     PCIE_CAP_AER_SUE_MASTER_ABORT) !=
+			    PCIE_CAP_AER_SUE_MASTER_ABORT) {
+			    pciWriteLong(tag, capptr + PCIE_CAP_AER_SUE_MASK,
+				devp->aer_sue_mask |
+				    PCIE_CAP_AER_SUE_MASTER_ABORT);
+			    if ((pciReadLong(tag,
+					     capptr + PCIE_CAP_AER_SUE_MASK) &
+				 PCIE_CAP_AER_SUE_MASTER_ABORT) !=
+				PCIE_CAP_AER_SUE_MASTER_ABORT)
+				xf86Msg(X_WARNING, "Could not disable"
+					" hard-failing of secondary master"
+					" aborts through PCI bridge"
+					"%.2x:%02x:%02x\n",
+					devp->busnum,
+					devp->devnum,
+					devp->funcnum);
+			}
+
+			/* Make master aborts non-fatal */
+			devp->aer_sue_severity =
+			    pciReadLong(tag, capptr + PCIE_CAP_AER_SUE_SEV);
+			if (devp->aer_sue_severity &
+			    PCIE_CAP_AER_SUE_MASTER_ABORT) {
+			    pciWriteLong(tag, capptr + PCIE_CAP_AER_SUE_SEV,
+				devp->aer_sue_severity &
+				    ~PCIE_CAP_AER_SUE_MASTER_ABORT);
+			    if (pciReadLong(tag,
+					    capptr + PCIE_CAP_AER_SUE_SEV) &
+				PCIE_CAP_AER_SUE_MASTER_ABORT)
+				xf86Msg(X_WARNING, "Could not make master"
+					" aborts non-fatal through PCI bridge"
+					"%.2x:%02x:%02x\n",
+					devp->busnum,
+					devp->devnum,
+					devp->funcnum);
+			}
+
+			break;
+		    }
+
+		    break;
+		}
+	    }
 
 	default:
 	    break;
 	}
 
-#ifdef OLD_FORMAT
-	xf86MsgVerb(X_INFO, 2, "PCI: BusID 0x%.2x,0x%02x,0x%1x "
-		    "ID 0x%04x,0x%04x Rev 0x%02x Class 0x%02x,0x%02x\n",
-		    devp->busnum, devp->devnum, devp->funcnum,
-		    devp->pci_vendor, devp->pci_device, devp->pci_rev_id,
-		    devp->pci_base_class, devp->pci_sub_class);
-#else
-	xf86MsgVerb(X_INFO, 2, "PCI: %.2x:%02x:%1x: chip %04x,%04x"
-		    " card %04x,%04x rev %02x class %02x,%02x,%02x hdr %02x\n",
-		    devp->busnum, devp->devnum, devp->funcnum,
-		    devp->pci_vendor, devp->pci_device,
-		    devp->pci_subsys_vendor, devp->pci_subsys_card,
-		    devp->pci_rev_id, devp->pci_base_class,
-		    devp->pci_sub_class, devp->pci_prog_if,
-		    devp->pci_header_type);
-#endif
-
 	pci_devp[idx++] = devp;
 	tag = pciFindNext();
 
@@ -1269,10 +1494,35 @@
 		ARCH_PCI_PCI_BRIDGE(devp);
 #endif
 	    }
-	    if (!(devp->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN))
-		break;
+
+	    if (devp->aer_cap_ptr != 0) {
+		if (devp->pcie_devtype == PCI_CAP_PCIE_DEVTYPE_PCIE_PCI) {
+		    pciWriteLong(devp->tag,
+			devp->aer_cap_ptr + PCIE_CAP_AER_SUE_MASK,
+			devp->aer_sue_mask);
+		    pciWriteLong(devp->tag,
+			devp->aer_cap_ptr + PCIE_CAP_AER_SUE_SEV,
+			devp->aer_sue_severity);
+		}
+		pciWriteLong(devp->tag,
+		    devp->aer_cap_ptr + PCIE_CAP_AER_UE_MASK,
+		    devp->aer_ue_mask);
+		pciWriteLong(devp->tag,
+		    devp->aer_cap_ptr + PCIE_CAP_AER_UE_SEV,
+		    devp->aer_ue_severity);
+	    }
+
+	    if (devp->pcie_cap_ptr != 0) {
+		pciWriteWord(devp->tag,
+		    devp->pcie_cap_ptr + PCI_CAP_PCIE_DEV_CTL,
+		    devp->pcie_dev_ctl);
+		pciWriteLong(devp->tag, PCI_CMD_STAT_REG,
+		    devp->pci_status_command);
+	    }
+
 	    pciWriteWord(devp->tag, PCI_PCI_BRIDGE_CONTROL_REG,
 		devp->pci_bridge_control & ~PCI_PCI_BRIDGE_SECONDARY_RESET);
+
 	    break;
 
 	default:
@@ -1303,13 +1553,6 @@
     return pci_devp;
 }
 
-CARD32
-pciCheckForBrokenBase(PCITAG Tag,int basereg)
-{
-    pciWriteLong(Tag, PCI_MAP_REG_START + (basereg << 2), 0xffffffff);
-    return pciReadLong(Tag, PCI_MAP_REG_START + (basereg << 2));
-}
-
 #if defined(INCLUDE_XF86_MAP_PCI_MEM)
 
 pointer
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h:1.56 xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h:1.59
--- xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h:1.56	Sun Apr  1 08:55:49 2007
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h	Thu Mar 27 11:01:44 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.56 2007/04/01 15:55:49 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.59 2008/03/27 18:01:44 tsi Exp $ */
 /*
  * Copyright 1998 by Concurrent Computer Corporation
  *
@@ -168,6 +168,7 @@
 #define PCI_FUNC_FROM_TAG(tag) (((tag) & 0x00000700u) >> 8)
 
 #define PCI_DFN_FROM_TAG(tag)  (((tag) & 0x0000ff00u) >> 8)
+#define PCI_BDF_FROM_TAG(tag)  (((tag) & 0x00ffff00u) >> 8)
 #define PCI_BDEV_FROM_TAG(tag) ((tag) & 0x00fff800u)
 
 #define PCI_DOM_FROM_BUS(bus)  (((bus) >> 8) & (PCI_DOM_MASK))
@@ -244,9 +245,16 @@
 #define PCI_CFGMECH1_MAXDEV	32
 
 /*
+ * CAN_HARDFAIL_MASTER_ABORTS can be #define'd to a Bool function or some
+ * other boolean expression should the need arise.
+ */
+#undef CAN_HARDFAIL_MASTER_ABORTS
+
+/*
  * Select architecture specific PCI init function
  */
 #if defined(__alpha__)
+# define CAN_HARDFAIL_MASTER_ABORTS FALSE	/* Uncertain */
 # if defined(linux)
 #  define ARCH_PCI_INIT axpPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
@@ -260,18 +268,21 @@
 #  define INCLUDE_XF86_NO_DOMAIN
 # endif
 #elif defined(__arm__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Unknown */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
 #  define INCLUDE_XF86_NO_DOMAIN
 # endif
 #elif defined(__hppa__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Unknown */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
 #  define INCLUDE_XF86_NO_DOMAIN
 # endif
 #elif defined(__ia64__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Broken */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
@@ -283,6 +294,7 @@
 # endif
 # define XF86SCANPCI_WRAPPER ia64ScanPCIWrapper
 #elif defined(__i386__) || defined(i386)
+# define CAN_HARDFAIL_MASTER_ABORTS FALSE	/* Sane (so far) */
 # define ARCH_PCI_INIT ix86PciInit
 # define INCLUDE_XF86_MAP_PCI_MEM
 # define INCLUDE_XF86_NO_DOMAIN
@@ -290,18 +302,21 @@
 #  define ARCH_PCI_OS_INIT linuxPciInit
 # endif
 #elif defined(__mc68000__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Unknown */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
 #  define INCLUDE_XF86_NO_DOMAIN
 # endif
 #elif defined(__mips__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Unknown */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
 #  define INCLUDE_XF86_NO_DOMAIN
 # endif
 #elif defined(__powerpc__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Broken */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
@@ -322,18 +337,21 @@
 #  define INCLUDE_XF86_NO_DOMAIN
 # endif
 #elif defined(__s390__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Unknown */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
 #  define INCLUDE_XF86_NO_DOMAIN
 # endif
 #elif defined(__sh__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Unknown */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
 #  define INCLUDE_XF86_NO_DOMAIN
 # endif
 #elif defined(__sparc__) || defined(sparc)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE	/* Broken */
 # if defined(linux)
 #  define ARCH_PCI_INIT linuxPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
@@ -355,6 +373,7 @@
 # endif
 # define ARCH_PCI_PCI_BRIDGE sparcPciPciBridge
 #elif defined(__amd64__) || defined(__x86_64__)
+# define CAN_HARDFAIL_MASTER_ABORTS FALSE	/* Likely */
 # if defined(__FreeBSD__)
 #  define ARCH_PCI_INIT freebsdPciInit
 # else
@@ -371,6 +390,10 @@
 #error No PCI support available for this architecture/OS combination
 #endif
 
+#ifndef CAN_HARDFAIL_MASTER_ABORTS
+#define CAN_HARDFAIL_MASTER_ABORTS TRUE		/* Assume the worst */
+#endif
+
 extern void ARCH_PCI_INIT(void);
 #if defined(ARCH_PCI_OS_INIT)
 extern void ARCH_PCI_OS_INIT(void);
@@ -423,6 +446,7 @@
 	pciBusFuncs_p  funcs;        /* PCI access functions        */
 	void          *pciBusPriv;   /* Implementation private data */
 	pciConfigPtr   bridge;       /* bridge that opens this bus  */
+	int            pciMaxOffset; /* Size of config for one device */
 } pciBusInfo_t;
 
 #define HOST_NO_BUS ((pciBusInfo_t *)(-1))
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c:1.27 xc/programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c:1.28
--- xc/programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c:1.27	Thu Oct 14 20:08:32 2004
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c	Wed May 14 08:40:49 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c,v 1.27 2004/10/15 03:08:32 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c,v 1.28 2008/05/14 15:40:49 tsi Exp $ */
 /*
  * ix86Pci.c - x86 PCI driver
  *
@@ -570,6 +570,9 @@
     ErrorF("ix86PciReadLong 0x%lx, %d\n", Tag, reg);
 #endif
 
+    if ((reg < 0) || (reg >= 256))
+	return PCI_NOT_FOUND;
+
     addr = PCI_ADDR_FROM_TAG_CFG1(Tag,reg);
     outl(PCI_CFGMECH1_ADDRESS_REG, addr);
     data = inl(PCI_CFGMECH1_DATA_REG);
@@ -592,6 +595,9 @@
     ErrorF("ix86PciReadLong 0x%lx, %d\n", Tag, reg);
 #endif
 
+    if ((reg < 0) || (reg >= 256))
+	return PCI_NOT_FOUND;
+
     forward  = PCI_FORWARD_FROM_TAG(Tag);
     enable   = PCI_ENABLE_FROM_TAG(Tag);
     addr     = PCI_ADDR_FROM_TAG_CFG2(Tag,reg);
@@ -621,6 +627,9 @@
 {
     CARD32    addr;
 
+    if ((reg < 0) || (reg >= 256))
+	return;
+
     addr = PCI_ADDR_FROM_TAG_CFG1(Tag,reg);
     outl(PCI_CFGMECH1_ADDRESS_REG, addr);
     outl(PCI_CFGMECH1_DATA_REG, data);
@@ -633,6 +642,9 @@
     CARD32    addr;
     CARD8 forward, enable;
 
+    if ((reg < 0) || (reg >= 256))
+	return;
+
     forward  = PCI_FORWARD_FROM_TAG(Tag);
     enable   = PCI_ENABLE_FROM_TAG(Tag);
     addr     = PCI_ADDR_FROM_TAG_CFG2(Tag,reg);
@@ -660,6 +672,9 @@
     ErrorF("ix86PciSetBitsLong 0x%lx, %d\n", Tag, reg);
 #endif
 
+    if ((reg < 0) || (reg >= 256))
+	return;
+
     addr = PCI_ADDR_FROM_TAG_CFG1(Tag,reg);
     outl(PCI_CFGMECH1_ADDRESS_REG, addr);
     data = inl(PCI_CFGMECH1_DATA_REG);
@@ -678,6 +693,9 @@
     ErrorF("ix86PciSetBitsLong 0x%lx, %d\n", Tag, reg);
 #endif
 
+    if ((reg < 0) || (reg >= 256))
+	return;
+
     forward  = PCI_FORWARD_FROM_TAG(Tag);
     enable   = PCI_ENABLE_FROM_TAG(Tag);
     addr     = PCI_ADDR_FROM_TAG_CFG2(Tag,reg);
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/ppcPci.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/ppcPci.c:1.10 xc/programs/Xserver/hw/xfree86/os-support/bus/ppcPci.c:1.11
--- xc/programs/Xserver/hw/xfree86/os-support/bus/ppcPci.c:1.10	Tue Mar 29 09:54:00 2005
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/ppcPci.c	Wed May 14 08:40:49 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/ppcPci.c,v 1.10 2005/03/29 17:54:00 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/ppcPci.c,v 1.11 2008/05/14 15:40:49 tsi Exp $ */
 /*
  * ppcPci.c - PowerPC PCI access functions
  *
@@ -227,11 +227,14 @@
 static CARD32
 pciCfgMech1Read(PCITAG tag, int offset)
 {
-  unsigned long rv = 0xffffffff;
+  CARD32 rv = 0xffffffff;
 #ifdef DEBUGPCI
   ErrorF("pciCfgMech1Read(tag=%08lx,offset=%08x)\n", tag, offset);
 #endif
 
+  if ((offset < 0) || (offset >= 256))
+	return rv;
+
   signal(SIGBUS, buserr);
   buserr_detected = 0;
 
@@ -258,6 +261,9 @@
         tag, offset, (unsigned long)val);
 #endif
 
+  if ((offset < 0) || (offset >= 256))
+	return;
+
   signal(SIGBUS, SIG_IGN);
 
   outl(0xCF8, PCI_EN | tag | (offset & 0xfc));
@@ -274,8 +280,12 @@
 static void
 pciCfgMech1SetBits(PCITAG tag, int offset, CARD32 mask, CARD32 val)
 {
-    unsigned long rv = 0xffffffff;
+    CARD32 rv;
+
+    if ((offset < 0) || (offset >= 256))
+	return;
 
+    rv = 0xffffffff;
     signal(SIGBUS, buserr);
 
     outl(0xCF8, PCI_EN | tag | (offset & 0xfc));
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/sparcPci.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/sparcPci.c:1.31 xc/programs/Xserver/hw/xfree86/os-support/bus/sparcPci.c:1.33
--- xc/programs/Xserver/hw/xfree86/os-support/bus/sparcPci.c:1.31	Tue Jul 10 12:08:42 2007
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/sparcPci.c	Mon Jun 23 07:42:22 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/sparcPci.c,v 1.31 2007/07/10 19:08:42 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/sparcPci.c,v 1.33 2008/06/23 14:42:22 tsi Exp $ */
 /*
  * Copyright (C) 2001-2007 The XFree86 Project, Inc.
  * All rights reserved.
@@ -117,7 +117,7 @@
     pointer pci, io;
     int bus_min, bus_max;
     int tagMultiplier, maxOffset;
-    unsigned char dfn_mask[256 / 8];
+    unsigned char *bdf_mask;
 } sparcDomainRec, *sparcDomainPtr;
 
 #define SetBitInMap(bit, map) \
@@ -142,23 +142,84 @@
     *(volatile type *)(pointer)((char *)((domain)->pci) + \
 	((PCI_TAG_NO_DOMAIN(tag) * (domain)->tagMultiplier) | (off)))
 
+/*
+ * Functions to wrap PciReg accesses with membar's for fault isolation
+ * purposes.
+ */
+
+static __inline__ CARD8
+GetPciByte(sparcDomainPtr pDomain, PCITAG tag, int off)
+{
+    volatile CARD8 result;			/* Must be volatile */
+
+    barrier();
+    result = PciReg(pDomain, tag, off, CARD8);
+    barrier();
+    return result;
+}
+
+static __inline__ CARD16
+GetPciWord(sparcDomainPtr pDomain, PCITAG tag, int off)
+{
+    volatile CARD16 result;			/* Must be volatile */
+
+    barrier();
+    result = PciReg(pDomain, tag, off, CARD16);
+    barrier();
+    return result;
+}
+
+static __inline__ CARD32
+GetPciLong(sparcDomainPtr pDomain, PCITAG tag, int off)
+{
+    volatile CARD32 result;			/* Must be volatile */
+
+    barrier();
+    result = PciReg(pDomain, tag, off, CARD32);
+    barrier();
+    return result;
+}
+
+static __inline__ void
+PutPciByte(sparcDomainPtr pDomain, PCITAG tag, int off, CARD8 val)
+{
+    barrier();
+    PciReg(pDomain, tag, off, CARD8) = val;
+    barrier();
+}
+
+static __inline__ void
+PutPciWord(sparcDomainPtr pDomain, PCITAG tag, int off, CARD16 val)
+{
+    barrier();
+    PciReg(pDomain, tag, off, CARD16) = val;
+    barrier();
+}
+
+static __inline void
+PutPciLong(sparcDomainPtr pDomain, PCITAG tag, int off, CARD32 val)
+{
+    barrier();
+    PciReg(pDomain, tag, off, CARD32) = val;
+    barrier();
+}
+
 /* Generic SPARC PCI access functions */
 static CARD32
 sparcPciCfgRead32(PCITAG tag, int off)
 {
-    pciBusInfo_t    *pBusInfo;
-    sparcDomainPtr  pDomain;
-    volatile CARD32 result = (CARD32)(-1);	/* Must be volatile */
-    int             bus;
+    pciBusInfo_t   *pBusInfo;
+    sparcDomainPtr pDomain;
+    CARD32         result = (CARD32)(-1);
+    int            bus;
 
     if ((off >= 0) && !(off & 3) &&
 	((bus = PCI_BUS_FROM_TAG(tag)) < pciNumBuses) &&
 	(pBusInfo = pciBusInfo[bus]) && (pDomain = pBusInfo->pciBusPriv) &&
 	(off < pDomain->maxOffset) &&
 	(bus >= pDomain->bus_min) && (bus < pDomain->bus_max) &&
-	((bus > pDomain->bus_min) ||
-	 IsBitSetInMap(PCI_DFN_FROM_TAG(tag), pDomain->dfn_mask))) {
-	result = PciReg(pDomain, tag, off, CARD32);
+	IsBitSetInMap(PCI_BDF_FROM_TAG(tag), pDomain->bdf_mask)) {
+	result = GetPciLong(pDomain, tag, off);
 
 	result = PCI_CPU(result);
     }
@@ -178,12 +239,11 @@
 	!(pBusInfo = pciBusInfo[bus]) || !(pDomain = pBusInfo->pciBusPriv) ||
 	(off >= pDomain->maxOffset) ||
 	(bus < pDomain->bus_min) || (bus >= pDomain->bus_max) ||
-	((bus == pDomain->bus_min) &&
-	 !IsBitSetInMap(PCI_DFN_FROM_TAG(tag), pDomain->dfn_mask)))
+	!IsBitSetInMap(PCI_BDF_FROM_TAG(tag), pDomain->bdf_mask))
 	return;
 
     val = PCI_CPU(val);
-    PciReg(pDomain, tag, off, CARD32) = val;
+    PutPciLong(pDomain, tag, off, val);
 }
 
 static void
@@ -213,10 +273,10 @@
 static CARD32
 sabrePciCfgRead32(PCITAG tag, int off)
 {
-    pciBusInfo_t    *pBusInfo;
-    sparcDomainPtr  pDomain;
-    volatile CARD32 result;			/* Must be volatile */
-    int             bus;
+    pciBusInfo_t   *pBusInfo;
+    sparcDomainPtr pDomain;
+    CARD32         result;
+    int            bus;
 
     if (PCI_BDEV_FROM_TAG(tag))
 	return sparcPciCfgRead32(tag, off);
@@ -228,15 +288,15 @@
 	return (CARD32)(-1);
 
     if (off < 8) {
-	result = (PciReg(pDomain, tag, off, CARD16) << 16) |
-		  PciReg(pDomain, tag, off + 2, CARD16);
+	result = (GetPciWord(pDomain, tag, off) << 16) |
+		  GetPciWord(pDomain, tag, off + 2);
 	return PCI_CPU(result);
     }
 
-    result = (PciReg(pDomain, tag, off + 3, CARD8) << 24) |
-	     (PciReg(pDomain, tag, off + 2, CARD8) << 16) |
-	     (PciReg(pDomain, tag, off + 1, CARD8) <<  8) |
-	     (PciReg(pDomain, tag, off    , CARD8)      );
+    result = (GetPciByte(pDomain, tag, off + 3) << 24) |
+	     (GetPciByte(pDomain, tag, off + 2) << 16) |
+	     (GetPciByte(pDomain, tag, off + 1) <<  8) |
+	     (GetPciByte(pDomain, tag, off    )      );
     return result;
 }
 
@@ -257,13 +317,13 @@
 	     (bus == pDomain->bus_min)) {
 	if (off < 8) {
 	    val = PCI_CPU(val);
-	    PciReg(pDomain, tag, off    , CARD16) = val >> 16;
-	    PciReg(pDomain, tag, off + 2, CARD16) = val;
+	    PutPciWord(pDomain, tag, off    , val >> 16);
+	    PutPciWord(pDomain, tag, off + 2, val);
 	} else {
-	    PciReg(pDomain, tag, off    , CARD8) = val;
-	    PciReg(pDomain, tag, off + 1, CARD8) = val >> 8;
-	    PciReg(pDomain, tag, off + 2, CARD8) = val >> 16;
-	    PciReg(pDomain, tag, off + 3, CARD8) = val >> 24;
+	    PutPciByte(pDomain, tag, off    , val);
+	    PutPciByte(pDomain, tag, off + 1, val >>  8);
+	    PutPciByte(pDomain, tag, off + 2, val >> 16);
+	    PutPciByte(pDomain, tag, off + 3, val >> 24);
 	}
     }
 }
@@ -296,54 +356,69 @@
 static int nAddressSizes = 0;
 
 /*
- * Extract base size information from "assigned-addresses" properties.
+ * Scan the PROM device tree rooted at 'node', accumulating a bit map of PCI
+ * devices that exist, and retrieving base size information.
  */
 
 static void
-sparcAssignedAddresses(sparcDomainPtr pDomain, int node)
+sparcScanPciTree(sparcDomainPtr pDomain, int node)
 {
     char *prop_val;
     int prop_len;
 
-    /* Retrieve and validate "assigned-addresses" property */
-    prop_val = promGetProperty("assigned-addresses", &prop_len);
-    if (prop_val && !(prop_len % 20)) {
-	prop_len /= 20;
-	for (;  prop_len--;  prop_val += 20) {
-	    if (((unsigned char)prop_val[1] < pDomain->bus_min) ||
-		((unsigned char)prop_val[1] > pDomain->bus_max) ||
-		(prop_val[3] & 0x3) || (prop_val[3] < PCI_MAP_REG_START) ||
-		((CARD32 *)prop_val)[1] || ((CARD32 *)prop_val)[3] ||
-		(((CARD32 *)prop_val)[4] < 4) ||
-		(((CARD32 *)prop_val)[4] & (((CARD32 *)prop_val)[4] - 1)) ||
-		(((CARD32 *)prop_val)[2] & (((CARD32 *)prop_val)[4] - 1)))
-		continue;
-
-	    if ((prop_val[3] >= PCI_MAP_REG_END) &&
-		(prop_val[3] != PCI_MAP_ROM_REG) &&
-		(prop_val[3] != PCI_PCI_BRIDGE_ROM_REG))
-		continue;
+    for (node = promGetChild(node);  node;  node = promGetSibling(node)) {
+	/* Retrieve and validate "reg" property */
+	prop_val = promGetProperty("reg", &prop_len);
+	if (prop_val && !(prop_len % 20)) {
+	    /*
+	     * It's unnecessary to scan the entire "reg" property, but I'll do
+	     * so anyway.
+	     */
+	    prop_len /= 20;
+	    for (;  prop_len--;  prop_val += 20)
+		SetBitInMap(PCI_BDF_FROM_TAG(*(CARD32 *)prop_val),
+		    pDomain->bdf_mask);
+	}
 
-	    prop_val[0] = pciNumDomains;
-	    pAddressSizes = xnfrealloc(pAddressSizes,
-		sizeof(*pAddressSizes) * (nAddressSizes + 1));
-	    pAddressSizes[nAddressSizes].tag = ((CARD32 *)prop_val)[0];
-	    for (pAddressSizes[nAddressSizes].size = -1;
-		 ((CARD32 *)prop_val)[4];
-		 ((CARD32 *)prop_val)[4] >>= 1)
-		pAddressSizes[nAddressSizes].size++;
-	    nAddressSizes++;
+	/* Retrieve and validate "assigned-addresses" property */
+	prop_val = promGetProperty("assigned-addresses", &prop_len);
+	if (prop_val && !(prop_len % 20)) {
+	    prop_len /= 20;
+	    for (;  prop_len--;  prop_val += 20) {
+		if (((unsigned char)prop_val[1] < pDomain->bus_min) ||
+		    ((unsigned char)prop_val[1] > pDomain->bus_max) ||
+		    (prop_val[3] & 0x3) || (prop_val[3] < PCI_MAP_REG_START) ||
+		    ((CARD32 *)prop_val)[1] || ((CARD32 *)prop_val)[3] ||
+		    (((CARD32 *)prop_val)[4] < 4) ||
+		    (((CARD32 *)prop_val)[4] & (((CARD32 *)prop_val)[4] - 1)) ||
+		    (((CARD32 *)prop_val)[2] & (((CARD32 *)prop_val)[4] - 1)))
+		    continue;
+
+		if ((prop_val[3] >= PCI_MAP_REG_END) &&
+		    (prop_val[3] != PCI_MAP_ROM_REG) &&
+		    (prop_val[3] != PCI_PCI_BRIDGE_ROM_REG))
+		    continue;
+
+		prop_val[0] = pciNumDomains;
+		pAddressSizes = xnfrealloc(pAddressSizes,
+		    sizeof(*pAddressSizes) * (nAddressSizes + 1));
+		pAddressSizes[nAddressSizes].tag = ((CARD32 *)prop_val)[0];
+		for (pAddressSizes[nAddressSizes].size = -1;
+		     ((CARD32 *)prop_val)[4];
+		     ((CARD32 *)prop_val)[4] >>= 1)
+		    pAddressSizes[nAddressSizes].size++;
+		nAddressSizes++;
+	    }
 	}
-    }
 
-    /* Retrieve and validate "class-code" property */
-    prop_val = promGetProperty("class-code", &prop_len);
-    if (prop_val && (prop_len == 4) &&
-	(prop_val[0] == 0) && (prop_val[1] == PCI_CLASS_BRIDGE) &&
-	((prop_val[2] == PCI_SUBCLASS_BRIDGE_PCI) ||
-	 (prop_val[2] == PCI_SUBCLASS_BRIDGE_CARDBUS)))
-	for (node = promGetChild(node);  node;  node = promGetSibling(node))
-	    sparcAssignedAddresses(pDomain, node);
+	/* Retrieve and validate "class-code" property */
+	prop_val = promGetProperty("class-code", &prop_len);
+	if (prop_val && (prop_len == 4) &&
+	    (prop_val[0] == 0) && (prop_val[1] == PCI_CLASS_BRIDGE) &&
+	    ((prop_val[2] == PCI_SUBCLASS_BRIDGE_PCI) ||
+	     (prop_val[2] == PCI_SUBCLASS_BRIDGE_CARDBUS)))
+		sparcScanPciTree(pDomain, node);
+    }
 }
 
 /* Return the PCI allocation sizes derived above */
@@ -381,7 +456,7 @@
 void
 sparcPciInit(void)
 {
-    int node, node2;
+    int node;
 
     if (!xf86LinearVidMem())
 	return;
@@ -405,7 +480,7 @@
 	pciBusFuncs_p      pFunctions;
 	char               *prop_val;
 	int                prop_len, bus;
-	char               shared_pci;
+	char               shared_pci, pciex;
 
 	prop_val = promGetProperty("name", &prop_len);
 	if (!prop_val || (prop_len < 3))
@@ -442,6 +517,12 @@
 
 	xf86Msg(X_INFO, "PCI host bridge found (\"%s\")\n", prop_val);
 
+	prop_val = promGetProperty("device_type", &prop_len);
+	if (prop_val && !strcmp("pciex", prop_val))
+	    pciex = 1;
+	else
+	    pciex = 0;
+
 	/* Get "bus-range" property */
 	prop_val = promGetProperty("bus-range", &prop_len);
 	if (!prop_val || (prop_len != 8) ||
@@ -504,8 +585,6 @@
 		break;
 
 	   case 2:	/* 32-bit memory space */
-	   case 3:	/* 64-bit memory space */
-	   default:	/* Muffle compiler */
 		if ((domain.mem_addr == phys_addr) &&
 		    (domain.mem_size == phys_size))
 		    break;
@@ -515,6 +594,10 @@
 		domain.mem_addr = phys_addr;
 		domain.mem_size = phys_size;
 		break;
+
+	   case 3:	/* 64-bit memory space */
+	   default:	/* Muffle compiler */
+		break;	/* Ignore, for now */
 	   }
 	}
 
@@ -550,6 +633,11 @@
 
 	domain.pci = (char *)domain.pci - (phys_addr - pci_addr);
 
+	/* Allocate bus/device/function bit map */
+	domain.bdf_mask = (unsigned char *)xnfcalloc(1,
+	    (domain.bus_max - domain.bus_min + 1) << 5) -
+	    (domain.bus_min << 5);
+
 	xf86MsgVerb(X_INFO, 4, "Adding PCI domain %d:\n", pciNumDomains);
 	xf86MsgVerb(X_INFO, 4,
 	    "PCI Configuration space: 0x%016llx, size: 0x%09llx\n",
@@ -581,6 +669,7 @@
 	pciBusInfo[bus]->numDevices = 32;
 	pciBusInfo[bus]->funcs = pFunctions;
 	pciBusInfo[bus]->pciBusPriv = pDomain;
+	pciBusInfo[bus]->pciMaxOffset = domain.maxOffset;
 	while (++bus < pciNumBuses) {
 	    pciBusInfo[bus] = xnfalloc(sizeof(pciBusInfo_t));
 	    *(pciBusInfo[bus]) = *(pciBusInfo[bus - 1]);
@@ -652,30 +741,30 @@
 	 * VGA, or if a PCI device actually implements PCI disablement.
 	 *
 	 * ---  TSI @ UQV  2001.09.19
+	 *
+	 * This has been changed to generate a bit map for all of an
+	 * interface's buses, because it appears that probing for a PCI Express
+	 * switch's downstream ports cannot be done without generating
+	 * interrupts that are untrappable from userland.  In effect, PCI
+	 * Express has entrenched the hard-failing of unsupported requests
+	 * (which include its equivalent to master aborts).
+	 *
+	 * ---  TSI @ UQV  2008.01.31
 	 */
-	for (node2 = promGetChild(node);
-	     node2;
-	     node2 = promGetSibling(node2)) {
-	    /* Get "reg" property */
-	    prop_val = promGetProperty("reg", &prop_len);
-	    if (prop_val && !(prop_len % 20)) {
-
-		/*
-		 * It's unnecessary to scan the entire "reg" property, but I'll
-		 * do so anyway.
-		 */
-		prop_len /= 20;
-		for (;  prop_len--;  prop_val += 20)
-		    SetBitInMap(PCI_DFN_FROM_TAG(*(CARD32 *)prop_val),
-			pDomain->dfn_mask);
-	    }
+	sparcScanPciTree(&domain, node);
 
-	    /* Scan "assigned-addresses" properties for resource sizes */
-	    sparcAssignedAddresses(&domain, node2);
-	}
+	/*
+	 * Assume the host bridge is device 0, function 0 on its bus.  Note
+	 * that this is valid for PCI Express as well, because the spec
+	 * requires that the other end of the link from a root port, or any
+	 * of a switch's downstream ports, be device 0, function 0.
+	 */
+	SetBitInMap(domain.bus_min << 8, pDomain->bdf_mask);
 
-	/* Assume the host bridge is device 0, function 0 on its bus */
-	SetBitInMap(0, pDomain->dfn_mask);
+	if ((domain.bus_min < domain.bus_max) &&
+	    (!pciex || (xf86Info.estimateSizesAggressively > 0)))
+	    memset(domain.bdf_mask + ((domain.bus_min + 1) << 5), 0xff,
+		(domain.bus_max - domain.bus_min) << 5);
 
 	pciNumDomains++;
 
@@ -916,7 +1005,10 @@
 
 #if defined(ARCH_PCI_PCI_BRIDGE)
 
+#define APB_DEVICE_ID		(DEVID(VENDOR_SUN, CHIP_SIMBA))
+
 /* Definitions specific to Sun's APB P2P bridge (a.k.a. Simba) */
+#define APB_INT_ACK		0xB8
 #define APB_IO_ADDRESS_MAP	0xDE
 #define APB_MEM_ADDRESS_MAP	0xDF
 
@@ -1006,13 +1098,29 @@
     }
 }
 
+static CARD32 (*wrappedPciReadLong)(PCITAG, int) = NULL;
+
+/*
+ * Wrapper function to avoid the interrupt acknowledge cycle that is generated
+ * on a Simba's secondary bus when its INT_ACK register is read.
+ */
+static CARD32
+simbaPciCfgRead32(PCITAG tag, int offset)
+{
+    if ((offset != APB_INT_ACK) ||
+	((*wrappedPciReadLong)(tag, PCI_ID_REG) != APB_DEVICE_ID))
+	return (*wrappedPciReadLong)(tag, offset);
+
+    return PCI_NOT_FOUND;
+}
+
 static pciConfigPtr
 simbaVerifyBus(int bus)
 {
     pciConfigPtr pPCI;
     if ((bus < 0) || (bus >= pciNumBuses) ||
 	!pciBusInfo[bus] || !(pPCI = pciBusInfo[bus]->bridge) ||
-	(pPCI->pci_device_vendor != DEVID(VENDOR_SUN, CHIP_SIMBA)))
+	(pPCI->pci_device_vendor != APB_DEVICE_ID))
 	return NULL;
 
     return pPCI;
@@ -1188,16 +1296,22 @@
     pciBusInfo_t *pBusInfo;
     CARD16 pcicommand;
 
-    if (pPCI->pci_device_vendor != DEVID(VENDOR_SUN, CHIP_SIMBA))
+    if (pPCI->pci_device_vendor != APB_DEVICE_ID)
 	return;
 
     pBusInfo = pPCI->businfo;
 
-    simbaBusFuncs = *(pBusInfo->funcs);
-    simbaBusFuncs.pciControlBridge = simbaControlBridge;
-    simbaBusFuncs.pciGetBridgeResources = simbaGetBridgeResources;
+    if (pBusInfo->funcs != &simbaBusFuncs) {
+	simbaBusFuncs = *(pBusInfo->funcs);
+
+	wrappedPciReadLong = simbaBusFuncs.pciReadLong;
+	simbaBusFuncs.pciReadLong = simbaPciCfgRead32;
 
-    pBusInfo->funcs = &simbaBusFuncs;
+	simbaBusFuncs.pciControlBridge = simbaControlBridge;
+	simbaBusFuncs.pciGetBridgeResources = simbaGetBridgeResources;
+
+	pBusInfo->funcs = &simbaBusFuncs;
+    }
 
     if (!simbavgaRoutingAllow)
 	return;
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h:1.48 xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h:1.50
--- xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h:1.48	Tue Feb 13 10:30:10 2007
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h	Thu Apr 24 13:54:54 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h,v 1.48 2007/02/13 18:30:10 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h,v 1.50 2008/04/24 20:54:54 tsi Exp $ */
 /*
  * Copyright 1998 by Concurrent Computer Corporation
  *
@@ -351,6 +351,13 @@
 #define PCI_IF_SERIAL_USB_DEVICE			0xfe
 #define PCI_SUBCLASS_SERIAL_FIBRECHANNEL	0x04
 #define PCI_SUBCLASS_SERIAL_SMBUS		0x05
+#define PCI_SUBCLASS_SERIAL_INFINIBAND		0x06
+#define PCI_SUBCLASS_SERIAL_IPMI		0x07
+#define PCI_IF_SERIAL_IPMI_SMIC				0x00
+#define PCI_IF_SERIAL_IPMI_KYBD				0x01
+#define PCI_IF_SERIAL_IPMI_BLOCK			0x02
+#define PCI_SUBCLASS_SERIAL_SERCOS		0x08
+#define PCI_SUBCLASS_SERIAL_CANBUS		0x09
 
 /* 0x0d wireless controller subclasses */
 #define PCI_SUBCLASS_WIRELESS_IRDA		0x00
@@ -358,6 +365,8 @@
 #define PCI_SUBCLASS_WIRELESS_RF		0x10
 #define PCI_SUBCLASS_WIRELESS_BLUETOOTH		0x11
 #define PCI_SUBCLASS_WIRELESS_BROADBAND		0x12
+#define PCI_SUBCLASS_WIRELESS_802_11A		0x20
+#define PCI_SUBCLASS_WIRELESS_802_11B		0x21
 #define PCI_SUBCLASS_WIRELESS_MISC		0x80
 
 /* 0x0e intelligent I/O controller subclasses */
@@ -430,7 +439,7 @@
 /* Pointer to first capability */
 #define PCI_CAP_PTR			0x34
 
-/* Interrupt configration register */
+/* Interrupt configuration register */
 #define PCI_INTERRUPT_REG		0x3c
 #define PCI_INTERRUPT_PIN_MASK		0x0000ff00
 #define PCI_INTERRUPT_PIN_EXTRACT(x)	\
@@ -465,19 +474,20 @@
 #define PCI_PPB_MEMLIMIT_EXTRACT(x)	(((x) <<  0) & 0xFFFF0000)
 
 #define PCI_PCI_BRIDGE_CONTROL_REG	0x3E
-#define PCI_PCI_BRIDGE_PARITY_EN	0x01
-#define PCI_PCI_BRIDGE_SERR_EN		0x02
-#define PCI_PCI_BRIDGE_ISA_EN		0x04
-#define PCI_PCI_BRIDGE_VGA_EN		0x08
-#define PCI_PCI_BRIDGE_MASTER_ABORT_EN	0x20
-#define PCI_PCI_BRIDGE_SECONDARY_RESET	0x40
-#define PCI_PCI_BRIDGE_FAST_B2B_EN	0x80
+#define PCI_PCI_BRIDGE_PARITY_EN	0x0001
+#define PCI_PCI_BRIDGE_SERR_EN		0x0002
+#define PCI_PCI_BRIDGE_ISA_EN		0x0004
+#define PCI_PCI_BRIDGE_VGA_EN		0x0008
+#define PCI_PCI_BRIDGE_VGA16_EN		0x0010
+#define PCI_PCI_BRIDGE_MASTER_ABORT_EN	0x0020
+#define PCI_PCI_BRIDGE_SECONDARY_RESET	0x0040
+#define PCI_PCI_BRIDGE_FAST_B2B_EN	0x0080
 /* header type 2 extensions */
-#define PCI_CB_BRIDGE_CTL_CB_RESET	0x40	/* CardBus reset */
-#define PCI_CB_BRIDGE_CTL_16BIT_INT	0x80	/* Enable interrupt for 16-bit cards */
-#define PCI_CB_BRIDGE_CTL_PREFETCH_MEM0	0x100
-#define PCI_CB_BRIDGE_CTL_PREFETCH_MEM1	0x200
-#define PCI_CB_BRIDGE_CTL_POST_WRITES	0x400
+#define PCI_CB_BRIDGE_CTL_CB_RESET	0x0040	/* CardBus reset */
+#define PCI_CB_BRIDGE_CTL_16BIT_INT	0x0080	/* Enable interrupt for 16-bit cards */
+#define PCI_CB_BRIDGE_CTL_PREFETCH_MEM0	0x0100
+#define PCI_CB_BRIDGE_CTL_PREFETCH_MEM1	0x0200
+#define PCI_CB_BRIDGE_CTL_POST_WRITES	0x0400
 
 #define PCI_CB_CAP_PTR			0x14
 #define PCI_CB_SEC_STATUS_REG		0x16	/* Secondary status */
@@ -514,8 +524,14 @@
 #define PCI_CAP_MSI_ID		0x05	/* Message Signaled Interrupts */
 #define PCI_CAP_CHSWP_ID	0x06	/* CompactPCI HotSwap */
 #define PCI_CAP_PCIX_ID		0x07	/* PCI-X */
+#define PCI_CAP_HT_ID		0x08	/* HyperTransport */
+#define PCI_CAP_VENDOR_ID	0x09	/* Vendor-specific */
+#define PCI_CAP_DEBUG_ID	0x0a	/* Debug port */
+#define PCI_CAP_CCRC		0x0b	/* CompactPCI central resource cntrl */
 #define PCI_CAP_SHPC_ID		0x0c	/* Standard Hot-Plug Controller */
-#define PCI_CAP_EXPRESS_ID	0x10	/* PCI Express */
+#define PCI_CAP_AGP8_ID		0x0e	/* AGP 8x */
+#define PCI_CAP_SECURE_ID	0x0f	/* Secure device */
+#define PCI_CAP_PCIE_ID		0x10	/* PCI Express */
 #define PCI_CAP_MSIX_ID		0x11	/* MSI-X */
 
 /* Capability header */
@@ -527,6 +543,64 @@
 #define PCI_CAP_PM_CSR		0x04	/* Control & Status */
 #define PCI_CAP_PM_MODE_MASK	0x03	/* Current mode (D0 to D3) */
 
+/* PCI-X Capability (incomplete) */
+#define PCI_CAP_PCIX_STAT	0x02	/* PCI-X status register */
+#define PCI_CAP_PCIX_STAT_MODE	0x03C0	/* Secondary mode & frequency */
+#define PCI_CAP_PCIX_STAT_PCIX2_MIN 8	/* Min. of above for PCI-X mode 2 */
+
+/* PCI Express Capability (incomplete) */
+#define PCI_CAP_PCIE_REG	0x02	/* 16 bits of R/O information */
+#define PCI_CAP_PCIE_DEVTYPE	0x00F0	/* PCI Express device type */
+#define PCI_CAP_PCIE_DEVTYPE_END      0x0 /* Endpoint with no I/O */
+#define PCI_CAP_PCIE_DEVTYPE_END_IO   0x1 /* Endpoint with I/O */
+#define PCI_CAP_PCIE_DEVTYPE_ROOT     0x4 /* Root port */
+#define PCI_CAP_PCIE_DEVTYPE_UP       0x5 /* Upstream port of switch */
+#define PCI_CAP_PCIE_DEVTYPE_DOWN     0x6 /* Downstream port of switch */
+#define PCI_CAP_PCIE_DEVTYPE_PCIE_PCI 0x7 /* PCI Express to PCI/PCI-X bridge */
+#define PCI_CAP_PCIE_DEVTYPE_PCI_PCIE 0x8 /* PCI/PCI-X to PCI Express bridge */
+#define PCI_CAP_PCIE_DEV_CAP	0x04	/* 32 more bits of R/O information */
+#define PCI_CAP_PCIE_DEV_CTL	0x08	/* Device control */
+#define PCI_CAP_PCIE_CR_EN	0x0001	/* Correctable error reporting en */
+#define PCI_CAP_PCIE_NFR_EN	0x0002	/* Non-fatal error reporting enable */
+#define PCI_CAP_PCIE_FR_EN	0x0004	/* Fatal error reporting enable */
+#define PCI_CAP_PCIE_URR_EN	0x0008	/* Unsupported request reporting en */
+
+/* PCI Express extended capability IDs */
+#define PCIE_CAP_AER_ID		0x0001	/* Advanced Error Reporting */
+#define PCIE_CAP_VC_ID		0x0002	/* Virtual Channel */
+#define PCIE_CAP_DSN_ID		0x0003	/* Device Serial Number */
+#define PCIE_CAP_PB_ID		0x0004	/* Power Budgeting */
+
+#define PCIE_CAP_HEADER		0x000	/* Capability Header */
+#define PCIE_CAP_ID		0x0000FFFF	/* Capability ID */
+#define PCIE_CAP_VERSION	0x000F0000	/* Capability Version */
+#define PCIE_CAP_NEXT		0xFFF00000	/* Next capability pointer */
+
+#define PCIE_CAP_FIRST		0x100	/* First capability pointer */
+
+/* Advanced Error Reporting Capability (incomplete) */
+#define PCIE_CAP_AER_UE_STATUS	0x004	/* Uncorrectable Error status */
+#define PCIE_CAP_AER_UE_MASK	0x008	/* Uncorrectable Error mask */
+#define PCIE_CAP_AER_UE_SEV	0x00c	/* Uncorrectable Error severity */
+/* The following bit valid for all three of the preceeding (incomplete) */
+#define PCIE_CAP_AER_UE_URE	0x00100000	/* Unsupported Request Error */
+#define PCIE_CAP_AER_CE_STATUS	0x010	/* Correctable Error status */
+#define PCIE_CAP_AER_CE_MASK	0x014	/* Correctable Error mask */
+#define PCIE_CAP_AER_CTL	0x018	/* AER control */
+#define PCIE_CAP_AER_HEADERLOG	0x01c	/* 4 Header Log registers */
+/* These exist only in PCI Express to PCI/PCI-X bridges */
+#define PCIE_CAP_AER_SUE_STATUS	0x02c	/* UE Secondary status */
+#define PCIE_CAP_AER_SUE_MASK	0x030	/* UE Secondary mask */
+#define PCIE_CAP_AER_SUE_SEV	0x034	/* UE Secondary severity */
+/* The following bits valid for all three of the preceeding (incomplete) */
+#define PCIE_CAP_AER_SUE_MA_SPLIT 0x0002 /* Master Abort on split status */
+#define PCIE_CAP_AER_SUE_MA	  0x0008 /* Master Abort */
+#define PCIE_CAP_AER_SUE_SAD	  0x1000 /* SERR# Assertion detected */
+#define PCIE_CAP_AER_SUE_MASTER_ABORT /* Convenience macro */ \
+	(PCIE_CAP_AER_SUE_MA | \
+	 PCIE_CAP_AER_SUE_MA_SPLIT | \
+	 PCIE_CAP_AER_SUE_SAD)
+
 /*
  * Typedefs, etc...
  */
@@ -605,7 +679,8 @@
 	    CARD32 cg_rsrvd1;			/* 0x10 */
 #if X_BYTE_ORDER == X_BIG_ENDIAN
 	    CARD16 secondary_status;		/* 0x16 */
-	    CARD16 cg_rsrvd2;			/* 0x14 */
+	    CARD8 cg_rsrvd2;			/* 0x15 */
+	    CARD8 cg_capptr;			/* 0x14 */
 
 	    union {
 		CARD32 cg_bus_reg;
@@ -617,7 +692,8 @@
 		} cgbr;
 	    } cgbr;
 #else
-	    CARD16 cg_rsrvd2;			/* 0x14 */
+	    CARD8 cg_capptr;			/* 0x14 */
+	    CARD8 cg_rsrvd2;			/* 0x15 */
 	    CARD16 secondary_status;		/* 0x16 */
 
 	    union {
@@ -726,11 +802,11 @@
 		} b_u_io;
 	    } uio_rom;
 #if X_BYTE_ORDER == X_BIG_ENDIAN
-	    CARD8 capptr;		/* Offset 0x34 */
 	    CARD8 rsvd3[3];		/* Offset 0x35 - 0x37 */
+	    CARD8 capptr;		/* Offset 0x34 */
 #else
-	    CARD8 rsvd3[3];		/* Offset 0x35 - 0x37 */
 	    CARD8 capptr;		/* Offset 0x34 */
+	    CARD8 rsvd3[3];		/* Offset 0x35 - 0x37 */
 #endif
 	    union {
 		CARD32 rsvd4;		/* Offset 0x38 - 0x3b */
@@ -794,6 +870,14 @@
     CARD32    listed_class;
     pointer   businfo;		/* pointer to secondary's bus info structure */
     Bool      fakeDevice;	/* Device added by system chipset support */
+    CARD16    pcie_cap_ptr;	/* PCI Express capability pointer */
+    CARD16    pcie_dev_ctl;	/* PCI Express device control */
+    CARD16    pcie_devtype;	/* PCI Express device type */
+    CARD16    aer_cap_ptr;	/* Advanced Error Reporting capability ptr */
+    CARD32    aer_ue_mask;	/* Uncorrectable Error mask */
+    CARD32    aer_ue_severity;	/* Uncorrectable Error severity */
+    CARD32    aer_sue_mask;	/* Uncorrectable Error Secondary mask */
+    CARD32    aer_sue_severity;	/* Uncorrectable Error Secondary severity */
 } pciDevice, *pciConfigPtr;
 
 typedef enum {
@@ -824,6 +908,7 @@
 #define pci_header_type		      cfgspc.regs.bhlc.bhlc.header_type
 #define pci_bist		      cfgspc.regs.bhlc.bhlc.bist
 #define pci_cb_secondary_status	      cfgspc.regs.cx.cg.secondary_status
+#define pci_cb_capptr		      cfgspc.regs.cx.cg.cg_capptr
 #define pci_cb_bus_register           cfgspc.regs.cx.cg.cgbr.cg_bus_reg
 #define pci_cb_primary_bus_number     cfgspc.regs.cx.cg.cgbr.cgbr.primary_bus_number
 #define pci_cb_cardbus_bus_number     cfgspc.regs.cx.cg.cgbr.cgbr.cardbus_bus_number
@@ -905,7 +990,6 @@
 PCITAG	      pciTag(int busnum, int devnum, int funcnum);
 int	      pciGetBaseSize(pciConfigPtr device, int indx,
 			     Bool destructive, int *min);
-CARD32	      pciCheckForBrokenBase(PCITAG tag,int basereg);
 Bool          xf86LocatePciMemoryArea(PCITAG tag,
 				      char **devName, unsigned int *devOffset,
 				      unsigned int *fbSize,
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h:1.13 xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h:1.14
--- xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h:1.13	Thu Mar 15 07:38:36 2007
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h	Wed Jun 18 08:37:42 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h,v 1.13 2007/03/15 14:38:36 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h,v 1.14 2008/06/18 15:37:42 tsi Exp $ */
 /*
  * Platform specific SBUS and OpenPROM access declarations.
  *
@@ -63,6 +63,7 @@
 
 # define FBIOSCURSOR		WSDISPLAYIO_SCURSOR
 # define FBIOGCURSOR		WSDISPLAYIO_GCURSOR
+# define FBIOSCURPOS		WSDISPLAYIO_SCURPOS
 
 # define FB_CUR_SETCUR		WSDISPLAY_CURSOR_DOCUR
 # define FB_CUR_SETPOS		WSDISPLAY_CURSOR_DOPOS
Index: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c:1.12 xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c:1.13
--- xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c:1.12	Fri Jan  5 06:52:09 2007
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c	Sat Jun 21 11:11:58 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c,v 1.12 2007/01/05 14:52:09 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c,v 1.13 2008/06/21 18:11:58 tsi Exp $ */
 /*
  * Copyright (C) 2002-2003 The XFree86 Project, Inc.
  * All rights reserved.
@@ -216,6 +216,7 @@
 static Bool          zx1_hasvga = FALSE;
 
 static pointer pZX1IoRes[8], pZX1MemRes[8];	/* Rope resources */
+static pciConfigPtr pFakePciBridge[8];
 
 static unsigned int sbaid;
 
@@ -243,6 +244,11 @@
 static INT8 *pDecode[MAX_RANGE];
 static int nRange = 0;
 
+/* Forward declarations */
+static CARD32 zx1FakeReadLong(PCITAG tag, int offset);
+static void   zx1FakeWriteLong(PCITAG tag, int offset, CARD32 val);
+static void   zx1FakeSetBits(PCITAG tag, int offset, CARD32 mask, CARD32 bits);
+
 /* Track a resource range and assign a granularity to it */
 static void
 SetRange(CARD64 base, CARD64 last, CARD8 width)
@@ -443,18 +449,48 @@
 }
 
 /* The fake bus */
+static pciBusFuncs_t zx1FakeBusFuncs = {
+    zx1FakeReadLong,
+    zx1FakeWriteLong,
+    zx1FakeSetBits
+};
+
+static pciBusInfo_t zx1FakeBus = {
+    0,			/* configMech -- copied from bus 0 */
+    0,			/* numDevices -- copied from bus 0 */
+    FALSE,		/* secondary */
+    0,			/* primary_bus -- dynamically set */
+#ifdef PowerMAX_OS
+    0,			/* ppc_io_base -- ignored */
+    0,			/* ppc_io_size -- ignored */
+#endif
+    &zx1FakeBusFuncs,	/* funcs */
+    NULL,		/* pciBusPriv -- none */
+    NULL,		/* bridge -- dynamically set */
+};
+
 static CARD32
 zx1FakeReadLong(PCITAG tag, int offset)
 {
-    FatalError("zx1FakeReadLong(0x%lX, 0x%X) called\n",
-	       (unsigned long)tag, offset);
+    pciConfigPtr pPCI;
+
+    if ((offset < 0) || (offset & 3) || (offset >= zx1FakeBus.pciMaxOffset))
+	return PCI_NOT_FOUND;
+
+    if (!(pPCI = zx1FakeBus.bridge) || (tag != pPCI->tag)) {
+	if (!(pPCI = pFakePciBridge[PCI_DEV_FROM_TAG(tag) & 0x07]) ||
+	    (tag != pPCI->tag))
+	    return PCI_NOT_FOUND;
+    }
+
+    return pPCI->cfgspc.dwords[offset >> 2];
 }
 
 static void
 zx1FakeWriteLong(PCITAG tag, int offset, CARD32 val)
 {
-    FatalError("zx1FakeWriteLong(0x%lX, 0x%X, 0x%08X) called\n",
-	       (unsigned long)tag, offset, val);
+    ErrorF("zx1FakeWriteLong(0x%lX, 0x%X, 0x%08X) called\n",
+	   (unsigned long)tag, offset, val);
 }
 
 static void
@@ -468,26 +504,6 @@
     zx1FakeWriteLong(tag, offset, val);
 }
 
-static pciBusFuncs_t zx1FakeBusFuncs = {
-    zx1FakeReadLong,
-    zx1FakeWriteLong,
-    zx1FakeSetBits
-};
-
-static pciBusInfo_t zx1FakeBus = {
-    0,			/* configMech -- copied from bus 0 */
-    0,			/* numDevices -- copied from bus 0 */
-    FALSE,		/* secondary */
-    0,			/* primary_bus -- dynamically set */
-#ifdef PowerMAX_OS
-    0,			/* ppc_io_base -- ignored */
-    0,			/* ppc_io_size -- ignored */
-#endif
-    &zx1FakeBusFuncs,	/* funcs */
-    NULL,		/* pciBusPriv -- none */
-    NULL,		/* bridge -- dynamically set */
-};
-
 /*
  * This checks for, and validates, the presence of the ZX1 chipset, and sets
  * pZX1mio to a non-NULL pointer accordingly.  This function is called before
@@ -974,6 +990,12 @@
     (void)memset(zx1_busnmpt, FALSE, sizeof(zx1_busnmpt));
     pBusInfo = pciBusInfo[0];
 
+    /* Bus 0 might be deleted below;  Save some of its data */
+    zx1BusFuncs = *(pBusInfo->funcs);
+    zx1FakeBus.configMech = pBusInfo->configMech;
+    zx1FakeBus.numDevices = pBusInfo->numDevices;
+    zx1FakeBus.pciMaxOffset = pBusInfo->pciMaxOffset;
+
     /*
      * Certain Linux kernels add fake PCI devices.  Remove them to prevent any
      * possible interference with our PCI validation.
@@ -1061,13 +1083,10 @@
     }
 
     /* Set up our extra bus functions */
-    zx1BusFuncs = *(pBusInfo->funcs);
     zx1BusFuncs.pciControlBridge = ControlZX1Bridge;
     zx1BusFuncs.pciGetBridgeResources = GetZX1BridgeResources;
 
     /* Set up our own fake bus to act as the root segment */
-    zx1FakeBus.configMech = pBusInfo->configMech;
-    zx1FakeBus.numDevices = pBusInfo->numDevices;
     zx1FakeBus.primary_bus = zx1_fakebus;
     pciBusInfo[zx1_fakebus] = &zx1FakeBus;
 
@@ -1079,6 +1098,7 @@
     pPCI->busnum = zx1_fakebus;
  /* pPCI->devnum = pPCI->funcnum = 0; */
     pPCI->pci_device_vendor = sbaid;
+    pPCI->pci_status_command = PCI_CMD_IO_ENABLE | PCI_CMD_MEM_ENABLE;
     pPCI->pci_base_class = PCI_CLASS_BRIDGE;
  /* pPCI->pci_sub_class = PCI_SUBCLASS_BRIDGE_HOST; */
     pPCI->fakeDevice = TRUE;
@@ -1102,6 +1122,7 @@
 
     /* Add a fake PCI-to-PCI bridge to represent each active rope */
     for (i = 0;  i < 8;  i++) {
+	pFakePciBridge[i] = NULL;
 	if ((zx1_ropemap[i] != i) || (zx1_busno[i] > zx1_subno[i]) ||
 	    !(pBusInfo = pciBusInfo[zx1_busno[i]]))
 	    continue;
@@ -1114,13 +1135,16 @@
      /* pPCI->funcnum = 0; */
 	pPCI->tag = PCI_MAKE_TAG(zx1_fakebus, pPCI->devnum, 0);
 	pPCI->pci_device_vendor = zx1_pciids[i];
+	pPCI->pci_status_command = PCI_CMD_IO_ENABLE | PCI_CMD_MEM_ENABLE;
 	pPCI->pci_base_class = PCI_CLASS_BRIDGE;
 	pPCI->pci_sub_class = PCI_SUBCLASS_BRIDGE_PCI;
 	pPCI->pci_header_type = 1;
 	pPCI->pci_primary_bus_number = zx1_fakebus;
 	pPCI->pci_secondary_bus_number = zx1_busno[i];
 	pPCI->pci_subordinate_bus_number = zx1_subno[i];
+
 	pPCI->fakeDevice = TRUE;
+	pFakePciBridge[i] = pPCI;
 
 	pBusInfo->bridge = pPCI;
 	pBusInfo->secondary = TRUE;
Index: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile
diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile:3.55 xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile:3.56
--- xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile:3.55	Fri Oct 14 08:17:03 2005
+++ xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile	Sat Sep 15 20:32:24 2007
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile,v 3.55 2005/10/14 15:17:03 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile,v 3.56 2007/09/16 03:32:24 tsi Exp $
 /*
  * Copyright (c) 1994-2004 by The XFree86 Project, Inc.
  * All rights reserved.
@@ -160,7 +160,6 @@
 #endif
 DependTarget()
 
-InstallDriverSDKNonExecFile(agpgart.h,$(DRIVERSDKINCLUDEDIR)/linux)
 #if 0
 InstallDriverSDKDynamicModule(lnx_jstk.o,$(DRIVERSDKMODULEDIR))
 #endif
Index: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c:3.21 xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c:3.22
--- xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c:3.21	Mon Jun 19 08:14:57 2006
+++ xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c	Tue Jul  1 11:16:44 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.21 2006/06/19 15:14:57 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.22 2008/07/01 18:16:44 tsi Exp $ */
 
 /* Resource information code */
 
@@ -204,9 +204,9 @@
     RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
     ret = xf86AddResToList(ret, &range, -1);
 
-#if defined(__sparc__) || defined(__powerpc__)
+#if defined(__sparc__)
     RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
-#elif defined(__mips__)
+#elif defined(__mips__) || defined(__powerpc__)
     RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
 #else
     RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@@ -224,9 +224,9 @@
     RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
     ret = xf86AddResToList(ret, &range, -1);
 
-#if defined(__sparc__) || defined(__powerpc__)
+#if defined(__sparc__)
     RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
-#elif defined(__mips__)
+#elif defined(__mips__) || defined(__powerpc__)
     RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
 #else
     RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@@ -246,9 +246,9 @@
     RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
     ret = xf86AddResToList(ret, &range, -1);
 
-#if defined(__sparc__) || defined(__powerpc__)
+#if defined(__sparc__)
     RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
-#elif defined(__mips__)
+#elif defined(__mips__) || defined(__powerpc__)
     RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
 #else
     RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@@ -274,9 +274,9 @@
     ret = xf86AddResToList(ret, &range, -1);
     RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock);
     ret = xf86AddResToList(ret, &range, -1);
-#if defined(__sparc__) || defined(__powerpc__)
+#if defined(__sparc__)
     RANGE(range, 0x00ffffff, 0x00ffffff, ResExcIoBlock);
-#elif defined(__mips__)
+#elif defined(__mips__) || defined(__powerpc__)
     RANGE(range, 0xffffffff, 0xffffffff, ResExcIoBlock);
 #else
     RANGE(range, 0x0000ffff, 0x0000ffff, ResExcIoBlock);
Index: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/Imakefile
diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/int10/Imakefile:1.21 xc/programs/Xserver/hw/xfree86/os-support/linux/int10/Imakefile:1.22
--- xc/programs/Xserver/hw/xfree86/os-support/linux/int10/Imakefile:1.21	Sun Oct 16 11:31:10 2005
+++ xc/programs/Xserver/hw/xfree86/os-support/linux/int10/Imakefile	Tue Apr  1 10:18:22 2008
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/Imakefile,v 1.21 2005/10/16 18:31:10 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/Imakefile,v 1.22 2008/04/01 17:18:22 tsi Exp $
 /*
  * Copyright (c) 1994-2004 by The XFree86 Project, Inc.
  * All rights reserved.
@@ -70,6 +70,9 @@
 LNXDEF = -DDoSubModules
 #endif
 
+#if defined(i386Architecture) || defined(AMD64Architecture)
+PC_DEFINES=-D_PC
+#endif
 
 #ifdef IHaveSubdirs
 MakeSubdirs($(SUBDIRS))
@@ -79,24 +82,14 @@
 SRCS = pci.c xf86int10module.c helper_mem.c linux.c
 OBJS = pci.o xf86int10module.o helper_mem.o linux.o
 
-
 LinkSourceFile(helper_mem.c,$(XF86SRC)/int10)
 LinkSourceFile(pci.c,$(XF86SRC)/int10)
 LinkSourceFile(xf86int10module.c,$(XF86SRC)/int10)
 
-
 INCLUDES = -I$(XF86COMSRC) -I$(XF86SRC)/int10 -I$(XF86OSSRC) \
            -I$(SERVERSRC)/include
 
-DEFINES = $(EXTRADEFINES)
-
-#if defined(i386Architecture) || defined (AMD64Architecture)
-EXTRADEFINES=-D_PC
-#endif
-
-
-SpecialObjectRule(linux.o, linux.c,$(LNXDEF))
-
+DEFINES = $(LNXDEF) $(PC_DEFINES)
 
 #if defined(XF86INT10_BUILD) && XF86INT10_BUILD > X86EMU_GENERIC
 
@@ -104,7 +97,7 @@
 
 #if HasParallelMake && defined (DoSingleLib)
 MakeMutex($(SUBDIRS) $(EXPOBJS) $(DONES))
-#endif  
+#endif
 
 LibraryModuleTarget(int10, $(OBJS)  $(EXPOBJS),linux)
 
@@ -120,4 +113,3 @@
 #endif
 
 DependTarget()
-
Index: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c:1.35 xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c:1.36
--- xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c:1.35	Mon Feb 20 08:06:35 2006
+++ xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c	Wed Oct 15 13:56:03 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.35 2006/02/20 16:06:35 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.36 2008/10/15 20:56:03 tsi Exp $ */
 /*
  * linux specific part of the int10 module
  * Copyright 1999 Egbert Eich
@@ -609,10 +609,10 @@
 {
     int __res;
 
-#ifdef __PIC__
+#if defined(__PIC__) && !defined(__amd64__) && !defined(__x86_64__)
     /*
-     * When compiling with -fPIC, we can't use asm constraint "b" because
-     * %ebx is already taken by gcc.
+     * When compiling with -fPIC on i386, we can't use asm constraint "b"
+     * because %ebx is already taken by gcc to hold the GOT address.
      */
     __asm__ __volatile__
     (
Index: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/Imakefile
diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/Imakefile:1.8 xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/Imakefile:1.9
--- xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/Imakefile:1.8	Sun Oct 16 11:31:10 2005
+++ xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/Imakefile	Tue Apr  1 10:18:22 2008
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/Imakefile,v 1.8 2005/10/16 18:31:10 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/Imakefile,v 1.9 2008/04/01 17:18:22 tsi Exp $
 /*
  * Copyright (c) 1994-2004 by The XFree86 Project, Inc.
  * All rights reserved.
@@ -50,12 +50,16 @@
 
 #include <Server.tmpl>
 
-SRCS1 = linux_vm86.c helper_exec.c xf86int10.c 
-OBJS1 = linux_vm86.o helper_exec.o xf86int10.o 
+SRCS1 = linux_vm86.c helper_exec.c xf86int10.c
+OBJS1 = linux_vm86.o helper_exec.o xf86int10.o
 
-#if  defined(DoLoadableServer) && defined(Int10SubLibs)
+#if defined(DoLoadableServer) && defined(Int10SubLibs)
 SUBMODSRCS = xf86vm86module.c
-SUBMODOBJS = xf86vm86module.o 
+SUBMODOBJS = xf86vm86module.o
+#endif
+
+#if defined(i386Architecture) || defined(AMD64Architecture)
+PC_DEFINES=-D_PC
 #endif
 
 OBJS = $(SUBMODOBJS) $(OBJS1)
@@ -69,11 +73,7 @@
 INCLUDES = -I$(XF86COMSRC) -I$(XF86SRC)/int10 -I$(XF86OSSRC) \
            -I$(SERVERSRC)/include
 
-DEFINES = $(EXTRADEFINES)
-
-#if defined(i386Architecture) || defined (AMD64Architecture)
-EXTRADEFINES=-D_PC
-#endif
+DEFINES = $(PC_DEFINES)
 
 SpecialObjectRule(xf86vm86module.o, xf86vm86module.c, -DMOD_NAME=vm86)
 SpecialObjectRule(helper_exec.o, helper_exec.c, -D_VM86_LINUX)
@@ -82,7 +82,7 @@
 
 ModuleObjectRule()
 
-#if  defined(DoLoadableServer) && defined(Int10SubLibs)
+#if defined(DoLoadableServer) && defined(Int10SubLibs)
 LibraryModuleTarget(vm86, $(OBJS),linux)
 InstallLibraryModule(vm86,$(MODULEDIR),linux)
 
Index: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c:1.5 xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c:1.6
--- xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c:1.5	Thu Jun  2 19:01:37 2005
+++ xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c	Wed Oct 15 13:56:04 2008
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c,v 1.5 2005/06/03 02:01:37 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c,v 1.6 2008/10/15 20:56:04 tsi Exp $ */
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
@@ -268,10 +268,10 @@
 {
     int __res;
 
-#ifdef __PIC__
+#if defined(__PIC__) && !defined(__amd64__) && !defined(__x86_64__)
     /*
-     * When compiling with -fPIC, we can't use asm constraint "b" because
-     * %ebx is already taken by gcc.
+     * When compiling with -fPIC on i386, we can't use asm constraint "b"
+     * because %ebx is already taken by gcc to hold the GOT address.
      */
     __asm__ __volatile__
     (
Index: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/x86emu/Imakefile
diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/int10/x86emu/Imakefile:1.7 xc/programs/Xserver/hw/xfree86/os-support/linux/int10/x86emu/Imakefile:1.8
--- xc/programs/Xserver/hw/xfree86/os-support/linux/int10/x86emu/Imakefile:1.7	Fri Oct 14 08:17:04 2005
+++ xc/programs/Xserver/hw/xfree86/os-support/linux/int10/x86emu/Imakefile	Tue Apr  1 10:18:23 2008
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/x86emu/Imakefile,v 1.7 2005/10/14 15:17:04 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/x86emu/Imakefile,v 1.8 2008/04/01 17:18:23 tsi Exp $
 /*
  * Copyright (c) 1994-2004 by The XFree86 Project, Inc.
  * All rights reserved.
@@ -50,12 +50,12 @@
 
 #include <Server.tmpl>
 
-SRCS1 = xf86x86emu.c helper_exec.c xf86int10.c 
-OBJS1 = xf86x86emu.o helper_exec.o xf86int10.o 
+SRCS1 = xf86x86emu.c helper_exec.c xf86int10.c
+OBJS1 = xf86x86emu.o helper_exec.o xf86int10.o
 
-#if  defined(DoLoadableServer) && defined(Int10SubLibs)
+#if defined(DoLoadableServer) && defined(Int10SubLibs)
 SUBMODSRCS = xf86x86emumodule.c
-SUBMODOBJS = xf86x86emumodule.o 
+SUBMODOBJS = xf86x86emumodule.o
 #endif
 
 SRCS2 = $(SUBMODSRCS) $(SRCS1)
@@ -66,27 +66,16 @@
 LinkSourceFile(xf86x86emu.c,$(XF86SRC)/int10)
 LinkFile(xf86x86emumodule.c,$(XF86SRC)/int10/xf86int10module.c)
 
-
-INCLUDES = -I$(XF86COMSRC) -I$(XF86SRC)/int10 -I$(XF86OSSRC) \
-           -I$(SERVERSRC)/include -I$(X86EMUINCLUDES)
-
-DEFINES = $(X86EMUDEFINES) $(EXTRADEFINES)
-
-#if defined(i386Architecture) || defined (AMD64Architecture)
+#if defined(i386Architecture) ||defined (AMD64Architecture)
 EXTRADEFINES=-D_PC
 #endif
 
-SpecialObjectRule(xf86x86emumodule.o, xf86x86emumodule.c, -DMOD_NAME=x86emu)
-SpecialObjectRule(helper_exec.o, helper_exec.c, -D_X86EMU)
-SpecialObjectRule(xf86int10.o, xf86int10.c, -D_X86EMU -DSHOW_ALL_DEVICES)
-SpecialObjectRule(linux.o, linux.c, -D_X86EMU)
-
 X86TOPDIR = $(TOP)/extras/x86emu
 X86SRCDIR = $(X86TOPDIR)/src/x86emu
 X86EMUINCLUDES = $(X86TOPDIR)/include -I$(X86SRCDIR)
 X86EMUDEFINES = -D__DRIVER__ -DFORCE_POST -D_CEXPORT= -DNO_LONG_LONG
 
-#if !defined(X86EMU_LIBPATH) 
+#if !defined(X86EMU_LIBPATH)
 X86EMUSRCS = debug.c decode.c fpu.c ops.c ops2.c prim_ops.c sys.c
 X86EMUOBJS = debug.o decode.o fpu.o ops.o ops2.o prim_ops.o sys.o
 
@@ -100,14 +89,24 @@
 #else
 BuildObjectFromLibraryWithPath(X86EMU_LIBPATH,x86emu,x86emu)
 X86EMUOBJS = x86emu.o
-#endif 
+#endif
 
 SRCS = $(SRCS2) $(X86EMUSRCS)
 OBJS = $(OBJS2) $(X86EMUOBJS)
 
+INCLUDES = -I$(XF86COMSRC) -I$(XF86SRC)/int10 -I$(XF86OSSRC) \
+           -I$(SERVERSRC)/include -I$(X86EMUINCLUDES)
+
+DEFINES = $(X86EMUDEFINES) $(EXTRADEFINES)
+
+SpecialObjectRule(xf86x86emumodule.o, xf86x86emumodule.c, -DMOD_NAME=x86emu)
+SpecialObjectRule(helper_exec.o, helper_exec.c, -D_X86EMU)
+SpecialObjectRule(xf86int10.o, xf86int10.c, -D_X86EMU -DSHOW_ALL_DEVICES)
+SpecialObjectRule(linux.o, linux.c, -D_X86EMU)
+
 ModuleObjectRule()
 
-#if  defined(DoLoadableServer) && defined(Int10SubLibs)
+#if defined(DoLoadableServer) && defined(Int10SubLibs)
 LibraryModuleTarget(x86emu, $(OBJS),linux)
 
 InstallLibraryModule(x86emu,$(MODULEDIR),linux)
@@ -123,4 +122,3 @@
 #endif
 
 DependTarget()
-
Index: xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h
diff -u xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h:1.5 xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h:1.6
--- xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h:1.5	Fri Feb 16 07:57:28 2007
+++ xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h	Tue Mar 18 12:41:55 2008
@@ -1,3 +1,4 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h,v 1.6 2008/03/18 19:41:55 tsi Exp $ */
 /**
  * \file drm.h 
  * Header for the Direct Rendering Manager
@@ -42,7 +43,6 @@
 #endif
 
 #if defined(__linux__)
-#include <linux/config.h>
 #include <asm/ioctl.h>		/* For _IO* macros */
 #define DRM_IOCTL_NR(n)		_IOC_NR(n)
 #define DRM_IOC_VOID		_IOC_NONE
Index: xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c
diff -u xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c:1.10 xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c:1.16
--- xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c:1.10	Sat Sep  2 09:44:22 2006
+++ xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c	Mon May 19 09:11:44 2008
@@ -1,8 +1,9 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c,v 1.10 2006/09/02 16:44:22 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c,v 1.16 2008/05/19 16:11:44 tsi Exp $ */
 /*
  * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
  * Copyright 1993 by David Wexelblat <dwex@goblin.org>
  * Copyright 1999 by David Holland <davidh@iquest.net>
+ * Copyright 2008 by Marc Aurele La France (TSI @ UQV), <tsi@xfree86.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -27,6 +28,9 @@
 #include "xf86Priv.h"
 #include "xf86_OSlib.h"
 
+#include <sys/stropts.h>
+#include <sys/strredir.h>
+
 static Bool KeepTty = FALSE;
 static Bool Protect0 = FALSE;
 #ifdef HAS_USL_VTS
@@ -36,6 +40,137 @@
 
 static char fb_dev[PATH_MAX] = "/dev/console";
 
+#ifdef NOREDIRECT
+#undef SRIOCSREDIR
+#endif
+
+#ifdef SRIOCSREDIR
+static char *redirfn = NULL;
+static FILE *redirfd = NULL;
+static Bool  redired = FALSE;
+static int   pipe_fds[2] = {-1, -1};
+static Bool  redirectConsole = TRUE;
+
+static void
+xf86CopyRedirectedConsole(void)
+{
+    long length;
+    char buffer[16];	/* Increase size for efficiency */
+
+    while ((length = read(pipe_fds[1], buffer, sizeof(buffer))) > 0) {
+	redired = TRUE;
+	fwrite(buffer, 1, length, redirfd);
+    }
+}
+
+static void
+xf86ReadRedirectedConsole(pointer pData, int error, pointer pMask)
+{
+    if ((error >= 0) && pMask && FD_ISSET(pipe_fds[1], (fd_set *)pMask))
+	xf86CopyRedirectedConsole();
+
+    fflush(redirfd);
+    fsync(fileno(redirfd));
+}
+
+/*
+ * This attempts to redirect /dev/console output (from anything in the system)
+ * while the server is running into a file.  This file is copied back into
+ * /dev/console on server exit.  If this redirection fails, we at least
+ * redirect the server's own output into the log.
+ *
+ * This is being done to help avoid screen corruption while the server is
+ * running.
+ *
+ * Note that /dev/wscons output will still corrupt the screen, but there
+ * doesn't seem to be anything that can be done about that.
+ */
+static void
+xf86RedirectConsole(void)
+{
+    int consolefd;
+
+    /* fb_dev can be overridden */
+    if ((consolefd = open("/dev/console", O_RDWR | O_NDELAY)) < 0)
+	return;
+
+    xasprintf(&redirfn, "%s.console", xf86FilePaths->logFile);
+    if (!redirfn) {
+	xf86Msg(X_WARNING, "xf86RedirectConsole:  could not allocate console"
+		" redirection file name (%s)\n", strerror(errno));
+	goto done;
+    }
+
+    if (!(redirfd = fopen(redirfn, "w"))) {
+	xf86Msg(X_WARNING, "xf86RedirectConsole:  could not open \"%s\""
+		" (%s)\n", redirfn, strerror(errno));
+	goto openfail;
+    }
+
+    if (pipe(pipe_fds) < 0) {
+	xf86Msg(X_WARNING, "xf86RedirectConsole:  could not create pipe for"
+		" console redirection (%s)\n", strerror(errno));
+	goto pipefail;
+    }
+
+    if (fcntl(pipe_fds[1], F_SETFL, O_NDELAY) < 0) {
+	xf86Msg(X_WARNING, "xf86RedirectConsole:  fcntl /dev/console O_NDELAY"
+		" failure (%s)\n", strerror(errno));
+	goto cntlfail;
+    }
+
+    if (ioctl(consolefd, SRIOCSREDIR, pipe_fds[0]) < 0) {
+	if (errno != EBUSY) {
+	    xf86Msg(X_WARNING, "xf86RedirectConsole:  ioctl /dev/console"
+		    " SRIOCSREDIR failure (%s)\n", strerror(errno));
+	    goto cntlfail;
+	}
+
+	/*
+	 * At this point, something else in the system (likely a shell) has
+	 * a read hung on /dev/console (or is flooding it).  On the premise
+	 * (but not certainty) that the server's stderr is also /dev/console,
+	 * redirect that output into the log, closing that reference to
+	 * /dev/console.  At the very least, this means that server messages
+	 * will not corrupt the screen (although /dev/console output by
+	 * something other than the server will still do so).
+	 *
+	 * One downside of doing this is that, should the server fail for any
+	 * reason, failure messages will only appear in the log.
+	 */
+	LogSetParameter(XLOG_STDERR, 1);
+
+	/*
+	 * Try again, just in case /dev/console redirection isn't as broken as
+	 * I believe it to be.
+	 */
+	if (ioctl(consolefd, SRIOCSREDIR, pipe_fds[0]) < 0) {
+	    xf86Msg(X_WARNING, "xf86RedirectConsole:  ioctl /dev/console"
+		    " SRIOCSREDIR failure (%s)\n", strerror(errno));
+	    goto cntlfail;
+	}
+    }
+
+    AddEnabledDevice(pipe_fds[1]);
+    RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA,
+				   xf86ReadRedirectedConsole, NULL);
+    goto done;
+
+cntlfail:
+    close(pipe_fds[0]);
+    close(pipe_fds[1]);
+    pipe_fds[0] = pipe_fds[1] = -1;
+pipefail:
+    fclose(redirfd);
+    redirfd = NULL;
+openfail:
+    xfree(redirfn);
+    redirfn = NULL;
+done:
+    close(consolefd);
+}
+#endif /* SRIOCSREDIR */
+
 void
 xf86OpenConsole(void)
 {
@@ -94,7 +229,8 @@
 		    strerror(errno));
 
 	    if (ioctl(fd, VT_GETSTATE, &vtinfo) < 0)
-		FatalError("xf86OpenConsole: Cannot determine current VT\n");
+		FatalError("xf86OpenConsole: Cannot determine current VT"
+			   " (%s)\n", strerror(errno));
 
 	    xf86StartVT = vtinfo.v_active;
 
@@ -117,7 +253,7 @@
 		    FreeVTslot = 1;
 
 	    if (!FreeVTslot ||
-	        (ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
+		(ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
 		(xf86Info.vtno == -1))
 		FatalError("xf86OpenConsole: Cannot find a free VT\n");
 
@@ -146,13 +282,16 @@
 	 * Now get the VT
 	 */
 	if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, xf86Info.vtno) != 0)
-	    xf86Msg(X_WARNING, "xf86OpenConsole: VT_ACTIVATE failed\n");
+	    xf86Msg(X_WARNING, "xf86OpenConsole: VT_ACTIVATE failed (%s)\n",
+		    strerror(errno));
 
 	if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) != 0)
-	    xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed\n");
+	    xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed (%s)\n",
+		    strerror(errno));
 
 	if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0)
-	    FatalError("xf86OpenConsole: VT_GETMODE failed\n");
+	    FatalError("xf86OpenConsole: VT_GETMODE failed (%s)\n",
+		       strerror(errno));
 
 	signal(SIGUSR1, xf86VTRequest);
 
@@ -161,16 +300,24 @@
 	VT.acqsig = SIGUSR1;
 
 	if (ioctl(xf86Info.consoleFd, VT_SETMODE, &VT) < 0)
-	    FatalError("xf86OpenConsole: VT_SETMODE VT_PROCESS failed\n");
+	    FatalError("xf86OpenConsole: VT_SETMODE VT_PROCESS failed (%s)\n",
+		       strerror(errno));
 
+#ifdef KDSETMODE
 	if (ioctl(xf86Info.consoleFd, KDSETMODE, KD_GRAPHICS) < 0)
-	    FatalError("xf86OpenConsole: KDSETMODE KD_GRAPHICS failed\n");
+	    FatalError("xf86OpenConsole: KDSETMODE KD_GRAPHICS failed (%s)\n",
+		       strerror(errno));
+#endif
 #else
 #ifdef KDSETMODE
 	/* This may fail. */
 	ioctl(xf86Info.consoleFd, KDSETMODE, KD_GRAPHICS);
 #endif
 #endif
+#ifdef SRIOCSREDIR
+	if (redirectConsole)
+	    xf86RedirectConsole();
+#endif
     }
 #ifdef HAS_USL_VTS
     else /* serverGeneration != 1 */
@@ -179,10 +326,12 @@
 	 * Now re-get the VT
 	 */
 	if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, xf86Info.vtno) != 0)
-	    xf86Msg(X_WARNING, "xf86OpenConsole: VT_ACTIVATE failed\n");
+	    xf86Msg(X_WARNING, "xf86OpenConsole: VT_ACTIVATE failed (%s)\n",
+		    strerror(errno));
 
 	if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) != 0)
-	    xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed\n");
+	    xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed (%s)\n",
+		    strerror(errno));
 
 	/*
 	 * If the server doesn't have the VT when the reset occurs,
@@ -211,33 +360,49 @@
 
     if (!xf86DoProbe && !xf86DoConfigure) {
 	/*
-	 * Wipe out framebuffer just like the non-SI Xsun server does.  This
-	 * could be improved by saving framebuffer contents in
-	 * xf86OpenConsole() above and restoring them here.  Also, it's unclear
-	 * at this point whether this should be done for all framebuffers in
-	 * the system, rather than only the console.
+	 * Wipe out framebuffers, given we have nothing to restore them with.
 	 */
-	struct fbgattr fbattr;
+	for (tmp = 0;  ;  tmp++) {
+	    struct fbgattr fbattr;
+	    char *fbdev;
+	    int fd;
+
+	    fbdev = NULL;
+	    xasprintf(&fbdev, "/dev/fb%d", tmp);
+	    if (!fbdev) {
+		xf86Msg(X_WARNING,
+			"Cannot allocate space for framebuffer name\n");
+		break;
+	    }
 
-	if ((ioctl(xf86Info.consoleFd, FBIOGATTR, &fbattr) < 0) &&
-	    (ioctl(xf86Info.consoleFd, FBIOGTYPE, &fbattr.fbtype) < 0)) {
-	    xf86Msg(X_WARNING,
-		    "xf86CloseConsole():  unable to retrieve framebuffer"
-		    " attributes (%s)\n", strerror(errno));
-	} else {
-	    pointer fbdata;
-
-	    fbdata = mmap(NULL, fbattr.fbtype.fb_size,
-			  PROT_READ | PROT_WRITE, MAP_SHARED,
-			  xf86Info.consoleFd, 0);
-	    if (fbdata == MAP_FAILED) {
+	    fd = open(fbdev, O_RDWR | O_NDELAY, 0);
+	    if (fd < 0) {
+		xfree(fbdev);
+		break;
+	    }
+
+	    if ((ioctl(fd, FBIOGATTR, &fbattr) < 0) &&
+		(ioctl(fd, FBIOGTYPE, &fbattr.fbtype) < 0)) {
 		xf86Msg(X_WARNING,
-			"xf86CloseConsole():  unable to mmap framebuffer"
-			" (%s)\n", strerror(errno));
+			"xf86CloseConsole: Unable to retrieve %s attributes"
+			" (%s)\n", fbdev, strerror(errno));
 	    } else {
-		(void)memset(fbdata, 0, fbattr.fbtype.fb_size);
-		(void)munmap(fbdata, fbattr.fbtype.fb_size);
+		pointer fbdata;
+
+		fbdata = mmap(NULL, fbattr.fbtype.fb_size,
+			      PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+		if (fbdata == MAP_FAILED) {
+		    xf86Msg(X_WARNING,
+			    "xf86CloseConsole: Unable to mmap %s (%s)\n",
+			    fbdev, strerror(errno));
+		} else {
+		    (void)memset(fbdata, 0, fbattr.fbtype.fb_size);
+		    (void)munmap(fbdata, fbattr.fbtype.fb_size);
+		}
 	    }
+
+	    close(fd);
+	    xfree(fbdev);
 	}
     }
 
@@ -275,6 +440,48 @@
 
 #endif /* HAS_USL_VTS */
 
+#ifdef SRIOCSREDIR
+    if (pipe_fds[1] >= 0) {
+	/* Catch the last little bit, if any */
+	xf86CopyRedirectedConsole();
+
+	close(pipe_fds[0]);
+	close(pipe_fds[1]);
+	pipe_fds[0] = -1;
+
+	fclose(redirfd);
+
+	if (redired) {
+	    /* Copy data back to /dev/console */
+	    if ((pipe_fds[1] = open(redirfn, O_RDONLY)) < 0) {
+		xf86Msg(X_WARNING, "xf86CloseConsole:  could not reopen \"%s\""
+			" (%s)\n", redirfn, strerror(errno));
+	    } else {
+		if (!(redirfd = fopen("/dev/console", "w"))) {
+		    xf86Msg(X_WARNING, "xf86CloseConsole:  could not reopen"
+			    " \"/dev/console\" (%s)\n", strerror(errno));
+		} else {
+		    putc('\n', redirfd);
+		    xf86CopyRedirectedConsole();
+
+		    fclose(redirfd);
+		}
+
+		close(pipe_fds[1]);
+	    }
+
+	    redired = FALSE;
+	}
+
+	pipe_fds[1] = -1;
+	redirfd = NULL;
+
+	unlink(redirfn);
+	xfree(redirfn);
+	redirfn = NULL;
+    }
+#endif
+
     close(xf86Info.consoleFd);
 
 #if defined(__SOL8__) || defined(__sparc__)
@@ -318,6 +525,17 @@
 	return 1;
     }
 
+#ifdef SRIOCSREDIR
+    /*
+     * Disable /dev/console redirection (for testing purposes).
+     */
+    if (!strcmp(argv[i], "-noredirect"))
+    {
+	redirectConsole = FALSE;
+	return 1;
+    }
+#endif
+
 #ifdef HAS_USL_VTS
 
     if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
@@ -371,6 +589,10 @@
     ErrorF("-ar2 <float>           Set autorepeat interval time (sec)\n");
     ErrorF("                       (if not using XKB)\n");
 #endif
+#ifdef SRIOCSREDIR
+    ErrorF("-noredirect            Don't redirect /dev/console output\n");
+    ErrorF("                       while the X server is running\n");
+#endif
     ErrorF("-keeptty               Don't detach controlling tty\n");
     ErrorF("                       (for debugging only)\n");
 }
