xserver: Branch 'pci-rework' - 191 commits

Ian Romanick idr at kemper.freedesktop.org
Thu Aug 23 18:52:24 PDT 2007


 .gitignore                                          |    1 
 COPYING                                             | 2717 +++
 GL/glx/Makefile.am                                  |    1 
 GL/glx/glxcmds.c                                    |   53 
 GL/glx/glxcmdsswap.c                                |    9 
 GL/glx/glxdrawable.h                                |    1 
 GL/glx/glxdri.c                                     |   44 
 GL/glx/glxext.c                                     |    9 
 GL/glx/glxext.h                                     |    3 
 GL/glx/glxglcore.c                                  |   13 
 GL/glx/glxserver.h                                  |    2 
 GL/glx/renderpix.c                                  |    1 
 GL/glx/renderpixswap.c                              |    1 
 GL/glx/singlepix.c                                  |    1 
 GL/glx/singlesize.h                                 |    1 
 GL/glx/xfont.c                                      |    1 
 Makefile.am                                         |   12 
 XTrap/xtrapdiswp.c                                  |    1 
 XTrap/xtrapditbl.c                                  |    1 
 Xext/fontcache.c                                    |    2 
 Xext/panoramiX.h                                    |    1 
 Xext/sampleEVI.c                                    |    1 
 Xext/security.c                                     |    8 
 Xext/shm.c                                          |    2 
 Xext/shmint.h                                       |    2 
 Xext/sync.c                                         |    5 
 Xext/xcalibrate.c                                   |    2 
 Xext/xf86bigfont.c                                  |    2 
 Xext/xvdisp.h                                       |    2 
 Xi/exevents.c                                       |    6 
 Xi/opendev.c                                        |    4 
 acinclude.m4                                        |   33 
 afb/afbbres.c                                       |    1 
 afb/afbbresd.c                                      |    1 
 afb/afbbstore.c                                     |    1 
 afb/afbfont.c                                       |    1 
 afb/afbmisc.c                                       |    1 
 afb/afbpntwin.c                                     |    1 
 cfb/cfbcppl.c                                       |    2 
 cfb/cfbtab.h                                        |    2 
 composite/compalloc.c                               |   17 
 composite/compext.c                                 |   16 
 composite/compinit.c                                |  202 
 composite/compint.h                                 |    2 
 composite/compwindow.c                              |   35 
 config/Makefile.am                                  |   18 
 config/config-backends.h                            |   59 
 config/config.c                                     |  542 
 config/dbus-api                                     |   19 
 config/dbus-core.c                                  |  243 
 config/dbus.c                                       |  441 
 config/hal.c                                        |  370 
 config/x11-input.fdi                                |   31 
 configure.ac                                        |  153 
 damageext/damageext.c                               |    2 
 damageext/damageext.h                               |    2 
 damageext/damageextint.h                            |    2 
 dbe/dbestruct.h                                     |    1 
 dbe/midbe.h                                         |    3 
 dix/Makefile.am                                     |    5 
 dix/cursor.c                                        |   22 
 dix/devices.c                                       |   77 
 dix/events.c                                        |   32 
 dix/getevents.c                                     |  101 
 dix/grabs.c                                         |   47 
 dix/main.c                                          |   28 
 dix/property.c                                      |   64 
 dix/resource.c                                      |    2 
 dix/window.c                                        |   14 
 dix/xpstubs.c                                       |    1 
 exa/exa.c                                           |   45 
 exa/exa_accel.c                                     |   27 
 exa/exa_offscreen.c                                 |    2 
 exa/exa_priv.h                                      |    6 
 exa/exa_render.c                                    |  126 
 exa/exa_unaccel.c                                   |   35 
 fb/fb.h                                             |   38 
 fb/fb24_32.h                                        |    2 
 fb/fballpriv.c                                      |    6 
 fb/fbarc.c                                          |    2 
 fb/fbbits.c                                         |    2 
 fb/fbbits.h                                         |    2 
 fb/fbblt.c                                          |    2 
 fb/fbbltone.c                                       |    2 
 fb/fbbstore.c                                       |    2 
 fb/fbcopy.c                                         |    6 
 fb/fbfill.c                                         |   56 
 fb/fbfillrect.c                                     |    2 
 fb/fbfillsp.c                                       |    2 
 fb/fbgc.c                                           |    2 
 fb/fbgetsp.c                                        |    2 
 fb/fbimage.c                                        |    2 
 fb/fbline.c                                         |    2 
 fb/fboverlay.c                                      |    6 
 fb/fbpict.c                                         |   32 
 fb/fbpixmap.c                                       |    2 
 fb/fbpoint.c                                        |    2 
 fb/fbpush.c                                         |    2 
 fb/fbrop.h                                          |    2 
 fb/fbscreen.c                                       |   33 
 fb/fbseg.c                                          |    2 
 fb/fbsetsp.c                                        |    2 
 fb/fbsolid.c                                        |    2 
 fb/fbstipple.c                                      |    2 
 fb/fbtile.c                                         |   14 
 fb/fbtrap.c                                         |   10 
 fb/fbutil.c                                         |    2 
 fb/fbwindow.c                                       |    2 
 fb/wfbrename.h                                      |    1 
 hw/darwin/Makefile.am                               |    1 
 hw/darwin/apple/X11Application.h                    |    1 
 hw/darwin/apple/X11Controller.h                     |    1 
 hw/darwin/apple/bundle-main.c                       |    1 
 hw/darwin/quartz/XApplication.h                     |    1 
 hw/darwin/quartz/cr/cr.h                            |    1 
 hw/darwin/quartz/keysym2ucs.c                       |    3 
 hw/darwin/quartz/keysym2ucs.h                       |    3 
 hw/darwin/quartz/quartzKeyboard.c                   |    1 
 hw/darwin/quartz/xpr/Xplugin.h                      |    1 
 hw/darwin/quartz/xpr/appledri.h                     |    1 
 hw/darwin/quartz/xpr/appledristr.h                  |    1 
 hw/darwin/quartz/xpr/x-hash.c                       |    1 
 hw/darwin/quartz/xpr/x-hash.h                       |    1 
 hw/darwin/quartz/xpr/x-hook.c                       |    2 
 hw/darwin/quartz/xpr/x-hook.h                       |    2 
 hw/darwin/quartz/xpr/x-list.c                       |    1 
 hw/darwin/quartz/xpr/x-list.h                       |    1 
 hw/dmx/config/Canvas.c                              |    1 
 hw/dmx/config/Canvas.h                              |    1 
 hw/dmx/config/CanvasP.h                             |    1 
 hw/dmx/config/dmxcompat.c                           |    1 
 hw/dmx/config/dmxcompat.h                           |    1 
 hw/dmx/config/dmxconfig.c                           |    1 
 hw/dmx/config/dmxconfig.h                           |    1 
 hw/dmx/config/dmxparse.c                            |    1 
 hw/dmx/config/dmxparse.h                            |    1 
 hw/dmx/config/dmxprint.c                            |    1 
 hw/dmx/config/dmxprint.h                            |    1 
 hw/dmx/config/dmxtodmx.c                            |    1 
 hw/dmx/config/vdltodmx.c                            |    1 
 hw/dmx/config/xdmxconfig.c                          |    3 
 hw/dmx/dmx.c                                        |    1 
 hw/dmx/dmx.h                                        |    1 
 hw/dmx/dmxcb.c                                      |    1 
 hw/dmx/dmxcb.h                                      |    1 
 hw/dmx/dmxclient.h                                  |    1 
 hw/dmx/dmxcmap.c                                    |    1 
 hw/dmx/dmxcmap.h                                    |    1 
 hw/dmx/dmxcursor.c                                  |    1 
 hw/dmx/dmxcursor.h                                  |    1 
 hw/dmx/dmxdpms.c                                    |    1 
 hw/dmx/dmxdpms.h                                    |    1 
 hw/dmx/dmxextension.c                               |    1 
 hw/dmx/dmxextension.h                               |    1 
 hw/dmx/dmxfont.c                                    |    1 
 hw/dmx/dmxfont.h                                    |    1 
 hw/dmx/dmxgc.c                                      |    1 
 hw/dmx/dmxgc.h                                      |    1 
 hw/dmx/dmxgcops.c                                   |    1 
 hw/dmx/dmxgcops.h                                   |    1 
 hw/dmx/dmxinit.c                                    |    1 
 hw/dmx/dmxinit.h                                    |    1 
 hw/dmx/dmxinput.c                                   |    1 
 hw/dmx/dmxinput.h                                   |    1 
 hw/dmx/dmxlog.c                                     |    1 
 hw/dmx/dmxlog.h                                     |    1 
 hw/dmx/dmxpict.c                                    |    1 
 hw/dmx/dmxpict.h                                    |    1 
 hw/dmx/dmxpixmap.c                                  |    1 
 hw/dmx/dmxpixmap.h                                  |    1 
 hw/dmx/dmxprop.c                                    |    1 
 hw/dmx/dmxprop.h                                    |    1 
 hw/dmx/dmxscrinit.c                                 |    1 
 hw/dmx/dmxscrinit.h                                 |    1 
 hw/dmx/dmxshadow.c                                  |    1 
 hw/dmx/dmxshadow.h                                  |    1 
 hw/dmx/dmxstat.c                                    |    1 
 hw/dmx/dmxstat.h                                    |    1 
 hw/dmx/dmxsync.c                                    |    1 
 hw/dmx/dmxsync.h                                    |    1 
 hw/dmx/dmxvisual.c                                  |    1 
 hw/dmx/dmxvisual.h                                  |    1 
 hw/dmx/dmxwindow.c                                  |    1 
 hw/dmx/dmxwindow.h                                  |    1 
 hw/dmx/examples/dmxaddinput.c                       |    1 
 hw/dmx/examples/dmxaddscreen.c                      |    1 
 hw/dmx/examples/dmxreconfig.c                       |    1 
 hw/dmx/examples/dmxresize.c                         |    1 
 hw/dmx/examples/dmxrminput.c                        |    1 
 hw/dmx/examples/dmxrmscreen.c                       |    1 
 hw/dmx/examples/dmxwininfo.c                        |    1 
 hw/dmx/examples/ev.c                                |    1 
 hw/dmx/examples/evi.c                               |    1 
 hw/dmx/examples/res.c                               |    1 
 hw/dmx/examples/xbell.c                             |    1 
 hw/dmx/examples/xdmx.c                              |    1 
 hw/dmx/examples/xinput.c                            |    1 
 hw/dmx/examples/xled.c                              |    1 
 hw/dmx/examples/xtest.c                             |    1 
 hw/dmx/glxProxy/glxswap.c                           |    1 
 hw/dmx/glxProxy/glxswap.h                           |    1 
 hw/dmx/input/ChkNotMaskEv.c                         |    1 
 hw/dmx/input/ChkNotMaskEv.h                         |    1 
 hw/dmx/input/dmxarg.c                               |    1 
 hw/dmx/input/dmxarg.h                               |    1 
 hw/dmx/input/dmxbackend.c                           |    1 
 hw/dmx/input/dmxbackend.h                           |    1 
 hw/dmx/input/dmxcommon.c                            |    1 
 hw/dmx/input/dmxcommon.h                            |    1 
 hw/dmx/input/dmxconsole.c                           |    1 
 hw/dmx/input/dmxconsole.h                           |    1 
 hw/dmx/input/dmxdetach.c                            |    1 
 hw/dmx/input/dmxdummy.c                             |    1 
 hw/dmx/input/dmxdummy.h                             |    1 
 hw/dmx/input/dmxeq.c                                |    1 
 hw/dmx/input/dmxeq.h                                |    1 
 hw/dmx/input/dmxevents.c                            |    1 
 hw/dmx/input/dmxevents.h                            |    1 
 hw/dmx/input/dmxinputinit.c                         |    1 
 hw/dmx/input/dmxinputinit.h                         |    1 
 hw/dmx/input/dmxmap.c                               |    1 
 hw/dmx/input/dmxmap.h                               |    1 
 hw/dmx/input/dmxmotion.c                            |    1 
 hw/dmx/input/dmxmotion.h                            |    1 
 hw/dmx/input/dmxsigio.c                             |    1 
 hw/dmx/input/dmxsigio.h                             |    1 
 hw/dmx/input/dmxxinput.c                            |    1 
 hw/dmx/input/lnx-keyboard.c                         |    1 
 hw/dmx/input/lnx-keyboard.h                         |    1 
 hw/dmx/input/lnx-ms.c                               |    1 
 hw/dmx/input/lnx-ms.h                               |    1 
 hw/dmx/input/lnx-ps2.c                              |    1 
 hw/dmx/input/lnx-ps2.h                              |    1 
 hw/dmx/input/usb-common.c                           |    1 
 hw/dmx/input/usb-common.h                           |    1 
 hw/dmx/input/usb-keyboard.c                         |    1 
 hw/dmx/input/usb-keyboard.h                         |    1 
 hw/dmx/input/usb-mouse.c                            |    1 
 hw/dmx/input/usb-mouse.h                            |    1 
 hw/dmx/input/usb-other.c                            |    1 
 hw/dmx/input/usb-other.h                            |    1 
 hw/dmx/input/usb-private.h                          |    1 
 hw/kdrive/ati/Makefile.am                           |    4 
 hw/kdrive/ati/ati.c                                 |    3 
 hw/kdrive/ati/ati.h                                 |    3 
 hw/kdrive/ati/ati_cursor.c                          |    1 
 hw/kdrive/ati/ati_dma.c                             |    3 
 hw/kdrive/ati/ati_dma.h                             |    1 
 hw/kdrive/ati/ati_draw.c                            |    3 
 hw/kdrive/ati/ati_draw.h                            |    1 
 hw/kdrive/ati/ati_drawtmp.h                         |    3 
 hw/kdrive/ati/ati_dri.c                             |    3 
 hw/kdrive/ati/ati_dri.h                             |    3 
 hw/kdrive/ati/ati_reg.h                             |    1 
 hw/kdrive/ati/ati_sarea.h                           |    4 
 hw/kdrive/ati/ati_stub.c                            |    3 
 hw/kdrive/ati/ati_video.c                           |    1 
 hw/kdrive/ati/r128_blendtmp.h                       |    3 
 hw/kdrive/ati/r128_composite.c                      |    1 
 hw/kdrive/ati/radeon_composite.c                    |    3 
 hw/kdrive/chips/Makefile.am                         |    4 
 hw/kdrive/chips/chips.c                             |    1 
 hw/kdrive/chips/chips.h                             |    3 
 hw/kdrive/chips/chipsdraw.c                         |    3 
 hw/kdrive/chips/chipsstub.c                         |    3 
 hw/kdrive/ephyr/Makefile.am                         |    5 
 hw/kdrive/ephyr/ephyrinit.c                         |   35 
 hw/kdrive/epson/Makefile.am                         |    4 
 hw/kdrive/epson/epson13806.c                        |    1 
 hw/kdrive/epson/epson13806.h                        |    1 
 hw/kdrive/epson/epson13806draw.c                    |    1 
 hw/kdrive/epson/epson13806draw.h                    |    1 
 hw/kdrive/epson/epson13806reg.h                     |    1 
 hw/kdrive/epson/epson13806stub.c                    |    1 
 hw/kdrive/fake/Makefile.am                          |    4 
 hw/kdrive/fake/fake.c                               |    2 
 hw/kdrive/fake/fake.h                               |    2 
 hw/kdrive/fake/fakeinit.c                           |    2 
 hw/kdrive/fake/kbd.c                                |    3 
 hw/kdrive/fake/mouse.c                              |    2 
 hw/kdrive/fake/os.c                                 |    2 
 hw/kdrive/fbdev/Makefile.am                         |    4 
 hw/kdrive/fbdev/fbdev.c                             |    3 
 hw/kdrive/fbdev/fbdev.h                             |    3 
 hw/kdrive/fbdev/fbinit.c                            |    3 
 hw/kdrive/i810/Makefile.am                          |    4 
 hw/kdrive/i810/i810.c                               |    3 
 hw/kdrive/i810/i810.h                               |    2 
 hw/kdrive/i810/i810_cursor.c                        |    4 
 hw/kdrive/i810/i810_reg.h                           |    1 
 hw/kdrive/i810/i810stub.c                           |    1 
 hw/kdrive/igs/igs.c                                 |    2 
 hw/kdrive/igs/igs.h                                 |    2 
 hw/kdrive/igs/igscmap.c                             |    2 
 hw/kdrive/igs/igscurs.c                             |    2 
 hw/kdrive/igs/igsdraw.c                             |    2 
 hw/kdrive/igs/igsdraw.h                             |    2 
 hw/kdrive/igs/igsreg.c                              |    2 
 hw/kdrive/igs/igsreg.h                              |    2 
 hw/kdrive/igs/igsstub.c                             |    2 
 hw/kdrive/ipaq/ipaq.c                               |    1 
 hw/kdrive/itsy/itsy.c                               |    3 
 hw/kdrive/itsy/itsy.h                               |    3 
 hw/kdrive/itsy/kbd.c                                |    3 
 hw/kdrive/itsy/ts.c                                 |    3 
 hw/kdrive/linux/agp.c                               |    2 
 hw/kdrive/linux/bus.c                               |    2 
 hw/kdrive/linux/evdev.c                             |  315 
 hw/kdrive/linux/keyboard.c                          |    2 
 hw/kdrive/linux/klinux.h                            |    2 
 hw/kdrive/linux/linux.c                             |    4 
 hw/kdrive/linux/mouse.c                             |    2 
 hw/kdrive/linux/ms.c                                |    1 
 hw/kdrive/linux/ps2.c                               |    2 
 hw/kdrive/linux/ts.c                                |    2 
 hw/kdrive/linux/tslib.c                             |    2 
 hw/kdrive/mach64/Makefile.am                        |    4 
 hw/kdrive/mach64/mach64.c                           |    1 
 hw/kdrive/mach64/mach64.h                           |    3 
 hw/kdrive/mach64/mach64curs.c                       |    3 
 hw/kdrive/mach64/mach64draw.c                       |    3 
 hw/kdrive/mach64/mach64draw.h                       |    3 
 hw/kdrive/mach64/mach64stub.c                       |    3 
 hw/kdrive/mach64/mach64video.c                      |    1 
 hw/kdrive/mga/Makefile.am                           |    4 
 hw/kdrive/mga/g400_common.h                         |    3 
 hw/kdrive/mga/g400_composite.c                      |    3 
 hw/kdrive/mga/mga.c                                 |    3 
 hw/kdrive/mga/mga.h                                 |    3 
 hw/kdrive/mga/mgadraw.c                             |    3 
 hw/kdrive/mga/mgastub.c                             |    3 
 hw/kdrive/neomagic/Makefile.am                      |    4 
 hw/kdrive/nvidia/Makefile.am                        |    4 
 hw/kdrive/nvidia/nvidia.c                           |    2 
 hw/kdrive/nvidia/nvidia.h                           |    2 
 hw/kdrive/nvidia/nvidiacurs.c                       |    3 
 hw/kdrive/nvidia/nvidiadraw.c                       |    2 
 hw/kdrive/nvidia/nvidiadraw.h                       |    3 
 hw/kdrive/nvidia/nvidiastub.c                       |    2 
 hw/kdrive/nvidia/nvidiavideo.c                      |    2 
 hw/kdrive/pcmcia/modes.h                            |    1 
 hw/kdrive/pcmcia/pcmcia.c                           |    1 
 hw/kdrive/pcmcia/pcmcia.h                           |    1 
 hw/kdrive/pcmcia/pcmciacurs.c                       |    1 
 hw/kdrive/pcmcia/pcmciarotate.c                     |    2 
 hw/kdrive/pcmcia/pcmciashadow.c                     |    1 
 hw/kdrive/pcmcia/pcmciastub.c                       |    1 
 hw/kdrive/pm2/Makefile.am                           |    4 
 hw/kdrive/r128/Makefile.am                          |    4 
 hw/kdrive/r128/r128.c                               |    3 
 hw/kdrive/r128/r128.h                               |    3 
 hw/kdrive/r128/r128draw.c                           |    3 
 hw/kdrive/r128/r128stub.c                           |    3 
 hw/kdrive/savage/s3.c                               |    3 
 hw/kdrive/savage/s3.h                               |    3 
 hw/kdrive/savage/s3clock.c                          |    3 
 hw/kdrive/savage/s3cmap.c                           |    3 
 hw/kdrive/savage/s3curs.c                           |   11 
 hw/kdrive/savage/s3draw.c                           |    3 
 hw/kdrive/savage/s3draw.h                           |    3 
 hw/kdrive/savage/s3gc.c                             |    3 
 hw/kdrive/savage/s3reg.c                            |    3 
 hw/kdrive/savage/s3reg.h                            |    3 
 hw/kdrive/savage/s3rtst.c                           |    3 
 hw/kdrive/savage/s3stub.c                           |    3 
 hw/kdrive/sdl/Makefile.am                           |    2 
 hw/kdrive/sdl/sdl.c                                 |    3 
 hw/kdrive/sis300/Makefile.am                        |    4 
 hw/kdrive/sis300/sis.c                              |    3 
 hw/kdrive/sis300/sis.h                              |    3 
 hw/kdrive/sis300/sis_draw.c                         |    3 
 hw/kdrive/sis300/sis_stub.c                         |    3 
 hw/kdrive/sis530/sis.c                              |    3 
 hw/kdrive/sis530/sis.h                              |    3 
 hw/kdrive/sis530/sisclock.c                         |    3 
 hw/kdrive/sis530/siscmap.c                          |    3 
 hw/kdrive/sis530/siscurs.c                          |    3 
 hw/kdrive/sis530/sisdraw.c                          |    3 
 hw/kdrive/sis530/sisdraw.h                          |    3 
 hw/kdrive/sis530/sisio.c                            |    3 
 hw/kdrive/sis530/sisstub.c                          |    3 
 hw/kdrive/smi/Makefile.am                           |    4 
 hw/kdrive/smi/smi.h                                 |    2 
 hw/kdrive/smi/smidraw.c                             |    2 
 hw/kdrive/smi/smidraw.h                             |    2 
 hw/kdrive/smi/smistub.c                             |    2 
 hw/kdrive/src/kaa.c                                 |    2 
 hw/kdrive/src/kaa.h                                 |    2 
 hw/kdrive/src/kaapict.c                             |    2 
 hw/kdrive/src/kasync.c                              |    8 
 hw/kdrive/src/kcmap.c                               |    3 
 hw/kdrive/src/kcolor.c                              |    3 
 hw/kdrive/src/kcurscol.c                            |    2 
 hw/kdrive/src/kdrive.c                              |   23 
 hw/kdrive/src/kdrive.h                              |   14 
 hw/kdrive/src/kinfo.c                               |    3 
 hw/kdrive/src/kinput.c                              |  190 
 hw/kdrive/src/kkeymap.c                             |    3 
 hw/kdrive/src/kkeymap.h                             |    3 
 hw/kdrive/src/kloadmap.c                            |    3 
 hw/kdrive/src/kmap.c                                |    3 
 hw/kdrive/src/kmode.c                               |    2 
 hw/kdrive/src/knoop.c                               |    3 
 hw/kdrive/src/koffscreen.c                          |    2 
 hw/kdrive/src/kshadow.c                             |    2 
 hw/kdrive/src/ktest.c                               |    3 
 hw/kdrive/src/kxv.c                                 |    2 
 hw/kdrive/src/kxv.h                                 |    2 
 hw/kdrive/src/vga.c                                 |    3 
 hw/kdrive/src/vga.h                                 |    3 
 hw/kdrive/trident/trident.c                         |    1 
 hw/kdrive/trident/trident.h                         |    3 
 hw/kdrive/trident/tridentcurs.c                     |    3 
 hw/kdrive/trident/tridentdraw.c                     |    3 
 hw/kdrive/trident/tridentdraw.h                     |    3 
 hw/kdrive/trident/tridentstub.c                     |    3 
 hw/kdrive/trio/s3.c                                 |    3 
 hw/kdrive/trio/s3.h                                 |    3 
 hw/kdrive/trio/s3clock.c                            |    3 
 hw/kdrive/trio/s3cmap.c                             |    3 
 hw/kdrive/trio/s3curs.c                             |   11 
 hw/kdrive/trio/s3stub.c                             |    3 
 hw/kdrive/ts300/ts300.c                             |    3 
 hw/kdrive/vesa/Makefile.am                          |    4 
 hw/kdrive/vesa/vbe.c                                |    1 
 hw/kdrive/vesa/vbe.h                                |    1 
 hw/kdrive/vesa/vesa.c                               |    1 
 hw/kdrive/vesa/vesa.h                               |    1 
 hw/kdrive/vesa/vesainit.c                           |    1 
 hw/kdrive/vesa/vga.c                                |    2 
 hw/kdrive/vesa/vga.h                                |    2 
 hw/kdrive/vesa/vm86.c                               |    2 
 hw/kdrive/vesa/vm86.h                               |    2 
 hw/kdrive/via/Makefile.am                           |    4 
 hw/kdrive/vxworks/vxkbd.c                           |    2 
 hw/kdrive/vxworks/vxmouse.c                         |    2 
 hw/kdrive/vxworks/vxworks.c                         |    2 
 hw/xfree86/Makefile.am                              |    8 
 hw/xfree86/common/atKeynames.h                      |    2 
 hw/xfree86/common/compiler.h                        |    2 
 hw/xfree86/common/modeline2c.pl                     |    3 
 hw/xfree86/common/xf86.h                            |   13 
 hw/xfree86/common/xf86AutoConfig.c                  |    1 
 hw/xfree86/common/xf86Config.c                      |  174 
 hw/xfree86/common/xf86Config.h                      |   11 
 hw/xfree86/common/xf86Configure.c                   |   75 
 hw/xfree86/common/xf86Cursor.c                      |   12 
 hw/xfree86/common/xf86Debug.c                       |  121 
 hw/xfree86/common/xf86DefModes.c                    |    5 
 hw/xfree86/common/xf86Events.c                      |   31 
 hw/xfree86/common/xf86Helper.c                      |   14 
 hw/xfree86/common/xf86Init.c                        |  121 
 hw/xfree86/common/xf86MiscExt.c                     |    4 
 hw/xfree86/common/xf86Mode.c                        |    9 
 hw/xfree86/common/xf86Module.h                      |    7 
 hw/xfree86/common/xf86PM.c                          |    4 
 hw/xfree86/common/xf86Priv.h                        |    3 
 hw/xfree86/common/xf86Privstr.h                     |    3 
 hw/xfree86/common/xf86Version.h                     |    3 
 hw/xfree86/common/xf86XKB.c                         |    1 
 hw/xfree86/common/xf86Xinput.c                      |   37 
 hw/xfree86/common/xf86Xinput.h                      |    1 
 hw/xfree86/common/xf86str.h                         |    2 
 hw/xfree86/common/xisb.c                            |    4 
 hw/xfree86/common/xisb.h                            |    1 
 hw/xfree86/ddc/ddcProperty.c                        |    4 
 hw/xfree86/dixmods/Makefile.am                      |    6 
 hw/xfree86/dixmods/extmod/xf86dgaext.h              |    2 
 hw/xfree86/dixmods/type1mod.c                       |   75 
 hw/xfree86/doc/man/xorg.conf.man.pre                |   31 
 hw/xfree86/dri/dri.c                                |  225 
 hw/xfree86/dri/dri.h                                |   14 
 hw/xfree86/dri/dristruct.h                          |    2 
 hw/xfree86/dri/xf86dri.c                            |   11 
 hw/xfree86/dummylib/fatalerror.c                    |    2 
 hw/xfree86/dummylib/pcitestmulti.c                  |    2 
 hw/xfree86/dummylib/verrorf.c                       |    2 
 hw/xfree86/dummylib/xf86allocscripi.c               |    2 
 hw/xfree86/dummylib/xf86getpagesize.c               |    2 
 hw/xfree86/dummylib/xf86getverb.c                   |    2 
 hw/xfree86/dummylib/xf86info.c                      |    2 
 hw/xfree86/dummylib/xf86screens.c                   |    2 
 hw/xfree86/dummylib/xf86servisinit.c                |    2 
 hw/xfree86/dummylib/xf86verbose.c                   |    2 
 hw/xfree86/i2c/uda1380.c                            |    2 
 hw/xfree86/i2c/uda1380.h                            |    3 
 hw/xfree86/int10/generic.c                          |   59 
 hw/xfree86/int10/helper_exec.c                      |  119 
 hw/xfree86/int10/helper_mem.c                       |  125 
 hw/xfree86/int10/xf86int10.h                        |   20 
 hw/xfree86/loader/loadmod.c                         |    7 
 hw/xfree86/loader/os.c                              |    4 
 hw/xfree86/loader/xf86sym.c                         |   32 
 hw/xfree86/modes/xf86Crtc.c                         |  184 
 hw/xfree86/modes/xf86Crtc.h                         |   31 
 hw/xfree86/modes/xf86Cursors.c                      |  137 
 hw/xfree86/modes/xf86DiDGA.c                        |    4 
 hw/xfree86/modes/xf86EdidModes.c                    |   76 
 hw/xfree86/modes/xf86Modes.c                        |   41 
 hw/xfree86/modes/xf86RandR12.c                      |   54 
 hw/xfree86/modes/xf86Rotate.c                       |  384 
 hw/xfree86/os-support/README.OS-lib                 |    1 
 hw/xfree86/os-support/assyntax.h                    |    3 
 hw/xfree86/os-support/bsd/alpha_video.c             |    2 
 hw/xfree86/os-support/bsd/arm_video.c               |    2 
 hw/xfree86/os-support/bsd/bsd_VTsw.c                |    1 
 hw/xfree86/os-support/bsd/bsd_apm.c                 |    2 
 hw/xfree86/os-support/bsd/bsd_init.c                |    6 
 hw/xfree86/os-support/bsd/bsd_kmod.c                |    2 
 hw/xfree86/os-support/bsd/bsd_kqueue_apm.c          |    1 
 hw/xfree86/os-support/bsd/bsd_mouse.c               |   12 
 hw/xfree86/os-support/bsd/i386_video.c              |    2 
 hw/xfree86/os-support/bsd/libusb/data.c             |    2 
 hw/xfree86/os-support/bsd/libusb/descr.c            |    2 
 hw/xfree86/os-support/bsd/libusb/parse.c            |    2 
 hw/xfree86/os-support/bsd/libusb/usage.c            |    2 
 hw/xfree86/os-support/bsd/libusb/usb.h              |    2 
 hw/xfree86/os-support/bsd/libusb/usbvar.h           |    2 
 hw/xfree86/os-support/bsd/memrange.h                |    3 
 hw/xfree86/os-support/bsd/ppc_video.c               |    2 
 hw/xfree86/os-support/bsd/sparc64_video.c           |    3 
 hw/xfree86/os-support/bus/Pci.h                     |    2 
 hw/xfree86/os-support/bus/altixPCI.c                |  144 
 hw/xfree86/os-support/bus/freebsdPci.c              |    2 
 hw/xfree86/os-support/hurd/hurd_bell.c              |   30 
 hw/xfree86/os-support/hurd/hurd_init.c              |    1 
 hw/xfree86/os-support/hurd/hurd_mmap.c              |    1 
 hw/xfree86/os-support/hurd/hurd_mouse.c             |   25 
 hw/xfree86/os-support/hurd/hurd_video.c             |    1 
 hw/xfree86/os-support/linux/Makefile.am             |    2 
 hw/xfree86/os-support/linux/int10/linux.c           |   23 
 hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c |    2 
 hw/xfree86/os-support/linux/lnx.h                   |    1 
 hw/xfree86/os-support/linux/lnx_axp.c               |    4 
 hw/xfree86/os-support/linux/lnx_bell.c              |   30 
 hw/xfree86/os-support/linux/lnx_init.c              |    1 
 hw/xfree86/os-support/linux/lnx_jstk.c              |    2 
 hw/xfree86/os-support/linux/lnx_video.c             |    3 
 hw/xfree86/os-support/misc/Delay.c                  |    4 
 hw/xfree86/os-support/misc/IODelay.c                |    3 
 hw/xfree86/os-support/misc/SlowBcopy.c              |   33 
 hw/xfree86/os-support/misc/xf86_IlHack.c            |    2 
 hw/xfree86/os-support/misc/xf86_Util.c              |    1 
 hw/xfree86/os-support/sco/VTsw_sco.c                |    1 
 hw/xfree86/os-support/sco/sco_init.c                |    1 
 hw/xfree86/os-support/sco/sco_iop.c                 |    2 
 hw/xfree86/os-support/sco/sco_mouse.c               |    2 
 hw/xfree86/os-support/sco/sco_video.c               |    1 
 hw/xfree86/os-support/shared/VTsw_noop.c            |    1 
 hw/xfree86/os-support/shared/VTsw_usl.c             |    1 
 hw/xfree86/os-support/shared/agp_noop.c             |    3 
 hw/xfree86/os-support/shared/bios_devmem.c          |    1 
 hw/xfree86/os-support/shared/bios_mmap.c            |    1 
 hw/xfree86/os-support/shared/ioperm_noop.c          |    1 
 hw/xfree86/os-support/shared/libc_wrapper.c         |   34 
 hw/xfree86/os-support/shared/posix_tty.c            |    2 
 hw/xfree86/os-support/shared/sigiostubs.c           |    3 
 hw/xfree86/os-support/shared/stdPci.c               |    3 
 hw/xfree86/os-support/shared/stdResource.c          |    6 
 hw/xfree86/os-support/shared/vidmem.c               |    3 
 hw/xfree86/os-support/shared/xf86Axp.h              |    2 
 hw/xfree86/os-support/solaris/Makefile.am           |   10 
 hw/xfree86/os-support/sysv/sysv_init.c              |    1 
 hw/xfree86/os-support/sysv/sysv_video.c             |    1 
 hw/xfree86/os-support/usl/usl_init.c                |    2 
 hw/xfree86/os-support/usl/usl_iop.c                 |    1 
 hw/xfree86/os-support/usl/usl_video.c               |    2 
 hw/xfree86/os-support/usl/usl_vtsw.c                |    2 
 hw/xfree86/os-support/xf86_OSlib.h                  |   40 
 hw/xfree86/os-support/xf86_OSproc.h                 |    1 
 hw/xfree86/os-support/xf86_ansic.h                  |   18 
 hw/xfree86/parser/Files.c                           |   20 
 hw/xfree86/parser/scan.c                            |   23 
 hw/xfree86/parser/write.c                           |    3 
 hw/xfree86/scanpci/extrapci.ids                     |    7 
 hw/xfree86/scanpci/pci.ids                          | 2084 ++
 hw/xfree86/scanpci/xf86PciStdIds.h                  |14505 +++++++++++++++++++-
 hw/xfree86/utils/cvt/cvt.man.pre                    |    2 
 hw/xfree86/utils/gtf/gtf.man.pre                    |    2 
 hw/xfree86/utils/kbd_mode/bsd-kbd_mode.c            |    5 
 hw/xfree86/utils/kbd_mode/sun-kbd_mode.c            |    1 
 hw/xfree86/utils/xorgcfg/card-cfg.h                 |    1 
 hw/xfree86/utils/xorgcfg/config.h                   |   27 
 hw/xfree86/utils/xorgcfg/help.h                     |    2 
 hw/xfree86/utils/xorgcfg/mouse-cfg.c                |    3 
 hw/xfree86/utils/xorgcfg/mouse-cfg.h                |    2 
 hw/xfree86/utils/xorgcfg/stubs.c                    |    4 
 hw/xfree86/utils/xorgcfg/text-mode.c                |   17 
 hw/xfree86/utils/xorgconfig/cards.c                 |   20 
 hw/xfree86/utils/xorgconfig/cards.h                 |    7 
 hw/xfree86/utils/xorgconfig/xorgconfig.c            |   90 
 hw/xfree86/vbe/vbe.c                                |   70 
 hw/xfree86/vbe/vbe.h                                |   16 
 hw/xfree86/vgahw/vgaCmap.c                          |    1 
 hw/xfree86/x86emu/debug.c                           |    2 
 hw/xfree86/xaa/xaaROP.c                             |    2 
 hw/xfree86/xaa/xaarop.h                             |    2 
 hw/xfree86/xf1bpp/Makefile.am                       |   10 
 hw/xfree86/xf4bpp/OScompiler.h                      |    1 
 hw/xfree86/xf4bpp/emulOpStip.c                      |    1 
 hw/xfree86/xf4bpp/emulRepAre.c                      |    1 
 hw/xfree86/xf4bpp/emulTile.c                        |    1 
 hw/xfree86/xf4bpp/ibmTrace.h                        |    8 
 hw/xfree86/xf4bpp/mfbbres.c                         |    1 
 hw/xfree86/xf4bpp/mfbbresd.c                        |    1 
 hw/xfree86/xf4bpp/mfbfillarc.c                      |    2 
 hw/xfree86/xf4bpp/mfbhrzvert.c                      |    1 
 hw/xfree86/xf4bpp/mfbimggblt.c                      |    2 
 hw/xfree86/xf4bpp/mfbline.c                         |    1 
 hw/xfree86/xf4bpp/mfbzerarc.c                       |    3 
 hw/xfree86/xf4bpp/offscreen.c                       |    1 
 hw/xfree86/xf4bpp/ppcArea.c                         |    1 
 hw/xfree86/xf4bpp/ppcBStore.c                       |    1 
 hw/xfree86/xf4bpp/ppcCReduce.c                      |    2 
 hw/xfree86/xf4bpp/ppcClip.c                         |    1 
 hw/xfree86/xf4bpp/ppcCpArea.c                       |    2 
 hw/xfree86/xf4bpp/ppcDepth.c                        |    2 
 hw/xfree86/xf4bpp/ppcFillRct.c                      |    1 
 hw/xfree86/xf4bpp/ppcGC.c                           |    2 
 hw/xfree86/xf4bpp/ppcGCstr.h                        |   23 
 hw/xfree86/xf4bpp/ppcGetSp.c                        |    2 
 hw/xfree86/xf4bpp/ppcIO.c                           |    1 
 hw/xfree86/xf4bpp/ppcImg.c                          |    2 
 hw/xfree86/xf4bpp/ppcPixFS.c                        |    1 
 hw/xfree86/xf4bpp/ppcPixmap.c                       |    1 
 hw/xfree86/xf4bpp/ppcPntWin.c                       |    1 
 hw/xfree86/xf4bpp/ppcPolyPnt.c                      |    1 
 hw/xfree86/xf4bpp/ppcQuery.c                        |    1 
 hw/xfree86/xf4bpp/ppcRslvC.c                        |    2 
 hw/xfree86/xf4bpp/ppcSetSp.c                        |    1 
 hw/xfree86/xf4bpp/ppcSpMcro.h                       |    1 
 hw/xfree86/xf4bpp/ppcWinFS.c                        |    1 
 hw/xfree86/xf4bpp/ppcWindow.c                       |    1 
 hw/xfree86/xf4bpp/vgaBitBlt.c                       |    4 
 hw/xfree86/xf4bpp/vgaGC.c                           |    2 
 hw/xfree86/xf4bpp/vgaImages.c                       |    1 
 hw/xfree86/xf4bpp/vgaReg.h                          |    2 
 hw/xfree86/xf4bpp/vgaSolid.c                        |    2 
 hw/xfree86/xf4bpp/vgaStipple.c                      |    1 
 hw/xfree86/xf4bpp/vgaVideo.h                        |    2 
 hw/xfree86/xf4bpp/wm3.c                             |    7 
 hw/xfree86/xf4bpp/wm3.h                             |    7 
 hw/xfree86/xf8_32bpp/cfbcpyplane.c                  |    2 
 hw/xfree86/xf8_32bpp/cfbgcmisc.c                    |    2 
 hw/xgl/egl/evdev.c                                  |    2 
 hw/xgl/egl/kinput.c                                 |    3 
 hw/xgl/egl/kkeymap.h                                |    3 
 hw/xnest/Args.c                                     |    1 
 hw/xnest/Args.h                                     |    1 
 hw/xnest/Color.c                                    |    1 
 hw/xnest/Color.h                                    |    1 
 hw/xnest/Drawable.h                                 |    1 
 hw/xnest/Events.h                                   |    1 
 hw/xnest/GCOps.h                                    |    1 
 hw/xnest/Handlers.h                                 |    1 
 hw/xnest/Keyboard.h                                 |    1 
 hw/xnest/Makefile.am                                |    3 
 hw/xnest/Pointer.c                                  |    1 
 hw/xnest/Pointer.h                                  |    1 
 hw/xnest/Screen.h                                   |    1 
 hw/xnest/Visual.c                                   |    1 
 hw/xnest/Visual.h                                   |    1 
 hw/xnest/XNFont.h                                   |    2 
 hw/xnest/XNGC.h                                     |    1 
 hw/xnest/Xnest.h                                    |    1 
 hw/xnest/os2Stub.c                                  |  387 
 hw/xprint/ValTree.c                                 |    1 
 hw/xprint/attributes.c                              |    1 
 hw/xprint/pcl/PclFonts.c                            |    1 
 hw/xprint/pcl/PclInit.c                             |   32 
 hw/xprint/spooler.c                                 |    1 
 hw/xwin/InitInput.c                                 |    1 
 hw/xwin/InitOutput.c                                |    1 
 hw/xwin/ddraw.h                                     |    2 
 hw/xwin/winconfig.h                                 |    1 
 hw/xwin/winkeymap.h                                 |    1 
 hw/xwin/winkeynames.h                               |    1 
 hw/xwin/winmsg.c                                    |    1 
 hw/xwin/winmsg.h                                    |    2 
 hw/xwin/winmultiwindowclass.c                       |    1 
 hw/xwin/winmultiwindowclass.h                       |    2 
 hw/xwin/winprefs.c                                  |    1 
 hw/xwin/winprefs.h                                  |    1 
 hw/xwin/winrop.c                                    |    1 
 hw/xwin/wintrayicon.c                               |    1 
 include/Makefile.am                                 |    1 
 include/dix-config.h.in                             |   11 
 include/dix.h                                       |    3 
 include/hotplug.h                                   |   49 
 include/inputstr.h                                  |    1 
 include/miscstruct.h                                |    2 
 include/os.h                                        |    2 
 include/pixmap.h                                    |    1 
 include/pixmapstr.h                                 |    1 
 include/servermd.h                                  |    2 
 include/window.h                                    |    1 
 include/windowstr.h                                 |   29 
 include/xorg-server.h.in                            |    3 
 mfb/mfbwindow.c                                     |    1 
 mi/mieq.c                                           |    2 
 mi/mipoly.c                                         |    1 
 mi/miregion.c                                       |    2 
 mi/mistruct.h                                       |    1 
 mi/mivalidate.h                                     |    2 
 mi/mivaltree.c                                      |   31 
 miext/cw/cw.c                                       |    1 
 miext/cw/cw.h                                       |    1 
 miext/cw/cw_ops.c                                   |    1 
 miext/cw/cw_render.c                                |    1 
 miext/damage/damage.c                               |    2 
 miext/damage/damage.h                               |    2 
 miext/damage/damagestr.h                            |    2 
 miext/shadow/shadow.c                               |    2 
 miext/shadow/shalloc.c                              |    2 
 miext/shadow/shrot16pack.c                          |    2 
 miext/shadow/shrot16pack_180.c                      |    2 
 miext/shadow/shrot16pack_270.c                      |    2 
 miext/shadow/shrot16pack_270YX.c                    |    2 
 miext/shadow/shrot16pack_90.c                       |    2 
 miext/shadow/shrot16pack_90YX.c                     |    2 
 miext/shadow/shrot32pack.c                          |    2 
 miext/shadow/shrot32pack_180.c                      |    2 
 miext/shadow/shrot32pack_270.c                      |    2 
 miext/shadow/shrot32pack_90.c                       |    2 
 miext/shadow/shrot8pack.c                           |    2 
 miext/shadow/shrot8pack_180.c                       |    2 
 miext/shadow/shrot8pack_270.c                       |    2 
 miext/shadow/shrot8pack_90.c                        |    2 
 miext/shadow/shrotpackYX.h                          |    2 
 os/Makefile.am                                      |   12 
 os/WaitFor.c                                        |    3 
 os/access.c                                         |    9 
 os/connection.c                                     |   37 
 os/io.c                                             |    6 
 os/log.c                                            |    3 
 os/oscolor.c                                        |   11 
 os/osdep.h                                          |    2 
 os/osinit.c                                         |    2 
 os/rpcauth.c                                        |   16 
 os/strlcat.c                                        |    3 
 os/strlcpy.c                                        |    3 
 os/utils.c                                          |   26 
 randr/randrstr.h                                    |    5 
 randr/rrcrtc.c                                      |    4 
 randr/rrinfo.c                                      |    9 
 randr/rroutput.c                                    |   10 
 randr/rrscreen.c                                    |    9 
 record/set.h                                        |    2 
 render/filter.c                                     |    2 
 render/picture.c                                    |    2 
 render/picture.h                                    |    2 
 render/picturestr.h                                 |    2 
 render/renderedge.c                                 |    2 
 render/renderedge.h                                 |    2 
 xfixes/cursor.c                                     |    2 
 xfixes/region.c                                     |    2 
 xfixes/saveset.c                                    |    2 
 xfixes/select.c                                     |    2 
 xfixes/xfixes.h                                     |    2 
 xfixes/xfixesint.h                                  |    2 
 xkb/ddxFakeBtn.c                                    |    1 
 xkb/ddxInit.c                                       |    1 
 xkb/ddxKeyClick.c                                   |    1 
 xkb/ddxLEDs.c                                       |    1 
 xkb/ddxLoad.c                                       |   24 
 xkb/xkbInit.c                                       |    2 
 xkb/xkbPrOtherEv.c                                  |    1 
 xkb/xkbUtils.c                                      |    5 
 xkb/xkbout.c                                        |    2 
 xkb/xkbtext.c                                       |    2 
 xorg-server.pc.in                                   |    2 
 771 files changed, 22399 insertions(+), 5604 deletions(-)

New commits:
diff-tree 8b6b40b7271acd81a9548f502c18f46f3b640640 (from parents)
Merge: ab7a6d860d4a275a810a64b1ba7b13726ed10575 3305d17195e3a0a5555300555bd7703312fa489f
Author: Ian Romanick <idr at us.ibm.com>
Date:   Thu Aug 23 18:19:17 2007 -0700

    Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into pci-rework
    
    Conflicts:
    
    	hw/xfree86/common/xf86.h
    	hw/xfree86/common/xf86Init.c
    	hw/xfree86/common/xf86pciBus.c
    	hw/xfree86/int10/generic.c
    	hw/xfree86/int10/helper_exec.c
    	hw/xfree86/loader/xf86sym.c
    	hw/xfree86/os-support/bus/Pci.c
    	hw/xfree86/os-support/bus/Pci.h
    	hw/xfree86/os-support/bus/linuxPci.c
    	hw/xfree86/os-support/linux/int10/linux.c

diff --cc hw/xfree86/common/xf86Init.c
index 0689a5c,bf7dac6..aa46032
@@@ -108,14 -101,6 +104,10 @@@
  static void xf86PrintDefaultLibraryPath(void);
  static void xf86RunVtInit(void);
  
 +static Bool probe_devices_from_device_sections(DriverPtr drvp);
 +static Bool add_matching_devices_to_configure_list(DriverPtr drvp);
 +static Bool check_for_matching_devices(DriverPtr drvp);
 +
- #ifdef __UNIXOS2__
- extern void os2ServerVideoAccess();
- #endif
- 
  #ifdef XF86PM
  void (*xf86OSPMClose)(void) = NULL;
  #endif
@@@ -557,39 -313,10 +542,6 @@@
          LoaderSetOptions(LDR_OPT_ABI_MISMATCH_NONFATAL);
      }
  
- #ifdef TESTING
-     {
- 	char **list, **l;
- 	const char *subdirs[] = {
- 		"drivers",
- 		NULL
- 	};
- 	const char *patlist[] = {
- 		"(.*)_drv\\.so",
- 		"(.*)_drv\\.o",
- 		NULL
- 	};
- 	ErrorF("Getting module listing...\n");
- 	list = LoaderListDirs(NULL, NULL);
- 	if (list)
- 	    for (l = list; *l; l++)
- 		ErrorF("module: %s\n", *l);
- 	LoaderFreeDirList(list);
- 	ErrorF("Getting video driver listing...\n");
- 	list = LoaderListDirs(subdirs, NULL);
- 	if (list)
- 	    for (l = list; *l; l++)
- 		ErrorF("video driver: %s\n", *l);
- 	LoaderFreeDirList(list);
- 	ErrorF("Getting driver listing...\n");
- 	list = LoaderListDirs(NULL, patlist);
- 	if (list)
- 	    for (l = list; *l; l++)
- 		ErrorF("video driver: %s\n", *l);
- 	LoaderFreeDirList(list);
-     }
- #endif
- 
 -    /* Force load mandatory base modules */
 -    if (!xf86LoadModules(baseModules, NULL))
 -	FatalError("Unable to load required base modules, Exiting...\n");
 -    
      xf86OpenConsole();
  
      /* Do a general bus probe.  This will be a PCI probe for x86 platforms */
diff --cc hw/xfree86/int10/generic.c
index 6a04711,aa240ca..a30dee1
@@@ -123,10 -68,10 +123,9 @@@
      void* base = 0;
      void* vbiosMem = 0;
      void* options = NULL;
 -    pciVideoPtr pvp;
      int screen;
      legacyVGARec vga;
-     xf86int10BiosLocation bios;
-     
+  
  #ifdef _PC
      int size;
      CARD32 cs;
@@@ -213,22 -150,14 +206,18 @@@
  
  	switch (location_type) {
  	case BUS_PCI: {
 -	    const int pci_entity = pInt->entityIndex;
 +	    int err;
- 	    struct pci_device *rom_device = (bios.bus == BUS_PCI)
- 	      ? pci_device_find_by_slot(PCI_DOM_FROM_BUS(bios.location.pci.bus),
- 					PCI_BUS_NO_DOMAIN(bios.location.pci.bus),
- 					bios.location.pci.dev,
- 					bios.location.pci.func)
- 	      : xf86GetPciInfoForEntity(pInt->entityIndex);
++	    struct pci_device *rom_device =
++		xf86GetPciInfoForEntity(pInt->entityIndex);
  
  	    vbiosMem = (unsigned char *)base + bios_location;
 -	    if (!(size = mapPciRom(pci_entity,(unsigned char *)(vbiosMem)))) {
 -		xf86DrvMsg(screen,X_ERROR,"Cannot read V_BIOS (3)\n");
 +	    err = pci_device_read_rom(rom_device, vbiosMem);
 +	    if (err) {
 +		xf86DrvMsg(screen,X_ERROR,"Cannot read V_BIOS (3) %s\n",
 +			   strerror(err));
  		goto error1;
  	    }
 -	    INTPriv(pInt)->highMemory = GET_HIGH_BASE(size);
 +	    INTPriv(pInt)->highMemory = GET_HIGH_BASE(rom_device->rom_size);
  	    break;
  	}
  	case BUS_ISA:
@@@ -286,36 -219,17 +270,23 @@@
  	Bool done = FALSE;
  	vbiosMem = (unsigned char *)base + bios_location;
  	
- 	if ((bios.bus == BUS_ISA)
- 	    || (bios.bus != BUS_PCI && xf86IsEntityPrimary(entityIndex))) {
- 		if (bios.bus == BUS_ISA && bios.location.legacy) {
- 		    xf86DrvMsg(screen, X_CONFIG,"Looking for legacy V_BIOS "
- 			       "at 0x%x for %sprimary device\n",
- 			       bios.location.legacy,
- 			       xf86IsEntityPrimary(entityIndex) ? "" : "non-");
- 		    bios_location = bios.location.legacy;
- 		    vbiosMem = (unsigned char *)base + bios_location;
- 		}
- 		if (int10_check_bios(screen, bios_location >> 4, vbiosMem)) 
- 		    done = TRUE;
- 		else 
- 		    xf86DrvMsg(screen,X_INFO,
- 			       "No legacy BIOS found -- trying PCI\n");
+ 	if (xf86IsEntityPrimary(entityIndex)) {
+ 	    if (int10_check_bios(screen, bios_location >> 4, vbiosMem)) 
+ 		done = TRUE;
+ 	    else 
+ 		xf86DrvMsg(screen,X_INFO,
+ 			"No legacy BIOS found -- trying PCI\n");
  	} 
  	if (!done) {
 -	    if (!mapPciRom(pInt->entityIndex, vbiosMem)) {
 -		    xf86DrvMsg(screen, X_ERROR, "Cannot read V_BIOS (5)\n");
 -		    goto error1;
 +	    int err;
- 	    struct pci_device *rom_device = (bios.bus == BUS_PCI)
- 	      ? pci_device_find_by_slot(PCI_DOM_FROM_BUS(bios.location.pci.bus),
- 					PCI_BUS_NO_DOMAIN(bios.location.pci.bus),
- 					bios.location.pci.dev,
- 					bios.location.pci.func)
- 	      : xf86GetPciInfoForEntity(pInt->entityIndex);
++	    struct pci_device *rom_device =
++		xf86GetPciInfoForEntity(pInt->entityIndex);
 +
 +	    err = pci_device_read_rom(rom_device, vbiosMem);
 +	    if (err) {
- 		xf86DrvMsg(screen,X_ERROR,"Cannot read V_BIOS (3) %s\n",
++		xf86DrvMsg(screen,X_ERROR,"Cannot read V_BIOS (5) %s\n",
 +			   strerror(err));
 +		goto error1;
  	    }
  	} 
      }
diff --cc hw/xfree86/int10/helper_exec.c
index aef24cc,a41965d..3e1051d
@@@ -27,7 -29,9 +29,10 @@@
  #define _INT10_PRIVATE
  #include "int10Defines.h"
  #include "xf86int10.h"
 +#include "Pci.h"
+ #ifdef _X86EMU
+ #include "x86emu/x86emui.h"
+ #endif
  
  static int pciCfg1in(CARD16 addr, CARD32 *val);
  static int pciCfg1out(CARD16 addr, CARD32 val);
@@@ -480,7 -470,9 +471,9 @@@
  	return 1;
      }
      if (addr == 0xCFC) {
 -	*val = pciReadLong(Int10Current->Tag, OFFSET(PciCfg1Addr));
 +	pci_device_cfg_read_u32(Int10Current->dev, val, OFFSET(PciCfg1Addr));
+ 	if (PRINT_PORT && DEBUG_IO_TRACE())
+ 	    ErrorF(" cfg_inl(%#x) = %8.8x\n", PciCfg1Addr, *val);
  	return 1;
      }
      return 0;
@@@ -494,7 -486,9 +487,9 @@@
  	return 1;
      }
      if (addr == 0xCFC) {
+ 	if (PRINT_PORT && DEBUG_IO_TRACE())
+ 	    ErrorF(" cfg_outl(%#x, %8.8x)\n", PciCfg1Addr, val);
 -	pciWriteLong(Int10Current->Tag, OFFSET(PciCfg1Addr), val);
 +	pci_device_cfg_write_u32(Int10Current->dev, val, OFFSET(PciCfg1Addr));
  	return 1;
      }
      return 0;
@@@ -511,9 -505,10 +506,11 @@@
  	return 1;
      }
      if ((addr >= 0xCFC) && (addr <= 0xCFF)) {
 -	offset = addr - 0xCFC;
 -	*val = pciReadWord(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset);
 +	const unsigned offset = addr - 0xCFC;
 +
 +	pci_device_cfg_read_u16(Int10Current->dev, val, OFFSET(PciCfg1Addr) + offset);
+ 	if (PRINT_PORT && DEBUG_IO_TRACE())
+ 	    ErrorF(" cfg_inw(%#x) = %4.4x\n", PciCfg1Addr + offset, *val);
  	return 1;
      }
      return 0;
@@@ -531,9 -526,10 +528,11 @@@
  	return 1;
      }
      if ((addr >= 0xCFC) && (addr <= 0xCFF)) {
 -	offset = addr - 0xCFC;
 +	const unsigned offset = addr - 0xCFC;
 +
+ 	if (PRINT_PORT && DEBUG_IO_TRACE())
+ 	    ErrorF(" cfg_outw(%#x, %4.4x)\n", PciCfg1Addr + offset, val);
 -	pciWriteWord(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset, val);
 +	pci_device_cfg_write_u16(Int10Current->dev, val, OFFSET(PciCfg1Addr) + offset);
  	return 1;
      }
      return 0;
@@@ -550,9 -546,10 +549,11 @@@
  	return 1;
      }
      if ((addr >= 0xCFC) && (addr <= 0xCFF)) {
 -	offset = addr - 0xCFC;
 -	*val = pciReadByte(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset);
 +	const unsigned offset = addr - 0xCFC;
 +
 +	pci_device_cfg_read_u8(Int10Current->dev, val, OFFSET(PciCfg1Addr) + offset);
+ 	if (PRINT_PORT && DEBUG_IO_TRACE())
+ 	    ErrorF(" cfg_inb(%#x) = %2.2x\n", PciCfg1Addr + offset, *val);
  	return 1;
      }
      return 0;
@@@ -570,9 -567,10 +571,11 @@@
  	return 1;
      }
      if ((addr >= 0xCFC) && (addr <= 0xCFF)) {
 -	offset = addr - 0xCFC;
 +	const unsigned offset = addr - 0xCFC;
 +
+ 	if (PRINT_PORT && DEBUG_IO_TRACE())
+ 	    ErrorF(" cfg_outb(%#x, %2.2x)\n", PciCfg1Addr + offset, val);
 -	pciWriteByte(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset, val);
 +	pci_device_cfg_write_u8(Int10Current->dev, val, OFFSET(PciCfg1Addr) + offset);
  	return 1;
      }
      return 0;
diff --cc hw/xfree86/os-support/bus/Pci.h
index a9b9cf7,5ebbdd5..632a7a0
@@@ -190,8 -234,10 +190,8 @@@
  #if defined(__alpha__)
  # if defined(linux)
  #  define ARCH_PCI_INIT axpPciInit
- # elif defined(__FreeBSD__) || defined(__OpenBSD__)
 -#  define INCLUDE_XF86_MAP_PCI_MEM
+ # elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
  #  define ARCH_PCI_INIT freebsdPciInit
 -#  define INCLUDE_XF86_MAP_PCI_MEM
  #  define INCLUDE_XF86_NO_DOMAIN
  # elif defined(__NetBSD__)
  #  define ARCH_PCI_INIT netbsdPciInit
diff --cc hw/xfree86/os-support/linux/int10/linux.c
index 9993a29,d8f4633..5748434
@@@ -88,8 -88,8 +88,7 @@@
      int pagesize; 
      memType cs;
      legacyVGARec vga;
-     xf86int10BiosLocation bios;
      Bool videoBiosMapped = FALSE;
 -    pciVideoPtr pvp;
      
      if (int10Generation != serverGeneration) {
  	counter = 0;
@@@ -280,21 -275,12 +274,17 @@@
  
  	switch (location_type) {
  	case BUS_PCI: {
 -	    const int pci_entity = pInt->entityIndex;
 -	    
 -	    if (!mapPciRom(pci_entity, (unsigned char *)(V_BIOS))) {
 -	        xf86DrvMsg(screen, X_ERROR, "Cannot read V_BIOS\n");
 +	    int err;
- 	    struct pci_device *rom_device = (bios.bus == BUS_PCI)
- 	      ? pci_device_find_by_slot(PCI_DOM_FROM_BUS(bios.location.pci.bus),
- 					PCI_BUS_NO_DOMAIN(bios.location.pci.bus),
- 					bios.location.pci.dev,
- 					bios.location.pci.func)
- 	      : xf86GetPciInfoForEntity(pInt->entityIndex);
++	    struct pci_device *rom_device =
++		xf86GetPciInfoForEntity(pInt->entityIndex);
 +
 +	    err = pci_device_read_rom(rom_device, (unsigned char *)(V_BIOS));
 +	    if (err) {
 +		xf86DrvMsg(screen,X_ERROR,"Cannot read V_BIOS (%s)\n",
 +			   strerror(err));
  		goto error3;
  	    }
 +
  	    pInt->BIOSseg = V_BIOS >> 4;
  	    break;
  	}
diff-tree 3305d17195e3a0a5555300555bd7703312fa489f (from a66c0f1dca2958835ff65a5b50579e3304ed316a)
Author: Matthieu Herrb <matthieu at deville.herrb.com>
Date:   Thu Aug 23 22:48:19 2007 +0200

    Fix indentation.

diff --git a/dix/getevents.c b/dix/getevents.c
index 162fa45..6899303 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -250,7 +250,7 @@ acceleratePointer(DeviceIntPtr pDev, int
             }
         }
         else {
-		mult = pow((float)dx * (float)dx + (float)dy * (float)dy,
+	    mult = pow((float)dx * (float)dx + (float)dy * (float)dy,
                        ((float)(pDev->ptrfeed->ctrl.num) /
                         (float)(pDev->ptrfeed->ctrl.den) - 1.0) /
                        2.0) / 2.0;
diff-tree a66c0f1dca2958835ff65a5b50579e3304ed316a (from 12d27cf33c6d963eae77795c0d247175907162a5)
Author: Matthieu Herrb <matthieu at bluenote.herrb.com>
Date:   Thu Aug 23 22:11:56 2007 +0200

    Remove an extra cast.
    
    Thou should not apply patches manually without testing.

diff --git a/dix/getevents.c b/dix/getevents.c
index 52b74bd..162fa45 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -250,7 +250,7 @@ acceleratePointer(DeviceIntPtr pDev, int
             }
         }
         else {
-		mult = pow((float)((float)dx * (float)dx + (float)dy * (float)dy),
+		mult = pow((float)dx * (float)dx + (float)dy * (float)dy,
                        ((float)(pDev->ptrfeed->ctrl.num) /
                         (float)(pDev->ptrfeed->ctrl.den) - 1.0) /
                        2.0) / 2.0;
diff-tree 12d27cf33c6d963eae77795c0d247175907162a5 (from ff089e6cae634ac3eb509abd448a250bcbb17275)
Author: Otto Moerbeek <otto at openbsd.org>
Date:   Thu Aug 23 21:59:25 2007 +0200

    A high resolution device that's moving fast can potentially generate
    an int overflow, making dx*dx+dy*dy negative. Now pow(negative,
    non-integer) yields NaN, so you loose.  Use fp math to avoid that.

diff --git a/dix/getevents.c b/dix/getevents.c
index 2a10038..52b74bd 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -250,7 +250,7 @@ acceleratePointer(DeviceIntPtr pDev, int
             }
         }
         else {
-            mult = pow((float)(dx * dx + dy * dy),
+		mult = pow((float)((float)dx * (float)dx + (float)dy * (float)dy),
                        ((float)(pDev->ptrfeed->ctrl.num) /
                         (float)(pDev->ptrfeed->ctrl.den) - 1.0) /
                        2.0) / 2.0;
diff-tree ff089e6cae634ac3eb509abd448a250bcbb17275 (from 943dd6ad99670c283a6869ea6c5f751acbd73134)
Author: Brian Paul <brian.paul at tungstengraphics.com>
Date:   Thu Aug 23 19:38:53 2007 +0200

    glx: fix crash when freeing visuals
    
    Don't set screen->num_vis to a value greater than the actual number of visuals.
    
    X.Org Bug #10809 <http://bugs.freedesktop.org/show_bug.cgi?id=10809>

diff --git a/GL/glx/glxglcore.c b/GL/glx/glxglcore.c
index df9be07..679d55c 100644
--- a/GL/glx/glxglcore.c
+++ b/GL/glx/glxglcore.c
@@ -296,7 +296,7 @@ static void init_screen_visuals(__GLXMES
     __GLcontextModes *modes;
     XMesaVisual *pXMesaVisual;
     int *used;
-    int i, j, size;
+    int num_vis, j, size;
 
     /* Alloc space for the list of XMesa visuals */
     size = screen->base.numVisuals * sizeof(XMesaVisual);
@@ -312,7 +312,7 @@ static void init_screen_visuals(__GLXMES
     used = (int *) xalloc(pScreen->numVisuals * sizeof(int));
     memset(used, 0, pScreen->numVisuals * sizeof(int));
 
-    i = 0;
+    num_vis = 0;
     for ( modes = screen->base.modes; modes != NULL; modes = modes->next ) {
 	const int vis_class = _gl_convert_to_x_visual_type( modes->visualType );
 	const int nplanes = (modes->rgbBits - modes->alphaBits);
@@ -327,7 +327,8 @@ static void init_screen_visuals(__GLXMES
 		!used[j]) {
 
 		/* Create the XMesa visual */
-		pXMesaVisual[i] =
+                assert(num_vis < screen->base.numVisuals);
+		pXMesaVisual[num_vis] =
 		    XMesaCreateVisual(pScreen,
 				      &pVis[j],
 				      modes->rgbMode,
@@ -364,13 +365,15 @@ static void init_screen_visuals(__GLXMES
 	    FatalError( "Matching visual found, but visualID still -1!\n" );
 	}
 
-	i++;
+	num_vis++;
     }
 
     xfree(used);
 
-    screen->num_vis = pScreen->numVisuals;
+    screen->num_vis = num_vis;
     screen->xm_vis = pXMesaVisual;
+
+    assert(screen->num_vis <= screen->base.numVisuals);
 }
 
 static __GLXscreen *
diff-tree 943dd6ad99670c283a6869ea6c5f751acbd73134 (from 13949f997289068354e83bc83e50d97b8232efb1)
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Thu Aug 23 12:15:03 2007 -0400

    Revert "Revert "Require pixman 0.9.5; Use pixman_image_set_source_clipping() to fix"" since the pixman changes have been pushed now.
    
    This reverts commit 57f7f2a5327a2d967a726bb4706e4f6b2f4b2cea.

diff --git a/configure.ac b/configure.ac
index f0ede75..fae439c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -624,7 +624,7 @@ XEXT_INC='-I$(top_srcdir)/Xext'
 XEXT_LIB='$(top_builddir)/Xext/libXext.la'
 XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
 
-PIXMAN="[pixman-1 >= 0.9.4]"
+PIXMAN="[pixman-1 >= 0.9.5]"
 PKG_CHECK_MODULES(PIXMAN, $PIXMAN)
 AC_SUBST(PIXMAN_CFLAGS)
 
diff --git a/fb/fbpict.c b/fb/fbpict.c
index 8a146dd..85b5171 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -397,6 +397,7 @@ set_image_properties (pixman_image_t *im
     }
     
     pixman_image_set_filter (image, filter, (pixman_fixed_t *)pict->filter_params, pict->filter_nparams);
+    pixman_image_set_source_clipping (image, TRUE);
 }
 
 pixman_image_t *
diff-tree 13949f997289068354e83bc83e50d97b8232efb1 (from 76bf3cd7b8c6189b6b08518cde00c8bd991bdfb7)
Author: Julien Cristau <jcristau at debian.org>
Date:   Thu Aug 23 11:27:33 2007 +0200

    Get rid of the type1 font module.
    
    It is completely replaced by freetype these days.

diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
index 4f6a98a..3b04f57 100644
--- a/hw/xfree86/common/xf86AutoConfig.c
+++ b/hw/xfree86/common/xf86AutoConfig.c
@@ -48,7 +48,6 @@
 	"\tLoad\t\"dbe\"\n" \
 	"\tLoad\t\"glx\"\n" \
 	"\tLoad\t\"freetype\"\n" \
-	"\tLoad\t\"type1\"\n" \
 	"\tLoad\t\"record\"\n" \
 	"\tLoad\t\"dri\"\n" \
 	"EndSection\n\n"
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 4773715..8bf051c 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -119,7 +119,6 @@ static ModuleDefault ModuleDefaults[] = 
     {.name = "dbe",      .toLoad = TRUE,    .load_opt=NULL},
     {.name = "glx",      .toLoad = TRUE,    .load_opt=NULL},
     {.name = "freetype", .toLoad = TRUE,    .load_opt=NULL},
-    {.name = "type1",    .toLoad = TRUE,    .load_opt=NULL},
     {.name = "record",   .toLoad = TRUE,    .load_opt=NULL},
     {.name = "dri",      .toLoad = TRUE,    .load_opt=NULL},
     {.name = NULL,       .toLoad = FALSE,   .load_opt=NULL}
diff --git a/hw/xfree86/dixmods/Makefile.am b/hw/xfree86/dixmods/Makefile.am
index 06e6d40..efc5f4a 100644
--- a/hw/xfree86/dixmods/Makefile.am
+++ b/hw/xfree86/dixmods/Makefile.am
@@ -40,8 +40,7 @@ extsmodule_LTLIBRARIES = librecord.la \
                          $(XTRAPMOD)
 
 fontsmoduledir = $(moduledir)/fonts
-fontsmodule_LTLIBRARIES = libfreetype.la \
-                          libtype1.la
+fontsmodule_LTLIBRARIES = libfreetype.la
 
 AM_CFLAGS = @XORG_CFLAGS@ @DIX_CFLAGS@
 INCLUDES = @XORG_INCS@ \
@@ -104,9 +103,6 @@ libshadow_la_SOURCES = shmodule.c
 libfreetype_la_LDFLAGS = -avoid-version
 libfreetype_la_SOURCES = ftmodule.c
 
-libtype1_la_LDFLAGS = -avoid-version
-libtype1_la_SOURCES = type1mod.c
-
 libdixmods_la_SOURCES = $(top_srcdir)/mi/miinitext.c
 libdixmods_la_CFLAGS = -DXFree86LOADER $(AM_CFLAGS)
 
diff --git a/hw/xfree86/dixmods/type1mod.c b/hw/xfree86/dixmods/type1mod.c
deleted file mode 100644
index 3da53ea..0000000
--- a/hw/xfree86/dixmods/type1mod.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 1998 The XFree86 Project, Inc.  All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the XFree86 Project shall
- * not be used in advertising or otherwise to promote the sale, use or other
- * dealings in this Software without prior written authorization from the
- * XFree86 Project.
- */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "misc.h"
-
-#include <X11/fonts/fontmod.h>
-#include "xf86Module.h"
-
-static MODULESETUPPROTO(type1Setup);
-
-    /*
-     * This is the module data function that is accessed when loading 
-     * libtype1 as a module.
-     */
-
-static XF86ModuleVersionInfo VersRec =
-{
-	"type1",
-	MODULEVENDORSTRING,
-	MODINFOSTRING1,
-	MODINFOSTRING2,
-	XORG_VERSION_CURRENT,
-	1, 0, 2,
-	ABI_CLASS_FONT,			/* Font module */
-	ABI_FONT_VERSION,
-	MOD_CLASS_FONT,
-	{0,0,0,0}       /* signature, to be patched into the file by a tool */
-};
-
-_X_EXPORT XF86ModuleData type1ModuleData = { &VersRec, type1Setup, NULL };
-
-extern void Type1RegisterFontFileFunctions(void);
-
-FontModule type1Module = {
-    Type1RegisterFontFileFunctions,
-    "Type1",
-    NULL
-};
-
-static pointer
-type1Setup(pointer module, pointer opts, int *errmaj, int *errmin)
-{
-    type1Module.module = module;
-    LoadFont(&type1Module);
-
-    /* Need a non-NULL return */
-    return (pointer)1;
-}
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 3ff5776..ce54ea9 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -700,10 +700,10 @@ The standard name is case\-sensitive, an
 prefix, or the \(lq.a\(rq, \(lq.o\(rq, or \(lq.so\(rq suffixes.
 .PP
 .RS 7
-Example: the Type 1 font rasteriser can be loaded with the following entry:
+Example: the FreeType font rasteriser can be loaded with the following entry:
 .PP
 .RS 4
-.B "Load \*qtype1\*q"
+.B "Load \*qfreetype\*q"
 .RE
 .RE
 .TP 7
diff-tree 76bf3cd7b8c6189b6b08518cde00c8bd991bdfb7 (from 81f8b652d99ee0f7116c1e34aed0e585d23a91fb)
Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Aug 23 16:22:03 2007 +1000

    randr: fixup crtc and output destroy
    
    if you are moving pointers, you want to move the pointers not just a byte

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 95b3035..d375da8 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -128,7 +128,7 @@ xf86CrtcDestroy (xf86CrtcPtr crtc)
 	{
 	    memmove (&xf86_config->crtc[c],
 		     &xf86_config->crtc[c+1],
-		     xf86_config->num_crtc - (c + 1));
+		     ((xf86_config->num_crtc - (c + 1)) * sizeof(void*)));
 	    xf86_config->num_crtc--;
 	    break;
 	}
@@ -596,7 +596,7 @@ xf86OutputDestroy (xf86OutputPtr output)
 	{
 	    memmove (&xf86_config->output[o],
 		     &xf86_config->output[o+1],
-		     xf86_config->num_output - (o + 1));
+		     ((xf86_config->num_output - (o + 1)) * sizeof(void*)));
 	    xf86_config->num_output--;
 	    break;
 	}
diff-tree 81f8b652d99ee0f7116c1e34aed0e585d23a91fb (from 57f7f2a5327a2d967a726bb4706e4f6b2f4b2cea)
Author: Alex Deucher <alex at botch2.(none)>
Date:   Wed Aug 22 19:26:34 2007 -0400

    Add _X_EXPORT to exported functions in hw/xfree86/modes/*
    
    Also add missing exports to hw/xfree86/loader/xf86sym.c

diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
index 185eb80..23f8208 100644
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -1153,9 +1153,12 @@ _X_HIDDEN void *xfree86LookupTab[] = {
     SYMFUNC(xf86CrtcCreate)
     SYMFUNC(xf86CrtcDestroy)
     SYMFUNC(xf86CrtcInUse)
+    SYMFUNC(xf86CrtcSetScreenSubpixelOrder)
+    SYMFUNC(xf86RotateCloseScreen)
     SYMFUNC(xf86CrtcRotate)
     SYMFUNC(xf86CrtcSetMode)
     SYMFUNC(xf86CrtcSetSizeRange)
+    SYMFUNC(xf86CrtcScreenInit)
     SYMFUNC(xf86CVTMode)
     SYMFUNC(xf86DisableUnusedFunctions)
     SYMFUNC(xf86DPMSSet)
@@ -1168,18 +1171,25 @@ _X_HIDDEN void *xfree86LookupTab[] = {
     SYMFUNC(xf86ModesAdd)
     SYMFUNC(xf86ModesEqual)
     SYMFUNC(xf86ModeVRefresh)
+    SYMFUNC(xf86ModeWidth)
+    SYMFUNC(xf86ModeHeight)
     SYMFUNC(xf86OutputCreate)
     SYMFUNC(xf86OutputDestroy)
     SYMFUNC(xf86OutputGetEDID)
+    SYMFUNC(xf86ConnectorGetName)
     SYMFUNC(xf86OutputGetEDIDModes)
     SYMFUNC(xf86OutputRename)
+    SYMFUNC(xf86OutputUseScreenMonitor)
     SYMFUNC(xf86OutputSetEDID)
+    SYMFUNC(xf86OutputFindClosestMode)
     SYMFUNC(xf86PrintModeline)
     SYMFUNC(xf86ProbeOutputModes)
     SYMFUNC(xf86PruneInvalidModes)
     SYMFUNC(xf86SetModeCrtc)
     SYMFUNC(xf86SetModeDefaultName)
     SYMFUNC(xf86SetScrnInfoModes)
+    SYMFUNC(xf86SetDesiredModes)
+    SYMFUNC(xf86SetSingleMode)
     SYMFUNC(xf86ValidateModesClocks)
     SYMFUNC(xf86ValidateModesFlags)
     SYMFUNC(xf86ValidateModesSize)
@@ -1197,6 +1207,7 @@ _X_HIDDEN void *xfree86LookupTab[] = {
     SYMFUNC(xf86RandR12PreInit)
     SYMFUNC(xf86RandR12SetConfig)
     SYMFUNC(xf86RandR12SetRotations)
+    SYMFUNC(xf86RandR12TellChanged)
 #endif
     SYMFUNC(xf86_cursors_init)
     SYMFUNC(xf86_reload_cursors)
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 08306bc..95b3035 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -53,7 +53,7 @@
 
 int xf86CrtcConfigPrivateIndex = -1;
 
-void
+_X_EXPORT void
 xf86CrtcConfigInit (ScrnInfoPtr scrn,
 		    const xf86CrtcConfigFuncsRec *funcs)
 {
@@ -68,7 +68,7 @@ xf86CrtcConfigInit (ScrnInfoPtr scrn,
     scrn->privates[xf86CrtcConfigPrivateIndex].ptr = config;
 }
  
-void
+_X_EXPORT void
 xf86CrtcSetSizeRange (ScrnInfoPtr scrn,
 		      int minWidth, int minHeight,
 		      int maxWidth, int maxHeight)
@@ -84,7 +84,7 @@ xf86CrtcSetSizeRange (ScrnInfoPtr scrn,
 /*
  * Crtc functions
  */
-xf86CrtcPtr
+_X_EXPORT xf86CrtcPtr
 xf86CrtcCreate (ScrnInfoPtr		scrn,
 		const xf86CrtcFuncsRec	*funcs)
 {
@@ -116,7 +116,7 @@ xf86CrtcCreate (ScrnInfoPtr		scrn,
     return crtc;
 }
 
-void
+_X_EXPORT void
 xf86CrtcDestroy (xf86CrtcPtr crtc)
 {
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
@@ -140,7 +140,7 @@ xf86CrtcDestroy (xf86CrtcPtr crtc)
  * Return whether any outputs are connected to the specified pipe
  */
 
-Bool
+_X_EXPORT Bool
 xf86CrtcInUse (xf86CrtcPtr crtc)
 {
     ScrnInfoPtr		pScrn = crtc->scrn;
@@ -153,7 +153,7 @@ xf86CrtcInUse (xf86CrtcPtr crtc)
     return FALSE;
 }
 
-void
+_X_EXPORT void
 xf86CrtcSetScreenSubpixelOrder (ScreenPtr pScreen)
 {
 #ifdef RENDER
@@ -221,7 +221,7 @@ xf86CrtcSetScreenSubpixelOrder (ScreenPt
 /**
  * Sets the given video mode on the given crtc
  */
-Bool
+_X_EXPORT Bool
 xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation,
 		 int x, int y)
 {
@@ -492,7 +492,7 @@ xf86OutputInitialRotation (xf86OutputPtr
     return RR_Rotate_0;
 }
 
-xf86OutputPtr
+_X_EXPORT xf86OutputPtr
 xf86OutputCreate (ScrnInfoPtr		    scrn,
 		  const xf86OutputFuncsRec  *funcs,
 		  const char		    *name)
@@ -552,7 +552,7 @@ xf86OutputCreate (ScrnInfoPtr		    scrn,
     return output;
 }
 
-Bool
+_X_EXPORT Bool
 xf86OutputRename (xf86OutputPtr output, const char *name)
 {
     int	    len = strlen(name) + 1;
@@ -571,7 +571,7 @@ xf86OutputRename (xf86OutputPtr output, 
     return TRUE;
 }
 
-void
+_X_EXPORT void
 xf86OutputUseScreenMonitor (xf86OutputPtr output, Bool use_screen_monitor)
 {
     if (use_screen_monitor != output->use_screen_monitor)
@@ -581,7 +581,7 @@ xf86OutputUseScreenMonitor (xf86OutputPt
     }
 }
 
-void
+_X_EXPORT void
 xf86OutputDestroy (xf86OutputPtr output)
 {
     ScrnInfoPtr		scrn = output->scrn;
@@ -657,7 +657,7 @@ xf86CrtcCloseScreen (int index, ScreenPt
 /*
  * Called at ScreenInit time to set up
  */
-Bool
+_X_EXPORT Bool
 xf86CrtcScreenInit (ScreenPtr screen)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
@@ -1214,7 +1214,7 @@ xf86SortModes (DisplayModePtr input)
     return output;
 }
 
-void
+_X_EXPORT void
 xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -1455,10 +1455,10 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, 
  */
 
 /* XXX where does this function belong? Here? */
-void
+_X_EXPORT void
 xf86RandR12GetOriginalVirtualSize(ScrnInfoPtr scrn, int *x, int *y);
 
-void
+_X_EXPORT void
 xf86SetScrnInfoModes (ScrnInfoPtr scrn)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -1526,7 +1526,7 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
  * accordingly.
  */
 
-Bool
+_X_EXPORT Bool
 xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -1730,7 +1730,7 @@ xf86InitialConfiguration (ScrnInfoPtr sc
  * modes (used in EnterVT functions, or at server startup)
  */
 
-Bool
+_X_EXPORT Bool
 xf86SetDesiredModes (ScrnInfoPtr scrn)
 {
     xf86CrtcConfigPtr   config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -1810,7 +1810,7 @@ xf86SetDesiredModes (ScrnInfoPtr scrn)
  * - Closer in refresh rate to the requested mode.
  */
 
-DisplayModePtr
+_X_EXPORT DisplayModePtr
 xf86OutputFindClosestMode (xf86OutputPtr output, DisplayModePtr desired)
 {
     DisplayModePtr	best = NULL, scan = NULL;
@@ -1873,7 +1873,7 @@ xf86OutputFindClosestMode (xf86OutputPtr
  * mode across all outputs that are currently active.
  */
 
-Bool
+_X_EXPORT Bool
 xf86SetSingleMode (ScrnInfoPtr pScrn, DisplayModePtr desired, Rotation rotation)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(pScrn);
@@ -1945,7 +1945,7 @@ xf86SetSingleMode (ScrnInfoPtr pScrn, Di
  * If the new mode is off, it will turn off outputs and then CRTCs.
  * Otherwise, it will affect CRTCs before outputs.
  */
-void
+_X_EXPORT void
 xf86DPMSSet(ScrnInfoPtr scrn, int mode, int flags)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -1983,7 +1983,7 @@ xf86DPMSSet(ScrnInfoPtr scrn, int mode, 
  * Even for monitors with no DPMS support, by the definition of our DPMS hooks,
  * the outputs will still get disabled (blanked).
  */
-Bool
+_X_EXPORT Bool
 xf86SaveScreen(ScreenPtr pScreen, int mode)
 {
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
@@ -1999,7 +1999,7 @@ xf86SaveScreen(ScreenPtr pScreen, int mo
 /**
  * Disable all inactive crtcs and outputs
  */
-void
+_X_EXPORT void
 xf86DisableUnusedFunctions(ScrnInfoPtr pScrn)
 {
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
@@ -2053,7 +2053,7 @@ xf86OutputSetEDIDProperty (xf86OutputPtr
 /**
  * Set the EDID information for the specified output
  */
-void
+_X_EXPORT void
 xf86OutputSetEDID (xf86OutputPtr output, xf86MonPtr edid_mon)
 {
     ScrnInfoPtr		scrn = output->scrn;
@@ -2119,7 +2119,7 @@ xf86OutputSetEDID (xf86OutputPtr output,
  * Return the list of modes supported by the EDID information
  * stored in 'output'
  */
-DisplayModePtr
+_X_EXPORT DisplayModePtr
 xf86OutputGetEDIDModes (xf86OutputPtr output)
 {
     ScrnInfoPtr	scrn = output->scrn;
@@ -2130,7 +2130,7 @@ xf86OutputGetEDIDModes (xf86OutputPtr ou
     return xf86DDCGetModes(scrn->scrnIndex, edid_mon);
 }
 
-xf86MonPtr
+_X_EXPORT xf86MonPtr
 xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus)
 {
     ScrnInfoPtr	scrn = output->scrn;
@@ -2141,7 +2141,7 @@ xf86OutputGetEDID (xf86OutputPtr output,
 static char *_xf86ConnectorNames[] = { "None", "VGA", "DVI-I", "DVI-D",
 				      "DVI-A", "Composite", "S-Video",
 				      "Component", "LFP", "Proprietary" };
-char *
+_X_EXPORT char *
 xf86ConnectorGetName(xf86ConnectorType connector)
 {
     return _xf86ConnectorNames[connector];
@@ -2223,7 +2223,7 @@ xf86_covering_crtc(ScrnInfoPtr pScrn,
  * clip video to that
  */
 
-Bool
+_X_EXPORT Bool
 xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
 			    xf86CrtcPtr *crtc_ret,
 			    xf86CrtcPtr desired_crtc,
diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 92b90a9..b510164 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -256,7 +256,7 @@ xf86_crtc_hide_cursor (xf86CrtcPtr crtc)
     }
 }
 
-void
+_X_EXPORT void
 xf86_hide_cursors (ScrnInfoPtr scrn)
 {
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -282,7 +282,7 @@ xf86_crtc_show_cursor (xf86CrtcPtr crtc)
     }
 }
 
-void
+_X_EXPORT void
 xf86_show_cursors (ScrnInfoPtr scrn)
 {
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -528,7 +528,7 @@ xf86_load_cursor_argb (ScrnInfoPtr scrn,
     }
 }
 
-Bool
+_X_EXPORT Bool
 xf86_cursors_init (ScreenPtr screen, int max_width, int max_height, int flags)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
@@ -579,7 +579,7 @@ xf86_cursors_init (ScreenPtr screen, int
  * Reloads cursor images as needed, then adjusts cursor positions
  */
 
-void
+_X_EXPORT void
 xf86_reload_cursors (ScreenPtr screen)
 {
     ScrnInfoPtr		scrn;
@@ -622,7 +622,7 @@ xf86_reload_cursors (ScreenPtr screen)
 /**
  * Clean up CRTC-based cursor code
  */
-void
+_X_EXPORT void
 xf86_cursors_fini (ScreenPtr screen)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
diff --git a/hw/xfree86/modes/xf86DiDGA.c b/hw/xfree86/modes/xf86DiDGA.c
index 0964cef..f40d0ab 100644
--- a/hw/xfree86/modes/xf86DiDGA.c
+++ b/hw/xfree86/modes/xf86DiDGA.c
@@ -255,7 +255,7 @@ static DGAFunctionRec xf86_dga_funcs = {
    NULL
 };
 
-Bool
+_X_EXPORT Bool
 xf86DiDGAReInit (ScreenPtr pScreen)
 {
     ScrnInfoPtr		scrn = xf86Screens[pScreen->myNum];
@@ -267,7 +267,7 @@ xf86DiDGAReInit (ScreenPtr pScreen)
     return DGAReInitModes (pScreen, xf86_config->dga_modes, xf86_config->dga_nmode);
 }
 
-Bool
+_X_EXPORT Bool
 xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address)
 {
     ScrnInfoPtr		scrn = xf86Screens[pScreen->myNum];
diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index 908593b..8b5e69d 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -303,7 +303,7 @@ DDCGuessRangesFromModes(int scrnIndex, M
     }
 }
 
-DisplayModePtr
+_X_EXPORT DisplayModePtr
 xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC)
 {
     int preferred, i;
@@ -389,7 +389,7 @@ xf86DDCGetModes(int scrnIndex, xf86MonPt
 /*
  * Fill out MonPtr with xf86MonPtr information.
  */
-void
+_X_EXPORT void
 xf86DDCMonitorSet(int scrnIndex, MonPtr Monitor, xf86MonPtr DDC)
 {
     DisplayModePtr Modes = NULL, Mode;
diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c
index ea9f85b..f49c292 100644
--- a/hw/xfree86/modes/xf86Modes.c
+++ b/hw/xfree86/modes/xf86Modes.c
@@ -49,7 +49,7 @@ extern XF86ConfigPtr xf86configptr;
  *
  * Exact copy of xf86Mode.c's.
  */
-double
+_X_EXPORT double
 xf86ModeHSync(DisplayModePtr mode)
 {
     double hsync = 0.0;
@@ -67,7 +67,7 @@ xf86ModeHSync(DisplayModePtr mode)
  *
  * Exact copy of xf86Mode.c's.
  */
-double
+_X_EXPORT double
 xf86ModeVRefresh(DisplayModePtr mode)
 {
     double refresh = 0.0;
@@ -86,7 +86,7 @@ xf86ModeVRefresh(DisplayModePtr mode)
     return refresh;
 }
 
-int
+_X_EXPORT int
 xf86ModeWidth (DisplayModePtr mode, Rotation rotation)
 {
     switch (rotation & 0xf) {
@@ -101,7 +101,7 @@ xf86ModeWidth (DisplayModePtr mode, Rota
     }
 }
 
-int
+_X_EXPORT int
 xf86ModeHeight (DisplayModePtr mode, Rotation rotation)
 {
     switch (rotation & 0xf) {
@@ -117,7 +117,7 @@ xf86ModeHeight (DisplayModePtr mode, Rot
 }
 
 /** Sets a default mode name of <width>x<height> on a mode. */
-void
+_X_EXPORT void
 xf86SetModeDefaultName(DisplayModePtr mode)
 {
     if (mode->name != NULL)
@@ -134,7 +134,7 @@ xf86SetModeDefaultName(DisplayModePtr mo
  *
  * Exact copy of xf86Mode.c's.
  */
-void
+_X_EXPORT void
 xf86SetModeCrtc(DisplayModePtr p, int adjustFlags)
 {
     if ((p == NULL) || ((p->type & M_T_CRTC_C) == M_T_BUILTIN))
@@ -185,7 +185,7 @@ xf86SetModeCrtc(DisplayModePtr p, int ad
 /**
  * Allocates and returns a copy of pMode, including pointers within pMode.
  */
-DisplayModePtr
+_X_EXPORT DisplayModePtr
 xf86DuplicateMode(DisplayModePtr pMode)
 {
     DisplayModePtr pNew;
@@ -209,7 +209,7 @@ xf86DuplicateMode(DisplayModePtr pMode)
  *
  * \param modeList doubly-linked mode list
  */
-DisplayModePtr
+_X_EXPORT DisplayModePtr
 xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList)
 {
     DisplayModePtr first = NULL, last = NULL;
@@ -243,7 +243,7 @@ xf86DuplicateModes(ScrnInfoPtr pScrn, Di
  *
  * This isn't in xf86Modes.c, but it might deserve to be there.
  */
-Bool
+_X_EXPORT Bool
 xf86ModesEqual(DisplayModePtr pMode1, DisplayModePtr pMode2)
 {
      if (pMode1->Clock == pMode2->Clock &&
@@ -279,7 +279,7 @@ add(char **p, char *new)
  *
  * Convenient VRefresh printing was added, though, compared to xf86Mode.c
  */
-void
+_X_EXPORT void
 xf86PrintModeline(int scrnIndex,DisplayModePtr mode)
 {
     char tmp[256];
@@ -327,7 +327,7 @@ xf86PrintModeline(int scrnIndex,DisplayM
  *
  * This is not in xf86Modes.c, but would be part of the proposed new API.
  */
-void
+_X_EXPORT void
 xf86ValidateModesFlags(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			    int flags)
 {
@@ -348,7 +348,7 @@ xf86ValidateModesFlags(ScrnInfoPtr pScrn
  *
  * This is not in xf86Modes.c, but would be part of the proposed new API.
  */
-void
+_X_EXPORT void
 xf86ValidateModesSize(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			  int maxX, int maxY, int maxPitch)
 {
@@ -377,7 +377,7 @@ xf86ValidateModesSize(ScrnInfoPtr pScrn,
  *
  * This is not in xf86Modes.c, but would be part of the proposed new API.
  */
-void
+_X_EXPORT void
 xf86ValidateModesSync(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			  MonPtr mon)
 {
@@ -424,7 +424,7 @@ xf86ValidateModesSync(ScrnInfoPtr pScrn,
  *
  * This is not in xf86Modes.c, but would be part of the proposed new API.
  */
-void
+_X_EXPORT void
 xf86ValidateModesClocks(ScrnInfoPtr pScrn, DisplayModePtr modeList,
 			    int *min, int *max, int n_ranges)
 {
@@ -458,7 +458,7 @@ xf86ValidateModesClocks(ScrnInfoPtr pScr
  *
  * This is not in xf86Modes.c, but would be part of the proposed new API.
  */
-void
+_X_EXPORT void
 xf86ValidateModesUserConfig(ScrnInfoPtr pScrn, DisplayModePtr modeList)
 {
     DisplayModePtr mode;
@@ -492,7 +492,7 @@ xf86ValidateModesUserConfig(ScrnInfoPtr 
  *
  * This is not in xf86Modes.c, but would be part of the proposed new API.
  */
-void
+_X_EXPORT void
 xf86PruneInvalidModes(ScrnInfoPtr pScrn, DisplayModePtr *modeList,
 			  Bool verbose)
 {
@@ -526,7 +526,7 @@ xf86PruneInvalidModes(ScrnInfoPtr pScrn,
  *
  * \param modes doubly-linked mode list.
  */
-DisplayModePtr
+_X_EXPORT DisplayModePtr
 xf86ModesAdd(DisplayModePtr modes, DisplayModePtr new)
 {
     if (modes == NULL)
@@ -592,7 +592,7 @@ xf86GetConfigModes (XF86ConfModeLinePtr 
 /**
  * Build a mode list from a monitor configuration
  */
-DisplayModePtr
+_X_EXPORT DisplayModePtr
 xf86GetMonitorModes (ScrnInfoPtr pScrn, XF86ConfMonitorPtr conf_monitor)
 {
     DisplayModePtr	    modes = NULL;
@@ -624,7 +624,7 @@ xf86GetMonitorModes (ScrnInfoPtr pScrn, 
 /**
  * Build a mode list containing all of the default modes
  */
-DisplayModePtr
+_X_EXPORT DisplayModePtr
 xf86GetDefaultModes (Bool interlaceAllowed, Bool doubleScanAllowed)
 {
     DisplayModePtr  head = NULL, prev = NULL, mode;
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index ae0a2ce..38435c9 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -244,7 +244,7 @@ xf86RandR12SetMode (ScreenPtr	    pScree
     return ret;
 }
 
-Bool
+_X_EXPORT Bool
 xf86RandR12SetConfig (ScreenPtr		pScreen,
 		    Rotation		rotation,
 		    int			rate,
@@ -372,7 +372,7 @@ finish:
     return ret;
 }
 
-Rotation
+_X_EXPORT Rotation
 xf86RandR12GetRotation(ScreenPtr pScreen)
 {
     XF86RandRInfoPtr	    randrp = XF86RANDRINFO(pScreen);
@@ -380,7 +380,7 @@ xf86RandR12GetRotation(ScreenPtr pScreen
     return randrp->rotation;
 }
 
-Bool
+_X_EXPORT Bool
 xf86RandR12CreateScreenResources (ScreenPtr pScreen)
 {
     ScrnInfoPtr		pScrn = xf86Screens[pScreen->myNum];
@@ -470,7 +470,7 @@ xf86RandR12CreateScreenResources (Screen
 }
 
 
-Bool
+_X_EXPORT Bool
 xf86RandR12Init (ScreenPtr pScreen)
 {
     rrScrPrivPtr	rp;
@@ -520,7 +520,7 @@ xf86RandR12Init (ScreenPtr pScreen)
     return TRUE;
 }
 
-void
+_X_EXPORT void
 xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotations)
 {
     XF86RandRInfoPtr	randrp = XF86RANDRINFO(pScreen);
@@ -538,7 +538,7 @@ xf86RandR12SetRotations (ScreenPtr pScre
     randrp->supported_rotations = rotations;
 }
 
-void
+_X_EXPORT void
 xf86RandR12GetOriginalVirtualSize(ScrnInfoPtr pScrn, int *x, int *y)
 {
     ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
@@ -1072,7 +1072,7 @@ xf86RandR12CreateScreenResources12 (Scre
  * to DGA, VidMode or hot key. Tell RandR
  */
 
-void
+_X_EXPORT void
 xf86RandR12TellChanged (ScreenPtr pScreen)
 {
     ScrnInfoPtr		pScrn = xf86Screens[pScreen->myNum];
@@ -1122,7 +1122,7 @@ xf86RandR12Init12 (ScreenPtr pScreen)
 
 #endif
 
-Bool
+_X_EXPORT Bool
 xf86RandR12PreInit (ScrnInfoPtr pScrn)
 {
     return TRUE;
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index 4016b97..380478f 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -478,7 +478,7 @@ xf86RotateDestroy (xf86CrtcPtr crtc)
     }
 }
 
-void
+_X_EXPORT void
 xf86RotateCloseScreen (ScreenPtr screen)
 {
     ScrnInfoPtr		scrn = xf86Screens[screen->myNum];
@@ -489,7 +489,7 @@ xf86RotateCloseScreen (ScreenPtr screen)
 	xf86RotateDestroy (xf86_config->crtc[c]);
 }
 
-Bool
+_X_EXPORT Bool
 xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation)
 {
     ScrnInfoPtr		pScrn = crtc->scrn;
diff-tree 57f7f2a5327a2d967a726bb4706e4f6b2f4b2cea (from d0dc9698ae4324d44ed4c0482d6858d0b73bff33)
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug 22 09:02:03 2007 -0700

    Revert "Require pixman 0.9.5; Use pixman_image_set_source_clipping() to fix"
    
    The corresponding pixman code hasn't been pushed, so revert until the code is
    ready.
    
    This reverts commit 53941c8e68014619d3ded7f8bc0f07d9a38bb9b1.

diff --git a/configure.ac b/configure.ac
index fae439c..f0ede75 100644
--- a/configure.ac
+++ b/configure.ac
@@ -624,7 +624,7 @@ XEXT_INC='-I$(top_srcdir)/Xext'
 XEXT_LIB='$(top_builddir)/Xext/libXext.la'
 XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
 
-PIXMAN="[pixman-1 >= 0.9.5]"
+PIXMAN="[pixman-1 >= 0.9.4]"
 PKG_CHECK_MODULES(PIXMAN, $PIXMAN)
 AC_SUBST(PIXMAN_CFLAGS)
 
diff --git a/fb/fbpict.c b/fb/fbpict.c
index 85b5171..8a146dd 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -397,7 +397,6 @@ set_image_properties (pixman_image_t *im
     }
     
     pixman_image_set_filter (image, filter, (pixman_fixed_t *)pict->filter_params, pict->filter_nparams);
-    pixman_image_set_source_clipping (image, TRUE);
 }
 
 pixman_image_t *
diff-tree d0dc9698ae4324d44ed4c0482d6858d0b73bff33 (from bc2d516f16d94c805b4dfa8e5b9eef40ff0cbe98)
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug 22 09:00:45 2007 -0700

    Revert "Fix <pixman.h> include to <pixman/pixman.h>"
    
    The pixman headers have been located under pixman-1/ instead of pixman/ since
    around 2007-08-06, and pixman-1.pc has the updated include paths to account
    for this.
    
    This reverts commit feb1b3e45513bd6eaa2e6a5ee536183f20d9cb68.

diff --git a/fb/fb.h b/fb/fb.h
index 27b49f6..df430b8 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -26,7 +26,7 @@
 #define _FB_H_
 
 #include <X11/X.h>
-#include <pixman/pixman.h>
+#include <pixman.h>
 
 #include "scrnintstr.h"
 #include "pixmap.h"
diff --git a/include/miscstruct.h b/include/miscstruct.h
index 4f5b1d5..d240f1b 100644
--- a/include/miscstruct.h
+++ b/include/miscstruct.h
@@ -51,7 +51,7 @@ SOFTWARE.
 #include "misc.h"
 #include <X11/Xprotostr.h>
 #include "gc.h"
-#include <pixman/pixman.h>
+#include <pixman.h>
 
 typedef xPoint DDXPointRec;
 
diff --git a/mi/miregion.c b/mi/miregion.c
index 28d38a2..45768a3 100644
--- a/mi/miregion.c
+++ b/mi/miregion.c
@@ -85,7 +85,7 @@ Equipment Corporation.
 #include "gc.h"
 #include "mi.h"
 #include "mispans.h"
-#include <pixman/pixman.h>
+#include <pixman.h>
 
 #undef assert
 #ifdef DEBUG
diff --git a/render/picture.h b/render/picture.h
index 1719587..563a81b 100644
--- a/render/picture.h
+++ b/render/picture.h
@@ -25,7 +25,7 @@
 #ifndef _PICTURE_H_
 #define _PICTURE_H_
 
-#include <pixman/pixman.h>
+#include <pixman.h>
 
 typedef struct _DirectFormat	*DirectFormatPtr;
 typedef struct _PictFormat	*PictFormatPtr;
diff-tree bc2d516f16d94c805b4dfa8e5b9eef40ff0cbe98 (from feb1b3e45513bd6eaa2e6a5ee536183f20d9cb68)
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Aug 17 12:14:16 2007 -0700

    Fix overly-restrictive integer overflow check in EXA pixmap creation.
    
    The result was that at 32bpp, pixmaps of width 8192 or greater couldn't be
    created, due to treating a pitch value as a width.

diff --git a/exa/exa.c b/exa/exa.c
index aa42b92..b2faf2f 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -253,7 +253,7 @@ exaCreatePixmap(ScreenPtr pScreen, int w
 				     pExaScr->info->pixmapPitchAlign);
     pExaPixmap->fb_size = pExaPixmap->fb_pitch * h;
 
-    if (pExaPixmap->fb_pitch > 32767) {
+    if (pExaPixmap->fb_pitch > 131071) {
 	fbDestroyPixmap(pPixmap);
 	return NULL;
     }
diff-tree feb1b3e45513bd6eaa2e6a5ee536183f20d9cb68 (from b6a7c0112c42a3287e53647c38b2c0c5bf8fefa0)
Author: Alan Hourihane <alanh at fairlite.demon.co.uk>
Date:   Wed Aug 22 16:54:29 2007 +0100

    Fix <pixman.h> include to <pixman/pixman.h>

diff --git a/fb/fb.h b/fb/fb.h
index df430b8..27b49f6 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -26,7 +26,7 @@
 #define _FB_H_
 
 #include <X11/X.h>
-#include <pixman.h>
+#include <pixman/pixman.h>
 
 #include "scrnintstr.h"
 #include "pixmap.h"
diff --git a/include/miscstruct.h b/include/miscstruct.h
index d240f1b..4f5b1d5 100644
--- a/include/miscstruct.h
+++ b/include/miscstruct.h
@@ -51,7 +51,7 @@ SOFTWARE.
 #include "misc.h"
 #include <X11/Xprotostr.h>
 #include "gc.h"
-#include <pixman.h>
+#include <pixman/pixman.h>
 
 typedef xPoint DDXPointRec;
 
diff --git a/mi/miregion.c b/mi/miregion.c
index 45768a3..28d38a2 100644
--- a/mi/miregion.c
+++ b/mi/miregion.c
@@ -85,7 +85,7 @@ Equipment Corporation.
 #include "gc.h"
 #include "mi.h"
 #include "mispans.h"
-#include <pixman.h>
+#include <pixman/pixman.h>
 
 #undef assert
 #ifdef DEBUG
diff --git a/render/picture.h b/render/picture.h
index 563a81b..1719587 100644
--- a/render/picture.h
+++ b/render/picture.h
@@ -25,7 +25,7 @@
 #ifndef _PICTURE_H_
 #define _PICTURE_H_
 
-#include <pixman.h>
+#include <pixman/pixman.h>
 
 typedef struct _DirectFormat	*DirectFormatPtr;
 typedef struct _PictFormat	*PictFormatPtr;
diff-tree b6a7c0112c42a3287e53647c38b2c0c5bf8fefa0 (from parents)
Merge: 53941c8e68014619d3ded7f8bc0f07d9a38bb9b1 6ef4ecd82670c37a354243166750d76a97959c8b
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Tue Aug 21 14:26:34 2007 -0400

    Merge branch 'master' of ssh+git://sandmann@git.freedesktop.org/git/xorg/xserver

diff-tree 53941c8e68014619d3ded7f8bc0f07d9a38bb9b1 (from 6a32a96d8df184c3ace4847beb48fdcb846d2286)
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Tue Aug 21 14:26:14 2007 -0400

    Require pixman 0.9.5; Use pixman_image_set_source_clipping() to fix
    bug 11620 (reported by Jens Stroebel.

diff --git a/configure.ac b/configure.ac
index 41cc103..ad6ae4b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -623,7 +623,7 @@ XEXT_INC='-I$(top_srcdir)/Xext'
 XEXT_LIB='$(top_builddir)/Xext/libXext.la'
 XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
 
-PIXMAN="[pixman-1 >= 0.9.4]"
+PIXMAN="[pixman-1 >= 0.9.5]"
 PKG_CHECK_MODULES(PIXMAN, $PIXMAN)
 AC_SUBST(PIXMAN_CFLAGS)
 
diff --git a/fb/fbpict.c b/fb/fbpict.c
index 8a146dd..85b5171 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -397,6 +397,7 @@ set_image_properties (pixman_image_t *im
     }
     
     pixman_image_set_filter (image, filter, (pixman_fixed_t *)pict->filter_params, pict->filter_nparams);
+    pixman_image_set_source_clipping (image, TRUE);
 }
 
 pixman_image_t *
diff-tree 6ef4ecd82670c37a354243166750d76a97959c8b (from 1834cfb4470341aace64a2fa47d04f85dbf98a47)
Author: Julien Cristau <jcristau at debian.org>
Date:   Tue Aug 21 18:17:35 2007 +0200

    config: fix default xkb model (pc105, not keyboard)

diff --git a/config/x11-input.fdi b/config/x11-input.fdi
index 7f516ca..c390706 100644
--- a/config/x11-input.fdi
+++ b/config/x11-input.fdi
@@ -16,7 +16,7 @@
       <!-- If we're using Linux, we use evdev by default (falling back to
            keyboard otherwise). -->
       <merge key="input.x11_driver" type="string">keyboard</merge>
-      <merge key="input.xkb.model" type="string">keyboard</merge>
+      <merge key="input.xkb.model" type="string">pc105</merge>
       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
              string="Linux">
         <merge key="input.x11_driver" type="string">evdev</merge>
diff-tree 1834cfb4470341aace64a2fa47d04f85dbf98a47 (from 265a633cf1fcbf497d6916d9e22403dffdde2e07)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Aug 21 10:44:37 2007 -0400

    Fix an error message to not point to @xfree86.org.

diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
index b3494a7..ad2b66f 100644
--- a/hw/xfree86/os-support/linux/lnx_video.c
+++ b/hw/xfree86/os-support/linux/lnx_video.c
@@ -411,7 +411,7 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
 # ifndef JENSEN_SUPPORT
 	  FatalError("Jensen is not supported any more\n"
 		     "If you are intereseted in fixing Jensen support\n"
-		     "please contact xfree86 at xfree86.org\n");
+		     "please contact xorg at lists.freedesktop.org\n");
 # else
 	  xf86Msg(X_INFO,"Machine type is Jensen\n");
 	  pVidMem->mapMem = mapVidMemJensen;
diff-tree 265a633cf1fcbf497d6916d9e22403dffdde2e07 (from 7dc8531548cc9573e28bb04363dcbb3af5864c9a)
Author: Keith Packard <keithp at koto.keithp.com>
Date:   Sun Aug 19 20:29:37 2007 -0700

    Screen size changing should leave FB alone when X is inactive.
    
    xf86RandR12ScreenSetSize must protect calls to EnableDisableFBAccess with
    suitable vtSema checks to avoid invoking driver code while the X server is
    inactive.

diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 9d74e53..ae0a2ce 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -345,7 +345,7 @@ xf86RandR12ScreenSetSize (ScreenPtr	pScr
 	randrp->virtualX = pScrn->virtualX;
 	randrp->virtualY = pScrn->virtualY;
     }
-    if (pRoot)
+    if (pRoot && pScrn->vtSema)
 	(*pScrn->EnableDisableFBAccess) (pScreen->myNum, FALSE);
 
     /* Let the driver update virtualX and virtualY */
@@ -363,7 +363,7 @@ xf86RandR12ScreenSetSize (ScreenPtr	pScr
     xf86SetViewport (pScreen, 0, 0);
 
 finish:
-    if (pRoot)
+    if (pRoot && pScrn->vtSema)
 	(*pScrn->EnableDisableFBAccess) (pScreen->myNum, TRUE);
 #if RANDR_12_INTERFACE
     if (WindowTable[pScreen->myNum] && ret)
diff-tree 7dc8531548cc9573e28bb04363dcbb3af5864c9a (from 1f6ddae003ec65d6bc567831bf32bf75dfefdd6c)
Author: Keith Packard <keithp at koto.keithp.com>
Date:   Sun Aug 19 20:28:05 2007 -0700

    Ref count cursors used in hw/xfree86/modes code.
    
    The multi-crtc cursor code in hw/xfree86/modes holds a reference to the
    current cursor. This reference must be correctly ref counted so the cursor
    is not freed out from underneath this code.

diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 396bf30..92b90a9 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -447,7 +447,10 @@ xf86_use_hw_cursor (ScreenPtr screen, Cu
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
     xf86CursorInfoPtr	cursor_info = xf86_config->cursor_info;
 
+    if (xf86_config->cursor)
+	FreeCursor (xf86_config->cursor, None);
     xf86_config->cursor = cursor;
+    ++cursor->refcnt;
     
     if (cursor->bits->width > cursor_info->MaxWidth ||
 	cursor->bits->height> cursor_info->MaxHeight)
@@ -463,7 +466,10 @@ xf86_use_hw_cursor_argb (ScreenPtr scree
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
     xf86CursorInfoPtr	cursor_info = xf86_config->cursor_info;
     
+    if (xf86_config->cursor)
+	FreeCursor (xf86_config->cursor, None);
     xf86_config->cursor = cursor;
+    ++cursor->refcnt;
     
     /* Make sure ARGB support is available */
     if ((cursor_info->Flags & HARDWARE_CURSOR_ARGB) == 0)
@@ -632,4 +638,9 @@ xf86_cursors_fini (ScreenPtr screen)
 	xfree (xf86_config->cursor_image);
 	xf86_config->cursor_image = NULL;
     }
+    if (xf86_config->cursor)
+    {
+	FreeCursor (xf86_config->cursor, None);
+	xf86_config->cursor = NULL;
+    }
 }
diff-tree 1f6ddae003ec65d6bc567831bf32bf75dfefdd6c (from c839859d1bc35451923a2cbd5dfac4f3ca5eb3f9)
Author: Alex Deucher <alex at botch2.com>
Date:   Tue Aug 21 00:37:33 2007 -0400

    add xf86_crtc_clip_video_helper to xf86sym.c

diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
index 8a2768d..185eb80 100644
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -1203,6 +1203,7 @@ _X_HIDDEN void *xfree86LookupTab[] = {
     SYMFUNC(xf86_show_cursors)
     SYMFUNC(xf86_hide_cursors)
     SYMFUNC(xf86_cursors_fini)
+    SYMFUNC(xf86_crtc_clip_video_helper)
 
     SYMFUNC(xf86DoEDID_DDC1)
     SYMFUNC(xf86DoEDID_DDC2)
diff-tree c839859d1bc35451923a2cbd5dfac4f3ca5eb3f9 (from 53c04351c462d2ae307684e50d5960debe1ee557)
Author: David Nusinow <dnusinow at debian.org>
Date:   Mon Aug 20 21:09:27 2007 -0400

    Move module defaults from the header to the source file.
    
    This is where they should have been in the first place. All the rest of
    the code in the server defines such things in the source files, not the
    headers.

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 3c29497..4773715 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -114,6 +114,18 @@ extern DeviceAssocRec mouse_assoc;
 
 static char *fontPath = NULL;
 
+static ModuleDefault ModuleDefaults[] = {
+    {.name = "extmod",   .toLoad = TRUE,    .load_opt=NULL},
+    {.name = "dbe",      .toLoad = TRUE,    .load_opt=NULL},
+    {.name = "glx",      .toLoad = TRUE,    .load_opt=NULL},
+    {.name = "freetype", .toLoad = TRUE,    .load_opt=NULL},
+    {.name = "type1",    .toLoad = TRUE,    .load_opt=NULL},
+    {.name = "record",   .toLoad = TRUE,    .load_opt=NULL},
+    {.name = "dri",      .toLoad = TRUE,    .load_opt=NULL},
+    {.name = NULL,       .toLoad = FALSE,   .load_opt=NULL}
+};
+
+
 /* Forward declarations */
 static Bool configScreen(confScreenPtr screenp, XF86ConfScreenPtr conf_screen,
 			 int scrnum, MessageType from);
diff --git a/hw/xfree86/common/xf86Config.h b/hw/xfree86/common/xf86Config.h
index 7fc161d..b8b5fd4 100644
--- a/hw/xfree86/common/xf86Config.h
+++ b/hw/xfree86/common/xf86Config.h
@@ -54,17 +54,6 @@ typedef struct _ModuleDefault {
     XF86OptionPtr load_opt;
 } ModuleDefault;
 
-static ModuleDefault ModuleDefaults[] = {
-    {.name = "extmod",   .toLoad = TRUE,    .load_opt=NULL},
-    {.name = "dbe",      .toLoad = TRUE,    .load_opt=NULL},
-    {.name = "glx",      .toLoad = TRUE,    .load_opt=NULL},
-    {.name = "freetype", .toLoad = TRUE,    .load_opt=NULL},
-    {.name = "type1",    .toLoad = TRUE,    .load_opt=NULL},
-    {.name = "record",   .toLoad = TRUE,    .load_opt=NULL},
-    {.name = "dri",      .toLoad = TRUE,    .load_opt=NULL},
-    {.name = NULL,       .toLoad = FALSE,   .load_opt=NULL}
-};
-
 /*
  * prototypes
  */
diff-tree 53c04351c462d2ae307684e50d5960debe1ee557 (from a1fe36b772f7edc162ea97368f86588c0fb77148)
Author: Alex Deucher <alex at botch2.com>
Date:   Mon Aug 20 19:46:38 2007 -0400

    move intel crtc xv clipping helper to the xserver
    
    The code is generic and can be used by any overlay-based card when
    adding randr 1.2 support.  Tested on radeon.

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 170c921..08306bc 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -45,6 +45,8 @@
 #include "picturestr.h"
 #endif
 
+#include "xf86xv.h"
+
 /*
  * Initialize xf86CrtcConfig structure
  */
@@ -2144,3 +2146,119 @@ xf86ConnectorGetName(xf86ConnectorType c
 {
     return _xf86ConnectorNames[connector];
 }
+
+static void
+x86_crtc_box_intersect(BoxPtr dest, BoxPtr a, BoxPtr b)
+{
+    dest->x1 = a->x1 > b->x1 ? a->x1 : b->x1;
+    dest->x2 = a->x2 < b->x2 ? a->x2 : b->x2;
+    dest->y1 = a->y1 > b->y1 ? a->y1 : b->y1;
+    dest->y2 = a->y2 < b->y2 ? a->y2 : b->y2;
+
+    if (dest->x1 >= dest->x2 || dest->y1 >= dest->y2)
+	dest->x1 = dest->x2 = dest->y1 = dest->y2 = 0;
+}
+
+static void
+x86_crtc_box(xf86CrtcPtr crtc, BoxPtr crtc_box)
+{
+    if (crtc->enabled) {
+	crtc_box->x1 = crtc->x;
+	crtc_box->x2 = crtc->x + xf86ModeWidth(&crtc->mode, crtc->rotation);
+	crtc_box->y1 = crtc->y;
+	crtc_box->y2 = crtc->y + xf86ModeHeight(&crtc->mode, crtc->rotation);
+    } else
+	crtc_box->x1 = crtc_box->x2 = crtc_box->y1 = crtc_box->y2 = 0;
+}
+
+static int
+xf86_crtc_box_area(BoxPtr box)
+{
+    return (int) (box->x2 - box->x1) * (int) (box->y2 - box->y1);
+}
+
+/*
+ * Return the crtc covering 'box'. If two crtcs cover a portion of
+ * 'box', then prefer 'desired'. If 'desired' is NULL, then prefer the crtc
+ * with greater coverage
+ */
+
+static xf86CrtcPtr
+xf86_covering_crtc(ScrnInfoPtr pScrn,
+		   BoxPtr      box,
+		   xf86CrtcPtr desired,
+		   BoxPtr      crtc_box_ret)
+{
+    xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+    xf86CrtcPtr		crtc, best_crtc;
+    int			coverage, best_coverage;
+    int			c;
+    BoxRec		crtc_box, cover_box;
+
+    best_crtc = NULL;
+    best_coverage = 0;
+    crtc_box_ret->x1 = 0;
+    crtc_box_ret->x2 = 0;
+    crtc_box_ret->y1 = 0;
+    crtc_box_ret->y2 = 0;
+    for (c = 0; c < xf86_config->num_crtc; c++) {
+	crtc = xf86_config->crtc[c];
+	x86_crtc_box(crtc, &crtc_box);
+	x86_crtc_box_intersect(&cover_box, &crtc_box, box);
+	coverage = xf86_crtc_box_area(&cover_box);
+	if (coverage && crtc == desired) {
+	    *crtc_box_ret = crtc_box;
+	    return crtc;
+	} else if (coverage > best_coverage) {
+	    *crtc_box_ret = crtc_box;
+	    best_crtc = crtc;
+	    best_coverage = coverage;
+	}
+    }
+    return best_crtc;
+}
+
+/*
+ * For overlay video, compute the relevant CRTC and
+ * clip video to that
+ */
+
+Bool
+xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
+			    xf86CrtcPtr *crtc_ret,
+			    xf86CrtcPtr desired_crtc,
+			    BoxPtr      dst,
+			    INT32	*xa,
+			    INT32	*xb,
+			    INT32	*ya,
+			    INT32	*yb,
+			    RegionPtr   reg,
+			    INT32	width,
+			    INT32	height)
+{
+    Bool	ret;
+    RegionRec	crtc_region_local;
+    RegionPtr	crtc_region = reg;
+    
+    if (crtc_ret) {
+	BoxRec		crtc_box;
+	xf86CrtcPtr	crtc = xf86_covering_crtc(pScrn, dst,
+						  desired_crtc,
+						  &crtc_box);
+
+	if (crtc) {
+	    REGION_INIT (pScreen, &crtc_region_local, &crtc_box, 1);
+	    crtc_region = &crtc_region_local;
+	    REGION_INTERSECT (pScreen, crtc_region, crtc_region, reg);
+	}
+	*crtc_ret = crtc;
+    }
+
+    ret = xf86XVClipVideoHelper(dst, xa, xb, ya, yb, 
+				crtc_region, width, height);
+
+    if (crtc_region != reg)
+	REGION_UNINIT (pScreen, &crtc_region_local);
+
+    return ret;
+}
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index a4e8ea3..9693e12 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -765,5 +765,24 @@ xf86_hide_cursors (ScrnInfoPtr scrn);
  */
 void
 xf86_cursors_fini (ScreenPtr screen);
+
+/*
+ * For overlay video, compute the relevant CRTC and
+ * clip video to that.
+ * wraps xf86XVClipVideoHelper()
+ */
+
+Bool
+xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
+			    xf86CrtcPtr *crtc_ret,
+			    xf86CrtcPtr desired_crtc,
+			    BoxPtr      dst,
+			    INT32	*xa,
+			    INT32	*xb,
+			    INT32	*ya,
+			    INT32	*yb,
+			    RegionPtr   reg,
+			    INT32	width,
+			    INT32	height);
     
 #endif /* _XF86CRTC_H_ */
diff-tree a1fe36b772f7edc162ea97368f86588c0fb77148 (from 65a49f0ca198e0366175367729a101211388b16b)
Author: Julien Cristau <jcristau at debian.org>
Date:   Mon Aug 20 12:57:06 2007 +0200

    xfree86: Fix build on Linux/alpha.
    
    A bunch of CFLAGS had gone missing, so the build failed with errors like:
    ../../../../../hw/xfree86/os-support/linux/lnx_ev56.c:7:19: error: input.h: No such file or directory
    ../../../../../hw/xfree86/os-support/linux/lnx_ev56.c:8:24: error: scrnintstr.h: No such file or directory

diff --git a/hw/xfree86/os-support/linux/Makefile.am b/hw/xfree86/os-support/linux/Makefile.am
index 10f2440..5bb252b 100644
--- a/hw/xfree86/os-support/linux/Makefile.am
+++ b/hw/xfree86/os-support/linux/Makefile.am
@@ -11,7 +11,7 @@ PLATFORM_PCI_SUPPORT = \
        $(srcdir)/lnx_axp.c \
        $(srcdir)/../shared/xf86Axp.c
 
-liblinuxev56_la_CFLAGS = -mcpu=ev56
+liblinuxev56_la_CFLAGS = $(AM_CFLAGS) -mcpu=ev56
 
 liblinuxev56_la_SOURCES = lnx_ev56.c
 endif
diff-tree 65a49f0ca198e0366175367729a101211388b16b (from 3c448b0eb67337b56641e09a6d168aad6745e3ef)
Author: Blair Sadewitz <blair.sadewitz at gmail.com>
Date:   Sun Aug 19 20:29:22 2007 +0200

    Autoconfiguration of wsmouse for NetBSD.

diff --git a/hw/xfree86/os-support/bsd/bsd_mouse.c b/hw/xfree86/os-support/bsd/bsd_mouse.c
index 21fe1ff..ca2c1bb 100644
--- a/hw/xfree86/os-support/bsd/bsd_mouse.c
+++ b/hw/xfree86/os-support/bsd/bsd_mouse.c
@@ -83,7 +83,7 @@ static const char *mouseDevs[] = {
 	DEFAULT_PS2_DEV,
 	NULL
 };
-#elif defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
+#elif (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(WSCONS_SUPPORT)
 /* Only wsmouse mices are autoconfigured for now on OpenBSD */
 #define DEFAULT_WSMOUSE_DEV		"/dev/wsmouse"
 #define DEFAULT_WSMOUSE0_DEV		"/dev/wsmouse0"
@@ -154,7 +154,7 @@ DefaultProtocol(void)
 {
 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
     return "Auto";
-#elif defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
+#elif (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(WSCONS_SUPPORT)
     return "WSMouse";
 #else
     return NULL;
@@ -340,7 +340,7 @@ FindDevice(InputInfoPtr pInfo, const cha
 }
 #endif
 
-#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
+#if (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(WSCONS_SUPPORT)
 
 /* Only support wsmouse configuration for now */
 static const char *
@@ -381,7 +381,7 @@ FindDevice(InputInfoPtr pInfo, const cha
     }
     return *pdev;
 }
-#endif /* __OpenBSD__ && WSCONS_SUPPORT */
+#endif /* __OpenBSD__ || __NetBSD__ && WSCONS_SUPPORT */
 
 #ifdef WSCONS_SUPPORT
 #define NUMEVENTS 64
@@ -779,11 +779,11 @@ xf86OSMouseInit(int flags)
     p->SetBMRes = SetSysMouseRes;
     p->SetMiscRes = SetSysMouseRes;
 #endif
-#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
+#if (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(WSCONS_SUPPORT)
     p->SetupAuto = SetupAuto;
     p->SetMiscRes = SetMouseRes;
 #endif
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
     p->FindDevice = FindDevice;
 #endif
     p->PreInit = bsdMousePreInit;
diff-tree 3c448b0eb67337b56641e09a6d168aad6745e3ef (from 23fbd5292d356067e85e1eec4eb4f743532b0503)
Author: Fredrik Höglund <fredrik at kde.org>
Date:   Sat Aug 18 19:02:18 2007 +0200

    EXA: Fix a couple of logic errors in exaGetPixmapFirstPixel.
    
    The fb pointer would be left uninitialized when exaPixmapIsOffscreen
    returned false. When it returned true and the pixmap was damaged,
    fb would be initialized from the pixmap's devPrivate.ptr before the
    exaDoMigration and exaPrepareAccess calls, at which point
    devPrivate.ptr would still be pointing at offscreen memory.

diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
index b67ea63..a94648b 100644
--- a/exa/exa_unaccel.c
+++ b/exa/exa_unaccel.c
@@ -382,19 +382,19 @@ exaGetPixmapFirstPixel (PixmapPtr pPixma
     ExaMigrationRec pixmaps[1];
     ExaPixmapPriv (pPixmap);
 
+    fb = pExaPixmap->sys_ptr;
+
     /* Try to avoid framebuffer readbacks */
-    if (exaPixmapIsOffscreen(pPixmap)) {
-	if (!miPointInRegion(DamageRegion(pExaPixmap->pDamage), 0, 0,  &box)) {
-	    fb = pExaPixmap->sys_ptr;
-	} else {
-	    need_finish = TRUE;
-	    fb = pPixmap->devPrivate.ptr;
-	    pixmaps[0].as_dst = FALSE;
-	    pixmaps[0].as_src = TRUE;
-	    pixmaps[0].pPix = pPixmap;
-	    exaDoMigration (pixmaps, 1, FALSE);
-	    exaPrepareAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
-	}
+    if (exaPixmapIsOffscreen(pPixmap) &&
+        miPointInRegion(DamageRegion(pExaPixmap->pDamage), 0, 0,  &box))
+    {
+	need_finish = TRUE;
+	pixmaps[0].as_dst = FALSE;
+	pixmaps[0].as_src = TRUE;
+	pixmaps[0].pPix = pPixmap;
+	exaDoMigration (pixmaps, 1, FALSE);
+	exaPrepareAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
+	fb = pPixmap->devPrivate.ptr;
     }
 
     switch (pPixmap->drawable.bitsPerPixel) {
diff-tree 23fbd5292d356067e85e1eec4eb4f743532b0503 (from 6a32a96d8df184c3ace4847beb48fdcb846d2286)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Fri Aug 17 15:29:16 2007 -0700

    Actually build Secure RPC authentication support (missed in modularization)

diff --git a/configure.ac b/configure.ac
index 41cc103..f0ede75 100644
--- a/configure.ac
+++ b/configure.ac
@@ -597,6 +597,7 @@ XTRANS_CONNECTION_FLAGS
 
 # Secure RPC detection macro from xtrans.m4
 XTRANS_SECURE_RPC_FLAGS
+AM_CONDITIONAL(SECURE_RPC, [test "x$SECURE_RPC" = xyes])
 
 AM_CONDITIONAL(INT10_VM86, [test "x$INT10" = xvm86])
 AM_CONDITIONAL(INT10_X86EMU, [test "x$INT10" = xx86emu])
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index ad97605..69fab5e 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -282,6 +282,9 @@
 /* Support MIT-SCREEN-SAVER extension */
 #undef SCREENSAVER
 
+/* Support Secure RPC ("SUN-DES-1") authentication for X11 clients */
+#undef SECURE_RPC
+
 /* Use a lock to prevent multiple servers on a display */
 #undef SERVER_LOCK
 
diff --git a/os/Makefile.am b/os/Makefile.am
index 53b2d7f..d2a9897 100644
--- a/os/Makefile.am
+++ b/os/Makefile.am
@@ -3,9 +3,9 @@ noinst_LTLIBRARIES = libos.la libcwrappe
 AM_CFLAGS = $(DIX_CFLAGS)
 
 # FIXME: Add support for these in configure.ac
-SECURERPC_SRCS = rpcauth.c
 INTERNALMALLOC_SRCS = xalloc.c
 
+SECURERPC_SRCS = rpcauth.c
 XCSECURITY_SRCS = secauth.c
 XDMCP_SRCS = xdmcp.c
 STRLCAT_SRCS = strlcat.c strlcpy.c
@@ -28,6 +28,10 @@ libos_la_SOURCES = 	\
 	xprintf.c	\
 	$(XORG_SRCS)
 
+if SECURE_RPC
+libos_la_SOURCES += $(SECURERPC_SRCS)
+endif
+
 if XCSECURITY
 libos_la_SOURCES += $(XCSECURITY_SRCS)
 endif
diff --git a/os/rpcauth.c b/os/rpcauth.c
index 603844a..3451ac1 100644
--- a/os/rpcauth.c
+++ b/os/rpcauth.c
@@ -39,7 +39,7 @@ from The Open Group.
 #ifdef SECURE_RPC
 
 #include <X11/X.h>
-#include "Xauth.h"
+#include <X11/Xauth.h>
 #include "misc.h"
 #include "os.h"
 #include "dixstruct.h"
@@ -135,7 +135,7 @@ CheckNetName (
 
 static char rpc_error[MAXNETNAMELEN+50];
 
-XID
+_X_HIDDEN XID
 SecureRPCCheck (unsigned short data_length, char *data, 
     ClientPtr client, char **reason)
 {
@@ -159,14 +159,14 @@ SecureRPCCheck (unsigned short data_leng
     return (XID) ~0L;
 }
     
-void
+_X_HIDDEN void
 SecureRPCInit (void)
 {
     if (rpc_id == ~0L)
 	AddAuthorization (9, "SUN-DES-1", 0, (char *) 0);
 }
 
-int
+_X_HIDDEN int
 SecureRPCAdd (unsigned short data_length, char *data, XID id)
 {
     if (data_length)
@@ -175,26 +175,26 @@ SecureRPCAdd (unsigned short data_length
     return 1;
 }
 
-int
+_X_HIDDEN int
 SecureRPCReset (void)
 {
     rpc_id = (XID) ~0L;
     return 1;
 }
 
-XID
+_X_HIDDEN XID
 SecureRPCToID (unsigned short data_length, char *data)
 {
     return rpc_id;
 }
 
-int
+_X_HIDDEN int
 SecureRPCFromID (XID id, unsigned short *data_lenp, char **datap)
 {
     return 0;
 }
 
-int
+_X_HIDDEN int
 SecureRPCRemove (unsigned short data_length, char *data)
 {
     return 0;
diff-tree 6a32a96d8df184c3ace4847beb48fdcb846d2286 (from 32666d77227fcd2c066de16bf3c07366f92b0457)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Thu Aug 16 17:43:29 2007 -0700

    stride is in FbBits-sized chunks, but xoff is not.
    
    Fixes corruption problems with composite rendering to redirected windows in
    depth 16.

diff --git a/fb/fbpict.c b/fb/fbpict.c
index 4d1ad0b..8a146dd 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -291,9 +291,9 @@ create_bits_picture (PicturePtr pict,
     pixman_image_t *image;
     
     fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
-    
-    bits += yoff * stride + xoff;
-    
+
+    bits = (CARD8*)bits + yoff * stride * sizeof(FbBits) + xoff * (bpp / 8);
+
     image = pixman_image_create_bits (
 	pict->format,
 	pict->pDrawable->width, pict->pDrawable->height,
diff-tree 32666d77227fcd2c066de16bf3c07366f92b0457 (from daee59b1703ac07c2def9e9fecc479e59b93f761)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Thu Aug 16 14:57:18 2007 -0700

    Bug #12015: Use the right offsets in the dst arguments of pixman_blt.

diff --git a/fb/fbcopy.c b/fb/fbcopy.c
index 3ad01bf..68f403f 100644
--- a/fb/fbcopy.c
+++ b/fb/fbcopy.c
@@ -64,8 +64,8 @@ fbCopyNtoN (DrawablePtr	pSrcDrawable,
 	    if (!pixman_blt ((uint32_t *)src, (uint32_t *)dst, srcStride, dstStride, srcBpp, dstBpp,
 			     (pbox->x1 + dx + srcXoff),
 			     (pbox->y1 + dy + srcYoff),
-			     (pbox->x1 + srcXoff),
-			     (pbox->y1 + srcYoff),
+			     (pbox->x1 + dstXoff),
+			     (pbox->y1 + dstYoff),
 			     (pbox->x2 - pbox->x1),
 			     (pbox->y2 - pbox->y1)))
 		goto fallback;
diff-tree daee59b1703ac07c2def9e9fecc479e59b93f761 (from be536b79f2a364399937314cfa6c88bf8188da9c)
Author: Fredrik Höglund <fredrik at kde.org>
Date:   Wed Aug 15 19:19:11 2007 +0200

    EXA: Wrap Trapezoids to prevent excessive migration of the alpha pixmap.
    
    miTrapezoids creates an alpha pixmap and initializes the contents
    using PolyFillRect, which causes the pixmap to be moved in for
    acceleration. The subsequent call to RasterizeTrapezoid won't be
    accelerated by EXA, which causing the pixmap to be moved back out
    again.
    
    By wrapping Trapezoids and using ExaCheckPolyFillRect instead of
    PolyFillRect to initialize the pixmap, we avoid this roundtrip.

diff --git a/exa/exa.c b/exa/exa.c
index 8e22b89..aa42b92 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -526,6 +526,7 @@ exaCloseScreen(int i, ScreenPtr pScreen)
     if (ps) {
 	ps->Composite = pExaScr->SavedComposite;
 	ps->Glyphs = pExaScr->SavedGlyphs;
+	ps->Trapezoids = pExaScr->SavedTrapezoids;
     }
 #endif
 
@@ -684,6 +685,9 @@ exaDriverInit (ScreenPtr		pScreen,
 
 	pExaScr->SavedGlyphs = ps->Glyphs;
 	ps->Glyphs = exaGlyphs;
+
+	pExaScr->SavedTrapezoids = ps->Trapezoids;
+	ps->Trapezoids = exaTrapezoids;
     }
 #endif
 
diff --git a/exa/exa_priv.h b/exa/exa_priv.h
index a6d98cd..bab8aa2 100644
--- a/exa/exa_priv.h
+++ b/exa/exa_priv.h
@@ -108,6 +108,7 @@ typedef struct {
     RasterizeTrapezoidProcPtr	 SavedRasterizeTrapezoid;
     AddTrianglesProcPtr		 SavedAddTriangles;
     GlyphsProcPtr                SavedGlyphs;
+    TrapezoidsProcPtr            SavedTrapezoids;
 #endif
     Bool			 swappedOut;
     enum ExaMigrationHeuristic	 migration;
@@ -393,6 +394,11 @@ exaComposite(CARD8	op,
 	     CARD16	height);
 
 void
+exaTrapezoids (CARD8 op, PicturePtr pSrc, PicturePtr pDst,
+               PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc,
+               int ntrap, xTrapezoid *traps);
+
+void
 exaRasterizeTrapezoid (PicturePtr pPicture, xTrapezoid  *trap,
 		       int x_off, int y_off);
 
diff --git a/exa/exa_render.c b/exa/exa_render.c
index 5e7c67f..2dd3fc1 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -749,6 +749,132 @@ done:
 }
 #endif
 
+/**
+ * Same as miCreateAlphaPicture, except it uses ExaCheckPolyFillRect instead
+ * of PolyFillRect to initialize the pixmap after creating it, to prevent
+ * the pixmap from being migrated.
+ *
+ * See the comments about exaTrapezoids.
+ */
+static PicturePtr
+exaCreateAlphaPicture (ScreenPtr     pScreen,
+                       PicturePtr    pDst,
+                       PictFormatPtr pPictFormat,
+                       CARD16        width,
+                       CARD16        height)
+{
+    PixmapPtr	    pPixmap;
+    PicturePtr	    pPicture;
+    GCPtr	    pGC;
+    int		    error;
+    xRectangle	    rect;
+
+    if (width > 32767 || height > 32767)
+	return 0;
+
+    if (!pPictFormat)
+    {
+	if (pDst->polyEdge == PolyEdgeSharp)
+	    pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
+	else
+	    pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
+	if (!pPictFormat)
+	    return 0;
+    }
+
+    pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height,
+					pPictFormat->depth);
+    if (!pPixmap)
+	return 0;
+    pGC = GetScratchGC (pPixmap->drawable.depth, pScreen);
+    if (!pGC)
+    {
+	(*pScreen->DestroyPixmap) (pPixmap);
+	return 0;
+    }
+    ValidateGC (&pPixmap->drawable, pGC);
+    rect.x = 0;
+    rect.y = 0;
+    rect.width = width;
+    rect.height = height;
+    ExaCheckPolyFillRect (&pPixmap->drawable, pGC, 1, &rect);
+    exaPixmapDirty (pPixmap, 0, 0, width, height);
+    FreeScratchGC (pGC);
+    pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat,
+			      0, 0, serverClient, &error);
+    (*pScreen->DestroyPixmap) (pPixmap);
+    return pPicture;
+}
+
+/**
+ * exaTrapezoids is essentially a copy of miTrapezoids that uses
+ * exaCreateAlphaPicture instead of miCreateAlphaPicture.
+ *
+ * The problem with miCreateAlphaPicture is that it calls PolyFillRect
+ * to initialize the contents after creating the pixmap, which
+ * causes the pixmap to be moved in for acceleration. The subsequent
+ * call to RasterizeTrapezoid won't be accelerated however, which
+ * forces the pixmap to be moved out again.
+ *
+ * exaCreateAlphaPicture avoids this roundtrip by using ExaCheckPolyFillRect
+ * to initialize the contents.
+ */
+void
+exaTrapezoids (CARD8 op, PicturePtr pSrc, PicturePtr pDst,
+               PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc,
+               int ntrap, xTrapezoid *traps)
+{
+    ScreenPtr		pScreen = pDst->pDrawable->pScreen;
+    PictureScreenPtr    ps = GetPictureScreen(pScreen);
+
+    /*
+     * Check for solid alpha add
+     */
+    if (op == PictOpAdd && miIsSolidAlpha (pSrc))
+    {
+	for (; ntrap; ntrap--, traps++)
+	    (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0);
+    }
+    else if (maskFormat)
+    {
+	PicturePtr	pPicture;
+	BoxRec		bounds;
+	INT16		xDst, yDst;
+	INT16		xRel, yRel;
+
+	xDst = traps[0].left.p1.x >> 16;
+	yDst = traps[0].left.p1.y >> 16;
+
+	miTrapezoidBounds (ntrap, traps, &bounds);
+	if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2)
+	    return;
+	pPicture = exaCreateAlphaPicture (pScreen, pDst, maskFormat,
+	                                  bounds.x2 - bounds.x1,
+	                                  bounds.y2 - bounds.y1);
+	if (!pPicture)
+	    return;
+	for (; ntrap; ntrap--, traps++)
+	    (*ps->RasterizeTrapezoid) (pPicture, traps,
+				       -bounds.x1, -bounds.y1);
+	xRel = bounds.x1 + xSrc - xDst;
+	yRel = bounds.y1 + ySrc - yDst;
+	CompositePicture (op, pSrc, pPicture, pDst,
+			  xRel, yRel, 0, 0, bounds.x1, bounds.y1,
+			  bounds.x2 - bounds.x1,
+			  bounds.y2 - bounds.y1);
+	FreePicture (pPicture, 0);
+    }
+    else
+    {
+	if (pDst->polyEdge == PolyEdgeSharp)
+	    maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
+	else
+	    maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
+	for (; ntrap; ntrap--, traps++)
+	    exaTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps);
+    }
+}
+
 #define NeedsComponent(f) (PICT_FORMAT_A(f) != 0 && PICT_FORMAT_RGB(f) != 0)
 
 /**
diff-tree be536b79f2a364399937314cfa6c88bf8188da9c (from 1d4bea6106d7a1c83e1dfe37fad8268589feaa0b)
Author: Jeremy C. Reed <reed at glacier.reedmedia.net>
Date:   Thu Aug 16 11:23:28 2007 -0500

    Update for support on NetBSD and DragonFly. From
    Joerg Sonnenberger and pkgsrc.

diff --git a/hw/xfree86/os-support/bsd/bsd_init.c b/hw/xfree86/os-support/bsd/bsd_init.c
index 07f031f..2c6a025 100644
--- a/hw/xfree86/os-support/bsd/bsd_init.c
+++ b/hw/xfree86/os-support/bsd/bsd_init.c
@@ -159,7 +159,9 @@ xf86OpenConsole()
     xf86ConsOpen_t *driver;
 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
     int result;
+#ifdef __FreeBSD__
     struct utsname uts;
+#endif
     vtmode_t vtmode;
 #endif
     
@@ -250,6 +252,7 @@ xf86OpenConsole()
 #endif
 	    /* otherwise fall through */
 	case PCVT:
+#if !(defined(__NetBSD__) && (__NetBSD_Version__ >= 200000000))
 	    /*
 	     * First activate the #1 VT.  This is a hack to allow a server
 	     * to be started while another one is active.  There should be
@@ -264,7 +267,7 @@ xf86OpenConsole()
 		}
 		sleep(1);
 	    }
-
+#endif
 acquire_vt:
 	    /*
 	     * now get the VT
diff-tree 1d4bea6106d7a1c83e1dfe37fad8268589feaa0b (from 14c13b8d62eb37cba8a044daffcddec578ba1644)
Author: Jeremy C. Reed <reed at glacier.reedmedia.net>
Date:   Thu Aug 16 11:20:12 2007 -0500

    Add some more support for DragonFly. From Joerg Sonnenberger
    and pkgsrc.

diff --git a/Xext/shm.c b/Xext/shm.c
index ac587be..9d82a21 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -154,7 +154,7 @@ static ShmFuncs fbFuncs = {fbShmCreatePi
 }
 
 
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__) || defined(__DragonFly__)
 #include <sys/signal.h>
 
 static Bool badSysCall = FALSE;
diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c
index f50481f..c2f891a 100644
--- a/Xext/xf86bigfont.c
+++ b/Xext/xf86bigfont.c
@@ -104,7 +104,7 @@ static unsigned int pagesize;
 
 static Bool badSysCall = FALSE;
 
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__) || defined(__DragonFly__)
 
 #include <sys/signal.h>
 
diff --git a/hw/xfree86/loader/os.c b/hw/xfree86/loader/os.c
index fdddce8..12cf3d8 100644
--- a/hw/xfree86/loader/os.c
+++ b/hw/xfree86/loader/os.c
@@ -42,6 +42,8 @@
 #define OSNAME "linux"
 #elif defined(__FreeBSD__)
 #define OSNAME "freebsd"
+#elif defined(__DragonFly__)
+#define OSNAME "dragonfly"
 #elif defined(__NetBSD__)
 #define OSNAME "netbsd"
 #elif defined(__OpenBSD__)
diff --git a/hw/xfree86/os-support/bus/Pci.h b/hw/xfree86/os-support/bus/Pci.h
index f0cb916..5ebbdd5 100644
--- a/hw/xfree86/os-support/bus/Pci.h
+++ b/hw/xfree86/os-support/bus/Pci.h
@@ -235,7 +235,7 @@
 # if defined(linux)
 #  define ARCH_PCI_INIT axpPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
-# elif defined(__FreeBSD__) || defined(__OpenBSD__)
+# elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
 #  define ARCH_PCI_INIT freebsdPciInit
 #  define INCLUDE_XF86_MAP_PCI_MEM
 #  define INCLUDE_XF86_NO_DOMAIN
diff --git a/hw/xfree86/os-support/bus/freebsdPci.c b/hw/xfree86/os-support/bus/freebsdPci.c
index 61cb405..63c00b2 100644
--- a/hw/xfree86/os-support/bus/freebsdPci.c
+++ b/hw/xfree86/os-support/bus/freebsdPci.c
@@ -83,7 +83,7 @@ static pciBusInfo_t freebsdPci0 = {
 /* bridge      */	NULL
 };
 
-#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
+#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__DragonFly__)
 #if X_BYTE_ORDER == X_BIG_ENDIAN
 #ifdef __sparc__
 #ifndef ASI_PL
diff-tree 14c13b8d62eb37cba8a044daffcddec578ba1644 (from 026534f945ae5652592a090a9d41375ca37ab618)
Author: Dave Jones <davej at redhat.com>
Date:   Thu Aug 16 09:46:27 2007 +0200

    Kdrive: fix nasty thinko in TslibEnable()

diff --git a/hw/kdrive/linux/tslib.c b/hw/kdrive/linux/tslib.c
index 41b74fa..371aece 100644
--- a/hw/kdrive/linux/tslib.c
+++ b/hw/kdrive/linux/tslib.c
@@ -118,7 +118,7 @@ TslibEnable (KdPointerInfo *pi)
     private->fd = ts_fd(private->tsDev);
     if (!private->tsDev || ts_config(private->tsDev) || private->fd < 0) {
         ErrorF("[tslib/TslibEnable] failed to open %s\n", pi->path);
-        if (private->fd > 0);
+        if (private->fd >= 0)
             close(private->fd);
         return BadAlloc;
     }
diff-tree 026534f945ae5652592a090a9d41375ca37ab618 (from 6cef7b9611297cb1d93cefe3890b26b69c87bce2)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Aug 15 16:47:53 2007 -0700

    Update pci.ids to 2007-08-15 snapshot
    
    Remove nvidia ids in extrapci.ids that are now in pci.ids

diff --git a/hw/xfree86/scanpci/extrapci.ids b/hw/xfree86/scanpci/extrapci.ids
index e39843b..3339f6c 100644
--- a/hw/xfree86/scanpci/extrapci.ids
+++ b/hw/xfree86/scanpci/extrapci.ids
@@ -37,23 +37,8 @@
 
 # Some NVIDIA cards that are not in the master pci.ids file yet.
 10de	"
-	0095	GeForce 7800 SLI
-	0194	GeForce 8800 Ultra
 	0399	GeForce Go 7600 GT
 	039a	Quadro NVS 300M
-	0400	GeForce 8600 GTS
-	0402	GeForce 8600 GT
-	0407	GeForce 8600M GT
-	040b	Quadro NVS 320M
-	0421	GeForce 8500 GT
-	0422	GeForce 8400 GS
-	0423	GeForce 8300 GS
-	0425	GeForce 8600M GS
-	0426	GeForce 8400M GT
-	0427	GeForce 8400M GS
-	0428	GeForce 8400M G
-	0429	Quadro NVS 140M
-	042a	Quadro NVS 130M
-	042b	Quadro NVS 135M
+
 
 
diff --git a/hw/xfree86/scanpci/pci.ids b/hw/xfree86/scanpci/pci.ids
index 2b91673..a6927a5 100644
--- a/hw/xfree86/scanpci/pci.ids
+++ b/hw/xfree86/scanpci/pci.ids
@@ -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-07-16 01:05:02
+#	Daily snapshot on Wed 2007-08-15 01:05:02
 #
 
 # Vendors, devices and subsystems. Please keep sorted.
@@ -317,6 +317,7 @@
 		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
@@ -330,13 +331,24 @@
 		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 1f09  PowerEdge 860 SAS 5i/R
+		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  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
 	005a  SAS1066E PCI-Express Fusion-MPT SAS
 	005c  SAS1064A PCI-X Fusion-MPT SAS
 	005e  SAS1066 PCI-X Fusion-MPT SAS
@@ -358,8 +370,12 @@
 		1028 1f0c  PERC 6/i Integrated RAID Controller
 		1028 1f0d  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
@@ -464,8 +480,10 @@
 	9100  INI-9100/9100W SCSI Host
 1002  ATI Technologies Inc
 	3150  M24 1P [Radeon Mobility X600]
+	3151  M24 [FireMV 2400]
 	3152  M22 [Radeon Mobility X300]
 	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)
@@ -586,6 +604,7 @@
 		1002 437a  437A Serial ATA Controller
 		14f1 8800  Leadtek WinFast TV2000XP Expert
 	437b  SB450 HDA Audio
+		10cf 1326  Fujitsu Lifebook A3040
 		1734 10b8  Realtek High Definition Audio
 	4380  SB600 Non-Raid-5 SATA
 	4381  SB600 Raid-5 SATA
@@ -602,6 +621,18 @@
 	438c  SB600 IDE
 	438d  SB600 PCI to LPC Bridge
 	438e  SB600 AC97 Modem
+	4390  SB700 SATA Controller [IDE mode]
+	4391  SB700 SATA Controller [AHCI mode]
+	4392  SB700 SATA Controller [Non-RAID5 mode]
+	4393  SB700 SATA Controller [RAID5 mode]
+	4394  SB700 SATA Controller [SATA and FC Enabled]
+	4395  SB700 SMBus
+	4396  SB700 USB EHCI Controller
+	4397  SB700 USB OHCI0 Controller
+	4398  SB700 USB OHCI1 Controller
+	4399  SB700 USB OHCI2 Controller
+	439c  SB700 IDE
+	439d  SB700 LPC host controller
 	4437  Radeon Mobility 7000 IGP
 	4554  210888ET [Mach64 ET]
 	4654  Mach64 VT
@@ -656,6 +687,7 @@
 		1028 00d1  PowerEdge 2550
 		1028 00d9  PowerEdge 2500
 		1028 0134  PowerEdge 600SC
+		1028 0165  PowerEdge 750
 		103c 10e1  NetServer Rage XL
 		107b 6400  6400 Server
 		1734 007a  Primergy RX300
@@ -726,6 +758,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
@@ -766,15 +800,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]
+	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 R250 Lg [Radeon Mobility 9000 M9]
+	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
@@ -997,6 +1032,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]
@@ -1026,6 +1062,9 @@
 	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  RX790 Northbridge only single slot PCI-e_GFX and HT3 K8 part
+	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]
@@ -1054,6 +1093,33 @@
 	5969  ES1000
 	5974  RS482 [Radeon Xpress 200]
 	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
@@ -1070,6 +1136,7 @@
 	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)
 		196d 1086  X300SE HM
@@ -1148,6 +1215,7 @@
 	7145  Radeon Mobility X1400
 	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]
@@ -1163,12 +1231,14 @@
 		1002 0323  All-in-Wonder 2006 PCI-E Edition (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
@@ -1220,11 +1290,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)
@@ -1232,6 +1302,10 @@
 	7834  Radeon 9100 PRO IGP
 	7835  Radeon Mobility 9200 IGP
 	7838  Radeon 9100 IGP PCI/AGP Bridge
+	7910  RS690 Host Bridge
+	7912  RS690 PCI to PCI Bridge (Internal gfx)
+	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
@@ -1489,25 +1563,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
@@ -1604,11 +1678,13 @@
 	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-X266 Auxiliary Cache Adapter (575C)
+		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
 	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
@@ -2262,6 +2338,7 @@
 	0660  660 Host
 	0661  661FX/M661FX/M661MX Host
 	0662  662 Host
+	0671  671MX
 	0730  730 Host
 	0733  733 Host
 	0735  735 Host
@@ -2444,6 +2521,7 @@
 	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
@@ -2451,7 +2529,13 @@
 		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
@@ -2488,6 +2572,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
@@ -2605,6 +2691,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
@@ -2659,21 +2746,26 @@
 	802e  PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller
 	8031  PCIxx21/x515 Cardbus Controller
 		1025 0080  Aspire 5024WLMi
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
 		103c 308b  MX6125
 	8032  OHCI Compliant IEEE 1394 Host Controller
 		1025 0080  Aspire 5024WLMi
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
 		103c 308b  MX6125
 	8033  PCIxx21 Integrated FlashMedia Controller
 		1025 0080  Aspire 5024WLMi
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		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  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
 		103c 308b  MX6125
 	8035  PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
 	8036  PCI6515 Cardbus Controller
 	8038  PCI6515 SmartCard Controller
@@ -2708,6 +2800,7 @@
 		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
 	a001  TDC1570
 	a100  TDC1561
@@ -2752,6 +2845,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
@@ -2829,8 +2923,14 @@
 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
 1055  Efar Microsystems
 	9130  SLC90E66 [Victory66] IDE
 	9460  SLC90E66 [Victory66] ISA
@@ -2977,6 +3077,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]
@@ -3236,6 +3337,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
@@ -3330,26 +3432,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
+	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  Tomatillo PCI Bus Module
+	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
@@ -3363,6 +3494,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
@@ -3664,6 +3797,7 @@
 		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
 	1076  VScom 800 8 port serial adaptor
 	1077  VScom 400 4 port serial adaptor
@@ -3673,8 +3807,14 @@
 	1147  VScom 020 2 port parallel adaptor
 	2540  IXXAT CAN-Interface PC-I 04/PCI
 	2724  Thales PCSM Security Card
-	6520  PCI6520 PCI-X to PCI-X bridge
-	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)
@@ -3684,10 +3824,23 @@
 		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
@@ -3743,7 +3896,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
@@ -3758,14 +3912,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
@@ -3774,7 +3928,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
@@ -3907,6 +4061,7 @@
 		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
@@ -3983,6 +4138,7 @@
 		10b9 1541  ALI M1541 Aladdin V/V+ AGP System Controller
 	1543  M1543
 	1563  M1563 HyperTransport South Bridge
+		10b9 1563  ASRock 939Dual-SATA2 Motherboard
 	1573  PCI to LPC Controller
 	1621  M1621
 	1631  ALI M1631 PCI North Bridge Aladdin Pro III
@@ -4025,7 +4181,9 @@
 		1014 0540  ThinkPad R40e (2684-HVG) builtin USB
 		103c 0024  Pavilion ze4400 builtin USB
 		104d 810f  VAIO PCG-U1 USB/OHCI Revision 1.0
+		10b9 5237  ASRock 939Dual-SATA2 Motherboard
 	5239  USB 2.0 Controller
+		10b9 5239  ASRock 939Dual-SATA2 Motherboard
 	5243  M1541 PCI to AGP Controller
 	5246  AGP8X Controller
 	5247  PCI to AGP Controller
@@ -4050,6 +4208,7 @@
 		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
 	5457  M5457 AC'97 Modem Controller
 		1014 0535  ThinkPad R40e (2684-HVG) builtin modem
 		103c 0024  Pavilion ze4400 builtin Modem Device
@@ -4062,10 +4221,12 @@
 		1014 0510  ThinkPad R30
 		1014 053c  ThinkPad R40e (2684-HVG) Power Management Controller
 		103c 0024  Pavilion ze4400
+		10b9 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
@@ -4143,6 +4304,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.
@@ -4175,6 +4337,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]
@@ -4349,9 +4512,11 @@
 	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
 	0067  nForce2 USB Controller
 		1043 0c11  A7N8X Mainboard
 	0068  nForce2 USB Controller
@@ -4386,6 +4551,7 @@
 	0091  G70 [GeForce 7800 GTX]
 	0092  G70 [GeForce 7800 GT]
 	0093  G70 [GeForce 7800 GS]
+	0095  GeForce 7800 SLI
 	0098  G70 [GeForce Go 7800]
 	0099  G70 [GeForce Go 7800 GTX]
 	009d  G70GL [Quadro FX 4500]
@@ -4519,6 +4685,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]
@@ -4578,6 +4745,7 @@
 	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]
@@ -4601,12 +4769,13 @@
 	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  NV18GL [Quadro NVS 50 PCI]
 	018d  NV18M [GeForce4 448 Go]
 	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]
@@ -4624,6 +4793,7 @@
 	01c1  nForce AC'97 Modem Controller
 	01c2  nForce USB Controller
 	01c3  nForce Ethernet Controller
+	01d0  GeForce 7350 LE
 	01d1  G72 [GeForce 7300 LE]
 		1462 0345  7300LE PCI Express Graphics Adapter
 	01d3  G72 [GeForce 7300 SE]
@@ -4631,6 +4801,7 @@
 	01d7  G72M [Quadro NVS 110M/GeForce Go 7300]
 	01d8  G72M [GeForce Go 7400]
 	01da  G72M [Quadro NVS 110M]
+	01db  Quadro NVS 120M
 	01dc  G72GL [Quadro FX 350M]
 	01dd  G72 [GeForce 7500 LE]
 	01de  G72GL [Quadro FX 350]
@@ -4648,6 +4819,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
@@ -4675,7 +4847,8 @@
 	0242  C51G [GeForce 6100]
 	0243  C51 PCI Express Bridge
 	0244  C51 [Geforce 6150 Go]
-		10de 0244  C51 [Geforce 6150 Go]
+		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
@@ -4691,6 +4864,7 @@
 	0250  NV25 [GeForce4 Ti 4600]
 	0251  NV25 [GeForce4 Ti 4400]
 		1043 8023  v8440 GeForce 4 Ti4400
+		10de 0251  PNY GeForce4 Ti 4400
 	0252  NV25 [GeForce4 Ti]
 	0253  NV25 [GeForce4 Ti 4200]
 		107d 2896  WinFast A250 LE TD (Dual VGA/TV-out/DVI)
@@ -4699,6 +4873,7 @@
 	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
@@ -4706,12 +4881,15 @@
 	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
@@ -4719,31 +4897,40 @@
 		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 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 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
@@ -4761,7 +4948,9 @@
 	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
@@ -4774,9 +4963,12 @@
 # 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]
 	02e2  GeForce 7300 GT
+	02e3  GeForce 7900 GS
 	02f0  C51 Host Bridge
+		103c 30b7  Presario V6133CL
 		1043 81cd  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	02f1  C51 Host Bridge
@@ -4788,25 +4980,32 @@
 	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
@@ -4832,11 +5031,13 @@
 	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]
@@ -4849,6 +5050,7 @@
 	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]
@@ -4873,22 +5075,29 @@
 	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
@@ -4898,12 +5107,14 @@
 	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
 	0394  G70 [GeForce 7600 LE]
 	0395  G70 [GeForce 7300 GT]
 	0397  GeForce Go 7700
@@ -4967,6 +5178,23 @@
 	03f5  MCP61 Memory Controller
 	03f6  MCP61 SATA Controller
 	03f7  MCP61 SATA Controller
+	0400  GeForce 8600 GTS
+	0402  GeForce 8600 GT
+	0407  GeForce 8600M GT
+	040b  Quadro NVS 320M
+	040c  Quadro FX 570M
+	040d  Quadro FX 1600M
+	0421  GeForce 8500 GT
+	0422  GeForce 8400 GS
+	0423  GeForce 8300 GS
+	0425  GeForce 8600M GS
+	0426  GeForce 8400M GT
+	0427  GeForce 8400M GS
+	0428  GeForce 8400M G
+	0429  Quadro NVS 140M
+	042a  Quadro NVS 130M
+	042b  Quadro NVS 135M
+	042d  Quadro FX 360M
 	0440  MCP65 LPC Bridge
 	0441  MCP65 LPC Bridge
 	0442  MCP65 LPC Bridge
@@ -5113,6 +5341,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
@@ -5172,6 +5401,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
@@ -5204,6 +5434,10 @@
 	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
@@ -5231,13 +5465,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
@@ -5276,9 +5511,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
@@ -5306,7 +5544,8 @@
 		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
@@ -5319,7 +5558,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
@@ -5334,6 +5581,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
@@ -5539,12 +5787,14 @@
 		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
@@ -5701,6 +5951,7 @@
 	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
@@ -6057,6 +6308,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
@@ -6094,7 +6346,7 @@
 	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
@@ -6116,56 +6368,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
-	e032  Diva BRI-2 PCIe r1
+	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
@@ -6346,6 +6609,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
@@ -6546,6 +6812,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
@@ -6562,12 +6829,14 @@
 		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
@@ -6576,13 +6845,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
@@ -6618,11 +6892,15 @@
 	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
 	4c00  Gigabit Ethernet Adapter
 		1186 4c00  DGE-530T Gigabit Ethernet Adapter
 	8400  D-Link DWL-650+ CardBus PC Card
@@ -6715,7 +6993,8 @@
 	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)
@@ -6782,6 +7061,8 @@
 		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
+	4356  88EC033 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)
@@ -6838,6 +7119,12 @@
 		a0a0 0506  Marvell 88E8053 Gigabit Ethernet Controller (Aopen)
 	4363  88E8055 PCI-E Gigabit Ethernet Controller
 	4364  88E8056 PCI-E Gigabit 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
@@ -6847,8 +7134,10 @@
 	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
@@ -6856,6 +7145,7 @@
 	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
@@ -7138,7 +7428,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
@@ -7160,6 +7453,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
@@ -7239,6 +7541,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
@@ -7302,6 +7605,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
@@ -7434,7 +7742,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
@@ -7495,6 +7803,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
@@ -7621,6 +7930,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
@@ -7868,6 +8178,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
@@ -7920,6 +8231,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
@@ -7975,6 +8294,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.
@@ -8110,7 +8430,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
@@ -8298,13 +8632,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
@@ -8396,7 +8733,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
@@ -8426,10 +8763,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
@@ -8524,6 +8880,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
@@ -8585,6 +8942,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
@@ -8605,6 +8963,7 @@
 		1043 80e2  CMI8738 6ch-MX
 		13f6 0111  CMI8738/C3DX PCI Audio Device
 		1681 a000  Gamesurround MUSE XL
+		270f 1103  CT-7NJS Ultra motherboard
 	0211  CM8738
 	9880  CM9880
 13f7  Wildfire Communications
@@ -8706,6 +9065,17 @@
 		270f f645  ZNF3-250
 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)
@@ -8844,9 +9214,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
@@ -9021,6 +9393,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.
@@ -9091,7 +9465,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]
@@ -9134,6 +9508,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
@@ -9147,6 +9522,7 @@
 		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
@@ -9171,13 +9547,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
@@ -9185,7 +9564,9 @@
 		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
@@ -9516,8 +9897,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
@@ -9560,8 +9942,10 @@
 		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
@@ -9577,8 +9961,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- at nywhere Master
@@ -9704,6 +10090,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
@@ -9980,6 +10369,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.
@@ -10042,6 +10432,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]
@@ -10154,6 +10546,7 @@
 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
@@ -10218,6 +10611,7 @@
 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
@@ -10226,6 +10620,7 @@
 1734  Fujitsu Siemens Computer GmbH
 	1078  Amilo Pro v2010
 	1085  Celsius M450
+	1098  Amilo L 1310G
 1737  Linksys
 	0013  WMP54G Wireless Pci Card
 	0015  WMP54GS Wireless Pci Card
@@ -10250,8 +10645,10 @@
 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
@@ -10261,6 +10658,7 @@
 	0004  CAMAC Controller
 	0005  PROFIBUS
 	0006  AMCC HOTlink
+	000d  Synchronisation Slave
 1797  JumpTec h, GMBH
 1799  Belkin
 	6001  Wireless PCI Card - F5D6001
@@ -10302,12 +10700,14 @@
 	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
@@ -10356,17 +10756,19 @@
 		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
@@ -10400,8 +10802,12 @@
 	5a46  MT23108 InfiniHost HCA bridge
 	6278  MT25208 InfiniHost III Ex (Tavor compatibility mode)
 	6282  MT25208 InfiniHost III Ex
-186c  Humusoft
-	0614  MF614 multifunction I/O card
+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
@@ -10425,6 +10831,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.
@@ -10466,6 +10873,11 @@
 	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
@@ -10487,8 +10899,21 @@
 	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  MPC8544
+	0031  MPC8544E
 	0080  MPC8349E
 	0081  MPC8349
 	0082  MPC8347E TBGA
@@ -10497,6 +10922,8 @@
 	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
@@ -10581,6 +11008,10 @@
 1fc1  PathScale, Inc
 	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.
@@ -10720,6 +11151,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
@@ -10743,6 +11175,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
@@ -11220,6 +11654,7 @@
 	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
@@ -11229,6 +11664,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
@@ -11343,11 +11779,13 @@
 		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
@@ -11358,8 +11796,11 @@
 	10c5  82562G 10/100 Network Connection
 	10c6  82598AF DUAL PORT 10GbE PCI-Express Ethernet Controller
 	10c7  82598AF SINGLE PORT 10GbE PCI-Express Ethernet Controller
+	10d6  82575 Gigabit VT Quad Port Server Adapter
 	10d9  82571EB Dual Port Gigabit Mezzanine Adapter
+		103c 1716  HP 360m Dual Port 1GbE BL-c Adapter
 	10da  82571EB Quad Port Gigabit Mezzanine Adapter
+		103c 1717  HP 364m Quad Port 1GbE BL-c Adapter
 	1107  PRO/1000 MF Server Adapter (LX)
 	1130  82815 815 Chipset Host Bridge and Memory Controller Hub
 		1025 1016  Travelmate 612 TX
@@ -12189,6 +12630,7 @@
 		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
@@ -12249,6 +12691,7 @@
 		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
@@ -12349,9 +12792,11 @@
 		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
 # (rev 03) (prog-if 00 [UHCI])
 		103c 0934  HP Compaq nw8240 Mobile Workstation
@@ -12364,6 +12809,7 @@
 		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
 # (prog-if 00 [UHCI])
 		103c 0934  HP Compaq nw8240 Mobile Workstation
@@ -12376,6 +12822,7 @@
 		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
 # (prog-if 00 [UHCI])
 		103c 0934  HP Compaq nw8240 Mobile Workstation
@@ -12388,6 +12835,7 @@
 		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
@@ -12398,6 +12846,7 @@
 		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
 # (rev 03) (prog-if 20 [EHCI])
 		103c 0934  HP Compaq nw8240 Mobile Workstation
@@ -12436,6 +12885,7 @@
 		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
@@ -12452,6 +12902,7 @@
 		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
@@ -12464,6 +12915,7 @@
 		152d 0745  Packard Bell A8550 Laptop
 		1734 105a  Scenic W620
 	266f  82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller
+		1028 0177  Dimension 8400
 # (rev 03) (prog-if 8a [Master SecP PriP])
 		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
@@ -12525,9 +12977,12 @@
 	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
+	27a6  Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller
 		103c 30a1  NC2400
 		17aa 201a  Thinkpad R60e model 0657
+	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
@@ -12663,9 +13118,9 @@
 	2918  82801IB (ICH9) LPC Interface Controller
 	2919  Mobile LPC Controller
 	2920  82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller
-	2921  82801I (ICH9 Family) 2 port SATA IDE Controller
+	2921  82801IB (ICH9) 2 port SATA IDE Controller
 	2922  82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller
-	2923  82801I (ICH9 Family) 4 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
 	2928  Mobile 2 port SATA IDE Controller
@@ -12728,14 +13183,14 @@
 	29b5  MEI Controller
 	29b6  PT IDER Controller
 	29b7  Serial KT Controller
-	29c0  82G33/G31/P35 Express DRAM Controller
-	29c1  82G33/G31/P35 Express PCI Express Root Port
+	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 Express MEI Controller
-	29c5  82G33/G31/P35 Express MEI Controller
-	29c6  82G33/G31/P35 Express PT IDER Controller
-	29c7  82G33/G31/P35 Express Serial KT 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
@@ -12768,6 +13223,14 @@
 	2a05  Mobile PM965/GM965 MEI Controller
 	2a06  Mobile PM965/GM965 PT IDER Controller
 	2a07  Mobile PM965/GM965 KT Controller
+	2a40  Mobile Memory Controller Hub
+	2a41  Mobile PCI Express Graphics Port
+	2a42  Mobile Integrated Graphics Controller
+	2a43  Mobile Integrated Graphics Controller
+	2a50  Mobile MEI Controller
+	2a51  Mobile MEI Controller
+	2a52  Mobile PT IDER Controller
+	2a53  Mobile AMT SOL Redirection
 	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
@@ -13294,6 +13757,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
@@ -13311,6 +13776,7 @@
 		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
@@ -13359,6 +13825,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
@@ -13391,6 +13861,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)
diff --git a/hw/xfree86/scanpci/xf86PciStdIds.h b/hw/xfree86/scanpci/xf86PciStdIds.h
index f73aa85..87d23f4 100644
--- a/hw/xfree86/scanpci/xf86PciStdIds.h
+++ b/hw/xfree86/scanpci/xf86PciStdIds.h
@@ -557,6 +557,11 @@ static const char pci_subsys_1000_0030_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0030_1028_018a[] = "PERC 4/IM";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0030_1028_1010[] = "LSI U320 SCSI Controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -586,10 +591,45 @@ static const char pci_subsys_1000_0040_1
 #endif
 static const char pci_device_1000_0041[] = "53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI";
 static const char pci_device_1000_0050[] = "SAS1064 PCI-X Fusion-MPT SAS";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0050_1028_1f04[] = "SAS 5/E";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0050_1028_1f09[] = "SAS 5i/R";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_1000_0054[] = "SAS1068 PCI-X Fusion-MPT SAS";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1000_0054_1028_1f09[] = "PowerEdge 860 SAS 5i/R";
+static const char pci_subsys_1000_0054_1028_1f04[] = "SAS 5/E Adapter Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0054_1028_1f05[] = "SAS 5/i Adapter Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0054_1028_1f06[] = "SAS 5/i Integrated Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0054_1028_1f07[] = "SAS 5/iR Integrated RAID Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0054_1028_1f08[] = "SAS 5/iR Integrated RAID Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0054_1028_1f09[] = "SAS 5/iR Adapter RAID Controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_1000_0055[] = "SAS1068 PCI-X Fusion-MPT SAS";
@@ -601,6 +641,26 @@ static const char pci_subsys_1000_0055_1
 static const char pci_device_1000_0056[] = "SAS1064ET PCI-Express Fusion-MPT SAS";
 static const char pci_device_1000_0057[] = "M1064E MegaRAID SAS";
 static const char pci_device_1000_0058[] = "SAS1068E PCI-Express Fusion-MPT SAS";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0058_1028_021d[] = "SAS 6/iR Integrated Workstations RAID Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0058_1028_1f0e[] = "SAS 6/iR Adapter RAID Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0058_1028_1f0f[] = "SAS 6/iR Integrated Blades RAID Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0058_1028_1f10[] = "SAS 6/iR Integrated RAID Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_1000_005a[] = "SAS1066E PCI-Express Fusion-MPT SAS";
 static const char pci_device_1000_005c[] = "SAS1064A PCI-X Fusion-MPT SAS";
 static const char pci_device_1000_005e[] = "SAS1066 PCI-X Fusion-MPT SAS";
@@ -666,12 +726,26 @@ static const char pci_subsys_1000_0060_1
 static const char pci_subsys_1000_0060_1028_1f11[] = "CERC 6/i Integrated RAID Controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_1033_835a[] = "MegaRAID SAS PCI Express ROMB";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0060_1043_824d[] = "MegaRAID SAS PCI Express ROMB";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0060_1170_002f[] = "MegaRAID SAS PCI Express ROMB";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_1170_0036[] = "MegaRAID SAS PCI Express ROMB";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_15d9_c080[] = "MegaRAID SAS PCI Express ROMB";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_17aa_6b7c[] = "MegaRAID SAS PCI Express ROMB";
+#endif
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0060_8086_1006[] = "RAID Controller SRCSAS28EP";
@@ -973,8 +1047,10 @@ static const char pci_device_1001_9100[]
 #endif
 static const char pci_vendor_1002[] = "ATI Technologies Inc";
 static const char pci_device_1002_3150[] = "M24 1P [Radeon Mobility X600]";
+static const char pci_device_1002_3151[] = "M24 [FireMV 2400]";
 static const char pci_device_1002_3152[] = "M22 [Radeon Mobility X300]";
 static const char pci_device_1002_3154[] = "M24GL [Mobility FireGL V3200]";
+static const char pci_device_1002_3171[] = "M24 [FireMV 2400] (Secondary)";
 static const char pci_device_1002_3e50[] = "RV380 0x3e50 [Radeon X600]";
 static const char pci_device_1002_3e54[] = "RV380 0x3e54 [FireGL V3200]";
 static const char pci_device_1002_3e70[] = "RV380 [Radeon X600] (Secondary)";
@@ -1220,6 +1296,9 @@ static const char pci_subsys_1002_437a_1
 #endif
 static const char pci_device_1002_437b[] = "SB450 HDA Audio";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_437b_10cf_1326[] = "Fujitsu Lifebook A3040";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_437b_1734_10b8[] = "Realtek High Definition Audio";
 #endif
 static const char pci_device_1002_4380[] = "SB600 Non-Raid-5 SATA";
@@ -1237,6 +1316,18 @@ static const char pci_device_1002_438b[]
 static const char pci_device_1002_438c[] = "SB600 IDE";
 static const char pci_device_1002_438d[] = "SB600 PCI to LPC Bridge";
 static const char pci_device_1002_438e[] = "SB600 AC97 Modem";
+static const char pci_device_1002_4390[] = "SB700 SATA Controller [IDE mode]";
+static const char pci_device_1002_4391[] = "SB700 SATA Controller [AHCI mode]";
+static const char pci_device_1002_4392[] = "SB700 SATA Controller [Non-RAID5 mode]";
+static const char pci_device_1002_4393[] = "SB700 SATA Controller [RAID5 mode]";
+static const char pci_device_1002_4394[] = "SB700 SATA Controller [SATA and FC Enabled]";
+static const char pci_device_1002_4395[] = "SB700 SMBus";
+static const char pci_device_1002_4396[] = "SB700 USB EHCI Controller";
+static const char pci_device_1002_4397[] = "SB700 USB OHCI0 Controller";
+static const char pci_device_1002_4398[] = "SB700 USB OHCI1 Controller";
+static const char pci_device_1002_4399[] = "SB700 USB OHCI2 Controller";
+static const char pci_device_1002_439c[] = "SB700 IDE";
+static const char pci_device_1002_439d[] = "SB700 LPC host controller";
 static const char pci_device_1002_4437[] = "Radeon Mobility 7000 IGP";
 static const char pci_device_1002_4554[] = "210888ET [Mach64 ET]";
 static const char pci_device_1002_4654[] = "Mach64 VT";
@@ -1372,6 +1463,9 @@ static const char pci_subsys_1002_4752_1
 static const char pci_subsys_1002_4752_1028_0134[] = "PowerEdge 600SC";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_4752_1028_0165[] = "PowerEdge 750";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4752_103c_10e1[] = "NetServer Rage XL";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -1508,6 +1602,12 @@ static const char pci_device_1002_4c44[]
 static const char pci_device_1002_4c45[] = "Rage Mobility M3 AGP";
 static const char pci_device_1002_4c46[] = "Rage Mobility M3 AGP 2x";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_4c46_1002_0155[] = "IBM Thinkpad A22p";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_4c46_1014_0155[] = "IBM Thinkpad A22p";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4c46_1028_00b1[] = "Latitude C600";
 #endif
 static const char pci_device_1002_4c47[] = "3D Rage LT-G 215LG";
@@ -1601,16 +1701,17 @@ static const char pci_subsys_1002_4c59_1
 static const char pci_subsys_1002_4c59_1509_1930[] = "Medion MD9703";
 #endif
 static const char pci_device_1002_4c5a[] = "Radeon Mobility M6 LZ";
-static const char pci_device_1002_4c64[] = "Radeon R250 Ld [Radeon Mobility 9000 M9]";
-static const char pci_device_1002_4c65[] = "Radeon R250 Le [Radeon Mobility 9000 M9]";
-static const char pci_device_1002_4c66[] = "Radeon R250 [Mobility FireGL 9000]";
+static const char pci_device_1002_4c64[] = "Radeon RV250 Ld [Radeon Mobility 9000 M9]";
+static const char pci_device_1002_4c65[] = "Radeon RV250 Le [Radeon Mobility 9000 M9]";
+static const char pci_device_1002_4c66[] = "Radeon RV250 [Mobility FireGL 9000]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4c66_1014_054d[] = "Thinkpad T41";
 #endif
-static const char pci_device_1002_4c67[] = "Radeon R250 Lg [Radeon Mobility 9000 M9]";
-static const char pci_device_1002_4c6e[] = "Radeon R250 Ln [Radeon Mobility 9000 M9] (Secondary)";
+static const char pci_device_1002_4c67[] = "Radeon RV250 Lg [Radeon Mobility 9000 M9]";
+static const char pci_device_1002_4c6e[] = "Radeon RV250 Ln [Radeon Mobility 9000 M9] (Secondary)";
 static const char pci_device_1002_4d46[] = "Rage Mobility M4 AGP";
 static const char pci_device_1002_4d4c[] = "Rage Mobility M4 AGP";
+static const char pci_device_1002_4d52[] = "Theater 550 PRO PCI [ATI TV Wonder 550]";
 static const char pci_device_1002_4e44[] = "Radeon R300 ND [Radeon 9700 Pro]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4e44_1002_515e[] = "Radeon ES1000";
@@ -2039,6 +2140,9 @@ static const char pci_device_1002_5653[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5653_1025_0080[] = "Aspire 5024WLMi";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_5653_103c_0940[] = "HP Compaq NW8240 Mobile Workstation";
+#endif
 static const char pci_device_1002_5654[] = "264VT [Mach64 VT]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5654_1002_5654[] = "Mach64VT Reference";
@@ -2090,6 +2194,9 @@ static const char pci_subsys_1002_5955_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5955_103c_308b[] = "MX6125";
 #endif
+static const char pci_device_1002_5956[] = "RD790 Northbridge only dual slot PCI-e_GFX and HT3 K8 part";
+static const char pci_device_1002_5957[] = "RX790 Northbridge only single slot PCI-e_GFX and HT3 K8 part";
+static const char pci_device_1002_5958[] = "RD780 Northbridge only dual slot PCI-e_GFX and HT1 K8 part";
 static const char pci_device_1002_5960[] = "RV280 [Radeon 9200 PRO]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5960_17af_2020[] = "Excalibur Radeon 9250";
@@ -2160,6 +2267,33 @@ static const char pci_subsys_1002_5964_1
 static const char pci_device_1002_5969[] = "ES1000";
 static const char pci_device_1002_5974[] = "RS482 [Radeon Xpress 200]";
 static const char pci_device_1002_5975[] = "RS485 [Radeon Xpress 1100 IGP]";
+static const char pci_device_1002_5978[] = "RD790 PCI to PCI bridge (external gfx0 port A)";
+static const char pci_device_1002_5979[] = "RD790 PCI to PCI bridge (external gfx0 port B)";
+static const char pci_device_1002_597a[] = "RD790 PCI to PCI bridge (PCI express gpp port A)";
+static const char pci_device_1002_597b[] = "RD790 PCI to PCI bridge (PCI express gpp port B)";
+static const char pci_device_1002_597c[] = "RD790 PCI to PCI bridge (PCI express gpp port C)";
+static const char pci_device_1002_597d[] = "RD790 PCI to PCI bridge (PCI express gpp port D)";
+static const char pci_device_1002_597e[] = "RD790 PCI to PCI bridge (PCI express gpp port E)";
+static const char pci_device_1002_597f[] = "RD790 PCI to PCI bridge (PCI express gpp port F)";
+static const char pci_device_1002_5980[] = "RD790 PCI to PCI bridge (external gfx1 port A)";
+static const char pci_device_1002_5981[] = "RD790 PCI to PCI bridge (external gfx1 port B)";
+static const char pci_device_1002_5982[] = "RD790 PCI to PCI bridge (NB-SB link)";
+static const char pci_device_1002_5a10[] = "RD890 Northbridge only dual slot (2x16) PCI-e GFX Hydra part";
+static const char pci_device_1002_5a11[] = "RD890 Northbridge only single slot PCI-e GFX Hydra part";
+static const char pci_device_1002_5a12[] = "RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part";
+static const char pci_device_1002_5a13[] = "RD890 PCI to PCI bridge (external gfx0 port A)";
+static const char pci_device_1002_5a14[] = "RD890 PCI to PCI bridge (external gfx0 port B)";
+static const char pci_device_1002_5a15[] = "RD890 PCI to PCI bridge (PCI express gpp port A)";
+static const char pci_device_1002_5a16[] = "RD890 PCI to PCI bridge (PCI express gpp port B)";
+static const char pci_device_1002_5a17[] = "RD890 PCI to PCI bridge (PCI express gpp port C)";
+static const char pci_device_1002_5a18[] = "RD890 PCI to PCI bridge (PCI express gpp port D)";
+static const char pci_device_1002_5a19[] = "RD890 PCI to PCI bridge (PCI express gpp port E)";
+static const char pci_device_1002_5a1a[] = "RD890 PCI to PCI bridge (PCI express gpp port F)";
+static const char pci_device_1002_5a1b[] = "RD890 PCI to PCI bridge (PCI express gpp port G)";
+static const char pci_device_1002_5a1c[] = "RD890 PCI to PCI bridge (PCI express gpp port H)";
+static const char pci_device_1002_5a1d[] = "RD890 PCI to PCI bridge (external gfx1 port A)";
+static const char pci_device_1002_5a1e[] = "RD890 PCI to PCI bridge (external gfx1 port B)";
+static const char pci_device_1002_5a1f[] = "RD890 PCI to PCI bridge (NB-SB link)";
 static const char pci_device_1002_5a33[] = "Radeon Xpress 200 Host Bridge";
 static const char pci_device_1002_5a34[] = "RS480 PCI-X Root Port";
 static const char pci_device_1002_5a36[] = "RS480 PCI Bridge";
@@ -2179,6 +2313,9 @@ static const char pci_subsys_1002_5b60_1
 static const char pci_subsys_1002_5b60_1043_032e[] = "Extreme AX300/TD";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_5b60_1458_2102[] = "GV-RX30S128D (X300SE)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5b60_1462_0400[] = "RX300SE-TD128E (MS-8940 REV:200)";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -2306,6 +2443,9 @@ static const char pci_device_1002_7146[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_7146_1002_0322[] = "All-in-Wonder 2006 PCI-E Edition";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_7146_1545_1996[] = "Radeon X1300 512MB PCI-e";
+#endif
 static const char pci_device_1002_7147[] = "RV505 [Radeon X1550 64-bit]";
 static const char pci_device_1002_7149[] = "M52 [Mobility Radeon X1300]";
 static const char pci_device_1002_714a[] = "M52 [Mobility Radeon X1300]";
@@ -2325,12 +2465,16 @@ static const char pci_device_1002_7166[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_7166_1002_0323[] = "All-in-Wonder 2006 PCI-E Edition (Secondary)";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_7166_1545_1997[] = "Radeon X1300 512MB PCI-e (Secondary)";
+#endif
 static const char pci_device_1002_716e[] = "RV515LE [Radeon X1300] Secondary";
 static const char pci_device_1002_7172[] = "RV515GL [FireGL V3300] (Secondary)";
 static const char pci_device_1002_7173[] = "RV515GL [FireGL V3350] (Secondary)";
 static const char pci_device_1002_7180[] = "RV516 [Radeon X1300/X1550 Series]";
 static const char pci_device_1002_7181[] = "RV516 XT Radeon X1600 Series (Primary)";
 static const char pci_device_1002_7183[] = "RV516 [Radeon X1300/X1550 Series]";
+static const char pci_device_1002_7186[] = "RV515 [Radeon Mobility X1450]";
 static const char pci_device_1002_7187[] = "RV516 [Radeon X1300/X1550 Series]";
 static const char pci_device_1002_7188[] = "M64-S [Mobility Radeon X2300]";
 static const char pci_device_1002_718a[] = "Mobility Radeon X2300";
@@ -2388,11 +2532,11 @@ static const char pci_device_1002_724e[]
 static const char pci_device_1002_7269[] = "R580 [Radeon X1900 XT] (Secondary)";
 static const char pci_device_1002_726b[] = "R580 [Radeon X1900]";
 static const char pci_device_1002_726e[] = "R580 [AMD Stream Processor] (Secondary)";
-static const char pci_device_1002_7280[] = "Radeon X1950 Pro (Primary) (PCIE)";
+static const char pci_device_1002_7280[] = "RV570 [Radeon X1950 Pro]";
 static const char pci_device_1002_7288[] = "Radeon X1950 GT";
 static const char pci_device_1002_7291[] = "Radeon X1650 XT (Primary) (PCIE)";
 static const char pci_device_1002_7293[] = "Radeon X1650 Series";
-static const char pci_device_1002_72a0[] = "Radeon X1950 Pro (Secondary) (PCIE)";
+static const char pci_device_1002_72a0[] = "RV570 [Radeon X1950 Pro] (secondary)";
 static const char pci_device_1002_72a8[] = "Radeon X1950 GT (Secondary)";
 static const char pci_device_1002_72b1[] = "Radeon X1650 XT (Secondary) (PCIE)";
 static const char pci_device_1002_72b3[] = "Radeon X1650 Series (Secondary)";
@@ -2400,6 +2544,10 @@ static const char pci_device_1002_7833[]
 static const char pci_device_1002_7834[] = "Radeon 9100 PRO IGP";
 static const char pci_device_1002_7835[] = "Radeon Mobility 9200 IGP";
 static const char pci_device_1002_7838[] = "Radeon 9100 IGP PCI/AGP Bridge";
+static const char pci_device_1002_7910[] = "RS690 Host Bridge";
+static const char pci_device_1002_7912[] = "RS690 PCI to PCI Bridge (Internal gfx)";
+static const char pci_device_1002_7916[] = "RS690 PCI to PCI Bridge (PCI Express Port 2)";
+static const char pci_device_1002_7917[] = "RS690 PCI to PCI Bridge (PCI Express Port 3)";
 static const char pci_device_1002_7919[] = "Radeon X1200 Series Audio Controller";
 static const char pci_device_1002_791e[] = "Radeon X1200 Series";
 static const char pci_device_1002_791f[] = "Radeon X1200 Series";
@@ -2896,17 +3044,17 @@ static const char pci_subsys_1013_6005_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1014[] = "IBM";
 static const char pci_device_1014_0002[] = "PCI to MCA Bridge";
-static const char pci_device_1014_0005[] = "Alta Lite";
-static const char pci_device_1014_0007[] = "Alta MP";
-static const char pci_device_1014_000a[] = "Fire Coral";
+static const char pci_device_1014_0005[] = "Processor to I/O Controller [Alta Lite]";
+static const char pci_device_1014_0007[] = "Processor to I/O Controller [Alta MP]";
+static const char pci_device_1014_000a[] = "PCI to ISA Bridge (IBM27-82376) [Fire Coral]";
 static const char pci_device_1014_0017[] = "CPU to PCI Bridge";
 static const char pci_device_1014_0018[] = "TR Auto LANstreamer";
 static const char pci_device_1014_001b[] = "GXT-150P";
 static const char pci_device_1014_001c[] = "Carrera";
-static const char pci_device_1014_001d[] = "82G2675";
+static const char pci_device_1014_001d[] = "SCSI-2 FAST PCI Adapter (82G2675)";
 static const char pci_device_1014_0020[] = "GXT1000 Graphics Adapter";
-static const char pci_device_1014_0022[] = "IBM27-82351";
-static const char pci_device_1014_002d[] = "Python";
+static const char pci_device_1014_0022[] = "PCI to PCI Bridge (IBM27-82351)";
+static const char pci_device_1014_002d[] = "Processor to I/O Controller [Python]";
 static const char pci_device_1014_002e[] = "SCSI RAID Adapter [ServeRAID]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1014_002e_1014_002e[] = "ServeRAID-3x";
@@ -2918,8 +3066,8 @@ static const char pci_device_1014_0031[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1014_0031_1014_0031[] = "2721 WAN IOA - 2 Port Sync Serial Adapter";
 #endif
-static const char pci_device_1014_0036[] = "Miami";
-static const char pci_device_1014_0037[] = "82660 CPU to PCI Bridge";
+static const char pci_device_1014_0036[] = "PCI to 32-bit LocalBus Bridge [Miami]";
+static const char pci_device_1014_0037[] = "PowerPC to PCI Bridge (IBM27-82660)";
 static const char pci_device_1014_003a[] = "CPU to PCI Bridge";
 static const char pci_device_1014_003c[] = "GXT250P/GXT255P Graphics Adapter";
 static const char pci_device_1014_003e[] = "16/4 Token ring UTP/STP controller";
@@ -3087,13 +3235,19 @@ static const char pci_subsys_1014_02bd_1
 static const char pci_subsys_1014_02bd_1014_02c2[] = "PCI-X DDR 3Gb SAS RAID Adapter (572B/571D)";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1014_02bd_1014_0338[] = "PCI-X266 Auxiliary Cache Adapter (575C)";
+static const char pci_subsys_1014_02bd_1014_0338[] = "PCI-X DDR Auxiliary Cache Adapter (575C)";
 #endif
 static const char pci_device_1014_0302[] = "Winnipeg PCI-X Host Bridge";
 static const char pci_device_1014_0308[] = "CalIOC2 PCI-E Root Port";
 static const char pci_device_1014_0314[] = "ZISC 036 Neural accelerator card";
 static const char pci_device_1014_0339[] = "Obsidian-E PCI-E SCSI controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1014_0339_1014_030a[] = "PCIe 3Gb SAS RAID Adapter (574E)";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1014_0339_1014_033a[] = "PCIe 3Gb SAS Adapter (57B3)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1014_0339_1014_0360[] = "PCI-E Auxiliary Cache Adapter (57B7)";
 #endif
 static const char pci_device_1014_3022[] = "QLA3022 Network Adapter";
@@ -4317,6 +4471,7 @@ static const char pci_device_1039_0655[]
 static const char pci_device_1039_0660[] = "660 Host";
 static const char pci_device_1039_0661[] = "661FX/M661FX/M661MX Host";
 static const char pci_device_1039_0662[] = "662 Host";
+static const char pci_device_1039_0671[] = "671MX";
 static const char pci_device_1039_0730[] = "730 Host";
 static const char pci_device_1039_0733[] = "733 Host";
 static const char pci_device_1039_0735[] = "735 Host";
@@ -4654,6 +4809,7 @@ static const char pci_device_103c_2925[]
 static const char pci_device_103c_3080[] = "Pavilion ze2028ea";
 static const char pci_device_103c_3085[] = "Realtek RTL8139/8139C/8139C+";
 static const char pci_device_103c_30b5[] = "Compaq Presario V3000Z";
+static const char pci_device_103c_31fb[] = "DL365 ATI ES1000 VGA controller";
 static const char pci_device_103c_3220[] = "Smart Array P600";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_103c_3220_103c_3225[] = "3 Gb/s SAS RAID";
@@ -4671,7 +4827,13 @@ static const char pci_subsys_103c_3230_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_103c_3230_103c_3237[] = "E500 SAS Controller";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_103c_3230_103c_323d[] = "P700m SAS Controller";
+#endif
 static const char pci_device_103c_3238[] = "Smart Array E200i (SAS Controller)";
+static const char pci_device_103c_3300[] = "Proliant iLO2 virtual USB controller";
+static const char pci_device_103c_3302[] = "Proliant iLO2 virtual UART";
+static const char pci_device_103c_3305[] = "Proliant iLO2 [Integrated Lights Out] controller";
 static const char pci_device_103c_4030[] = "zx2 System Bus Adapter";
 static const char pci_device_103c_4031[] = "zx2 I/O Controller";
 static const char pci_device_103c_4037[] = "PCIe Local Bus Adapter";
@@ -4725,6 +4887,7 @@ static const char pci_device_1043_815a[]
 static const char pci_device_1043_8168[] = "Realtek PCI-E Gigabit Ethernet Controller (RTL8111B)";
 static const char pci_device_1043_8187[] = "802.11a/b/g Wireless LAN Card";
 static const char pci_device_1043_8188[] = "Tiger Hybrid TV Capture Device";
+static const char pci_device_1043_81e7[] = "Realtek ALC-660 6-channel CODEC";
 static const char pci_device_1043_81f4[] = "EN7300TC512/TD/128M/A(C262G) [Graphics Card EN7300TC512]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -4957,6 +5120,9 @@ static const char pci_subsys_104c_3d07_1
 static const char pci_subsys_104c_3d07_107d_2633[] = "WinFast 3D L2300";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_104c_3d07_1092_0126[] = "FIRE GL 1000 PRO";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_104c_3d07_1092_0127[] = "FIRE GL 1000 PRO";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -5087,6 +5253,9 @@ static const char pci_device_104c_8031[]
 static const char pci_subsys_104c_8031_1025_0080[] = "Aspire 5024WLMi";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_104c_8031_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_104c_8031_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -5097,6 +5266,9 @@ static const char pci_device_104c_8032[]
 static const char pci_subsys_104c_8032_1025_0080[] = "Aspire 5024WLMi";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_104c_8032_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_104c_8032_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -5107,6 +5279,9 @@ static const char pci_device_104c_8033[]
 static const char pci_subsys_104c_8033_1025_0080[] = "Aspire 5024WLMi";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_104c_8033_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_104c_8033_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -5117,6 +5292,9 @@ static const char pci_device_104c_8034[]
 static const char pci_subsys_104c_8034_1025_0080[] = "Aspire 5024WLMi";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_104c_8034_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_104c_8034_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -5124,6 +5302,9 @@ static const char pci_subsys_104c_8034_1
 #endif
 static const char pci_device_104c_8035[] = "PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_104c_8035_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_104c_8035_103c_099c[] = "NX6110/NC6120";
 #endif
 static const char pci_device_104c_8036[] = "PCI6515 Cardbus Controller";
@@ -5194,6 +5375,9 @@ static const char pci_subsys_104c_9066_1
 static const char pci_subsys_104c_9066_13d1_aba0[] = "SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_104c_9066_16ec_010d[] = "USR5416 802.11g Wireless Turbo PCI Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_104c_9066_1737_0033[] = "WPC54G Ver.2 802.11G PC Card";
 #endif
 static const char pci_device_104c_a001[] = "TDC1570";
@@ -5265,6 +5449,9 @@ static const char pci_subsys_104c_ac44_1
 static const char pci_subsys_104c_ac44_1071_8160[] = "MIM2000";
 #endif
 static const char pci_device_104c_ac46[] = "PCI4520 PC card Cardbus Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_104c_ac46_1014_0552[] = "ThinkPad";
+#endif
 static const char pci_device_104c_ac47[] = "PCI7510 PC card Cardbus Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_104c_ac47_1028_0139[] = "Latitude D400";
@@ -5417,8 +5604,14 @@ static const char pci_vendor_1053[] = "Y
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1054[] = "Hitachi, Ltd";
+static const char pci_device_1054_3009[] = "2Gbps Fibre Channel to PCI HBA 3009";
+static const char pci_device_1054_300a[] = "4Gbps Fibre Channel to PCI-X HBA 300a";
+static const char pci_device_1054_300b[] = "4Gbps Fibre Channel to PCI-X HBA 300b";
+static const char pci_device_1054_300f[] = "ColdFusion 3 Chipset Processor to I/O Controller";
+static const char pci_device_1054_3010[] = "ColdFusion 3 Chipset Memory Controller Hub";
 static const char pci_device_1054_3011[] = "ColdFusion 3e Chipset Processor to I/O Controller";
 static const char pci_device_1054_3012[] = "ColdFusion 3e Chipset Memory Controller Hub";
+static const char pci_device_1054_3017[] = "Unassigned Hitachi Shared FC Device 3017";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1055[] = "Efar Microsystems";
@@ -5728,6 +5921,7 @@ static const char pci_device_105a_6269[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_105a_6269_105a_6269[] = "FastTrak TX2/TX2000";
 #endif
+static const char pci_device_105a_6300[] = "PDC81731 [FastTrak SX8300]";
 static const char pci_device_105a_6621[] = "PDC20621 (FastTrak S150 SX4/FastTrak SX4000 lite)";
 static const char pci_device_105a_6622[] = "PDC20621 [SATA150 SX4] 4 Channel IDE RAID Controller";
 static const char pci_device_105a_6624[] = "PDC20621 [FastTrak SX4100]";
@@ -6193,6 +6387,7 @@ static const char pci_subsys_1077_2422_1
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_1077_2432[] = "ISP2432-based 4Gb Fibre Channel to PCI Express HBA";
+static const char pci_device_1077_2532[] = "ISP2532-based 8Gb Fibre Channel to PCI Express HBA";
 static const char pci_device_1077_3022[] = "ISP4022-based Ethernet NIC";
 static const char pci_device_1077_3032[] = "ISP4032-based Ethernet IPv6 NIC";
 static const char pci_device_1077_4010[] = "ISP4010-based iSCSI TOE HBA";
@@ -6337,30 +6532,58 @@ static const char pci_device_108d_0022[]
 static const char pci_vendor_108e[] = "Sun Microsystems Computer Corp.";
 static const char pci_device_108e_0001[] = "EBUS";
 static const char pci_device_108e_1000[] = "EBUS";
-static const char pci_device_108e_1001[] = "Happy Meal";
+static const char pci_device_108e_1001[] = "Happy Meal 10/100 Ethernet [hme]";
 static const char pci_device_108e_1100[] = "RIO EBUS";
-static const char pci_device_108e_1101[] = "RIO GEM";
+static const char pci_device_108e_1101[] = "RIO 10/100 Ethernet [eri]";
 static const char pci_device_108e_1102[] = "RIO 1394";
 static const char pci_device_108e_1103[] = "RIO USB";
-static const char pci_device_108e_1648[] = "[bge] Gigabit Ethernet";
-static const char pci_device_108e_2bad[] = "GEM";
+static const char pci_device_108e_1647[] = "Broadcom 570x 10/100/1000 Ethernet [bge]";
+static const char pci_device_108e_1648[] = "Broadcom 570x 10/100/1000 Ethernet [bge]";
+static const char pci_device_108e_16a7[] = "Broadcom 570x 10/100/1000 Ethernet [bge]";
+static const char pci_device_108e_16a8[] = "Broadcom 570x 10/100/1000 Ethernet [bge]";
+static const char pci_device_108e_2bad[] = "GEM 10/100/1000 Ethernet [ge]";
 static const char pci_device_108e_5000[] = "Simba Advanced PCI Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_108e_5000_108e_5000[] = "Netra AX1105-500";
 #endif
 static const char pci_device_108e_5043[] = "SunPCI Co-processor";
+static const char pci_device_108e_6300[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6301[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6302[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6303[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6310[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6311[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6312[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6313[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6320[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6323[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6330[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6331[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6332[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6333[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6340[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6343[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6350[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6353[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
+static const char pci_device_108e_6722[] = "Intel 21554 PCI-PCI bus bridge [db21554]";
 static const char pci_device_108e_676e[] = "SunPCiIII";
 static const char pci_device_108e_7063[] = "SunPCiII / SunPCiIIpro";
 static const char pci_device_108e_8000[] = "Psycho PCI Bus Module";
 static const char pci_device_108e_8001[] = "Schizo PCI Bus Module";
 static const char pci_device_108e_8002[] = "Schizo+ PCI Bus Module";
-static const char pci_device_108e_a000[] = "Ultra IIi";
-static const char pci_device_108e_a001[] = "Ultra IIe";
+static const char pci_device_108e_80f0[] = "PCIe switch [px]";
+static const char pci_device_108e_80f8[] = "PCIe switch [px]";
+static const char pci_device_108e_9010[] = "PCIe/PCI bridge switch [pxb_plx]";
+static const char pci_device_108e_9020[] = "PCIe/PCI bridge switch [pxb_plx]";
+static const char pci_device_108e_9102[] = "Davicom Fast Ethernet driver for Davicom DM9102A [dmfe]";
+static const char pci_device_108e_a000[] = "Psycho UPA-PCI Bus Module [pcipsy]";
+static const char pci_device_108e_a001[] = "Psycho UPA-PCI Bus Module [pcipsy]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_108e_a001_108e_a001[] = "Netra AX1105-500";
 #endif
-static const char pci_device_108e_a801[] = "Tomatillo PCI Bus Module";
+static const char pci_device_108e_a801[] = "Schizo Fireplane-PCI bus bridge module [pcisch]";
 static const char pci_device_108e_abba[] = "Cassini 10/100/1000";
+static const char pci_device_108e_c416[] = "Sun Fire System/System Controller Interface chip [sbbc]";
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_108f[] = "Systemsoft";
 #endif
@@ -6380,6 +6603,10 @@ static const char pci_device_1091_07a0[]
 static const char pci_device_1091_1091[] = "Sun Expert3D Graphics Accelerator";
 #endif
 static const char pci_vendor_1092[] = "Diamond Multimedia Systems";
+static const char pci_device_1092_0028[] = "Viper V770";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1092_0028_1092_4a00[] = "Viper V770 32MB";
+#endif
 static const char pci_device_1092_00a0[] = "Speedstar Pro SE";
 static const char pci_device_1092_00a8[] = "Speedstar 64";
 static const char pci_device_1092_0550[] = "Viper V550";
@@ -7011,6 +7238,7 @@ static const char pci_subsys_10b4_1b1d_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_10b5[] = "PLX Technology, Inc.";
 static const char pci_device_10b5_0001[] = "i960 PCI bus interface";
+static const char pci_device_10b5_1024[] = "Acromag, Inc. IndustryPack Carrier Card";
 static const char pci_device_10b5_1042[] = "Brandywine / jxi2, Inc. - PMC-SyncClock32, IRIG A & B, Nasa 36";
 static const char pci_device_10b5_1076[] = "VScom 800 8 port serial adaptor";
 static const char pci_device_10b5_1077[] = "VScom 400 4 port serial adaptor";
@@ -7020,8 +7248,14 @@ static const char pci_device_10b5_1146[]
 static const char pci_device_10b5_1147[] = "VScom 020 2 port parallel adaptor";
 static const char pci_device_10b5_2540[] = "IXXAT CAN-Interface PC-I 04/PCI";
 static const char pci_device_10b5_2724[] = "Thales PCSM Security Card";
-static const char pci_device_10b5_6520[] = "PCI6520 PCI-X to PCI-X bridge";
-static const char pci_device_10b5_6540[] = "PCI6540/6466 PCI-PCI bridge (transparent mode)";
+static const char pci_device_10b5_6140[] = "PCI6140 32-bit 33MHz PCI-to-PCI Bridge";
+static const char pci_device_10b5_6150[] = "PCI6150 32-bit 33MHz PCI-to-PCI Bridge";
+static const char pci_device_10b5_6152[] = "PCI6152 32-bit 66MHz PCI-to-PCI Bridge";
+static const char pci_device_10b5_6154[] = "PCI6154 64-bit 66MHz PCI-to-PCI Bridge";
+static const char pci_device_10b5_6254[] = "PCI6254 64-bit 66MHz PCI-to-PCI Bridge";
+static const char pci_device_10b5_6466[] = "PCI6466 64-bit 66MHz PCI-to-PCI Bridge";
+static const char pci_device_10b5_6520[] = "PCI6520 64-bit 133MHz PCI-X-to-PCI-X Bridge";
+static const char pci_device_10b5_6540[] = "PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_6540_1775_1100[] = "CR11 Single Board Computer";
 #endif
@@ -7043,10 +7277,23 @@ static const char pci_subsys_10b5_6542_1
 static const char pci_subsys_10b5_6542_4c53_10e0[] = "PSL09 PrPMC";
 #endif
 static const char pci_device_10b5_8111[] = "PEX 8111 PCI Express-to-PCI Bridge";
+static const char pci_device_10b5_8112[] = "PEX8112 x1 Lane PCI Express-to-PCI Bridge";
 static const char pci_device_10b5_8114[] = "PEX 8114 PCI Express-to-PCI/PCI-X Bridge";
+static const char pci_device_10b5_8311[] = "PEX8311 x1 Lane PCI Express-to-Generic Local Bus Bridge";
+static const char pci_device_10b5_8505[] = "PEX 8505 5-lane, 5-port PCI Express Switch";
+static const char pci_device_10b5_8508[] = "PEX 8508 8-lane, 5-port PCI Express Switch";
+static const char pci_device_10b5_8509[] = "PEX 8509 8-lane, 8-port PCI Express Switch";
+static const char pci_device_10b5_8512[] = "PEX 8512 12-lane, 5-port PCI Express Switch";
 static const char pci_device_10b5_8516[] = "PEX 8516  Versatile PCI Express Switch";
+static const char pci_device_10b5_8517[] = "PEX 8517 16-lane, 5-port PCI Express Switch";
+static const char pci_device_10b5_8518[] = "PEX 8518 16-lane, 5-port PCI Express Switch";
+static const char pci_device_10b5_8524[] = "PEX 8524 24-lane, 6-port PCI Express Switch";
+static const char pci_device_10b5_8525[] = "PEX 8525 24-lane, 5-port PCI Express Switch";
 static const char pci_device_10b5_8532[] = "PEX 8532  Versatile PCI Express Switch";
-static const char pci_device_10b5_9030[] = "PCI <-> IOBus Bridge Hot Swap";
+static const char pci_device_10b5_8533[] = "PEX 8533 32-lane, 6-port PCI Express Switch";
+static const char pci_device_10b5_8547[] = "PEX 8547 48-lane, 3-port PCI Express Switch";
+static const char pci_device_10b5_8548[] = "PEX 8548 48-lane, 9-port PCI Express Switch";
+static const char pci_device_10b5_9030[] = "PCI9030 32-bit 33MHz PCI <-> IOBus Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9030_10b5_2862[] = "Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board";
 #endif
@@ -7208,7 +7455,8 @@ static const char pci_subsys_10b5_9050_d
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9050_d84d_4078[] = "EX-4078 2S(16C552) RS-232+1P";
 #endif
-static const char pci_device_10b5_9054[] = "PCI <-> IOBus Bridge";
+static const char pci_device_10b5_9052[] = "PCI9052 PCI <-> IOBus Bridge";
+static const char pci_device_10b5_9054[] = "PCI9054 32-bit 33MHz PCI <-> IOBus Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9054_10b5_2455[] = "Wessex Techology PHIL-PCI";
 #endif
@@ -7251,20 +7499,20 @@ static const char pci_subsys_10b5_9054_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9054_16df_0016[] = "PIKA InLine MM";
 #endif
-static const char pci_device_10b5_9056[] = "9056 PCI I/O Accelerator";
+static const char pci_device_10b5_9056[] = "PCI9056 32-bit 66MHz PCI <-> IOBus Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9056_10b5_2979[] = "CellinkBlade 11 - CPCI board VoATM AAL1";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9056_14b4_d140[] = "Dektec DTA-140";
 #endif
-static const char pci_device_10b5_9060[] = "9060";
+static const char pci_device_10b5_9060[] = "PCI9060 32-bit 33MHz PCI <-> IOBus Bridge";
 static const char pci_device_10b5_906d[] = "9060SD";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_906d_125c_0640[] = "Aries 16000P";
 #endif
 static const char pci_device_10b5_906e[] = "9060ES";
-static const char pci_device_10b5_9080[] = "9080";
+static const char pci_device_10b5_9080[] = "PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9080_103c_10eb[] = "(Agilent) E2777B 83K Series Optical Communication Interface";
@@ -7293,7 +7541,7 @@ static const char pci_subsys_10b5_9080_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9080_1517_000b[] = "ECSG-1R3ADC-PMC Clock synthesizer";
 #endif
-static const char pci_device_10b5_9656[] = "PCI <-> IOBus Bridge";
+static const char pci_device_10b5_9656[] = "PCI9656 PCI <-> IOBus Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9656_1517_000f[] = "ECDR-GC314-PMC Receiver";
 #endif
@@ -7610,6 +7858,9 @@ static const char pci_subsys_10b7_9200_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b7_9200_10f1_2466[] = "Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller)";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b7_9200_144d_c005[] = "X10 Laptop";
+#endif
 static const char pci_device_10b7_9201[] = "3C920B-EMB Integrated Fast Ethernet Controller [Tornado]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b7_9201_1043_80ab[] = "A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller";
@@ -7754,6 +8005,9 @@ static const char pci_subsys_10b9_1541_1
 #endif
 static const char pci_device_10b9_1543[] = "M1543";
 static const char pci_device_10b9_1563[] = "M1563 HyperTransport South Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b9_1563_10b9_1563[] = "ASRock 939Dual-SATA2 Motherboard";
+#endif
 static const char pci_device_10b9_1573[] = "PCI to LPC Controller";
 static const char pci_device_10b9_1621[] = "M1621";
 static const char pci_device_10b9_1631[] = "ALI M1631 PCI North Bridge Aladdin Pro III";
@@ -7818,7 +8072,13 @@ static const char pci_subsys_10b9_5237_1
 static const char pci_subsys_10b9_5237_104d_810f[] = "VAIO PCG-U1 USB/OHCI Revision 1.0";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b9_5237_10b9_5237[] = "ASRock 939Dual-SATA2 Motherboard";
+#endif
 static const char pci_device_10b9_5239[] = "USB 2.0 Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b9_5239_10b9_5239[] = "ASRock 939Dual-SATA2 Motherboard";
+#endif
 static const char pci_device_10b9_5243[] = "M1541 PCI to AGP Controller";
 static const char pci_device_10b9_5246[] = "AGP8X Controller";
 static const char pci_device_10b9_5247[] = "PCI to AGP Controller";
@@ -7853,6 +8113,9 @@ static const char pci_subsys_10b9_5451_1
 #endif
 static const char pci_device_10b9_5453[] = "M5453 PCI AC-Link Controller Modem Device";
 static const char pci_device_10b9_5455[] = "M5455 PCI AC-Link Controller Audio Device";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b9_5455_10b9_5455[] = "ASRock 939Dual-SATA2 Motherboard";
+#endif
 static const char pci_device_10b9_5457[] = "M5457 AC'97 Modem Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b9_5457_1014_0535[] = "ThinkPad R40e (2684-HVG) builtin modem";
@@ -7879,12 +8142,18 @@ static const char pci_subsys_10b9_7101_1
 static const char pci_subsys_10b9_7101_103c_0024[] = "Pavilion ze4400";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b9_7101_10b9_7101[] = "ASRock 939Dual-SATA2 Motherboard";
+#endif
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_10ba[] = "Mitsubishi Electric Corp.";
 static const char pci_device_10ba_0301[] = "AccelGraphics AccelECLIPSE";
 static const char pci_device_10ba_0304[] = "AccelGALAXY A2100 [OEM Evans & Sutherland]";
 static const char pci_device_10ba_0308[] = "Tornado 3000 [OEM Evans & Sutherland]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ba_0308_10dd_0024[] = "Tornado 3000";
+#endif
 static const char pci_device_10ba_1002[] = "VG500 [VolumePro Volume Rendering Accelerator]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -8067,6 +8336,7 @@ static const char pci_subsys_10cd_1300_1
 #endif
 static const char pci_device_10cd_2300[] = "ABP940-UW";
 static const char pci_device_10cd_2500[] = "ABP940-U2W";
+static const char pci_device_10cd_2700[] = "ABP3950-U3W";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_10ce[] = "Radius";
@@ -8130,6 +8400,9 @@ static const char pci_device_10dc_10dc[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_10dd[] = "Evans & Sutherland";
 static const char pci_device_10dd_0100[] = "Lightning 1200";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10dd_0100_10dd_0023[] = "Lightning 1200 15+16M";
+#endif
 #endif
 static const char pci_vendor_10de[] = "nVidia Corporation";
 static const char pci_device_10de_0008[] = "NV1 [EDGE 3D]";
@@ -8546,12 +8819,18 @@ static const char pci_subsys_10de_0064_a
 #endif
 static const char pci_device_10de_0065[] = "nForce2 IDE";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0065_10de_0c11[] = "nForce 2 EIDE Controller";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0065_a0a0_03b2[] = "UK79G-1394 motherboard";
 #endif
 static const char pci_device_10de_0066[] = "nForce2 Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0066_1043_80a7[] = "A7N8X Mainboard onboard nForce2 Ethernet";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0066_10de_0c11[] = "nForce MCP-T Networking Adapter";
+#endif
 static const char pci_device_10de_0067[] = "nForce2 USB Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0067_1043_0c11[] = "A7N8X Mainboard";
@@ -8898,6 +9177,9 @@ static const char pci_subsys_10de_0110_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0110_14af_7103[] = "3D Prophet II MX Dual-Display";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0110_1545_0023[] = "Xtasy Rev. B2";
+#endif
 static const char pci_device_10de_0111[] = "NV11DDR [GeForce2 MX200]";
 static const char pci_device_10de_0112[] = "NV11 [GeForce2 Go]";
 static const char pci_device_10de_0113[] = "NV11GL [Quadro2 MXR/EX/Go]";
@@ -8996,6 +9278,9 @@ static const char pci_device_10de_0176[]
 static const char pci_subsys_10de_0176_103c_08b0[] = "tc1100 tablet";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0176_144d_c005[] = "X10 Laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0176_4c53_1090[] = "Cx9 / Vx9 mainboard";
 #endif
 static const char pci_device_10de_0177[] = "NV17 [GeForce4 460 Go]";
@@ -9034,7 +9319,7 @@ static const char pci_device_10de_0185[]
 static const char pci_device_10de_0186[] = "NV18M [GeForce4 448 Go]";
 static const char pci_device_10de_0187[] = "NV18M [GeForce4 488 Go]";
 static const char pci_device_10de_0188[] = "NV18GL [Quadro4 580 XGL]";
-static const char pci_device_10de_018a[] = "NV18GL [Quadro NVS with AGP8X]";
+static const char pci_device_10de_018a[] = "NV18GL [Quadro NVS 280 SD]";
 static const char pci_device_10de_018b[] = "NV18GL [Quadro4 380 XGL]";
 static const char pci_device_10de_018c[] = "NV18GL [Quadro NVS 50 PCI]";
 static const char pci_device_10de_018d[] = "NV18M [GeForce4 448 Go]";
@@ -9058,6 +9343,7 @@ static const char pci_device_10de_01bc[]
 static const char pci_device_10de_01c1[] = "nForce AC'97 Modem Controller";
 static const char pci_device_10de_01c2[] = "nForce USB Controller";
 static const char pci_device_10de_01c3[] = "nForce Ethernet Controller";
+static const char pci_device_10de_01d0[] = "GeForce 7350 LE";
 static const char pci_device_10de_01d1[] = "G72 [GeForce 7300 LE]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_01d1_1462_0345[] = "7300LE PCI Express Graphics Adapter";
@@ -9067,6 +9353,7 @@ static const char pci_device_10de_01d6[]
 static const char pci_device_10de_01d7[] = "G72M [Quadro NVS 110M/GeForce Go 7300]";
 static const char pci_device_10de_01d8[] = "G72M [GeForce Go 7400]";
 static const char pci_device_10de_01da[] = "G72M [Quadro NVS 110M]";
+static const char pci_device_10de_01db[] = "Quadro NVS 120M";
 static const char pci_device_10de_01dc[] = "G72GL [Quadro FX 350M]";
 static const char pci_device_10de_01dd[] = "G72 [GeForce 7500 LE]";
 static const char pci_device_10de_01de[] = "G72GL [Quadro FX 350]";
@@ -9097,6 +9384,9 @@ static const char pci_subsys_10de_01ed_a
 #endif
 static const char pci_device_10de_01ee[] = "nForce2 Memory Controller 4";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_01ee_10de_01ee[] = "MSI Delta-L nForce2 memory controller";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_01ee_a0a0_03b9[] = "UK79G-1394 motherboard";
 #endif
 static const char pci_device_10de_01ef[] = "nForce2 Memory Controller 5";
@@ -9144,7 +9434,10 @@ static const char pci_device_10de_0242[]
 static const char pci_device_10de_0243[] = "C51 PCI Express Bridge";
 static const char pci_device_10de_0244[] = "C51 [Geforce 6150 Go]";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_0244_10de_0244[] = "C51 [Geforce 6150 Go]";
+static const char pci_subsys_10de_0244_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0244_10de_0244[] = "GeForce Go 6150";
 #endif
 static const char pci_device_10de_0245[] = "C51 [Quadro NVS 210S/GeForce 6150LE]";
 static const char pci_device_10de_0246[] = "C51 PCI Express Bridge";
@@ -9165,6 +9458,9 @@ static const char pci_device_10de_0251[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0251_1043_8023[] = "v8440 GeForce 4 Ti4400";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0251_10de_0251[] = "PNY GeForce4 Ti 4400";
+#endif
 static const char pci_device_10de_0252[] = "NV25 [GeForce4 Ti]";
 static const char pci_device_10de_0253[] = "NV25 [GeForce4 Ti 4200]";
 #ifdef INIT_SUBSYS_INFO
@@ -9178,6 +9474,9 @@ static const char pci_device_10de_0259[]
 static const char pci_device_10de_025b[] = "NV25GL [Quadro4 700 XGL]";
 static const char pci_device_10de_0260[] = "MCP51 LPC Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0260_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0260_1043_81bc[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9191,6 +9490,9 @@ static const char pci_device_10de_0262[]
 static const char pci_device_10de_0263[] = "MCP51 LPC Bridge";
 static const char pci_device_10de_0264[] = "MCP51 SMBus";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0264_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0264_1043_81bc[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9198,6 +9500,9 @@ static const char pci_subsys_10de_0264_1
 #endif
 static const char pci_device_10de_0265[] = "MCP51 IDE";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0265_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0265_1043_81bc[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9205,6 +9510,9 @@ static const char pci_subsys_10de_0265_1
 #endif
 static const char pci_device_10de_0266[] = "MCP51 Serial ATA Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0266_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0266_1043_81bc[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9220,6 +9528,9 @@ static const char pci_subsys_10de_0267_1
 static const char pci_device_10de_0268[] = "MCP51 Ethernet Controller";
 static const char pci_device_10de_0269[] = "MCP51 Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0269_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0269_1043_8141[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9229,6 +9540,9 @@ static const char pci_device_10de_026a[]
 static const char pci_device_10de_026b[] = "MCP51 AC97 Audio Controller";
 static const char pci_device_10de_026c[] = "MCP51 High Definition Audio";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_026c_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_026c_10de_cb84[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9236,6 +9550,9 @@ static const char pci_subsys_10de_026c_1
 #endif
 static const char pci_device_10de_026d[] = "MCP51 USB Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_026d_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_026d_1043_81bc[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9243,14 +9560,23 @@ static const char pci_subsys_10de_026d_1
 #endif
 static const char pci_device_10de_026e[] = "MCP51 USB Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_026e_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_026e_1043_81bc[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_026e_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_026f[] = "MCP51 PCI Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_026f_103c_30b7[] = "Presario V6133CL";
+#endif
 static const char pci_device_10de_0270[] = "MCP51 Host Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0270_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0270_1043_81bc[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9260,9 +9586,15 @@ static const char pci_subsys_10de_0270_1
 static const char pci_subsys_10de_0270_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0271[] = "MCP51 PMU";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0271_103c_30b7[] = "Presario V6133CL";
+#endif
 static const char pci_device_10de_0272[] = "MCP51 Memory Controller 0";
 static const char pci_device_10de_027e[] = "C51 Memory Controller 2";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_027e_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_027e_1043_81cd[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9273,6 +9605,9 @@ static const char pci_subsys_10de_027e_1
 #endif
 static const char pci_device_10de_027f[] = "C51 Memory Controller 3";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_027f_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_027f_1043_81cd[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9298,8 +9633,14 @@ static const char pci_device_10de_0293[]
 static const char pci_device_10de_0294[] = "G71 [GeForce 7950 GX2]";
 static const char pci_device_10de_0295[] = "G71 [GeForce 7950 GT]";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0295_1043_8225[] = "GeForce 7950 GT";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0295_107d_2a68[] = "WinFast PX7950GT TDH";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0295_1462_0663[] = "NX7950GT-VT2D512EZ-HD";
+#endif
 static const char pci_device_10de_0297[] = "GeForce Go 7950 GTX";
 static const char pci_device_10de_0298[] = "GeForce Go 7900 GS";
 static const char pci_device_10de_0299[] = "GeForce Go 7900 GTX";
@@ -9311,10 +9652,17 @@ static const char pci_device_10de_029e[]
 static const char pci_device_10de_029f[] = "G70 [Quadro FX 4500 X2]";
 static const char pci_device_10de_02a0[] = "NV2A [XGPU]";
 static const char pci_device_10de_02e0[] = "GeForce 7600 GT";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02e0_02e0_2249[] = "GF 7600GT 560M 256MB DDR3 DUAL DVI TV";
+#endif
 static const char pci_device_10de_02e1[] = "G73 [GeForce 7600 GS]";
 static const char pci_device_10de_02e2[] = "GeForce 7300 GT";
+static const char pci_device_10de_02e3[] = "GeForce 7900 GS";
 static const char pci_device_10de_02f0[] = "C51 Host Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f0_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02f0_1043_81cd[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9332,6 +9680,9 @@ static const char pci_device_10de_02f6[]
 static const char pci_device_10de_02f7[] = "C51 Host Bridge";
 static const char pci_device_10de_02f8[] = "C51 Memory Controller 5";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f8_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02f8_1043_81cd[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9342,6 +9693,9 @@ static const char pci_subsys_10de_02f8_1
 #endif
 static const char pci_device_10de_02f9[] = "C51 Memory Controller 4";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f9_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02f9_1043_81cd[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9352,6 +9706,9 @@ static const char pci_subsys_10de_02f9_1
 #endif
 static const char pci_device_10de_02fa[] = "C51 Memory Controller 0";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02fa_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02fa_1043_81cd[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9362,9 +9719,18 @@ static const char pci_subsys_10de_02fa_1
 #endif
 static const char pci_device_10de_02fb[] = "C51 PCI Express Bridge";
 static const char pci_device_10de_02fc[] = "C51 PCI Express Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02fc_103c_30b7[] = "Presario V6133CL";
+#endif
 static const char pci_device_10de_02fd[] = "C51 PCI Express Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02fd_103c_30b7[] = "Presario V6133CL";
+#endif
 static const char pci_device_10de_02fe[] = "C51 Memory Controller 1";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02fe_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02fe_1043_81cd[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9375,6 +9741,9 @@ static const char pci_subsys_10de_02fe_1
 #endif
 static const char pci_device_10de_02ff[] = "C51 Host Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02ff_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02ff_1043_81cd[] = "A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9410,6 +9779,9 @@ static const char pci_device_10de_0322[]
 static const char pci_subsys_10de_0322_1043_02fb[] = "V9250 Magic";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0322_1462_9110[] = "MS-8911 (FX5200-TD128)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0322_1462_9171[] = "MS-8917 (FX5200-T128)";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9421,6 +9793,9 @@ static const char pci_device_10de_0324[]
 static const char pci_subsys_10de_0324_1028_0196[] = "Inspiron 5160";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0324_103c_006a[] = "Pavillon ZD7000 laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0324_1071_8160[] = "MIM2000";
 #endif
 static const char pci_device_10de_0325[] = "NV34M [GeForce FX Go5250]";
@@ -9434,6 +9809,9 @@ static const char pci_device_10de_032c[]
 static const char pci_device_10de_032d[] = "NV34 [GeForce FX Go5100]";
 static const char pci_device_10de_032f[] = "NV34GL";
 static const char pci_device_10de_0330[] = "NV35 [GeForce FX 5900 Ultra]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0330_1043_8137[] = "V9950 Ultra / 256 MB";
+#endif
 static const char pci_device_10de_0331[] = "NV35 [GeForce FX 5900]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0331_1043_8145[] = "V9950GE";
@@ -9464,22 +9842,43 @@ static const char pci_device_10de_034f[]
 static const char pci_device_10de_0360[] = "MCP55 LPC Bridge";
 static const char pci_device_10de_0361[] = "MCP55 LPC Bridge";
 static const char pci_device_10de_0362[] = "MCP55 LPC Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0362_147b_12c4[] = "KN9-Ultra Mainboard";
+#endif
 static const char pci_device_10de_0363[] = "MCP55 LPC Bridge";
 static const char pci_device_10de_0364[] = "MCP55 LPC Bridge";
 static const char pci_device_10de_0365[] = "MCP55 LPC Bridge";
 static const char pci_device_10de_0366[] = "MCP55 LPC Bridge";
 static const char pci_device_10de_0367[] = "MCP55 LPC Bridge";
 static const char pci_device_10de_0368[] = "MCP55 SMBus";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0368_147b_12c4[] = "KN9-Ultra Mainboard";
+#endif
 static const char pci_device_10de_0369[] = "MCP55 Memory Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0369_147b_12c4[] = "KN9-Ultra Mainboard";
+#endif
 static const char pci_device_10de_036a[] = "MCP55 Memory Controller";
 static const char pci_device_10de_036b[] = "MCP55 SMU";
 static const char pci_device_10de_036c[] = "MCP55 USB Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_036c_147b_12c4[] = "KN9-Ultra Mainboard";
+#endif
 static const char pci_device_10de_036d[] = "MCP55 USB Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_036d_147b_12c4[] = "KN9-Ultra Mainboard";
+#endif
 static const char pci_device_10de_036e[] = "MCP55 IDE";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_036e_147b_12c4[] = "KN9-Ultra Mainboard";
+#endif
 static const char pci_device_10de_0370[] = "MCP55 PCI bridge";
 static const char pci_device_10de_0371[] = "MCP55 High Definition Audio";
 static const char pci_device_10de_0372[] = "MCP55 Ethernet";
 static const char pci_device_10de_0373[] = "MCP55 Ethernet";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0373_147b_12c4[] = "KN9-Ultra Mainboard";
+#endif
 static const char pci_device_10de_0374[] = "MCP55 PCI Express bridge";
 static const char pci_device_10de_0375[] = "MCP55 PCI Express bridge";
 static const char pci_device_10de_0376[] = "MCP55 PCI Express bridge";
@@ -9489,6 +9888,9 @@ static const char pci_device_10de_037a[]
 static const char pci_device_10de_037c[] = "G70 [GeForce 7800 GS] (rev a2)";
 static const char pci_device_10de_037e[] = "MCP55 SATA Controller";
 static const char pci_device_10de_037f[] = "MCP55 SATA Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_037f_147b_12c4[] = "KN9-Ultra Mainboard";
+#endif
 static const char pci_device_10de_0390[] = "GeForce 7650 GS";
 static const char pci_device_10de_0391[] = "G70 [GeForce 7600 GT]";
 #ifdef INIT_SUBSYS_INFO
@@ -9499,6 +9901,9 @@ static const char pci_device_10de_0392[]
 static const char pci_subsys_10de_0392_1462_0622[] = "NX7600GS-T2D256EH";
 #endif
 static const char pci_device_10de_0393[] = "G70 [GeForce 7300 GT]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0393_10de_0412[] = "NX7300GT-TD256EH";
+#endif
 static const char pci_device_10de_0394[] = "G70 [GeForce 7600 LE]";
 static const char pci_device_10de_0395[] = "G70 [GeForce 7300 GT]";
 static const char pci_device_10de_0397[] = "GeForce Go 7700";
@@ -9570,6 +9975,8 @@ static const char pci_device_10de_0400[]
 static const char pci_device_10de_0402[] = "GeForce 8600 GT";
 static const char pci_device_10de_0407[] = "GeForce 8600M GT";
 static const char pci_device_10de_040b[] = "Quadro NVS 320M";
+static const char pci_device_10de_040c[] = "Quadro FX 570M";
+static const char pci_device_10de_040d[] = "Quadro FX 1600M";
 static const char pci_device_10de_0421[] = "GeForce 8500 GT";
 static const char pci_device_10de_0422[] = "GeForce 8400 GS";
 static const char pci_device_10de_0423[] = "GeForce 8300 GS";
@@ -9580,6 +9987,7 @@ static const char pci_device_10de_0428[]
 static const char pci_device_10de_0429[] = "Quadro NVS 140M";
 static const char pci_device_10de_042a[] = "Quadro NVS 130M";
 static const char pci_device_10de_042b[] = "Quadro NVS 135M";
+static const char pci_device_10de_042d[] = "Quadro FX 360M";
 static const char pci_device_10de_0440[] = "MCP65 LPC Bridge";
 static const char pci_device_10de_0441[] = "MCP65 LPC Bridge";
 static const char pci_device_10de_0442[] = "MCP65 LPC Bridge";
@@ -9752,6 +10160,7 @@ static const char pci_vendor_10ec[] = "R
 static const char pci_device_10ec_0139[] = "Zonet Zen3200";
 static const char pci_device_10ec_0260[] = "Realtek 260 High Definition Audio";
 static const char pci_device_10ec_0261[] = "Realtek 261 High Definition Audio";
+static const char pci_device_10ec_0262[] = "Realtek 262 High Definition Audio";
 static const char pci_device_10ec_0280[] = "Realtek 280 High Definition Audio";
 static const char pci_device_10ec_0861[] = "Realtek 861 High Definition Audio";
 static const char pci_device_10ec_0862[] = "Realtek 862 High Definition Audio";
@@ -9915,6 +10324,9 @@ static const char pci_device_10ec_8167[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_8167_1462_235c[] = "P965 Neo MS-7235 mainboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8167_1462_236c[] = "945P Neo3-F motherboard";
+#endif
 static const char pci_device_10ec_8168[] = "RTL8111/8168B PCI Express Gigabit Ethernet controller";
 static const char pci_device_10ec_8169[] = "RTL-8169 Gigabit Ethernet";
 #endif
@@ -9971,6 +10383,9 @@ static const char pci_device_10ee_3fc6[]
 static const char pci_device_10ee_8380[] = "Ellips ProfiXpress Profibus Master";
 static const char pci_device_10ee_8381[] = "Ellips Santos Frame Grabber";
 static const char pci_device_10ee_d154[] = "Copley Controls CAN card (PCI-CAN-02)";
+static const char pci_device_10ee_ebf0[] = "SED Systems Modulator/Demodulator";
+static const char pci_device_10ee_ebf1[] = "SED Systems Audio Interface Card";
+static const char pci_device_10ee_ebf2[] = "SED Systems Common PCI Interface";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_10ef[] = "Racore Computer Products, Inc.";
@@ -10035,13 +10450,14 @@ static const char pci_vendor_1100[] = "J
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1101[] = "Initio Corporation";
+static const char pci_device_1101_0002[] = "INI-920 Ultra SCSI Adapter";
 static const char pci_device_1101_1060[] = "INI-A100U2W";
 static const char pci_device_1101_1622[] = "INI-1623 PCI SATA-II Controller";
 static const char pci_device_1101_9100[] = "INI-9100/9100W";
-static const char pci_device_1101_9400[] = "INI-940";
-static const char pci_device_1101_9401[] = "INI-950";
-static const char pci_device_1101_9500[] = "360P";
-static const char pci_device_1101_9502[] = "Initio INI-9100UW Ultra Wide SCSI Controller INIC-950P chip";
+static const char pci_device_1101_9400[] = "INI-940 Fast Wide SCSI Adapter";
+static const char pci_device_1101_9401[] = "INI-935 Fast Wide SCSI Adapter";
+static const char pci_device_1101_9500[] = "INI-950 SCSI Adapter";
+static const char pci_device_1101_9502[] = "INI-950P Ultra Wide SCSI Adapter";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1102[] = "Creative Labs";
@@ -10147,12 +10563,19 @@ static const char pci_subsys_1102_0007_1
 static const char pci_subsys_1102_0007_1102_1006[] = "SB0410 SBLive! 24-bit";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1102_0007_1102_1012[] = "SB0790 X-Fi XA";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1102_0007_1462_1009[] = "K8N Diamond";
 #endif
 static const char pci_device_1102_0008[] = "SB0400 Audigy2 Value";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1102_0008_1102_0008[] = "EMU0404 Digital Audio System";
 #endif
+static const char pci_device_1102_0009[] = "[SB X-Fi Xtreme Audio] CA0110-IBG";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1102_0009_1102_0010[] = "[SB X-Fi Xtreme Audio] CA0110-IBG";
+#endif
 static const char pci_device_1102_4001[] = "SB Audigy FireWire Port";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1102_4001_1102_0010[] = "SB Audigy FireWire Port";
@@ -10224,7 +10647,7 @@ static const char pci_subsys_1102_8938_1
 #endif
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const char pci_vendor_1103[] = "Triones Technologies, Inc.";
+static const char pci_vendor_1103[] = "HighPoint Technologies, Inc.";
 static const char pci_device_1103_0003[] = "HPT343/345/346/363";
 static const char pci_device_1103_0004[] = "HPT366/368/370/370A/372/372N";
 #ifdef INIT_SUBSYS_INFO
@@ -10247,7 +10670,15 @@ static const char pci_device_1103_0006[]
 static const char pci_device_1103_0007[] = "HPT371/371N";
 static const char pci_device_1103_0008[] = "HPT374";
 static const char pci_device_1103_0009[] = "HPT372N";
+static const char pci_device_1103_1740[] = "RocketRAID 1740";
+static const char pci_device_1103_1742[] = "RocketRAID 1742";
+static const char pci_device_1103_2300[] = "RocketRAID 230x 4 Port SATA-II Controller";
+static const char pci_device_1103_2310[] = "RocketRAID 2310 4 Port SATA-II Controller";
+static const char pci_device_1103_2320[] = "RocketRAID 2320 SATA-II Controller";
+static const char pci_device_1103_2322[] = "RocketRAID 2322 SATA-II Controller";
 static const char pci_device_1103_2340[] = "RocketRAID 2340 16 Port SATA-II Controller";
+static const char pci_device_1103_3220[] = "RocketRAID 3220";
+static const char pci_device_1103_3320[] = "RocketRAID 3320";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1104[] = "RasterOps Corp.";
@@ -10270,6 +10701,7 @@ static const char pci_subsys_1105_8476_1
 #endif
 static const char pci_device_1105_8485[] = "EM8485 REALmagic DVD/MPEG-4 A/V Decoder";
 static const char pci_device_1105_8486[] = "EM8486 REALmagic DVD/MPEG-4 A/V Decoder";
+static const char pci_device_1105_c622[] = "EM8622L MPEG-4.10 (H.264) and SMPTE 421M (VC-1) A/V Decoder";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1106[] = "VIA Technologies, Inc.";
@@ -10690,6 +11122,9 @@ static const char pci_subsys_1106_3059_a
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3059_a0a0_0342[] = "AK86-L motherboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3059_aa01_1106[] = "Epia TC10000 Motherboard";
+#endif
 static const char pci_device_1106_3065[] = "VT6102 [Rhine-II]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3065_1043_80a1[] = "A7V8X-X Motherboard";
@@ -10707,6 +11142,9 @@ static const char pci_subsys_1106_3065_1
 static const char pci_subsys_1106_3065_13b9_1421[] = "LD-10/100AL PCI Fast Ethernet Adapter (rev.B)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3065_1462_7061[] = "MS-7061";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3065_1462_7181[] = "K8MM3-V mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10967,6 +11405,9 @@ static const char pci_device_1106_7205[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_7205_1458_d000[] = "Gigabyte GA-7VM400(A)M(F) Motherboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_7205_1462_7061[] = "MS-7061";
+#endif
 static const char pci_device_1106_7208[] = "PT890 Host Bridge";
 static const char pci_device_1106_7238[] = "K8T890 Host Bridge";
 static const char pci_device_1106_7258[] = "PT880 Host Bridge";
@@ -11595,6 +12036,9 @@ static const char pci_subsys_1131_7134_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7134_1894_fe01[] = "KNC One TV-Station RDS / Typhoon TV Tuner RDS";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7134_5168_0138[] = "FLY TV PRIME 34FM";
+#endif
 static const char pci_device_1131_7145[] = "SAA7145";
 static const char pci_device_1131_7146[] = "SAA7146";
 #ifdef INIT_SUBSYS_INFO
@@ -11702,7 +12146,7 @@ static const char pci_subsys_1131_9730_1
 static const char pci_vendor_1132[] = "Mitel Corp.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const char pci_vendor_1133[] = "Eicon Networks Corporation";
+static const char pci_vendor_1133[] = "Dialogic Corporation";
 static const char pci_device_1133_7901[] = "EiconCard S90";
 static const char pci_device_1133_7902[] = "EiconCard S90";
 static const char pci_device_1133_7911[] = "EiconCard S91";
@@ -11724,9 +12168,9 @@ static const char pci_device_1133_e007[]
 static const char pci_device_1133_e008[] = "Diva CT Lite S/T PCI";
 static const char pci_device_1133_e009[] = "Diva CT Lite U PCI";
 static const char pci_device_1133_e00a[] = "Diva ISDN+V.90 PCI";
-static const char pci_device_1133_e00b[] = "Diva 2.02 PCI S/T";
+static const char pci_device_1133_e00b[] = "Diva ISDN PCI 2.02";
 static const char pci_device_1133_e00c[] = "Diva 2.02 PCI U";
-static const char pci_device_1133_e00d[] = "Diva ISDN Pro 3.0 PCI";
+static const char pci_device_1133_e00d[] = "Diva Pro 3.0 PCI";
 static const char pci_device_1133_e00e[] = "Diva ISDN+CT S/T PCI Rev 2";
 static const char pci_device_1133_e010[] = "Diva Server BRI-2M PCI";
 #ifdef INIT_SUBSYS_INFO
@@ -11734,57 +12178,54 @@ static const char pci_subsys_1133_e010_1
 #endif
 static const char pci_device_1133_e011[] = "Diva Server BRI S/T Rev 2";
 static const char pci_device_1133_e012[] = "Diva Server 4BRI-8M PCI";
-static const char pci_device_1133_e013[] = "Diva Server 4BRI Rev 2";
+static const char pci_device_1133_e013[] = "4BRI";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e013_1133_1300[] = "Diva Server V-4BRI-8";
+static const char pci_subsys_1133_e013_1133_1300[] = "Diva V-4BRI-8 PCI v2";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e013_1133_e013[] = "Diva Server 4BRI-8M 2.0 PCI";
+static const char pci_subsys_1133_e013_1133_e013[] = "Diva 4BRI-8 PCI v2";
 #endif
 static const char pci_device_1133_e014[] = "Diva Server PRI-30M PCI";
-static const char pci_device_1133_e015[] = "DIVA Server PRI Rev 2";
-#ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e015_1133_e015[] = "Diva Server PRI 2.0 PCI";
-#endif
+static const char pci_device_1133_e015[] = "Diva PRI PCI v2";
 static const char pci_device_1133_e016[] = "Diva Server Voice 4BRI PCI";
 static const char pci_device_1133_e017[] = "Diva Server Voice 4BRI Rev 2";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1133_e017_1133_e017[] = "Diva Server Voice 4BRI-8M 2.0 PCI";
 #endif
-static const char pci_device_1133_e018[] = "Diva Server BRI-2M 2.0 PCI";
+static const char pci_device_1133_e018[] = "BRI";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e018_1133_1800[] = "Diva Server V-BRI-2";
+static const char pci_subsys_1133_e018_1133_1800[] = "Diva V-BRI-2 PCI v2";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e018_1133_e018[] = "Diva Server BRI-2M 2.0 PCI";
+static const char pci_subsys_1133_e018_1133_e018[] = "Diva BRI-2 PCI v2";
 #endif
 static const char pci_device_1133_e019[] = "Diva Server Voice PRI Rev 2";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1133_e019_1133_e019[] = "Diva Server Voice PRI 2.0 PCI";
 #endif
-static const char pci_device_1133_e01a[] = "Diva Server 2FX";
+static const char pci_device_1133_e01a[] = "Diva BRI-2FX PCI v2";
 static const char pci_device_1133_e01b[] = "Diva Server Voice BRI-2M 2.0 PCI";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1133_e01b_1133_e01b[] = "Diva Server Voice BRI-2M 2.0 PCI";
 #endif
-static const char pci_device_1133_e01c[] = "Diva Server PRI Rev 3";
+static const char pci_device_1133_e01c[] = "PRI";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e01c_1133_1c01[] = "Diva Server PRI/E1/T1-8";
+static const char pci_subsys_1133_e01c_1133_1c01[] = "Diva PRI/E1/T1-8 PCI v3";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e01c_1133_1c02[] = "Diva Server PRI/T1-24";
+static const char pci_subsys_1133_e01c_1133_1c02[] = "Diva PRI/T1-24 PCI(e) v3";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e01c_1133_1c03[] = "Diva Server PRI/E1-30";
+static const char pci_subsys_1133_e01c_1133_1c03[] = "Diva PRI/E1-30 PCI(e) v3";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e01c_1133_1c04[] = "Diva Server PRI/E1/T1";
+static const char pci_subsys_1133_e01c_1133_1c04[] = "Diva PRI/E1/T1-CTI PCI(e) v3";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e01c_1133_1c05[] = "Diva Server V-PRI/T1-24";
+static const char pci_subsys_1133_e01c_1133_1c05[] = "Diva V-PRI/T1-24 PCI(e) v3";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e01c_1133_1c06[] = "Diva Server V-PRI/E1-30";
+static const char pci_subsys_1133_e01c_1133_1c06[] = "Diva V-PRI/E1-30 PCI(e) v3";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1133_e01c_1133_1c07[] = "Diva Server PRI/E1/T1-8 Cornet NQ";
@@ -11804,26 +12245,58 @@ static const char pci_subsys_1133_e01c_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1133_e01c_1133_1c0c[] = "Diva Server V-PRI/E1-30 Cornet NQ";
 #endif
-static const char pci_device_1133_e01e[] = "Diva Server 2PRI";
-static const char pci_device_1133_e020[] = "Diva Server 4PRI";
-static const char pci_device_1133_e022[] = "Diva Server Analog-2P";
-static const char pci_device_1133_e024[] = "Diva Server Analog-4P";
+static const char pci_device_1133_e01e[] = "2PRI";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e01e_1133_1e01[] = "Diva 2PRI/E1/T1-60 PCI v1";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e01e_1133_e01e[] = "Diva V-2PRI/E1/T1-60 PCI v1";
+#endif
+static const char pci_device_1133_e020[] = "4PRI";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e020_1133_2001[] = "Diva 4PRI/E1/T1-120 PCI v1";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e020_1133_e020[] = "Diva V-4PRI/E1/T1-120 PCI v1";
+#endif
+static const char pci_device_1133_e022[] = "Analog-2";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e024_1133_2400[] = "Diva Server V-Analog-4P";
+static const char pci_subsys_1133_e022_1133_2200[] = "Diva V-Analog-2 PCI v1";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e024_1133_e024[] = "Diva Server Analog-4P";
+static const char pci_subsys_1133_e022_1133_e022[] = "Diva Analog-2 PCI v1";
 #endif
-static const char pci_device_1133_e028[] = "Diva Server Analog-8P";
+static const char pci_device_1133_e024[] = "Analog-4";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e028_1133_2800[] = "Diva Server V-Analog-8P";
+static const char pci_subsys_1133_e024_1133_2400[] = "Diva V-Analog-4 PCI v1";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1133_e028_1133_e028[] = "Diva Server Analog-8P";
+static const char pci_subsys_1133_e024_1133_e024[] = "Diva Analog-4 PCI v1";
 #endif
-static const char pci_device_1133_e02a[] = "Diva Server IPM-300";
-static const char pci_device_1133_e02c[] = "Diva Server IPM-600";
-static const char pci_device_1133_e032[] = "Diva BRI-2 PCIe r1";
+static const char pci_device_1133_e028[] = "Analog-8";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e028_1133_2800[] = "Diva V-Analog-8 PCI v1";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e028_1133_e028[] = "Diva Analog-8 PCI v1";
+#endif
+static const char pci_device_1133_e02a[] = "Diva IPM-300 PCI v1";
+static const char pci_device_1133_e02c[] = "Diva IPM-600 PCI v1";
+static const char pci_device_1133_e02e[] = "4BRI";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e02e_1133_2e01[] = "Diva V-4BRI-8 PCIe v2";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e02e_1133_e02e[] = "Diva 4BRI-8 PCIe v2";
+#endif
+static const char pci_device_1133_e032[] = "BRI";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e032_1133_3201[] = "Diva V-BRI-2 PCIe v2";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1133_e032_1133_e032[] = "Diva BRI-2 PCIe v2";
+#endif
+static const char pci_device_1133_e034[] = "Diva BRI-CTI PCI v2";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1134[] = "Mercury Computer Systems";
@@ -12195,6 +12668,9 @@ static const char pci_device_114f_00c8[]
 static const char pci_device_114f_00c9[] = "Digi Neo 2 DB9 PRI";
 static const char pci_device_114f_00ca[] = "Digi Neo 2 RJ45";
 static const char pci_device_114f_00cb[] = "Digi Neo 2 RJ45 PRI";
+static const char pci_device_114f_00cc[] = "Digi Neo 1 422";
+static const char pci_device_114f_00cd[] = "Digi Neo 1 422 485";
+static const char pci_device_114f_00ce[] = "Digi Neo 2 422 485";
 static const char pci_device_114f_00d0[] = "ClassicBoard 4 422";
 static const char pci_device_114f_00d1[] = "ClassicBoard 8 422";
 static const char pci_device_114f_6001[] = "Avanstar";
@@ -12625,6 +13101,9 @@ static const char pci_subsys_1180_0476_1
 static const char pci_subsys_1180_0476_10f7_8338[] = "Panasonic CF-Y5 laptop";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0476_144d_c005[] = "X10 Laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0476_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -12665,6 +13144,9 @@ static const char pci_subsys_1180_0552_1
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0552_144d_c005[] = "X10 Laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0552_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -12674,6 +13156,11 @@ static const char pci_device_1180_0554[]
 static const char pci_device_1180_0575[] = "R5C575 SD Bus Host Adapter";
 static const char pci_device_1180_0576[] = "R5C576 SD Bus Host Adapter";
 static const char pci_device_1180_0592[] = "R5C592 Memory Stick Bus Host Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0592_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0592_1043_1967[] = "V6800V";
 #endif
@@ -12698,6 +13185,11 @@ static const char pci_subsys_1180_0822_1
 static const char pci_subsys_1180_0822_1028_01a2[] = "Inspiron 9200";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0822_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0822_1043_1967[] = "ASUS V6800V";
 #endif
@@ -12711,8 +13203,24 @@ static const char pci_subsys_1180_0822_1
 static const char pci_subsys_1180_0822_17aa_201d[] = "Thinkpad X60s";
 #endif
 static const char pci_device_1180_0832[] = "R5C832 IEEE 1394 Controller";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0832_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_1180_0841[] = "R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394";
+static const char pci_device_1180_0843[] = "R5C843 MMC Host Controller";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0843_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_1180_0852[] = "xD-Picture Card Controller";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0852_103c_30b7[] = "Presario V6133CL";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0852_1043_1967[] = "V6800V";
 #endif
@@ -12770,10 +13278,14 @@ static const char pci_device_1186_3a12[]
 static const char pci_device_1186_3a13[] = "AirPlus DWL-G520 Wireless PCI Adapter(rev.B)";
 static const char pci_device_1186_3a14[] = "AirPremier DWL-AG530 Wireless PCI Adapter";
 static const char pci_device_1186_3a63[] = "AirXpert DWL-AG660 Wireless Cardbus Adapter";
+static const char pci_device_1186_3c00[] = "D-link DWL-G650X";
 static const char pci_device_1186_4000[] = "DL2000-based Gigabit Ethernet";
+static const char pci_device_1186_4001[] = "DGE-550SX PCI-X Gigabit Ethernet Adapter";
 static const char pci_device_1186_4300[] = "DGE-528T Gigabit Ethernet Adapter";
 static const char pci_device_1186_4800[] = "DGE-530T Gigabit Ethernet Adapter (rev 11)";
+static const char pci_device_1186_4b00[] = "DGE-560T PCI Express Gigabit Ethernet Adapter";
 static const char pci_device_1186_4b01[] = "DGE-530T Gigabit Ethernet Adapter (rev 11)";
+static const char pci_device_1186_4b02[] = "DGE-560SX PCI Express Gigabit Ethernet Adapter";
 static const char pci_device_1186_4c00[] = "Gigabit Ethernet Adapter";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1186_4c00_1186_4c00[] = "DGE-530T Gigabit Ethernet Adapter";
@@ -12942,7 +13454,10 @@ static const char pci_device_11ab_1fa6[]
 static const char pci_device_11ab_1fa7[] = "88W8310 and 88W8000G [Libertas] 802.11g client chipset";
 static const char pci_device_11ab_1faa[] = "88w8335 [Libertas] 802.11b/g Wireless";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_11ab_1faa_1385_4e00[] = "WG511 v2 54MBit/ Wireless PC-Card";
+static const char pci_subsys_11ab_1faa_1385_4e00[] = "WG511v2 54 Mbps Wireless PC Card";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_11ab_1faa_1385_6b00[] = "WG311v3 802.11g Wireless PCI Adapter";
 #endif
 static const char pci_device_11ab_2a01[] = "88W8335 [Libertas] 802.11b/g Wireless";
 static const char pci_device_11ab_4320[] = "88E8001 Gigabit Ethernet Controller";
@@ -13116,6 +13631,8 @@ static const char pci_subsys_11ab_4351_1
 static const char pci_subsys_11ab_4351_1854_0020[] = "Marvell 88E8036 Fast Ethernet Controller (LGE)";
 #endif
 static const char pci_device_11ab_4352[] = "88E8038 PCI-E Fast Ethernet Controller";
+static const char pci_device_11ab_4353[] = "88E8039 PCI-E Fast Ethernet Controller";
+static const char pci_device_11ab_4356[] = "88EC033 Ethernet Controller";
 static const char pci_device_11ab_4360[] = "88E8052 PCI-E ASF Gigabit Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_11ab_4360_1043_8134[] = "Marvell 88E8052 Gigabit Ethernet Controller (Asus)";
@@ -13280,6 +13797,12 @@ static const char pci_subsys_11ab_4362_a
 #endif
 static const char pci_device_11ab_4363[] = "88E8055 PCI-E Gigabit Ethernet Controller";
 static const char pci_device_11ab_4364[] = "88E8056 PCI-E Gigabit Ethernet Controller";
+static const char pci_device_11ab_4366[] = "88EC036 PCI-E Gigabit Ethernet Controller";
+static const char pci_device_11ab_4367[] = "88EC032 Ethernet Controller";
+static const char pci_device_11ab_4368[] = "88EC034 Ethernet Controller";
+static const char pci_device_11ab_4369[] = "88EC042 Ethernet Controller";
+static const char pci_device_11ab_436a[] = "Marvell Yukon 88E8058 PCI-E Gigabit Ethernet Controller";
+static const char pci_device_11ab_436b[] = "88E8071 PCI-E Gigabit Ethernet Controller";
 static const char pci_device_11ab_4611[] = "GT-64115 System Controller";
 static const char pci_device_11ab_4620[] = "GT-64120/64120A/64121A System Controller";
 static const char pci_device_11ab_4801[] = "GT-48001";
@@ -13289,8 +13812,10 @@ static const char pci_device_11ab_5041[]
 static const char pci_device_11ab_5080[] = "MV88SX5080 8-port SATA I PCI-X Controller";
 static const char pci_device_11ab_5081[] = "MV88SX5081 8-port SATA I PCI-X Controller";
 static const char pci_device_11ab_6041[] = "MV88SX6041 4-port SATA II PCI-X Controller";
+static const char pci_device_11ab_6042[] = "88SX6042 PCI-X 4-Port SATA-II";
 static const char pci_device_11ab_6081[] = "MV88SX6081 8-port SATA II PCI-X Controller";
 static const char pci_device_11ab_6101[] = "88SE6101 single-port PATA133 interface";
+static const char pci_device_11ab_6121[] = "88SE6121 SATA II Controller";
 static const char pci_device_11ab_6141[] = "88SE614x SATA II PCI-E controller";
 static const char pci_device_11ab_6145[] = "88SE6145 SATA II PCI-E controller";
 static const char pci_device_11ab_6450[] = "64560 System Controller";
@@ -13300,6 +13825,7 @@ static const char pci_device_11ab_6480[]
 static const char pci_subsys_11ab_6480_1775_c200[] = "C2K CompactPCI single board computer";
 #endif
 static const char pci_device_11ab_6485[] = "MV64460/64461/64462 System Controller, Revision B";
+static const char pci_device_11ab_7042[] = "88SX7042 PCI-e 4-port SATA-II";
 static const char pci_device_11ab_f003[] = "GT-64010 Primary Image Piranha Image Generator";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -13963,7 +14489,10 @@ static const char pci_vendor_11f7[] = "S
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_11f8[] = "PMC-Sierra Inc.";
+static const char pci_device_11f8_7364[] = "PM7364 [FREEDM - 32 Frame Engine & Datalink Mgr]";
 static const char pci_device_11f8_7375[] = "PM7375 [LASAR-155 ATM SAR]";
+static const char pci_device_11f8_7384[] = "PM7384 [FREEDM - 84P672 Frm Engine & Datalink Mgr]";
+static const char pci_device_11f8_8000[] = "PM8000  [SPC - SAS Protocol Controller]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_11f9[] = "I-Cube Inc";
@@ -13997,6 +14526,15 @@ static const char pci_device_11fe_000c[]
 static const char pci_device_11fe_000d[] = "RocketModem 4-port";
 static const char pci_device_11fe_000e[] = "RocketPort Plus 2 port RS232";
 static const char pci_device_11fe_000f[] = "RocketPort Plus 2 port RS422";
+static const char pci_device_11fe_0040[] = "RocketPort Infinity Octa, 8port, RJ45";
+static const char pci_device_11fe_0041[] = "RocketPort Infinity 32port, External Interface";
+static const char pci_device_11fe_0042[] = "RocketPort Infinity 8port, External Interface";
+static const char pci_device_11fe_0043[] = "RocketPort Infinity 16port, External Interface";
+static const char pci_device_11fe_0044[] = "RocketPort Infinity Quad, 4port, DB";
+static const char pci_device_11fe_0045[] = "RocketPort Infinity Octa, 8port, DB";
+static const char pci_device_11fe_0047[] = "RocketPort Infinity 4port, RJ45";
+static const char pci_device_11fe_004f[] = "RocketPort Infinity 2port, SMPTE";
+static const char pci_device_11fe_0052[] = "RocketPort Infinity Octa, 8port, SMPTE";
 static const char pci_device_11fe_0801[] = "RocketPort UPCI 32 port w/external I/F";
 static const char pci_device_11fe_0802[] = "RocketPort UPCI 8 port w/external I/F";
 static const char pci_device_11fe_0803[] = "RocketPort UPCI 16 port w/external I/F";
@@ -14150,6 +14688,7 @@ static const char pci_device_1217_7120[]
 static const char pci_device_1217_7130[] = "Integrated MS/xD Controller";
 static const char pci_device_1217_7134[] = "OZ711MP1/MS1 MemoryCardBus Controller";
 static const char pci_device_1217_7135[] = "Cardbus bridge";
+static const char pci_device_1217_7136[] = "OZ711SP1 Memory CardBus Controller";
 static const char pci_device_1217_71e2[] = "OZ711E2 SmartCardBus Controller";
 static const char pci_device_1217_7212[] = "OZ711M2 4-in-1 MemoryCardBus Controller";
 static const char pci_device_1217_7213[] = "OZ6933E CardBus Controller";
@@ -14313,6 +14852,11 @@ static const char pci_device_1220_1220[]
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1221[] = "Contec Co., Ltd";
+static const char pci_device_1221_9172[] = "PO-64L(PCI)H [Isolated Digital Output Board for PCI]";
+static const char pci_device_1221_91a2[] = "PO-32L(PCI)H [Isolated Digital Output Board for PCI]";
+static const char pci_device_1221_91c3[] = "DA16-16(LPCI)L [Un-insulated highly precise analog output board for Low Profile PCI]";
+static const char pci_device_1221_b152[] = "DIO-96D2-LPCI";
+static const char pci_device_1221_c103[] = "ADA16-32/2(PCI)F [High-Speed Analog I/O Board for PCI]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1222[] = "Ancor Communications, Inc.";
@@ -14591,7 +15135,7 @@ static const char pci_device_125c_0640[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_125d[] = "ESS Technology";
 static const char pci_device_125d_0000[] = "ES336H Fax Modem (Early Model)";
-static const char pci_device_125d_1948[] = "Solo?";
+static const char pci_device_125d_1948[] = "ES1948 Maestro-1";
 static const char pci_device_125d_1968[] = "ES1968 Maestro 2";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -14765,6 +15309,9 @@ static const char pci_subsys_1260_3890_1
 static const char pci_subsys_1260_3890_1113_8201[] = "T-Com T-Sinus 154pcicard Wireless PCI Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1260_3890_1113_b301[] = "T-Sinus 154card Cardbus";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1260_3890_1113_ee03[] = "SMC2802W V2 Wireless PCI Adapter [ISL3886]";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -15119,6 +15666,7 @@ static const char pci_vendor_1277[] = "C
 static const char pci_vendor_1278[] = "Transtech Parallel Systems Ltd.";
 static const char pci_device_1278_0701[] = "TPE3/TM3 PowerPC Node";
 static const char pci_device_1278_0710[] = "TPE5 PowerPC PCI board";
+static const char pci_device_1278_1101[] = "TS-C43 card with 4 ADSP-TS101 processors";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1279[] = "Transmeta Corporation";
@@ -15744,6 +16292,9 @@ static const char pci_subsys_12b9_1008_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_12b9_1008_12b9_00ad[] = "USR 56k Internal FAX Modem (Model 5610)";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_12b9_1008_12b9_baba[] = "USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk]";
+#endif
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_12ba[] = "BittWare, Inc.";
@@ -15826,6 +16377,10 @@ static const char pci_vendor_12c6[] = "M
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_12c7[] = "Dialogic Corp";
+static const char pci_device_12c7_0546[] = "Springware D/120JCT-LS";
+static const char pci_device_12c7_0647[] = "Springware D/240JCT-T1";
+static const char pci_device_12c7_0676[] = "Springware D/41JCT-LS";
+static const char pci_device_12c7_0685[] = "Springware D/480JCT-2T1";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_12c8[] = "G Force Co, Ltd";
@@ -15953,6 +16508,9 @@ static const char pci_device_12d9_1078[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_12d9_1078_12d9_000d[] = "Prosody X PCI";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_12d9_1078_12d9_000e[] = "Prosody X cPCI";
+#endif
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_12da[] = "True Time Inc.";
@@ -16261,7 +16819,21 @@ static const char pci_device_1307_004c[]
 static const char pci_device_1307_004d[] = "PCI-QUAD04";
 static const char pci_device_1307_0052[] = "PCI-DAS4020/12";
 static const char pci_device_1307_0054[] = "PCI-DIO96";
+static const char pci_device_1307_005d[] = "PCI-DAS6023";
 static const char pci_device_1307_005e[] = "PCI-DAS6025";
+static const char pci_device_1307_005f[] = "PCI-DAS6030";
+static const char pci_device_1307_0060[] = "PCI-DAS6031";
+static const char pci_device_1307_0061[] = "PCI-DAS6032";
+static const char pci_device_1307_0062[] = "PCI-DAS6033";
+static const char pci_device_1307_0063[] = "PCI-DAS6034";
+static const char pci_device_1307_0064[] = "PCI-DAS6035";
+static const char pci_device_1307_0065[] = "PCI-DAS6040";
+static const char pci_device_1307_0066[] = "PCI-DAS6052";
+static const char pci_device_1307_0067[] = "PCI-DAS6070";
+static const char pci_device_1307_0068[] = "PCI-DAS6071";
+static const char pci_device_1307_006f[] = "PCI-DAS6036";
+static const char pci_device_1307_0078[] = "PCI-DAS6013";
+static const char pci_device_1307_0079[] = "PCI-DAS6014";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1308[] = "Jato Technologies Inc.";
@@ -16619,13 +17191,16 @@ static const char pci_device_1360_0101[]
 static const char pci_device_1360_0102[] = "PCI509 DCF77 Radio Clock";
 static const char pci_device_1360_0103[] = "PCI510 DCF77 Radio Clock";
 static const char pci_device_1360_0104[] = "PCI511 DCF77 Radio Clock";
+static const char pci_device_1360_0105[] = "PEX511 DCF77 Radio Clock (PCI Express)";
 static const char pci_device_1360_0201[] = "GPS167PCI GPS Receiver";
 static const char pci_device_1360_0202[] = "GPS168PCI GPS Receiver";
 static const char pci_device_1360_0203[] = "GPS169PCI GPS Receiver";
 static const char pci_device_1360_0204[] = "GPS170PCI GPS Receiver";
+static const char pci_device_1360_0205[] = "GPS170PEX GPS Receiver (PCI Express)";
 static const char pci_device_1360_0301[] = "TCR510PCI IRIG Timecode Reader";
 static const char pci_device_1360_0302[] = "TCR167PCI IRIG Timecode Reader";
 static const char pci_device_1360_0303[] = "TCR511PCI IRIG Timecode Reader";
+static const char pci_device_1360_0304[] = "TCR511PEX IRIG Timecode Reader (PCI Express)";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1361[] = "Soliton Systems K.K.";
@@ -16789,7 +17364,7 @@ static const char pci_device_1385_4800[]
 static const char pci_device_1385_4900[] = "WG311v1 54 Mbps Wireless PCI Adapter";
 static const char pci_device_1385_4a00[] = "WAG311 802.11a/g Wireless PCI Adapter";
 static const char pci_device_1385_4b00[] = "WG511T 108 Mbps Wireless PC Card";
-static const char pci_device_1385_4c00[] = "WG311v2 54 Mbps Wireless PCI Adapter";
+static const char pci_device_1385_4c00[] = "WG311v2 54 Mbps Wireless-G PCI Adapter";
 static const char pci_device_1385_4d00[] = "WG311T 108 Mbps Wireless PCI Adapter";
 static const char pci_device_1385_4e00[] = "WG511v2 54 Mbps Wireless PC Card";
 static const char pci_device_1385_4f00[] = "WG511U Double 108 Mbps  Wireless PC Card";
@@ -16847,10 +17422,29 @@ static const char pci_vendor_1392[] = "M
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1393[] = "Moxa Technologies Co Ltd";
+static const char pci_device_1393_0001[] = "UC7000 Serial";
+static const char pci_device_1393_1020[] = "CP102 (2-port RS-232 PCI)";
+static const char pci_device_1393_1021[] = "CP102UL (2-port RS-232 Universal PCI)";
+static const char pci_device_1393_1022[] = "CP102U (2-port RS-232 Universal PCI)";
 static const char pci_device_1393_1040[] = "Smartio C104H/PCI";
+static const char pci_device_1393_1041[] = "CP104U (4-port RS-232 Universal PCI)";
+static const char pci_device_1393_1042[] = "CP104JU (4-port RS-232 Universal PCI)";
+static const char pci_device_1393_1043[] = "CP104EL (4-port RS-232 Smart PCI Express)";
+static const char pci_device_1393_1044[] = "POS104UL (4-port RS-232 Universal PCI)";
+static const char pci_device_1393_1080[] = "CB108 (8-port RS-232 PC/104-plus Module)";
+static const char pci_device_1393_1140[] = "CT-114 series";
 static const char pci_device_1393_1141[] = "Industrio CP-114";
+static const char pci_device_1393_1142[] = "CB114 (4-port RS-232/422/485 PC/104-plus Module)";
+static const char pci_device_1393_1180[] = "CP118U (8-port RS-232/422/485 Smart Universal PCI)";
+static const char pci_device_1393_1181[] = "CP118EL (8-port RS-232/422/485 Smart PCI Express)";
+static const char pci_device_1393_1320[] = "CP132 (2-port RS-422/485 PCI)";
+static const char pci_device_1393_1321[] = "CP132U (2-Port RS-422/485 Universal PCI)";
+static const char pci_device_1393_1340[] = "CP134U (4-Port RS-422/485 Universal PCI)";
+static const char pci_device_1393_1341[] = "CB134I (4-port RS-422/485 PC/104-plus Module)";
+static const char pci_device_1393_1380[] = "CP138U (8-port RS-232/422/485 Smart Universal PCI)";
 static const char pci_device_1393_1680[] = "Smartio C168H/PCI";
 static const char pci_device_1393_1681[] = "CP-168U V2 Smart Serial Board (8-port RS-232)";
+static const char pci_device_1393_1682[] = "CP168EL (8-port RS-232 Smart PCI Express)";
 static const char pci_device_1393_2040[] = "Intellio CP-204J";
 static const char pci_device_1393_2180[] = "Intellio C218 Turbo PCI";
 static const char pci_device_1393_3200[] = "Intellio C320 Turbo PCI";
@@ -17057,6 +17651,7 @@ static const char pci_device_13c1_1004[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_13c2[] = "Technotrend Systemtechnik GmbH";
 static const char pci_device_13c2_000e[] = "Technotrend/Hauppauge DVB card rev2.3";
+static const char pci_device_13c2_1019[] = "TTechnoTrend-budget DVB S2-3200";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_13c3[] = "Janz Computer AG";
@@ -17212,6 +17807,7 @@ static const char pci_vendor_13ef[] = "C
 static const char pci_vendor_13f0[] = "Sundance Technology Inc / IC Plus Corp";
 static const char pci_device_13f0_0200[] = "IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY";
 static const char pci_device_13f0_0201[] = "ST201 Sundance Ethernet";
+static const char pci_device_13f0_1021[] = "TC9020 Gigabit Ethernet";
 static const char pci_device_13f0_1023[] = "IP1000 Family Gigabit Ethernet";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -17260,6 +17856,9 @@ static const char pci_subsys_13f6_0111_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_13f6_0111_1681_a000[] = "Gamesurround MUSE XL";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_13f6_0111_270f_1103[] = "CT-7NJS Ultra motherboard";
+#endif
 static const char pci_device_13f6_0211[] = "CM8738";
 static const char pci_device_13f6_9880[] = "CM9880";
 #endif
@@ -17486,6 +18085,17 @@ static const char pci_vendor_1413[] = "A
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1414[] = "Microsoft Corporation";
+static const char pci_device_1414_5801[] = "XMA Decoder (Xenon)";
+static const char pci_device_1414_5802[] = "SATA Controller - CdRom (Xenon)";
+static const char pci_device_1414_5803[] = "SATA Controller - Disk (Xenon)";
+static const char pci_device_1414_5804[] = "OHCI Controller 0 (Xenon)";
+static const char pci_device_1414_5805[] = "EHCI Controller 0 (Xenon)";
+static const char pci_device_1414_5806[] = "OHCI Controller 1 (Xenon)";
+static const char pci_device_1414_5807[] = "EHCI Controller 1 (Xenon)";
+static const char pci_device_1414_580a[] = "Fast Ethernet Adapter (Xenon)";
+static const char pci_device_1414_580b[] = "Secure Flash Controller (Xenon)";
+static const char pci_device_1414_580d[] = "System Management Controller (Xenon)";
+static const char pci_device_1414_5811[] = "Xenos GPU (Xenon)";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1415[] = "Oxford Semiconductor Ltd";
@@ -17796,9 +18406,11 @@ static const char pci_device_1462_5501[]
 static const char pci_device_1462_6819[] = "Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [MSI CB54G]";
 static const char pci_device_1462_6825[] = "PCI Card wireless 11g [PC54G]";
 static const char pci_device_1462_6834[] = "RaLink RT2500 802.11g [PC54G2]";
-static const char pci_device_1462_7125[] = "K8N motherboard";
+static const char pci_device_1462_7125[] = "MS-7125 [K8N Neo4 Platinum]";
 static const char pci_device_1462_7235[] = "P965 Neo MS-7235 mainboard";
 static const char pci_device_1462_7242[] = "K9AGM RS485 Motherboard";
+static const char pci_device_1462_7250[] = "MS-7250 Motherboard [K9N Platinum SLI/non-SLI]";
+static const char pci_device_1462_7327[] = "K9AGM2-FIH Motherboard";
 static const char pci_device_1462_8725[] = "NVIDIA NV25 [GeForce4 Ti 4600] VGA Adapter";
 static const char pci_device_1462_9000[] = "NVIDIA NV28 [GeForce4 Ti 4800] VGA Adapter";
 static const char pci_device_1462_9110[] = "GeFORCE FX5200";
@@ -18209,6 +18821,8 @@ static const char pci_vendor_14d5[] = "N
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_14d6[] = "Accusys Inc";
+static const char pci_device_14d6_6101[] = "ACS-61xxx, PCIe to SAS/SATA RAID HBA";
+static const char pci_device_14d6_6201[] = "ACS-62xxx, External PCIe to SAS/SATA RAID controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_14d7[] = "Hirakawa Hewtech Corp";
@@ -18382,7 +18996,7 @@ static const char pci_subsys_14e4_1645_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_14e4_1645_103c_128a[] = "1000Base-T (PCI) [A7061A]";
+static const char pci_subsys_14e4_1645_103c_128a[] = "BCM5701 1000Base-T (HP, OEM 3COM)";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
@@ -18527,6 +19141,7 @@ static const char pci_subsys_14e4_1648_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_1648_1734_100b[] = "Primergy RX300";
 #endif
+static const char pci_device_14e4_1649[] = "NetXtreme BCM5704S_2 Gigabit Ethernet";
 static const char pci_device_14e4_164a[] = "NetXtreme II BCM5706 Gigabit Ethernet";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -18572,6 +19187,7 @@ static const char pci_subsys_14e4_1654_1
 static const char pci_subsys_14e4_1654_103c_3226[] = "NC150T 4-port Gigabit Combo Switch & Adapter";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_device_14e4_1658[] = "NetXtreme BCM5720 Gigabit Ethernet";
 static const char pci_device_14e4_1659[] = "NetXtreme BCM5721 Gigabit Ethernet PCI Express";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_1659_1014_02c6[] = "eServer xSeries server mainboard";
@@ -18638,9 +19254,15 @@ static const char pci_device_14e4_166e[]
 static const char pci_device_14e4_1672[] = "NetXtreme BCM5754M Gigabit Ethernet PCI Express";
 static const char pci_device_14e4_1673[] = "NetXtreme BCM5755M Gigabit Ethernet PCI Express";
 static const char pci_device_14e4_1674[] = "NetXtreme BCM5756ME Gigabit Ethernet PCI Express";
+static const char pci_device_14e4_1676[] = "NetXtreme BCM5750 Gigabit Ethernet";
 static const char pci_device_14e4_1677[] = "NetXtreme BCM5751 Gigabit Ethernet PCI Express";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_1677_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_1677_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -18667,6 +19289,9 @@ static const char pci_subsys_14e4_1677_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_1677_1734_105d[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_1677_3007_103c[] = "HP DC7100 USFF";
+#endif
 static const char pci_device_14e4_1678[] = "NetXtreme BCM5715 Gigabit Ethernet";
 static const char pci_device_14e4_1679[] = "NetXtreme BCM5715S Gigabit Ethernet";
 #endif
@@ -18686,7 +19311,13 @@ static const char pci_subsys_14e4_1679_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_14e4_167a[] = "NetXtreme BCM5754 Gigabit Ethernet PCI Express";
 static const char pci_device_14e4_167b[] = "NetXtreme BCM5755 Gigabit Ethernet PCI Express";
+static const char pci_device_14e4_167c[] = "NetXtreme BCM5750M Gigabit Ethernet";
 static const char pci_device_14e4_167d[] = "NetXtreme BCM5751M Gigabit Ethernet PCI Express";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_167d_103c_0940[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_167d_17aa_2081[] = "Thinkpad R60e model 0657";
 #endif
@@ -19381,8 +20012,9 @@ static const char pci_device_14f1_2f02[]
 static const char pci_device_14f1_2f11[] = "HSF 56k HSFi Modem";
 static const char pci_device_14f1_2f20[] = "HSF 56k Data/Fax Modem";
 static const char pci_device_14f1_2f30[] = "HSF 56k Data/Fax Modem";
-static const char pci_device_14f1_5045[] = "HDAUDIO with SmartCP";
+static const char pci_device_14f1_5045[] = "CX20549 (Venice)";
 static const char pci_device_14f1_5047[] = "High Definition Audio [Waikiki]";
+static const char pci_device_14f1_5b7a[] = "CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder";
 static const char pci_device_14f1_8234[] = "RS8234 ATM SAR Controller [ServiceSAR Plus]";
 static const char pci_device_14f1_8800[] = "CX23880/1/2/3 PCI Video and Audio Decoder";
 #ifdef INIT_SUBSYS_INFO
@@ -19509,10 +20141,16 @@ static const char pci_subsys_14f1_8800_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14f1_8800_7063_3000[] = "pcHDTV HD3000 HDTV";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14f1_8800_7063_5500[] = "pcHDTV HD-5500";
+#endif
 static const char pci_device_14f1_8801[] = "CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14f1_8801_0070_2801[] = "Hauppauge WinTV 28xxx (Roslyn) models";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14f1_8801_7063_5500[] = "pcHDTV HD-5500";
+#endif
 static const char pci_device_14f1_8802[] = "CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14f1_8802_0070_2801[] = "Hauppauge WinTV 28xxx (Roslyn) models";
@@ -19556,10 +20194,16 @@ static const char pci_subsys_14f1_8802_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14f1_8802_7063_3000[] = "pcHDTV HD3000 HDTV";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14f1_8802_7063_5500[] = "pcHDTV HD-5500";
+#endif
 static const char pci_device_14f1_8804[] = "CX23880/1/2/3 PCI Video and Audio Decoder [IR Port]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14f1_8804_0070_9002[] = "Nova-T DVB-T Model 909";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14f1_8804_7063_5500[] = "pcHDTV HD-5500";
+#endif
 static const char pci_device_14f1_8811[] = "CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14f1_8811_0070_3401[] = "Hauppauge WinTV 34xxx models";
@@ -19856,6 +20500,9 @@ static const char pci_device_1524_0530[]
 static const char pci_device_1524_0550[] = "ENE PCI Secure Digital Card Reader Controller";
 static const char pci_device_1524_0551[] = "SD/MMC Card Reader Controller";
 static const char pci_device_1524_0610[] = "PCI Smart Card Reader Controller";
+static const char pci_device_1524_0730[] = "ENE PCI Memory Stick Card Reader Controller";
+static const char pci_device_1524_0750[] = "ENE PCI SmartMedia / xD Card Reader Controller";
+static const char pci_device_1524_0751[] = "ENE PCI Secure Digital / MMC Card Reader Controller";
 static const char pci_device_1524_1211[] = "CB1211 Cardbus Controller";
 static const char pci_device_1524_1225[] = "CB1225 Cardbus Controller";
 static const char pci_device_1524_1410[] = "CB1410 Cardbus Controller";
@@ -20525,6 +21172,7 @@ static const char pci_vendor_15e7[] = "G
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_15e8[] = "National Datacomm Corp";
 static const char pci_device_15e8_0130[] = "Wireless PCI Card";
+static const char pci_device_15e8_0131[] = "NCP130A2 Wireless NIC";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_15e9[] = "Pacific Digital Corp";
@@ -20670,6 +21318,7 @@ static const char pci_device_163c_5449[]
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1657[] = "Brocade Communications Systems, Inc.";
+static const char pci_device_1657_0646[] = "Brocade 400 4Gb PCIe FC HBA";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_165a[] = "Epix Inc";
@@ -20926,6 +21575,7 @@ static const char pci_vendor_16be[] = "C
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_16c6[] = "Micrel-Kendin";
 static const char pci_device_16c6_8695[] = "Centaur KS8695 ARM processor";
+static const char pci_device_16c6_8842[] = "KSZ8842-PMQL 2-Port Ethernet Switch";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_16c8[] = "Octasic Inc.";
@@ -21028,6 +21678,9 @@ static const char pci_device_170b_0100[]
 static const char pci_vendor_170c[] = "YottaYotta Inc.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1719[] = "EZChip Technologies";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1725[] = "Vitesse Semiconductor";
 static const char pci_device_1725_7174[] = "VSC7174 PCI/PCI-X Serial ATA Host Bus Controller";
 #endif
@@ -21039,6 +21692,7 @@ static const char pci_device_172a_13c8[]
 static const char pci_vendor_1734[] = "Fujitsu Siemens Computer GmbH";
 static const char pci_device_1734_1078[] = "Amilo Pro v2010";
 static const char pci_device_1734_1085[] = "Celsius M450";
+static const char pci_device_1734_1098[] = "Amilo L 1310G";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1737[] = "Linksys";
@@ -21089,10 +21743,14 @@ static const char pci_vendor_175c[] = "A
 static const char pci_vendor_175e[] = "Sanera Systems, Inc.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1760[] = "TEDIA spol. s r. o.";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1775[] = "SBS Technologies";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_177d[] = "Cavium Networks";
+static const char pci_device_177d_0001[] = "Nitrox XL";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1787[] = "Hightech Information System Ltd.";
@@ -21105,6 +21763,7 @@ static const char pci_device_1796_0003[]
 static const char pci_device_1796_0004[] = "CAMAC Controller";
 static const char pci_device_1796_0005[] = "PROFIBUS";
 static const char pci_device_1796_0006[] = "AMCC HOTlink";
+static const char pci_device_1796_000d[] = "Synchronisation Slave";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1797[] = "JumpTec h, GMBH";
@@ -21174,6 +21833,7 @@ static const char pci_device_17d3_1210[]
 static const char pci_device_17d3_1220[] = "ARC-1220 8-Port PCI-Express to SATA RAID Controller";
 static const char pci_device_17d3_1230[] = "ARC-1230 12-Port PCI-Express to SATA RAID Controller";
 static const char pci_device_17d3_1260[] = "ARC-1260 16-Port PCI-Express to SATA RAID Controller";
+static const char pci_device_17d3_1280[] = "ARC-1231 12-Port PCI-Express to SATA RAID Controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_17d5[] = "S2io Inc.";
@@ -21190,6 +21850,11 @@ static const char pci_subsys_17d5_5831_1
 static const char pci_subsys_17d5_5831_10a9_8024[] = "Single Port 10 Gigabit Ethernet (PCI-X, Fiber)";
 #endif
 static const char pci_device_17d5_5832[] = "Xframe II 10Gbps Ethernet";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_17d5_5832_103c_1337[] = "PCI-X 266MHz 10GigE SR [AD385A]";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_17d5_5832_10a9_8021[] = "Single Port 10 Gigabit Ethernet II (PCI-X, Fiber)";
 #endif
@@ -21298,6 +21963,7 @@ static const char pci_subsys_1814_0201_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1814_0201_185f_22a0[] = "CN-WF513 Wireless Cardbus Adapter";
 #endif
+static const char pci_device_1814_0300[] = "Wireless Adapter Canyon CN-WF511";
 static const char pci_device_1814_0301[] = "RT2561/RT61 802.11g PCI";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1814_0301_1186_3c08[] = "DWL-G630 Rev E";
@@ -21314,6 +21980,9 @@ static const char pci_subsys_1814_0301_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1814_0301_1737_0055[] = "WMP54G ver 4.1";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1814_0301_1814_2561[] = "EW-7108PCg";
+#endif
 static const char pci_device_1814_0302[] = "RT2561/RT61 rev B 802.11g";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1814_0302_1186_3c08[] = "DWL-G630 Rev E";
@@ -21324,7 +21993,7 @@ static const char pci_subsys_1814_0302_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1814_0302_1462_b834[] = "PC54G3 Wireless 11g PCI Card";
 #endif
-static const char pci_device_1814_0401[] = "Ralink RT2600 802.11 MIMO";
+static const char pci_device_1814_0401[] = "RT2600 802.11 MIMO";
 static const char pci_device_1814_e932[] = "RT2560F 802.11 b/g PCI";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -21391,8 +22060,12 @@ static const char pci_device_1867_6278[]
 static const char pci_device_1867_6282[] = "MT25208 InfiniHost III Ex";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const char pci_vendor_186c[] = "Humusoft";
-static const char pci_device_186c_0614[] = "MF614 multifunction I/O card";
+static const char pci_vendor_186c[] = "Humusoft, s.r.o.";
+static const char pci_device_186c_0612[] = "AD612 Data Acquisition Device";
+static const char pci_device_186c_0614[] = "MF614 Multifunction I/O Card";
+static const char pci_device_186c_0622[] = "AD622 Data Acquisition Device";
+static const char pci_device_186c_0624[] = "MF624 Multifunction I/O Card";
+static const char pci_device_186c_0625[] = "MF625 3-phase Motor Driver";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1876[] = "L-3 Communications";
@@ -21436,6 +22109,7 @@ static const char pci_device_18ac_d500[]
 static const char pci_device_18ac_d800[] = "FusionHDTV 3 Gold";
 static const char pci_device_18ac_d810[] = "FusionHDTV 3 Gold-Q";
 static const char pci_device_18ac_d820[] = "FusionHDTV 3 Gold-T";
+static const char pci_device_18ac_db30[] = "FusionHDTV DVB-T Pro";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_18b8[] = "Ammasso";
@@ -21515,6 +22189,10 @@ static const char pci_device_18f7_0002[]
 static const char pci_device_18f7_0004[] = "Fastcom 422/2-PCI-335";
 static const char pci_device_18f7_0005[] = "Fastcom IGESCC-PCI-ISO/1";
 static const char pci_device_18f7_000a[] = "Fastcom 232/4-PCI-335";
+static const char pci_device_18f7_000f[] = "Fastcom FSCC";
+static const char pci_device_18f7_0010[] = "Fastcom GSCC";
+static const char pci_device_18f7_0011[] = "Fastcom QSSB";
+static const char pci_device_18f7_0014[] = "SuperFSCC";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_18fb[] = "Resilience Corporation";
@@ -21553,8 +22231,23 @@ static const char pci_device_194a_1114[]
 static const char pci_device_194a_1115[] = "FireSpy850bT";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1954[] = "Curtis, Inc.";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1957[] = "Freescale Semiconductor Inc";
-static const char pci_device_1957_0012[] = "MPC8548 [PowerQUICC III]";
+static const char pci_device_1957_0012[] = "MPC8548E";
+static const char pci_device_1957_0013[] = "MPC8548";
+static const char pci_device_1957_0014[] = "MPC8543E";
+static const char pci_device_1957_0015[] = "MPC8543";
+static const char pci_device_1957_0018[] = "MPC8547E";
+static const char pci_device_1957_0019[] = "MPC8545E";
+static const char pci_device_1957_001a[] = "MPC8545";
+static const char pci_device_1957_0020[] = "MPC8568E";
+static const char pci_device_1957_0021[] = "MPC8568";
+static const char pci_device_1957_0022[] = "MPC8567E";
+static const char pci_device_1957_0023[] = "MPC8567";
+static const char pci_device_1957_0030[] = "MPC8544";
+static const char pci_device_1957_0031[] = "MPC8544E";
 static const char pci_device_1957_0080[] = "MPC8349E";
 static const char pci_device_1957_0081[] = "MPC8349";
 static const char pci_device_1957_0082[] = "MPC8347E TBGA";
@@ -21563,6 +22256,8 @@ static const char pci_device_1957_0084[]
 static const char pci_device_1957_0085[] = "MPC8347 PBGA";
 static const char pci_device_1957_0086[] = "MPC8343E";
 static const char pci_device_1957_0087[] = "MPC8343";
+static const char pci_device_1957_7010[] = "MPC8641 PCI Host Bridge";
+static const char pci_device_1957_7011[] = "MPC8641D PCI Host Bridge";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1958[] = "Faster Technology, LLC.";
@@ -21731,6 +22426,12 @@ static const char pci_device_1fc1_000d[]
 static const char pci_device_1fc1_0010[] = "InfiniPath PE-800";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1fc9[] = "Tehuti Networks Ltd.";
+static const char pci_device_1fc9_3009[] = "10 Giga TOE SmartNIC";
+static const char pci_device_1fc9_3010[] = "10 Giga TOE SmartNIC";
+static const char pci_device_1fc9_3014[] = "10 Giga TOE SmartNIC 2-Port";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1fce[] = "Cognio Inc.";
 static const char pci_device_1fce_0001[] = "Spectrum Analyzer PC Card (SAgE)";
 #endif
@@ -22015,6 +22716,11 @@ static const char pci_subsys_4444_0016_0
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_4444_0016_0270_0801[] = "WinTV PVR 150";
 #endif
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_4444_0016_104d_013d[] = "ENX-26 TV Encoder";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_4444_0016_10fc_d038[] = "GV-MVP/RX2W (1st unit)";
 #endif
@@ -22078,6 +22784,8 @@ static const char pci_vendor_4943[] = "G
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_494f[] = "ACCES I/O Products, Inc.";
+static const char pci_device_494f_0c60[] = "PCI-DIO-48";
+static const char pci_device_494f_0e60[] = "PCI-DIO-48S";
 static const char pci_device_494f_10e8[] = "LPCI-COM-8SM";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -23003,6 +23711,9 @@ static const char pci_device_8086_105e[]
 static const char pci_subsys_8086_105e_103c_7044[] = "NC360T PCI Express Dual Port Gigabit Server Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_105e_103c_704e[] = "Dual Port 1000Base-T (PCIe) [AD337A]";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_105e_1775_1100[] = "CR11/VR11 Single Board Computer";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23028,6 +23739,9 @@ static const char pci_subsys_8086_105e_8
 #endif
 static const char pci_device_8086_105f[] = "82571EB Gigabit Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_105f_103c_704f[] = "Dual Port 1000Base-SX (PCIe) [AD338A]";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_105f_8086_115f[] = "PRO/1000 PF Dual Port Server Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23256,6 +23970,9 @@ static const char pci_subsys_8086_10b5_8
 static const char pci_device_8086_10b6[] = "82598 10GbE PCI-Express Ethernet Controller";
 static const char pci_device_8086_10b9[] = "82572EI Gigabit Ethernet Controller (Copper)";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_10b9_103c_704a[] = "HP 110T PCIe Gigabit Server Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_10b9_8086_1083[] = "PRO/1000 PT Desktop Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23265,6 +23982,9 @@ static const char pci_device_8086_10ba[]
 static const char pci_device_8086_10bb[] = "80003ES2LAN Gigabit Ethernet Controller (Serdes)";
 static const char pci_device_8086_10bc[] = "82571EB Gigabit Ethernet Controller (Copper)";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_10bc_103c_704b[] = "NC364T PCI Express Quad Port Gigabit Server Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_10bc_8086_10bc[] = "PRO/1000 PT Quad Port LP Server Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23278,8 +23998,15 @@ static const char pci_device_8086_10c4[]
 static const char pci_device_8086_10c5[] = "82562G 10/100 Network Connection";
 static const char pci_device_8086_10c6[] = "82598AF DUAL PORT 10GbE PCI-Express Ethernet Controller";
 static const char pci_device_8086_10c7[] = "82598AF SINGLE PORT 10GbE PCI-Express Ethernet Controller";
+static const char pci_device_8086_10d6[] = "82575 Gigabit VT Quad Port Server Adapter";
 static const char pci_device_8086_10d9[] = "82571EB Dual Port Gigabit Mezzanine Adapter";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_10d9_103c_1716[] = "HP 360m Dual Port 1GbE BL-c Adapter";
+#endif
 static const char pci_device_8086_10da[] = "82571EB Quad Port Gigabit Mezzanine Adapter";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_10da_103c_1717[] = "HP 364m Quad Port 1GbE BL-c Adapter";
+#endif
 static const char pci_device_8086_1107[] = "PRO/1000 MF Server Adapter (LX)";
 static const char pci_device_8086_1130[] = "82815 815 Chipset Host Bridge and Memory Controller Hub";
 #ifdef INIT_SUBSYS_INFO
@@ -25450,6 +26177,9 @@ static const char pci_subsys_8086_2582_1
 static const char pci_subsys_8086_2582_1849_2582[] = "ASRock P4Dual-915GL";
 #endif
 static const char pci_device_8086_2584[] = "82925X/XE Memory Controller Hub";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2584_1028_0177[] = "Dimension 8400";
+#endif
 static const char pci_device_8086_2585[] = "82925X/XE PCI Express Root Port";
 static const char pci_device_8086_2588[] = "E7220/E7221 Memory Controller Hub";
 static const char pci_device_8086_2589[] = "E7220/E7221 PCI Express Root Port";
@@ -25595,6 +26325,9 @@ static const char pci_subsys_8086_25aa_1
 static const char pci_subsys_8086_25aa_4c53_10b0[] = "CL9 mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25aa_4c53_10d0[] = "Telum ASLP10 Processor AMC";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25aa_4c53_10e0[] = "PSL09 PrPMC";
 #endif
 static const char pci_device_8086_25ab[] = "6300ESB Watchdog Timer";
@@ -25766,11 +26499,17 @@ static const char pci_subsys_8086_2651_e
 #endif
 static const char pci_device_8086_2652[] = "82801FR/FRW (ICH6R/ICH6RW) SATA Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2652_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2652_1462_7028[] = "915P/G Neo2";
 #endif
 static const char pci_device_8086_2653[] = "82801FBM (ICH6M) SATA Controller";
 static const char pci_device_8086_2658[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2658_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2658_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25802,6 +26541,9 @@ static const char pci_subsys_8086_2658_e
 #endif
 static const char pci_device_8086_2659[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2659_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2659_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25833,6 +26575,9 @@ static const char pci_subsys_8086_2659_e
 #endif
 static const char pci_device_8086_265a[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265a_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265a_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25864,6 +26609,9 @@ static const char pci_subsys_8086_265a_e
 #endif
 static const char pci_device_8086_265b[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265b_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265b_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25892,6 +26640,9 @@ static const char pci_subsys_8086_265b_e
 #endif
 static const char pci_device_8086_265c[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265c_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265c_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25982,6 +26733,9 @@ static const char pci_subsys_8086_2668_1
 #endif
 static const char pci_device_8086_266a[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266a_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266a_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -26021,6 +26775,9 @@ static const char pci_device_8086_266e[]
 static const char pci_subsys_8086_266e_1025_006a[] = "Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266e_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266e_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -26052,6 +26809,9 @@ static const char pci_subsys_8086_266e_1
 #endif
 static const char pci_device_8086_266f[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266f_1028_0177[] = "Dimension 8400";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266f_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -26161,13 +26921,16 @@ static const char pci_subsys_8086_27a2_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27a2_17aa_201a[] = "Thinkpad R60e model 0657";
 #endif
-static const char pci_device_8086_27a6[] = "Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller";
+static const char pci_device_8086_27a6[] = "Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27a6_103c_30a1[] = "NC2400";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27a6_17aa_201a[] = "Thinkpad R60e model 0657";
 #endif
+static const char pci_device_8086_27ac[] = "Mobile 945GME Express Memory Controller Hub";
+static const char pci_device_8086_27ad[] = "Mobile 945GME Express PCI Express Root Port";
+static const char pci_device_8086_27ae[] = "Mobile 945GME Express Integrated Graphics Controller";
 static const char pci_device_8086_27b0[] = "82801GH (ICH7DH) LPC Interface Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27b0_8086_544e[] = "DeskTop Board D945GTP";
@@ -26443,9 +27206,9 @@ static const char pci_device_8086_2917[]
 static const char pci_device_8086_2918[] = "82801IB (ICH9) LPC Interface Controller";
 static const char pci_device_8086_2919[] = "Mobile LPC Controller";
 static const char pci_device_8086_2920[] = "82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller";
-static const char pci_device_8086_2921[] = "82801I (ICH9 Family) 2 port SATA IDE Controller";
+static const char pci_device_8086_2921[] = "82801IB (ICH9) 2 port SATA IDE Controller";
 static const char pci_device_8086_2922[] = "82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller";
-static const char pci_device_8086_2923[] = "82801I (ICH9 Family) 4 port SATA AHCI Controller";
+static const char pci_device_8086_2923[] = "82801IB (ICH9) 4 port SATA AHCI Controller";
 static const char pci_device_8086_2925[] = "82801IR/IO (ICH9R//DO) SATA RAID Controller";
 static const char pci_device_8086_2926[] = "82801I (ICH9 Family) 2 port SATA IDE Controller";
 static const char pci_device_8086_2928[] = "Mobile 2 port SATA IDE Controller";
@@ -26512,14 +27275,14 @@ static const char pci_device_8086_29b4[]
 static const char pci_device_8086_29b5[] = "MEI Controller";
 static const char pci_device_8086_29b6[] = "PT IDER Controller";
 static const char pci_device_8086_29b7[] = "Serial KT Controller";
-static const char pci_device_8086_29c0[] = "82G33/G31/P35 Express DRAM Controller";
-static const char pci_device_8086_29c1[] = "82G33/G31/P35 Express PCI Express Root Port";
+static const char pci_device_8086_29c0[] = "82G33/G31/P35/P31 Express DRAM Controller";
+static const char pci_device_8086_29c1[] = "82G33/G31/P35/P31 Express PCI Express Root Port";
 static const char pci_device_8086_29c2[] = "82G33/G31 Express Integrated Graphics Controller";
 static const char pci_device_8086_29c3[] = "82G33/G31 Express Integrated Graphics Controller";
-static const char pci_device_8086_29c4[] = "82G33/G31/P35 Express MEI Controller";
-static const char pci_device_8086_29c5[] = "82G33/G31/P35 Express MEI Controller";
-static const char pci_device_8086_29c6[] = "82G33/G31/P35 Express PT IDER Controller";
-static const char pci_device_8086_29c7[] = "82G33/G31/P35 Express Serial KT Controller";
+static const char pci_device_8086_29c4[] = "82G33/G31/P35/P31 Express MEI Controller";
+static const char pci_device_8086_29c5[] = "82G33/G31/P35/P31 Express MEI Controller";
+static const char pci_device_8086_29c6[] = "82G33/G31/P35/P31 Express PT IDER Controller";
+static const char pci_device_8086_29c7[] = "82G33/G31/P35/P31 Express Serial KT Controller";
 static const char pci_device_8086_29cf[] = "Virtual HECI Controller";
 static const char pci_device_8086_29d0[] = "DRAM Controller";
 static const char pci_device_8086_29d1[] = "PCI Express Root Port";
@@ -26554,6 +27317,14 @@ static const char pci_device_8086_2a04[]
 static const char pci_device_8086_2a05[] = "Mobile PM965/GM965 MEI Controller";
 static const char pci_device_8086_2a06[] = "Mobile PM965/GM965 PT IDER Controller";
 static const char pci_device_8086_2a07[] = "Mobile PM965/GM965 KT Controller";
+static const char pci_device_8086_2a40[] = "Mobile Memory Controller Hub";
+static const char pci_device_8086_2a41[] = "Mobile PCI Express Graphics Port";
+static const char pci_device_8086_2a42[] = "Mobile Integrated Graphics Controller";
+static const char pci_device_8086_2a43[] = "Mobile Integrated Graphics Controller";
+static const char pci_device_8086_2a50[] = "Mobile MEI Controller";
+static const char pci_device_8086_2a51[] = "Mobile MEI Controller";
+static const char pci_device_8086_2a52[] = "Mobile PT IDER Controller";
+static const char pci_device_8086_2a53[] = "Mobile AMT SOL Redirection";
 static const char pci_device_8086_3200[] = "GD31244 PCI-X SATA HBA";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3200_1775_c200[] = "C2K onboard SATA host bus adapter";
@@ -27494,6 +28265,8 @@ static const char pci_subsys_9005_00cf_8
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_9005_0241[] = "Serial ATA II RAID 1420SA";
+static const char pci_device_9005_0242[] = "Serial ATA II RAID 1220SA";
+static const char pci_device_9005_0243[] = "Serial ATA II RAID 1430SA";
 static const char pci_device_9005_0250[] = "ServeRAID Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0250_1014_0279[] = "ServeRAID-xx";
@@ -27549,6 +28322,11 @@ static const char pci_subsys_9005_0285_1
 static const char pci_subsys_9005_0285_108e_7aac[] = "STK RAID REM";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_108e_7aae[] = "STK RAID EX";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0285_15d9_02b5[] = "AOC-USAS-S4i";
 #endif
@@ -27687,6 +28465,18 @@ static const char pci_subsys_9005_0285_9
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0285_9005_02c8[] = "ICP5805BL";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02ce[] = "51245";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02cf[] = "51645";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02d0[] = "52445";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02d1[] = "5405";
+#endif
 static const char pci_device_9005_0286[] = "AAC-RAID (Rocket)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0286_1014_034d[] = "8s";
@@ -27777,6 +28567,8 @@ static const char pci_subsys_9005_0412_9
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0412_9005_0413[] = "ASC-58300 (Oakmont non-RAID)";
 #endif
+static const char pci_device_9005_0415[] = "ASC-58300 SAS (Razor-External HBA RAID)";
+static const char pci_device_9005_0416[] = "ASC-58300 SAS (Razor-External HBA non-RAID)";
 static const char pci_device_9005_041e[] = "AIC-9410W SAS (Razor ASIC non-RAID)";
 static const char pci_device_9005_041f[] = "AIC-9410W SAS (Razor ASIC RAID)";
 #ifdef INIT_SUBSYS_INFO
@@ -28403,6 +29195,12 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_1028_0183 pci_ss_info_1000_0030_1028_0183
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
+static const pciSubsystemInfo pci_ss_info_1000_0030_1028_018a =
+	{0x1028, 0x018a, pci_subsys_1000_0030_1028_018a, 0};
+#undef pci_ss_info_1028_018a
+#define pci_ss_info_1028_018a pci_ss_info_1000_0030_1028_018a
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_1000_0030_1028_1010 =
 	{0x1028, 0x1010, pci_subsys_1000_0030_1028_1010, 0};
 #undef pci_ss_info_1028_1010
@@ -28435,6 +29233,48 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1000_0066
 #define pci_ss_info_1000_0066 pci_ss_info_1000_0040_1000_0066
 #endif
+static const pciSubsystemInfo pci_ss_info_1000_0050_1028_1f04 =
+	{0x1028, 0x1f04, pci_subsys_1000_0050_1028_1f04, 0};
+#undef pci_ss_info_1028_1f04
+#define pci_ss_info_1028_1f04 pci_ss_info_1000_0050_1028_1f04
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0050_1028_1f09 =
+	{0x1028, 0x1f09, pci_subsys_1000_0050_1028_1f09, 0};
+#undef pci_ss_info_1028_1f09
+#define pci_ss_info_1028_1f09 pci_ss_info_1000_0050_1028_1f09
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0054_1028_1f04 =
+	{0x1028, 0x1f04, pci_subsys_1000_0054_1028_1f04, 0};
+#undef pci_ss_info_1028_1f04
+#define pci_ss_info_1028_1f04 pci_ss_info_1000_0054_1028_1f04
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0054_1028_1f05 =
+	{0x1028, 0x1f05, pci_subsys_1000_0054_1028_1f05, 0};
+#undef pci_ss_info_1028_1f05
+#define pci_ss_info_1028_1f05 pci_ss_info_1000_0054_1028_1f05
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0054_1028_1f06 =
+	{0x1028, 0x1f06, pci_subsys_1000_0054_1028_1f06, 0};
+#undef pci_ss_info_1028_1f06
+#define pci_ss_info_1028_1f06 pci_ss_info_1000_0054_1028_1f06
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0054_1028_1f07 =
+	{0x1028, 0x1f07, pci_subsys_1000_0054_1028_1f07, 0};
+#undef pci_ss_info_1028_1f07
+#define pci_ss_info_1028_1f07 pci_ss_info_1000_0054_1028_1f07
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0054_1028_1f08 =
+	{0x1028, 0x1f08, pci_subsys_1000_0054_1028_1f08, 0};
+#undef pci_ss_info_1028_1f08
+#define pci_ss_info_1028_1f08 pci_ss_info_1000_0054_1028_1f08
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_1000_0054_1028_1f09 =
 	{0x1028, 0x1f09, pci_subsys_1000_0054_1028_1f09, 0};
 #undef pci_ss_info_1028_1f09
@@ -28446,6 +29286,30 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1033_8336
 #define pci_ss_info_1033_8336 pci_ss_info_1000_0055_1033_8336
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0058_1028_021d =
+	{0x1028, 0x021d, pci_subsys_1000_0058_1028_021d, 0};
+#undef pci_ss_info_1028_021d
+#define pci_ss_info_1028_021d pci_ss_info_1000_0058_1028_021d
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0058_1028_1f0e =
+	{0x1028, 0x1f0e, pci_subsys_1000_0058_1028_1f0e, 0};
+#undef pci_ss_info_1028_1f0e
+#define pci_ss_info_1028_1f0e pci_ss_info_1000_0058_1028_1f0e
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0058_1028_1f0f =
+	{0x1028, 0x1f0f, pci_subsys_1000_0058_1028_1f0f, 0};
+#undef pci_ss_info_1028_1f0f
+#define pci_ss_info_1028_1f0f pci_ss_info_1000_0058_1028_1f0f
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0058_1028_1f10 =
+	{0x1028, 0x1f10, pci_subsys_1000_0058_1028_1f10, 0};
+#undef pci_ss_info_1028_1f10
+#define pci_ss_info_1028_1f10 pci_ss_info_1000_0058_1028_1f10
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1000_0060_1000_1006 =
 	{0x1000, 0x1006, pci_subsys_1000_0060_1000_1006, 0};
 #undef pci_ss_info_1000_1006
@@ -28524,6 +29388,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1028_1f11
 #define pci_ss_info_1028_1f11 pci_ss_info_1000_0060_1028_1f11
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0060_1033_835a =
+	{0x1033, 0x835a, pci_subsys_1000_0060_1033_835a, 0};
+#undef pci_ss_info_1033_835a
+#define pci_ss_info_1033_835a pci_ss_info_1000_0060_1033_835a
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1000_0060_1043_824d =
 	{0x1043, 0x824d, pci_subsys_1000_0060_1043_824d, 0};
 #undef pci_ss_info_1043_824d
@@ -28532,6 +29402,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1170, 0x002f, pci_subsys_1000_0060_1170_002f, 0};
 #undef pci_ss_info_1170_002f
 #define pci_ss_info_1170_002f pci_ss_info_1000_0060_1170_002f
+static const pciSubsystemInfo pci_ss_info_1000_0060_1170_0036 =
+	{0x1170, 0x0036, pci_subsys_1000_0060_1170_0036, 0};
+#undef pci_ss_info_1170_0036
+#define pci_ss_info_1170_0036 pci_ss_info_1000_0060_1170_0036
+static const pciSubsystemInfo pci_ss_info_1000_0060_15d9_c080 =
+	{0x15d9, 0xc080, pci_subsys_1000_0060_15d9_c080, 0};
+#undef pci_ss_info_15d9_c080
+#define pci_ss_info_15d9_c080 pci_ss_info_1000_0060_15d9_c080
+static const pciSubsystemInfo pci_ss_info_1000_0060_17aa_6b7c =
+	{0x17aa, 0x6b7c, pci_subsys_1000_0060_17aa_6b7c, 0};
+#undef pci_ss_info_17aa_6b7c
+#define pci_ss_info_17aa_6b7c pci_ss_info_1000_0060_17aa_6b7c
 #endif
 static const pciSubsystemInfo pci_ss_info_1000_0060_8086_1006 =
 	{0x8086, 0x1006, pci_subsys_1000_0060_8086_1006, 0};
@@ -29103,6 +29985,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x14f1, 0x8800, pci_subsys_1002_437a_14f1_8800, 0};
 #undef pci_ss_info_14f1_8800
 #define pci_ss_info_14f1_8800 pci_ss_info_1002_437a_14f1_8800
+static const pciSubsystemInfo pci_ss_info_1002_437b_10cf_1326 =
+	{0x10cf, 0x1326, pci_subsys_1002_437b_10cf_1326, 0};
+#undef pci_ss_info_10cf_1326
+#define pci_ss_info_10cf_1326 pci_ss_info_1002_437b_10cf_1326
 static const pciSubsystemInfo pci_ss_info_1002_437b_1734_10b8 =
 	{0x1734, 0x10b8, pci_subsys_1002_437b_1734_10b8, 0};
 #undef pci_ss_info_1734_10b8
@@ -29267,6 +30153,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0134, pci_subsys_1002_4752_1028_0134, 0};
 #undef pci_ss_info_1028_0134
 #define pci_ss_info_1028_0134 pci_ss_info_1002_4752_1028_0134
+static const pciSubsystemInfo pci_ss_info_1002_4752_1028_0165 =
+	{0x1028, 0x0165, pci_subsys_1002_4752_1028_0165, 0};
+#undef pci_ss_info_1028_0165
+#define pci_ss_info_1028_0165 pci_ss_info_1002_4752_1028_0165
 static const pciSubsystemInfo pci_ss_info_1002_4752_103c_10e1 =
 	{0x103c, 0x10e1, pci_subsys_1002_4752_103c_10e1, 0};
 #undef pci_ss_info_103c_10e1
@@ -29399,6 +30289,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0085, pci_subsys_1002_4c42_1028_0085, 0};
 #undef pci_ss_info_1028_0085
 #define pci_ss_info_1028_0085 pci_ss_info_1002_4c42_1028_0085
+static const pciSubsystemInfo pci_ss_info_1002_4c46_1002_0155 =
+	{0x1002, 0x0155, pci_subsys_1002_4c46_1002_0155, 0};
+#undef pci_ss_info_1002_0155
+#define pci_ss_info_1002_0155 pci_ss_info_1002_4c46_1002_0155
+static const pciSubsystemInfo pci_ss_info_1002_4c46_1014_0155 =
+	{0x1014, 0x0155, pci_subsys_1002_4c46_1014_0155, 0};
+#undef pci_ss_info_1014_0155
+#define pci_ss_info_1014_0155 pci_ss_info_1002_4c46_1014_0155
 static const pciSubsystemInfo pci_ss_info_1002_4c46_1028_00b1 =
 	{0x1028, 0x00b1, pci_subsys_1002_4c46_1028_00b1, 0};
 #undef pci_ss_info_1028_00b1
@@ -29927,6 +30825,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1025, 0x0080, pci_subsys_1002_5653_1025_0080, 0};
 #undef pci_ss_info_1025_0080
 #define pci_ss_info_1025_0080 pci_ss_info_1002_5653_1025_0080
+static const pciSubsystemInfo pci_ss_info_1002_5653_103c_0940 =
+	{0x103c, 0x0940, pci_subsys_1002_5653_103c_0940, 0};
+#undef pci_ss_info_103c_0940
+#define pci_ss_info_103c_0940 pci_ss_info_1002_5653_103c_0940
 static const pciSubsystemInfo pci_ss_info_1002_5654_1002_5654 =
 	{0x1002, 0x5654, pci_subsys_1002_5654_1002_5654, 0};
 #undef pci_ss_info_1002_5654
@@ -30063,6 +30965,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x032e, pci_subsys_1002_5b60_1043_032e, 0};
 #undef pci_ss_info_1043_032e
 #define pci_ss_info_1043_032e pci_ss_info_1002_5b60_1043_032e
+static const pciSubsystemInfo pci_ss_info_1002_5b60_1458_2102 =
+	{0x1458, 0x2102, pci_subsys_1002_5b60_1458_2102, 0};
+#undef pci_ss_info_1458_2102
+#define pci_ss_info_1458_2102 pci_ss_info_1002_5b60_1458_2102
 static const pciSubsystemInfo pci_ss_info_1002_5b60_1462_0400 =
 	{0x1462, 0x0400, pci_subsys_1002_5b60_1462_0400, 0};
 #undef pci_ss_info_1462_0400
@@ -30163,6 +31069,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1002, 0x0322, pci_subsys_1002_7146_1002_0322, 0};
 #undef pci_ss_info_1002_0322
 #define pci_ss_info_1002_0322 pci_ss_info_1002_7146_1002_0322
+static const pciSubsystemInfo pci_ss_info_1002_7146_1545_1996 =
+	{0x1545, 0x1996, pci_subsys_1002_7146_1545_1996, 0};
+#undef pci_ss_info_1545_1996
+#define pci_ss_info_1545_1996 pci_ss_info_1002_7146_1545_1996
 static const pciSubsystemInfo pci_ss_info_1002_7162_1002_0323 =
 	{0x1002, 0x0323, pci_subsys_1002_7162_1002_0323, 0};
 #undef pci_ss_info_1002_0323
@@ -30171,6 +31081,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1002, 0x0323, pci_subsys_1002_7166_1002_0323, 0};
 #undef pci_ss_info_1002_0323
 #define pci_ss_info_1002_0323 pci_ss_info_1002_7166_1002_0323
+static const pciSubsystemInfo pci_ss_info_1002_7166_1545_1997 =
+	{0x1545, 0x1997, pci_subsys_1002_7166_1545_1997, 0};
+#undef pci_ss_info_1545_1997
+#define pci_ss_info_1545_1997 pci_ss_info_1002_7166_1545_1997
 static const pciSubsystemInfo pci_ss_info_1002_71c4_17aa_2007 =
 	{0x17aa, 0x2007, pci_subsys_1002_71c4_17aa_2007, 0};
 #undef pci_ss_info_17aa_2007
@@ -30784,6 +31698,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x0338, pci_subsys_1014_02bd_1014_0338, 0};
 #undef pci_ss_info_1014_0338
 #define pci_ss_info_1014_0338 pci_ss_info_1014_02bd_1014_0338
+static const pciSubsystemInfo pci_ss_info_1014_0339_1014_030a =
+	{0x1014, 0x030a, pci_subsys_1014_0339_1014_030a, 0};
+#undef pci_ss_info_1014_030a
+#define pci_ss_info_1014_030a pci_ss_info_1014_0339_1014_030a
+static const pciSubsystemInfo pci_ss_info_1014_0339_1014_033a =
+	{0x1014, 0x033a, pci_subsys_1014_0339_1014_033a, 0};
+#undef pci_ss_info_1014_033a
+#define pci_ss_info_1014_033a pci_ss_info_1014_0339_1014_033a
 static const pciSubsystemInfo pci_ss_info_1014_0339_1014_0360 =
 	{0x1014, 0x0360, pci_subsys_1014_0339_1014_0360, 0};
 #undef pci_ss_info_1014_0360
@@ -32145,6 +33067,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x3237, pci_subsys_103c_3230_103c_3237, 0};
 #undef pci_ss_info_103c_3237
 #define pci_ss_info_103c_3237 pci_ss_info_103c_3230_103c_3237
+static const pciSubsystemInfo pci_ss_info_103c_3230_103c_323d =
+	{0x103c, 0x323d, pci_subsys_103c_3230_103c_323d, 0};
+#undef pci_ss_info_103c_323d
+#define pci_ss_info_103c_323d pci_ss_info_103c_3230_103c_323d
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1043_0675_0675_1704 =
 	{0x0675, 0x1704, pci_subsys_1043_0675_0675_1704, 0};
@@ -32363,6 +33289,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x107d, 0x2633, pci_subsys_104c_3d07_107d_2633, 0};
 #undef pci_ss_info_107d_2633
 #define pci_ss_info_107d_2633 pci_ss_info_104c_3d07_107d_2633
+static const pciSubsystemInfo pci_ss_info_104c_3d07_1092_0126 =
+	{0x1092, 0x0126, pci_subsys_104c_3d07_1092_0126, 0};
+#undef pci_ss_info_1092_0126
+#define pci_ss_info_1092_0126 pci_ss_info_104c_3d07_1092_0126
 static const pciSubsystemInfo pci_ss_info_104c_3d07_1092_0127 =
 	{0x1092, 0x0127, pci_subsys_104c_3d07_1092_0127, 0};
 #undef pci_ss_info_1092_0127
@@ -32515,6 +33445,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1025, 0x0080, pci_subsys_104c_8031_1025_0080, 0};
 #undef pci_ss_info_1025_0080
 #define pci_ss_info_1025_0080 pci_ss_info_104c_8031_1025_0080
+static const pciSubsystemInfo pci_ss_info_104c_8031_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_104c_8031_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_104c_8031_103c_0934
 static const pciSubsystemInfo pci_ss_info_104c_8031_103c_099c =
 	{0x103c, 0x099c, pci_subsys_104c_8031_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -32527,6 +33461,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1025, 0x0080, pci_subsys_104c_8032_1025_0080, 0};
 #undef pci_ss_info_1025_0080
 #define pci_ss_info_1025_0080 pci_ss_info_104c_8032_1025_0080
+static const pciSubsystemInfo pci_ss_info_104c_8032_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_104c_8032_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_104c_8032_103c_0934
 static const pciSubsystemInfo pci_ss_info_104c_8032_103c_099c =
 	{0x103c, 0x099c, pci_subsys_104c_8032_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -32539,6 +33477,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1025, 0x0080, pci_subsys_104c_8033_1025_0080, 0};
 #undef pci_ss_info_1025_0080
 #define pci_ss_info_1025_0080 pci_ss_info_104c_8033_1025_0080
+static const pciSubsystemInfo pci_ss_info_104c_8033_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_104c_8033_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_104c_8033_103c_0934
 static const pciSubsystemInfo pci_ss_info_104c_8033_103c_099c =
 	{0x103c, 0x099c, pci_subsys_104c_8033_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -32551,6 +33493,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1025, 0x0080, pci_subsys_104c_8034_1025_0080, 0};
 #undef pci_ss_info_1025_0080
 #define pci_ss_info_1025_0080 pci_ss_info_104c_8034_1025_0080
+static const pciSubsystemInfo pci_ss_info_104c_8034_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_104c_8034_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_104c_8034_103c_0934
 static const pciSubsystemInfo pci_ss_info_104c_8034_103c_099c =
 	{0x103c, 0x099c, pci_subsys_104c_8034_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -32559,6 +33505,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x308b, pci_subsys_104c_8034_103c_308b, 0};
 #undef pci_ss_info_103c_308b
 #define pci_ss_info_103c_308b pci_ss_info_104c_8034_103c_308b
+static const pciSubsystemInfo pci_ss_info_104c_8035_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_104c_8035_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_104c_8035_103c_0934
 static const pciSubsystemInfo pci_ss_info_104c_8035_103c_099c =
 	{0x103c, 0x099c, pci_subsys_104c_8035_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -32631,6 +33581,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x13d1, 0xaba0, pci_subsys_104c_9066_13d1_aba0, 0};
 #undef pci_ss_info_13d1_aba0
 #define pci_ss_info_13d1_aba0 pci_ss_info_104c_9066_13d1_aba0
+static const pciSubsystemInfo pci_ss_info_104c_9066_16ec_010d =
+	{0x16ec, 0x010d, pci_subsys_104c_9066_16ec_010d, 0};
+#undef pci_ss_info_16ec_010d
+#define pci_ss_info_16ec_010d pci_ss_info_104c_9066_16ec_010d
 static const pciSubsystemInfo pci_ss_info_104c_9066_1737_0033 =
 	{0x1737, 0x0033, pci_subsys_104c_9066_1737_0033, 0};
 #undef pci_ss_info_1737_0033
@@ -32687,6 +33641,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1071, 0x8160, pci_subsys_104c_ac44_1071_8160, 0};
 #undef pci_ss_info_1071_8160
 #define pci_ss_info_1071_8160 pci_ss_info_104c_ac44_1071_8160
+static const pciSubsystemInfo pci_ss_info_104c_ac46_1014_0552 =
+	{0x1014, 0x0552, pci_subsys_104c_ac46_1014_0552, 0};
+#undef pci_ss_info_1014_0552
+#define pci_ss_info_1014_0552 pci_ss_info_104c_ac46_1014_0552
 static const pciSubsystemInfo pci_ss_info_104c_ac47_1028_0139 =
 	{0x1028, 0x0139, pci_subsys_104c_ac47_1028_0139, 0};
 #undef pci_ss_info_1028_0139
@@ -33453,6 +34411,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x108e, 0xa001, pci_subsys_108e_a001_108e_a001, 0};
 #undef pci_ss_info_108e_a001
 #define pci_ss_info_108e_a001 pci_ss_info_108e_a001_108e_a001
+static const pciSubsystemInfo pci_ss_info_1092_0028_1092_4a00 =
+	{0x1092, 0x4a00, pci_subsys_1092_0028_1092_4a00, 0};
+#undef pci_ss_info_1092_4a00
+#define pci_ss_info_1092_4a00 pci_ss_info_1092_0028_1092_4a00
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1095_0648_1043_8025 =
 	{0x1043, 0x8025, pci_subsys_1095_0648_1043_8025, 0};
@@ -34636,6 +35598,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10f1, 0x2466, pci_subsys_10b7_9200_10f1_2466, 0};
 #undef pci_ss_info_10f1_2466
 #define pci_ss_info_10f1_2466 pci_ss_info_10b7_9200_10f1_2466
+static const pciSubsystemInfo pci_ss_info_10b7_9200_144d_c005 =
+	{0x144d, 0xc005, pci_subsys_10b7_9200_144d_c005, 0};
+#undef pci_ss_info_144d_c005
+#define pci_ss_info_144d_c005 pci_ss_info_10b7_9200_144d_c005
 static const pciSubsystemInfo pci_ss_info_10b7_9201_1043_80ab =
 	{0x1043, 0x80ab, pci_subsys_10b7_9201_1043_80ab, 0};
 #undef pci_ss_info_1043_80ab
@@ -34768,6 +35734,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10b9, 0x1541, pci_subsys_10b9_1541_10b9_1541, 0};
 #undef pci_ss_info_10b9_1541
 #define pci_ss_info_10b9_1541 pci_ss_info_10b9_1541_10b9_1541
+static const pciSubsystemInfo pci_ss_info_10b9_1563_10b9_1563 =
+	{0x10b9, 0x1563, pci_subsys_10b9_1563_10b9_1563, 0};
+#undef pci_ss_info_10b9_1563
+#define pci_ss_info_10b9_1563 pci_ss_info_10b9_1563_10b9_1563
 static const pciSubsystemInfo pci_ss_info_10b9_5229_1014_050f =
 	{0x1014, 0x050f, pci_subsys_10b9_5229_1014_050f, 0};
 #undef pci_ss_info_1014_050f
@@ -34806,6 +35776,14 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_104d_810f
 #define pci_ss_info_104d_810f pci_ss_info_10b9_5237_104d_810f
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_10b9_5237_10b9_5237 =
+	{0x10b9, 0x5237, pci_subsys_10b9_5237_10b9_5237, 0};
+#undef pci_ss_info_10b9_5237
+#define pci_ss_info_10b9_5237 pci_ss_info_10b9_5237_10b9_5237
+static const pciSubsystemInfo pci_ss_info_10b9_5239_10b9_5239 =
+	{0x10b9, 0x5239, pci_subsys_10b9_5239_10b9_5239, 0};
+#undef pci_ss_info_10b9_5239
+#define pci_ss_info_10b9_5239 pci_ss_info_10b9_5239_10b9_5239
 static const pciSubsystemInfo pci_ss_info_10b9_5451_1014_0506 =
 	{0x1014, 0x0506, pci_subsys_10b9_5451_1014_0506, 0};
 #undef pci_ss_info_1014_0506
@@ -34824,6 +35802,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10b9, 0x5451, pci_subsys_10b9_5451_10b9_5451, 0};
 #undef pci_ss_info_10b9_5451
 #define pci_ss_info_10b9_5451 pci_ss_info_10b9_5451_10b9_5451
+static const pciSubsystemInfo pci_ss_info_10b9_5455_10b9_5455 =
+	{0x10b9, 0x5455, pci_subsys_10b9_5455_10b9_5455, 0};
+#undef pci_ss_info_10b9_5455
+#define pci_ss_info_10b9_5455 pci_ss_info_10b9_5455_10b9_5455
 static const pciSubsystemInfo pci_ss_info_10b9_5457_1014_0535 =
 	{0x1014, 0x0535, pci_subsys_10b9_5457_1014_0535, 0};
 #undef pci_ss_info_1014_0535
@@ -34848,6 +35830,16 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_103c_0024
 #define pci_ss_info_103c_0024 pci_ss_info_10b9_7101_103c_0024
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_10b9_7101_10b9_7101 =
+	{0x10b9, 0x7101, pci_subsys_10b9_7101_10b9_7101, 0};
+#undef pci_ss_info_10b9_7101
+#define pci_ss_info_10b9_7101 pci_ss_info_10b9_7101_10b9_7101
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_10ba_0308_10dd_0024 =
+	{0x10dd, 0x0024, pci_subsys_10ba_0308_10dd_0024, 0};
+#undef pci_ss_info_10dd_0024
+#define pci_ss_info_10dd_0024 pci_ss_info_10ba_0308_10dd_0024
 #endif
 static const pciSubsystemInfo pci_ss_info_10c8_0004_1014_00ba =
 	{0x1014, 0x00ba, pci_subsys_10c8_0004_1014_00ba, 0};
@@ -34997,6 +35989,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1186_1200
 #define pci_ss_info_1186_1200 pci_ss_info_10d9_0531_1186_1200
 #endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_10dd_0100_10dd_0023 =
+	{0x10dd, 0x0023, pci_subsys_10dd_0100_10dd_0023, 0};
+#undef pci_ss_info_10dd_0023
+#define pci_ss_info_10dd_0023 pci_ss_info_10dd_0100_10dd_0023
+#endif
 static const pciSubsystemInfo pci_ss_info_10de_0020_1043_0200 =
 	{0x1043, 0x0200, pci_subsys_10de_0020_1043_0200, 0};
 #undef pci_ss_info_1043_0200
@@ -35477,6 +36475,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xa0a0, 0x03bb, pci_subsys_10de_0064_a0a0_03bb, 0};
 #undef pci_ss_info_a0a0_03bb
 #define pci_ss_info_a0a0_03bb pci_ss_info_10de_0064_a0a0_03bb
+static const pciSubsystemInfo pci_ss_info_10de_0065_10de_0c11 =
+	{0x10de, 0x0c11, pci_subsys_10de_0065_10de_0c11, 0};
+#undef pci_ss_info_10de_0c11
+#define pci_ss_info_10de_0c11 pci_ss_info_10de_0065_10de_0c11
 static const pciSubsystemInfo pci_ss_info_10de_0065_a0a0_03b2 =
 	{0xa0a0, 0x03b2, pci_subsys_10de_0065_a0a0_03b2, 0};
 #undef pci_ss_info_a0a0_03b2
@@ -35485,6 +36487,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x80a7, pci_subsys_10de_0066_1043_80a7, 0};
 #undef pci_ss_info_1043_80a7
 #define pci_ss_info_1043_80a7 pci_ss_info_10de_0066_1043_80a7
+static const pciSubsystemInfo pci_ss_info_10de_0066_10de_0c11 =
+	{0x10de, 0x0c11, pci_subsys_10de_0066_10de_0c11, 0};
+#undef pci_ss_info_10de_0c11
+#define pci_ss_info_10de_0c11 pci_ss_info_10de_0066_10de_0c11
 static const pciSubsystemInfo pci_ss_info_10de_0067_1043_0c11 =
 	{0x1043, 0x0c11, pci_subsys_10de_0067_1043_0c11, 0};
 #undef pci_ss_info_1043_0c11
@@ -35841,6 +36847,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x14af, 0x7103, pci_subsys_10de_0110_14af_7103, 0};
 #undef pci_ss_info_14af_7103
 #define pci_ss_info_14af_7103 pci_ss_info_10de_0110_14af_7103
+static const pciSubsystemInfo pci_ss_info_10de_0110_1545_0023 =
+	{0x1545, 0x0023, pci_subsys_10de_0110_1545_0023, 0};
+#undef pci_ss_info_1545_0023
+#define pci_ss_info_1545_0023 pci_ss_info_10de_0110_1545_0023
 static const pciSubsystemInfo pci_ss_info_10de_0141_1043_81b0 =
 	{0x1043, 0x81b0, pci_subsys_10de_0141_1043_81b0, 0};
 #undef pci_ss_info_1043_81b0
@@ -35917,6 +36927,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x08b0, pci_subsys_10de_0176_103c_08b0, 0};
 #undef pci_ss_info_103c_08b0
 #define pci_ss_info_103c_08b0 pci_ss_info_10de_0176_103c_08b0
+static const pciSubsystemInfo pci_ss_info_10de_0176_144d_c005 =
+	{0x144d, 0xc005, pci_subsys_10de_0176_144d_c005, 0};
+#undef pci_ss_info_144d_c005
+#define pci_ss_info_144d_c005 pci_ss_info_10de_0176_144d_c005
 static const pciSubsystemInfo pci_ss_info_10de_0176_4c53_1090 =
 	{0x4c53, 0x1090, pci_subsys_10de_0176_4c53_1090, 0};
 #undef pci_ss_info_4c53_1090
@@ -35977,6 +36991,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xa0a0, 0x03b9, pci_subsys_10de_01ed_a0a0_03b9, 0};
 #undef pci_ss_info_a0a0_03b9
 #define pci_ss_info_a0a0_03b9 pci_ss_info_10de_01ed_a0a0_03b9
+static const pciSubsystemInfo pci_ss_info_10de_01ee_10de_01ee =
+	{0x10de, 0x01ee, pci_subsys_10de_01ee_10de_01ee, 0};
+#undef pci_ss_info_10de_01ee
+#define pci_ss_info_10de_01ee pci_ss_info_10de_01ee_10de_01ee
 static const pciSubsystemInfo pci_ss_info_10de_01ee_a0a0_03b9 =
 	{0xa0a0, 0x03b9, pci_subsys_10de_01ee_a0a0_03b9, 0};
 #undef pci_ss_info_a0a0_03b9
@@ -36017,6 +37035,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_0240_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0240_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0244_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_0244_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_0244_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_0244_10de_0244 =
 	{0x10de, 0x0244, pci_subsys_10de_0244_10de_0244, 0};
 #undef pci_ss_info_10de_0244
@@ -36029,6 +37051,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x8023, pci_subsys_10de_0251_1043_8023, 0};
 #undef pci_ss_info_1043_8023
 #define pci_ss_info_1043_8023 pci_ss_info_10de_0251_1043_8023
+static const pciSubsystemInfo pci_ss_info_10de_0251_10de_0251 =
+	{0x10de, 0x0251, pci_subsys_10de_0251_10de_0251, 0};
+#undef pci_ss_info_10de_0251
+#define pci_ss_info_10de_0251 pci_ss_info_10de_0251_10de_0251
 static const pciSubsystemInfo pci_ss_info_10de_0253_107d_2896 =
 	{0x107d, 0x2896, pci_subsys_10de_0253_107d_2896, 0};
 #undef pci_ss_info_107d_2896
@@ -36037,6 +37063,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x8f09, pci_subsys_10de_0253_147b_8f09, 0};
 #undef pci_ss_info_147b_8f09
 #define pci_ss_info_147b_8f09 pci_ss_info_10de_0253_147b_8f09
+static const pciSubsystemInfo pci_ss_info_10de_0260_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_0260_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_0260_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_0260_1043_81bc =
 	{0x1043, 0x81bc, pci_subsys_10de_0260_1043_81bc, 0};
 #undef pci_ss_info_1043_81bc
@@ -36049,6 +37079,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_0260_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0260_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0264_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_0264_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_0264_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_0264_1043_81bc =
 	{0x1043, 0x81bc, pci_subsys_10de_0264_1043_81bc, 0};
 #undef pci_ss_info_1043_81bc
@@ -36057,6 +37091,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_0264_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0264_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0265_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_0265_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_0265_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_0265_1043_81bc =
 	{0x1043, 0x81bc, pci_subsys_10de_0265_1043_81bc, 0};
 #undef pci_ss_info_1043_81bc
@@ -36065,6 +37103,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_0265_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0265_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0266_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_0266_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_0266_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_0266_1043_81bc =
 	{0x1043, 0x81bc, pci_subsys_10de_0266_1043_81bc, 0};
 #undef pci_ss_info_1043_81bc
@@ -36081,6 +37123,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_0267_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0267_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0269_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_0269_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_0269_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_0269_1043_8141 =
 	{0x1043, 0x8141, pci_subsys_10de_0269_1043_8141, 0};
 #undef pci_ss_info_1043_8141
@@ -36089,6 +37135,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_0269_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0269_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_026c_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_026c_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_026c_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_026c_10de_cb84 =
 	{0x10de, 0xcb84, pci_subsys_10de_026c_10de_cb84, 0};
 #undef pci_ss_info_10de_cb84
@@ -36097,6 +37147,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_026c_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_026c_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_026d_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_026d_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_026d_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_026d_1043_81bc =
 	{0x1043, 0x81bc, pci_subsys_10de_026d_1043_81bc, 0};
 #undef pci_ss_info_1043_81bc
@@ -36105,6 +37159,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_026d_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_026d_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_026e_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_026e_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_026e_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_026e_1043_81bc =
 	{0x1043, 0x81bc, pci_subsys_10de_026e_1043_81bc, 0};
 #undef pci_ss_info_1043_81bc
@@ -36113,6 +37171,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_026e_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_026e_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_026f_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_026f_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_026f_103c_30b7
+static const pciSubsystemInfo pci_ss_info_10de_0270_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_0270_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_0270_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_0270_1043_81bc =
 	{0x1043, 0x81bc, pci_subsys_10de_0270_1043_81bc, 0};
 #undef pci_ss_info_1043_81bc
@@ -36125,6 +37191,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_0270_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0270_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0271_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_0271_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_0271_103c_30b7
+static const pciSubsystemInfo pci_ss_info_10de_027e_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_027e_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_027e_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_027e_1043_81cd =
 	{0x1043, 0x81cd, pci_subsys_10de_027e_1043_81cd, 0};
 #undef pci_ss_info_1043_81cd
@@ -36137,6 +37211,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_027e_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_027e_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_027f_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_027f_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_027f_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_027f_1043_81cd =
 	{0x1043, 0x81cd, pci_subsys_10de_027f_1043_81cd, 0};
 #undef pci_ss_info_1043_81cd
@@ -36153,10 +37231,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10de, 0x042b, pci_subsys_10de_0291_10de_042b, 0};
 #undef pci_ss_info_10de_042b
 #define pci_ss_info_10de_042b pci_ss_info_10de_0291_10de_042b
+static const pciSubsystemInfo pci_ss_info_10de_0295_1043_8225 =
+	{0x1043, 0x8225, pci_subsys_10de_0295_1043_8225, 0};
+#undef pci_ss_info_1043_8225
+#define pci_ss_info_1043_8225 pci_ss_info_10de_0295_1043_8225
 static const pciSubsystemInfo pci_ss_info_10de_0295_107d_2a68 =
 	{0x107d, 0x2a68, pci_subsys_10de_0295_107d_2a68, 0};
 #undef pci_ss_info_107d_2a68
 #define pci_ss_info_107d_2a68 pci_ss_info_10de_0295_107d_2a68
+static const pciSubsystemInfo pci_ss_info_10de_0295_1462_0663 =
+	{0x1462, 0x0663, pci_subsys_10de_0295_1462_0663, 0};
+#undef pci_ss_info_1462_0663
+#define pci_ss_info_1462_0663 pci_ss_info_10de_0295_1462_0663
+static const pciSubsystemInfo pci_ss_info_10de_02e0_02e0_2249 =
+	{0x02e0, 0x2249, pci_subsys_10de_02e0_02e0_2249, 0};
+#undef pci_ss_info_02e0_2249
+#define pci_ss_info_02e0_2249 pci_ss_info_10de_02e0_02e0_2249
+static const pciSubsystemInfo pci_ss_info_10de_02f0_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_02f0_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_02f0_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_02f0_1043_81cd =
 	{0x1043, 0x81cd, pci_subsys_10de_02f0_1043_81cd, 0};
 #undef pci_ss_info_1043_81cd
@@ -36169,6 +37263,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1458, 0x5000, pci_subsys_10de_02f1_1458_5000, 0};
 #undef pci_ss_info_1458_5000
 #define pci_ss_info_1458_5000 pci_ss_info_10de_02f1_1458_5000
+static const pciSubsystemInfo pci_ss_info_10de_02f8_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_02f8_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_02f8_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_02f8_1043_81cd =
 	{0x1043, 0x81cd, pci_subsys_10de_02f8_1043_81cd, 0};
 #undef pci_ss_info_1043_81cd
@@ -36181,6 +37279,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_02f8_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02f8_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02f9_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_02f9_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_02f9_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_02f9_1043_81cd =
 	{0x1043, 0x81cd, pci_subsys_10de_02f9_1043_81cd, 0};
 #undef pci_ss_info_1043_81cd
@@ -36193,6 +37295,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_02f9_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02f9_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02fa_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_02fa_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_02fa_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_02fa_1043_81cd =
 	{0x1043, 0x81cd, pci_subsys_10de_02fa_1043_81cd, 0};
 #undef pci_ss_info_1043_81cd
@@ -36205,6 +37311,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_02fa_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02fa_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02fc_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_02fc_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_02fc_103c_30b7
+static const pciSubsystemInfo pci_ss_info_10de_02fd_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_02fd_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_02fd_103c_30b7
+static const pciSubsystemInfo pci_ss_info_10de_02fe_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_02fe_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_02fe_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_02fe_1043_81cd =
 	{0x1043, 0x81cd, pci_subsys_10de_02fe_1043_81cd, 0};
 #undef pci_ss_info_1043_81cd
@@ -36217,6 +37335,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7207, pci_subsys_10de_02fe_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02fe_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02ff_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_10de_02ff_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_10de_02ff_103c_30b7
 static const pciSubsystemInfo pci_ss_info_10de_02ff_1043_81cd =
 	{0x1043, 0x81cd, pci_subsys_10de_02ff_1043_81cd, 0};
 #undef pci_ss_info_1043_81cd
@@ -36237,6 +37359,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x02fb, pci_subsys_10de_0322_1043_02fb, 0};
 #undef pci_ss_info_1043_02fb
 #define pci_ss_info_1043_02fb pci_ss_info_10de_0322_1043_02fb
+static const pciSubsystemInfo pci_ss_info_10de_0322_1462_9110 =
+	{0x1462, 0x9110, pci_subsys_10de_0322_1462_9110, 0};
+#undef pci_ss_info_1462_9110
+#define pci_ss_info_1462_9110 pci_ss_info_10de_0322_1462_9110
 static const pciSubsystemInfo pci_ss_info_10de_0322_1462_9171 =
 	{0x1462, 0x9171, pci_subsys_10de_0322_1462_9171, 0};
 #undef pci_ss_info_1462_9171
@@ -36249,10 +37375,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0196, pci_subsys_10de_0324_1028_0196, 0};
 #undef pci_ss_info_1028_0196
 #define pci_ss_info_1028_0196 pci_ss_info_10de_0324_1028_0196
+static const pciSubsystemInfo pci_ss_info_10de_0324_103c_006a =
+	{0x103c, 0x006a, pci_subsys_10de_0324_103c_006a, 0};
+#undef pci_ss_info_103c_006a
+#define pci_ss_info_103c_006a pci_ss_info_10de_0324_103c_006a
 static const pciSubsystemInfo pci_ss_info_10de_0324_1071_8160 =
 	{0x1071, 0x8160, pci_subsys_10de_0324_1071_8160, 0};
 #undef pci_ss_info_1071_8160
 #define pci_ss_info_1071_8160 pci_ss_info_10de_0324_1071_8160
+static const pciSubsystemInfo pci_ss_info_10de_0330_1043_8137 =
+	{0x1043, 0x8137, pci_subsys_10de_0330_1043_8137, 0};
+#undef pci_ss_info_1043_8137
+#define pci_ss_info_1043_8137 pci_ss_info_10de_0330_1043_8137
 static const pciSubsystemInfo pci_ss_info_10de_0331_1043_8145 =
 	{0x1043, 0x8145, pci_subsys_10de_0331_1043_8145, 0};
 #undef pci_ss_info_1043_8145
@@ -36265,6 +37399,38 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x006a, pci_subsys_10de_0347_103c_006a, 0};
 #undef pci_ss_info_103c_006a
 #define pci_ss_info_103c_006a pci_ss_info_10de_0347_103c_006a
+static const pciSubsystemInfo pci_ss_info_10de_0362_147b_12c4 =
+	{0x147b, 0x12c4, pci_subsys_10de_0362_147b_12c4, 0};
+#undef pci_ss_info_147b_12c4
+#define pci_ss_info_147b_12c4 pci_ss_info_10de_0362_147b_12c4
+static const pciSubsystemInfo pci_ss_info_10de_0368_147b_12c4 =
+	{0x147b, 0x12c4, pci_subsys_10de_0368_147b_12c4, 0};
+#undef pci_ss_info_147b_12c4
+#define pci_ss_info_147b_12c4 pci_ss_info_10de_0368_147b_12c4
+static const pciSubsystemInfo pci_ss_info_10de_0369_147b_12c4 =
+	{0x147b, 0x12c4, pci_subsys_10de_0369_147b_12c4, 0};
+#undef pci_ss_info_147b_12c4
+#define pci_ss_info_147b_12c4 pci_ss_info_10de_0369_147b_12c4
+static const pciSubsystemInfo pci_ss_info_10de_036c_147b_12c4 =
+	{0x147b, 0x12c4, pci_subsys_10de_036c_147b_12c4, 0};
+#undef pci_ss_info_147b_12c4
+#define pci_ss_info_147b_12c4 pci_ss_info_10de_036c_147b_12c4
+static const pciSubsystemInfo pci_ss_info_10de_036d_147b_12c4 =
+	{0x147b, 0x12c4, pci_subsys_10de_036d_147b_12c4, 0};
+#undef pci_ss_info_147b_12c4
+#define pci_ss_info_147b_12c4 pci_ss_info_10de_036d_147b_12c4
+static const pciSubsystemInfo pci_ss_info_10de_036e_147b_12c4 =
+	{0x147b, 0x12c4, pci_subsys_10de_036e_147b_12c4, 0};
+#undef pci_ss_info_147b_12c4
+#define pci_ss_info_147b_12c4 pci_ss_info_10de_036e_147b_12c4
+static const pciSubsystemInfo pci_ss_info_10de_0373_147b_12c4 =
+	{0x147b, 0x12c4, pci_subsys_10de_0373_147b_12c4, 0};
+#undef pci_ss_info_147b_12c4
+#define pci_ss_info_147b_12c4 pci_ss_info_10de_0373_147b_12c4
+static const pciSubsystemInfo pci_ss_info_10de_037f_147b_12c4 =
+	{0x147b, 0x12c4, pci_subsys_10de_037f_147b_12c4, 0};
+#undef pci_ss_info_147b_12c4
+#define pci_ss_info_147b_12c4 pci_ss_info_10de_037f_147b_12c4
 static const pciSubsystemInfo pci_ss_info_10de_0391_1458_3427 =
 	{0x1458, 0x3427, pci_subsys_10de_0391_1458_3427, 0};
 #undef pci_ss_info_1458_3427
@@ -36273,6 +37439,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x0622, pci_subsys_10de_0392_1462_0622, 0};
 #undef pci_ss_info_1462_0622
 #define pci_ss_info_1462_0622 pci_ss_info_10de_0392_1462_0622
+static const pciSubsystemInfo pci_ss_info_10de_0393_10de_0412 =
+	{0x10de, 0x0412, pci_subsys_10de_0393_10de_0412, 0};
+#undef pci_ss_info_10de_0412
+#define pci_ss_info_10de_0412 pci_ss_info_10de_0393_10de_0412
 static const pciSubsystemInfo pci_ss_info_10de_0398_1025_006c =
 	{0x1025, 0x006c, pci_subsys_10de_0398_1025_006c, 0};
 #undef pci_ss_info_1025_006c
@@ -36488,6 +37658,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x235c, pci_subsys_10ec_8167_1462_235c, 0};
 #undef pci_ss_info_1462_235c
 #define pci_ss_info_1462_235c pci_ss_info_10ec_8167_1462_235c
+static const pciSubsystemInfo pci_ss_info_10ec_8167_1462_236c =
+	{0x1462, 0x236c, pci_subsys_10ec_8167_1462_236c, 0};
+#undef pci_ss_info_1462_236c
+#define pci_ss_info_1462_236c pci_ss_info_10ec_8167_1462_236c
 #endif
 static const pciSubsystemInfo pci_ss_info_10ec_8169_1025_0079 =
 	{0x1025, 0x0079, pci_subsys_10ec_8169_1025_0079, 0};
@@ -36656,6 +37830,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1102, 0x1006, pci_subsys_1102_0007_1102_1006, 0};
 #undef pci_ss_info_1102_1006
 #define pci_ss_info_1102_1006 pci_ss_info_1102_0007_1102_1006
+static const pciSubsystemInfo pci_ss_info_1102_0007_1102_1012 =
+	{0x1102, 0x1012, pci_subsys_1102_0007_1102_1012, 0};
+#undef pci_ss_info_1102_1012
+#define pci_ss_info_1102_1012 pci_ss_info_1102_0007_1102_1012
 static const pciSubsystemInfo pci_ss_info_1102_0007_1462_1009 =
 	{0x1462, 0x1009, pci_subsys_1102_0007_1462_1009, 0};
 #undef pci_ss_info_1462_1009
@@ -36664,6 +37842,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1102, 0x0008, pci_subsys_1102_0008_1102_0008, 0};
 #undef pci_ss_info_1102_0008
 #define pci_ss_info_1102_0008 pci_ss_info_1102_0008_1102_0008
+static const pciSubsystemInfo pci_ss_info_1102_0009_1102_0010 =
+	{0x1102, 0x0010, pci_subsys_1102_0009_1102_0010, 0};
+#undef pci_ss_info_1102_0010
+#define pci_ss_info_1102_0010 pci_ss_info_1102_0009_1102_0010
 static const pciSubsystemInfo pci_ss_info_1102_4001_1102_0010 =
 	{0x1102, 0x0010, pci_subsys_1102_4001_1102_0010, 0};
 #undef pci_ss_info_1102_0010
@@ -37200,6 +38382,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xa0a0, 0x0342, pci_subsys_1106_3059_a0a0_0342, 0};
 #undef pci_ss_info_a0a0_0342
 #define pci_ss_info_a0a0_0342 pci_ss_info_1106_3059_a0a0_0342
+static const pciSubsystemInfo pci_ss_info_1106_3059_aa01_1106 =
+	{0xaa01, 0x1106, pci_subsys_1106_3059_aa01_1106, 0};
+#undef pci_ss_info_aa01_1106
+#define pci_ss_info_aa01_1106 pci_ss_info_1106_3059_aa01_1106
 static const pciSubsystemInfo pci_ss_info_1106_3065_1043_80a1 =
 	{0x1043, 0x80a1, pci_subsys_1106_3065_1043_80a1, 0};
 #undef pci_ss_info_1043_80a1
@@ -37220,6 +38406,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x13b9, 0x1421, pci_subsys_1106_3065_13b9_1421, 0};
 #undef pci_ss_info_13b9_1421
 #define pci_ss_info_13b9_1421 pci_ss_info_1106_3065_13b9_1421
+static const pciSubsystemInfo pci_ss_info_1106_3065_1462_7061 =
+	{0x1462, 0x7061, pci_subsys_1106_3065_1462_7061, 0};
+#undef pci_ss_info_1462_7061
+#define pci_ss_info_1462_7061 pci_ss_info_1106_3065_1462_7061
 static const pciSubsystemInfo pci_ss_info_1106_3065_1462_7181 =
 	{0x1462, 0x7181, pci_subsys_1106_3065_1462_7181, 0};
 #undef pci_ss_info_1462_7181
@@ -37432,6 +38622,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1458, 0xd000, pci_subsys_1106_7205_1458_d000, 0};
 #undef pci_ss_info_1458_d000
 #define pci_ss_info_1458_d000 pci_ss_info_1106_7205_1458_d000
+static const pciSubsystemInfo pci_ss_info_1106_7205_1462_7061 =
+	{0x1462, 0x7061, pci_subsys_1106_7205_1462_7061, 0};
+#undef pci_ss_info_1462_7061
+#define pci_ss_info_1462_7061 pci_ss_info_1106_7205_1462_7061
 static const pciSubsystemInfo pci_ss_info_1106_8598_1019_0985 =
 	{0x1019, 0x0985, pci_subsys_1106_8598_1019_0985, 0};
 #undef pci_ss_info_1019_0985
@@ -37816,6 +39010,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1894, 0xfe01, pci_subsys_1131_7134_1894_fe01, 0};
 #undef pci_ss_info_1894_fe01
 #define pci_ss_info_1894_fe01 pci_ss_info_1131_7134_1894_fe01
+static const pciSubsystemInfo pci_ss_info_1131_7134_5168_0138 =
+	{0x5168, 0x0138, pci_subsys_1131_7134_5168_0138, 0};
+#undef pci_ss_info_5168_0138
+#define pci_ss_info_5168_0138 pci_ss_info_1131_7134_5168_0138
 static const pciSubsystemInfo pci_ss_info_1131_7146_110a_0000 =
 	{0x110a, 0x0000, pci_subsys_1131_7146_110a_0000, 0};
 #undef pci_ss_info_110a_0000
@@ -37962,10 +39160,6 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1133, 0xe013, pci_subsys_1133_e013_1133_e013, 0};
 #undef pci_ss_info_1133_e013
 #define pci_ss_info_1133_e013 pci_ss_info_1133_e013_1133_e013
-static const pciSubsystemInfo pci_ss_info_1133_e015_1133_e015 =
-	{0x1133, 0xe015, pci_subsys_1133_e015_1133_e015, 0};
-#undef pci_ss_info_1133_e015
-#define pci_ss_info_1133_e015 pci_ss_info_1133_e015_1133_e015
 static const pciSubsystemInfo pci_ss_info_1133_e017_1133_e017 =
 	{0x1133, 0xe017, pci_subsys_1133_e017_1133_e017, 0};
 #undef pci_ss_info_1133_e017
@@ -38034,6 +39228,30 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1133, 0x1c0c, pci_subsys_1133_e01c_1133_1c0c, 0};
 #undef pci_ss_info_1133_1c0c
 #define pci_ss_info_1133_1c0c pci_ss_info_1133_e01c_1133_1c0c
+static const pciSubsystemInfo pci_ss_info_1133_e01e_1133_1e01 =
+	{0x1133, 0x1e01, pci_subsys_1133_e01e_1133_1e01, 0};
+#undef pci_ss_info_1133_1e01
+#define pci_ss_info_1133_1e01 pci_ss_info_1133_e01e_1133_1e01
+static const pciSubsystemInfo pci_ss_info_1133_e01e_1133_e01e =
+	{0x1133, 0xe01e, pci_subsys_1133_e01e_1133_e01e, 0};
+#undef pci_ss_info_1133_e01e
+#define pci_ss_info_1133_e01e pci_ss_info_1133_e01e_1133_e01e
+static const pciSubsystemInfo pci_ss_info_1133_e020_1133_2001 =
+	{0x1133, 0x2001, pci_subsys_1133_e020_1133_2001, 0};
+#undef pci_ss_info_1133_2001
+#define pci_ss_info_1133_2001 pci_ss_info_1133_e020_1133_2001
+static const pciSubsystemInfo pci_ss_info_1133_e020_1133_e020 =
+	{0x1133, 0xe020, pci_subsys_1133_e020_1133_e020, 0};
+#undef pci_ss_info_1133_e020
+#define pci_ss_info_1133_e020 pci_ss_info_1133_e020_1133_e020
+static const pciSubsystemInfo pci_ss_info_1133_e022_1133_2200 =
+	{0x1133, 0x2200, pci_subsys_1133_e022_1133_2200, 0};
+#undef pci_ss_info_1133_2200
+#define pci_ss_info_1133_2200 pci_ss_info_1133_e022_1133_2200
+static const pciSubsystemInfo pci_ss_info_1133_e022_1133_e022 =
+	{0x1133, 0xe022, pci_subsys_1133_e022_1133_e022, 0};
+#undef pci_ss_info_1133_e022
+#define pci_ss_info_1133_e022 pci_ss_info_1133_e022_1133_e022
 static const pciSubsystemInfo pci_ss_info_1133_e024_1133_2400 =
 	{0x1133, 0x2400, pci_subsys_1133_e024_1133_2400, 0};
 #undef pci_ss_info_1133_2400
@@ -38050,6 +39268,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1133, 0xe028, pci_subsys_1133_e028_1133_e028, 0};
 #undef pci_ss_info_1133_e028
 #define pci_ss_info_1133_e028 pci_ss_info_1133_e028_1133_e028
+static const pciSubsystemInfo pci_ss_info_1133_e02e_1133_2e01 =
+	{0x1133, 0x2e01, pci_subsys_1133_e02e_1133_2e01, 0};
+#undef pci_ss_info_1133_2e01
+#define pci_ss_info_1133_2e01 pci_ss_info_1133_e02e_1133_2e01
+static const pciSubsystemInfo pci_ss_info_1133_e02e_1133_e02e =
+	{0x1133, 0xe02e, pci_subsys_1133_e02e_1133_e02e, 0};
+#undef pci_ss_info_1133_e02e
+#define pci_ss_info_1133_e02e pci_ss_info_1133_e02e_1133_e02e
+static const pciSubsystemInfo pci_ss_info_1133_e032_1133_3201 =
+	{0x1133, 0x3201, pci_subsys_1133_e032_1133_3201, 0};
+#undef pci_ss_info_1133_3201
+#define pci_ss_info_1133_3201 pci_ss_info_1133_e032_1133_3201
+static const pciSubsystemInfo pci_ss_info_1133_e032_1133_e032 =
+	{0x1133, 0xe032, pci_subsys_1133_e032_1133_e032, 0};
+#undef pci_ss_info_1133_e032
+#define pci_ss_info_1133_e032 pci_ss_info_1133_e032_1133_e032
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
@@ -38578,6 +39812,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10f7, 0x8338, pci_subsys_1180_0476_10f7_8338, 0};
 #undef pci_ss_info_10f7_8338
 #define pci_ss_info_10f7_8338 pci_ss_info_1180_0476_10f7_8338
+static const pciSubsystemInfo pci_ss_info_1180_0476_144d_c005 =
+	{0x144d, 0xc005, pci_subsys_1180_0476_144d_c005, 0};
+#undef pci_ss_info_144d_c005
+#define pci_ss_info_144d_c005 pci_ss_info_1180_0476_144d_c005
 static const pciSubsystemInfo pci_ss_info_1180_0476_144d_c00c =
 	{0x144d, 0xc00c, pci_subsys_1180_0476_144d_c00c, 0};
 #undef pci_ss_info_144d_c00c
@@ -38622,6 +39860,10 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1028_0188
 #define pci_ss_info_1028_0188 pci_ss_info_1180_0552_1028_0188
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_1180_0552_144d_c005 =
+	{0x144d, 0xc005, pci_subsys_1180_0552_144d_c005, 0};
+#undef pci_ss_info_144d_c005
+#define pci_ss_info_144d_c005 pci_ss_info_1180_0552_144d_c005
 static const pciSubsystemInfo pci_ss_info_1180_0552_144d_c00c =
 	{0x144d, 0xc00c, pci_subsys_1180_0552_144d_c00c, 0};
 #undef pci_ss_info_144d_c00c
@@ -38630,6 +39872,12 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x17aa, 0x201e, pci_subsys_1180_0552_17aa_201e, 0};
 #undef pci_ss_info_17aa_201e
 #define pci_ss_info_17aa_201e pci_ss_info_1180_0552_17aa_201e
+#endif
+static const pciSubsystemInfo pci_ss_info_1180_0592_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_1180_0592_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_1180_0592_103c_30b7
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1180_0592_1043_1967 =
 	{0x1043, 0x1967, pci_subsys_1180_0592_1043_1967, 0};
 #undef pci_ss_info_1043_1967
@@ -38658,6 +39906,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1028_01a2
 #define pci_ss_info_1028_01a2 pci_ss_info_1180_0822_1028_01a2
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1180_0822_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_1180_0822_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_1180_0822_103c_30b7
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1180_0822_1043_1967 =
 	{0x1043, 0x1967, pci_subsys_1180_0822_1043_1967, 0};
 #undef pci_ss_info_1043_1967
@@ -38674,6 +39928,24 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x17aa, 0x201d, pci_subsys_1180_0822_17aa_201d, 0};
 #undef pci_ss_info_17aa_201d
 #define pci_ss_info_17aa_201d pci_ss_info_1180_0822_17aa_201d
+#endif
+static const pciSubsystemInfo pci_ss_info_1180_0832_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_1180_0832_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_1180_0832_103c_30b7
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1180_0843_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_1180_0843_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_1180_0843_103c_30b7
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1180_0852_103c_30b7 =
+	{0x103c, 0x30b7, pci_subsys_1180_0852_103c_30b7, 0};
+#undef pci_ss_info_103c_30b7
+#define pci_ss_info_103c_30b7 pci_ss_info_1180_0852_103c_30b7
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1180_0852_1043_1967 =
 	{0x1043, 0x1967, pci_subsys_1180_0852_1043_1967, 0};
 #undef pci_ss_info_1043_1967
@@ -38710,6 +39982,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1385, 0x4e00, pci_subsys_11ab_1faa_1385_4e00, 0};
 #undef pci_ss_info_1385_4e00
 #define pci_ss_info_1385_4e00 pci_ss_info_11ab_1faa_1385_4e00
+static const pciSubsystemInfo pci_ss_info_11ab_1faa_1385_6b00 =
+	{0x1385, 0x6b00, pci_subsys_11ab_1faa_1385_6b00, 0};
+#undef pci_ss_info_1385_6b00
+#define pci_ss_info_1385_6b00 pci_ss_info_11ab_1faa_1385_6b00
 static const pciSubsystemInfo pci_ss_info_11ab_4320_1019_0f38 =
 	{0x1019, 0x0f38, pci_subsys_11ab_4320_1019_0f38, 0};
 #undef pci_ss_info_1019_0f38
@@ -40054,6 +41330,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1113, 0x8201, pci_subsys_1260_3890_1113_8201, 0};
 #undef pci_ss_info_1113_8201
 #define pci_ss_info_1113_8201 pci_ss_info_1260_3890_1113_8201
+static const pciSubsystemInfo pci_ss_info_1260_3890_1113_b301 =
+	{0x1113, 0xb301, pci_subsys_1260_3890_1113_b301, 0};
+#undef pci_ss_info_1113_b301
+#define pci_ss_info_1113_b301 pci_ss_info_1260_3890_1113_b301
 static const pciSubsystemInfo pci_ss_info_1260_3890_1113_ee03 =
 	{0x1113, 0xee03, pci_subsys_1260_3890_1113_ee03, 0};
 #undef pci_ss_info_1113_ee03
@@ -40876,6 +42156,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x12b9, 0x00ad, pci_subsys_12b9_1008_12b9_00ad, 0};
 #undef pci_ss_info_12b9_00ad
 #define pci_ss_info_12b9_00ad pci_ss_info_12b9_1008_12b9_00ad
+static const pciSubsystemInfo pci_ss_info_12b9_1008_12b9_baba =
+	{0x12b9, 0xbaba, pci_subsys_12b9_1008_12b9_baba, 0};
+#undef pci_ss_info_12b9_baba
+#define pci_ss_info_12b9_baba pci_ss_info_12b9_1008_12b9_baba
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_12be_3042_12be_3042 =
@@ -40960,6 +42244,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x12d9, 0x000d, pci_subsys_12d9_1078_12d9_000d, 0};
 #undef pci_ss_info_12d9_000d
 #define pci_ss_info_12d9_000d pci_ss_info_12d9_1078_12d9_000d
+static const pciSubsystemInfo pci_ss_info_12d9_1078_12d9_000e =
+	{0x12d9, 0x000e, pci_subsys_12d9_1078_12d9_000e, 0};
+#undef pci_ss_info_12d9_000e
+#define pci_ss_info_12d9_000e pci_ss_info_12d9_1078_12d9_000e
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
@@ -41240,6 +42528,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1681, 0xa000, pci_subsys_13f6_0111_1681_a000, 0};
 #undef pci_ss_info_1681_a000
 #define pci_ss_info_1681_a000 pci_ss_info_13f6_0111_1681_a000
+static const pciSubsystemInfo pci_ss_info_13f6_0111_270f_1103 =
+	{0x270f, 0x1103, pci_subsys_13f6_0111_270f_1103, 0};
+#undef pci_ss_info_270f_1103
+#define pci_ss_info_270f_1103 pci_ss_info_13f6_0111_270f_1103
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_13fe_1600_1601_0002 =
@@ -41867,6 +43159,12 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_103c_7039 pci_ss_info_14e4_1668_103c_7039
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
+static const pciSubsystemInfo pci_ss_info_14e4_1677_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_14e4_1677_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_14e4_1677_1028_0177
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_14e4_1677_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_14e4_1677_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -41900,6 +43198,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105d, pci_subsys_14e4_1677_1734_105d, 0};
 #undef pci_ss_info_1734_105d
 #define pci_ss_info_1734_105d pci_ss_info_14e4_1677_1734_105d
+static const pciSubsystemInfo pci_ss_info_14e4_1677_3007_103c =
+	{0x3007, 0x103c, pci_subsys_14e4_1677_3007_103c, 0};
+#undef pci_ss_info_3007_103c
+#define pci_ss_info_3007_103c pci_ss_info_14e4_1677_3007_103c
 #endif
 static const pciSubsystemInfo pci_ss_info_14e4_1679_103c_1707 =
 	{0x103c, 0x1707, pci_subsys_14e4_1679_103c_1707, 0};
@@ -41918,6 +43220,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_103c_703c
 #define pci_ss_info_103c_703c pci_ss_info_14e4_1679_103c_703c
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_14e4_167d_103c_0940 =
+	{0x103c, 0x0940, pci_subsys_14e4_167d_103c_0940, 0};
+#undef pci_ss_info_103c_0940
+#define pci_ss_info_103c_0940 pci_ss_info_14e4_167d_103c_0940
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_14e4_167d_17aa_2081 =
 	{0x17aa, 0x2081, pci_subsys_14e4_167d_17aa_2081, 0};
 #undef pci_ss_info_17aa_2081
@@ -42668,10 +43976,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x7063, 0x3000, pci_subsys_14f1_8800_7063_3000, 0};
 #undef pci_ss_info_7063_3000
 #define pci_ss_info_7063_3000 pci_ss_info_14f1_8800_7063_3000
+static const pciSubsystemInfo pci_ss_info_14f1_8800_7063_5500 =
+	{0x7063, 0x5500, pci_subsys_14f1_8800_7063_5500, 0};
+#undef pci_ss_info_7063_5500
+#define pci_ss_info_7063_5500 pci_ss_info_14f1_8800_7063_5500
 static const pciSubsystemInfo pci_ss_info_14f1_8801_0070_2801 =
 	{0x0070, 0x2801, pci_subsys_14f1_8801_0070_2801, 0};
 #undef pci_ss_info_0070_2801
 #define pci_ss_info_0070_2801 pci_ss_info_14f1_8801_0070_2801
+static const pciSubsystemInfo pci_ss_info_14f1_8801_7063_5500 =
+	{0x7063, 0x5500, pci_subsys_14f1_8801_7063_5500, 0};
+#undef pci_ss_info_7063_5500
+#define pci_ss_info_7063_5500 pci_ss_info_14f1_8801_7063_5500
 static const pciSubsystemInfo pci_ss_info_14f1_8802_0070_2801 =
 	{0x0070, 0x2801, pci_subsys_14f1_8802_0070_2801, 0};
 #undef pci_ss_info_0070_2801
@@ -42728,10 +44044,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x7063, 0x3000, pci_subsys_14f1_8802_7063_3000, 0};
 #undef pci_ss_info_7063_3000
 #define pci_ss_info_7063_3000 pci_ss_info_14f1_8802_7063_3000
+static const pciSubsystemInfo pci_ss_info_14f1_8802_7063_5500 =
+	{0x7063, 0x5500, pci_subsys_14f1_8802_7063_5500, 0};
+#undef pci_ss_info_7063_5500
+#define pci_ss_info_7063_5500 pci_ss_info_14f1_8802_7063_5500
 static const pciSubsystemInfo pci_ss_info_14f1_8804_0070_9002 =
 	{0x0070, 0x9002, pci_subsys_14f1_8804_0070_9002, 0};
 #undef pci_ss_info_0070_9002
 #define pci_ss_info_0070_9002 pci_ss_info_14f1_8804_0070_9002
+static const pciSubsystemInfo pci_ss_info_14f1_8804_7063_5500 =
+	{0x7063, 0x5500, pci_subsys_14f1_8804_7063_5500, 0};
+#undef pci_ss_info_7063_5500
+#define pci_ss_info_7063_5500 pci_ss_info_14f1_8804_7063_5500
 static const pciSubsystemInfo pci_ss_info_14f1_8811_0070_3401 =
 	{0x0070, 0x3401, pci_subsys_14f1_8811_0070_3401, 0};
 #undef pci_ss_info_0070_3401
@@ -43130,6 +44454,12 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10a9, 0x8024, pci_subsys_17d5_5831_10a9_8024, 0};
 #undef pci_ss_info_10a9_8024
 #define pci_ss_info_10a9_8024 pci_ss_info_17d5_5831_10a9_8024
+#endif
+static const pciSubsystemInfo pci_ss_info_17d5_5832_103c_1337 =
+	{0x103c, 0x1337, pci_subsys_17d5_5832_103c_1337, 0};
+#undef pci_ss_info_103c_1337
+#define pci_ss_info_103c_1337 pci_ss_info_17d5_5832_103c_1337
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_17d5_5832_10a9_8021 =
 	{0x10a9, 0x8021, pci_subsys_17d5_5832_10a9_8021, 0};
 #undef pci_ss_info_10a9_8021
@@ -43228,6 +44558,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1737, 0x0055, pci_subsys_1814_0301_1737_0055, 0};
 #undef pci_ss_info_1737_0055
 #define pci_ss_info_1737_0055 pci_ss_info_1814_0301_1737_0055
+static const pciSubsystemInfo pci_ss_info_1814_0301_1814_2561 =
+	{0x1814, 0x2561, pci_subsys_1814_0301_1814_2561, 0};
+#undef pci_ss_info_1814_2561
+#define pci_ss_info_1814_2561 pci_ss_info_1814_0301_1814_2561
 static const pciSubsystemInfo pci_ss_info_1814_0302_1186_3c08 =
 	{0x1186, 0x3c08, pci_subsys_1814_0302_1186_3c08, 0};
 #undef pci_ss_info_1186_3c08
@@ -43474,6 +44808,12 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x0270, 0x0801, pci_subsys_4444_0016_0270_0801, 0};
 #undef pci_ss_info_0270_0801
 #define pci_ss_info_0270_0801 pci_ss_info_4444_0016_0270_0801
+#endif
+static const pciSubsystemInfo pci_ss_info_4444_0016_104d_013d =
+	{0x104d, 0x013d, pci_subsys_4444_0016_104d_013d, 0};
+#undef pci_ss_info_104d_013d
+#define pci_ss_info_104d_013d pci_ss_info_4444_0016_104d_013d
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_4444_0016_10fc_d038 =
 	{0x10fc, 0xd038, pci_subsys_4444_0016_10fc_d038, 0};
 #undef pci_ss_info_10fc_d038
@@ -44287,6 +45627,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x7044, pci_subsys_8086_105e_103c_7044, 0};
 #undef pci_ss_info_103c_7044
 #define pci_ss_info_103c_7044 pci_ss_info_8086_105e_103c_7044
+static const pciSubsystemInfo pci_ss_info_8086_105e_103c_704e =
+	{0x103c, 0x704e, pci_subsys_8086_105e_103c_704e, 0};
+#undef pci_ss_info_103c_704e
+#define pci_ss_info_103c_704e pci_ss_info_8086_105e_103c_704e
 static const pciSubsystemInfo pci_ss_info_8086_105e_1775_1100 =
 	{0x1775, 0x1100, pci_subsys_8086_105e_1775_1100, 0};
 #undef pci_ss_info_1775_1100
@@ -44319,6 +45663,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x135e, pci_subsys_8086_105e_8086_135e, 0};
 #undef pci_ss_info_8086_135e
 #define pci_ss_info_8086_135e pci_ss_info_8086_105e_8086_135e
+static const pciSubsystemInfo pci_ss_info_8086_105f_103c_704f =
+	{0x103c, 0x704f, pci_subsys_8086_105f_103c_704f, 0};
+#undef pci_ss_info_103c_704f
+#define pci_ss_info_103c_704f pci_ss_info_8086_105f_103c_704f
 static const pciSubsystemInfo pci_ss_info_8086_105f_8086_115f =
 	{0x8086, 0x115f, pci_subsys_8086_105f_8086_115f, 0};
 #undef pci_ss_info_8086_115f
@@ -44547,6 +45895,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x1199, pci_subsys_8086_10b5_8086_1199, 0};
 #undef pci_ss_info_8086_1199
 #define pci_ss_info_8086_1199 pci_ss_info_8086_10b5_8086_1199
+static const pciSubsystemInfo pci_ss_info_8086_10b9_103c_704a =
+	{0x103c, 0x704a, pci_subsys_8086_10b9_103c_704a, 0};
+#undef pci_ss_info_103c_704a
+#define pci_ss_info_103c_704a pci_ss_info_8086_10b9_103c_704a
 static const pciSubsystemInfo pci_ss_info_8086_10b9_8086_1083 =
 	{0x8086, 0x1083, pci_subsys_8086_10b9_8086_1083, 0};
 #undef pci_ss_info_8086_1083
@@ -44555,6 +45907,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x1093, pci_subsys_8086_10b9_8086_1093, 0};
 #undef pci_ss_info_8086_1093
 #define pci_ss_info_8086_1093 pci_ss_info_8086_10b9_8086_1093
+static const pciSubsystemInfo pci_ss_info_8086_10bc_103c_704b =
+	{0x103c, 0x704b, pci_subsys_8086_10bc_103c_704b, 0};
+#undef pci_ss_info_103c_704b
+#define pci_ss_info_103c_704b pci_ss_info_8086_10bc_103c_704b
 static const pciSubsystemInfo pci_ss_info_8086_10bc_8086_10bc =
 	{0x8086, 0x10bc, pci_subsys_8086_10bc_8086_10bc, 0};
 #undef pci_ss_info_8086_10bc
@@ -44563,6 +45919,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x11bc, pci_subsys_8086_10bc_8086_11bc, 0};
 #undef pci_ss_info_8086_11bc
 #define pci_ss_info_8086_11bc pci_ss_info_8086_10bc_8086_11bc
+static const pciSubsystemInfo pci_ss_info_8086_10d9_103c_1716 =
+	{0x103c, 0x1716, pci_subsys_8086_10d9_103c_1716, 0};
+#undef pci_ss_info_103c_1716
+#define pci_ss_info_103c_1716 pci_ss_info_8086_10d9_103c_1716
+static const pciSubsystemInfo pci_ss_info_8086_10da_103c_1717 =
+	{0x103c, 0x1717, pci_subsys_8086_10da_103c_1717, 0};
+#undef pci_ss_info_103c_1717
+#define pci_ss_info_103c_1717 pci_ss_info_8086_10da_103c_1717
 static const pciSubsystemInfo pci_ss_info_8086_1130_1025_1016 =
 	{0x1025, 0x1016, pci_subsys_8086_1130_1025_1016, 0};
 #undef pci_ss_info_1025_1016
@@ -47247,6 +48611,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1849, 0x2582, pci_subsys_8086_2582_1849_2582, 0};
 #undef pci_ss_info_1849_2582
 #define pci_ss_info_1849_2582 pci_ss_info_8086_2582_1849_2582
+static const pciSubsystemInfo pci_ss_info_8086_2584_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_2584_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_2584_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_2590_1028_0182 =
 	{0x1028, 0x0182, pci_subsys_8086_2590_1028_0182, 0};
 #undef pci_ss_info_1028_0182
@@ -47419,6 +48787,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10b0, pci_subsys_8086_25aa_4c53_10b0, 0};
 #undef pci_ss_info_4c53_10b0
 #define pci_ss_info_4c53_10b0 pci_ss_info_8086_25aa_4c53_10b0
+static const pciSubsystemInfo pci_ss_info_8086_25aa_4c53_10d0 =
+	{0x4c53, 0x10d0, pci_subsys_8086_25aa_4c53_10d0, 0};
+#undef pci_ss_info_4c53_10d0
+#define pci_ss_info_4c53_10d0 pci_ss_info_8086_25aa_4c53_10d0
 static const pciSubsystemInfo pci_ss_info_8086_25aa_4c53_10e0 =
 	{0x4c53, 0x10e0, pci_subsys_8086_25aa_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
@@ -47563,10 +48935,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xe4bf, 0x58b1, pci_subsys_8086_2651_e4bf_58b1, 0};
 #undef pci_ss_info_e4bf_58b1
 #define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2651_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_2652_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_2652_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_2652_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_2652_1462_7028 =
 	{0x1462, 0x7028, pci_subsys_8086_2652_1462_7028, 0};
 #undef pci_ss_info_1462_7028
 #define pci_ss_info_1462_7028 pci_ss_info_8086_2652_1462_7028
+static const pciSubsystemInfo pci_ss_info_8086_2658_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_2658_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_2658_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_2658_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_2658_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -47607,6 +48987,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xe4bf, 0x58b1, pci_subsys_8086_2658_e4bf_58b1, 0};
 #undef pci_ss_info_e4bf_58b1
 #define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2658_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_2659_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_2659_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_2659_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_2659_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_2659_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -47647,6 +49031,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xe4bf, 0x58b1, pci_subsys_8086_2659_e4bf_58b1, 0};
 #undef pci_ss_info_e4bf_58b1
 #define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2659_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_265a_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_265a_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_265a_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_265a_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_265a_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -47687,6 +49075,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xe4bf, 0x58b1, pci_subsys_8086_265a_e4bf_58b1, 0};
 #undef pci_ss_info_e4bf_58b1
 #define pci_ss_info_e4bf_58b1 pci_ss_info_8086_265a_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_265b_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_265b_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_265b_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_265b_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_265b_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -47723,6 +49115,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xe4bf, 0x58b1, pci_subsys_8086_265b_e4bf_58b1, 0};
 #undef pci_ss_info_e4bf_58b1
 #define pci_ss_info_e4bf_58b1 pci_ss_info_8086_265b_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_265c_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_265c_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_265c_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_265c_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_265c_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -47835,6 +49231,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x814e, pci_subsys_8086_2668_1043_814e, 0};
 #undef pci_ss_info_1043_814e
 #define pci_ss_info_1043_814e pci_ss_info_8086_2668_1043_814e
+static const pciSubsystemInfo pci_ss_info_8086_266a_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_266a_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_266a_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_266a_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_266a_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -47883,6 +49283,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1025, 0x006a, pci_subsys_8086_266e_1025_006a, 0};
 #undef pci_ss_info_1025_006a
 #define pci_ss_info_1025_006a pci_ss_info_8086_266e_1025_006a
+static const pciSubsystemInfo pci_ss_info_8086_266e_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_266e_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_266e_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_266e_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_266e_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -47923,6 +49327,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105a, pci_subsys_8086_266e_1734_105a, 0};
 #undef pci_ss_info_1734_105a
 #define pci_ss_info_1734_105a pci_ss_info_8086_266e_1734_105a
+static const pciSubsystemInfo pci_ss_info_8086_266f_1028_0177 =
+	{0x1028, 0x0177, pci_subsys_8086_266f_1028_0177, 0};
+#undef pci_ss_info_1028_0177
+#define pci_ss_info_1028_0177 pci_ss_info_8086_266f_1028_0177
 static const pciSubsystemInfo pci_ss_info_8086_266f_103c_0934 =
 	{0x103c, 0x0934, pci_subsys_8086_266f_103c_0934, 0};
 #undef pci_ss_info_103c_0934
@@ -49158,6 +50566,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_108e_7aac
 #define pci_ss_info_108e_7aac pci_ss_info_9005_0285_108e_7aac
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_9005_0285_108e_7aae =
+	{0x108e, 0x7aae, pci_subsys_9005_0285_108e_7aae, 0};
+#undef pci_ss_info_108e_7aae
+#define pci_ss_info_108e_7aae pci_ss_info_9005_0285_108e_7aae
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_9005_0285_15d9_02b5 =
 	{0x15d9, 0x02b5, pci_subsys_9005_0285_15d9_02b5, 0};
 #undef pci_ss_info_15d9_02b5
@@ -49342,6 +50756,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x9005, 0x02c8, pci_subsys_9005_0285_9005_02c8, 0};
 #undef pci_ss_info_9005_02c8
 #define pci_ss_info_9005_02c8 pci_ss_info_9005_0285_9005_02c8
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02ce =
+	{0x9005, 0x02ce, pci_subsys_9005_0285_9005_02ce, 0};
+#undef pci_ss_info_9005_02ce
+#define pci_ss_info_9005_02ce pci_ss_info_9005_0285_9005_02ce
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02cf =
+	{0x9005, 0x02cf, pci_subsys_9005_0285_9005_02cf, 0};
+#undef pci_ss_info_9005_02cf
+#define pci_ss_info_9005_02cf pci_ss_info_9005_0285_9005_02cf
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02d0 =
+	{0x9005, 0x02d0, pci_subsys_9005_0285_9005_02d0, 0};
+#undef pci_ss_info_9005_02d0
+#define pci_ss_info_9005_02d0 pci_ss_info_9005_0285_9005_02d0
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02d1 =
+	{0x9005, 0x02d1, pci_subsys_9005_0285_9005_02d1, 0};
+#undef pci_ss_info_9005_02d1
+#define pci_ss_info_9005_02d1 pci_ss_info_9005_0285_9005_02d1
 static const pciSubsystemInfo pci_ss_info_9005_0286_1014_034d =
 	{0x1014, 0x034d, pci_subsys_9005_0286_1014_034d, 0};
 #undef pci_ss_info_1014_034d
@@ -49837,6 +51267,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1000_0030_1028_014a,
 	&pci_ss_info_1000_0030_1028_016c,
 	&pci_ss_info_1000_0030_1028_0183,
+	&pci_ss_info_1000_0030_1028_018a,
 	&pci_ss_info_1000_0030_1028_1010,
 	&pci_ss_info_1000_0030_103c_12c5,
 	&pci_ss_info_1000_0030_124b_1170,
@@ -49855,8 +51286,17 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_1000_0041 NULL
-#define pci_ss_list_1000_0050 NULL
+static const pciSubsystemInfo *pci_ss_list_1000_0050[] = {
+	&pci_ss_info_1000_0050_1028_1f04,
+	&pci_ss_info_1000_0050_1028_1f09,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_1000_0054[] = {
+	&pci_ss_info_1000_0054_1028_1f04,
+	&pci_ss_info_1000_0054_1028_1f05,
+	&pci_ss_info_1000_0054_1028_1f06,
+	&pci_ss_info_1000_0054_1028_1f07,
+	&pci_ss_info_1000_0054_1028_1f08,
 	&pci_ss_info_1000_0054_1028_1f09,
 	NULL
 };
@@ -49866,7 +51306,13 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_1000_0056 NULL
 #define pci_ss_list_1000_0057 NULL
-#define pci_ss_list_1000_0058 NULL
+static const pciSubsystemInfo *pci_ss_list_1000_0058[] = {
+	&pci_ss_info_1000_0058_1028_021d,
+	&pci_ss_info_1000_0058_1028_1f0e,
+	&pci_ss_info_1000_0058_1028_1f0f,
+	&pci_ss_info_1000_0058_1028_1f10,
+	NULL
+};
 #define pci_ss_list_1000_005a NULL
 #define pci_ss_list_1000_005c NULL
 #define pci_ss_list_1000_005e NULL
@@ -49888,8 +51334,12 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1000_0060_1028_1f0c,
 	&pci_ss_info_1000_0060_1028_1f0d,
 	&pci_ss_info_1000_0060_1028_1f11,
+	&pci_ss_info_1000_0060_1033_835a,
 	&pci_ss_info_1000_0060_1043_824d,
 	&pci_ss_info_1000_0060_1170_002f,
+	&pci_ss_info_1000_0060_1170_0036,
+	&pci_ss_info_1000_0060_15d9_c080,
+	&pci_ss_info_1000_0060_17aa_6b7c,
 	&pci_ss_info_1000_0060_8086_1006,
 	&pci_ss_info_1000_0060_8086_100a,
 	&pci_ss_info_1000_0060_8086_1010,
@@ -50017,8 +51467,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1001_0017 NULL
 #define pci_ss_list_1001_9100 NULL
 #define pci_ss_list_1002_3150 NULL
+#define pci_ss_list_1002_3151 NULL
 #define pci_ss_list_1002_3152 NULL
 #define pci_ss_list_1002_3154 NULL
+#define pci_ss_list_1002_3171 NULL
 #define pci_ss_list_1002_3e50 NULL
 #define pci_ss_list_1002_3e54 NULL
 #define pci_ss_list_1002_3e70 NULL
@@ -50181,6 +51633,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1002_437b[] = {
+	&pci_ss_info_1002_437b_10cf_1326,
 	&pci_ss_info_1002_437b_1734_10b8,
 	NULL
 };
@@ -50199,6 +51652,18 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_438c NULL
 #define pci_ss_list_1002_438d NULL
 #define pci_ss_list_1002_438e NULL
+#define pci_ss_list_1002_4390 NULL
+#define pci_ss_list_1002_4391 NULL
+#define pci_ss_list_1002_4392 NULL
+#define pci_ss_list_1002_4393 NULL
+#define pci_ss_list_1002_4394 NULL
+#define pci_ss_list_1002_4395 NULL
+#define pci_ss_list_1002_4396 NULL
+#define pci_ss_list_1002_4397 NULL
+#define pci_ss_list_1002_4398 NULL
+#define pci_ss_list_1002_4399 NULL
+#define pci_ss_list_1002_439c NULL
+#define pci_ss_list_1002_439d NULL
 #define pci_ss_list_1002_4437 NULL
 #define pci_ss_list_1002_4554 NULL
 #define pci_ss_list_1002_4654 NULL
@@ -50267,6 +51732,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1002_4752_1028_00d1,
 	&pci_ss_info_1002_4752_1028_00d9,
 	&pci_ss_info_1002_4752_1028_0134,
+	&pci_ss_info_1002_4752_1028_0165,
 	&pci_ss_info_1002_4752_103c_10e1,
 	&pci_ss_info_1002_4752_107b_6400,
 	&pci_ss_info_1002_4752_1734_007a,
@@ -50351,6 +51817,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_4c44 NULL
 #define pci_ss_list_1002_4c45 NULL
 static const pciSubsystemInfo *pci_ss_list_1002_4c46[] = {
+	&pci_ss_info_1002_4c46_1002_0155,
+	&pci_ss_info_1002_4c46_1014_0155,
 	&pci_ss_info_1002_4c46_1028_00b1,
 	NULL
 };
@@ -50415,6 +51883,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_4c6e NULL
 #define pci_ss_list_1002_4d46 NULL
 #define pci_ss_list_1002_4d4c NULL
+#define pci_ss_list_1002_4d52 NULL
 static const pciSubsystemInfo *pci_ss_list_1002_4e44[] = {
 	&pci_ss_info_1002_4e44_1002_515e,
 	&pci_ss_info_1002_4e44_1002_5965,
@@ -50681,6 +52150,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_5652 NULL
 static const pciSubsystemInfo *pci_ss_list_1002_5653[] = {
 	&pci_ss_info_1002_5653_1025_0080,
+	&pci_ss_info_1002_5653_103c_0940,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1002_5654[] = {
@@ -50724,6 +52194,9 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1002_5955_103c_308b,
 	NULL
 };
+#define pci_ss_list_1002_5956 NULL
+#define pci_ss_list_1002_5957 NULL
+#define pci_ss_list_1002_5958 NULL
 static const pciSubsystemInfo *pci_ss_list_1002_5960[] = {
 	&pci_ss_info_1002_5960_17af_2020,
 	NULL
@@ -50758,6 +52231,33 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_5969 NULL
 #define pci_ss_list_1002_5974 NULL
 #define pci_ss_list_1002_5975 NULL
+#define pci_ss_list_1002_5978 NULL
+#define pci_ss_list_1002_5979 NULL
+#define pci_ss_list_1002_597a NULL
+#define pci_ss_list_1002_597b NULL
+#define pci_ss_list_1002_597c NULL
+#define pci_ss_list_1002_597d NULL
+#define pci_ss_list_1002_597e NULL
+#define pci_ss_list_1002_597f NULL
+#define pci_ss_list_1002_5980 NULL
+#define pci_ss_list_1002_5981 NULL
+#define pci_ss_list_1002_5982 NULL
+#define pci_ss_list_1002_5a10 NULL
+#define pci_ss_list_1002_5a11 NULL
+#define pci_ss_list_1002_5a12 NULL
+#define pci_ss_list_1002_5a13 NULL
+#define pci_ss_list_1002_5a14 NULL
+#define pci_ss_list_1002_5a15 NULL
+#define pci_ss_list_1002_5a16 NULL
+#define pci_ss_list_1002_5a17 NULL
+#define pci_ss_list_1002_5a18 NULL
+#define pci_ss_list_1002_5a19 NULL
+#define pci_ss_list_1002_5a1a NULL
+#define pci_ss_list_1002_5a1b NULL
+#define pci_ss_list_1002_5a1c NULL
+#define pci_ss_list_1002_5a1d NULL
+#define pci_ss_list_1002_5a1e NULL
+#define pci_ss_list_1002_5a1f NULL
 #define pci_ss_list_1002_5a33 NULL
 #define pci_ss_list_1002_5a34 NULL
 #define pci_ss_list_1002_5a36 NULL
@@ -50772,6 +52272,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1002_5b60[] = {
 	&pci_ss_info_1002_5b60_1043_002a,
 	&pci_ss_info_1002_5b60_1043_032e,
+	&pci_ss_info_1002_5b60_1458_2102,
 	&pci_ss_info_1002_5b60_1462_0400,
 	&pci_ss_info_1002_5b60_1462_0402,
 	&pci_ss_info_1002_5b60_196d_1086,
@@ -50870,6 +52371,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_7145 NULL
 static const pciSubsystemInfo *pci_ss_list_1002_7146[] = {
 	&pci_ss_info_1002_7146_1002_0322,
+	&pci_ss_info_1002_7146_1545_1996,
 	NULL
 };
 #define pci_ss_list_1002_7147 NULL
@@ -50889,6 +52391,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_1002_7166[] = {
 	&pci_ss_info_1002_7166_1002_0323,
+	&pci_ss_info_1002_7166_1545_1997,
 	NULL
 };
 #define pci_ss_list_1002_716e NULL
@@ -50897,6 +52400,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_7180 NULL
 #define pci_ss_list_1002_7181 NULL
 #define pci_ss_list_1002_7183 NULL
+#define pci_ss_list_1002_7186 NULL
 #define pci_ss_list_1002_7187 NULL
 #define pci_ss_list_1002_7188 NULL
 #define pci_ss_list_1002_718a NULL
@@ -50964,6 +52468,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_7834 NULL
 #define pci_ss_list_1002_7835 NULL
 #define pci_ss_list_1002_7838 NULL
+#define pci_ss_list_1002_7910 NULL
+#define pci_ss_list_1002_7912 NULL
+#define pci_ss_list_1002_7916 NULL
+#define pci_ss_list_1002_7917 NULL
 #define pci_ss_list_1002_7919 NULL
 #define pci_ss_list_1002_791e NULL
 #define pci_ss_list_1002_791f NULL
@@ -51397,6 +52905,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1014_0308 NULL
 #define pci_ss_list_1014_0314 NULL
 static const pciSubsystemInfo *pci_ss_list_1014_0339[] = {
+	&pci_ss_info_1014_0339_1014_030a,
+	&pci_ss_info_1014_0339_1014_033a,
 	&pci_ss_info_1014_0339_1014_0360,
 	NULL
 };
@@ -52145,6 +53655,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1039_0660 NULL
 #define pci_ss_list_1039_0661 NULL
 #define pci_ss_list_1039_0662 NULL
+#define pci_ss_list_1039_0671 NULL
 #define pci_ss_list_1039_0730 NULL
 #define pci_ss_list_1039_0733 NULL
 #define pci_ss_list_1039_0735 NULL
@@ -52357,6 +53868,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_103c_3080 NULL
 #define pci_ss_list_103c_3085 NULL
 #define pci_ss_list_103c_30b5 NULL
+#define pci_ss_list_103c_31fb NULL
 static const pciSubsystemInfo *pci_ss_list_103c_3220[] = {
 	&pci_ss_info_103c_3220_103c_3225,
 	NULL
@@ -52366,9 +53878,13 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_3230_103c_3234,
 	&pci_ss_info_103c_3230_103c_3235,
 	&pci_ss_info_103c_3230_103c_3237,
+	&pci_ss_info_103c_3230_103c_323d,
 	NULL
 };
 #define pci_ss_list_103c_3238 NULL
+#define pci_ss_list_103c_3300 NULL
+#define pci_ss_list_103c_3302 NULL
+#define pci_ss_list_103c_3305 NULL
 #define pci_ss_list_103c_4030 NULL
 #define pci_ss_list_103c_4031 NULL
 #define pci_ss_list_103c_4037 NULL
@@ -52402,6 +53918,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1043_8168 NULL
 #define pci_ss_list_1043_8187 NULL
 #define pci_ss_list_1043_8188 NULL
+#define pci_ss_list_1043_81e7 NULL
 #define pci_ss_list_1043_81f4 NULL
 #endif
 #define pci_ss_list_1044_1012 NULL
@@ -52522,6 +54039,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_104c_3d07_1048_0a43,
 	&pci_ss_info_104c_3d07_1048_0a44,
 	&pci_ss_info_104c_3d07_107d_2633,
+	&pci_ss_info_104c_3d07_1092_0126,
 	&pci_ss_info_104c_3d07_1092_0127,
 	&pci_ss_info_104c_3d07_1092_0136,
 	&pci_ss_info_104c_3d07_1092_0141,
@@ -52600,29 +54118,34 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_104c_802e NULL
 static const pciSubsystemInfo *pci_ss_list_104c_8031[] = {
 	&pci_ss_info_104c_8031_1025_0080,
+	&pci_ss_info_104c_8031_103c_0934,
 	&pci_ss_info_104c_8031_103c_099c,
 	&pci_ss_info_104c_8031_103c_308b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_104c_8032[] = {
 	&pci_ss_info_104c_8032_1025_0080,
+	&pci_ss_info_104c_8032_103c_0934,
 	&pci_ss_info_104c_8032_103c_099c,
 	&pci_ss_info_104c_8032_103c_308b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_104c_8033[] = {
 	&pci_ss_info_104c_8033_1025_0080,
+	&pci_ss_info_104c_8033_103c_0934,
 	&pci_ss_info_104c_8033_103c_099c,
 	&pci_ss_info_104c_8033_103c_308b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_104c_8034[] = {
 	&pci_ss_info_104c_8034_1025_0080,
+	&pci_ss_info_104c_8034_103c_0934,
 	&pci_ss_info_104c_8034_103c_099c,
 	&pci_ss_info_104c_8034_103c_308b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_104c_8035[] = {
+	&pci_ss_info_104c_8035_103c_0934,
 	&pci_ss_info_104c_8035_103c_099c,
 	NULL
 };
@@ -52673,6 +54196,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_104c_9066_1186_3b04,
 	&pci_ss_info_104c_9066_1186_3b05,
 	&pci_ss_info_104c_9066_13d1_aba0,
+	&pci_ss_info_104c_9066_16ec_010d,
 	&pci_ss_info_104c_9066_1737_0033,
 	NULL
 };
@@ -52730,7 +54254,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_104c_ac44_1071_8160,
 	NULL
 };
-#define pci_ss_list_104c_ac46 NULL
+static const pciSubsystemInfo *pci_ss_list_104c_ac46[] = {
+	&pci_ss_info_104c_ac46_1014_0552,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_104c_ac47[] = {
 	&pci_ss_info_104c_ac47_1028_0139,
 	&pci_ss_info_104c_ac47_1028_013f,
@@ -52822,8 +54349,14 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1050_9922 NULL
 #define pci_ss_list_1050_9970 NULL
 #endif
+#define pci_ss_list_1054_3009 NULL
+#define pci_ss_list_1054_300a NULL
+#define pci_ss_list_1054_300b NULL
+#define pci_ss_list_1054_300f NULL
+#define pci_ss_list_1054_3010 NULL
 #define pci_ss_list_1054_3011 NULL
 #define pci_ss_list_1054_3012 NULL
+#define pci_ss_list_1054_3017 NULL
 #define pci_ss_list_1055_9130 NULL
 #define pci_ss_list_1055_9460 NULL
 #define pci_ss_list_1055_9462 NULL
@@ -52996,6 +54529,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_105a_6269_105a_6269,
 	NULL
 };
+#define pci_ss_list_105a_6300 NULL
 #define pci_ss_list_105a_6621 NULL
 #define pci_ss_list_105a_6622 NULL
 #define pci_ss_list_105a_6624 NULL
@@ -53280,6 +54814,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_1077_2432 NULL
+#define pci_ss_list_1077_2532 NULL
 #define pci_ss_list_1077_3022 NULL
 #define pci_ss_list_1077_3032 NULL
 #define pci_ss_list_1077_4010 NULL
@@ -53367,18 +54902,45 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_108e_1101 NULL
 #define pci_ss_list_108e_1102 NULL
 #define pci_ss_list_108e_1103 NULL
+#define pci_ss_list_108e_1647 NULL
 #define pci_ss_list_108e_1648 NULL
+#define pci_ss_list_108e_16a7 NULL
+#define pci_ss_list_108e_16a8 NULL
 #define pci_ss_list_108e_2bad NULL
 static const pciSubsystemInfo *pci_ss_list_108e_5000[] = {
 	&pci_ss_info_108e_5000_108e_5000,
 	NULL
 };
 #define pci_ss_list_108e_5043 NULL
+#define pci_ss_list_108e_6300 NULL
+#define pci_ss_list_108e_6301 NULL
+#define pci_ss_list_108e_6302 NULL
+#define pci_ss_list_108e_6303 NULL
+#define pci_ss_list_108e_6310 NULL
+#define pci_ss_list_108e_6311 NULL
+#define pci_ss_list_108e_6312 NULL
+#define pci_ss_list_108e_6313 NULL
+#define pci_ss_list_108e_6320 NULL
+#define pci_ss_list_108e_6323 NULL
+#define pci_ss_list_108e_6330 NULL
+#define pci_ss_list_108e_6331 NULL
+#define pci_ss_list_108e_6332 NULL
+#define pci_ss_list_108e_6333 NULL
+#define pci_ss_list_108e_6340 NULL
+#define pci_ss_list_108e_6343 NULL
+#define pci_ss_list_108e_6350 NULL
+#define pci_ss_list_108e_6353 NULL
+#define pci_ss_list_108e_6722 NULL
 #define pci_ss_list_108e_676e NULL
 #define pci_ss_list_108e_7063 NULL
 #define pci_ss_list_108e_8000 NULL
 #define pci_ss_list_108e_8001 NULL
 #define pci_ss_list_108e_8002 NULL
+#define pci_ss_list_108e_80f0 NULL
+#define pci_ss_list_108e_80f8 NULL
+#define pci_ss_list_108e_9010 NULL
+#define pci_ss_list_108e_9020 NULL
+#define pci_ss_list_108e_9102 NULL
 #define pci_ss_list_108e_a000 NULL
 static const pciSubsystemInfo *pci_ss_list_108e_a001[] = {
 	&pci_ss_info_108e_a001_108e_a001,
@@ -53386,6 +54948,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_108e_a801 NULL
 #define pci_ss_list_108e_abba NULL
+#define pci_ss_list_108e_c416 NULL
 #define pci_ss_list_1091_0020 NULL
 #define pci_ss_list_1091_0021 NULL
 #define pci_ss_list_1091_0040 NULL
@@ -53395,6 +54958,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1091_0720 NULL
 #define pci_ss_list_1091_07a0 NULL
 #define pci_ss_list_1091_1091 NULL
+static const pciSubsystemInfo *pci_ss_list_1092_0028[] = {
+	&pci_ss_info_1092_0028_1092_4a00,
+	NULL
+};
 #define pci_ss_list_1092_00a0 NULL
 #define pci_ss_list_1092_00a8 NULL
 #define pci_ss_list_1092_0550 NULL
@@ -53700,6 +55267,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_10b5_0001 NULL
+#define pci_ss_list_10b5_1024 NULL
 #define pci_ss_list_10b5_1042 NULL
 #define pci_ss_list_10b5_1076 NULL
 #define pci_ss_list_10b5_1077 NULL
@@ -53709,6 +55277,12 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10b5_1147 NULL
 #define pci_ss_list_10b5_2540 NULL
 #define pci_ss_list_10b5_2724 NULL
+#define pci_ss_list_10b5_6140 NULL
+#define pci_ss_list_10b5_6150 NULL
+#define pci_ss_list_10b5_6152 NULL
+#define pci_ss_list_10b5_6154 NULL
+#define pci_ss_list_10b5_6254 NULL
+#define pci_ss_list_10b5_6466 NULL
 #define pci_ss_list_10b5_6520 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_10b5_6540[] = {
@@ -53727,9 +55301,22 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_10b5_8111 NULL
+#define pci_ss_list_10b5_8112 NULL
 #define pci_ss_list_10b5_8114 NULL
+#define pci_ss_list_10b5_8311 NULL
+#define pci_ss_list_10b5_8505 NULL
+#define pci_ss_list_10b5_8508 NULL
+#define pci_ss_list_10b5_8509 NULL
+#define pci_ss_list_10b5_8512 NULL
 #define pci_ss_list_10b5_8516 NULL
+#define pci_ss_list_10b5_8517 NULL
+#define pci_ss_list_10b5_8518 NULL
+#define pci_ss_list_10b5_8524 NULL
+#define pci_ss_list_10b5_8525 NULL
 #define pci_ss_list_10b5_8532 NULL
+#define pci_ss_list_10b5_8533 NULL
+#define pci_ss_list_10b5_8547 NULL
+#define pci_ss_list_10b5_8548 NULL
 static const pciSubsystemInfo *pci_ss_list_10b5_9030[] = {
 	&pci_ss_info_10b5_9030_10b5_2862,
 	&pci_ss_info_10b5_9030_10b5_2906,
@@ -53790,6 +55377,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10b5_9050_d84d_4078,
 	NULL
 };
+#define pci_ss_list_10b5_9052 NULL
 static const pciSubsystemInfo *pci_ss_list_10b5_9054[] = {
 	&pci_ss_info_10b5_9054_10b5_2455,
 	&pci_ss_info_10b5_9054_10b5_2696,
@@ -54016,6 +55604,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10b7_9200_10b7_1000,
 	&pci_ss_info_10b7_9200_10b7_7000,
 	&pci_ss_info_10b7_9200_10f1_2466,
+	&pci_ss_info_10b7_9200_144d_c005,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10b7_9201[] = {
@@ -54119,7 +55708,10 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_10b9_1543 NULL
-#define pci_ss_list_10b9_1563 NULL
+static const pciSubsystemInfo *pci_ss_list_10b9_1563[] = {
+	&pci_ss_info_10b9_1563_10b9_1563,
+	NULL
+};
 #define pci_ss_list_10b9_1573 NULL
 #define pci_ss_list_10b9_1621 NULL
 #define pci_ss_list_10b9_1631 NULL
@@ -54164,9 +55756,13 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10b9_5237_1014_0540,
 	&pci_ss_info_10b9_5237_103c_0024,
 	&pci_ss_info_10b9_5237_104d_810f,
+	&pci_ss_info_10b9_5237_10b9_5237,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_10b9_5239[] = {
+	&pci_ss_info_10b9_5239_10b9_5239,
 	NULL
 };
-#define pci_ss_list_10b9_5239 NULL
 #define pci_ss_list_10b9_5243 NULL
 #define pci_ss_list_10b9_5246 NULL
 #define pci_ss_list_10b9_5247 NULL
@@ -54192,7 +55788,10 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_10b9_5453 NULL
-#define pci_ss_list_10b9_5455 NULL
+static const pciSubsystemInfo *pci_ss_list_10b9_5455[] = {
+	&pci_ss_info_10b9_5455_10b9_5455,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_10b9_5457[] = {
 	&pci_ss_info_10b9_5457_1014_0535,
 	&pci_ss_info_10b9_5457_103c_0024,
@@ -54207,13 +55806,19 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10b9_7101_1014_0510,
 	&pci_ss_info_10b9_7101_1014_053c,
 	&pci_ss_info_10b9_7101_103c_0024,
+	&pci_ss_info_10b9_7101_10b9_7101,
 	NULL
 };
 #endif
 #define pci_ss_list_10ba_0301 NULL
 #define pci_ss_list_10ba_0304 NULL
-#define pci_ss_list_10ba_0308 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_10ba_0308[] = {
+	&pci_ss_info_10ba_0308_10dd_0024,
+	NULL
+};
 #define pci_ss_list_10ba_1002 NULL
+#endif
 #define pci_ss_list_10bd_0e34 NULL
 #define pci_ss_list_10c3_1100 NULL
 #define pci_ss_list_10c8_0001 NULL
@@ -54281,6 +55886,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_10cd_2300 NULL
 #define pci_ss_list_10cd_2500 NULL
+#define pci_ss_list_10cd_2700 NULL
 #endif
 #define pci_ss_list_10cf_2001 NULL
 #define pci_ss_list_10d9_0431 NULL
@@ -54301,7 +55907,12 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10dc_0021 NULL
 #define pci_ss_list_10dc_0022 NULL
 #define pci_ss_list_10dc_10dc NULL
-#define pci_ss_list_10dd_0100 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_10dd_0100[] = {
+	&pci_ss_info_10dd_0100_10dd_0023,
+	NULL
+};
+#endif
 #define pci_ss_list_10de_0008 NULL
 #define pci_ss_list_10de_0009 NULL
 #define pci_ss_list_10de_0010 NULL
@@ -54513,11 +56124,13 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0065[] = {
+	&pci_ss_info_10de_0065_10de_0c11,
 	&pci_ss_info_10de_0065_a0a0_03b2,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0066[] = {
 	&pci_ss_info_10de_0066_1043_80a7,
+	&pci_ss_info_10de_0066_10de_0c11,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0067[] = {
@@ -54746,6 +56359,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10de_0110_1462_8817,
 	&pci_ss_info_10de_0110_14af_7102,
 	&pci_ss_info_10de_0110_14af_7103,
+	&pci_ss_info_10de_0110_1545_0023,
 	NULL
 };
 #define pci_ss_list_10de_0111 NULL
@@ -54817,6 +56431,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0175 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0176[] = {
 	&pci_ss_info_10de_0176_103c_08b0,
+	&pci_ss_info_10de_0176_144d_c005,
 	&pci_ss_info_10de_0176_4c53_1090,
 	NULL
 };
@@ -54870,6 +56485,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_01c1 NULL
 #define pci_ss_list_10de_01c2 NULL
 #define pci_ss_list_10de_01c3 NULL
+#define pci_ss_list_10de_01d0 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_01d1[] = {
 	&pci_ss_info_10de_01d1_1462_0345,
 	NULL
@@ -54879,6 +56495,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_01d7 NULL
 #define pci_ss_list_10de_01d8 NULL
 #define pci_ss_list_10de_01da NULL
+#define pci_ss_list_10de_01db NULL
 #define pci_ss_list_10de_01dc NULL
 #define pci_ss_list_10de_01dd NULL
 static const pciSubsystemInfo *pci_ss_list_10de_01de[] = {
@@ -54908,6 +56525,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_01ee[] = {
+	&pci_ss_info_10de_01ee_10de_01ee,
 	&pci_ss_info_10de_01ee_a0a0_03b9,
 	NULL
 };
@@ -54949,6 +56567,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0242 NULL
 #define pci_ss_list_10de_0243 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0244[] = {
+	&pci_ss_info_10de_0244_103c_30b7,
 	&pci_ss_info_10de_0244_10de_0244,
 	NULL
 };
@@ -54969,6 +56588,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0250 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0251[] = {
 	&pci_ss_info_10de_0251_1043_8023,
+	&pci_ss_info_10de_0251_10de_0251,
 	NULL
 };
 #define pci_ss_list_10de_0252 NULL
@@ -54981,6 +56601,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0259 NULL
 #define pci_ss_list_10de_025b NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0260[] = {
+	&pci_ss_info_10de_0260_103c_30b7,
 	&pci_ss_info_10de_0260_1043_81bc,
 	&pci_ss_info_10de_0260_1458_5001,
 	&pci_ss_info_10de_0260_1462_7207,
@@ -54990,16 +56611,19 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0262 NULL
 #define pci_ss_list_10de_0263 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0264[] = {
+	&pci_ss_info_10de_0264_103c_30b7,
 	&pci_ss_info_10de_0264_1043_81bc,
 	&pci_ss_info_10de_0264_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0265[] = {
+	&pci_ss_info_10de_0265_103c_30b7,
 	&pci_ss_info_10de_0265_1043_81bc,
 	&pci_ss_info_10de_0265_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0266[] = {
+	&pci_ss_info_10de_0266_103c_30b7,
 	&pci_ss_info_10de_0266_1043_81bc,
 	&pci_ss_info_10de_0266_1462_7207,
 	NULL
@@ -55011,6 +56635,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_10de_0268 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0269[] = {
+	&pci_ss_info_10de_0269_103c_30b7,
 	&pci_ss_info_10de_0269_1043_8141,
 	&pci_ss_info_10de_0269_1462_7207,
 	NULL
@@ -55018,36 +56643,48 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_026a NULL
 #define pci_ss_list_10de_026b NULL
 static const pciSubsystemInfo *pci_ss_list_10de_026c[] = {
+	&pci_ss_info_10de_026c_103c_30b7,
 	&pci_ss_info_10de_026c_10de_cb84,
 	&pci_ss_info_10de_026c_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_026d[] = {
+	&pci_ss_info_10de_026d_103c_30b7,
 	&pci_ss_info_10de_026d_1043_81bc,
 	&pci_ss_info_10de_026d_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_026e[] = {
+	&pci_ss_info_10de_026e_103c_30b7,
 	&pci_ss_info_10de_026e_1043_81bc,
 	&pci_ss_info_10de_026e_1462_7207,
 	NULL
 };
-#define pci_ss_list_10de_026f NULL
+static const pciSubsystemInfo *pci_ss_list_10de_026f[] = {
+	&pci_ss_info_10de_026f_103c_30b7,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_10de_0270[] = {
+	&pci_ss_info_10de_0270_103c_30b7,
 	&pci_ss_info_10de_0270_1043_81bc,
 	&pci_ss_info_10de_0270_1458_5001,
 	&pci_ss_info_10de_0270_1462_7207,
 	NULL
 };
-#define pci_ss_list_10de_0271 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0271[] = {
+	&pci_ss_info_10de_0271_103c_30b7,
+	NULL
+};
 #define pci_ss_list_10de_0272 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_027e[] = {
+	&pci_ss_info_10de_027e_103c_30b7,
 	&pci_ss_info_10de_027e_1043_81cd,
 	&pci_ss_info_10de_027e_1458_5000,
 	&pci_ss_info_10de_027e_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_027f[] = {
+	&pci_ss_info_10de_027f_103c_30b7,
 	&pci_ss_info_10de_027f_1043_81cd,
 	&pci_ss_info_10de_027f_1458_5000,
 	&pci_ss_info_10de_027f_1462_7207,
@@ -55069,7 +56706,9 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0293 NULL
 #define pci_ss_list_10de_0294 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0295[] = {
+	&pci_ss_info_10de_0295_1043_8225,
 	&pci_ss_info_10de_0295_107d_2a68,
+	&pci_ss_info_10de_0295_1462_0663,
 	NULL
 };
 #define pci_ss_list_10de_0297 NULL
@@ -55082,10 +56721,15 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_029e NULL
 #define pci_ss_list_10de_029f NULL
 #define pci_ss_list_10de_02a0 NULL
-#define pci_ss_list_10de_02e0 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_02e0[] = {
+	&pci_ss_info_10de_02e0_02e0_2249,
+	NULL
+};
 #define pci_ss_list_10de_02e1 NULL
 #define pci_ss_list_10de_02e2 NULL
+#define pci_ss_list_10de_02e3 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_02f0[] = {
+	&pci_ss_info_10de_02f0_103c_30b7,
 	&pci_ss_info_10de_02f0_1043_81cd,
 	&pci_ss_info_10de_02f0_1462_7207,
 	NULL
@@ -55101,33 +56745,44 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_02f6 NULL
 #define pci_ss_list_10de_02f7 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_02f8[] = {
+	&pci_ss_info_10de_02f8_103c_30b7,
 	&pci_ss_info_10de_02f8_1043_81cd,
 	&pci_ss_info_10de_02f8_1458_5000,
 	&pci_ss_info_10de_02f8_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_02f9[] = {
+	&pci_ss_info_10de_02f9_103c_30b7,
 	&pci_ss_info_10de_02f9_1043_81cd,
 	&pci_ss_info_10de_02f9_1458_5000,
 	&pci_ss_info_10de_02f9_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_02fa[] = {
+	&pci_ss_info_10de_02fa_103c_30b7,
 	&pci_ss_info_10de_02fa_1043_81cd,
 	&pci_ss_info_10de_02fa_1458_5000,
 	&pci_ss_info_10de_02fa_1462_7207,
 	NULL
 };
 #define pci_ss_list_10de_02fb NULL
-#define pci_ss_list_10de_02fc NULL
-#define pci_ss_list_10de_02fd NULL
+static const pciSubsystemInfo *pci_ss_list_10de_02fc[] = {
+	&pci_ss_info_10de_02fc_103c_30b7,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_10de_02fd[] = {
+	&pci_ss_info_10de_02fd_103c_30b7,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_10de_02fe[] = {
+	&pci_ss_info_10de_02fe_103c_30b7,
 	&pci_ss_info_10de_02fe_1043_81cd,
 	&pci_ss_info_10de_02fe_1458_5000,
 	&pci_ss_info_10de_02fe_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_02ff[] = {
+	&pci_ss_info_10de_02ff_103c_30b7,
 	&pci_ss_info_10de_02ff_1043_81cd,
 	&pci_ss_info_10de_02ff_1458_5000,
 	&pci_ss_info_10de_02ff_1462_7207,
@@ -55157,6 +56812,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0321 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0322[] = {
 	&pci_ss_info_10de_0322_1043_02fb,
+	&pci_ss_info_10de_0322_1462_9110,
 	&pci_ss_info_10de_0322_1462_9171,
 	&pci_ss_info_10de_0322_1462_9360,
 	NULL
@@ -55164,6 +56820,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0323 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0324[] = {
 	&pci_ss_info_10de_0324_1028_0196,
+	&pci_ss_info_10de_0324_103c_006a,
 	&pci_ss_info_10de_0324_1071_8160,
 	NULL
 };
@@ -55177,7 +56834,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_032c NULL
 #define pci_ss_list_10de_032d NULL
 #define pci_ss_list_10de_032f NULL
-#define pci_ss_list_10de_0330 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0330[] = {
+	&pci_ss_info_10de_0330_1043_8137,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_10de_0331[] = {
 	&pci_ss_info_10de_0331_1043_8145,
 	NULL
@@ -55207,23 +56867,44 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_034f NULL
 #define pci_ss_list_10de_0360 NULL
 #define pci_ss_list_10de_0361 NULL
-#define pci_ss_list_10de_0362 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0362[] = {
+	&pci_ss_info_10de_0362_147b_12c4,
+	NULL
+};
 #define pci_ss_list_10de_0363 NULL
 #define pci_ss_list_10de_0364 NULL
 #define pci_ss_list_10de_0365 NULL
 #define pci_ss_list_10de_0366 NULL
 #define pci_ss_list_10de_0367 NULL
-#define pci_ss_list_10de_0368 NULL
-#define pci_ss_list_10de_0369 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0368[] = {
+	&pci_ss_info_10de_0368_147b_12c4,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_10de_0369[] = {
+	&pci_ss_info_10de_0369_147b_12c4,
+	NULL
+};
 #define pci_ss_list_10de_036a NULL
 #define pci_ss_list_10de_036b NULL
-#define pci_ss_list_10de_036c NULL
-#define pci_ss_list_10de_036d NULL
-#define pci_ss_list_10de_036e NULL
+static const pciSubsystemInfo *pci_ss_list_10de_036c[] = {
+	&pci_ss_info_10de_036c_147b_12c4,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_10de_036d[] = {
+	&pci_ss_info_10de_036d_147b_12c4,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_10de_036e[] = {
+	&pci_ss_info_10de_036e_147b_12c4,
+	NULL
+};
 #define pci_ss_list_10de_0370 NULL
 #define pci_ss_list_10de_0371 NULL
 #define pci_ss_list_10de_0372 NULL
-#define pci_ss_list_10de_0373 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0373[] = {
+	&pci_ss_info_10de_0373_147b_12c4,
+	NULL
+};
 #define pci_ss_list_10de_0374 NULL
 #define pci_ss_list_10de_0375 NULL
 #define pci_ss_list_10de_0376 NULL
@@ -55232,7 +56913,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_037a NULL
 #define pci_ss_list_10de_037c NULL
 #define pci_ss_list_10de_037e NULL
-#define pci_ss_list_10de_037f NULL
+static const pciSubsystemInfo *pci_ss_list_10de_037f[] = {
+	&pci_ss_info_10de_037f_147b_12c4,
+	NULL
+};
 #define pci_ss_list_10de_0390 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0391[] = {
 	&pci_ss_info_10de_0391_1458_3427,
@@ -55242,7 +56926,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10de_0392_1462_0622,
 	NULL
 };
-#define pci_ss_list_10de_0393 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0393[] = {
+	&pci_ss_info_10de_0393_10de_0412,
+	NULL
+};
 #define pci_ss_list_10de_0394 NULL
 #define pci_ss_list_10de_0395 NULL
 #define pci_ss_list_10de_0397 NULL
@@ -55314,6 +57001,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0402 NULL
 #define pci_ss_list_10de_0407 NULL
 #define pci_ss_list_10de_040b NULL
+#define pci_ss_list_10de_040c NULL
+#define pci_ss_list_10de_040d NULL
 #define pci_ss_list_10de_0421 NULL
 #define pci_ss_list_10de_0422 NULL
 #define pci_ss_list_10de_0423 NULL
@@ -55324,6 +57013,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0429 NULL
 #define pci_ss_list_10de_042a NULL
 #define pci_ss_list_10de_042b NULL
+#define pci_ss_list_10de_042d NULL
 #define pci_ss_list_10de_0440 NULL
 #define pci_ss_list_10de_0441 NULL
 #define pci_ss_list_10de_0442 NULL
@@ -55463,6 +57153,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10ec_0139 NULL
 #define pci_ss_list_10ec_0260 NULL
 #define pci_ss_list_10ec_0261 NULL
+#define pci_ss_list_10ec_0262 NULL
 #define pci_ss_list_10ec_0280 NULL
 #define pci_ss_list_10ec_0861 NULL
 #define pci_ss_list_10ec_0862 NULL
@@ -55533,6 +57224,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_10ec_8167[] = {
 	&pci_ss_info_10ec_8167_1462_235c,
+	&pci_ss_info_10ec_8167_1462_236c,
 	NULL
 };
 #define pci_ss_list_10ec_8168 NULL
@@ -55568,6 +57260,9 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10ee_8380 NULL
 #define pci_ss_list_10ee_8381 NULL
 #define pci_ss_list_10ee_d154 NULL
+#define pci_ss_list_10ee_ebf0 NULL
+#define pci_ss_list_10ee_ebf1 NULL
+#define pci_ss_list_10ee_ebf2 NULL
 #define pci_ss_list_10ef_8154 NULL
 #define pci_ss_list_10f1_2865 NULL
 #define pci_ss_list_10f5_a001 NULL
@@ -55575,6 +57270,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10fb_186f NULL
 #define pci_ss_list_10fc_0003 NULL
 #define pci_ss_list_10fc_0005 NULL
+#define pci_ss_list_1101_0002 NULL
 #define pci_ss_list_1101_1060 NULL
 #define pci_ss_list_1101_1622 NULL
 #define pci_ss_list_1101_9100 NULL
@@ -55626,6 +57322,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1102_0007_1102_1001,
 	&pci_ss_info_1102_0007_1102_1002,
 	&pci_ss_info_1102_0007_1102_1006,
+	&pci_ss_info_1102_0007_1102_1012,
 	&pci_ss_info_1102_0007_1462_1009,
 	NULL
 };
@@ -55633,6 +57330,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1102_0008_1102_0008,
 	NULL
 };
+static const pciSubsystemInfo *pci_ss_list_1102_0009[] = {
+	&pci_ss_info_1102_0009_1102_0010,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_1102_4001[] = {
 	&pci_ss_info_1102_4001_1102_0010,
 	NULL
@@ -55686,7 +57387,15 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1103_0007 NULL
 #define pci_ss_list_1103_0008 NULL
 #define pci_ss_list_1103_0009 NULL
+#define pci_ss_list_1103_1740 NULL
+#define pci_ss_list_1103_1742 NULL
+#define pci_ss_list_1103_2300 NULL
+#define pci_ss_list_1103_2310 NULL
+#define pci_ss_list_1103_2320 NULL
+#define pci_ss_list_1103_2322 NULL
 #define pci_ss_list_1103_2340 NULL
+#define pci_ss_list_1103_3220 NULL
+#define pci_ss_list_1103_3320 NULL
 #endif
 #define pci_ss_list_1105_1105 NULL
 #define pci_ss_list_1105_8300 NULL
@@ -55705,6 +57414,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_1105_8485 NULL
 #define pci_ss_list_1105_8486 NULL
+#define pci_ss_list_1105_c622 NULL
 #endif
 #define pci_ss_list_1106_0102 NULL
 #define pci_ss_list_1106_0130 NULL
@@ -55938,6 +57648,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_3059_4005_4710,
 	&pci_ss_info_1106_3059_a0a0_01b6,
 	&pci_ss_info_1106_3059_a0a0_0342,
+	&pci_ss_info_1106_3059_aa01_1106,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1106_3065[] = {
@@ -55946,6 +57657,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_3065_1186_1400,
 	&pci_ss_info_1106_3065_1186_1401,
 	&pci_ss_info_1106_3065_13b9_1421,
+	&pci_ss_info_1106_3065_1462_7061,
 	&pci_ss_info_1106_3065_1462_7181,
 	&pci_ss_info_1106_3065_147b_1c09,
 	&pci_ss_info_1106_3065_1695_3005,
@@ -56131,6 +57843,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1106_7204 NULL
 static const pciSubsystemInfo *pci_ss_list_1106_7205[] = {
 	&pci_ss_info_1106_7205_1458_d000,
+	&pci_ss_info_1106_7205_1462_7061,
 	NULL
 };
 #define pci_ss_list_1106_7208 NULL
@@ -56481,6 +58194,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1131_7134_185b_c900,
 	&pci_ss_info_1131_7134_1894_a006,
 	&pci_ss_info_1131_7134_1894_fe01,
+	&pci_ss_info_1131_7134_5168_0138,
 	NULL
 };
 #define pci_ss_list_1131_7145 NULL
@@ -56562,10 +58276,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_1133_e014 NULL
-static const pciSubsystemInfo *pci_ss_list_1133_e015[] = {
-	&pci_ss_info_1133_e015_1133_e015,
-	NULL
-};
+#define pci_ss_list_1133_e015 NULL
 #define pci_ss_list_1133_e016 NULL
 static const pciSubsystemInfo *pci_ss_list_1133_e017[] = {
 	&pci_ss_info_1133_e017_1133_e017,
@@ -56600,9 +58311,21 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1133_e01c_1133_1c0c,
 	NULL
 };
-#define pci_ss_list_1133_e01e NULL
-#define pci_ss_list_1133_e020 NULL
-#define pci_ss_list_1133_e022 NULL
+static const pciSubsystemInfo *pci_ss_list_1133_e01e[] = {
+	&pci_ss_info_1133_e01e_1133_1e01,
+	&pci_ss_info_1133_e01e_1133_e01e,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_1133_e020[] = {
+	&pci_ss_info_1133_e020_1133_2001,
+	&pci_ss_info_1133_e020_1133_e020,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_1133_e022[] = {
+	&pci_ss_info_1133_e022_1133_2200,
+	&pci_ss_info_1133_e022_1133_e022,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_1133_e024[] = {
 	&pci_ss_info_1133_e024_1133_2400,
 	&pci_ss_info_1133_e024_1133_e024,
@@ -56615,7 +58338,17 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_1133_e02a NULL
 #define pci_ss_list_1133_e02c NULL
-#define pci_ss_list_1133_e032 NULL
+static const pciSubsystemInfo *pci_ss_list_1133_e02e[] = {
+	&pci_ss_info_1133_e02e_1133_2e01,
+	&pci_ss_info_1133_e02e_1133_e02e,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_1133_e032[] = {
+	&pci_ss_info_1133_e032_1133_3201,
+	&pci_ss_info_1133_e032_1133_e032,
+	NULL
+};
+#define pci_ss_list_1133_e034 NULL
 #endif
 #define pci_ss_list_1134_0001 NULL
 #define pci_ss_list_1134_0002 NULL
@@ -56783,6 +58516,9 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_114f_00c9 NULL
 #define pci_ss_list_114f_00ca NULL
 #define pci_ss_list_114f_00cb NULL
+#define pci_ss_list_114f_00cc NULL
+#define pci_ss_list_114f_00cd NULL
+#define pci_ss_list_114f_00ce NULL
 #define pci_ss_list_114f_00d0 NULL
 #define pci_ss_list_114f_00d1 NULL
 #define pci_ss_list_114f_6001 NULL
@@ -56987,6 +58723,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1180_0476_104d_80e7,
 	&pci_ss_info_1180_0476_104d_814e,
 	&pci_ss_info_1180_0476_10f7_8338,
+	&pci_ss_info_1180_0476_144d_c005,
 	&pci_ss_info_1180_0476_144d_c00c,
 	&pci_ss_info_1180_0476_14ef_0220,
 	&pci_ss_info_1180_0476_17aa_201c,
@@ -57011,6 +58748,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1180_0552_1014_0511,
 	&pci_ss_info_1180_0552_1028_014f,
 	&pci_ss_info_1180_0552_1028_0188,
+	&pci_ss_info_1180_0552_144d_c005,
 	&pci_ss_info_1180_0552_144d_c00c,
 	&pci_ss_info_1180_0552_17aa_201e,
 	NULL
@@ -57019,6 +58757,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1180_0575 NULL
 #define pci_ss_list_1180_0576 NULL
 static const pciSubsystemInfo *pci_ss_list_1180_0592[] = {
+	&pci_ss_info_1180_0592_103c_30b7,
 	&pci_ss_info_1180_0592_1043_1967,
 	&pci_ss_info_1180_0592_144d_c018,
 	NULL
@@ -57029,15 +58768,24 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1180_0822_1014_0598,
 	&pci_ss_info_1180_0822_1028_0188,
 	&pci_ss_info_1180_0822_1028_01a2,
+	&pci_ss_info_1180_0822_103c_30b7,
 	&pci_ss_info_1180_0822_1043_1967,
 	&pci_ss_info_1180_0822_10f7_8338,
 	&pci_ss_info_1180_0822_144d_c018,
 	&pci_ss_info_1180_0822_17aa_201d,
 	NULL
 };
-#define pci_ss_list_1180_0832 NULL
+static const pciSubsystemInfo *pci_ss_list_1180_0832[] = {
+	&pci_ss_info_1180_0832_103c_30b7,
+	NULL
+};
 #define pci_ss_list_1180_0841 NULL
+static const pciSubsystemInfo *pci_ss_list_1180_0843[] = {
+	&pci_ss_info_1180_0843_103c_30b7,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_1180_0852[] = {
+	&pci_ss_info_1180_0852_103c_30b7,
 	&pci_ss_info_1180_0852_1043_1967,
 	NULL
 };
@@ -57076,10 +58824,14 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1186_3a13 NULL
 #define pci_ss_list_1186_3a14 NULL
 #define pci_ss_list_1186_3a63 NULL
+#define pci_ss_list_1186_3c00 NULL
 #define pci_ss_list_1186_4000 NULL
+#define pci_ss_list_1186_4001 NULL
 #define pci_ss_list_1186_4300 NULL
 #define pci_ss_list_1186_4800 NULL
+#define pci_ss_list_1186_4b00 NULL
 #define pci_ss_list_1186_4b01 NULL
+#define pci_ss_list_1186_4b02 NULL
 static const pciSubsystemInfo *pci_ss_list_1186_4c00[] = {
 	&pci_ss_info_1186_4c00_1186_4c00,
 	NULL
@@ -57139,6 +58891,7 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_11ab_1faa[] = {
 	&pci_ss_info_11ab_1faa_1385_4e00,
+	&pci_ss_info_11ab_1faa_1385_6b00,
 	NULL
 };
 #define pci_ss_list_11ab_2a01 NULL
@@ -57215,6 +58968,8 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_11ab_4352 NULL
+#define pci_ss_list_11ab_4353 NULL
+#define pci_ss_list_11ab_4356 NULL
 static const pciSubsystemInfo *pci_ss_list_11ab_4360[] = {
 	&pci_ss_info_11ab_4360_1043_8134,
 	&pci_ss_info_11ab_4360_107b_4009,
@@ -57277,6 +59032,12 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_11ab_4363 NULL
 #define pci_ss_list_11ab_4364 NULL
+#define pci_ss_list_11ab_4366 NULL
+#define pci_ss_list_11ab_4367 NULL
+#define pci_ss_list_11ab_4368 NULL
+#define pci_ss_list_11ab_4369 NULL
+#define pci_ss_list_11ab_436a NULL
+#define pci_ss_list_11ab_436b NULL
 #define pci_ss_list_11ab_4611 NULL
 #define pci_ss_list_11ab_4620 NULL
 #define pci_ss_list_11ab_4801 NULL
@@ -57286,8 +59047,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_11ab_5080 NULL
 #define pci_ss_list_11ab_5081 NULL
 #define pci_ss_list_11ab_6041 NULL
+#define pci_ss_list_11ab_6042 NULL
 #define pci_ss_list_11ab_6081 NULL
 #define pci_ss_list_11ab_6101 NULL
+#define pci_ss_list_11ab_6121 NULL
 #define pci_ss_list_11ab_6141 NULL
 #define pci_ss_list_11ab_6145 NULL
 #define pci_ss_list_11ab_6450 NULL
@@ -57297,6 +59060,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_11ab_6485 NULL
+#define pci_ss_list_11ab_7042 NULL
 #define pci_ss_list_11ab_f003 NULL
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -57560,7 +59324,10 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_11f6_9881 NULL
 #endif
+#define pci_ss_list_11f8_7364 NULL
 #define pci_ss_list_11f8_7375 NULL
+#define pci_ss_list_11f8_7384 NULL
+#define pci_ss_list_11f8_8000 NULL
 #define pci_ss_list_11fe_0001 NULL
 #define pci_ss_list_11fe_0002 NULL
 #define pci_ss_list_11fe_0003 NULL
@@ -57576,6 +59343,15 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_11fe_000d NULL
 #define pci_ss_list_11fe_000e NULL
 #define pci_ss_list_11fe_000f NULL
+#define pci_ss_list_11fe_0040 NULL
+#define pci_ss_list_11fe_0041 NULL
+#define pci_ss_list_11fe_0042 NULL
+#define pci_ss_list_11fe_0043 NULL
+#define pci_ss_list_11fe_0044 NULL
+#define pci_ss_list_11fe_0045 NULL
+#define pci_ss_list_11fe_0047 NULL
+#define pci_ss_list_11fe_004f NULL
+#define pci_ss_list_11fe_0052 NULL
 #define pci_ss_list_11fe_0801 NULL
 #define pci_ss_list_11fe_0802 NULL
 #define pci_ss_list_11fe_0803 NULL
@@ -57642,6 +59418,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1217_7130 NULL
 #define pci_ss_list_1217_7134 NULL
 #define pci_ss_list_1217_7135 NULL
+#define pci_ss_list_1217_7136 NULL
 #define pci_ss_list_1217_71e2 NULL
 #define pci_ss_list_1217_7212 NULL
 #define pci_ss_list_1217_7213 NULL
@@ -57704,6 +59481,11 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_121a_0057 NULL
 #define pci_ss_list_121e_0201 NULL
 #define pci_ss_list_1220_1220 NULL
+#define pci_ss_list_1221_9172 NULL
+#define pci_ss_list_1221_91a2 NULL
+#define pci_ss_list_1221_91c3 NULL
+#define pci_ss_list_1221_b152 NULL
+#define pci_ss_list_1221_c103 NULL
 #define pci_ss_list_1223_0003 NULL
 #define pci_ss_list_1223_0004 NULL
 #define pci_ss_list_1223_0005 NULL
@@ -57885,6 +59667,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1260_3890_10b8_a835,
 	&pci_ss_info_1260_3890_1113_4203,
 	&pci_ss_info_1260_3890_1113_8201,
+	&pci_ss_info_1260_3890_1113_b301,
 	&pci_ss_info_1260_3890_1113_ee03,
 	&pci_ss_info_1260_3890_1113_ee08,
 	&pci_ss_info_1260_3890_1186_3202,
@@ -58001,6 +59784,7 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_1278_0701 NULL
 #define pci_ss_list_1278_0710 NULL
+#define pci_ss_list_1278_1101 NULL
 #define pci_ss_list_1279_0060 NULL
 #define pci_ss_list_1279_0061 NULL
 #define pci_ss_list_1279_0295 NULL
@@ -58234,6 +60018,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_12b9_1008_12b9_00ab,
 	&pci_ss_info_12b9_1008_12b9_00ac,
 	&pci_ss_info_12b9_1008_12b9_00ad,
+	&pci_ss_info_12b9_1008_12b9_baba,
 	NULL
 };
 #endif
@@ -58279,6 +60064,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_12c5_0081 NULL
 #define pci_ss_list_12c5_0085 NULL
 #define pci_ss_list_12c5_0086 NULL
+#define pci_ss_list_12c7_0546 NULL
+#define pci_ss_list_12c7_0647 NULL
+#define pci_ss_list_12c7_0676 NULL
+#define pci_ss_list_12c7_0685 NULL
 #define pci_ss_list_12d2_0008 NULL
 #define pci_ss_list_12d2_0009 NULL
 static const pciSubsystemInfo *pci_ss_list_12d2_0018[] = {
@@ -58319,6 +60108,7 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_12d9_1078[] = {
 	&pci_ss_info_12d9_1078_12d9_000d,
+	&pci_ss_info_12d9_1078_12d9_000e,
 	NULL
 };
 #endif
@@ -58422,7 +60212,21 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1307_004d NULL
 #define pci_ss_list_1307_0052 NULL
 #define pci_ss_list_1307_0054 NULL
+#define pci_ss_list_1307_005d NULL
 #define pci_ss_list_1307_005e NULL
+#define pci_ss_list_1307_005f NULL
+#define pci_ss_list_1307_0060 NULL
+#define pci_ss_list_1307_0061 NULL
+#define pci_ss_list_1307_0062 NULL
+#define pci_ss_list_1307_0063 NULL
+#define pci_ss_list_1307_0064 NULL
+#define pci_ss_list_1307_0065 NULL
+#define pci_ss_list_1307_0066 NULL
+#define pci_ss_list_1307_0067 NULL
+#define pci_ss_list_1307_0068 NULL
+#define pci_ss_list_1307_006f NULL
+#define pci_ss_list_1307_0078 NULL
+#define pci_ss_list_1307_0079 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1308_0001[] = {
 	&pci_ss_info_1308_0001_1308_0001,
@@ -58560,13 +60364,16 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1360_0102 NULL
 #define pci_ss_list_1360_0103 NULL
 #define pci_ss_list_1360_0104 NULL
+#define pci_ss_list_1360_0105 NULL
 #define pci_ss_list_1360_0201 NULL
 #define pci_ss_list_1360_0202 NULL
 #define pci_ss_list_1360_0203 NULL
 #define pci_ss_list_1360_0204 NULL
+#define pci_ss_list_1360_0205 NULL
 #define pci_ss_list_1360_0301 NULL
 #define pci_ss_list_1360_0302 NULL
 #define pci_ss_list_1360_0303 NULL
+#define pci_ss_list_1360_0304 NULL
 #define pci_ss_list_136a_0004 NULL
 #define pci_ss_list_136a_0007 NULL
 #define pci_ss_list_136a_0008 NULL
@@ -58643,10 +60450,29 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1385_7e00 NULL
 #define pci_ss_list_1385_f004 NULL
 #define pci_ss_list_1389_0001 NULL
+#define pci_ss_list_1393_0001 NULL
+#define pci_ss_list_1393_1020 NULL
+#define pci_ss_list_1393_1021 NULL
+#define pci_ss_list_1393_1022 NULL
 #define pci_ss_list_1393_1040 NULL
+#define pci_ss_list_1393_1041 NULL
+#define pci_ss_list_1393_1042 NULL
+#define pci_ss_list_1393_1043 NULL
+#define pci_ss_list_1393_1044 NULL
+#define pci_ss_list_1393_1080 NULL
+#define pci_ss_list_1393_1140 NULL
 #define pci_ss_list_1393_1141 NULL
+#define pci_ss_list_1393_1142 NULL
+#define pci_ss_list_1393_1180 NULL
+#define pci_ss_list_1393_1181 NULL
+#define pci_ss_list_1393_1320 NULL
+#define pci_ss_list_1393_1321 NULL
+#define pci_ss_list_1393_1340 NULL
+#define pci_ss_list_1393_1341 NULL
+#define pci_ss_list_1393_1380 NULL
 #define pci_ss_list_1393_1680 NULL
 #define pci_ss_list_1393_1681 NULL
+#define pci_ss_list_1393_1682 NULL
 #define pci_ss_list_1393_2040 NULL
 #define pci_ss_list_1393_2180 NULL
 #define pci_ss_list_1393_3200 NULL
@@ -58708,6 +60534,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_13c1_1004 NULL
 #endif
 #define pci_ss_list_13c2_000e NULL
+#define pci_ss_list_13c2_1019 NULL
 #define pci_ss_list_13c6_0520 NULL
 #define pci_ss_list_13c6_0620 NULL
 #define pci_ss_list_13c6_0820 NULL
@@ -58727,6 +60554,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_13ec_000a NULL
 #define pci_ss_list_13f0_0200 NULL
 #define pci_ss_list_13f0_0201 NULL
+#define pci_ss_list_13f0_1021 NULL
 #define pci_ss_list_13f0_1023 NULL
 #define pci_ss_list_13f4_1401 NULL
 #define pci_ss_list_13f6_0011 NULL
@@ -58746,6 +60574,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_13f6_0111_1043_80e2,
 	&pci_ss_info_13f6_0111_13f6_0111,
 	&pci_ss_info_13f6_0111_1681_a000,
+	&pci_ss_info_13f6_0111_270f_1103,
 	NULL
 };
 #define pci_ss_list_13f6_0211 NULL
@@ -58829,6 +60658,17 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
+#define pci_ss_list_1414_5801 NULL
+#define pci_ss_list_1414_5802 NULL
+#define pci_ss_list_1414_5803 NULL
+#define pci_ss_list_1414_5804 NULL
+#define pci_ss_list_1414_5805 NULL
+#define pci_ss_list_1414_5806 NULL
+#define pci_ss_list_1414_5807 NULL
+#define pci_ss_list_1414_580a NULL
+#define pci_ss_list_1414_580b NULL
+#define pci_ss_list_1414_580d NULL
+#define pci_ss_list_1414_5811 NULL
 #define pci_ss_list_1415_8403 NULL
 #define pci_ss_list_1415_9500 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -58901,6 +60741,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1462_7125 NULL
 #define pci_ss_list_1462_7235 NULL
 #define pci_ss_list_1462_7242 NULL
+#define pci_ss_list_1462_7250 NULL
+#define pci_ss_list_1462_7327 NULL
 #define pci_ss_list_1462_8725 NULL
 #define pci_ss_list_1462_9000 NULL
 #define pci_ss_list_1462_9110 NULL
@@ -58963,6 +60805,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14d2_e001 NULL
 #define pci_ss_list_14d2_e010 NULL
 #define pci_ss_list_14d2_e020 NULL
+#define pci_ss_list_14d6_6101 NULL
+#define pci_ss_list_14d6_6201 NULL
 #define pci_ss_list_14d9_0010 NULL
 #define pci_ss_list_14d9_9000 NULL
 #define pci_ss_list_14db_2120 NULL
@@ -59075,6 +60919,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14e4_1648_1734_100b,
 	NULL
 };
+#define pci_ss_list_14e4_1649 NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_164a[] = {
 	&pci_ss_info_14e4_164a_103c_3070,
 	&pci_ss_info_14e4_164a_103c_3101,
@@ -59096,6 +60941,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14e4_1654_103c_3226,
 	NULL
 };
+#define pci_ss_list_14e4_1658 NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_1659[] = {
 	&pci_ss_info_14e4_1659_1014_02c6,
 	&pci_ss_info_14e4_1659_103c_7031,
@@ -59130,13 +60976,16 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14e4_1672 NULL
 #define pci_ss_list_14e4_1673 NULL
 #define pci_ss_list_14e4_1674 NULL
+#define pci_ss_list_14e4_1676 NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_1677[] = {
+	&pci_ss_info_14e4_1677_1028_0177,
 	&pci_ss_info_14e4_1677_1028_0179,
 	&pci_ss_info_14e4_1677_1028_0182,
 	&pci_ss_info_14e4_1677_1028_0187,
 	&pci_ss_info_14e4_1677_1028_01ad,
 	&pci_ss_info_14e4_1677_103c_3006,
 	&pci_ss_info_14e4_1677_1734_105d,
+	&pci_ss_info_14e4_1677_3007_103c,
 	NULL
 };
 #define pci_ss_list_14e4_1678 NULL
@@ -59148,7 +60997,9 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_14e4_167a NULL
 #define pci_ss_list_14e4_167b NULL
+#define pci_ss_list_14e4_167c NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_167d[] = {
+	&pci_ss_info_14e4_167d_103c_0940,
 	&pci_ss_info_14e4_167d_17aa_2081,
 	NULL
 };
@@ -59534,6 +61385,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14f1_2f30 NULL
 #define pci_ss_list_14f1_5045 NULL
 #define pci_ss_list_14f1_5047 NULL
+#define pci_ss_list_14f1_5b7a NULL
 #define pci_ss_list_14f1_8234 NULL
 static const pciSubsystemInfo *pci_ss_list_14f1_8800[] = {
 	&pci_ss_info_14f1_8800_0070_2801,
@@ -59576,10 +61428,12 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14f1_8800_18ac_db11,
 	&pci_ss_info_14f1_8800_18ac_db50,
 	&pci_ss_info_14f1_8800_7063_3000,
+	&pci_ss_info_14f1_8800_7063_5500,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_14f1_8801[] = {
 	&pci_ss_info_14f1_8801_0070_2801,
+	&pci_ss_info_14f1_8801_7063_5500,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_14f1_8802[] = {
@@ -59597,10 +61451,12 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14f1_8802_18ac_db00,
 	&pci_ss_info_14f1_8802_18ac_db10,
 	&pci_ss_info_14f1_8802_7063_3000,
+	&pci_ss_info_14f1_8802_7063_5500,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_14f1_8804[] = {
 	&pci_ss_info_14f1_8804_0070_9002,
+	&pci_ss_info_14f1_8804_7063_5500,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_14f1_8811[] = {
@@ -59690,6 +61546,9 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1524_0550 NULL
 #define pci_ss_list_1524_0551 NULL
 #define pci_ss_list_1524_0610 NULL
+#define pci_ss_list_1524_0730 NULL
+#define pci_ss_list_1524_0750 NULL
+#define pci_ss_list_1524_0751 NULL
 #define pci_ss_list_1524_1211 NULL
 #define pci_ss_list_1524_1225 NULL
 static const pciSubsystemInfo *pci_ss_list_1524_1410[] = {
@@ -59778,6 +61637,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_15dc_0001 NULL
 #define pci_ss_list_15e2_0500 NULL
 #define pci_ss_list_15e8_0130 NULL
+#define pci_ss_list_15e8_0131 NULL
 #define pci_ss_list_15e9_1841 NULL
 #define pci_ss_list_15ec_3101 NULL
 #define pci_ss_list_15ec_5102 NULL
@@ -59797,6 +61657,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1638_1100 NULL
 #define pci_ss_list_163c_3052 NULL
 #define pci_ss_list_163c_5449 NULL
+#define pci_ss_list_1657_0646 NULL
 #define pci_ss_list_165a_c100 NULL
 #define pci_ss_list_165a_d200 NULL
 #define pci_ss_list_165a_d300 NULL
@@ -59897,6 +61758,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_16ae_1141 NULL
 #define pci_ss_list_16ae_1841 NULL
 #define pci_ss_list_16c6_8695 NULL
+#define pci_ss_list_16c6_8842 NULL
 #define pci_ss_list_16ca_0001 NULL
 #define pci_ss_list_16d5_0504 NULL
 #define pci_ss_list_16d5_0520 NULL
@@ -59947,6 +61809,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_172a_13c8 NULL
 #define pci_ss_list_1734_1078 NULL
 #define pci_ss_list_1734_1085 NULL
+#define pci_ss_list_1734_1098 NULL
 #define pci_ss_list_1737_0013 NULL
 #define pci_ss_list_1737_0015 NULL
 #define pci_ss_list_1737_0029 NULL
@@ -59973,12 +61836,14 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_173b_03eb NULL
 #endif
 #define pci_ss_list_1743_8139 NULL
+#define pci_ss_list_177d_0001 NULL
 #define pci_ss_list_1796_0001 NULL
 #define pci_ss_list_1796_0002 NULL
 #define pci_ss_list_1796_0003 NULL
 #define pci_ss_list_1796_0004 NULL
 #define pci_ss_list_1796_0005 NULL
 #define pci_ss_list_1796_0006 NULL
+#define pci_ss_list_1796_000d NULL
 #define pci_ss_list_1799_6001 NULL
 #define pci_ss_list_1799_6020 NULL
 #define pci_ss_list_1799_6060 NULL
@@ -60006,6 +61871,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_17d3_1220 NULL
 #define pci_ss_list_17d3_1230 NULL
 #define pci_ss_list_17d3_1260 NULL
+#define pci_ss_list_17d3_1280 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_17d5_5831[] = {
 	&pci_ss_info_17d5_5831_103c_12d5,
@@ -60014,6 +61880,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_17d5_5832[] = {
+	&pci_ss_info_17d5_5832_103c_1337,
 	&pci_ss_info_17d5_5832_10a9_8021,
 	NULL
 };
@@ -60068,12 +61935,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1814_0201_185f_22a0,
 	NULL
 };
+#define pci_ss_list_1814_0300 NULL
 static const pciSubsystemInfo *pci_ss_list_1814_0301[] = {
 	&pci_ss_info_1814_0301_1186_3c08,
 	&pci_ss_info_1814_0301_1186_3c09,
 	&pci_ss_info_1814_0301_13d1_abe3,
 	&pci_ss_info_1814_0301_1458_e934,
 	&pci_ss_info_1814_0301_1737_0055,
+	&pci_ss_info_1814_0301_1814_2561,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1814_0302[] = {
@@ -60100,7 +61969,11 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1867_5a46 NULL
 #define pci_ss_list_1867_6278 NULL
 #define pci_ss_list_1867_6282 NULL
+#define pci_ss_list_186c_0612 NULL
 #define pci_ss_list_186c_0614 NULL
+#define pci_ss_list_186c_0622 NULL
+#define pci_ss_list_186c_0624 NULL
+#define pci_ss_list_186c_0625 NULL
 #define pci_ss_list_1876_a101 NULL
 #define pci_ss_list_1876_a102 NULL
 #define pci_ss_list_1876_a103 NULL
@@ -60114,6 +61987,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_18ac_d800 NULL
 #define pci_ss_list_18ac_d810 NULL
 #define pci_ss_list_18ac_d820 NULL
+#define pci_ss_list_18ac_db30 NULL
 #define pci_ss_list_18b8_b001 NULL
 #define pci_ss_list_18ca_0020 NULL
 #define pci_ss_list_18ca_0040 NULL
@@ -60147,6 +62021,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_18f7_0004 NULL
 #define pci_ss_list_18f7_0005 NULL
 #define pci_ss_list_18f7_000a NULL
+#define pci_ss_list_18f7_000f NULL
+#define pci_ss_list_18f7_0010 NULL
+#define pci_ss_list_18f7_0011 NULL
+#define pci_ss_list_18f7_0014 NULL
 #define pci_ss_list_1904_8139 NULL
 #define pci_ss_list_1923_0040 NULL
 #define pci_ss_list_1923_0100 NULL
@@ -60160,6 +62038,18 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_194a_1114 NULL
 #define pci_ss_list_194a_1115 NULL
 #define pci_ss_list_1957_0012 NULL
+#define pci_ss_list_1957_0013 NULL
+#define pci_ss_list_1957_0014 NULL
+#define pci_ss_list_1957_0015 NULL
+#define pci_ss_list_1957_0018 NULL
+#define pci_ss_list_1957_0019 NULL
+#define pci_ss_list_1957_001a NULL
+#define pci_ss_list_1957_0020 NULL
+#define pci_ss_list_1957_0021 NULL
+#define pci_ss_list_1957_0022 NULL
+#define pci_ss_list_1957_0023 NULL
+#define pci_ss_list_1957_0030 NULL
+#define pci_ss_list_1957_0031 NULL
 #define pci_ss_list_1957_0080 NULL
 #define pci_ss_list_1957_0081 NULL
 #define pci_ss_list_1957_0082 NULL
@@ -60168,6 +62058,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1957_0085 NULL
 #define pci_ss_list_1957_0086 NULL
 #define pci_ss_list_1957_0087 NULL
+#define pci_ss_list_1957_7010 NULL
+#define pci_ss_list_1957_7011 NULL
 #define pci_ss_list_1966_1975 NULL
 #define pci_ss_list_1969_1048 NULL
 #define pci_ss_list_1969_2048 NULL
@@ -60220,6 +62112,9 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1fc0_0300 NULL
 #define pci_ss_list_1fc1_000d NULL
 #define pci_ss_list_1fc1_0010 NULL
+#define pci_ss_list_1fc9_3009 NULL
+#define pci_ss_list_1fc9_3010 NULL
+#define pci_ss_list_1fc9_3014 NULL
 #define pci_ss_list_1fce_0001 NULL
 #define pci_ss_list_2348_2010 NULL
 #define pci_ss_list_3388_0013 NULL
@@ -60355,6 +62250,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_4444_0016_0070_e817,
 	&pci_ss_info_4444_0016_0070_ff92,
 	&pci_ss_info_4444_0016_0270_0801,
+	&pci_ss_info_4444_0016_104d_013d,
 	&pci_ss_info_4444_0016_10fc_d038,
 	&pci_ss_info_4444_0016_10fc_d039,
 	&pci_ss_info_4444_0016_12ab_fff3,
@@ -60375,6 +62271,8 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_4916_1960 NULL
+#define pci_ss_list_494f_0c60 NULL
+#define pci_ss_list_494f_0e60 NULL
 #define pci_ss_list_494f_10e8 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_4a14_5000[] = {
@@ -60919,6 +62817,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_105b NULL
 static const pciSubsystemInfo *pci_ss_list_8086_105e[] = {
 	&pci_ss_info_8086_105e_103c_7044,
+	&pci_ss_info_8086_105e_103c_704e,
 	&pci_ss_info_8086_105e_1775_1100,
 	&pci_ss_info_8086_105e_1775_6003,
 	&pci_ss_info_8086_105e_8086_005e,
@@ -60930,6 +62829,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_105f[] = {
+	&pci_ss_info_8086_105f_103c_704f,
 	&pci_ss_info_8086_105f_8086_115f,
 	&pci_ss_info_8086_105f_8086_116f,
 	&pci_ss_info_8086_105f_8086_125f,
@@ -61082,6 +62982,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_8086_10b6 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_10b9[] = {
+	&pci_ss_info_8086_10b9_103c_704a,
 	&pci_ss_info_8086_10b9_8086_1083,
 	&pci_ss_info_8086_10b9_8086_1093,
 	NULL
@@ -61089,6 +62990,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_10ba NULL
 #define pci_ss_list_8086_10bb NULL
 static const pciSubsystemInfo *pci_ss_list_8086_10bc[] = {
+	&pci_ss_info_8086_10bc_103c_704b,
 	&pci_ss_info_8086_10bc_8086_10bc,
 	&pci_ss_info_8086_10bc_8086_11bc,
 	NULL
@@ -61101,8 +63003,15 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_10c5 NULL
 #define pci_ss_list_8086_10c6 NULL
 #define pci_ss_list_8086_10c7 NULL
-#define pci_ss_list_8086_10d9 NULL
-#define pci_ss_list_8086_10da NULL
+#define pci_ss_list_8086_10d6 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_10d9[] = {
+	&pci_ss_info_8086_10d9_103c_1716,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_10da[] = {
+	&pci_ss_info_8086_10da_103c_1717,
+	NULL
+};
 #define pci_ss_list_8086_1107 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_1130[] = {
 	&pci_ss_info_8086_1130_1025_1016,
@@ -62066,7 +63975,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_2582_1849_2582,
 	NULL
 };
-#define pci_ss_list_8086_2584 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_2584[] = {
+	&pci_ss_info_8086_2584_1028_0177,
+	NULL
+};
 #define pci_ss_list_8086_2585 NULL
 #define pci_ss_list_8086_2588 NULL
 #define pci_ss_list_8086_2589 NULL
@@ -62141,6 +64053,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_25aa_1775_1100,
 	&pci_ss_info_8086_25aa_1775_ce90,
 	&pci_ss_info_8086_25aa_4c53_10b0,
+	&pci_ss_info_8086_25aa_4c53_10d0,
 	&pci_ss_info_8086_25aa_4c53_10e0,
 	NULL
 };
@@ -62256,11 +64169,13 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_2652[] = {
+	&pci_ss_info_8086_2652_1028_0177,
 	&pci_ss_info_8086_2652_1462_7028,
 	NULL
 };
 #define pci_ss_list_8086_2653 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2658[] = {
+	&pci_ss_info_8086_2658_1028_0177,
 	&pci_ss_info_8086_2658_1028_0179,
 	&pci_ss_info_8086_2658_103c_0934,
 	&pci_ss_info_8086_2658_103c_099c,
@@ -62274,6 +64189,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_2659[] = {
+	&pci_ss_info_8086_2659_1028_0177,
 	&pci_ss_info_8086_2659_1028_0179,
 	&pci_ss_info_8086_2659_103c_0934,
 	&pci_ss_info_8086_2659_103c_099c,
@@ -62287,6 +64203,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_265a[] = {
+	&pci_ss_info_8086_265a_1028_0177,
 	&pci_ss_info_8086_265a_1028_0179,
 	&pci_ss_info_8086_265a_103c_0934,
 	&pci_ss_info_8086_265a_103c_099c,
@@ -62300,6 +64217,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_265b[] = {
+	&pci_ss_info_8086_265b_1028_0177,
 	&pci_ss_info_8086_265b_1028_0179,
 	&pci_ss_info_8086_265b_103c_099c,
 	&pci_ss_info_8086_265b_1043_80a6,
@@ -62312,6 +64230,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_265c[] = {
+	&pci_ss_info_8086_265c_1028_0177,
 	&pci_ss_info_8086_265c_1028_0179,
 	&pci_ss_info_8086_265c_103c_0934,
 	&pci_ss_info_8086_265c_103c_099c,
@@ -62358,6 +64277,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_266a[] = {
+	&pci_ss_info_8086_266a_1028_0177,
 	&pci_ss_info_8086_266a_1028_0179,
 	&pci_ss_info_8086_266a_1043_80a6,
 	&pci_ss_info_8086_266a_1458_266a,
@@ -62377,6 +64297,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_8086_266e[] = {
 	&pci_ss_info_8086_266e_1025_006a,
+	&pci_ss_info_8086_266e_1028_0177,
 	&pci_ss_info_8086_266e_1028_0179,
 	&pci_ss_info_8086_266e_1028_0182,
 	&pci_ss_info_8086_266e_1028_0188,
@@ -62390,6 +64311,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_266f[] = {
+	&pci_ss_info_8086_266f_1028_0177,
 	&pci_ss_info_8086_266f_103c_0934,
 	&pci_ss_info_8086_266f_103c_099c,
 	&pci_ss_info_8086_266f_1043_80a6,
@@ -62471,6 +64393,9 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_27a6_17aa_201a,
 	NULL
 };
+#define pci_ss_list_8086_27ac NULL
+#define pci_ss_list_8086_27ad NULL
+#define pci_ss_list_8086_27ae NULL
 static const pciSubsystemInfo *pci_ss_list_8086_27b0[] = {
 	&pci_ss_info_8086_27b0_8086_544e,
 	NULL
@@ -62773,6 +64698,14 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2a05 NULL
 #define pci_ss_list_8086_2a06 NULL
 #define pci_ss_list_8086_2a07 NULL
+#define pci_ss_list_8086_2a40 NULL
+#define pci_ss_list_8086_2a41 NULL
+#define pci_ss_list_8086_2a42 NULL
+#define pci_ss_list_8086_2a43 NULL
+#define pci_ss_list_8086_2a50 NULL
+#define pci_ss_list_8086_2a51 NULL
+#define pci_ss_list_8086_2a52 NULL
+#define pci_ss_list_8086_2a53 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_3200[] = {
 	&pci_ss_info_8086_3200_1775_c200,
 	NULL
@@ -63418,6 +65351,8 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_9005_0241 NULL
+#define pci_ss_list_9005_0242 NULL
+#define pci_ss_list_9005_0243 NULL
 static const pciSubsystemInfo *pci_ss_list_9005_0250[] = {
 	&pci_ss_info_9005_0250_1014_0279,
 	&pci_ss_info_9005_0250_1014_028c,
@@ -63441,6 +65376,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_0285_108e_0286,
 	&pci_ss_info_9005_0285_108e_0287,
 	&pci_ss_info_9005_0285_108e_7aac,
+	&pci_ss_info_9005_0285_108e_7aae,
 	&pci_ss_info_9005_0285_15d9_02b5,
 	&pci_ss_info_9005_0285_15d9_02b6,
 	&pci_ss_info_9005_0285_15d9_02c9,
@@ -63487,6 +65423,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_0285_9005_02c6,
 	&pci_ss_info_9005_0285_9005_02c7,
 	&pci_ss_info_9005_0285_9005_02c8,
+	&pci_ss_info_9005_0285_9005_02ce,
+	&pci_ss_info_9005_0285_9005_02cf,
+	&pci_ss_info_9005_0285_9005_02d0,
+	&pci_ss_info_9005_0285_9005_02d1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_9005_0286[] = {
@@ -63527,6 +65467,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_0412_9005_0413,
 	NULL
 };
+#define pci_ss_list_9005_0415 NULL
+#define pci_ss_list_9005_0416 NULL
 #define pci_ss_list_9005_041e NULL
 static const pciSubsystemInfo *pci_ss_list_9005_041f[] = {
 	&pci_ss_info_9005_041f_9005_041f,
@@ -63782,7 +65724,12 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_0291 NULL
 #define pci_ss_list_02ac NULL
-#define pci_ss_list_02e0 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_02e0[] = {
+	&pci_ss_info_02e0_2249,
+	NULL
+};
+#endif
 #define pci_ss_list_0315 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_0357[] = {
@@ -64037,6 +65984,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1002_0139,
 	&pci_ss_info_1002_013a,
 	&pci_ss_info_1002_0152,
+	&pci_ss_info_1002_0155,
 	&pci_ss_info_1002_0162,
 	&pci_ss_info_1002_0172,
 	&pci_ss_info_1002_028a,
@@ -64176,6 +66124,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1014_0148,
 	&pci_ss_info_1014_0153,
 	&pci_ss_info_1014_0154,
+	&pci_ss_info_1014_0155,
 	&pci_ss_info_1014_0166,
 	&pci_ss_info_1014_016d,
 	&pci_ss_info_1014_017f,
@@ -64258,8 +66207,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1014_02dd,
 	&pci_ss_info_1014_02ed,
 	&pci_ss_info_1014_02f2,
+	&pci_ss_info_1014_030a,
 	&pci_ss_info_1014_030d,
 	&pci_ss_info_1014_0338,
+	&pci_ss_info_1014_033a,
 	&pci_ss_info_1014_034d,
 	&pci_ss_info_1014_0360,
 	&pci_ss_info_1014_0363,
@@ -64297,6 +66248,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1014_0545,
 	&pci_ss_info_1014_0549,
 	&pci_ss_info_1014_054d,
+	&pci_ss_info_1014_0552,
 	&pci_ss_info_1014_0556,
 	&pci_ss_info_1014_0559,
 	&pci_ss_info_1014_055c,
@@ -64501,11 +66453,13 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1028_016e,
 	&pci_ss_info_1028_016f,
 	&pci_ss_info_1028_0170,
+	&pci_ss_info_1028_0177,
 	&pci_ss_info_1028_0179,
 	&pci_ss_info_1028_0182,
 	&pci_ss_info_1028_0183,
 	&pci_ss_info_1028_0187,
 	&pci_ss_info_1028_0188,
+	&pci_ss_info_1028_018a,
 	&pci_ss_info_1028_018d,
 	&pci_ss_info_1028_0196,
 	&pci_ss_info_1028_019a,
@@ -64513,6 +66467,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1028_01a2,
 	&pci_ss_info_1028_01ad,
 	&pci_ss_info_1028_01af,
+	&pci_ss_info_1028_021d,
 	&pci_ss_info_1028_0287,
 	&pci_ss_info_1028_0291,
 	&pci_ss_info_1028_0407,
@@ -64531,11 +66486,19 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1028_1f01,
 	&pci_ss_info_1028_1f02,
 	&pci_ss_info_1028_1f03,
+	&pci_ss_info_1028_1f04,
+	&pci_ss_info_1028_1f05,
+	&pci_ss_info_1028_1f06,
+	&pci_ss_info_1028_1f07,
+	&pci_ss_info_1028_1f08,
 	&pci_ss_info_1028_1f09,
 	&pci_ss_info_1028_1f0a,
 	&pci_ss_info_1028_1f0b,
 	&pci_ss_info_1028_1f0c,
 	&pci_ss_info_1028_1f0d,
+	&pci_ss_info_1028_1f0e,
+	&pci_ss_info_1028_1f0f,
+	&pci_ss_info_1028_1f10,
 	&pci_ss_info_1028_1f11,
 	&pci_ss_info_1028_4082,
 	&pci_ss_info_1028_4134,
@@ -64710,6 +66673,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1033_8112,
 	&pci_ss_info_1033_8287,
 	&pci_ss_info_1033_8336,
+	&pci_ss_info_1033_835a,
 	NULL
 };
 #define pci_ss_list_1034 NULL
@@ -64744,6 +66708,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_0890,
 	&pci_ss_info_103c_08b0,
 	&pci_ss_info_103c_0934,
+	&pci_ss_info_103c_0940,
 	&pci_ss_info_103c_0944,
 	&pci_ss_info_103c_099c,
 	&pci_ss_info_103c_1040,
@@ -64803,11 +66768,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_1300,
 	&pci_ss_info_103c_1301,
 	&pci_ss_info_103c_1330,
+	&pci_ss_info_103c_1337,
 	&pci_ss_info_103c_1340,
 	&pci_ss_info_103c_1356,
 	&pci_ss_info_103c_1706,
 	&pci_ss_info_103c_1707,
 	&pci_ss_info_103c_170c,
+	&pci_ss_info_103c_1716,
+	&pci_ss_info_103c_1717,
 	&pci_ss_info_103c_2a09,
 	&pci_ss_info_103c_2a0d,
 	&pci_ss_info_103c_3006,
@@ -64817,6 +66785,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_308b,
 	&pci_ss_info_103c_309f,
 	&pci_ss_info_103c_30a1,
+	&pci_ss_info_103c_30b7,
 	&pci_ss_info_103c_3100,
 	&pci_ss_info_103c_3101,
 	&pci_ss_info_103c_3102,
@@ -64829,6 +66798,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_3234,
 	&pci_ss_info_103c_3235,
 	&pci_ss_info_103c_3237,
+	&pci_ss_info_103c_323d,
 	&pci_ss_info_103c_60e7,
 	&pci_ss_info_103c_7031,
 	&pci_ss_info_103c_7032,
@@ -64839,6 +66809,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_703c,
 	&pci_ss_info_103c_703d,
 	&pci_ss_info_103c_7044,
+	&pci_ss_info_103c_704a,
+	&pci_ss_info_103c_704b,
+	&pci_ss_info_103c_704e,
+	&pci_ss_info_103c_704f,
 	&pci_ss_info_103c_7051,
 	&pci_ss_info_103c_7052,
 	&pci_ss_info_103c_def1,
@@ -64965,6 +66939,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1043_811a,
 	&pci_ss_info_1043_812a,
 	&pci_ss_info_1043_8134,
+	&pci_ss_info_1043_8137,
 	&pci_ss_info_1043_8138,
 	&pci_ss_info_1043_813f,
 	&pci_ss_info_1043_8141,
@@ -64982,6 +66957,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1043_81bc,
 	&pci_ss_info_1043_81cd,
 	&pci_ss_info_1043_81ce,
+	&pci_ss_info_1043_8225,
 	&pci_ss_info_1043_824d,
 	&pci_ss_info_1043_c002,
 	&pci_ss_info_1043_c003,
@@ -65104,6 +67080,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_104d[] = {
+	&pci_ss_info_104d_013d,
 	&pci_ss_info_104d_801b,
 	&pci_ss_info_104d_802f,
 	&pci_ss_info_104d_8032,
@@ -65385,6 +67362,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_108e_10cf,
 	&pci_ss_info_108e_5000,
 	&pci_ss_info_108e_7aac,
+	&pci_ss_info_108e_7aae,
 	&pci_ss_info_108e_a001,
 	NULL
 };
@@ -65395,6 +67373,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1092_0003,
 	&pci_ss_info_1092_00b8,
 	&pci_ss_info_1092_0100,
+	&pci_ss_info_1092_0126,
 	&pci_ss_info_1092_0127,
 	&pci_ss_info_1092_0136,
 	&pci_ss_info_1092_0141,
@@ -65694,7 +67673,11 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10b9_1523,
 	&pci_ss_info_10b9_1533,
 	&pci_ss_info_10b9_1541,
+	&pci_ss_info_10b9_1563,
+	&pci_ss_info_10b9_5237,
+	&pci_ss_info_10b9_5239,
 	&pci_ss_info_10b9_5451,
+	&pci_ss_info_10b9_5455,
 	&pci_ss_info_10b9_7101,
 	NULL
 };
@@ -65777,6 +67760,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10cf_1143,
 	&pci_ss_info_10cf_11c4,
 	&pci_ss_info_10cf_1279,
+	&pci_ss_info_10cf_1326,
 	NULL
 };
 #endif
@@ -65792,7 +67776,13 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10da NULL
 #define pci_ss_list_10db NULL
 #define pci_ss_list_10dc NULL
-#define pci_ss_list_10dd NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_10dd[] = {
+	&pci_ss_info_10dd_0023,
+	&pci_ss_info_10dd_0024,
+	NULL
+};
+#endif
 static const pciSubsystemInfo *pci_ss_list_10de[] = {
 	&pci_ss_info_10de_0005,
 	&pci_ss_info_10de_0008,
@@ -65805,8 +67795,11 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10de_00a1,
 	&pci_ss_info_10de_0179,
 	&pci_ss_info_10de_01dc,
+	&pci_ss_info_10de_01ee,
 	&pci_ss_info_10de_0244,
+	&pci_ss_info_10de_0251,
 	&pci_ss_info_10de_029b,
+	&pci_ss_info_10de_0412,
 	&pci_ss_info_10de_042b,
 	&pci_ss_info_10de_0c11,
 	&pci_ss_info_10de_cb84,
@@ -65922,6 +67915,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1102_1007,
 	&pci_ss_info_1102_100a,
 	&pci_ss_info_1102_100f,
+	&pci_ss_info_1102_1012,
 	&pci_ss_info_1102_1015,
 	&pci_ss_info_1102_1016,
 	&pci_ss_info_1102_1018,
@@ -66049,6 +68043,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1113_4203,
 	&pci_ss_info_1113_8201,
 	&pci_ss_info_1113_9211,
+	&pci_ss_info_1113_b301,
 	&pci_ss_info_1113_d301,
 	&pci_ss_info_1113_ec01,
 	&pci_ss_info_1113_ee03,
@@ -66144,16 +68139,25 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1133_1c0a,
 	&pci_ss_info_1133_1c0b,
 	&pci_ss_info_1133_1c0c,
+	&pci_ss_info_1133_1e01,
+	&pci_ss_info_1133_2001,
+	&pci_ss_info_1133_2200,
 	&pci_ss_info_1133_2400,
 	&pci_ss_info_1133_2800,
+	&pci_ss_info_1133_2e01,
+	&pci_ss_info_1133_3201,
 	&pci_ss_info_1133_e013,
-	&pci_ss_info_1133_e015,
 	&pci_ss_info_1133_e017,
 	&pci_ss_info_1133_e018,
 	&pci_ss_info_1133_e019,
 	&pci_ss_info_1133_e01b,
+	&pci_ss_info_1133_e01e,
+	&pci_ss_info_1133_e020,
+	&pci_ss_info_1133_e022,
 	&pci_ss_info_1133_e024,
 	&pci_ss_info_1133_e028,
+	&pci_ss_info_1133_e02e,
+	&pci_ss_info_1133_e032,
 	NULL
 };
 #endif
@@ -66311,6 +68315,7 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1170[] = {
 	&pci_ss_info_1170_002f,
+	&pci_ss_info_1170_0036,
 	&pci_ss_info_1170_3209,
 	NULL
 };
@@ -67059,6 +69064,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_12b9_00ac,
 	&pci_ss_info_12b9_00ad,
 	&pci_ss_info_12b9_00c4,
+	&pci_ss_info_12b9_baba,
 	NULL
 };
 #endif
@@ -67121,6 +69127,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_12d9_000a,
 	&pci_ss_info_12d9_000c,
 	&pci_ss_info_12d9_000d,
+	&pci_ss_info_12d9_000e,
 	NULL
 };
 #endif
@@ -67383,6 +69390,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1385_4800,
 	&pci_ss_info_1385_4d00,
 	&pci_ss_info_1385_4e00,
+	&pci_ss_info_1385_6b00,
 	&pci_ss_info_1385_f004,
 	&pci_ss_info_1385_f311,
 	NULL
@@ -67932,6 +69940,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1458_0c11,
 	&pci_ss_info_1458_1000,
 	&pci_ss_info_1458_1019,
+	&pci_ss_info_1458_2102,
 	&pci_ss_info_1458_24c2,
 	&pci_ss_info_1458_24d1,
 	&pci_ss_info_1458_24d2,
@@ -68023,10 +70032,12 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1462_052c,
 	&pci_ss_info_1462_058c,
 	&pci_ss_info_1462_0622,
+	&pci_ss_info_1462_0663,
 	&pci_ss_info_1462_0900,
 	&pci_ss_info_1462_1009,
 	&pci_ss_info_1462_207d,
 	&pci_ss_info_1462_235c,
+	&pci_ss_info_1462_236c,
 	&pci_ss_info_1462_3091,
 	&pci_ss_info_1462_309e,
 	&pci_ss_info_1462_3300,
@@ -68065,6 +70076,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1462_702d,
 	&pci_ss_info_1462_702e,
 	&pci_ss_info_1462_7030,
+	&pci_ss_info_1462_7061,
 	&pci_ss_info_1462_7094,
 	&pci_ss_info_1462_7100,
 	&pci_ss_info_1462_7181,
@@ -68087,6 +70099,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1462_8852,
 	&pci_ss_info_1462_8880,
 	&pci_ss_info_1462_8900,
+	&pci_ss_info_1462_9110,
 	&pci_ss_info_1462_9171,
 	&pci_ss_info_1462_932c,
 	&pci_ss_info_1462_9350,
@@ -68153,6 +70166,7 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_147b[] = {
 	&pci_ss_info_147b_0507,
+	&pci_ss_info_147b_12c4,
 	&pci_ss_info_147b_1406,
 	&pci_ss_info_147b_1407,
 	&pci_ss_info_147b_1408,
@@ -68693,7 +70707,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1544 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1545[] = {
+	&pci_ss_info_1545_0023,
 	&pci_ss_info_1545_002f,
+	&pci_ss_info_1545_1996,
+	&pci_ss_info_1545_1997,
 	NULL
 };
 #endif
@@ -68917,6 +70934,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_15d9_3480,
 	&pci_ss_info_15d9_4580,
 	&pci_ss_info_15d9_9005,
+	&pci_ss_info_15d9_c080,
 	NULL
 };
 #endif
@@ -69147,6 +71165,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_16e5 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_16ec[] = {
+	&pci_ss_info_16ec_010d,
 	&pci_ss_info_16ec_0119,
 	NULL
 };
@@ -69167,6 +71186,7 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_170b NULL
 #define pci_ss_list_170c NULL
+#define pci_ss_list_1719 NULL
 #define pci_ss_list_1725 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_172a[] = {
@@ -69266,6 +71286,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_175e NULL
+#define pci_ss_list_1760 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1775[] = {
 	&pci_ss_info_1775_10d0,
@@ -69332,6 +71353,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_17aa_20b1,
 	&pci_ss_info_17aa_20b9,
 	&pci_ss_info_17aa_3802,
+	&pci_ss_info_17aa_6b7c,
 	NULL
 };
 #endif
@@ -69414,7 +71436,12 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_1813 NULL
-#define pci_ss_list_1814 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_1814[] = {
+	&pci_ss_info_1814_2561,
+	NULL
+};
+#endif
 #define pci_ss_list_1820 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1822[] = {
@@ -69614,6 +71641,7 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_1942 NULL
 #define pci_ss_list_194a NULL
+#define pci_ss_list_1954 NULL
 #define pci_ss_list_1957 NULL
 #define pci_ss_list_1958 NULL
 #define pci_ss_list_1959 NULL
@@ -69683,6 +71711,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
+#define pci_ss_list_1fc9 NULL
 #define pci_ss_list_1fce NULL
 #define pci_ss_list_2000 NULL
 #define pci_ss_list_2001 NULL
@@ -69700,6 +71729,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_270b NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_270f[] = {
+	&pci_ss_info_270f_1103,
 	&pci_ss_info_270f_2001,
 	&pci_ss_info_270f_2200,
 	&pci_ss_info_270f_2801,
@@ -69893,6 +71923,7 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_7063[] = {
 	&pci_ss_info_7063_3000,
+	&pci_ss_info_7063_5500,
 	NULL
 };
 #endif
@@ -70289,6 +72320,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_02c6,
 	&pci_ss_info_9005_02c7,
 	&pci_ss_info_9005_02c8,
+	&pci_ss_info_9005_02ce,
+	&pci_ss_info_9005_02cf,
+	&pci_ss_info_9005_02d0,
+	&pci_ss_info_9005_02d1,
 	&pci_ss_info_9005_0364,
 	&pci_ss_info_9005_0365,
 	&pci_ss_info_9005_0410,
@@ -72613,6 +74648,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_3151 = {
+	0x3151, pci_device_1002_3151,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_3151,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_3152 = {
 	0x3152, pci_device_1002_3152,
 #ifdef INIT_SUBSYS_INFO
@@ -72631,6 +74675,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_3171 = {
+	0x3171, pci_device_1002_3171,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_3171,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_3e50 = {
 	0x3e50, pci_device_1002_3e50,
 #ifdef INIT_SUBSYS_INFO
@@ -73288,6 +75341,114 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_4390 = {
+	0x4390, pci_device_1002_4390,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4390,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4391 = {
+	0x4391, pci_device_1002_4391,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4391,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4392 = {
+	0x4392, pci_device_1002_4392,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4392,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4393 = {
+	0x4393, pci_device_1002_4393,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4393,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4394 = {
+	0x4394, pci_device_1002_4394,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4394,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4395 = {
+	0x4395, pci_device_1002_4395,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4395,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4396 = {
+	0x4396, pci_device_1002_4396,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4396,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4397 = {
+	0x4397, pci_device_1002_4397,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4397,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4398 = {
+	0x4398, pci_device_1002_4398,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4398,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_4399 = {
+	0x4399, pci_device_1002_4399,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4399,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_439c = {
+	0x439c, pci_device_1002_439c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_439c,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_439d = {
+	0x439d, pci_device_1002_439d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_439d,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_4437 = {
 	0x4437, pci_device_1002_4437,
 #ifdef INIT_SUBSYS_INFO
@@ -73927,6 +76088,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_4d52 = {
+	0x4d52, pci_device_1002_4d52,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_4d52,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_4e44 = {
 	0x4e44, pci_device_1002_4e44,
 #ifdef INIT_SUBSYS_INFO
@@ -75133,6 +77303,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_5956 = {
+	0x5956, pci_device_1002_5956,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5956,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5957 = {
+	0x5957, pci_device_1002_5957,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5957,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5958 = {
+	0x5958, pci_device_1002_5958,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5958,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_5960 = {
 	0x5960, pci_device_1002_5960,
 #ifdef INIT_SUBSYS_INFO
@@ -75196,6 +77393,249 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_5978 = {
+	0x5978, pci_device_1002_5978,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5978,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5979 = {
+	0x5979, pci_device_1002_5979,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5979,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_597a = {
+	0x597a, pci_device_1002_597a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_597a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_597b = {
+	0x597b, pci_device_1002_597b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_597b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_597c = {
+	0x597c, pci_device_1002_597c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_597c,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_597d = {
+	0x597d, pci_device_1002_597d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_597d,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_597e = {
+	0x597e, pci_device_1002_597e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_597e,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_597f = {
+	0x597f, pci_device_1002_597f,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_597f,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5980 = {
+	0x5980, pci_device_1002_5980,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5980,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5981 = {
+	0x5981, pci_device_1002_5981,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5981,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5982 = {
+	0x5982, pci_device_1002_5982,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5982,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a10 = {
+	0x5a10, pci_device_1002_5a10,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a10,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a11 = {
+	0x5a11, pci_device_1002_5a11,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a11,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a12 = {
+	0x5a12, pci_device_1002_5a12,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a12,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a13 = {
+	0x5a13, pci_device_1002_5a13,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a13,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a14 = {
+	0x5a14, pci_device_1002_5a14,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a14,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a15 = {
+	0x5a15, pci_device_1002_5a15,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a15,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a16 = {
+	0x5a16, pci_device_1002_5a16,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a16,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a17 = {
+	0x5a17, pci_device_1002_5a17,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a17,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a18 = {
+	0x5a18, pci_device_1002_5a18,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a18,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a19 = {
+	0x5a19, pci_device_1002_5a19,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a19,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a1a = {
+	0x5a1a, pci_device_1002_5a1a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a1a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a1b = {
+	0x5a1b, pci_device_1002_5a1b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a1b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a1c = {
+	0x5a1c, pci_device_1002_5a1c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a1c,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a1d = {
+	0x5a1d, pci_device_1002_5a1d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a1d,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a1e = {
+	0x5a1e, pci_device_1002_5a1e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a1e,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_5a1f = {
+	0x5a1f, pci_device_1002_5a1f,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_5a1f,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_5a33 = {
 	0x5a33, pci_device_1002_5a33,
 #ifdef INIT_SUBSYS_INFO
@@ -75952,6 +78392,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_7186 = {
+	0x7186, pci_device_1002_7186,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_7186,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_7187 = {
 	0x7187, pci_device_1002_7187,
 #ifdef INIT_SUBSYS_INFO
@@ -76492,6 +78941,42 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_7910 = {
+	0x7910, pci_device_1002_7910,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_7910,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_7912 = {
+	0x7912, pci_device_1002_7912,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_7912,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_7916 = {
+	0x7916, pci_device_1002_7916,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_7916,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1002_7917 = {
+	0x7917, pci_device_1002_7917,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_7917,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_7919 = {
 	0x7919, pci_device_1002_7919,
 #ifdef INIT_SUBSYS_INFO
@@ -81689,6 +84174,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1039_0671 = {
+	0x0671, pci_device_1039_0671,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1039_0671,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1039_0730 = {
 	0x0730, pci_device_1039_0730,
 #ifdef INIT_SUBSYS_INFO
@@ -82607,6 +85101,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_103c_31fb = {
+	0x31fb, pci_device_103c_31fb,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_103c_31fb,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_103c_3220 = {
 	0x3220, pci_device_103c_3220,
 #ifdef INIT_SUBSYS_INFO
@@ -82634,6 +85137,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_103c_3300 = {
+	0x3300, pci_device_103c_3300,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_103c_3300,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_103c_3302 = {
+	0x3302, pci_device_103c_3302,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_103c_3302,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_103c_3305 = {
+	0x3305, pci_device_103c_3305,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_103c_3305,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_103c_4030 = {
 	0x4030, pci_device_103c_4030,
 #ifdef INIT_SUBSYS_INFO
@@ -82880,6 +85410,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1043_81e7 = {
+	0x81e7, pci_device_1043_81e7,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1043_81e7,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1043_81f4 = {
 	0x81f4, pci_device_1043_81f4,
 #ifdef INIT_SUBSYS_INFO
@@ -84332,6 +86871,51 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1054_3009 = {
+	0x3009, pci_device_1054_3009,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1054_3009,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1054_300a = {
+	0x300a, pci_device_1054_300a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1054_300a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1054_300b = {
+	0x300b, pci_device_1054_300b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1054_300b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1054_300f = {
+	0x300f, pci_device_1054_300f,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1054_300f,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1054_3010 = {
+	0x3010, pci_device_1054_3010,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1054_3010,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1054_3011 = {
 	0x3011, pci_device_1054_3011,
 #ifdef INIT_SUBSYS_INFO
@@ -84350,6 +86934,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1054_3017 = {
+	0x3017, pci_device_1054_3017,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1054_3017,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1055_9130 = {
@@ -84930,6 +87523,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_105a_6300 = {
+	0x6300, pci_device_105a_6300,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_105a_6300,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_105a_6621 = {
 	0x6621, pci_device_105a_6621,
 #ifdef INIT_SUBSYS_INFO
@@ -86385,6 +88987,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1077_2532 = {
+	0x2532, pci_device_1077_2532,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1077_2532,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1077_3022 = {
 	0x3022, pci_device_1077_3022,
 #ifdef INIT_SUBSYS_INFO
@@ -87041,6 +89652,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_108e_1647 = {
+	0x1647, pci_device_108e_1647,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_108e_1647,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_108e_1648 = {
 	0x1648, pci_device_108e_1648,
 #ifdef INIT_SUBSYS_INFO
@@ -87050,6 +89670,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_108e_16a7 = {
+	0x16a7, pci_device_108e_16a7,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_108e_16a7,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_108e_16a8 = {
+	0x16a8, pci_device_108e_16a8,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_108e_16a8,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_108e_2bad = {
 	0x2bad, pci_device_108e_2bad,
 #ifdef INIT_SUBSYS_INFO
@@ -87077,288 +89715,522 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_676e = {
-	0x676e, pci_device_108e_676e,
+static const pciDeviceInfo pci_dev_info_108e_6300 = {
+	0x6300, pci_device_108e_6300,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_676e,
+	pci_ss_list_108e_6300,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_7063 = {
-	0x7063, pci_device_108e_7063,
+static const pciDeviceInfo pci_dev_info_108e_6301 = {
+	0x6301, pci_device_108e_6301,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_7063,
+	pci_ss_list_108e_6301,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_8000 = {
-	0x8000, pci_device_108e_8000,
+static const pciDeviceInfo pci_dev_info_108e_6302 = {
+	0x6302, pci_device_108e_6302,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_8000,
+	pci_ss_list_108e_6302,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_8001 = {
-	0x8001, pci_device_108e_8001,
+static const pciDeviceInfo pci_dev_info_108e_6303 = {
+	0x6303, pci_device_108e_6303,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_8001,
+	pci_ss_list_108e_6303,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_8002 = {
-	0x8002, pci_device_108e_8002,
+static const pciDeviceInfo pci_dev_info_108e_6310 = {
+	0x6310, pci_device_108e_6310,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_8002,
+	pci_ss_list_108e_6310,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_a000 = {
-	0xa000, pci_device_108e_a000,
+static const pciDeviceInfo pci_dev_info_108e_6311 = {
+	0x6311, pci_device_108e_6311,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_a000,
+	pci_ss_list_108e_6311,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_a001 = {
-	0xa001, pci_device_108e_a001,
+static const pciDeviceInfo pci_dev_info_108e_6312 = {
+	0x6312, pci_device_108e_6312,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_a001,
+	pci_ss_list_108e_6312,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_a801 = {
-	0xa801, pci_device_108e_a801,
+static const pciDeviceInfo pci_dev_info_108e_6313 = {
+	0x6313, pci_device_108e_6313,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_a801,
+	pci_ss_list_108e_6313,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_108e_abba = {
-	0xabba, pci_device_108e_abba,
+static const pciDeviceInfo pci_dev_info_108e_6320 = {
+	0x6320, pci_device_108e_6320,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_108e_abba,
+	pci_ss_list_108e_6320,
 #else
 	NULL,
 #endif
 	0
 };
-#ifdef VENDOR_INCLUDE_NONVIDEO
-static const pciDeviceInfo pci_dev_info_1091_0020 = {
-	0x0020, pci_device_1091_0020,
+static const pciDeviceInfo pci_dev_info_108e_6323 = {
+	0x6323, pci_device_108e_6323,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_0020,
+	pci_ss_list_108e_6323,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1091_0021 = {
-	0x0021, pci_device_1091_0021,
+static const pciDeviceInfo pci_dev_info_108e_6330 = {
+	0x6330, pci_device_108e_6330,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_0021,
+	pci_ss_list_108e_6330,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1091_0040 = {
-	0x0040, pci_device_1091_0040,
+static const pciDeviceInfo pci_dev_info_108e_6331 = {
+	0x6331, pci_device_108e_6331,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_0040,
+	pci_ss_list_108e_6331,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1091_0041 = {
-	0x0041, pci_device_1091_0041,
+static const pciDeviceInfo pci_dev_info_108e_6332 = {
+	0x6332, pci_device_108e_6332,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_0041,
+	pci_ss_list_108e_6332,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1091_0060 = {
-	0x0060, pci_device_1091_0060,
+static const pciDeviceInfo pci_dev_info_108e_6333 = {
+	0x6333, pci_device_108e_6333,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_0060,
+	pci_ss_list_108e_6333,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1091_00e4 = {
-	0x00e4, pci_device_1091_00e4,
+static const pciDeviceInfo pci_dev_info_108e_6340 = {
+	0x6340, pci_device_108e_6340,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_00e4,
+	pci_ss_list_108e_6340,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1091_0720 = {
-	0x0720, pci_device_1091_0720,
+static const pciDeviceInfo pci_dev_info_108e_6343 = {
+	0x6343, pci_device_108e_6343,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_0720,
+	pci_ss_list_108e_6343,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1091_07a0 = {
-	0x07a0, pci_device_1091_07a0,
+static const pciDeviceInfo pci_dev_info_108e_6350 = {
+	0x6350, pci_device_108e_6350,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_07a0,
+	pci_ss_list_108e_6350,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1091_1091 = {
-	0x1091, pci_device_1091_1091,
+static const pciDeviceInfo pci_dev_info_108e_6353 = {
+	0x6353, pci_device_108e_6353,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1091_1091,
+	pci_ss_list_108e_6353,
 #else
 	NULL,
 #endif
 	0
 };
-#endif
-static const pciDeviceInfo pci_dev_info_1092_00a0 = {
-	0x00a0, pci_device_1092_00a0,
+static const pciDeviceInfo pci_dev_info_108e_6722 = {
+	0x6722, pci_device_108e_6722,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_00a0,
+	pci_ss_list_108e_6722,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_00a8 = {
-	0x00a8, pci_device_1092_00a8,
+static const pciDeviceInfo pci_dev_info_108e_676e = {
+	0x676e, pci_device_108e_676e,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_00a8,
+	pci_ss_list_108e_676e,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_0550 = {
-	0x0550, pci_device_1092_0550,
+static const pciDeviceInfo pci_dev_info_108e_7063 = {
+	0x7063, pci_device_108e_7063,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_0550,
+	pci_ss_list_108e_7063,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_08d4 = {
-	0x08d4, pci_device_1092_08d4,
+static const pciDeviceInfo pci_dev_info_108e_8000 = {
+	0x8000, pci_device_108e_8000,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_08d4,
+	pci_ss_list_108e_8000,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_094c = {
-	0x094c, pci_device_1092_094c,
+static const pciDeviceInfo pci_dev_info_108e_8001 = {
+	0x8001, pci_device_108e_8001,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_094c,
+	pci_ss_list_108e_8001,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_1092 = {
-	0x1092, pci_device_1092_1092,
+static const pciDeviceInfo pci_dev_info_108e_8002 = {
+	0x8002, pci_device_108e_8002,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_1092,
+	pci_ss_list_108e_8002,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_6120 = {
-	0x6120, pci_device_1092_6120,
+static const pciDeviceInfo pci_dev_info_108e_80f0 = {
+	0x80f0, pci_device_108e_80f0,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_6120,
+	pci_ss_list_108e_80f0,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_8810 = {
-	0x8810, pci_device_1092_8810,
+static const pciDeviceInfo pci_dev_info_108e_80f8 = {
+	0x80f8, pci_device_108e_80f8,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_8810,
+	pci_ss_list_108e_80f8,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_8811 = {
-	0x8811, pci_device_1092_8811,
+static const pciDeviceInfo pci_dev_info_108e_9010 = {
+	0x9010, pci_device_108e_9010,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_8811,
+	pci_ss_list_108e_9010,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_8880 = {
-	0x8880, pci_device_1092_8880,
+static const pciDeviceInfo pci_dev_info_108e_9020 = {
+	0x9020, pci_device_108e_9020,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_8880,
+	pci_ss_list_108e_9020,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_8881 = {
-	0x8881, pci_device_1092_8881,
+static const pciDeviceInfo pci_dev_info_108e_9102 = {
+	0x9102, pci_device_108e_9102,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_8881,
+	pci_ss_list_108e_9102,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_88b0 = {
-	0x88b0, pci_device_1092_88b0,
+static const pciDeviceInfo pci_dev_info_108e_a000 = {
+	0xa000, pci_device_108e_a000,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_88b0,
+	pci_ss_list_108e_a000,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_88b1 = {
-	0x88b1, pci_device_1092_88b1,
+static const pciDeviceInfo pci_dev_info_108e_a001 = {
+	0xa001, pci_device_108e_a001,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1092_88b1,
+	pci_ss_list_108e_a001,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1092_88c0 = {
+static const pciDeviceInfo pci_dev_info_108e_a801 = {
+	0xa801, pci_device_108e_a801,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_108e_a801,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_108e_abba = {
+	0xabba, pci_device_108e_abba,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_108e_abba,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_108e_c416 = {
+	0xc416, pci_device_108e_c416,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_108e_c416,
+#else
+	NULL,
+#endif
+	0
+};
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1091_0020 = {
+	0x0020, pci_device_1091_0020,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_0020,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1091_0021 = {
+	0x0021, pci_device_1091_0021,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_0021,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1091_0040 = {
+	0x0040, pci_device_1091_0040,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_0040,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1091_0041 = {
+	0x0041, pci_device_1091_0041,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_0041,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1091_0060 = {
+	0x0060, pci_device_1091_0060,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_0060,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1091_00e4 = {
+	0x00e4, pci_device_1091_00e4,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_00e4,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1091_0720 = {
+	0x0720, pci_device_1091_0720,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_0720,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1091_07a0 = {
+	0x07a0, pci_device_1091_07a0,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_07a0,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1091_1091 = {
+	0x1091, pci_device_1091_1091,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1091_1091,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+static const pciDeviceInfo pci_dev_info_1092_0028 = {
+	0x0028, pci_device_1092_0028,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_0028,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_00a0 = {
+	0x00a0, pci_device_1092_00a0,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_00a0,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_00a8 = {
+	0x00a8, pci_device_1092_00a8,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_00a8,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_0550 = {
+	0x0550, pci_device_1092_0550,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_0550,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_08d4 = {
+	0x08d4, pci_device_1092_08d4,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_08d4,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_094c = {
+	0x094c, pci_device_1092_094c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_094c,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_1092 = {
+	0x1092, pci_device_1092_1092,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_1092,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_6120 = {
+	0x6120, pci_device_1092_6120,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_6120,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_8810 = {
+	0x8810, pci_device_1092_8810,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_8810,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_8811 = {
+	0x8811, pci_device_1092_8811,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_8811,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_8880 = {
+	0x8880, pci_device_1092_8880,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_8880,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_8881 = {
+	0x8881, pci_device_1092_8881,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_8881,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_88b0 = {
+	0x88b0, pci_device_1092_88b0,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_88b0,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_88b1 = {
+	0x88b1, pci_device_1092_88b1,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1092_88b1,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1092_88c0 = {
 	0x88c0, pci_device_1092_88c0,
 #ifdef INIT_SUBSYS_INFO
 	pci_ss_list_1092_88c0,
@@ -88477,6 +91349,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10b5_1024 = {
+	0x1024, pci_device_10b5_1024,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_1024,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10b5_1042 = {
 	0x1042, pci_device_10b5_1042,
 #ifdef INIT_SUBSYS_INFO
@@ -88558,6 +91439,60 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10b5_6140 = {
+	0x6140, pci_device_10b5_6140,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_6140,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_6150 = {
+	0x6150, pci_device_10b5_6150,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_6150,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_6152 = {
+	0x6152, pci_device_10b5_6152,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_6152,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_6154 = {
+	0x6154, pci_device_10b5_6154,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_6154,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_6254 = {
+	0x6254, pci_device_10b5_6254,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_6254,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_6466 = {
+	0x6466, pci_device_10b5_6466,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_6466,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10b5_6520 = {
 	0x6520, pci_device_10b5_6520,
 #ifdef INIT_SUBSYS_INFO
@@ -88603,6 +91538,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10b5_8112 = {
+	0x8112, pci_device_10b5_8112,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8112,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10b5_8114 = {
 	0x8114, pci_device_10b5_8114,
 #ifdef INIT_SUBSYS_INFO
@@ -88612,6 +91556,51 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10b5_8311 = {
+	0x8311, pci_device_10b5_8311,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8311,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8505 = {
+	0x8505, pci_device_10b5_8505,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8505,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8508 = {
+	0x8508, pci_device_10b5_8508,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8508,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8509 = {
+	0x8509, pci_device_10b5_8509,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8509,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8512 = {
+	0x8512, pci_device_10b5_8512,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8512,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10b5_8516 = {
 	0x8516, pci_device_10b5_8516,
 #ifdef INIT_SUBSYS_INFO
@@ -88621,6 +91610,42 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10b5_8517 = {
+	0x8517, pci_device_10b5_8517,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8517,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8518 = {
+	0x8518, pci_device_10b5_8518,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8518,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8524 = {
+	0x8524, pci_device_10b5_8524,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8524,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8525 = {
+	0x8525, pci_device_10b5_8525,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8525,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10b5_8532 = {
 	0x8532, pci_device_10b5_8532,
 #ifdef INIT_SUBSYS_INFO
@@ -88630,6 +91655,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10b5_8533 = {
+	0x8533, pci_device_10b5_8533,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8533,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8547 = {
+	0x8547, pci_device_10b5_8547,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8547,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10b5_8548 = {
+	0x8548, pci_device_10b5_8548,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_8548,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10b5_9030 = {
 	0x9030, pci_device_10b5_9030,
 #ifdef INIT_SUBSYS_INFO
@@ -88657,6 +91709,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10b5_9052 = {
+	0x9052, pci_device_10b5_9052,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_9052,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10b5_9054 = {
 	0x9054, pci_device_10b5_9054,
 #ifdef INIT_SUBSYS_INFO
@@ -90493,6 +93554,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10cd_2700 = {
+	0x2700, pci_device_10cd_2700,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10cd_2700,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_10cf_2001 = {
@@ -92547,6 +95617,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_01d0 = {
+	0x01d0, pci_device_10de_01d0,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_01d0,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_01d1 = {
 	0x01d1, pci_device_10de_01d1,
 #ifdef INIT_SUBSYS_INFO
@@ -92601,6 +95680,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_01db = {
+	0x01db, pci_device_10de_01db,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_01db,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_01dc = {
 	0x01dc, pci_device_10de_01dc,
 #ifdef INIT_SUBSYS_INFO
@@ -93438,6 +96526,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_02e3 = {
+	0x02e3, pci_device_10de_02e3,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_02e3,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_02f0 = {
 	0x02f0, pci_device_10de_02f0,
 #ifdef INIT_SUBSYS_INFO
@@ -94941,6 +98038,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_040c = {
+	0x040c, pci_device_10de_040c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_040c,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_040d = {
+	0x040d, pci_device_10de_040d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_040d,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0421 = {
 	0x0421, pci_device_10de_0421,
 #ifdef INIT_SUBSYS_INFO
@@ -95031,6 +98146,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_042d = {
+	0x042d, pci_device_10de_042d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_042d,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0440 = {
 	0x0440, pci_device_10de_0440,
 #ifdef INIT_SUBSYS_INFO
@@ -96205,6 +99329,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10ec_0262 = {
+	0x0262, pci_device_10ec_0262,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ec_0262,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10ec_0280 = {
 	0x0280, pci_device_10ec_0280,
 #ifdef INIT_SUBSYS_INFO
@@ -96506,6 +99639,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10ee_ebf0 = {
+	0xebf0, pci_device_10ee_ebf0,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ee_ebf0,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10ee_ebf1 = {
+	0xebf1, pci_device_10ee_ebf1,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ee_ebf1,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10ee_ebf2 = {
+	0xebf2, pci_device_10ee_ebf2,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ee_ebf2,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_10ef_8154 = {
@@ -96583,6 +99743,15 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1101_0002 = {
+	0x0002, pci_device_1101_0002,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1101_0002,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1101_1060 = {
 	0x1060, pci_device_1101_1060,
 #ifdef INIT_SUBSYS_INFO
@@ -96702,6 +99871,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1102_0009 = {
+	0x0009, pci_device_1102_0009,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1102_0009,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1102_4001 = {
 	0x4001, pci_device_1102_4001,
 #ifdef INIT_SUBSYS_INFO
@@ -96830,6 +100008,60 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1103_1740 = {
+	0x1740, pci_device_1103_1740,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_1740,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1103_1742 = {
+	0x1742, pci_device_1103_1742,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_1742,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1103_2300 = {
+	0x2300, pci_device_1103_2300,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_2300,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1103_2310 = {
+	0x2310, pci_device_1103_2310,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_2310,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1103_2320 = {
+	0x2320, pci_device_1103_2320,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_2320,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1103_2322 = {
+	0x2322, pci_device_1103_2322,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_2322,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1103_2340 = {
 	0x2340, pci_device_1103_2340,
 #ifdef INIT_SUBSYS_INFO
@@ -96839,6 +100071,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1103_3220 = {
+	0x3220, pci_device_1103_3220,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_3220,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1103_3320 = {
+	0x3320, pci_device_1103_3320,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_3320,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1105_1105 = {
@@ -96931,6 +100181,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1105_c622 = {
+	0xc622, pci_device_1105_c622,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1105_c622,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1106_0102 = {
@@ -101205,6 +104464,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1133_e02e = {
+	0xe02e, pci_device_1133_e02e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1133_e02e,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1133_e032 = {
 	0xe032, pci_device_1133_e032,
 #ifdef INIT_SUBSYS_INFO
@@ -101214,6 +104482,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1133_e034 = {
+	0xe034, pci_device_1133_e034,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1133_e034,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1134_0001 = {
@@ -102019,6 +105296,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_114f_00cc = {
+	0x00cc, pci_device_114f_00cc,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_114f_00cc,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_114f_00cd = {
+	0x00cd, pci_device_114f_00cd,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_114f_00cd,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_114f_00ce = {
+	0x00ce, pci_device_114f_00ce,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_114f_00ce,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_114f_00d0 = {
 	0x00d0, pci_device_114f_00d0,
 #ifdef INIT_SUBSYS_INFO
@@ -102993,6 +106297,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1180_0843 = {
+	0x0843, pci_device_1180_0843,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1180_0843,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1180_0852 = {
 	0x0852, pci_device_1180_0852,
 #ifdef INIT_SUBSYS_INFO
@@ -103220,6 +106533,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1186_3c00 = {
+	0x3c00, pci_device_1186_3c00,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1186_3c00,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1186_4000 = {
 	0x4000, pci_device_1186_4000,
 #ifdef INIT_SUBSYS_INFO
@@ -103229,6 +106551,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1186_4001 = {
+	0x4001, pci_device_1186_4001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1186_4001,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1186_4300 = {
 	0x4300, pci_device_1186_4300,
 #ifdef INIT_SUBSYS_INFO
@@ -103247,6 +106578,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1186_4b00 = {
+	0x4b00, pci_device_1186_4b00,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1186_4b00,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1186_4b01 = {
 	0x4b01, pci_device_1186_4b01,
 #ifdef INIT_SUBSYS_INFO
@@ -103256,6 +106596,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1186_4b02 = {
+	0x4b02, pci_device_1186_4b02,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1186_4b02,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1186_4c00 = {
 	0x4c00, pci_device_1186_4c00,
 #ifdef INIT_SUBSYS_INFO
@@ -103870,6 +107219,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_4353 = {
+	0x4353, pci_device_11ab_4353,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_4353,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_4356 = {
+	0x4356, pci_device_11ab_4356,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_4356,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_4360 = {
 	0x4360, pci_device_11ab_4360,
 #ifdef INIT_SUBSYS_INFO
@@ -103915,6 +107282,60 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_4366 = {
+	0x4366, pci_device_11ab_4366,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_4366,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_4367 = {
+	0x4367, pci_device_11ab_4367,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_4367,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_4368 = {
+	0x4368, pci_device_11ab_4368,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_4368,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_4369 = {
+	0x4369, pci_device_11ab_4369,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_4369,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_436a = {
+	0x436a, pci_device_11ab_436a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_436a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_436b = {
+	0x436b, pci_device_11ab_436b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_436b,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_4611 = {
 	0x4611, pci_device_11ab_4611,
 #ifdef INIT_SUBSYS_INFO
@@ -103996,6 +107417,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_6042 = {
+	0x6042, pci_device_11ab_6042,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_6042,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_6081 = {
 	0x6081, pci_device_11ab_6081,
 #ifdef INIT_SUBSYS_INFO
@@ -104014,6 +107444,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_6121 = {
+	0x6121, pci_device_11ab_6121,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_6121,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_6141 = {
 	0x6141, pci_device_11ab_6141,
 #ifdef INIT_SUBSYS_INFO
@@ -104068,6 +107507,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_7042 = {
+	0x7042, pci_device_11ab_7042,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_7042,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_f003 = {
 	0xf003, pci_device_11ab_f003,
 #ifdef INIT_SUBSYS_INFO
@@ -105026,6 +108474,15 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_11f8_7364 = {
+	0x7364, pci_device_11f8_7364,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11f8_7364,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11f8_7375 = {
 	0x7375, pci_device_11f8_7375,
 #ifdef INIT_SUBSYS_INFO
@@ -105035,6 +108492,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11f8_7384 = {
+	0x7384, pci_device_11f8_7384,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11f8_7384,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11f8_8000 = {
+	0x8000, pci_device_11f8_8000,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11f8_8000,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_11fe_0001 = {
@@ -105172,6 +108647,87 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11fe_0040 = {
+	0x0040, pci_device_11fe_0040,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_0040,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11fe_0041 = {
+	0x0041, pci_device_11fe_0041,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_0041,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11fe_0042 = {
+	0x0042, pci_device_11fe_0042,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_0042,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11fe_0043 = {
+	0x0043, pci_device_11fe_0043,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_0043,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11fe_0044 = {
+	0x0044, pci_device_11fe_0044,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_0044,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11fe_0045 = {
+	0x0045, pci_device_11fe_0045,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_0045,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11fe_0047 = {
+	0x0047, pci_device_11fe_0047,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_0047,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11fe_004f = {
+	0x004f, pci_device_11fe_004f,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_004f,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11fe_0052 = {
+	0x0052, pci_device_11fe_0052,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11fe_0052,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11fe_0801 = {
 	0x0801, pci_device_11fe_0801,
 #ifdef INIT_SUBSYS_INFO
@@ -105589,6 +109145,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1217_7136 = {
+	0x7136, pci_device_1217_7136,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1217_7136,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1217_71e2 = {
 	0x71e2, pci_device_1217_71e2,
 #ifdef INIT_SUBSYS_INFO
@@ -105721,6 +109286,53 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1221_9172 = {
+	0x9172, pci_device_1221_9172,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1221_9172,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1221_91a2 = {
+	0x91a2, pci_device_1221_91a2,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1221_91a2,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1221_91c3 = {
+	0x91c3, pci_device_1221_91c3,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1221_91c3,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1221_b152 = {
+	0xb152, pci_device_1221_b152,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1221_b152,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1221_c103 = {
+	0xc103, pci_device_1221_c103,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1221_c103,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1223_0003 = {
 	0x0003, pci_device_1223_0003,
 #ifdef INIT_SUBSYS_INFO
@@ -106676,6 +110288,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1278_1101 = {
+	0x1101, pci_device_1278_1101,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1278_1101,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1279_0060 = {
@@ -107656,6 +111277,44 @@ static const pciDeviceInfo pci_dev_info_
 	0
 };
 #endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_12c7_0546 = {
+	0x0546, pci_device_12c7_0546,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12c7_0546,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_12c7_0647 = {
+	0x0647, pci_device_12c7_0647,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12c7_0647,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_12c7_0676 = {
+	0x0676, pci_device_12c7_0676,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12c7_0676,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_12c7_0685 = {
+	0x0685, pci_device_12c7_0685,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12c7_0685,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
 static const pciDeviceInfo pci_dev_info_12d2_0008 = {
 	0x0008, pci_device_12d2_0008,
 #ifdef INIT_SUBSYS_INFO
@@ -108386,6 +112045,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1307_005d = {
+	0x005d, pci_device_1307_005d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_005d,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1307_005e = {
 	0x005e, pci_device_1307_005e,
 #ifdef INIT_SUBSYS_INFO
@@ -108395,6 +112063,123 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1307_005f = {
+	0x005f, pci_device_1307_005f,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_005f,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0060 = {
+	0x0060, pci_device_1307_0060,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0060,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0061 = {
+	0x0061, pci_device_1307_0061,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0061,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0062 = {
+	0x0062, pci_device_1307_0062,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0062,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0063 = {
+	0x0063, pci_device_1307_0063,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0063,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0064 = {
+	0x0064, pci_device_1307_0064,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0064,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0065 = {
+	0x0065, pci_device_1307_0065,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0065,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0066 = {
+	0x0066, pci_device_1307_0066,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0066,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0067 = {
+	0x0067, pci_device_1307_0067,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0067,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0068 = {
+	0x0068, pci_device_1307_0068,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0068,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_006f = {
+	0x006f, pci_device_1307_006f,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_006f,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0078 = {
+	0x0078, pci_device_1307_0078,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0078,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1307_0079 = {
+	0x0079, pci_device_1307_0079,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1307_0079,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1308_0001 = {
@@ -109339,6 +113124,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1360_0105 = {
+	0x0105, pci_device_1360_0105,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1360_0105,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1360_0201 = {
 	0x0201, pci_device_1360_0201,
 #ifdef INIT_SUBSYS_INFO
@@ -109375,6 +113169,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1360_0205 = {
+	0x0205, pci_device_1360_0205,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1360_0205,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1360_0301 = {
 	0x0301, pci_device_1360_0301,
 #ifdef INIT_SUBSYS_INFO
@@ -109402,6 +113205,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1360_0304 = {
+	0x0304, pci_device_1360_0304,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1360_0304,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_136a_0004 = {
@@ -110059,6 +113871,42 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1393_0001 = {
+	0x0001, pci_device_1393_0001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_0001,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1020 = {
+	0x1020, pci_device_1393_1020,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1020,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1021 = {
+	0x1021, pci_device_1393_1021,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1021,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1022 = {
+	0x1022, pci_device_1393_1022,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1022,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1393_1040 = {
 	0x1040, pci_device_1393_1040,
 #ifdef INIT_SUBSYS_INFO
@@ -110068,6 +113916,60 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1393_1041 = {
+	0x1041, pci_device_1393_1041,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1041,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1042 = {
+	0x1042, pci_device_1393_1042,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1042,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1043 = {
+	0x1043, pci_device_1393_1043,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1043,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1044 = {
+	0x1044, pci_device_1393_1044,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1044,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1080 = {
+	0x1080, pci_device_1393_1080,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1080,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1140 = {
+	0x1140, pci_device_1393_1140,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1140,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1393_1141 = {
 	0x1141, pci_device_1393_1141,
 #ifdef INIT_SUBSYS_INFO
@@ -110077,6 +113979,78 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1393_1142 = {
+	0x1142, pci_device_1393_1142,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1142,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1180 = {
+	0x1180, pci_device_1393_1180,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1180,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1181 = {
+	0x1181, pci_device_1393_1181,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1181,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1320 = {
+	0x1320, pci_device_1393_1320,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1320,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1321 = {
+	0x1321, pci_device_1393_1321,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1321,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1340 = {
+	0x1340, pci_device_1393_1340,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1340,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1341 = {
+	0x1341, pci_device_1393_1341,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1341,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1393_1380 = {
+	0x1380, pci_device_1393_1380,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1380,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1393_1680 = {
 	0x1680, pci_device_1393_1680,
 #ifdef INIT_SUBSYS_INFO
@@ -110095,6 +114069,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1393_1682 = {
+	0x1682, pci_device_1393_1682,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1682,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1393_2040 = {
 	0x2040, pci_device_1393_2040,
 #ifdef INIT_SUBSYS_INFO
@@ -110453,6 +114436,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_13c2_1019 = {
+	0x1019, pci_device_13c2_1019,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_13c2_1019,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_13c6_0520 = {
@@ -110593,6 +114585,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_13f0_1021 = {
+	0x1021, pci_device_13f0_1021,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_13f0_1021,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_13f0_1023 = {
 	0x1023, pci_device_13f0_1023,
 #ifdef INIT_SUBSYS_INFO
@@ -110969,6 +114970,107 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1414_5801 = {
+	0x5801, pci_device_1414_5801,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_5801,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_5802 = {
+	0x5802, pci_device_1414_5802,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_5802,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_5803 = {
+	0x5803, pci_device_1414_5803,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_5803,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_5804 = {
+	0x5804, pci_device_1414_5804,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_5804,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_5805 = {
+	0x5805, pci_device_1414_5805,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_5805,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_5806 = {
+	0x5806, pci_device_1414_5806,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_5806,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_5807 = {
+	0x5807, pci_device_1414_5807,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_5807,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_580a = {
+	0x580a, pci_device_1414_580a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_580a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_580b = {
+	0x580b, pci_device_1414_580b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_580b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_580d = {
+	0x580d, pci_device_1414_580d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_580d,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1414_5811 = {
+	0x5811, pci_device_1414_5811,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1414_5811,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1415_8403 = {
 	0x8403, pci_device_1415_8403,
 #ifdef INIT_SUBSYS_INFO
@@ -111459,6 +115561,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1462_7250 = {
+	0x7250, pci_device_1462_7250,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1462_7250,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1462_7327 = {
+	0x7327, pci_device_1462_7327,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1462_7327,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1462_8725 = {
 	0x8725, pci_device_1462_8725,
 #ifdef INIT_SUBSYS_INFO
@@ -112000,6 +116120,26 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_14d6_6101 = {
+	0x6101, pci_device_14d6_6101,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14d6_6101,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_14d6_6201 = {
+	0x6201, pci_device_14d6_6201,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14d6_6201,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_14d9_0010 = {
 	0x0010, pci_device_14d9_0010,
 #ifdef INIT_SUBSYS_INFO
@@ -112303,6 +116443,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_1649 = {
+	0x1649, pci_device_14e4_1649,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_1649,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_164a = {
 	0x164a, pci_device_14e4_164a,
 #ifdef INIT_SUBSYS_INFO
@@ -112348,6 +116497,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_1658 = {
+	0x1658, pci_device_14e4_1658,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_1658,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_1659 = {
 	0x1659, pci_device_14e4_1659,
 #ifdef INIT_SUBSYS_INFO
@@ -112456,6 +116614,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_1676 = {
+	0x1676, pci_device_14e4_1676,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_1676,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_1677 = {
 	0x1677, pci_device_14e4_1677,
 #ifdef INIT_SUBSYS_INFO
@@ -112501,6 +116668,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_167c = {
+	0x167c, pci_device_14e4_167c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_167c,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_167d = {
 	0x167d, pci_device_14e4_167d,
 #ifdef INIT_SUBSYS_INFO
@@ -114278,6 +118454,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14f1_5b7a = {
+	0x5b7a, pci_device_14f1_5b7a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14f1_5b7a,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14f1_8234 = {
 	0x8234, pci_device_14f1_8234,
 #ifdef INIT_SUBSYS_INFO
@@ -114698,6 +118883,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1524_0730 = {
+	0x0730, pci_device_1524_0730,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1524_0730,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1524_0750 = {
+	0x0750, pci_device_1524_0750,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1524_0750,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1524_0751 = {
+	0x0751, pci_device_1524_0751,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1524_0751,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1524_1211 = {
 	0x1211, pci_device_1524_1211,
 #ifdef INIT_SUBSYS_INFO
@@ -115458,6 +119670,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_15e8_0131 = {
+	0x0131, pci_device_15e8_0131,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15e8_0131,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_15e9_1841 = {
@@ -115647,6 +119868,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1657_0646 = {
+	0x0646, pci_device_1657_0646,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1657_0646,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_165a_c100 = {
 	0xc100, pci_device_165a_c100,
 #ifdef INIT_SUBSYS_INFO
@@ -116008,6 +120240,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_16c6_8842 = {
+	0x8842, pci_device_16c6_8842,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16c6_8842,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_16ca_0001 = {
@@ -116480,6 +120721,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1734_1098 = {
+	0x1098, pci_device_1734_1098,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1734_1098,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1737_0013 = {
@@ -116596,6 +120846,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_177d_0001 = {
+	0x0001, pci_device_177d_0001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_177d_0001,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1796_0001 = {
 	0x0001, pci_device_1796_0001,
 #ifdef INIT_SUBSYS_INFO
@@ -116650,6 +120911,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1796_000d = {
+	0x000d, pci_device_1796_000d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1796_000d,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1799_6001 = {
@@ -116909,6 +121179,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_17d3_1280 = {
+	0x1280, pci_device_17d3_1280,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_17d3_1280,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_17d5_5831 = {
@@ -117105,6 +121384,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1814_0300 = {
+	0x0300, pci_device_1814_0300,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1814_0300,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1814_0301 = {
 	0x0301, pci_device_1814_0301,
 #ifdef INIT_SUBSYS_INFO
@@ -117290,6 +121578,15 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_186c_0612 = {
+	0x0612, pci_device_186c_0612,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_186c_0612,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_186c_0614 = {
 	0x0614, pci_device_186c_0614,
 #ifdef INIT_SUBSYS_INFO
@@ -117299,6 +121596,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_186c_0622 = {
+	0x0622, pci_device_186c_0622,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_186c_0622,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_186c_0624 = {
+	0x0624, pci_device_186c_0624,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_186c_0624,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_186c_0625 = {
+	0x0625, pci_device_186c_0625,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_186c_0625,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1876_a101 = {
@@ -117424,6 +121748,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_18ac_db30 = {
+	0xdb30, pci_device_18ac_db30,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_18ac_db30,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_18b8_b001 = {
@@ -117611,6 +121944,42 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_18f7_000f = {
+	0x000f, pci_device_18f7_000f,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_18f7_000f,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_18f7_0010 = {
+	0x0010, pci_device_18f7_0010,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_18f7_0010,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_18f7_0011 = {
+	0x0011, pci_device_18f7_0011,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_18f7_0011,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_18f7_0014 = {
+	0x0014, pci_device_18f7_0014,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_18f7_0014,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1904_8139 = {
@@ -117740,6 +122109,114 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1957_0013 = {
+	0x0013, pci_device_1957_0013,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0013,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0014 = {
+	0x0014, pci_device_1957_0014,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0014,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0015 = {
+	0x0015, pci_device_1957_0015,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0015,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0018 = {
+	0x0018, pci_device_1957_0018,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0018,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0019 = {
+	0x0019, pci_device_1957_0019,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0019,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_001a = {
+	0x001a, pci_device_1957_001a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_001a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0020 = {
+	0x0020, pci_device_1957_0020,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0020,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0021 = {
+	0x0021, pci_device_1957_0021,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0021,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0022 = {
+	0x0022, pci_device_1957_0022,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0022,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0023 = {
+	0x0023, pci_device_1957_0023,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0023,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0030 = {
+	0x0030, pci_device_1957_0030,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0030,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_0031 = {
+	0x0031, pci_device_1957_0031,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_0031,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1957_0080 = {
 	0x0080, pci_device_1957_0080,
 #ifdef INIT_SUBSYS_INFO
@@ -117812,6 +122289,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1957_7010 = {
+	0x7010, pci_device_1957_7010,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_7010,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1957_7011 = {
+	0x7011, pci_device_1957_7011,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1957_7011,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1966_1975 = {
@@ -118234,6 +122729,35 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1fc9_3009 = {
+	0x3009, pci_device_1fc9_3009,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1fc9_3009,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1fc9_3010 = {
+	0x3010, pci_device_1fc9_3010,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1fc9_3010,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1fc9_3014 = {
+	0x3014, pci_device_1fc9_3014,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1fc9_3014,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1fce_0001 = {
 	0x0001, pci_device_1fce_0001,
 #ifdef INIT_SUBSYS_INFO
@@ -118830,6 +123354,24 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_494f_0c60 = {
+	0x0c60, pci_device_494f_0c60,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_494f_0c60,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_494f_0e60 = {
+	0x0e60, pci_device_494f_0e60,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_494f_0e60,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_494f_10e8 = {
 	0x10e8, pci_device_494f_10e8,
 #ifdef INIT_SUBSYS_INFO
@@ -121679,6 +126221,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_10d6 = {
+	0x10d6, pci_device_8086_10d6,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10d6,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_10d9 = {
 	0x10d9, pci_device_8086_10d9,
 #ifdef INIT_SUBSYS_INFO
@@ -124280,6 +128831,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_27ac = {
+	0x27ac, pci_device_8086_27ac,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_27ac,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_27ad = {
+	0x27ad, pci_device_8086_27ad,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_27ad,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_27ae = {
+	0x27ae, pci_device_8086_27ae,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_27ae,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_27b0 = {
 	0x27b0, pci_device_8086_27b0,
 #ifdef INIT_SUBSYS_INFO
@@ -125783,6 +130361,78 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_2a40 = {
+	0x2a40, pci_device_8086_2a40,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2a40,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2a41 = {
+	0x2a41, pci_device_8086_2a41,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2a41,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2a42 = {
+	0x2a42, pci_device_8086_2a42,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2a42,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2a43 = {
+	0x2a43, pci_device_8086_2a43,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2a43,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2a50 = {
+	0x2a50, pci_device_8086_2a50,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2a50,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2a51 = {
+	0x2a51, pci_device_8086_2a51,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2a51,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2a52 = {
+	0x2a52, pci_device_8086_2a52,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2a52,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2a53 = {
+	0x2a53, pci_device_8086_2a53,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2a53,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_3200 = {
 	0x3200, pci_device_8086_3200,
 #ifdef INIT_SUBSYS_INFO
@@ -128687,6 +133337,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_9005_0242 = {
+	0x0242, pci_device_9005_0242,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_9005_0242,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_9005_0243 = {
+	0x0243, pci_device_9005_0243,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_9005_0243,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_9005_0250 = {
 	0x0250, pci_device_9005_0250,
 #ifdef INIT_SUBSYS_INFO
@@ -128759,6 +133427,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_9005_0415 = {
+	0x0415, pci_device_9005_0415,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_9005_0415,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_9005_0416 = {
+	0x0416, pci_device_9005_0416,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_9005_0416,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_9005_041e = {
 	0x041e, pci_device_9005_041e,
 #ifdef INIT_SUBSYS_INFO
@@ -130244,8 +134930,10 @@ static const pciDeviceInfo *pci_dev_list
 #endif
 static const pciDeviceInfo *pci_dev_list_1002[] = {
 	&pci_dev_info_1002_3150,
+	&pci_dev_info_1002_3151,
 	&pci_dev_info_1002_3152,
 	&pci_dev_info_1002_3154,
+	&pci_dev_info_1002_3171,
 	&pci_dev_info_1002_3e50,
 	&pci_dev_info_1002_3e54,
 	&pci_dev_info_1002_3e70,
@@ -130319,6 +135007,18 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_438c,
 	&pci_dev_info_1002_438d,
 	&pci_dev_info_1002_438e,
+	&pci_dev_info_1002_4390,
+	&pci_dev_info_1002_4391,
+	&pci_dev_info_1002_4392,
+	&pci_dev_info_1002_4393,
+	&pci_dev_info_1002_4394,
+	&pci_dev_info_1002_4395,
+	&pci_dev_info_1002_4396,
+	&pci_dev_info_1002_4397,
+	&pci_dev_info_1002_4398,
+	&pci_dev_info_1002_4399,
+	&pci_dev_info_1002_439c,
+	&pci_dev_info_1002_439d,
 	&pci_dev_info_1002_4437,
 	&pci_dev_info_1002_4554,
 	&pci_dev_info_1002_4654,
@@ -130390,6 +135090,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_4c6e,
 	&pci_dev_info_1002_4d46,
 	&pci_dev_info_1002_4d4c,
+	&pci_dev_info_1002_4d52,
 	&pci_dev_info_1002_4e44,
 	&pci_dev_info_1002_4e45,
 	&pci_dev_info_1002_4e46,
@@ -130524,6 +135225,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_5952,
 	&pci_dev_info_1002_5954,
 	&pci_dev_info_1002_5955,
+	&pci_dev_info_1002_5956,
+	&pci_dev_info_1002_5957,
+	&pci_dev_info_1002_5958,
 	&pci_dev_info_1002_5960,
 	&pci_dev_info_1002_5961,
 	&pci_dev_info_1002_5962,
@@ -130531,6 +135235,33 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_5969,
 	&pci_dev_info_1002_5974,
 	&pci_dev_info_1002_5975,
+	&pci_dev_info_1002_5978,
+	&pci_dev_info_1002_5979,
+	&pci_dev_info_1002_597a,
+	&pci_dev_info_1002_597b,
+	&pci_dev_info_1002_597c,
+	&pci_dev_info_1002_597d,
+	&pci_dev_info_1002_597e,
+	&pci_dev_info_1002_597f,
+	&pci_dev_info_1002_5980,
+	&pci_dev_info_1002_5981,
+	&pci_dev_info_1002_5982,
+	&pci_dev_info_1002_5a10,
+	&pci_dev_info_1002_5a11,
+	&pci_dev_info_1002_5a12,
+	&pci_dev_info_1002_5a13,
+	&pci_dev_info_1002_5a14,
+	&pci_dev_info_1002_5a15,
+	&pci_dev_info_1002_5a16,
+	&pci_dev_info_1002_5a17,
+	&pci_dev_info_1002_5a18,
+	&pci_dev_info_1002_5a19,
+	&pci_dev_info_1002_5a1a,
+	&pci_dev_info_1002_5a1b,
+	&pci_dev_info_1002_5a1c,
+	&pci_dev_info_1002_5a1d,
+	&pci_dev_info_1002_5a1e,
+	&pci_dev_info_1002_5a1f,
 	&pci_dev_info_1002_5a33,
 	&pci_dev_info_1002_5a34,
 	&pci_dev_info_1002_5a36,
@@ -130615,6 +135346,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_7180,
 	&pci_dev_info_1002_7181,
 	&pci_dev_info_1002_7183,
+	&pci_dev_info_1002_7186,
 	&pci_dev_info_1002_7187,
 	&pci_dev_info_1002_7188,
 	&pci_dev_info_1002_718a,
@@ -130675,6 +135407,10 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_7834,
 	&pci_dev_info_1002_7835,
 	&pci_dev_info_1002_7838,
+	&pci_dev_info_1002_7910,
+	&pci_dev_info_1002_7912,
+	&pci_dev_info_1002_7916,
+	&pci_dev_info_1002_7917,
 	&pci_dev_info_1002_7919,
 	&pci_dev_info_1002_791e,
 	&pci_dev_info_1002_791f,
@@ -131374,6 +136110,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1039_0660,
 	&pci_dev_info_1039_0661,
 	&pci_dev_info_1039_0662,
+	&pci_dev_info_1039_0671,
 	&pci_dev_info_1039_0730,
 	&pci_dev_info_1039_0733,
 	&pci_dev_info_1039_0735,
@@ -131481,9 +136218,13 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_103c_3080,
 	&pci_dev_info_103c_3085,
 	&pci_dev_info_103c_30b5,
+	&pci_dev_info_103c_31fb,
 	&pci_dev_info_103c_3220,
 	&pci_dev_info_103c_3230,
 	&pci_dev_info_103c_3238,
+	&pci_dev_info_103c_3300,
+	&pci_dev_info_103c_3302,
+	&pci_dev_info_103c_3305,
 	&pci_dev_info_103c_4030,
 	&pci_dev_info_103c_4031,
 	&pci_dev_info_103c_4037,
@@ -131524,6 +136265,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1043_8168,
 	&pci_dev_info_1043_8187,
 	&pci_dev_info_1043_8188,
+	&pci_dev_info_1043_81e7,
 	&pci_dev_info_1043_81f4,
 	NULL
 };
@@ -131733,8 +136475,14 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_1053 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1054[] = {
+	&pci_dev_info_1054_3009,
+	&pci_dev_info_1054_300a,
+	&pci_dev_info_1054_300b,
+	&pci_dev_info_1054_300f,
+	&pci_dev_info_1054_3010,
 	&pci_dev_info_1054_3011,
 	&pci_dev_info_1054_3012,
+	&pci_dev_info_1054_3017,
 	NULL
 };
 #endif
@@ -131815,6 +136563,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_105a_5300,
 	&pci_dev_info_105a_6268,
 	&pci_dev_info_105a_6269,
+	&pci_dev_info_105a_6300,
 	&pci_dev_info_105a_6621,
 	&pci_dev_info_105a_6622,
 	&pci_dev_info_105a_6624,
@@ -132053,6 +136802,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1077_2322,
 	&pci_dev_info_1077_2422,
 	&pci_dev_info_1077_2432,
+	&pci_dev_info_1077_2532,
 	&pci_dev_info_1077_3022,
 	&pci_dev_info_1077_3032,
 	&pci_dev_info_1077_4010,
@@ -132183,19 +136933,47 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_108e_1101,
 	&pci_dev_info_108e_1102,
 	&pci_dev_info_108e_1103,
+	&pci_dev_info_108e_1647,
 	&pci_dev_info_108e_1648,
+	&pci_dev_info_108e_16a7,
+	&pci_dev_info_108e_16a8,
 	&pci_dev_info_108e_2bad,
 	&pci_dev_info_108e_5000,
 	&pci_dev_info_108e_5043,
+	&pci_dev_info_108e_6300,
+	&pci_dev_info_108e_6301,
+	&pci_dev_info_108e_6302,
+	&pci_dev_info_108e_6303,
+	&pci_dev_info_108e_6310,
+	&pci_dev_info_108e_6311,
+	&pci_dev_info_108e_6312,
+	&pci_dev_info_108e_6313,
+	&pci_dev_info_108e_6320,
+	&pci_dev_info_108e_6323,
+	&pci_dev_info_108e_6330,
+	&pci_dev_info_108e_6331,
+	&pci_dev_info_108e_6332,
+	&pci_dev_info_108e_6333,
+	&pci_dev_info_108e_6340,
+	&pci_dev_info_108e_6343,
+	&pci_dev_info_108e_6350,
+	&pci_dev_info_108e_6353,
+	&pci_dev_info_108e_6722,
 	&pci_dev_info_108e_676e,
 	&pci_dev_info_108e_7063,
 	&pci_dev_info_108e_8000,
 	&pci_dev_info_108e_8001,
 	&pci_dev_info_108e_8002,
+	&pci_dev_info_108e_80f0,
+	&pci_dev_info_108e_80f8,
+	&pci_dev_info_108e_9010,
+	&pci_dev_info_108e_9020,
+	&pci_dev_info_108e_9102,
 	&pci_dev_info_108e_a000,
 	&pci_dev_info_108e_a001,
 	&pci_dev_info_108e_a801,
 	&pci_dev_info_108e_abba,
+	&pci_dev_info_108e_c416,
 	NULL
 };
 #define pci_dev_list_108f NULL
@@ -132215,6 +136993,7 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 static const pciDeviceInfo *pci_dev_list_1092[] = {
+	&pci_dev_info_1092_0028,
 	&pci_dev_info_1092_00a0,
 	&pci_dev_info_1092_00a8,
 	&pci_dev_info_1092_0550,
@@ -132430,6 +137209,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_10b5[] = {
 	&pci_dev_info_10b5_0001,
+	&pci_dev_info_10b5_1024,
 	&pci_dev_info_10b5_1042,
 	&pci_dev_info_10b5_1076,
 	&pci_dev_info_10b5_1077,
@@ -132439,17 +137219,37 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10b5_1147,
 	&pci_dev_info_10b5_2540,
 	&pci_dev_info_10b5_2724,
+	&pci_dev_info_10b5_6140,
+	&pci_dev_info_10b5_6150,
+	&pci_dev_info_10b5_6152,
+	&pci_dev_info_10b5_6154,
+	&pci_dev_info_10b5_6254,
+	&pci_dev_info_10b5_6466,
 	&pci_dev_info_10b5_6520,
 	&pci_dev_info_10b5_6540,
 	&pci_dev_info_10b5_6541,
 	&pci_dev_info_10b5_6542,
 	&pci_dev_info_10b5_8111,
+	&pci_dev_info_10b5_8112,
 	&pci_dev_info_10b5_8114,
+	&pci_dev_info_10b5_8311,
+	&pci_dev_info_10b5_8505,
+	&pci_dev_info_10b5_8508,
+	&pci_dev_info_10b5_8509,
+	&pci_dev_info_10b5_8512,
 	&pci_dev_info_10b5_8516,
+	&pci_dev_info_10b5_8517,
+	&pci_dev_info_10b5_8518,
+	&pci_dev_info_10b5_8524,
+	&pci_dev_info_10b5_8525,
 	&pci_dev_info_10b5_8532,
+	&pci_dev_info_10b5_8533,
+	&pci_dev_info_10b5_8547,
+	&pci_dev_info_10b5_8548,
 	&pci_dev_info_10b5_9030,
 	&pci_dev_info_10b5_9036,
 	&pci_dev_info_10b5_9050,
+	&pci_dev_info_10b5_9052,
 	&pci_dev_info_10b5_9054,
 	&pci_dev_info_10b5_9056,
 	&pci_dev_info_10b5_9060,
@@ -132714,6 +137514,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10cd_1300,
 	&pci_dev_info_10cd_2300,
 	&pci_dev_info_10cd_2500,
+	&pci_dev_info_10cd_2700,
 	NULL
 };
 #endif
@@ -132980,12 +137781,14 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_01c1,
 	&pci_dev_info_10de_01c2,
 	&pci_dev_info_10de_01c3,
+	&pci_dev_info_10de_01d0,
 	&pci_dev_info_10de_01d1,
 	&pci_dev_info_10de_01d3,
 	&pci_dev_info_10de_01d6,
 	&pci_dev_info_10de_01d7,
 	&pci_dev_info_10de_01d8,
 	&pci_dev_info_10de_01da,
+	&pci_dev_info_10de_01db,
 	&pci_dev_info_10de_01dc,
 	&pci_dev_info_10de_01dd,
 	&pci_dev_info_10de_01de,
@@ -133079,6 +137882,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_02e0,
 	&pci_dev_info_10de_02e1,
 	&pci_dev_info_10de_02e2,
+	&pci_dev_info_10de_02e3,
 	&pci_dev_info_10de_02f0,
 	&pci_dev_info_10de_02f1,
 	&pci_dev_info_10de_02f2,
@@ -133246,6 +138050,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0402,
 	&pci_dev_info_10de_0407,
 	&pci_dev_info_10de_040b,
+	&pci_dev_info_10de_040c,
+	&pci_dev_info_10de_040d,
 	&pci_dev_info_10de_0421,
 	&pci_dev_info_10de_0422,
 	&pci_dev_info_10de_0423,
@@ -133256,6 +138062,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0429,
 	&pci_dev_info_10de_042a,
 	&pci_dev_info_10de_042b,
+	&pci_dev_info_10de_042d,
 	&pci_dev_info_10de_0440,
 	&pci_dev_info_10de_0441,
 	&pci_dev_info_10de_0442,
@@ -133430,6 +138237,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10ec_0139,
 	&pci_dev_info_10ec_0260,
 	&pci_dev_info_10ec_0261,
+	&pci_dev_info_10ec_0262,
 	&pci_dev_info_10ec_0280,
 	&pci_dev_info_10ec_0861,
 	&pci_dev_info_10ec_0862,
@@ -133473,6 +138281,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10ee_8380,
 	&pci_dev_info_10ee_8381,
 	&pci_dev_info_10ee_d154,
+	&pci_dev_info_10ee_ebf0,
+	&pci_dev_info_10ee_ebf1,
+	&pci_dev_info_10ee_ebf2,
 	NULL
 };
 #endif
@@ -133527,6 +138338,7 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_1100 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1101[] = {
+	&pci_dev_info_1101_0002,
 	&pci_dev_info_1101_1060,
 	&pci_dev_info_1101_1622,
 	&pci_dev_info_1101_9100,
@@ -133545,6 +138357,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1102_0006,
 	&pci_dev_info_1102_0007,
 	&pci_dev_info_1102_0008,
+	&pci_dev_info_1102_0009,
 	&pci_dev_info_1102_4001,
 	&pci_dev_info_1102_7002,
 	&pci_dev_info_1102_7003,
@@ -133564,7 +138377,15 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1103_0007,
 	&pci_dev_info_1103_0008,
 	&pci_dev_info_1103_0009,
+	&pci_dev_info_1103_1740,
+	&pci_dev_info_1103_1742,
+	&pci_dev_info_1103_2300,
+	&pci_dev_info_1103_2310,
+	&pci_dev_info_1103_2320,
+	&pci_dev_info_1103_2322,
 	&pci_dev_info_1103_2340,
+	&pci_dev_info_1103_3220,
+	&pci_dev_info_1103_3320,
 	NULL
 };
 #endif
@@ -133581,6 +138402,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1105_8476,
 	&pci_dev_info_1105_8485,
 	&pci_dev_info_1105_8486,
+	&pci_dev_info_1105_c622,
 	NULL
 };
 #endif
@@ -134184,7 +139006,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1133_e028,
 	&pci_dev_info_1133_e02a,
 	&pci_dev_info_1133_e02c,
+	&pci_dev_info_1133_e02e,
 	&pci_dev_info_1133_e032,
+	&pci_dev_info_1133_e034,
 	NULL
 };
 #endif
@@ -134346,6 +139170,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_114f_00c9,
 	&pci_dev_info_114f_00ca,
 	&pci_dev_info_114f_00cb,
+	&pci_dev_info_114f_00cc,
+	&pci_dev_info_114f_00cd,
+	&pci_dev_info_114f_00ce,
 	&pci_dev_info_114f_00d0,
 	&pci_dev_info_114f_00d1,
 	&pci_dev_info_114f_6001,
@@ -134543,6 +139370,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1180_0822,
 	&pci_dev_info_1180_0832,
 	&pci_dev_info_1180_0841,
+	&pci_dev_info_1180_0843,
 	&pci_dev_info_1180_0852,
 	NULL
 };
@@ -134577,10 +139405,14 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1186_3a13,
 	&pci_dev_info_1186_3a14,
 	&pci_dev_info_1186_3a63,
+	&pci_dev_info_1186_3c00,
 	&pci_dev_info_1186_4000,
+	&pci_dev_info_1186_4001,
 	&pci_dev_info_1186_4300,
 	&pci_dev_info_1186_4800,
+	&pci_dev_info_1186_4b00,
 	&pci_dev_info_1186_4b01,
+	&pci_dev_info_1186_4b02,
 	&pci_dev_info_1186_4c00,
 	&pci_dev_info_1186_8400,
 	NULL
@@ -134724,11 +139556,19 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_11ab_4350,
 	&pci_dev_info_11ab_4351,
 	&pci_dev_info_11ab_4352,
+	&pci_dev_info_11ab_4353,
+	&pci_dev_info_11ab_4356,
 	&pci_dev_info_11ab_4360,
 	&pci_dev_info_11ab_4361,
 	&pci_dev_info_11ab_4362,
 	&pci_dev_info_11ab_4363,
 	&pci_dev_info_11ab_4364,
+	&pci_dev_info_11ab_4366,
+	&pci_dev_info_11ab_4367,
+	&pci_dev_info_11ab_4368,
+	&pci_dev_info_11ab_4369,
+	&pci_dev_info_11ab_436a,
+	&pci_dev_info_11ab_436b,
 	&pci_dev_info_11ab_4611,
 	&pci_dev_info_11ab_4620,
 	&pci_dev_info_11ab_4801,
@@ -134738,14 +139578,17 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_11ab_5080,
 	&pci_dev_info_11ab_5081,
 	&pci_dev_info_11ab_6041,
+	&pci_dev_info_11ab_6042,
 	&pci_dev_info_11ab_6081,
 	&pci_dev_info_11ab_6101,
+	&pci_dev_info_11ab_6121,
 	&pci_dev_info_11ab_6141,
 	&pci_dev_info_11ab_6145,
 	&pci_dev_info_11ab_6450,
 	&pci_dev_info_11ab_6460,
 	&pci_dev_info_11ab_6480,
 	&pci_dev_info_11ab_6485,
+	&pci_dev_info_11ab_7042,
 	&pci_dev_info_11ab_f003,
 	NULL
 };
@@ -135005,7 +139848,10 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_11f7 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_11f8[] = {
+	&pci_dev_info_11f8_7364,
 	&pci_dev_info_11f8_7375,
+	&pci_dev_info_11f8_7384,
+	&pci_dev_info_11f8_8000,
 	NULL
 };
 #endif
@@ -135031,6 +139877,15 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_11fe_000d,
 	&pci_dev_info_11fe_000e,
 	&pci_dev_info_11fe_000f,
+	&pci_dev_info_11fe_0040,
+	&pci_dev_info_11fe_0041,
+	&pci_dev_info_11fe_0042,
+	&pci_dev_info_11fe_0043,
+	&pci_dev_info_11fe_0044,
+	&pci_dev_info_11fe_0045,
+	&pci_dev_info_11fe_0047,
+	&pci_dev_info_11fe_004f,
+	&pci_dev_info_11fe_0052,
 	&pci_dev_info_11fe_0801,
 	&pci_dev_info_11fe_0802,
 	&pci_dev_info_11fe_0803,
@@ -135124,6 +139979,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1217_7130,
 	&pci_dev_info_1217_7134,
 	&pci_dev_info_1217_7135,
+	&pci_dev_info_1217_7136,
 	&pci_dev_info_1217_71e2,
 	&pci_dev_info_1217_7212,
 	&pci_dev_info_1217_7213,
@@ -135160,7 +140016,16 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
-#define pci_dev_list_1221 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1221[] = {
+	&pci_dev_info_1221_9172,
+	&pci_dev_info_1221_91a2,
+	&pci_dev_info_1221_91c3,
+	&pci_dev_info_1221_b152,
+	&pci_dev_info_1221_c103,
+	NULL
+};
+#endif
 #define pci_dev_list_1222 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1223[] = {
@@ -135442,6 +140307,7 @@ static const pciDeviceInfo *pci_dev_list
 static const pciDeviceInfo *pci_dev_list_1278[] = {
 	&pci_dev_info_1278_0701,
 	&pci_dev_info_1278_0710,
+	&pci_dev_info_1278_1101,
 	NULL
 };
 #endif
@@ -135698,7 +140564,15 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #define pci_dev_list_12c6 NULL
-#define pci_dev_list_12c7 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_12c7[] = {
+	&pci_dev_info_12c7_0546,
+	&pci_dev_info_12c7_0647,
+	&pci_dev_info_12c7_0676,
+	&pci_dev_info_12c7_0685,
+	NULL
+};
+#endif
 #define pci_dev_list_12c8 NULL
 #define pci_dev_list_12c9 NULL
 #define pci_dev_list_12ca NULL
@@ -135879,7 +140753,21 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1307_004d,
 	&pci_dev_info_1307_0052,
 	&pci_dev_info_1307_0054,
+	&pci_dev_info_1307_005d,
 	&pci_dev_info_1307_005e,
+	&pci_dev_info_1307_005f,
+	&pci_dev_info_1307_0060,
+	&pci_dev_info_1307_0061,
+	&pci_dev_info_1307_0062,
+	&pci_dev_info_1307_0063,
+	&pci_dev_info_1307_0064,
+	&pci_dev_info_1307_0065,
+	&pci_dev_info_1307_0066,
+	&pci_dev_info_1307_0067,
+	&pci_dev_info_1307_0068,
+	&pci_dev_info_1307_006f,
+	&pci_dev_info_1307_0078,
+	&pci_dev_info_1307_0079,
 	NULL
 };
 #endif
@@ -136110,13 +140998,16 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1360_0102,
 	&pci_dev_info_1360_0103,
 	&pci_dev_info_1360_0104,
+	&pci_dev_info_1360_0105,
 	&pci_dev_info_1360_0201,
 	&pci_dev_info_1360_0202,
 	&pci_dev_info_1360_0203,
 	&pci_dev_info_1360_0204,
+	&pci_dev_info_1360_0205,
 	&pci_dev_info_1360_0301,
 	&pci_dev_info_1360_0302,
 	&pci_dev_info_1360_0303,
+	&pci_dev_info_1360_0304,
 	NULL
 };
 #endif
@@ -136273,10 +141164,29 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_1392 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1393[] = {
+	&pci_dev_info_1393_0001,
+	&pci_dev_info_1393_1020,
+	&pci_dev_info_1393_1021,
+	&pci_dev_info_1393_1022,
 	&pci_dev_info_1393_1040,
+	&pci_dev_info_1393_1041,
+	&pci_dev_info_1393_1042,
+	&pci_dev_info_1393_1043,
+	&pci_dev_info_1393_1044,
+	&pci_dev_info_1393_1080,
+	&pci_dev_info_1393_1140,
 	&pci_dev_info_1393_1141,
+	&pci_dev_info_1393_1142,
+	&pci_dev_info_1393_1180,
+	&pci_dev_info_1393_1181,
+	&pci_dev_info_1393_1320,
+	&pci_dev_info_1393_1321,
+	&pci_dev_info_1393_1340,
+	&pci_dev_info_1393_1341,
+	&pci_dev_info_1393_1380,
 	&pci_dev_info_1393_1680,
 	&pci_dev_info_1393_1681,
+	&pci_dev_info_1393_1682,
 	&pci_dev_info_1393_2040,
 	&pci_dev_info_1393_2180,
 	&pci_dev_info_1393_3200,
@@ -136394,6 +141304,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_13c2[] = {
 	&pci_dev_info_13c2_000e,
+	&pci_dev_info_13c2_1019,
 	NULL
 };
 #endif
@@ -136482,6 +141393,7 @@ static const pciDeviceInfo *pci_dev_list
 static const pciDeviceInfo *pci_dev_list_13f0[] = {
 	&pci_dev_info_13f0_0200,
 	&pci_dev_info_13f0_0201,
+	&pci_dev_info_13f0_1021,
 	&pci_dev_info_13f0_1023,
 	NULL
 };
@@ -136588,7 +141500,22 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #define pci_dev_list_1413 NULL
-#define pci_dev_list_1414 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1414[] = {
+	&pci_dev_info_1414_5801,
+	&pci_dev_info_1414_5802,
+	&pci_dev_info_1414_5803,
+	&pci_dev_info_1414_5804,
+	&pci_dev_info_1414_5805,
+	&pci_dev_info_1414_5806,
+	&pci_dev_info_1414_5807,
+	&pci_dev_info_1414_580a,
+	&pci_dev_info_1414_580b,
+	&pci_dev_info_1414_580d,
+	&pci_dev_info_1414_5811,
+	NULL
+};
+#endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1415[] = {
 	&pci_dev_info_1415_8403,
@@ -136761,6 +141688,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1462_7125,
 	&pci_dev_info_1462_7235,
 	&pci_dev_info_1462_7242,
+	&pci_dev_info_1462_7250,
+	&pci_dev_info_1462_7327,
 	&pci_dev_info_1462_8725,
 	&pci_dev_info_1462_9000,
 	&pci_dev_info_1462_9110,
@@ -136988,7 +141917,13 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_14d3 NULL
 #define pci_dev_list_14d4 NULL
 #define pci_dev_list_14d5 NULL
-#define pci_dev_list_14d6 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_14d6[] = {
+	&pci_dev_info_14d6_6101,
+	&pci_dev_info_14d6_6201,
+	NULL
+};
+#endif
 #define pci_dev_list_14d7 NULL
 #define pci_dev_list_14d8 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137048,11 +141983,13 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_1646,
 	&pci_dev_info_14e4_1647,
 	&pci_dev_info_14e4_1648,
+	&pci_dev_info_14e4_1649,
 	&pci_dev_info_14e4_164a,
 	&pci_dev_info_14e4_164c,
 	&pci_dev_info_14e4_164d,
 	&pci_dev_info_14e4_1653,
 	&pci_dev_info_14e4_1654,
+	&pci_dev_info_14e4_1658,
 	&pci_dev_info_14e4_1659,
 	&pci_dev_info_14e4_165a,
 	&pci_dev_info_14e4_165d,
@@ -137065,11 +142002,13 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_1672,
 	&pci_dev_info_14e4_1673,
 	&pci_dev_info_14e4_1674,
+	&pci_dev_info_14e4_1676,
 	&pci_dev_info_14e4_1677,
 	&pci_dev_info_14e4_1678,
 	&pci_dev_info_14e4_1679,
 	&pci_dev_info_14e4_167a,
 	&pci_dev_info_14e4_167b,
+	&pci_dev_info_14e4_167c,
 	&pci_dev_info_14e4_167d,
 	&pci_dev_info_14e4_167e,
 	&pci_dev_info_14e4_167f,
@@ -137288,6 +142227,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14f1_2f30,
 	&pci_dev_info_14f1_5045,
 	&pci_dev_info_14f1_5047,
+	&pci_dev_info_14f1_5b7a,
 	&pci_dev_info_14f1_8234,
 	&pci_dev_info_14f1_8800,
 	&pci_dev_info_14f1_8801,
@@ -137431,6 +142371,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1524_0550,
 	&pci_dev_info_1524_0551,
 	&pci_dev_info_1524_0610,
+	&pci_dev_info_1524_0730,
+	&pci_dev_info_1524_0750,
+	&pci_dev_info_1524_0751,
 	&pci_dev_info_1524_1211,
 	&pci_dev_info_1524_1225,
 	&pci_dev_info_1524_1410,
@@ -137785,6 +142728,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_15e8[] = {
 	&pci_dev_info_15e8_0130,
+	&pci_dev_info_15e8_0131,
 	NULL
 };
 #endif
@@ -137880,7 +142824,12 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
-#define pci_dev_list_1657 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1657[] = {
+	&pci_dev_info_1657_0646,
+	NULL
+};
+#endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_165a[] = {
 	&pci_dev_info_165a_c100,
@@ -137999,6 +142948,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_16c6[] = {
 	&pci_dev_info_16c6_8695,
+	&pci_dev_info_16c6_8842,
 	NULL
 };
 #endif
@@ -138098,6 +143048,7 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #define pci_dev_list_170c NULL
+#define pci_dev_list_1719 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1725[] = {
 	&pci_dev_info_1725_7174,
@@ -138114,6 +143065,7 @@ static const pciDeviceInfo *pci_dev_list
 static const pciDeviceInfo *pci_dev_list_1734[] = {
 	&pci_dev_info_1734_1078,
 	&pci_dev_info_1734_1085,
+	&pci_dev_info_1734_1098,
 	NULL
 };
 #endif
@@ -138149,8 +143101,14 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_174d NULL
 #define pci_dev_list_175c NULL
 #define pci_dev_list_175e NULL
+#define pci_dev_list_1760 NULL
 #define pci_dev_list_1775 NULL
-#define pci_dev_list_177d NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_177d[] = {
+	&pci_dev_info_177d_0001,
+	NULL
+};
+#endif
 #define pci_dev_list_1787 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1796[] = {
@@ -138160,6 +143118,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1796_0004,
 	&pci_dev_info_1796_0005,
 	&pci_dev_info_1796_0006,
+	&pci_dev_info_1796_000d,
 	NULL
 };
 #endif
@@ -138233,6 +143192,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_17d3_1220,
 	&pci_dev_info_17d3_1230,
 	&pci_dev_info_17d3_1260,
+	&pci_dev_info_17d3_1280,
 	NULL
 };
 #endif
@@ -138298,6 +143258,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1814_0101,
 	&pci_dev_info_1814_0200,
 	&pci_dev_info_1814_0201,
+	&pci_dev_info_1814_0300,
 	&pci_dev_info_1814_0301,
 	&pci_dev_info_1814_0302,
 	&pci_dev_info_1814_0401,
@@ -138362,7 +143323,11 @@ static const pciDeviceInfo *pci_dev_list
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_186c[] = {
+	&pci_dev_info_186c_0612,
 	&pci_dev_info_186c_0614,
+	&pci_dev_info_186c_0622,
+	&pci_dev_info_186c_0624,
+	&pci_dev_info_186c_0625,
 	NULL
 };
 #endif
@@ -138402,6 +143367,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_18ac_d800,
 	&pci_dev_info_18ac_d810,
 	&pci_dev_info_18ac_d820,
+	&pci_dev_info_18ac_db30,
 	NULL
 };
 #endif
@@ -138465,6 +143431,10 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_18f7_0004,
 	&pci_dev_info_18f7_0005,
 	&pci_dev_info_18f7_000a,
+	&pci_dev_info_18f7_000f,
+	&pci_dev_info_18f7_0010,
+	&pci_dev_info_18f7_0011,
+	&pci_dev_info_18f7_0014,
 	NULL
 };
 #endif
@@ -138508,9 +143478,22 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
+#define pci_dev_list_1954 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1957[] = {
 	&pci_dev_info_1957_0012,
+	&pci_dev_info_1957_0013,
+	&pci_dev_info_1957_0014,
+	&pci_dev_info_1957_0015,
+	&pci_dev_info_1957_0018,
+	&pci_dev_info_1957_0019,
+	&pci_dev_info_1957_001a,
+	&pci_dev_info_1957_0020,
+	&pci_dev_info_1957_0021,
+	&pci_dev_info_1957_0022,
+	&pci_dev_info_1957_0023,
+	&pci_dev_info_1957_0030,
+	&pci_dev_info_1957_0031,
 	&pci_dev_info_1957_0080,
 	&pci_dev_info_1957_0081,
 	&pci_dev_info_1957_0082,
@@ -138519,6 +143502,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1957_0085,
 	&pci_dev_info_1957_0086,
 	&pci_dev_info_1957_0087,
+	&pci_dev_info_1957_7010,
+	&pci_dev_info_1957_7011,
 	NULL
 };
 #endif
@@ -138691,6 +143676,14 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1fc9[] = {
+	&pci_dev_info_1fc9_3009,
+	&pci_dev_info_1fc9_3010,
+	&pci_dev_info_1fc9_3014,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1fce[] = {
 	&pci_dev_info_1fce_0001,
 	NULL
@@ -138837,6 +143830,8 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_4943 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_494f[] = {
+	&pci_dev_info_494f_0c60,
+	&pci_dev_info_494f_0e60,
 	&pci_dev_info_494f_10e8,
 	NULL
 };
@@ -139273,6 +144268,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_10c5,
 	&pci_dev_info_8086_10c6,
 	&pci_dev_info_8086_10c7,
+	&pci_dev_info_8086_10d6,
 	&pci_dev_info_8086_10d9,
 	&pci_dev_info_8086_10da,
 	&pci_dev_info_8086_1107,
@@ -139562,6 +144558,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_27a1,
 	&pci_dev_info_8086_27a2,
 	&pci_dev_info_8086_27a6,
+	&pci_dev_info_8086_27ac,
+	&pci_dev_info_8086_27ad,
+	&pci_dev_info_8086_27ae,
 	&pci_dev_info_8086_27b0,
 	&pci_dev_info_8086_27b8,
 	&pci_dev_info_8086_27b9,
@@ -139729,6 +144728,14 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_2a05,
 	&pci_dev_info_8086_2a06,
 	&pci_dev_info_8086_2a07,
+	&pci_dev_info_8086_2a40,
+	&pci_dev_info_8086_2a41,
+	&pci_dev_info_8086_2a42,
+	&pci_dev_info_8086_2a43,
+	&pci_dev_info_8086_2a50,
+	&pci_dev_info_8086_2a51,
+	&pci_dev_info_8086_2a52,
+	&pci_dev_info_8086_2a53,
 	&pci_dev_info_8086_3200,
 	&pci_dev_info_8086_3313,
 	&pci_dev_info_8086_331b,
@@ -140094,6 +145101,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_9005_00c5,
 	&pci_dev_info_9005_00cf,
 	&pci_dev_info_9005_0241,
+	&pci_dev_info_9005_0242,
+	&pci_dev_info_9005_0243,
 	&pci_dev_info_9005_0250,
 	&pci_dev_info_9005_0279,
 	&pci_dev_info_9005_0283,
@@ -140102,6 +145111,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_9005_0286,
 	&pci_dev_info_9005_0410,
 	&pci_dev_info_9005_0412,
+	&pci_dev_info_9005_0415,
+	&pci_dev_info_9005_0416,
 	&pci_dev_info_9005_041e,
 	&pci_dev_info_9005_041f,
 	&pci_dev_info_9005_0430,
@@ -145129,6 +150140,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x170c, pci_vendor_170c, pci_dev_list_170c},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1719, pci_vendor_1719, pci_dev_list_1719},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1725, pci_vendor_1725, pci_dev_list_1725},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -145162,6 +150176,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x175e, pci_vendor_175e, pci_dev_list_175e},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1760, pci_vendor_1760, pci_dev_list_1760},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1775, pci_vendor_1775, pci_dev_list_1775},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -145396,6 +150413,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x194a, pci_vendor_194a, pci_dev_list_194a},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1954, pci_vendor_1954, pci_dev_list_1954},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1957, pci_vendor_1957, pci_dev_list_1957},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -145517,6 +150537,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x1fc1, pci_vendor_1fc1, pci_dev_list_1fc1},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1fc9, pci_vendor_1fc9, pci_dev_list_1fc9},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1fce, pci_vendor_1fce, pci_dev_list_1fce},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -150696,6 +155719,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x170c, pci_vendor_170c, pci_ss_list_170c},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1719, pci_vendor_1719, pci_ss_list_1719},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1725, pci_vendor_1725, pci_ss_list_1725},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -150729,6 +155755,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x175e, pci_vendor_175e, pci_ss_list_175e},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1760, pci_vendor_1760, pci_ss_list_1760},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1775, pci_vendor_1775, pci_ss_list_1775},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -150963,6 +155992,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x194a, pci_vendor_194a, pci_ss_list_194a},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1954, pci_vendor_1954, pci_ss_list_1954},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1957, pci_vendor_1957, pci_ss_list_1957},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -151084,6 +156116,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x1fc1, pci_vendor_1fc1, pci_ss_list_1fc1},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1fc9, pci_vendor_1fc9, pci_ss_list_1fc9},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1fce, pci_vendor_1fce, pci_ss_list_1fce},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
diff-tree 6cef7b9611297cb1d93cefe3890b26b69c87bce2 (from 0f9e89b4e309e570d7d366489d250ca2143f0ad7)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Aug 15 16:44:49 2007 -0700

    Correct XErrorDB path and make it configurable (used by DTrace support)

diff --git a/configure.ac b/configure.ac
index b052c16..41cc103 100644
--- a/configure.ac
+++ b/configure.ac
@@ -85,7 +85,13 @@ if test "x$WDTRACE" != "xno" ; then
       [Define to 1 if the DTrace Xserver provider probes should be built in.])
 fi
 AM_CONDITIONAL(XSERVER_DTRACE, [test "x$WDTRACE" != "xno"])
-AC_DEFINE_DIR(XERRORDB_PATH, libdir/XErrorDB, [Path to XErrorDB file])
+
+# DTrace support uses XErrorDB to get request names
+AC_ARG_WITH(xerrordb,
+            AS_HELP_STRING([--with-xerrordb=PATH], [Path to XErrorDB file (default: ${datadir}/X11/XErrorDB)]),
+	    [ XERRORDB_PATH="$withval" ],
+	    [ XERRORDB_PATH="${datadir}/X11/XErrorDB" ])
+AC_DEFINE_DIR(XERRORDB_PATH, XERRORDB_PATH, [Path to XErrorDB file])
 
 AC_HEADER_DIRENT
 AC_HEADER_STDC
diff-tree 0f9e89b4e309e570d7d366489d250ca2143f0ad7 (from 6a195e816b9d60f728d77cc1c23538e7af00a879)
Author: Fredrik Höglund <fredrik at kde.org>
Date:   Tue Aug 14 22:47:49 2007 +0200

    Fix the value comparisons in the IDLETIME wakeup handler.
    
    LessThan/GreaterThan comparisons were used in the wakeup handler,
    and LessOrEqual/GreaterOrEqual in the block handler.
    
    Change it to use LessOrEqual/GreaterOrEqual in both functions,
    since this is what XSyncNegativeComparison and
    XSyncPositiveComparison imply.

diff --git a/Xext/sync.c b/Xext/sync.c
index 6fc2dcc..d9b6a9f 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -2592,8 +2592,9 @@ IdleTimeWakeupHandler (pointer env,
     IdleTimeQueryValue (NULL, &idle);
 
     if ((pIdleTimeValueGreater &&
-         XSyncValueGreaterThan (idle, *pIdleTimeValueGreater)) ||
-        (pIdleTimeValueLess && XSyncValueLessThan (idle, *pIdleTimeValueLess)))
+         XSyncValueGreaterOrEqual (idle, *pIdleTimeValueGreater)) ||
+        (pIdleTimeValueLess &&
+	 XSyncValueLessOrEqual (idle, *pIdleTimeValueLess)))
     {
 	SyncChangeCounter (IdleTimeCounter, idle);
     }
diff-tree 6a195e816b9d60f728d77cc1c23538e7af00a879 (from 03f9da672466b9ab9a9814d784b8c44f1030587e)
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Mon Aug 13 10:43:48 2007 -0400

    Revert "Implement damage tracking for AIGLX."
    
    This reverts commit 2243b30e54df07892f75e3d65b687abe5b183cf3.  The existing
    DRI interface doesn't let us get from a __DRIdrawable to the corresponding
    X drawable, and thus, we can't implement AIGLX damage tracking with the
    current interface.

diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index cc1e70b..685683d 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -943,22 +943,6 @@ getUST(int64_t *ust)
     }
 }
 
-static void __glXReportDamage(__DRIdrawable *driDraw,
-			      int x, int y,
-			      drm_clip_rect_t *rects, int num_rects,
-			      GLboolean front_buffer)
-{
-    __GLXDRIdrawable *drawable =
-	    containerOf(driDraw, __GLXDRIdrawable, driDrawable);
-    DrawablePtr pDraw = drawable->base.pDraw;
-    RegionRec region;
-
-    REGION_INIT(pDraw->pScreen, &region, (BoxPtr) rects, num_rects);
-    REGION_TRANSLATE(pScreen, &region, pDraw->x, pDraw->y);
-    DamageDamageRegion(pDraw, &region);
-    REGION_UNINIT(pDraw->pScreen, &region);
-}
-
 /* Table of functions that we export to the driver. */
 static const __DRIinterfaceMethods interface_methods = {
     getProcAddress,
@@ -978,8 +962,6 @@ static const __DRIinterfaceMethods inter
 
     getUST,
     NULL, /* glXGetMscRateOML, */
-
-    __glXReportDamage,
 };
 
 static const char dri_driver_path[] = DRI_DRIVER_PATH;
diff-tree 03f9da672466b9ab9a9814d784b8c44f1030587e (from c5741438a3a171f493e9da32a6b39f73403f6993)
Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
Date:   Sun Aug 12 03:07:04 2007 +0200

    xfree86: Improve default mouse handling on the Hurd
    
    Make /dev/mouse the default device.  This makes Xorg works with empty
    or missing InputDevice sections.

diff --git a/hw/xfree86/os-support/hurd/hurd_mouse.c b/hw/xfree86/os-support/hurd/hurd_mouse.c
index 5f6d943..089cba3 100644
--- a/hw/xfree86/os-support/hurd/hurd_mouse.c
+++ b/hw/xfree86/os-support/hurd/hurd_mouse.c
@@ -46,6 +46,8 @@
 #include <mach.h>
 #include <sys/ioctl.h>
 
+#define DEFAULT_MOUSE_DEV	"/dev/mouse"
+
 typedef unsigned short kev_type;		/* kd event type */
 typedef unsigned char Scancode;
 
@@ -166,6 +168,26 @@ OsMousePreInit(InputInfoPtr pInfo, const
     return TRUE;
 }
 
+static const char *
+FindDevice(InputInfoPtr pInfo, const char *protocol, int flags)
+{
+    const char path[] = DEFAULT_MOUSE_DEV;
+    int fd;
+
+    SYSCALL (fd = open(path, O_RDWR | O_NONBLOCK | O_EXCL));
+
+    if (fd == -1)
+	return NULL;
+
+    close(fd);
+    pInfo->conf_idev->commonOptions =
+	xf86AddNewOption(pInfo->conf_idev->commonOptions, "Device", path);
+    xf86Msg(X_INFO, "%s: Setting Device option to \"%s\"\n", pInfo->name,
+	    path);
+
+    return path;
+}
+
 static int
 SupportedInterfaces(void)
 {
@@ -195,7 +217,6 @@ CheckProtocol(const char *protocol)
     return FALSE;
 }
 
-/* XXX Is this appropriate?  If not, this function should be removed. */
 static const char *
 DefaultProtocol(void)
 {
@@ -212,6 +233,7 @@ xf86OSMouseInit(int flags)
 	return NULL;
     p->SupportedInterfaces = SupportedInterfaces;
     p->BuiltinNames = BuiltinNames;
+    p->FindDevice = FindDevice;
     p->DefaultProtocol = DefaultProtocol;
     p->CheckProtocol = CheckProtocol;
     p->PreInit = OsMousePreInit;
diff-tree c5741438a3a171f493e9da32a6b39f73403f6993 (from 59961e47df4ea621a6713a8c7d060555f8746c3a)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Fri Aug 10 16:13:55 2007 -0700

    Only use evdev drivers in Xephyr #ifdef linux

diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c
index 56b4f16..a76da03 100644
--- a/hw/kdrive/ephyr/ephyrinit.c
+++ b/hw/kdrive/ephyr/ephyrinit.c
@@ -57,9 +57,13 @@ InitInput (int argc, char **argv)
   KdPointerInfo *pi;
         
   KdAddKeyboardDriver(&EphyrKeyboardDriver);
+#ifdef linux
   KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver);
+#endif
   KdAddPointerDriver(&EphyrMouseDriver);
+#ifdef linux
   KdAddPointerDriver(&LinuxEvdevMouseDriver);
+#endif
 
   if (!kdHasKbd) {
     ki = KdNewKeyboard();
diff-tree 59961e47df4ea621a6713a8c7d060555f8746c3a (from 2243b30e54df07892f75e3d65b687abe5b183cf3)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Fri Aug 10 16:08:41 2007 -0700

    xorgcfg needs PIXMAN_CFLAGS in order to build libc_wrapper.c

diff --git a/configure.ac b/configure.ac
index 0544a54..b052c16 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1933,6 +1933,7 @@ AC_ARG_ENABLE(xorgcfg, AS_HELP_STRING([-
 if test x$XORGCFG = xyes ; then
 	PKG_CHECK_MODULES([XORGCFG_DEP], 
 	    [xkbui >= 1.0.2 xkbfile xxf86misc xxf86vm xaw7 xmu xt xpm xext x11])
+	XORGCFG_DEP_CFLAGS="$XORGCFG_DEP_CFLAGS $PIXMAN_CFLAGS"
 	AC_CHECK_LIB([curses],[waddstr],
 	    [XORGCFG_DEP_LIBS="$XORGCFG_DEP_LIBS -lcurses"; CURSES=yes],
 	    AC_CHECK_LIB([ncurses],[waddstr],
diff-tree 2243b30e54df07892f75e3d65b687abe5b183cf3 (from ff4bd3addb48df3eacc4b121cc249a7f38eb981a)
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Fri Aug 10 15:53:05 2007 -0400

    Implement damage tracking for AIGLX.

diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index 685683d..cc1e70b 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -943,6 +943,22 @@ getUST(int64_t *ust)
     }
 }
 
+static void __glXReportDamage(__DRIdrawable *driDraw,
+			      int x, int y,
+			      drm_clip_rect_t *rects, int num_rects,
+			      GLboolean front_buffer)
+{
+    __GLXDRIdrawable *drawable =
+	    containerOf(driDraw, __GLXDRIdrawable, driDrawable);
+    DrawablePtr pDraw = drawable->base.pDraw;
+    RegionRec region;
+
+    REGION_INIT(pDraw->pScreen, &region, (BoxPtr) rects, num_rects);
+    REGION_TRANSLATE(pScreen, &region, pDraw->x, pDraw->y);
+    DamageDamageRegion(pDraw, &region);
+    REGION_UNINIT(pDraw->pScreen, &region);
+}
+
 /* Table of functions that we export to the driver. */
 static const __DRIinterfaceMethods interface_methods = {
     getProcAddress,
@@ -962,6 +978,8 @@ static const __DRIinterfaceMethods inter
 
     getUST,
     NULL, /* glXGetMscRateOML, */
+
+    __glXReportDamage,
 };
 
 static const char dri_driver_path[] = DRI_DRIVER_PATH;
diff-tree ff4bd3addb48df3eacc4b121cc249a7f38eb981a (from 2926cf1da7e4ed63573bfaecdd7e19beb3057d9b)
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug 8 14:24:42 2007 -0700

    Fix the swapped decode of the EDID DTD h/v sync polarity fields.
    
    As a result, we can remove the quirks that existed to flip the bits back around
    for us.  This is not confirmed in all cases due to lack of bugs containing EDID
    blocks associated with the quirks, but is likely true.

diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index 3f67ef3..908593b 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -50,36 +50,12 @@
 
 typedef enum {
     DDC_QUIRK_NONE = 0,
-    /* Force detailed sync polarity to -h +v */
-    DDC_QUIRK_DT_SYNC_HM_VP = 1 << 0,
     /* First detailed mode is bogus, prefer largest mode at 60hz */
-    DDC_QUIRK_PREFER_LARGE_60 = 1 << 1,
+    DDC_QUIRK_PREFER_LARGE_60 = 1 << 0,
     /* 135MHz clock is too high, drop a bit */
-    DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 2
+    DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 1,
 } ddc_quirk_t;
 
-static Bool quirk_dt_sync_hm_vp (int scrnIndex, xf86MonPtr DDC)
-{
-    /* Belinea 1924S1W */
-    if (memcmp (DDC->vendor.name, "MAX", 4) == 0 &&
-	DDC->vendor.prod_id == 1932)
-	return TRUE;
-    /* Belinea 10 20 30W */
-    if (memcmp (DDC->vendor.name, "MAX", 4) == 0 &&
-	DDC->vendor.prod_id == 2007)
-	return TRUE;
-    /* ViewSonic VX2025wm (bug #9941) */
-    if (memcmp (DDC->vendor.name, "VSC", 4) == 0 &&
-	DDC->vendor.prod_id == 58653)
-	return TRUE;
-    /* Samsung SyncMaster 205BW */
-    if (memcmp (DDC->vendor.name, "SAM", 4) == 0 &&
-	DDC->vendor.prod_id == 541)
-	return TRUE;
-     
-    return FALSE;
-}
-
 static Bool quirk_prefer_large_60 (int scrnIndex, xf86MonPtr DDC)
 {
     /* Belinea 10 15 55 */
@@ -122,10 +98,6 @@ typedef struct {
 } ddc_quirk_map_t;
 
 static const ddc_quirk_map_t ddc_quirks[] = {
-    { 
-	quirk_dt_sync_hm_vp,	DDC_QUIRK_DT_SYNC_HM_VP,
-	"Set detailed timing sync polarity to -h +v"
-    },
     {
 	quirk_prefer_large_60,   DDC_QUIRK_PREFER_LARGE_60,
 	"Detailed timing is not preferred, use largest mode at 60Hz"
@@ -274,20 +246,15 @@ DDCModeFromDetailedTiming(int scrnIndex,
     if (timing->interlaced)
         Mode->Flags |= V_INTERLACE;
 
-    if (quirks & DDC_QUIRK_DT_SYNC_HM_VP)
-	Mode->Flags |= V_NHSYNC | V_PVSYNC;
+    if (timing->misc & 0x02)
+	Mode->Flags |= V_PVSYNC;
     else
-    {
-	if (timing->misc & 0x02)
-	    Mode->Flags |= V_PHSYNC;
-	else
-	    Mode->Flags |= V_NHSYNC;
-    
-	if (timing->misc & 0x01)
-	    Mode->Flags |= V_PVSYNC;
-	else
-	    Mode->Flags |= V_NVSYNC;
-    }
+	Mode->Flags |= V_NVSYNC;
+
+    if (timing->misc & 0x01)
+	Mode->Flags |= V_PHSYNC;
+    else
+	Mode->Flags |= V_NHSYNC;
 
     return Mode;
 }
diff-tree 2926cf1da7e4ed63573bfaecdd7e19beb3057d9b (from b2dcfbca2441ca8c561f86a78a76ab59ecbb40e4)
Author: Gustavo Pichorim Boiko <boiko at mandriva.com>
Date:   Thu Aug 2 18:09:52 2007 -0300

    [PATCH] Allocate the right number of entries for saving crtcs

diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 889be6f..9d74e53 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -716,7 +716,7 @@ xf86RandR12CrtcSet (ScreenPtr	pScreen,
     xf86CrtcPtr		*save_crtcs;
     Bool		save_enabled = crtc->enabled;
 
-    save_crtcs = ALLOCATE_LOCAL(config->num_crtc * sizeof (xf86CrtcPtr));
+    save_crtcs = ALLOCATE_LOCAL(config->num_output * sizeof (xf86CrtcPtr));
     if ((randr_mode != NULL) != crtc->enabled)
 	changed = TRUE;
     else if (randr_mode && !xf86RandRModeMatches (randr_mode, &crtc->mode))
diff-tree b2dcfbca2441ca8c561f86a78a76ab59ecbb40e4 (from ab3f601149e15789edfb7c9a0c33387070279582)
Author: Keith Packard <keithp at koto.keithp.com>
Date:   Wed Aug 8 12:16:12 2007 -0700

    RRScanOldConfig cannot use RRFirstOutput before output is configured.
    
    RRFirstOutput returns the first active output, which won't be set until
    after RRScanOldConfig is finished running. Instead, just use the first
    output (which is the only output present with an old driver, after all).

diff --git a/randr/rrinfo.c b/randr/rrinfo.c
index 8b0c93d..7e77d39 100644
--- a/randr/rrinfo.c
+++ b/randr/rrinfo.c
@@ -104,7 +104,7 @@ RRScanOldConfig (ScreenPtr pScreen, Rota
 #endif
     }
 
-    output = RRFirstOutput (pScreen);
+    output = pScrPriv->outputs[0];
     if (!output)
 	return;
     crtc = pScrPriv->crtcs[0];
diff-tree ab3f601149e15789edfb7c9a0c33387070279582 (from 7d1a749b210ba5b9f8d0e5a1feb9a9ef9fa4d992)
Author: Tiago Vignatti <tiagov at balalaika.(none)>
Date:   Tue Aug 7 23:17:32 2007 -0300

    Updates some piece of the dead mouse evdev code under the new hotplug scheme.
    I exported the evdev driver to Xephyr server. I'm running it using something
    like:
        $ ./hw/kdrive/ephyr/Xephyr :1 -mouse evdev,,device=/dev/input/event4 -keybd \
        evdev,,device=/dev/input/event1,xkbmodel=abnt2,xkblayout=br
    
    It also closes /#5668.

diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c
index 850dc76..56b4f16 100644
--- a/hw/kdrive/ephyr/ephyrinit.c
+++ b/hw/kdrive/ephyr/ephyrinit.c
@@ -57,7 +57,9 @@ InitInput (int argc, char **argv)
   KdPointerInfo *pi;
         
   KdAddKeyboardDriver(&EphyrKeyboardDriver);
+  KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver);
   KdAddPointerDriver(&EphyrMouseDriver);
+  KdAddPointerDriver(&LinuxEvdevMouseDriver);
 
   if (!kdHasKbd) {
     ki = KdNewKeyboard();
diff --git a/hw/kdrive/linux/evdev.c b/hw/kdrive/linux/evdev.c
index 79527c7..2eaa1e3 100644
--- a/hw/kdrive/linux/evdev.c
+++ b/hw/kdrive/linux/evdev.c
@@ -42,11 +42,8 @@
 #define OFF(x)   ((x)%BITS_PER_LONG)
 #define LONG(x)  ((x)/BITS_PER_LONG)
 #define BIT(x)         (1 << OFF(x))
-#define SETBIT(x,y) ((x)[LONG(y)] |= BIT(y))
-#define CLRBIT(x,y) ((x)[LONG(y)] &= ~BIT(y))
-#define ASSIGNBIT(x,y,z)    ((x)[LONG(y)] = ((x)[LONG(y)] & ~BIT(y)) | (z << OFF(y)))
 
-typedef struct _kevdevMouse {
+typedef struct _kevdev {
     /* current device state */
     int                            rel[REL_MAX + 1];
     int                            abs[ABS_MAX + 1];
@@ -65,23 +62,60 @@ typedef struct _kevdevMouse {
 } Kevdev;
 
 static void
-EvdevMotion (KdPointerInfo    *pi)
+EvdevPtrBtn (KdPointerInfo    *pi, struct input_event *ev)
+{
+    int flags = KD_MOUSE_DELTA | pi->buttonState;
+
+    if (ev->code >= BTN_MOUSE && ev->code < BTN_JOYSTICK) {
+        switch (ev->code) {
+        case BTN_LEFT:
+            if (ev->value == 1)
+                flags |= KD_BUTTON_1;
+	    else
+                flags &= ~KD_BUTTON_1;
+             break;
+        case BTN_MIDDLE:
+            if (ev->value == 1)
+                flags |= KD_BUTTON_2;
+	    else
+		flags &= ~KD_BUTTON_2;
+            break;
+        case BTN_RIGHT:
+            if (ev->value == 1)
+                flags |= KD_BUTTON_3;
+	    else
+		flags &= ~KD_BUTTON_3;
+            break;
+        default:
+            /* Unknow button */
+            break;
+        }
+
+        KdEnqueuePointerEvent (pi, flags, 0, 0, 0);
+    }
+}
+static void
+EvdevPtrMotion (KdPointerInfo    *pi, struct input_event *ev)
 {
     Kevdev                *ke = pi->driverPrivate;
-    int                        i;
+    int i;
+    int flags = KD_MOUSE_DELTA | pi->buttonState;
 
     for (i = 0; i <= ke->max_rel; i++)
         if (ke->rel[i])
         {
             int a;
-            ErrorF ("rel");
             for (a = 0; a <= ke->max_rel; a++)
             {
-                if (ISBITSET (ke->relbits, a))
-                    ErrorF (" %d=%d", a, ke->rel[a]);
-                ke->rel[a] = 0;
+                if (ISBITSET (ke->relbits, a)) 
+		{
+                    if (a == 0)
+                        KdEnqueuePointerEvent(pi, flags, ke->rel[a], 0, 0);
+                    else if (a == 1)
+                        KdEnqueuePointerEvent(pi, flags, 0, ke->rel[a], 0); 
+                }
+		ke->rel[a] = 0;
             }
-            ErrorF ("\n");
             break;
         }
     for (i = 0; i < ke->max_abs; i++)
@@ -98,10 +132,30 @@ EvdevMotion (KdPointerInfo    *pi)
             ErrorF ("\n");
             break;
         }
+    
+    if (ev->code == REL_WHEEL) {           
+      for (i = 0; i < abs (ev->value); i++) 
+      {
+        if (ev->value > 0)
+          flags |= KD_BUTTON_4;
+        else
+          flags |= KD_BUTTON_5;
+
+        KdEnqueuePointerEvent (pi, flags, 0, 0, 0);
+
+        if (ev->value > 0)
+          flags &= ~KD_BUTTON_4;
+        else
+          flags &= ~KD_BUTTON_5;
+
+        KdEnqueuePointerEvent (pi, flags, 0, 0, 0);
+      }
+    }
+    
 }
 
 static void
-EvdevRead (int evdevPort, void *closure)
+EvdevPtrRead (int evdevPort, void *closure)
 {
     KdPointerInfo                *pi = closure;
     Kevdev                       *ke = pi->driverPrivate;
@@ -110,8 +164,12 @@ EvdevRead (int evdevPort, void *closure)
     int                        n;
 
     n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
-    if (n <= 0)
+    if (n <= 0) {
+        if (errno == ENODEV) 
+            DeleteInputDeviceRequest(pi->dixdev);
         return;
+    }
+
     n /= sizeof (struct input_event);
     for (i = 0; i < n; i++)
     {
@@ -119,26 +177,20 @@ EvdevRead (int evdevPort, void *closure)
         case EV_SYN:
             break;
         case EV_KEY:
-            EvdevMotion (pi);
-            ASSIGNBIT(ke->key,events[i].code, events[i].value);
-            if (events[i].code < 0x100)
-                ErrorF ("key %d %d\n", events[i].code, events[i].value);
-            else
-                ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
+            EvdevPtrBtn (pi, &events[i]);
             break;
         case EV_REL:
             ke->rel[events[i].code] += events[i].value;
+            EvdevPtrMotion (pi, &events[i]);
             break;
         case EV_ABS:
             ke->abs[events[i].code] = events[i].value;
+            EvdevPtrMotion (pi, &events[i]);
             break;
         }
     }
-    EvdevMotion (pi);
 }
 
-int EvdevInputType;
-
 char *kdefaultEvdev[] =  {
     "/dev/input/event0",
     "/dev/input/event1",
@@ -149,7 +201,7 @@ char *kdefaultEvdev[] =  {
 #define NUM_DEFAULT_EVDEV    (sizeof (kdefaultEvdev) / sizeof (kdefaultEvdev[0]))
 
 static Status
-EvdevInit (KdPointerInfo *pi)
+EvdevPtrInit (KdPointerInfo *pi)
 {
     int                i;
     int                fd;
@@ -157,25 +209,29 @@ EvdevInit (KdPointerInfo *pi)
     if (!pi->path) {
         for (i = 0; i < NUM_DEFAULT_EVDEV; i++) {
             fd = open (kdefaultEvdev[i], 2);
-                if (fd >= 0) {
-                    pi->path = KdSaveString (kdefaultEvdev[i]);
-                    break;
-                }
+            if (fd >= 0) {
+                pi->path = KdSaveString (kdefaultEvdev[i]);
+                break;
             }
+        }
     }
     else {
-        fd = open (pi->path, 2);
+        fd = open (pi->path, O_RDWR);
         if (fd < 0) {
             ErrorF("Failed to open evdev device %s\n", pi->path);
             return BadMatch;
         }
     }
 
+    close(fd);
+
+    pi->name = KdSaveString("Evdev mouse");
+
     return Success;
 }
 
 static Status
-EvdevEnable (KdPointerInfo *pi)
+EvdevPtrEnable (KdPointerInfo *pi)
 {        
     int fd;
 
@@ -259,17 +315,19 @@ EvdevEnable (KdPointerInfo *pi)
             return BadValue;
         }
     }
-    if (!KdRegisterFd (fd, EvdevRead, pi)) {
+    if (!KdRegisterFd (fd, EvdevPtrRead, pi)) {
         xfree (ke);
         close (fd);
         return BadAlloc;
     }
     pi->driverPrivate = ke;
+    ke->fd = fd;
+
     return Success;
 }
 
 static void
-EvdevDisable (KdPointerInfo *pi)
+EvdevPtrDisable (KdPointerInfo *pi)
 {
     Kevdev              *ke;
 
@@ -284,26 +342,195 @@ EvdevDisable (KdPointerInfo *pi)
 }
 
 static void
-EvdevFini (KdPointerInfo *pi)
+EvdevPtrFini (KdPointerInfo *pi)
+{
+}
+
+
+/*
+ * Evdev keyboard functions 
+ */
+
+static void
+readMapping (KdKeyboardInfo *ki)
+{
+    int             minScanCode, maxScanCode;
+
+    if (!ki)
+        return;
+
+    minScanCode = 0;
+    maxScanCode = 193;
+
+    ki->keySyms.mapWidth = 2;
+
+    ki->minScanCode = minScanCode;
+    ki->maxScanCode = maxScanCode;		
+}
+
+static void
+EvdevKbdRead (int evdevPort, void *closure)
+{
+    KdKeyboardInfo	 *ki = closure;
+    struct input_event	 events[NUM_EVENTS];
+    int			 i, n;
+
+    n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
+    if (n <= 0) {
+        if (errno == ENODEV) 
+            DeleteInputDeviceRequest(ki->dixdev);
+        return;
+    }
+
+    n /= sizeof (struct input_event);
+    for (i = 0; i < n; i++)
+    {
+        if (events[i].type == EV_KEY)
+	    KdEnqueueKeyboardEvent (ki, events[i].code, !events[i].value);
+/* FIXME: must implement other types of events
+        else
+            ErrorF("Event type (%d) not delivered\n", events[i].type);
+*/
+    }
+}
+
+static Status
+EvdevKbdInit (KdKeyboardInfo *ki)
+{
+    int fd;
+    
+    if (!ki->path) {
+        ErrorF("Couldn't find evdev device path\n");
+        return BadValue;
+    }
+    else {
+        fd = open (ki->path, O_RDWR);
+        if (fd < 0) {
+            ErrorF("Failed to open evdev device %s\n", ki->path);
+            return BadMatch;
+        }
+    }
+
+    close (fd);
+
+    ki->name = KdSaveString("Evdev keyboard");
+
+    readMapping(ki);
+
+    return Success;
+}
+
+static Status
+EvdevKbdEnable (KdKeyboardInfo *ki)
+{
+    unsigned long       ev[NBITS(EV_MAX)];
+    Kevdev              *ke;
+    int                 fd;
+
+    if (!ki || !ki->path)
+        return BadImplementation;
+
+    fd = open(ki->path, O_RDWR);
+    if (fd < 0)
+        return BadMatch;
+
+    if (ioctl (fd, EVIOCGBIT(0 /*EV*/, sizeof (ev)), ev) < 0) {
+        perror ("EVIOCGBIT 0");
+        close (fd);
+        return BadMatch;
+    }
+
+    ke = xalloc (sizeof (Kevdev));
+    if (!ke) {
+        close (fd);
+        return BadAlloc;
+    }
+    memset (ke, '\0', sizeof (Kevdev));
+
+    if (!KdRegisterFd (fd, EvdevKbdRead, ki)) {
+        xfree (ke);
+        close (fd);
+        return BadAlloc;
+    }
+    ki->driverPrivate = ke;
+    ke->fd = fd;
+
+    return Success;
+}
+
+static void
+EvdevKbdLeds (KdKeyboardInfo *ki, int leds)
+{
+/*    struct input_event event;
+    Kevdev             *ke;
+
+    ki->driverPrivate = ke;
+
+    memset(&event, 0, sizeof(event));
+
+    event.type = EV_LED;
+    event.code = LED_CAPSL;
+    event.value = leds & (1 << 0) ? 1 : 0;
+    write(ke->fd, (char *) &event, sizeof(event));
+
+    event.type = EV_LED;
+    event.code = LED_NUML;
+    event.value = leds & (1 << 1) ? 1 : 0;
+    write(ke->fd, (char *) &event, sizeof(event));
+
+    event.type = EV_LED;
+    event.code = LED_SCROLLL;
+    event.value = leds & (1 << 2) ? 1 : 0;
+    write(ke->fd, (char *) &event, sizeof(event));
+
+    event.type = EV_LED;
+    event.code = LED_COMPOSE;
+    event.value = leds & (1 << 3) ? 1 : 0;
+    write(ke->fd, (char *) &event, sizeof(event));
+*/
+}
+
+static void
+EvdevKbdBell (KdKeyboardInfo *ki, int volume, int frequency, int duration)
+{
+}
+
+static void
+EvdevKbdDisable (KdKeyboardInfo *ki)
+{
+    Kevdev              *ke;
+
+    ke = ki->driverPrivate;
+
+    if (!ki || !ki->driverPrivate)
+        return;
+
+    KdUnregisterFd (ki, ke->fd, TRUE);
+    xfree (ke);
+    ki->driverPrivate = 0;
+}
+
+static void
+EvdevKbdFini (KdKeyboardInfo *ki)
 {
 }
 
 KdPointerDriver LinuxEvdevMouseDriver = {
     "evdev",
-    EvdevInit,
-    EvdevEnable,
-    EvdevDisable,
-    EvdevFini,
+    EvdevPtrInit,
+    EvdevPtrEnable,
+    EvdevPtrDisable,
+    EvdevPtrFini,
     NULL,
 };
 
-#if 0
-KdKeyboardFuncs LinuxEvdevKeyboardFuncs = {
-    EvdevKbdLoad,
+KdKeyboardDriver LinuxEvdevKeyboardDriver = {
+    "evdev",
     EvdevKbdInit,
+    EvdevKbdEnable,
     EvdevKbdLeds,
     EvdevKbdBell,
+    EvdevKbdDisable,
     EvdevKbdFini,
-    0,
+    NULL,
 };
-#endif
diff --git a/hw/kdrive/linux/linux.c b/hw/kdrive/linux/linux.c
index 0e4a77c..23cd8f5 100644
--- a/hw/kdrive/linux/linux.c
+++ b/hw/kdrive/linux/linux.c
@@ -456,7 +456,9 @@ KdOsAddInputDrivers ()
 #ifdef TSLIB
     KdAddPointerDriver(&TsDriver);
 #endif
+    KdAddPointerDriver(&LinuxEvdevMouseDriver);
     KdAddKeyboardDriver(&LinuxKeyboardDriver);
+    KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver);
 }
 
 static void
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index 21f9539..81f3e01 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -878,12 +878,13 @@ KdRingBell (KdKeyboardInfo      *ki,
             int                 duration);
 
 extern KdPointerDriver	LinuxMouseDriver;
-extern KdPointerDriver	LinuxEvdevDriver;
+extern KdPointerDriver	LinuxEvdevMouseDriver;
 extern KdPointerDriver	Ps2MouseDriver;
 extern KdPointerDriver	BusMouseDriver;
 extern KdPointerDriver	MsMouseDriver;
 extern KdPointerDriver	TsDriver;
 extern KdKeyboardDriver	LinuxKeyboardDriver;
+extern KdKeyboardDriver LinuxEvdevKeyboardDriver;
 extern KdOsFuncs	LinuxFuncs;
 
 extern KdPointerDriver	VxWorksMouseDriver;
diff-tree 7d1a749b210ba5b9f8d0e5a1feb9a9ef9fa4d992 (from aee3588a4a6829326770c84b860061f47f2cbcae)
Author: Tiago Vignatti <tiagov at balalaika.(none)>
Date:   Tue Aug 7 22:59:12 2007 -0300

    Export device path key options to be called by the command line of server.

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 8fe605e..6c247c1 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -1162,6 +1162,8 @@ KdParseKbdOptions (KdKeyboardInfo *ki)
             ki->xkbVariant = option->value;
         else if (strcasecmp(option->key, "XkbOptions") == 0)
             ki->xkbOptions = option->value;
+        else if (!strcasecmp (option->key, "device"))
+            ki->path = KdSaveString(option->value);
         else
 #endif
            ErrorF("Kbd option key (%s) of value (%s) not assigned!\n", 
@@ -1259,6 +1261,8 @@ KdParsePointerOptions (KdPointerInfo *pi
             pi->transformCoordinates = TRUE;
         else if (!strcmp (option->key, "rawcoord"))
             pi->transformCoordinates = FALSE;
+        else if (!strcasecmp (option->key, "device"))
+            pi->path = KdSaveString(option->value);
         else
             ErrorF("Pointer option key (%s) of value (%s) not assigned!\n", 
                     option->key, option->value);
@@ -2429,6 +2433,8 @@ NewInputDeviceRequest(InputOption *optio
         return BadValue;
     }
 
+    /* FIXME: change this code below to use KdParseKbdOptions and
+     * KdParsePointerOptions */
     for (option = options; option; option = option->next) {
         if (strcmp(option->key, "device") == 0) {
             if (pi && option->value)
diff-tree aee3588a4a6829326770c84b860061f47f2cbcae (from 30259d5a4e95ff20b30807e5e207ab5995a3fdaf)
Author: Tiago Vignatti <tiagov at balalaika.(none)>
Date:   Tue Aug 7 22:49:07 2007 -0300

    Update KdUseMsg() for completeness.

diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c
index 5158ef5..2bb7b53 100644
--- a/hw/kdrive/src/kdrive.c
+++ b/hw/kdrive/src/kdrive.c
@@ -598,6 +598,8 @@ KdUseMsg (void)
     ErrorF("-card pcmcia     Use PCMCIA card as additional screen\n");
     ErrorF("-screen WIDTH[/WIDTHMM]xHEIGHT[/HEIGHTMM][@ROTATION][X][Y][xDEPTH/BPP{,DEPTH/BPP}[xFREQ]]  Specify screen characteristics\n");
     ErrorF("-rgba rgb/bgr/vrgb/vbgr/none   Specify subpixel ordering for LCD panels\n");
+    ErrorF("-mouse driver [,n,,options]    Specify the pointer driver and its options (n is the number of buttons)\n");
+    ErrorF("-keybd driver [,,options]      Specify the keyboard driver and its options\n");
     ErrorF("-zaphod          Disable cursor screen switching\n");
     ErrorF("-2button         Emulate 3 button mouse\n");
     ErrorF("-3button         Disable 3 button mouse emulation\n");
@@ -606,7 +608,6 @@ KdUseMsg (void)
     ErrorF("-softCursor      Force software cursor\n");
     ErrorF("-videoTest       Start the server, pause momentarily and exit\n");
     ErrorF("-origin X,Y      Locates the next screen in the the virtual screen (Xinerama)\n");
-    ErrorF("-mouse path[,n]  Filename of mouse device, n is number of buttons\n");
     ErrorF("-switchCmd       Command to execute on vt switch\n");
     ErrorF("-nozap           Don't terminate server on Ctrl+Alt+Backspace\n");
     ErrorF("vtxx             Use virtual terminal xx instead of the next available\n");
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 4377354..8fe605e 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -1105,6 +1105,11 @@ KdRemovePointer (KdPointerInfo *pi)
     KdFreePointer(pi);
 }
 
+/* 
+ * You can call your kdriver server with something like:
+ * $ ./hw/kdrive/yourserver/X :1 -mouse evdev,,device=/dev/input/event4 -keybd
+ * evdev,,device=/dev/input/event1,xkbmodel=abnt2,xkblayout=br 
+ */
 static Bool 
 KdGetOptions (InputOption **options, char *string)
 {
diff-tree 30259d5a4e95ff20b30807e5e207ab5995a3fdaf (from aef255425a3521d66c3405d34f7787628a22703e)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Tue Aug 7 20:58:49 2007 +0300

    Hotplug: HAL: Fix error handling
    
    Don't use our DBusError for property getting, because we simply don't care:
    this fixes D-Bus error spew to stderr.  Thanks Michel Dänzer for debugging
    and testing.

diff --git a/config/hal.c b/config/hal.c
index 833ec59..d7835e6 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -98,12 +98,11 @@ add_option(InputOption **options, const 
 }
 
 static char *
-get_prop_string(LibHalContext *hal_ctx, const char *udi, const char *name,
-                DBusError *error)
+get_prop_string(LibHalContext *hal_ctx, const char *udi, const char *name)
 {
     char *prop, *ret;
 
-    prop = libhal_device_get_property_string(hal_ctx, udi, name, error);
+    prop = libhal_device_get_property_string(hal_ctx, udi, name, NULL);
     DebugF(" [config/hal] getting %s on %s returned %s\n", name, udi, prop);
     if (prop) {
         ret = xstrdup(prop);
@@ -117,13 +116,12 @@ get_prop_string(LibHalContext *hal_ctx, 
 }
 
 static char *
-get_prop_string_array(LibHalContext *hal_ctx, const char *udi, const char *prop,
-                      DBusError *error)
+get_prop_string_array(LibHalContext *hal_ctx, const char *udi, const char *prop)
 {
     char **props, *ret, *str;
     int i, len = 0;
 
-    props = libhal_device_get_property_strlist(hal_ctx, udi, prop, error);
+    props = libhal_device_get_property_strlist(hal_ctx, udi, prop, NULL);
     if (props) {
         for (i = 0; props[i]; i++)
             len += strlen(props[i]);
@@ -187,24 +185,22 @@ device_added(LibHalContext *hal_ctx, con
     if (type == TYPE_NONE)
         goto out_error;
 
-    driver = get_prop_string(hal_ctx, udi, "input.x11_driver", &error);
-    path = get_prop_string(hal_ctx, udi, "input.device", &error);
+    driver = get_prop_string(hal_ctx, udi, "input.x11_driver");
+    path = get_prop_string(hal_ctx, udi, "input.device");
     if (!driver || !path) {
         DebugF("[config/hal] no driver or path specified for %s\n", udi);
         goto unwind;
     }
-    name = get_prop_string(hal_ctx, udi, "info.product", &error);
+    name = get_prop_string(hal_ctx, udi, "info.product");
     if (!name)
         name = xstrdup("(unnamed)");
 
     if (type & TYPE_KEYS) {
-        xkb_rules = get_prop_string(hal_ctx, udi, "input.xkb.rules", &error);
-        xkb_model = get_prop_string(hal_ctx, udi, "input.xkb.model", &error);
-        xkb_layout = get_prop_string(hal_ctx, udi, "input.xkb.layout", &error);
-        xkb_variant = get_prop_string(hal_ctx, udi, "input.xkb.variant",
-                                      &error);
-        xkb_options = get_prop_string_array(hal_ctx, udi, "input.xkb.options",
-                                            &error);
+        xkb_rules = get_prop_string(hal_ctx, udi, "input.xkb.rules");
+        xkb_model = get_prop_string(hal_ctx, udi, "input.xkb.model");
+        xkb_layout = get_prop_string(hal_ctx, udi, "input.xkb.layout");
+        xkb_variant = get_prop_string(hal_ctx, udi, "input.xkb.variant");
+        xkb_options = get_prop_string_array(hal_ctx, udi, "input.xkb.options");
     }
 
     options = xcalloc(sizeof(*options), 1);
@@ -273,7 +269,8 @@ disconnect_hook(void *data)
     if (info->hal_ctx) {
         dbus_error_init(&error);
         if (!libhal_ctx_shutdown(info->hal_ctx, &error))
-            DebugF("[config/hal] couldn't shut down context?\n");
+            DebugF("[config/hal] couldn't shut down context: %s (%s)\n",
+                   error.name, error.message);
         libhal_ctx_free(info->hal_ctx);
         dbus_error_free(&error);
     }
@@ -320,6 +317,7 @@ connect_hook(DBusConnection *connection,
 
     devices = libhal_find_device_by_capability(info->hal_ctx, "input",
                                                &num_devices, &error);
+    /* FIXME: Get default devices if error is set. */
     for (i = 0; i < num_devices; i++)
         device_added(info->hal_ctx, devices[i]);
     libhal_free_string_array(devices);
@@ -330,7 +328,8 @@ connect_hook(DBusConnection *connection,
 
 out_ctx2:
     if (!libhal_ctx_shutdown(info->hal_ctx, &error))
-        DebugF("[config/hal] couldn't shut down context?\n");
+        DebugF("[config/hal] couldn't shut down context: %s (%s)\n",
+               error.name, error.message);
 out_ctx:
     libhal_ctx_free(info->hal_ctx);
 out_err:
diff-tree aef255425a3521d66c3405d34f7787628a22703e (from 838e59c02ec06446fc180fb9d86fa8793c7b9903)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Tue Aug 7 16:37:42 2007 +0300

    Config: HAL: Use input.xkb namespace
    
    Use an explicit input.xkb.foo namespace, not input.xkb_foo.

diff --git a/config/hal.c b/config/hal.c
index f29ba92..833ec59 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -198,12 +198,12 @@ device_added(LibHalContext *hal_ctx, con
         name = xstrdup("(unnamed)");
 
     if (type & TYPE_KEYS) {
-        xkb_rules = get_prop_string(hal_ctx, udi, "input.xkb_rules", &error);
-        xkb_model = get_prop_string(hal_ctx, udi, "input.xkb_model", &error);
-        xkb_layout = get_prop_string(hal_ctx, udi, "input.xkb_layout", &error);
-        xkb_variant = get_prop_string(hal_ctx, udi, "input.xkb_variant",
+        xkb_rules = get_prop_string(hal_ctx, udi, "input.xkb.rules", &error);
+        xkb_model = get_prop_string(hal_ctx, udi, "input.xkb.model", &error);
+        xkb_layout = get_prop_string(hal_ctx, udi, "input.xkb.layout", &error);
+        xkb_variant = get_prop_string(hal_ctx, udi, "input.xkb.variant",
                                       &error);
-        xkb_options = get_prop_string_array(hal_ctx, udi, "input.xkb_options",
+        xkb_options = get_prop_string_array(hal_ctx, udi, "input.xkb.options",
                                             &error);
     }
 
diff --git a/config/x11-input.fdi b/config/x11-input.fdi
index c0e636f..7f516ca 100644
--- a/config/x11-input.fdi
+++ b/config/x11-input.fdi
@@ -11,21 +11,21 @@
     </match>
 
     <match key="info.capabilities" contains="input.keys">
-      <merge key="input.xkb_rules" type="string">base</merge>
+      <merge key="input.xkb.rules" type="string">base</merge>
 
       <!-- If we're using Linux, we use evdev by default (falling back to
            keyboard otherwise). -->
       <merge key="input.x11_driver" type="string">keyboard</merge>
-      <merge key="input.xkb_model" type="string">keyboard</merge>
+      <merge key="input.xkb.model" type="string">keyboard</merge>
       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
              string="Linux">
         <merge key="input.x11_driver" type="string">evdev</merge>
-        <merge key="input.xkb_model" type="string">evdev</merge>
+        <merge key="input.xkb.model" type="string">evdev</merge>
       </match>
 
-      <merge key="input.xkb_layout" type="string">us</merge>
+      <merge key="input.xkb.layout" type="string">us</merge>
 
-      <merge key="input.xkb_variant" type="string" />
+      <merge key="input.xkb.variant" type="string" />
     </match>
   </device>
 </deviceinfo>
diff-tree 838e59c02ec06446fc180fb9d86fa8793c7b9903 (from b4193a2eee80895c5641e77488df0e72a73a3d99)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Mon Aug 6 16:07:20 2007 +0300

    configure.ac: Add $CONFIG_LIB to server libraries
    
    Make sure all DDXes get $CONFIG_LIB.  Build-tested with Xvfb and Xdmx.

diff --git a/configure.ac b/configure.ac
index f1e396e..0544a54 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1151,7 +1151,7 @@ if test "x$DMX" = xyes; then
 		              modules not found.])
 	fi
 	DMX_INCLUDES="$XEXT_INC $RENDER_INC $XTRAP_INC $RECORD_INC"
-	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $XTRAP_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $OS_LIB $CWRAP_LIB"
+	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $CONFIG_LIB $RENDER_LIB $XTRAP_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $OS_LIB $CWRAP_LIB"
 	AC_SUBST([XDMX_LIBS])
 
 dnl USB sources in DMX require <linux/input.h>
@@ -1234,7 +1234,7 @@ AC_MSG_RESULT([$XGL])
 AM_CONDITIONAL(XGL, [test "x$XGL" = xyes])
 
 if test "x$XGL" = xyes; then
-	XGL_LIBS="$FB_LIB $MI_LIB $COMPOSITE_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $MIEXT_LAYER_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB"
+	XGL_LIBS="$FB_LIB $MI_LIB $COMPOSITE_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $MIEXT_LAYER_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB"
 	AC_SUBST([XGL_LIBS])
 	AC_DEFINE(XGL_MODULAR, 1, [Use loadable XGL modules])
 
@@ -1255,7 +1255,7 @@ AC_MSG_RESULT([$XEGL])
 AM_CONDITIONAL(XEGL, [test "x$XEGL" = xyes])
 
 if test "x$XEGL" = xyes; then
-	XEGL_LIBS="$FB_LIB $MI_LIB $COMPOSITE_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $MIEXT_LAYER_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB"
+	XEGL_LIBS="$FB_LIB $MI_LIB $COMPOSITE_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $MIEXT_LAYER_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB"
 	AC_SUBST([XEGL_LIBS])
 fi
 
@@ -1271,7 +1271,7 @@ AC_MSG_RESULT([$XGLX])
 AM_CONDITIONAL(XGLX, [test "x$XGLX" = xyes])
 
 if test "x$XGLX" = xyes; then
-	XGLX_LIBS="$FB_LIB $MI_LIB $COMPOSITE_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $MIEXT_LAYER_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB"
+	XGLX_LIBS="$FB_LIB $MI_LIB $COMPOSITE_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $MIEXT_LAYER_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB"
 	AC_SUBST([XGLX_LIBS])
 fi
 
@@ -1335,7 +1335,7 @@ return 0;}
 #               LDFLAGS=$save_LDFLAGS
 #               ])
                xorg_cv_AGL_framework=no
-	       DARWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $OS_LIB"
+	       DARWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $OS_LIB"
 	       AC_SUBST([DARWIN_LIBS])
                AC_CHECK_LIB([Xplugin],[xp_init],[:])
                AC_SUBST([APPLE_APPLICATIONS_DIR])
@@ -1633,8 +1633,8 @@ AC_MSG_RESULT([$XPRINT])
 
 if test "x$XPRINT" = xyes; then
 	PKG_CHECK_MODULES([XPRINT], [printproto x11 xfont $XDMCP_MODULES xau $PIXMAN])
-	XPRINT_EXTENSIONS="$XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $RENDER_LIB $COMPOSITE_LIB $RANDR_LIB $XI_LIB $FIXES_LIB $DAMAGE_LIB $XI_LIB $GLX_LIBS"
-	XPRINT_LIBS="$DIX_LIB $CONFIG_LIB $XKB_LIB $XKB_STUB_LIB $XPRINT_EXTENSIONS $MI_LIB $MIEXT_DAMAGE_LIB $CWRAP_LIB $OS_LIB $LIBS $XPRINT_LIBS"
+	XPRINT_EXTENSIONS="$XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $RENDER_LIB $COMPOSITE_LIB $RANDR_LIB $XI_LIB $FIXES_LIB $DAMAGE_LIB $XI_LIB $GLX_LIBS"
+	XPRINT_LIBS="$DIX_LIB $XKB_LIB $XKB_STUB_LIB $XPRINT_EXTENSIONS $MI_LIB $MIEXT_DAMAGE_LIB $CWRAP_LIB $OS_LIB $LIBS $XPRINT_LIBS"
 	AC_SUBST([XPRINT_CFLAGS])
 	AC_SUBST([XPRINT_LIBS])
 
@@ -1689,7 +1689,7 @@ if test "x$XWIN" = xauto; then
 		mingw*) XWIN="yes" ;;
 		*) XWIN="no" ;;
 	esac
-	XWIN_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $LAYER_LIB $XPSTUBS_LIB $OS_LIB $SHADOW_LIB"
+	XWIN_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $CONFIG_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $LAYER_LIB $XPSTUBS_LIB $OS_LIB $SHADOW_LIB"
 	AC_SUBST([XWIN_LIBS])
 fi
 AC_MSG_RESULT([$XWIN])
diff-tree b4193a2eee80895c5641e77488df0e72a73a3d99 (from 2b93cbb5f8bac9b1b75f723baaa728430b5fefff)
Author: Keith Packard <keithp at koto.keithp.com>
Date:   Tue Aug 7 12:45:53 2007 -0700

    RRScanOldConfig wasn't getting crtcs set correctly
    
    The output crtc is set by RRCrtcNotify, which is called at the end of
    RRScanOldConfig. Several uses of output->crtc in this function were wrong.

diff --git a/randr/rrinfo.c b/randr/rrinfo.c
index bd5d5b1..8b0c93d 100644
--- a/randr/rrinfo.c
+++ b/randr/rrinfo.c
@@ -98,7 +98,6 @@ RRScanOldConfig (ScreenPtr pScreen, Rota
 	if (!output)
 	    return;
 	RROutputSetCrtcs (output, &crtc, 1);
-	output->crtc = crtc;
 	RROutputSetConnection (output, RR_Connected);
 #ifdef RENDER
 	RROutputSetSubpixelOrder (output, PictureGetSubpixelOrder (pScreen));
@@ -108,7 +107,9 @@ RRScanOldConfig (ScreenPtr pScreen, Rota
     output = RRFirstOutput (pScreen);
     if (!output)
 	return;
-    crtc = output->crtc;
+    crtc = pScrPriv->crtcs[0];
+    if (!crtc)
+	return;
 
     /* check rotations */
     if (rotations != crtc->rotations)
@@ -168,7 +169,7 @@ RRScanOldConfig (ScreenPtr pScreen, Rota
 
     /* notice current mode */
     if (newMode)
-	RRCrtcNotify (output->crtc, newMode, 0, 0, pScrPriv->rotation,
+	RRCrtcNotify (crtc, newMode, 0, 0, pScrPriv->rotation,
 		      1, &output);
 }
 #endif
diff-tree 2b93cbb5f8bac9b1b75f723baaa728430b5fefff (from fef4c7a6f1a1ef34233b36137bb66d9a657307fb)
Author: Keith Packard <keithp at koto.keithp.com>
Date:   Tue Aug 7 12:44:19 2007 -0700

    Decrement mode count when removing RandR output mode.
    
    Removing an output mode without decrementing the mode count scrambles the
    output mode array badly.

diff --git a/randr/rroutput.c b/randr/rroutput.c
index 1e1cfa5..a67e493 100644
--- a/randr/rroutput.c
+++ b/randr/rroutput.c
@@ -249,6 +249,7 @@ RROutputDeleteUserMode (RROutputPtr outp
 
     memmove (output->userModes + m, output->userModes + m + 1,
 	     (output->numUserModes - m - 1) * sizeof (RRModePtr));
+    output->numUserModes--;
     RRModeDestroy (mode);
     return Success;
 }
diff-tree fef4c7a6f1a1ef34233b36137bb66d9a657307fb (from 1339e57485db5a285cfbecbe0bba7154458680ad)
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Aug 7 09:01:14 2007 -0700

    Fix driver build after pixman changes.

diff --git a/configure.ac b/configure.ac
index 10fcbeb..f1e396e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -618,6 +618,8 @@ XEXT_LIB='$(top_builddir)/Xext/libXext.l
 XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
 
 PIXMAN="[pixman-1 >= 0.9.4]"
+PKG_CHECK_MODULES(PIXMAN, $PIXMAN)
+AC_SUBST(PIXMAN_CFLAGS)
 
 dnl Core modules for most extensions, et al.
 REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto [xproto >= 7.0.9] xtrans [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto [inputproto >= 1.4.2] [kbproto >= 1.0.3]"
diff --git a/xorg-server.pc.in b/xorg-server.pc.in
index 7b4b2fb..fba3b15 100644
--- a/xorg-server.pc.in
+++ b/xorg-server.pc.in
@@ -8,5 +8,5 @@ sdkdir=@sdkdir@
 Name: xorg-server
 Description: Modular X.Org X Server
 Version: @PACKAGE_VERSION@
-Cflags: -I${sdkdir}
+Cflags: -I${sdkdir} @PIXMAN_CFLAGS@
 Libs: -L${libdir}
diff-tree 1339e57485db5a285cfbecbe0bba7154458680ad (from d9ee5f3e3a3a814ebcd257736c305b41139cc354)
Author: Tiago Vignatti <tiagov at balalaika.(none)>
Date:   Tue Aug 7 04:24:34 2007 -0300

    Fix typo.

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index df2ac5a..4377354 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -1146,6 +1146,7 @@ KdParseKbdOptions (KdKeyboardInfo *ki)
 
     for (option = ki->options; option; option = option->next)
     {
+#ifdef XKB
         if (strcasecmp(option->key, "XkbRules") == 0)
             ki->xkbRules = option->value;
         else if (strcasecmp(option->key, "XkbModel") == 0)
@@ -1156,7 +1157,8 @@ KdParseKbdOptions (KdKeyboardInfo *ki)
             ki->xkbVariant = option->value;
         else if (strcasecmp(option->key, "XkbOptions") == 0)
             ki->xkbOptions = option->value;
-       else
+        else
+#endif
            ErrorF("Kbd option key (%s) of value (%s) not assigned!\n", 
                     option->key, option->value);
     }
diff-tree d9ee5f3e3a3a814ebcd257736c305b41139cc354 (from 7a5eb3e96b74daaaeb6babf46b13d698280aa3f6)
Author: Tiago Vignatti <tiagov at balalaika.(none)>
Date:   Tue Aug 7 04:22:26 2007 -0300

    Clean a little bit the code.

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index b84e989..df2ac5a 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -1105,6 +1105,40 @@ KdRemovePointer (KdPointerInfo *pi)
     KdFreePointer(pi);
 }
 
+static Bool 
+KdGetOptions (InputOption **options, char *string)
+{
+    InputOption     *newopt = NULL, **tmpo = NULL;
+    int             tam_key = 0;
+
+    newopt = (InputOption *) xalloc(sizeof (InputOption));
+    if (!newopt)
+        return FALSE;
+
+    bzero(newopt, sizeof (InputOption));
+
+    for (tmpo = options; *tmpo; tmpo = &(*tmpo)->next)
+        ; /* Hello, I'm here */ 
+    *tmpo = newopt;
+
+    if (strchr(string, '='))
+    {
+        tam_key = (strchr(string, '=') - string);
+        newopt->key = (char *)xalloc(tam_key);
+        strncpy(newopt->key, string, tam_key);
+        newopt->key[tam_key] = '\0';
+        newopt->value = xstrdup(strchr(string, '=') + 1);
+    }
+    else
+    {
+        newopt->key = xstrdup(string);
+        newopt->value = NULL;
+    }
+    newopt->next = NULL;
+
+    return TRUE;
+}
+
 static void
 KdParseKbdOptions (KdKeyboardInfo *ki)
 {
@@ -1133,8 +1167,7 @@ KdParseKeyboard (char *arg)
 {
     char            save[1024];
     char            delim;
-    InputOption     *options = NULL, *newopt = NULL, **tmpo = NULL;
-    int             i = 0;
+    InputOption     *options = NULL;
     KdKeyboardInfo     *ki = NULL;
 
     ki = KdNewKeyboard();
@@ -1188,32 +1221,11 @@ KdParseKeyboard (char *arg)
     {
         arg = KdParseFindNext (arg, ",", save, &delim);
 
-        newopt = (InputOption *) xalloc(sizeof (InputOption));
-        if (!newopt)
-        {
-            KdFreeKeyboard(ki);
-            return NULL;
-        }
-        bzero(newopt, sizeof (InputOption));
-
-        for (tmpo = &options; *tmpo; tmpo = &(*tmpo)->next)
-            ; /* Hello, I'm here */ 
-        *tmpo = newopt;
-
-        if (strchr(save, '='))
-        {
-            i = (strchr(save, '=') - save);
-            newopt->key = (char *)xalloc(i);
-            strncpy(newopt->key, save, i);
-            newopt->key[i] = '\0';
-            newopt->value = xstrdup(strchr(save, '=') + 1);
-        }
-        else
-        {
-            newopt->key = xstrdup(save);
-            newopt->value = NULL;
-        }
-        newopt->next = NULL;
+	if (!KdGetOptions(&options, save)) 
+	{
+	    KdFreeKeyboard(ki);
+	    return NULL;
+        }    
     }
 
     if (options)
@@ -1252,7 +1264,7 @@ KdParsePointer (char *arg)
     char            save[1024];
     char            delim;
     KdPointerInfo   *pi = NULL;
-    InputOption     *options = NULL, *newopt = NULL, **tmpo = NULL;
+    InputOption     *options = NULL;
     int             i = 0;
 
     pi = KdNewPointer();
@@ -1314,33 +1326,11 @@ KdParsePointer (char *arg)
         }
         else
         {
-            newopt = (InputOption *) xalloc(sizeof (InputOption));
-            if (!newopt)
+            if (!KdGetOptions(&options, save))
             {
                 KdFreePointer(pi);
                 return NULL;
             }
-            bzero(newopt, sizeof (InputOption));
-
-            for (tmpo = &options; *tmpo; tmpo = &(*tmpo)->next)
-                ; /* Hello, I'm here */
-
-            *tmpo = newopt;
-
-            if (strchr(save, '='))
-            {
-                i = (strchr(save, '=') - save);
-                newopt->key = (char *)xalloc(i);
-                strncpy(newopt->key, save, i);
-		newopt->key[i] = '\0';
-                newopt->value = xstrdup(strchr(save, '=') + 1);
-            }
-            else
-            {
-                newopt->key = xstrdup(save);
-                newopt->value = NULL;
-            }
-            newopt->next = NULL;
         }
     }
 
diff-tree 7a5eb3e96b74daaaeb6babf46b13d698280aa3f6 (from 955d5f6c0d14fae63bfe7c4ab39ee0a708919479)
Author: Tiago Vignatti <tiagov at balalaika.(none)>
Date:   Tue Aug 7 02:16:44 2007 -0300

    Let xkb options be passed through command line in kdrive servers. I start my
    Xephyr using something like:
    
        ./hw/kdrive/ephyr/Xephyr :1 -fp /usr/share/fonts/X11/misc/ -mouse ephyr -keybd ephyr,,xkblayout=br,xkbmodel=abnt2

diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index 2ebde22..21f9539 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -330,6 +330,11 @@ struct _KdKeyboardInfo {
     int                 inputClass;
 #ifdef XKB
     XkbDescPtr          xkb;
+    char                *xkbRules;
+    char                *xkbModel;
+    char                *xkbLayout;
+    char                *xkbVariant;
+    char                *xkbOptions;
 #endif
     int                 LockLed;
 
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 8018bef..b84e989 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -792,7 +792,9 @@ KdKeyboardProc(DeviceIntPtr pDevice, int
         if (!noXkbExtension) {
             memset(&names, 0, sizeof(XkbComponentNamesRec));
 
-            XkbSetRulesDflts ("base", "pc105", "us", NULL, NULL);
+            XkbSetRulesDflts (ki->xkbRules, ki->xkbModel, ki->xkbLayout,
+                              ki->xkbVariant, ki->xkbOptions);
+
             ret = XkbInitKeyboardDeviceStruct (pDevice,
                                                &names,
                                                &ki->keySyms,
@@ -961,6 +963,13 @@ KdNewKeyboard (void)
     ki->bellDuration = 200;
     ki->next = NULL;
     ki->options = NULL;
+#ifdef XKB
+    ki->xkbRules = KdSaveString("base");
+    ki->xkbModel = KdSaveString("pc105");
+    ki->xkbLayout = KdSaveString("us");
+    ki->xkbVariant = NULL;
+    ki->xkbOptions = NULL;
+#endif
 
     return ki;
 }
@@ -1096,11 +1105,36 @@ KdRemovePointer (KdPointerInfo *pi)
     KdFreePointer(pi);
 }
 
+static void
+KdParseKbdOptions (KdKeyboardInfo *ki)
+{
+    InputOption *option = NULL;
+
+    for (option = ki->options; option; option = option->next)
+    {
+        if (strcasecmp(option->key, "XkbRules") == 0)
+            ki->xkbRules = option->value;
+        else if (strcasecmp(option->key, "XkbModel") == 0)
+            ki->xkbModel = option->value;
+        else if (strcasecmp(option->key, "XkbLayout") == 0)
+            ki->xkbLayout = option->value;
+        else if (strcasecmp(option->key, "XkbVariant") == 0)
+            ki->xkbVariant = option->value;
+        else if (strcasecmp(option->key, "XkbOptions") == 0)
+            ki->xkbOptions = option->value;
+       else
+           ErrorF("Kbd option key (%s) of value (%s) not assigned!\n", 
+                    option->key, option->value);
+    }
+}
+
 KdKeyboardInfo *
 KdParseKeyboard (char *arg)
 {
     char            save[1024];
     char            delim;
+    InputOption     *options = NULL, *newopt = NULL, **tmpo = NULL;
+    int             i = 0;
     KdKeyboardInfo     *ki = NULL;
 
     ki = KdNewKeyboard();
@@ -1143,11 +1177,75 @@ KdParseKeyboard (char *arg)
     else
         ki->driverPrivate = xstrdup(save);
 
-    /* FIXME actually implement options */
+    if (delim != ',')
+    {
+        return ki;
+    }
+
+    arg = KdParseFindNext (arg, ",", save, &delim);
+
+    while (delim == ',')
+    {
+        arg = KdParseFindNext (arg, ",", save, &delim);
+
+        newopt = (InputOption *) xalloc(sizeof (InputOption));
+        if (!newopt)
+        {
+            KdFreeKeyboard(ki);
+            return NULL;
+        }
+        bzero(newopt, sizeof (InputOption));
+
+        for (tmpo = &options; *tmpo; tmpo = &(*tmpo)->next)
+            ; /* Hello, I'm here */ 
+        *tmpo = newopt;
+
+        if (strchr(save, '='))
+        {
+            i = (strchr(save, '=') - save);
+            newopt->key = (char *)xalloc(i);
+            strncpy(newopt->key, save, i);
+            newopt->key[i] = '\0';
+            newopt->value = xstrdup(strchr(save, '=') + 1);
+        }
+        else
+        {
+            newopt->key = xstrdup(save);
+            newopt->value = NULL;
+        }
+        newopt->next = NULL;
+    }
+
+    if (options)
+    {
+        ki->options = options;
+        KdParseKbdOptions(ki);
+    }
 
     return ki;
 }
 
+static void
+KdParsePointerOptions (KdPointerInfo *pi)
+{
+    InputOption *option = NULL;
+
+    for (option = pi->options; option; option = option->next)
+    {
+        if (!strcmp (option->key, "emulatemiddle"))
+            pi->emulateMiddleButton = TRUE;
+        else if (!strcmp (option->key, "noemulatemiddle"))
+            pi->emulateMiddleButton = FALSE;
+        else if (!strcmp (option->key, "transformcoord"))
+            pi->transformCoordinates = TRUE;
+        else if (!strcmp (option->key, "rawcoord"))
+            pi->transformCoordinates = FALSE;
+        else
+            ErrorF("Pointer option key (%s) of value (%s) not assigned!\n", 
+                    option->key, option->value);
+    }
+}
+
 KdPointerInfo *
 KdParsePointer (char *arg)
 {
@@ -1214,14 +1312,6 @@ KdParsePointer (char *arg)
                 s++;
              }
         }
-        else if (!strcmp (save, "emulatemiddle"))
-            pi->emulateMiddleButton = TRUE;
-        else if (!strcmp (save, "noemulatemiddle"))
-            pi->emulateMiddleButton = FALSE;
-        else if (!strcmp (save, "transformcoord"))
-            pi->transformCoordinates = TRUE;
-        else if (!strcmp (save, "rawcoord"))
-            pi->transformCoordinates = FALSE;
         else
         {
             newopt = (InputOption *) xalloc(sizeof (InputOption));
@@ -1255,7 +1345,10 @@ KdParsePointer (char *arg)
     }
 
     if (options)
+    {
         pi->options = options;
+        KdParsePointerOptions(pi);
+    }
 
     return pi;
 }
diff-tree 955d5f6c0d14fae63bfe7c4ab39ee0a708919479 (from aa3c6aaaab213200591d29ddb2921adfb87ee5b4)
Author: Tiago Vignatti <tiagov at balalaika.(none)>
Date:   Tue Aug 7 01:39:29 2007 -0300

    When we call Xephyr with '-pointer' a new pointer is added inside the server
    and the Xephyr virtual mouse keeps alive. With this patch the semantic changes
    turning '-pointer' && 'Xephyr virtual mouse' always false.
    
    Now we can open a device pointer and pass its options in Xephyr's command line
    without having other pointer unused.

diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c
index 45e2d30..850dc76 100644
--- a/hw/kdrive/ephyr/ephyrinit.c
+++ b/hw/kdrive/ephyr/ephyrinit.c
@@ -30,6 +30,8 @@
 
 extern Window EphyrPreExistingHostWin;
 extern Bool   EphyrWantGrayScale;
+extern Bool   kdHasPointer;
+extern Bool   kdHasKbd;
 
 void
 InitCard (char *name)
@@ -54,19 +56,24 @@ InitInput (int argc, char **argv)
   KdKeyboardInfo *ki;
   KdPointerInfo *pi;
         
-  ki = KdNewKeyboard();
-  if (!ki)
-    FatalError("Couldn't create Xephyr keyboard\n");
-  ki->driver = &EphyrKeyboardDriver;
   KdAddKeyboardDriver(&EphyrKeyboardDriver);
-  KdAddKeyboard(ki);
-
-  pi = KdNewPointer();
-  if (!pi)
-    FatalError("Couldn't create Xephyr pointer\n");
-  pi->driver = &EphyrMouseDriver;
   KdAddPointerDriver(&EphyrMouseDriver);
-  KdAddPointer(pi);
+
+  if (!kdHasKbd) {
+    ki = KdNewKeyboard();
+    if (!ki)
+      FatalError("Couldn't create Xephyr keyboard\n");
+    ki->driver = &EphyrKeyboardDriver;
+    KdAddKeyboard(ki);
+  }
+
+  if (!kdHasPointer) {
+    pi = KdNewPointer();
+    if (!pi)
+      FatalError("Couldn't create Xephyr pointer\n");
+    pi->driver = &EphyrMouseDriver;
+    KdAddPointer(pi);
+  }
 
   KdInitInput();
 }
diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c
index 8653d72..5158ef5 100644
--- a/hw/kdrive/src/kdrive.c
+++ b/hw/kdrive/src/kdrive.c
@@ -81,6 +81,8 @@ int		    kdVirtualTerminal = -1;
 Bool		    kdSwitchPending;
 char		    *kdSwitchCmd;
 DDXPointRec	    kdOrigin;
+Bool		    kdHasPointer = FALSE;
+Bool		    kdHasKbd = FALSE;
 
 static Bool         kdCaughtSignal = FALSE;
 
@@ -737,12 +739,14 @@ KdProcessArgument (int argc, char **argv
         if (i + 1 >= argc)
             UseMsg();
         KdAddConfigPointer(argv[i + 1]);
+	kdHasPointer = TRUE;
         return 2;
     }
     if (!strcmp (argv[i], "-keybd")) {
         if (i + 1 >= argc)
             UseMsg();
         KdAddConfigKeyboard(argv[i + 1]);
+	kdHasKbd = TRUE;
         return 2;
     }
 
diff-tree aa3c6aaaab213200591d29ddb2921adfb87ee5b4 (from 74feba4d77d74979a0ea478d666439ffc55001e5)
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Mon Aug 6 19:00:59 2007 -0400

    Require pixman-1 0.9.4, update pixman includes to new scheme

diff --git a/configure.ac b/configure.ac
index 518f332..10fcbeb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -617,7 +617,7 @@ XEXT_INC='-I$(top_srcdir)/Xext'
 XEXT_LIB='$(top_builddir)/Xext/libXext.la'
 XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
 
-PIXMAN="[pixman >= 0.9.2]"
+PIXMAN="[pixman-1 >= 0.9.4]"
 
 dnl Core modules for most extensions, et al.
 REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto [xproto >= 7.0.9] xtrans [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto [inputproto >= 1.4.2] [kbproto >= 1.0.3]"
diff --git a/fb/fb.h b/fb/fb.h
index 27b49f6..df430b8 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -26,7 +26,7 @@
 #define _FB_H_
 
 #include <X11/X.h>
-#include <pixman/pixman.h>
+#include <pixman.h>
 
 #include "scrnintstr.h"
 #include "pixmap.h"
diff --git a/include/miscstruct.h b/include/miscstruct.h
index 4f5b1d5..d240f1b 100644
--- a/include/miscstruct.h
+++ b/include/miscstruct.h
@@ -51,7 +51,7 @@ SOFTWARE.
 #include "misc.h"
 #include <X11/Xprotostr.h>
 #include "gc.h"
-#include <pixman/pixman.h>
+#include <pixman.h>
 
 typedef xPoint DDXPointRec;
 
diff --git a/mi/miregion.c b/mi/miregion.c
index 28d38a2..45768a3 100644
--- a/mi/miregion.c
+++ b/mi/miregion.c
@@ -85,7 +85,7 @@ Equipment Corporation.
 #include "gc.h"
 #include "mi.h"
 #include "mispans.h"
-#include <pixman/pixman.h>
+#include <pixman.h>
 
 #undef assert
 #ifdef DEBUG
diff --git a/render/picture.h b/render/picture.h
index 1719587..563a81b 100644
--- a/render/picture.h
+++ b/render/picture.h
@@ -25,7 +25,7 @@
 #ifndef _PICTURE_H_
 #define _PICTURE_H_
 
-#include <pixman/pixman.h>
+#include <pixman.h>
 
 typedef struct _DirectFormat	*DirectFormatPtr;
 typedef struct _PictFormat	*PictFormatPtr;
diff-tree 74feba4d77d74979a0ea478d666439ffc55001e5 (from f6aa2200f2fb4f4d4bb51e67d68e86aabcac0c4b)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Wed Aug 1 14:30:03 2007 -0700

    Don't unwrap too early in libwfb for Composite.
    
    Don't call fbFinishWrap until the pixman_image_t that stores the pointer is
    actually freed.  This prevents corruption or crashes caused by accessing a
    wrapped pointer after the wrapping is torn down.

diff --git a/fb/fb.h b/fb/fb.h
index 3782fae..27b49f6 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -2117,6 +2117,7 @@ fbPaintWindow(WindowPtr pWin, RegionPtr 
 
 pixman_image_t *image_from_pict (PicturePtr pict,
 				 Bool       has_clip);
+void free_pixman_pict (PicturePtr, pixman_image_t *);
 
 #endif /* _FB_H_ */
 
diff --git a/fb/fbpict.c b/fb/fbpict.c
index 9efa0e8..4d1ad0b 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -185,15 +185,11 @@ fbComposite (CARD8      op,
 	pixman_image_composite (op, src, mask, dest,
 				xSrc, ySrc, xMask, yMask, xDst, yDst,
 				width, height);
-	    
     }
-    
-    if (src)
-	pixman_image_unref (src);
-    if (mask)
-	pixman_image_unref (mask);
-    if (dest)
-	pixman_image_unref (dest);
+
+    free_pixman_pict (pSrc, src);
+    free_pixman_pict (pMask, mask);
+    free_pixman_pict (pDst, dest);
 }
 
 void
@@ -332,8 +328,6 @@ create_bits_picture (PicturePtr pict,
     /* Indexed table */
     if (pict->pFormat->index.devPrivate)
 	pixman_image_set_indexed (image, pict->pFormat->index.devPrivate);
-    
-    fbFinishAccess (pict->pDrawable);
 
     return image;
 }
@@ -379,7 +373,7 @@ set_image_properties (pixman_image_t *im
 	pixman_image_set_alpha_map (
 	    image, alpha_map, pict->alphaOrigin.x, pict->alphaOrigin.y);
 	
-	pixman_image_unref (alpha_map);
+	free_pixman_pict (pict->alphaMap, alpha_map);
     }
     
     pixman_image_set_component_alpha (image, pict->componentAlpha);
@@ -445,6 +439,13 @@ image_from_pict (PicturePtr pict,
     return image;
 }
 
+void
+free_pixman_pict (PicturePtr pict, pixman_image_t *image)
+{
+    if (image && pixman_image_unref (image) && pict->pDrawable)
+	fbFinishAccess (pict->pDrawable);
+}
+
 Bool
 fbPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
 {
diff --git a/fb/fbtrap.c b/fb/fbtrap.c
index e70336c..830603a 100644
--- a/fb/fbtrap.c
+++ b/fb/fbtrap.c
@@ -47,9 +47,7 @@ fbAddTraps (PicturePtr	pPicture,
     
     pixman_add_traps (image, x_off, y_off, ntrap, (pixman_trap_t *)traps);
 
-    fbFinishAccess (pPicture->pDrawable);
-
-    pixman_image_unref (image);
+    free_pixman_pict (pPicture, image);
 }
 
 void
@@ -65,9 +63,7 @@ fbRasterizeTrapezoid (PicturePtr    pPic
 
     pixman_rasterize_trapezoid (image, (pixman_trapezoid_t *)trap, x_off, y_off);
 
-    fbFinishAccess (pPicture->pDrawable);
-
-    pixman_image_unref (image);
+    free_pixman_pict (pPicture, image);
 }
 
 static int
diff --git a/fb/wfbrename.h b/fb/wfbrename.h
index 952512e..5ea9092 100644
--- a/fb/wfbrename.h
+++ b/fb/wfbrename.h
@@ -188,6 +188,7 @@
 #define fbWinPrivateIndex wfbWinPrivateIndex
 #define fbZeroLine wfbZeroLine
 #define fbZeroSegment wfbZeroSegment
+#define free_pixman_pict wfb_free_pixman_pict
 #define image_from_pict wfb_image_from_pict
 #define xxScrPrivateIndex wfbxxScrPrivateIndex
 #define xxGCPrivateIndex wfbxxGCPrivateIndex
diff-tree f6aa2200f2fb4f4d4bb51e67d68e86aabcac0c4b (from e717eb82dc2e55f852919312d04f5cfc8ee55bc8)
Author: Roland "Test-tools" Bär <roland at verifysoft.de>
Date:   Mon Aug 6 12:37:52 2007 -0700

    Probable off by one buffer overflow in .../xorgconfig/xorgconfig.c
    
    X.Org Bug #11858 <http://bugs.freedesktop.org/show_bug.cgi?id=11858>
    Patch #11005 <http://bugs.freedesktop.org/attachment.cgi?id=11005>

diff --git a/hw/xfree86/utils/xorgconfig/xorgconfig.c b/hw/xfree86/utils/xorgconfig/xorgconfig.c
index 736b011..8d9c03f 100644
--- a/hw/xfree86/utils/xorgconfig/xorgconfig.c
+++ b/hw/xfree86/utils/xorgconfig/xorgconfig.c
@@ -2442,7 +2442,7 @@ write_fontpath_section(FILE *f)
 		len = nextdir - thisdir;
 		nextdir++;
 	    }
-	    if (len > sizeof(cur))
+	    if (len >= sizeof(cur))
 		continue;
 	    strncpy(cur, thisdir, len);
 	    cur[len] = '\0';
diff-tree e717eb82dc2e55f852919312d04f5cfc8ee55bc8 (from 600ef07113caa7a901c7d486bc8ebd1ae47f885c)
Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Aug 2 10:50:01 2007 +1000

    xserver: stop bcopy from going really slow
    
    The outport is most likely unnecessary on any currently used hardware,
    the byte copy is necessary from what I know on IA64 and friends so leave it.
    
    Add a new API entry point which lets a driver select the old behaviour if
    such a needs is ever found.
    
    This gives me ~20% speed up on startup on 945 hardware.

diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
index d925bed..8a2768d 100644
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -259,6 +259,7 @@ _X_HIDDEN void *xfree86LookupTab[] = {
     SYMFUNC(xf86UDelay)
     SYMFUNC(xf86IODelay)
     SYMFUNC(xf86SlowBcopy)
+    SYMFUNC(xf86SetReallySlowBcopy)
 #ifdef __alpha__
     SYMFUNC(xf86SlowBCopyToBus)
     SYMFUNC(xf86SlowBCopyFromBus)
diff --git a/hw/xfree86/os-support/misc/SlowBcopy.c b/hw/xfree86/os-support/misc/SlowBcopy.c
index 7694eaa..5cd7168 100644
--- a/hw/xfree86/os-support/misc/SlowBcopy.c
+++ b/hw/xfree86/os-support/misc/SlowBcopy.c
@@ -22,21 +22,37 @@
 #include "xf86_OSlib.h"
 #include "compiler.h"
 
-/* The outb() isn't needed on my machine, but who knows ... -- ost */
+static int really_slow_bcopy;
+
 _X_EXPORT void
-xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
+xf86SetReallySlowBcopy(void)
+{
+	really_slow_bcopy = 1;
+}
+
+#if defined(__i386__) || defined(__x86_64__)
+static void xf86_really_slow_bcopy(unsigned char *src, unsigned char *dst, int len)
 {
     while(len--)
     {
 	*dst++ = *src++;
-#if !defined(__sparc__) && \
-    !defined(__powerpc__) && \
-    !defined(__mips__) && \
-    !defined(__ia64__) && \
-    !defined(__arm__)
 	outb(0x80, 0x00);
+    }
+}
 #endif
+
+/* The outb() isn't needed on my machine, but who knows ... -- ost */
+_X_EXPORT void
+xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
+{
+#if defined(__i386__) || defined(__x86_64__)
+    if (really_slow_bcopy) {
+	xf86_really_slow_bcopy(src, dst, len);
+	return;
     }
+#endif
+    while(len--)
+	*dst++ = *src++;
 }
 
 #ifdef __alpha__
diff --git a/hw/xfree86/os-support/xf86_OSproc.h b/hw/xfree86/os-support/xf86_OSproc.h
index 1bbbf56..6f0391d 100644
--- a/hw/xfree86/os-support/xf86_OSproc.h
+++ b/hw/xfree86/os-support/xf86_OSproc.h
@@ -159,6 +159,7 @@ extern void xf86BusToMem(unsigned char *
 extern void xf86MemToBus(unsigned char *, unsigned char *, int);
 extern void xf86IODelay(void);
 extern void xf86UDelay(long usec);
+extern void xf86SetReallySlowBcopy(void);
 extern void xf86SlowBcopy(unsigned char *, unsigned char *, int);
 extern int xf86OpenSerial(pointer options);
 extern int xf86SetSerial(int fd, pointer options);
diff-tree 600ef07113caa7a901c7d486bc8ebd1ae47f885c (from f3955c0a020b39021050cd33c20a17f14fc4b579)
Author: Tiago Vignatti <tiagov at balalaika.(none)>
Date:   Fri Aug 3 15:33:41 2007 -0300

    Fix kdrive command line parser.

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index cfd162f..8018bef 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -1233,14 +1233,17 @@ KdParsePointer (char *arg)
             bzero(newopt, sizeof (InputOption));
 
             for (tmpo = &options; *tmpo; tmpo = &(*tmpo)->next)
+                ; /* Hello, I'm here */
+
             *tmpo = newopt;
 
-            if (strchr(arg, '='))
+            if (strchr(save, '='))
             {
-                i = (strchr(arg, '=') - arg);
-                newopt->key = (char *)xalloc(i+1);
-                strncpy(newopt->key, arg, i+1);
-                newopt->value = xstrdup(strchr(arg, '=') + 1);
+                i = (strchr(save, '=') - save);
+                newopt->key = (char *)xalloc(i);
+                strncpy(newopt->key, save, i);
+		newopt->key[i] = '\0';
+                newopt->value = xstrdup(strchr(save, '=') + 1);
             }
             else
             {
diff-tree f3955c0a020b39021050cd33c20a17f14fc4b579 (from a04c95f4446e5c169dea71019321d790ab4fa139)
Author: Arkadiusz Miskiewicz <arekm at maven.pl>
Date:   Wed Aug 1 21:04:22 2007 +0300

    XFree86: xf1bpp: distclean generated files as well
    
    Make sure we clean up after ourselves: not sure why distcheck didn't flag
    this one.

diff --git a/hw/xfree86/xf1bpp/Makefile.am b/hw/xfree86/xf1bpp/Makefile.am
index 341fe3b..ef3d08f 100644
--- a/hw/xfree86/xf1bpp/Makefile.am
+++ b/hw/xfree86/xf1bpp/Makefile.am
@@ -55,7 +55,7 @@ libxf1bppmfb_a_SOURCES = \
         mfbwindow.c \
         mfbzerarc.c
 
-BUILT_SOURCES = $(libxf1bppgen_a_SOURCES) $(libxf1bppgen_a_SOURCES)
+BUILT_SOURCES = $(libxf1bppmfb_a_SOURCES) $(libxf1bppgen_a_SOURCES)
 
 libxf1bpp_la_SOURCES = $(libxf1bppmfb_a_SOURCES) $(libxf1bppgen_a_SOURCES) \
         mfbmodule.c
@@ -173,7 +173,8 @@ mfbtileG.c:
 	echo "#include \"$(top_srcdir)/mfb/mfbtile.c\"" >> $@
 
 $(libxf1bppmfb_a_SOURCES):
-	echo "#include \"mfbmap.h\"" > $$i
-	echo "#include \"$(top_srcdir)/mfb/$$i\"" >> $$i
+	echo "#include \"mfbmap.h\"" > $@
+	echo "#include \"$(top_srcdir)/mfb/$@\"" >> $@
 
 EXTRA_DIST = mfbmap.sh mfbunmap.sh 
+DISTCLEANFILES = $(BUILT_SOURCES)
diff-tree a04c95f4446e5c169dea71019321d790ab4fa139 (from 99a88826e5e8cfa25c5f8a88c12799d33114729c)
Author: Julien Cristau <jcristau at debian.org>
Date:   Wed Aug 1 20:37:05 2007 +0300

    configure.ac: Fix argument quoting for argv[]
    
    m4 quoting.  Yar boo sux.

diff --git a/configure.ac b/configure.ac
index 728b79a..518f332 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1077,7 +1077,7 @@ if ! test "x$have_clock_gettime" = xno; 
 #define _POSIX_C_SOURCE 199309L
 #include <time.h>
 
-int main(int argc, char *argv[]) {
+int main(int argc, char *argv[[]]) {
     struct timespec tp;
 
     if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0)
diff-tree 99a88826e5e8cfa25c5f8a88c12799d33114729c (from 1c80e04f876e9254b93ef87eadfcff71234340c6)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 20:34:58 2007 +0300

    configure.ac: Actually use -lrt in monotonic clock test
    
    If we need -lrt to use clock_gettime, then make sure we link with it.

diff --git a/configure.ac b/configure.ac
index ffcc72d..728b79a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1070,6 +1070,9 @@ if ! test "x$have_clock_gettime" = xno; 
         CLOCK_LIBS=""
     fi
 
+    LIBS_SAVE="$LIBS"
+    LIBS="$CLOCK_LIBS"
+
     AC_RUN_IFELSE([
 #define _POSIX_C_SOURCE 199309L
 #include <time.h>
@@ -1084,6 +1087,8 @@ int main(int argc, char *argv[]) {
 }
     ], [MONOTONIC_CLOCK=yes], [MONOTONIC_CLOCK=no],
        [MONOTONIC_CLOCK="cross compiling"])
+
+    LIBS="$LIBS_SAVE"
 else
     MONOTONIC_CLOCK=no
 fi
diff-tree 1c80e04f876e9254b93ef87eadfcff71234340c6 (from c46663367329615bd2c9b63e93c9534036e5a2ae)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 20:08:31 2007 +0300

    configure.ac: Disable D-Bus config API support by default
    
    This is problematic, so don't even bother with it unless someone wants it.
    respeclaration is dead, long live HAL.

diff --git a/configure.ac b/configure.ac
index c80f2ed..ffcc72d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -522,7 +522,7 @@ AC_ARG_ENABLE(fontcache,      AS_HELP_ST
 AC_ARG_ENABLE(dbe,            AS_HELP_STRING([--disable-dbe], [Build DBE extension (default: enabled)]), [DBE=$enableval], [DBE=yes])
 AC_ARG_ENABLE(xf86bigfont,    AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
 AC_ARG_ENABLE(dpms,           AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
-AC_ARG_ENABLE(config-dbus,    AS_HELP_STRING([--disable-config-dbus], [Build D-BUS support (default: auto)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=auto])
+AC_ARG_ENABLE(config-dbus,    AS_HELP_STRING([--enable-config-dbus], [Build D-BUS API support (default: no)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=no])
 AC_ARG_ENABLE(config-hal,     AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
 AC_ARG_ENABLE(xfree86-utils,     AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
 
diff-tree c46663367329615bd2c9b63e93c9534036e5a2ae (from 17cb4f64e3c39725e83b1e311c09422d7e1c0e52)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Wed Aug 1 18:32:09 2007 +0200

    GLX/DRI: Remove some unused variables.

diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index 051784c..685683d 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -374,15 +374,13 @@ __glXDRIbindTexImage(__GLXcontext *baseC
 {
     RegionPtr	pRegion = NULL;
     PixmapPtr	pixmap;
-    int		w, h, bpp, override = 0;
+    int		bpp, override = 0;
     GLenum	format, type;
     ScreenPtr pScreen = glxPixmap->pScreen;
     __GLXDRIscreen * const screen =
 	(__GLXDRIscreen *) __glXgetActiveScreen(pScreen->myNum);
 
     pixmap = (PixmapPtr) glxPixmap->pDraw;
-    w = pixmap->drawable.width;
-    h = pixmap->drawable.height;
 
     if (screen->texOffsetStart && screen->driScreen.setTexOffset) {
 	__GLXpixmap **texOffsetOverride = screen->texOffsetOverride;
@@ -972,7 +970,6 @@ static Bool
 glxDRIEnterVT (int index, int flags)
 {
     __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
-    Bool ret;
 
     LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
 
diff-tree 17cb4f64e3c39725e83b1e311c09422d7e1c0e52 (from a4197db9504adae6af005b2218eee36b8af0d98b)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Wed Aug 1 18:13:18 2007 +0200

    GLX_EXT_texture_from_pixmap: Use client provided texture target when available.
    
    This prevents situations where the server doesn't use the target the
    client thinks it does, usually resulting in the texture being sampled as all
    white.

diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index 3038b13..900a347 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1260,13 +1260,15 @@ static int ValidateCreateDrawable(Client
 ** Create a GLX Pixmap from an X Pixmap.
 */
 int DoCreateGLXPixmap(__GLXclientState *cl, XID fbconfigId,
-		      GLuint screenNum, XID pixmapId, XID glxPixmapId)
+		      GLuint screenNum, XID pixmapId, XID glxPixmapId,
+		      CARD32 *attribs, CARD32 numAttribs)
 {
     ClientPtr client = cl->client;
     DrawablePtr pDraw;
     __GLXpixmap *pGlxPixmap;
     __GLcontextModes *modes;
-    int retval;
+    GLenum target = 0;
+    int retval, i;
 
     retval = ValidateCreateDrawable (client, screenNum, fbconfigId,
 				     pixmapId, glxPixmapId,
@@ -1292,6 +1294,30 @@ int DoCreateGLXPixmap(__GLXclientState *
 
     pGlxPixmap->modes = modes;
 
+    for (i = 0; i < numAttribs; i++) {
+	if (attribs[2 * i] == GLX_TEXTURE_TARGET_EXT) {
+	    switch (attribs[2 * i + 1]) {
+	    case GLX_TEXTURE_2D_EXT:
+		target = GL_TEXTURE_2D;
+		break;
+	    case GLX_TEXTURE_RECTANGLE_EXT:
+		target = GL_TEXTURE_RECTANGLE_ARB;
+		break;
+	    }
+	}
+    }
+
+    if (!target) {
+	int w = pDraw->width, h = pDraw->height;
+
+	if (h & (h - 1) || w & (w - 1))
+	    target = GL_TEXTURE_RECTANGLE_ARB;
+	else
+	    target = GL_TEXTURE_2D;
+    }
+
+    pGlxPixmap->target = target;
+
     /*
     ** Bump the ref count on the X pixmap so it won't disappear.
     */
@@ -1304,14 +1330,16 @@ int __glXDisp_CreateGLXPixmap(__GLXclien
 {
     xGLXCreateGLXPixmapReq *req = (xGLXCreateGLXPixmapReq *) pc;
     return DoCreateGLXPixmap( cl, req->visual, req->screen,
-			      req->pixmap, req->glxpixmap );
+			      req->pixmap, req->glxpixmap, NULL, 0 );
 }
 
 int __glXDisp_CreatePixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePixmapReq *req = (xGLXCreatePixmapReq *) pc;
     return DoCreateGLXPixmap( cl, req->fbconfig, req->screen,
-			      req->pixmap, req->glxpixmap );
+			      req->pixmap, req->glxpixmap,
+			      (CARD32*)(req + 1),
+			      req->numAttribs );
 }
 
 int __glXDisp_CreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
@@ -1319,7 +1347,7 @@ int __glXDisp_CreateGLXPixmapWithConfigS
     xGLXCreateGLXPixmapWithConfigSGIXReq *req = 
 	(xGLXCreateGLXPixmapWithConfigSGIXReq *) pc;
     return DoCreateGLXPixmap( cl, req->fbconfig, req->screen,
-			      req->pixmap, req->glxpixmap );
+			      req->pixmap, req->glxpixmap, NULL, 0 );
 }
 
 
@@ -1681,7 +1709,6 @@ DoGetDrawableAttributes(__GLXclientState
     xGLXGetDrawableAttributesReply reply;
     CARD32 attributes[4];
     int numAttribs;
-    PixmapPtr	pixmap;
 
     glxPixmap = (__GLXpixmap *)LookupIDByType(drawId, __glXPixmapRes);
     if (!glxPixmap) {
@@ -1696,19 +1723,11 @@ DoGetDrawableAttributes(__GLXclientState
     reply.numAttribs = numAttribs;
 
     attributes[0] = GLX_TEXTURE_TARGET_EXT;
+    attributes[1] = glxPixmap->target == GL_TEXTURE_2D ? GLX_TEXTURE_2D_EXT :
+	GLX_TEXTURE_RECTANGLE_EXT;
     attributes[2] = GLX_Y_INVERTED_EXT;
     attributes[3] = GL_FALSE;
 
-    /* XXX this is merely less wrong, see fdo bug #8991 */
-    pixmap = (PixmapPtr) glxPixmap->pDraw;
-    if ((pixmap->drawable.width & (pixmap->drawable.width - 1)) ||
-	(pixmap->drawable.height & (pixmap->drawable.height - 1))
-	/* || strstr(CALL_GetString(GL_EXTENSIONS,
-	             "GL_ARB_texture_non_power_of_two")) */)
-	attributes[1] = GLX_TEXTURE_RECTANGLE_EXT;
-    else
-	attributes[1] = GLX_TEXTURE_2D_EXT;
-
     if (client->swapped) {
 	__glXSwapGetDrawableAttributesReply(client, &reply, attributes);
     } else {
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index 1857bc1..12bc030 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -266,7 +266,7 @@ int __glXDispSwap_CreateGLXPixmap(__GLXc
     __GLX_SWAP_INT(&req->glxpixmap);
 
     return DoCreateGLXPixmap( cl, req->visual, req->screen,
-			      req->pixmap, req->glxpixmap );
+			      req->pixmap, req->glxpixmap, NULL, 0 );
 }
 
 int __glXDispSwap_CreatePixmap(__GLXclientState *cl, GLbyte *pc)
@@ -279,9 +279,12 @@ int __glXDispSwap_CreatePixmap(__GLXclie
     __GLX_SWAP_INT(&req->fbconfig);
     __GLX_SWAP_INT(&req->pixmap);
     __GLX_SWAP_INT(&req->glxpixmap);
+    __GLX_SWAP_INT(&req->numAttribs);
 
     return DoCreateGLXPixmap( cl, req->fbconfig, req->screen,
-			      req->pixmap, req->glxpixmap );
+			      req->pixmap, req->glxpixmap,
+			      (CARD32*)(req + 1),
+			      req->numAttribs );
 }
 
 int __glXDispSwap_CreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
@@ -297,7 +300,7 @@ int __glXDispSwap_CreateGLXPixmapWithCon
     __GLX_SWAP_INT(&req->glxpixmap);
 
     return DoCreateGLXPixmap( cl, req->fbconfig, req->screen,
-			      req->pixmap, req->glxpixmap );
+			      req->pixmap, req->glxpixmap, NULL, 0 );
 }
 
 int __glXDispSwap_DestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
diff --git a/GL/glx/glxdrawable.h b/GL/glx/glxdrawable.h
index 6500cc7..b7ecad9 100644
--- a/GL/glx/glxdrawable.h
+++ b/GL/glx/glxdrawable.h
@@ -54,6 +54,7 @@ typedef struct {
     ScreenPtr pScreen;
     Bool idExists;
     int refcnt;
+    GLenum target;
 #ifdef XF86DRI
     DamagePtr pDamage;
     __DRIcontext *pDRICtx;
diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index db564c0..051784c 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -375,7 +375,7 @@ __glXDRIbindTexImage(__GLXcontext *baseC
     RegionPtr	pRegion = NULL;
     PixmapPtr	pixmap;
     int		w, h, bpp, override = 0;
-    GLenum	target, format, type;
+    GLenum	format, type;
     ScreenPtr pScreen = glxPixmap->pScreen;
     __GLXDRIscreen * const screen =
 	(__GLXDRIscreen *) __glXgetActiveScreen(pScreen->myNum);
@@ -384,11 +384,6 @@ __glXDRIbindTexImage(__GLXcontext *baseC
     w = pixmap->drawable.width;
     h = pixmap->drawable.height;
 
-    if (h & (h - 1) || w & (w - 1))
-	target = GL_TEXTURE_RECTANGLE_ARB;
-    else
-	target = GL_TEXTURE_2D;
-
     if (screen->texOffsetStart && screen->driScreen.setTexOffset) {
 	__GLXpixmap **texOffsetOverride = screen->texOffsetOverride;
 	int i, firstEmpty = 16, texname;
@@ -416,7 +411,7 @@ alreadyin:
 
 	glxPixmap->pDRICtx = &((__GLXDRIcontext*)baseContext)->driContext;
 
-	CALL_GetIntegerv(GET_DISPATCH(), (target == GL_TEXTURE_2D ?
+	CALL_GetIntegerv(GET_DISPATCH(), (glxPixmap->target == GL_TEXTURE_2D ?
 					  GL_TEXTURE_BINDING_2D :
 					  GL_TEXTURE_BINDING_RECTANGLE_NV,
 					  &texname));
@@ -481,7 +476,7 @@ nooverride:
 					   pixmap->drawable.y) );
 
 	CALL_TexImage2D( GET_DISPATCH(),
-			 (target,
+			 (glxPixmap->target,
 			  0,
 			  bpp == 4 ? 4 : 3,
 			  pixmap->drawable.width,
@@ -511,7 +506,7 @@ nooverride:
 					       pixmap->drawable.y + p[i].y1) );
 
 	    CALL_TexSubImage2D( GET_DISPATCH(),
-				(target,
+				(glxPixmap->target,
 				 0,
 				 p[i].x1, p[i].y1,
 				 p[i].x2 - p[i].x1, p[i].y2 - p[i].y1,
diff --git a/GL/glx/glxext.h b/GL/glx/glxext.h
index dc4cd4a..6774e4d 100644
--- a/GL/glx/glxext.h
+++ b/GL/glx/glxext.h
@@ -80,7 +80,8 @@ extern int DoGetFBConfigs(__GLXclientSta
 extern int DoCreateContext(__GLXclientState *cl, GLXContextID gcId,
     GLXContextID shareList, VisualID visual, GLuint screen, GLboolean isDirect);
 extern int DoCreateGLXPixmap(__GLXclientState *cl, XID fbconfigId,
-    GLuint screenNum, XID pixmapId, XID glxpixmapId);
+    GLuint screenNum, XID pixmapId, XID glxpixmapId, CARD32 *attribs,
+    CARD32 numAttribs);
 extern int DoDestroyPixmap(__GLXclientState *cl, XID glxpixmapId);
 
 extern int DoQueryContext(__GLXclientState *cl, GLXContextID gcId);
diff-tree a4197db9504adae6af005b2218eee36b8af0d98b (from ad7421fc764e2b82e20d90f12225a03a1d636f18)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 14:04:51 2007 +0300

    GL: GLX: Make sure glxbyteorder.h is distributed

diff --git a/GL/glx/Makefile.am b/GL/glx/Makefile.am
index c4141bc..7c1730e 100644
--- a/GL/glx/Makefile.am
+++ b/GL/glx/Makefile.am
@@ -40,6 +40,7 @@ libglxdri_la_SOURCES = \
 
 libglx_la_SOURCES = \
         g_disptab.h \
+        glxbyteorder.h \
         glxcmds.c \
         glxcmdsswap.c \
         glxcontext.h \
diff-tree ad7421fc764e2b82e20d90f12225a03a1d636f18 (from 43e71a54502d9ab28ece7f6296d1416d60948dad)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 08:30:00 2007 +0300

    Bump version to 1.3.99.1 for development
    
    This is not actually .1, just bumping for a different devel version.

diff --git a/configure.ac b/configure.ac
index 17da31e..c80f2ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,7 +28,7 @@ dnl Process this file with autoconf to c
 AC_PREREQ(2.57)
 dnl This is the not the Xorg version number, it's the server version number.
 dnl Yes, that's weird.
-AC_INIT([xorg-server], 1.3.99.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+AC_INIT([xorg-server], 1.3.99.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE
diff-tree 43e71a54502d9ab28ece7f6296d1416d60948dad (from 6d6bc93b0a13c5356544561e326d4aedf33e61c2)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 08:16:35 2007 +0300

    XFree86: xf1bpp: Fix previous build system commit
    
    Amateur error.

diff --git a/hw/xfree86/xf1bpp/Makefile.am b/hw/xfree86/xf1bpp/Makefile.am
index 4439f8d..341fe3b 100644
--- a/hw/xfree86/xf1bpp/Makefile.am
+++ b/hw/xfree86/xf1bpp/Makefile.am
@@ -173,7 +173,7 @@ mfbtileG.c:
 	echo "#include \"$(top_srcdir)/mfb/mfbtile.c\"" >> $@
 
 $(libxf1bppmfb_a_SOURCES):
-	echo "#include \"mfbmap.h\"" > $$i ; \
-	echo "#include \"$(top_srcdir)/mfb/$$i\"" >> $$i ; \
+	echo "#include \"mfbmap.h\"" > $$i
+	echo "#include \"$(top_srcdir)/mfb/$$i\"" >> $$i
 
 EXTRA_DIST = mfbmap.sh mfbunmap.sh 
diff-tree 6d6bc93b0a13c5356544561e326d4aedf33e61c2 (from 505ec436af3a173e0ba32c6f14b4cf9837a553eb)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 08:11:22 2007 +0300

    Build system: Add missing files
    
    A couple of headers weren't added to the build.

diff --git a/config/Makefile.am b/config/Makefile.am
index 0efd6ce..056f30e 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,7 +1,7 @@
 AM_CFLAGS = @DIX_CFLAGS@
 
 noinst_LIBRARIES = libconfig.a
-libconfig_a_SOURCES = config.c
+libconfig_a_SOURCES = config.c config-backends.h
 
 if HAVE_DBUS
 AM_CFLAGS += @DBUS_CFLAGS@
diff --git a/include/Makefile.am b/include/Makefile.am
index 4289b81..96d98b5 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -47,6 +47,7 @@ sdk_HEADERS =		\
 	validate.h	\
 	window.h	\
 	windowstr.h	\
+	xkbsrv.h	\
 	xorg-server.h
 endif
 
diff-tree 505ec436af3a173e0ba32c6f14b4cf9837a553eb (from 1ace9770fed4a2ba354ff06a96189428beb36088)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 08:11:08 2007 +0300

    XFree86: Properly clean up after ourselves
    
    CLEAN is not a useful variable.  CLEANFILES/DISTCLEANFILES, on the other hand,
    are useful variables.

diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
index cef6b5b..ca7dda1 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
@@ -71,7 +71,7 @@ Xorg_LDADD = $(XORG_LIBS) \
 Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
 
 BUILT_SOURCES = xorg.conf.example
-CLEAN = xorg.conf.example xorg.conf.example.pre
+DISTCLEANFILES += xorg.conf.example xorg.conf.example.pre
 EXTRA_DIST = xorgconf.cpp
 
 if SOLARIS_ASM_INLINE
diff-tree 1ace9770fed4a2ba354ff06a96189428beb36088 (from cacbdf18ee771d43228c2e96e8ef9a32251ceb55)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 08:10:38 2007 +0300

    Build system: Non-dtrace distcheck hacks
    
    automake 1.10 really wants foo.c for foo.O, so give it some dummy files to
    deal with if it really needs them.

diff --git a/dix/Makefile.am b/dix/Makefile.am
index a1f02c1..3c92a4a 100644
--- a/dix/Makefile.am
+++ b/dix/Makefile.am
@@ -57,3 +57,8 @@ noinst_PROGRAMS = dix.O
 dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS)
 	ld -r -o $@ .libs/*.o
 endif
+
+dix.c:
+	touch $@
+
+CLEANFILES = dix.c
diff --git a/os/Makefile.am b/os/Makefile.am
index c5e7b03..53b2d7f 100644
--- a/os/Makefile.am
+++ b/os/Makefile.am
@@ -59,5 +59,9 @@ noinst_PROGRAMS = os.O
 
 os.O: dtrace.o $(am_libos_la_OBJECTS)
 	ld -r -o $@ dtrace.o .libs/*.o
-
 endif
+
+os.c:
+	touch $@
+
+CLEANFILES = os.c
diff-tree cacbdf18ee771d43228c2e96e8ef9a32251ceb55 (from bd49332e4772bd57ffb76c829f0e4770ab876057)
Author: Daniel Drake <d.drake at mmm.com>
Date:   Wed Aug 1 08:08:37 2007 +0300

    Remove duplicated licenses
    
    Some files had two copies of the same license.

diff --git a/hw/xfree86/xf4bpp/ppcGCstr.h b/hw/xfree86/xf4bpp/ppcGCstr.h
index c55a5f9..82d1f2d 100644
--- a/hw/xfree86/xf4bpp/ppcGCstr.h
+++ b/hw/xfree86/xf4bpp/ppcGCstr.h
@@ -20,28 +20,6 @@
  * SOFTWARE.
  *
 */
-/***********************************************************
-		Copyright IBM Corporation 1988
-
-                      All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of IBM not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xprint/pcl/PclInit.c b/hw/xprint/pcl/PclInit.c
index 734ec5f..1832252 100644
--- a/hw/xprint/pcl/PclInit.c
+++ b/hw/xprint/pcl/PclInit.c
@@ -44,38 +44,6 @@ dealings in this Software without prior 
 copyright holders.
 */
 
-/*
-(c) Copyright 1996 Hewlett-Packard Company
-(c) Copyright 1996 International Business Machines Corp.
-(c) Copyright 1996 Sun Microsystems, Inc.
-(c) Copyright 1996 Novell, Inc.
-(c) Copyright 1996 Digital Equipment Corp.
-(c) Copyright 1996 Fujitsu Limited
-(c) Copyright 1996 Hitachi, Ltd.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the copyright holders shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from said
-copyright holders.
-*/
-
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff-tree bd49332e4772bd57ffb76c829f0e4770ab876057 (from 51b735394f0aa9f953f9c320617c7a56028ec458)
Author: Daniel Drake <d.drake at mmm.com>
Date:   Wed Aug 1 08:07:08 2007 +0300

    Add proper COPYING file
    
    I went through the entire xorg-server distribution and aggregated all
    the licenses I could find (except the questionable GPL files, see my
    last mail).
    
    There are many many permutations on essentially the same license terms,
    but I have been pedantic and treated slight differences as separate
    licenses.
    
    Here is a description of the process I used:
    
    tar xvjf /usr/portage/distfiles/xorg-server-1.1.1.tar.bz2
    
    cd xorg-server-1.1.1
    find -name '*.c' -o -name '*.h' | xargs gvim
    
    egrep -Rli "permission|copyright" * | grep -v "\.[ch]" \
            | grep -v "\.in$" | xargs gvim
    
    cd ..
    tar xvjf /usr/portage/distfiles/xorg-server-1.3.0.0.tar.bz2
    diff -urNp xorg-server-1.1.1 xorg-server-1.3.0.0
    
    git clone git://anongit.freedesktop.org/git/xorg/xserver
    cd xserver
    git diff xorg-server-1.3.0.0..
    
    For each file, licenses have been aggregated as follows:
    
    If 2 files have identical license text but different copyright notices,
    the copyright notices are aggregated and the license text
    is included only once.
    
    Note that by identical I mean really identical, i.e.:
     'AUTHOR(S)' is not the same as 'AUTHORS'
     'KEITH PACKARD DISCLAIMS' is not the same as 'KEITH PACKARD AND COMPAQ
    DISCLAIM'
    
    Otherwise, licenses and accompanying copyright notices have been
    stacked.
    
    When going through the changes from 1.1.1 to 1.3.0.0 then HEAD, licenses
    have been added and removed (so I have reflected this since the original
    version of my COPYING file). It's slightly concerning to see that even
    between 1.3.0.0 and HEAD, new license permutations are being added. I'd
    suggest that a primary license be chosen and this would be indicated at
    the top of this COPYING file.

diff --git a/COPYING b/COPYING
index bb34bdb..097ef98 100644
--- a/COPYING
+++ b/COPYING
@@ -28,19 +28,19 @@ Permission to use, copy, modify, distrib
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
-documentation, and that the names of Orest Zborowski and David Wexelblat 
-not be used in advertising or publicity pertaining to distribution of 
+documentation, and that the names of Orest Zborowski and David Wexelblat
+not be used in advertising or publicity pertaining to distribution of
 the software without specific, written prior permission.  Orest Zborowski
-and David Wexelblat make no representations about the suitability of this 
-software for any purpose.  It is provided "as is" without express or 
+and David Wexelblat make no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
 implied warranty.
 
-THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD 
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
-FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE 
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
+THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 
@@ -167,11 +167,11 @@ fee is hereby granted, provided that the
 tice  appear  in all copies and that both that copyright no-
 tice and this permission notice appear in  supporting  docu-
 mentation,  and  that the names of Sun or X Consortium
-not be used in advertising or publicity pertaining to 
-distribution  of  the software  without specific prior 
-written permission. Sun and X Consortium make no 
-representations about the suitability of this software for 
-any purpose. It is provided "as is" without any express or 
+not be used in advertising or publicity pertaining to
+distribution  of  the software  without specific prior
+written permission. Sun and X Consortium make no
+representations about the suitability of this software for
+any purpose. It is provided "as is" without any express or
 implied warranty.
 
 SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
@@ -193,11 +193,11 @@ fee is hereby granted, provided that the
 tice  appear  in all copies and that both that copyright no-
 tice and this permission notice appear in  supporting  docu-
 mentation,  and  that the names of Sun or The Open Group
-not be used in advertising or publicity pertaining to 
-distribution  of  the software  without specific prior 
-written permission. Sun and The Open Group make no 
-representations about the suitability of this software for 
-any purpose. It is provided "as is" without any express or 
+not be used in advertising or publicity pertaining to
+distribution  of  the software  without specific prior
+written permission. Sun and The Open Group make no
+representations about the suitability of this software for
+any purpose. It is provided "as is" without any express or
 implied warranty.
 
 SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
@@ -237,13 +237,13 @@ Copyright 1991, 1993 Olivetti Research L
 
                         All Rights Reserved
 
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
 provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
+both that copyright notice and this permission notice appear in
 supporting documentation, and that the name of Digital not be
 used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
+software without specific, written prior permission.
 
 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
@@ -280,13 +280,13 @@ OR PERFORMANCE OF THIS SOFTWARE.
 Copyright 1987-1992 by Digital Equipment Corp., Maynard, MA
 X11R6 Changes Copyright (c) 1994 by Robert Chesler of Absol-Puter, Hudson, NH.
 
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
 provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
+both that copyright notice and this permission notice appear in
 supporting documentation, and that the name of Digital not be
 used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
+software without specific, written prior permission.
 
 DIGITAL AND ABSOL-PUTER DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
@@ -300,7 +300,7 @@ CONNECTION WITH THE USE OR PERFORMANCE O
 Copyright 1997 Digital Equipment Corporation.
 All rights reserved.
 
-This software is furnished under license and may be used and copied only in 
+This software is furnished under license and may be used and copied only in
 accordance with the following terms and conditions.  Subject to these
 conditions, you may download, copy, install, use, modify and distribute
 this software in source and/or binary form. No title or ownership is
@@ -310,7 +310,7 @@ transferred hereby.
    this copyright notice and list of conditions as they appear in the
    source file.
 
-2) No right is granted to use any trade name, trademark, or logo of Digital 
+2) No right is granted to use any trade name, trademark, or logo of Digital
    Equipment Corporation. Neither the "Digital Equipment Corporation"
    name nor any trademark or logo of Digital Equipment Corporation may be
    used to endorse or promote products derived from this software without
@@ -322,9 +322,9 @@ transferred hereby.
    In no event shall DIGITAL be liable for any damages whatsoever, and in
    particular, DIGITAL shall not be liable for special, indirect,
    consequential, or incidental damages or damages for lost profits, loss
-   of revenue or loss of use, whether such damages arise in contract, 
+   of revenue or loss of use, whether such damages arise in contract,
    negligence, tort, under statute, in equity, at law or otherwise, even
-   if advised of the possibility of such damage. 
+   if advised of the possibility of such damage.
 
 
 Copyright (c) 1991, 1996-1997 Digital Equipment Corporation, Maynard, Massachusetts.
@@ -359,19 +359,19 @@ software and its documentation for any p
 fee is hereby granted, provided that the above copyright
 notice appear in all copies and that both that copyright
 notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be 
-used in advertising or publicity pertaining to distribution 
+documentation, and that the name of Silicon Graphics not be
+used in advertising or publicity pertaining to distribution
 of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability 
+Silicon Graphics makes no representation about the suitability
 of this software for any purpose. It is provided "as is"
 without any express or implied warranty.
 
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
+SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
+GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
 THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
@@ -536,8 +536,8 @@ all copies or substantial portions of th
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
-RED HAT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+RED HAT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
@@ -654,7 +654,7 @@ All Rights Reserved
 
 Permission to use, copy, modify, and distribute this software and its
 documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that 
+provided that the above copyright notice appear in all copies and that
 both that copyright notice and this permission notice appear in
 supporting documentation, and that the name of IBM not be
 used in advertising or publicity pertaining to distribution of the
@@ -719,7 +719,7 @@ SOFTWARE.
 Copyright (c) 1997  Metro Link Incorporated
 
 Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"), 
+copy of this software and associated documentation files (the "Software"),
 to deal in the Software without restriction, including without limitation
 the rights to use, copy, modify, merge, publish, distribute, sublicense,
 and/or sell copies of the Software, and to permit persons to whom the
@@ -797,7 +797,7 @@ Software is furnished to do so, subject 
 
 The above copyright notice and this permission notice shall be included in
 all copies or substantial portions of the Software.
- 
+
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
@@ -887,30 +887,30 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 
-Copyright 2000 Intel Corporation.  All Rights Reserved. 
+Copyright 2000 Intel Corporation.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
 
-Permission is hereby granted, free of charge, to any person obtaining a 
-copy of this software and associated documentation files (the 
-"Software"), to deal in the Software without restriction, including 
-without limitation the rights to use, copy, modify, merge, publish, 
-distribute, sub license, and/or sell copies of the Software, and to 
-permit persons to whom the Software is furnished to do so, subject to 
-the following conditions: 
-
-The above copyright notice and this permission notice (including the 
-next paragraph) shall be included in all copies or substantial portions 
-of the Software. 
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 
-IN NO EVENT SHALL INTEL, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, 
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL INTEL, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
 THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
-Copyright © 2004 Nokia 
+Copyright © 2004 Nokia
 
 Permission to use, copy, modify, distribute, and sell this software and its
 documentation for any purpose is hereby granted without fee, provided that
@@ -1012,7 +1012,7 @@ express or implied warranty.
 
 
 Copyright 1992, 1993 Data General Corporation;
-Copyright 1992, 1993 OMRON Corporation  
+Copyright 1992, 1993 OMRON Corporation
 
 Permission to use, copy, modify, distribute, and sell this software and its
 documentation for any purpose is hereby granted without fee, provided that the
@@ -1020,9 +1020,9 @@ above copyright notice appear in all cop
 notice and this permission notice appear in supporting documentation, and that
 neither the name OMRON or DATA GENERAL be used in advertising or publicity
 pertaining to distribution of the software without specific, written prior
-permission of the party whose name is to be used.  Neither OMRON or 
+permission of the party whose name is to be used.  Neither OMRON or
 DATA GENERAL make any representation about the suitability of this software
-for any purpose.  It is provided "as is" without express or implied warranty.  
+for any purpose.  It is provided "as is" without express or implied warranty.
 
 OMRON AND DATA GENERAL EACH DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
@@ -1094,8 +1094,8 @@ specific, written prior permission.  Kei
 representations about the suitability of this software for any purpose.  It
 is provided "as is" without express or implied warranty.
 
-KEITH PACKARD AND COMPAQ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, 
+KEITH PACKARD AND COMPAQ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
 IN NO EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
@@ -1112,8 +1112,8 @@ specific, written prior permission.  Mic
 representations about the suitability of this software for any purpose.  It
 is provided "as is" without express or implied warranty.
 
-MICHAEL TAHT AND MONTAVISTA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, 
+MICHAEL TAHT AND MONTAVISTA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
 IN NO EVENT SHALL EITHER BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
@@ -1130,8 +1130,8 @@ specific, written prior permission.  Mat
 representations about the suitability of this software for any purpose.  It
 is provided "as is" without express or implied warranty.
 
-MATTHEW ALLUM AND OPENEDHAND DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, 
+MATTHEW ALLUM AND OPENEDHAND DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
 IN NO EVENT SHALL EITHER BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
@@ -1152,11 +1152,11 @@ is" without express or implied warranty.
 
 (c) Copyright 1996 by Sebastien Marineau <marineau at genie.uottawa.ca>
 
-Permission is hereby granted, free of charge, to any person obtaining a 
-copy of this software and associated documentation files (the "Software"), 
-to deal in the Software without restriction, including without limitation 
-the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-and/or sell copies of the Software, and to permit persons to whom the 
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
 Software is furnished to do so, subject to the following conditions:
 
 The above copyright notice and this permission notice shall be included in
@@ -1164,10 +1164,10 @@ all copies or substantial portions of th
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
-HOLGER VEIT  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+HOLGER VEIT  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 Except as contained in this notice, the name of Sebastien Marineau shall not be
@@ -1254,19 +1254,19 @@ Permission to use, copy, modify, distrib
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
-documentation, and that the names of Thomas Roell and David Dawes 
-not be used in advertising or publicity pertaining to distribution of 
+documentation, and that the names of Thomas Roell and David Dawes
+not be used in advertising or publicity pertaining to distribution of
 the software without specific, written prior permission.  Thomas Roell and
-David Dawes makes no representations about the suitability of this 
-software for any purpose.  It is provided "as is" without express or 
+David Dawes makes no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
 implied warranty.
 
-THOMAS ROELL AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD TO 
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
-FITNESS, IN NO EVENT SHALL THOMAS ROELL OR DAVID DAWES BE LIABLE FOR 
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
+THOMAS ROELL AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THOMAS ROELL OR DAVID DAWES BE LIABLE FOR
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 
@@ -1301,7 +1301,7 @@ Permission to use, copy, modify, distrib
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
-documentation, and that the names of Thomas Roell, David Wexelblat 
+documentation, and that the names of Thomas Roell, David Wexelblat
 and Kean Johnston not be used in advertising or publicity pertaining to
 distribution of the software without specific, written prior permission.
 Thomas Roell, David Wexelblat and Kean Johnston make no representations
@@ -1327,7 +1327,7 @@ Permission to use, copy, modify, distrib
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
-documentation, and that the names of Thomas Roell, David Dawes 
+documentation, and that the names of Thomas Roell, David Dawes
 and Kean Johnston not be used in advertising or publicity pertaining to
 distribution of the software without specific, written prior permission.
 Thomas Roell, David Dawes and Kean Johnston make no representations
@@ -1392,11 +1392,11 @@ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARI
 WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 
-Copyright 1993 Gerrit Jan Akkerman 
+Copyright 1993 Gerrit Jan Akkerman
 
 Permission to use, copy, modify, and distribute this software and its
 documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that 
+provided that the above copyright notice appear in all copies and that
 both that copyright notice and this permission notice appear in
 supporting documentation, and that the name of Gerrit Jan Akkerman not be
 used in advertising or publicity pertaining to distribution of the
@@ -1449,13 +1449,13 @@ included in all copies or substantial po
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES 
+IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES
 OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
 
-Except as contained in this notice, the name of Kaleb S. KEITHLEY 
-shall not be used in advertising or otherwise to promote the sale, use 
+Except as contained in this notice, the name of Kaleb S. KEITHLEY
+shall not be used in advertising or otherwise to promote the sale, use
 or other dealings in this Software without prior written authorization
 from Kaleb S. KEITHLEY
 
@@ -1579,24 +1579,24 @@ Permission to use, copy, modify, distrib
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
-documentation, and that the names of Orest Zborowski and David Dawes 
-not be used in advertising or publicity pertaining to distribution of 
+documentation, and that the names of Orest Zborowski and David Dawes
+not be used in advertising or publicity pertaining to distribution of
 the software without specific, written prior permission.  Orest Zborowski
-and David Dawes make no representations about the suitability of this 
-software for any purpose.  It is provided "as is" without express or 
+and David Dawes make no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
 implied warranty.
 
-OREST ZBOROWSKI AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD 
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
-FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID DAWES BE LIABLE 
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
+OREST ZBOROWSKI AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID DAWES BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 
 Copyright 1995-1999 by Frederic Lepied, France. <fred at sugix.frmug.fr.net>
-                                                                           
+
 Permission to use, copy, modify, distribute, and sell this software and its
 documentation for any purpose is  hereby granted without fee, provided that
 the  above copyright   notice appear  in   all  copies and  that both  that
@@ -1605,8 +1605,8 @@ documentation, and that   the  name of  
 advertising or publicity pertaining to distribution of the software without
 specific,  written      prior  permission.     Frederic  Lepied   makes  no
 representations about the suitability of this software for any purpose.  It
-is provided "as is" without express or implied warranty.                   
-                                                                           
+is provided "as is" without express or implied warranty.
+
 FREDERIC  LEPIED DISCLAIMS ALL   WARRANTIES WITH REGARD  TO  THIS SOFTWARE,
 INCLUDING ALL IMPLIED   WARRANTIES OF MERCHANTABILITY  AND   FITNESS, IN NO
 EVENT  SHALL FREDERIC  LEPIED BE   LIABLE   FOR ANY  SPECIAL, INDIRECT   OR
@@ -1667,19 +1667,19 @@ Permission to use, copy, modify, distrib
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
-documentation, and that the names of Rich Murphey and David Wexelblat 
-not be used in advertising or publicity pertaining to distribution of 
+documentation, and that the names of Rich Murphey and David Wexelblat
+not be used in advertising or publicity pertaining to distribution of
 the software without specific, written prior permission.  Rich Murphey and
-David Wexelblat make no representations about the suitability of this 
-software for any purpose.  It is provided "as is" without express or 
+David Wexelblat make no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
 implied warranty.
 
-RICH MURPHEY AND DAVID WEXELBLAT DISCLAIM ALL WARRANTIES WITH REGARD TO 
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
-FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID WEXELBLAT BE LIABLE FOR 
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
+RICH MURPHEY AND DAVID WEXELBLAT DISCLAIM ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID WEXELBLAT BE LIABLE FOR
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 
@@ -1690,19 +1690,19 @@ Permission to use, copy, modify, distrib
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
-documentation, and that the names of Rich Murphey and David Dawes 
-not be used in advertising or publicity pertaining to distribution of 
+documentation, and that the names of Rich Murphey and David Dawes
+not be used in advertising or publicity pertaining to distribution of
 the software without specific, written prior permission.  Rich Murphey and
-David Dawes make no representations about the suitability of this 
-software for any purpose.  It is provided "as is" without express or 
+David Dawes make no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
 implied warranty.
 
-RICH MURPHEY AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO 
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
-FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID DAWES BE LIABLE FOR 
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
+RICH MURPHEY AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID DAWES BE LIABLE FOR
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 
@@ -1838,8 +1838,8 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CO
 USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
-Copyright © 2004 PillowElephantBadgerBankPond 
- 
+Copyright © 2004 PillowElephantBadgerBankPond
+
 Permission to use, copy, modify, distribute, and sell this software and its
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
@@ -2421,19 +2421,19 @@ Permission to use, copy, modify, distrib
 documentation for any purpose is hereby granted without fee, provided that
 the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
-documentation, and that the names of the above listed copyright holders 
-not be used in advertising or publicity pertaining to distribution of 
+documentation, and that the names of the above listed copyright holders
+not be used in advertising or publicity pertaining to distribution of
 the software without specific, written prior permission.  The above listed
-copyright holders make no representations about the suitability of this 
-software for any purpose.  It is provided "as is" without express or 
+copyright holders make no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
 implied warranty.
 
-THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD 
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
-AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE 
-LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 
+THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
 OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 
@@ -2626,45 +2626,68 @@ CONNECTION WITH THE SOFTWARE OR THE USE 
 
 Copyright © 2006 Daniel Stone
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of the copyright holders and/or authors
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  The copyright holders
-and/or authors make no representations about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
 
-THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
 
-Copyright © 2006 Nokia Corporation
-Copyright © 2006 Daniel Stone
 
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that this copyright notice and this permission notice appear in
-supporting electronic documentation.
+Copyright © 2006-2007 Daniel Stone
 
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR AUTHORS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+Copyright © 2007 Daniel Stone
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
 
 
 Copyright © 1999 Keith Packard
diff-tree 51b735394f0aa9f953f9c320617c7a56028ec458 (from 7fa58385724fa7f441107a1793b601ba3dcb1f4c)
Author: Daniel Drake <dsd at gentoo.org>
Date:   Mon Apr 30 11:37:46 2007 -0400

    [PATCH] xserver: Add COPYING terms
    
    I went through the entire xorg-server distribution and aggregated all
    the licenses I could find (except the questionable GPL files, see my
    last mail).
    
    There are many many permutations on essentially the same license terms,
    but I have been pedantic and treated slight differences as separate
    licenses.
    
    Here is a description of the process I used:
    
    tar xvjf /usr/portage/distfiles/xorg-server-1.1.1.tar.bz2
    
    cd xorg-server-1.1.1
    find -name '*.c' -o -name '*.h' | xargs gvim
    
    egrep -Rli "permission|copyright" * | grep -v "\.[ch]" \
    	| grep -v "\.in$" | xargs gvim
    
    cd ..
    tar xvjf /usr/portage/distfiles/xorg-server-1.3.0.0.tar.bz2

diff --git a/COPYING b/COPYING
index 7f33cbf..bb34bdb 100644
--- a/COPYING
+++ b/COPYING
@@ -1,12 +1,2690 @@
-This is a stub file.  This package has not yet had its complete licensing
-information compiled.  Please see the individual source files for details on
-your rights to use and modify this software.
+Copyright (C) 1994-2003 The XFree86 Project, Inc.  All Rights Reserved.
 
-Please submit updated COPYING files to the Xorg bugzilla:
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
 
-https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
 
-All licensing questions regarding this software should be directed at the
-Xorg mailing list:
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+
+
+Copyright 1997-2003 by The XFree86 Project, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Orest Zborowski and David Wexelblat 
+not be used in advertising or publicity pertaining to distribution of 
+the software without specific, written prior permission.  Orest Zborowski
+and David Wexelblat make no representations about the suitability of this 
+software for any purpose.  It is provided "as is" without express or 
+implied warranty.
+
+THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD 
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE 
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 2005 Kean Johnston
+Copyright 1999 by The XFree86 Project, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of The XFree86 Project, Inc
+and Kean Johnston not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+The XFree86 Project, Inc and Kean Johnston make no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+THE XFREE86 PROJECT, INC AND KEAN JOHNSTON DISCLAIM ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THOMAS ROELL, DAVID WEXELBLAT
+OR KEAN JOHNSTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+
+
+Copyright 1985-1998, 2001  The Open Group
+Copyright 2002 Red Hat Inc., Durham, North Carolina.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright (c) 1987, 1989-1990, 1992-1995  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+
+Copyright © 1999-2000 SuSE, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of SuSE not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.  SuSE makes no representations about the
+suitability of this software for any purpose.  It is provided "as is"
+without express or implied warranty.
+
+SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
+BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2005 Novell, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without
+fee, provided that the above copyright notice appear in all copies
+and that both that copyright notice and this permission notice
+appear in supporting documentation, and that the name of
+Novell, Inc. not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+Novell, Inc. makes no representations about the suitability of this
+software for any purpose. It is provided "as is" without express or
+implied warranty.
+
+NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
+All Rights Reserved
+
+Permission  to  use,  copy,  modify,  and  distribute   this
+software  and  its documentation for any purpose and without
+fee is hereby granted, provided that the above copyright no-
+tice  appear  in all copies and that both that copyright no-
+tice and this permission notice appear in  supporting  docu-
+mentation,  and  that the names of Sun or X Consortium
+not be used in advertising or publicity pertaining to 
+distribution  of  the software  without specific prior 
+written permission. Sun and X Consortium make no 
+representations about the suitability of this software for 
+any purpose. It is provided "as is" without any express or 
+implied warranty.
+
+SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
+NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
+ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
+PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
+THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
+All Rights Reserved
+
+Permission  to  use,  copy,  modify,  and  distribute   this
+software  and  its documentation for any purpose and without
+fee is hereby granted, provided that the above copyright no-
+tice  appear  in all copies and that both that copyright no-
+tice and this permission notice appear in  supporting  docu-
+mentation,  and  that the names of Sun or The Open Group
+not be used in advertising or publicity pertaining to 
+distribution  of  the software  without specific prior 
+written permission. Sun and The Open Group make no 
+representations about the suitability of this software for 
+any purpose. It is provided "as is" without any express or 
+implied warranty.
+
+SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
+NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
+ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
+PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
+THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2006 Sun Microsystems
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Sun Microsystems not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Sun Microsystems makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1987-1991, 1993 by Digital Equipment Corporation, Maynard, Massachusetts.
+Copyright 1991 Massachusetts Institute of Technology, Cambridge, Massachusetts.
+Copyright 1991, 1993 Olivetti Research Limited, Cambridge, England.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
+Copyright 1994 Quarterdeck Office Systems.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the names of Digital and
+Quarterdeck not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+DIGITAL AND QUARTERDECK DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
+OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
+OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1987-1992 by Digital Equipment Corp., Maynard, MA
+X11R6 Changes Copyright (c) 1994 by Robert Chesler of Absol-Puter, Hudson, NH.
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  
+
+DIGITAL AND ABSOL-PUTER DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL DIGITAL OR ABSOL-PUTER BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1997 Digital Equipment Corporation.
+All rights reserved.
+
+This software is furnished under license and may be used and copied only in 
+accordance with the following terms and conditions.  Subject to these
+conditions, you may download, copy, install, use, modify and distribute
+this software in source and/or binary form. No title or ownership is
+transferred hereby.
+
+1) Any source code used, modified or distributed must reproduce and retain
+   this copyright notice and list of conditions as they appear in the
+   source file.
+
+2) No right is granted to use any trade name, trademark, or logo of Digital 
+   Equipment Corporation. Neither the "Digital Equipment Corporation"
+   name nor any trademark or logo of Digital Equipment Corporation may be
+   used to endorse or promote products derived from this software without
+   the prior written permission of Digital Equipment Corporation.
+
+3) This software is provided "AS-IS" and any express or implied warranties,
+   including but not limited to, any implied warranties of merchantability,
+   fitness for a particular purpose, or non-infringement are disclaimed.
+   In no event shall DIGITAL be liable for any damages whatsoever, and in
+   particular, DIGITAL shall not be liable for special, indirect,
+   consequential, or incidental damages or damages for lost profits, loss
+   of revenue or loss of use, whether such damages arise in contract, 
+   negligence, tort, under statute, in equity, at law or otherwise, even
+   if advised of the possibility of such damage. 
+
+
+Copyright (c) 1991, 1996-1997 Digital Equipment Corporation, Maynard, Massachusetts.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
+BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Digital Equipment Corporation
+shall not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from Digital
+Equipment Corporation.
+
+
+Copyright (c) 1993-1997 by Silicon Graphics Computer Systems, Inc.
+
+Permission to use, copy, modify, and distribute this
+software and its documentation for any purpose and without
+fee is hereby granted, provided that the above copyright
+notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting
+documentation, and that the name of Silicon Graphics not be 
+used in advertising or publicity pertaining to distribution 
+of the software without specific prior written permission.
+Silicon Graphics makes no representation about the suitability 
+of this software for any purpose. It is provided "as is"
+without any express or implied warranty.
+
+SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
+AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
+THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+License Applicability. Except to the extent portions of this file are
+made subject to an alternative license as permitted in the SGI Free
+Software License B, Version 1.1 (the "License"), the contents of this
+file are subject only to the provisions of the License. You may not use
+this file except in compliance with the License. You may obtain a copy
+of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+
+http://oss.sgi.com/projects/FreeB
+
+Note that, as provided in the License, the Software is distributed on an
+"AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+
+Original Code. The Original Code is: OpenGL Sample Implementation,
+Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
+Copyright in any portions created by third parties is as indicated
+elsewhere herein. All Rights Reserved.
+
+Additional Notice Provisions: The application programming interfaces
+established by SGI in conjunction with the Original Code are The
+OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
+April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
+1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
+Window System(R) (Version 1.3), released October 19, 1998. This software
+was created using the OpenGL(R) version 1.2.1 Sample Implementation
+published by SGI, but has not been independently verified as being
+compliant with the OpenGL(R) version 1.2.1 Specification.
+
+
+The contents of this file are subject to the GLX Public License Version 1.0
+(the "License"). You may not use this file except in compliance with the
+License. You may obtain a copy of the License at Silicon Graphics, Inc.,
+attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
+or at http://www.sgi.com/software/opensource/glx/license.html.
+
+Software distributed under the License is distributed on an "AS IS"
+basis. ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY
+IMPLIED WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
+PURPOSE OR OF NON- INFRINGEMENT. See the License for the specific
+language governing rights and limitations under the License.
+
+The Original Software is GLX version 1.2 source code, released February,
+1999. The developer of the Original Software is Silicon Graphics, Inc.
+Those portions of the Subject Software created by Silicon Graphics, Inc.
+are Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
+
+
+Copyright (c) 1994, 1995  Hewlett-Packard Company
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the Hewlett-Packard
+Company shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the Hewlett-Packard Company.
+
+
+Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
+All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Hewlett-Packard not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
+Copyright (c) 2003 by the XFree86 Project, Inc.
+Copyright 2004-2005 Red Hat Inc., Raleigh, North Carolina.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT.  IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+Copyright 2005 Red Hat, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without
+fee, provided that the above copyright notice appear in all copies
+and that both that copyright notice and this permission notice
+appear in supporting documentation, and that the name of Red Hat
+not be used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.  Red
+Hat makes no representations about the suitability of this software
+for any purpose.  It is provided "as is" without express or implied
+warranty.
+
+RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright (c) 2006, Red Hat, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
+RED HAT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Red Hat shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from Red Hat.
+
+
+Copyright © 2006 Red Hat, Inc
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without
+fee, provided that the above copyright notice appear in all copies
+and that both that copyright notice and this permission notice
+appear in supporting documentation, and that the name of Red Hat,
+Inc not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.  Red Hat, Inc makes no representations about the
+suitability of this software for any purpose.  It is provided "as
+is" without express or implied warranty.
+
+RED HAT, INC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL RED HAT, INC BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2006  Red Hat, Inc.
+(C) Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+RED HAT, INC, OR PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright (c) 1995  X Consortium
+Copyright 2004 Red Hat Inc., Durham, North Carolina.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT.  IN NO EVENT SHALL RED HAT, THE X CONSORTIUM,
+AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Software without prior written
+authorization from the X Consortium.
+
+
+Copyright 1998-2000 Precision Insight, Inc., Cedar Park, Texas.
+Copyright 2000 VA Linux Systems, Inc.
+Copyright (c) 2002 Apple Computer, Inc.
+Copyright (c) 2003-2004 Torrey T. Lyons.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright IBM Corporation 1987,1988,1989
+All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that 
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of IBM not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+(C) Copyright IBM Corporation 2003
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+(C) Copyright IBM Corporation 2004-2005
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+IBM,
+AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+Copyright (c) 1997  Metro Link Incorporated
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"), 
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Except as contained in this notice, the name of the Metro Link shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from Metro Link.
+
+
+Copyright 1995-1998 by Metro Link, Inc.
+Copyright (c) 1997 Matthieu Herrb
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Metro Link, Inc. not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Metro Link, Inc. makes no
+representations about the suitability of this software for any purpose.
+ It is provided "as is" without express or implied warranty.
+
+METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1998 by Metro Link Incorporated
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Metro Link
+Incorporated not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.  Metro Link Incorporated makes no representations
+about the suitability of this software for any purpose.  It is
+provided "as is" without express or implied warranty.
+
+METRO LINK INCORPORATED DISCLAIMS ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL METRO LINK INCORPORATED BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+ 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+CONECTIVA LINUX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Except as contained in this notice, the name of Conectiva Linux shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from
+Conectiva Linux.
+
+
+Copyright (c) 2001, Andy Ritger  aritger at nvidia.com
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+o Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+o Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer
+  in the documentation and/or other materials provided with the
+  distribution.
+o Neither the name of NVIDIA nor the names of its contributors
+  may be used to endorse or promote products derived from this
+  software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+
+Copyright 1992 Vrije Universiteit, The Netherlands
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of the Vrije Universiteit not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  The Vrije Universiteit makes no
+representations about the suitability of this software for any purpose.
+It is provided "as is" without express or implied warranty.
+
+The Vrije Universiteit DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL The Vrije Universiteit BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1998 by Concurrent Computer Corporation
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Concurrent Computer
+Corporation not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.  Concurrent Computer Corporation makes no representations
+about the suitability of this software for any purpose.  It is
+provided "as is" without express or implied warranty.
+
+CONCURRENT COMPUTER CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL CONCURRENT COMPUTER CORPORATION BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+Copyright 2000 Intel Corporation.  All Rights Reserved. 
+
+Permission is hereby granted, free of charge, to any person obtaining a 
+copy of this software and associated documentation files (the 
+"Software"), to deal in the Software without restriction, including 
+without limitation the rights to use, copy, modify, merge, publish, 
+distribute, sub license, and/or sell copies of the Software, and to 
+permit persons to whom the Software is furnished to do so, subject to 
+the following conditions: 
+
+The above copyright notice and this permission notice (including the 
+next paragraph) shall be included in all copies or substantial portions 
+of the Software. 
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 
+IN NO EVENT SHALL INTEL, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, 
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright © 2004 Nokia 
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Nokia not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Nokia makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1998-2003 VIA Technologies, Inc.
+Copyright 2001-2003 S3 Graphics, Inc.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+(c)Copyright 1988,1991 Adobe Systems Incorporated.
+All rights reserved.
+
+Permission to use, copy, modify, distribute, and sublicense this software and its
+documentation for any purpose and without fee is hereby granted, provided that
+the above copyright notices appear in all copies and that both those copyright
+notices and this permission notice appear in supporting documentation and that
+the name of Adobe Systems Incorporated not be used in advertising or publicity
+pertaining to distribution of the software without specific, written prior
+permission.  No trademark license to use the Adobe trademarks is hereby
+granted.  If the Adobe trademark "Display PostScript"(tm) is used to describe
+this software, its functionality or for any other purpose, such use shall be
+limited to a statement that this software works in conjunction with the Display
+PostScript system.  Proper trademark attribution to reflect Adobe's ownership
+of the trademark shall be given whenever any such reference to the Display
+PostScript system is made.
+
+ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR ANY
+PURPOSE.  IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.  ADOBE
+DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
+INFRINGEMENT OF THIRD PARTY RIGHTS.  IN NO EVENT SHALL ADOBE BE LIABLE TO YOU
+OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
+DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,NEGLIGENCE, STRICT
+LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.  ADOBE WILL NOT PROVIDE ANY TRAINING OR OTHER
+SUPPORT FOR THE SOFTWARE.
+
+Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems
+Incorporated which may be registered in certain jurisdictions.
+
+
+Copyright 1989 Network Computing Devices, Inc., Mountain View, California.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of N.C.D. not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.  N.C.D. makes no representations about the
+suitability of this software for any purpose.  It is provided "as is"
+without express or implied warranty.
+
+
+Copyright (c) 1987 by the Regents of the University of California
+
+Permission to use, copy, modify, and distribute this
+software and its documentation for any purpose and without
+fee is hereby granted, provided that the above copyright
+notice appear in all copies.  The University of California
+makes no representations about the suitability of this
+software for any purpose.  It is provided "as is" without
+express or implied warranty.
+
+
+Copyright 1992, 1993 Data General Corporation;
+Copyright 1992, 1993 OMRON Corporation  
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that the
+above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and that
+neither the name OMRON or DATA GENERAL be used in advertising or publicity
+pertaining to distribution of the software without specific, written prior
+permission of the party whose name is to be used.  Neither OMRON or 
+DATA GENERAL make any representation about the suitability of this software
+for any purpose.  It is provided "as is" without express or implied warranty.  
+
+OMRON AND DATA GENERAL EACH DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+IN NO EVENT SHALL OMRON OR DATA GENERAL BE LIABLE FOR ANY SPECIAL, INDIRECT
+OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+OF THIS SOFTWARE.
+
+
+Copyright © 1998-2004, 2006 Keith Packard
+Copyright © 2000-2002 Keith Packard, member of The XFree86 Project, Inc.
+Copyright (c) 2002 Apple Computer, Inc.
+Copyright (c) 2003 Torrey T. Lyons.
+All Rights Reserved.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Keith Packard not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Keith Packard makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2003-2005 Keith Packard, Daniel Stone
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Keith Packard and Daniel Stone not be
+used in advertising or publicity pertaining to distribution of the software
+without specific, written prior permission.  Keith Packard and Daniel Stone
+make no representations about the suitability of this software for any
+purpose.  It is provided "as is" without express or implied warranty.
+
+KEITH PACKARD AND DANIEL STONE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+IN NO EVENT SHALL KEITH PACKARD OR DANIEL STONE BE LIABLE FOR ANY SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 1999 Keith Packard
+Copyright © 2000 Compaq Computer Corporation
+Copyright © 2002 MontaVista Software Inc.
+Copyright © 2005 OpenedHand Ltd.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Keith Packard or Compaq not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Keith Packard and Compaq makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+KEITH PACKARD AND COMPAQ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, 
+IN NO EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Michael Taht or MontaVista not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Michael Taht and Montavista make no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+MICHAEL TAHT AND MONTAVISTA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, 
+IN NO EVENT SHALL EITHER BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Matthew Allum or OpenedHand not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Matthew Allum and OpenedHand make no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+MATTHEW ALLUM AND OPENEDHAND DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, 
+IN NO EVENT SHALL EITHER BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1993 by Davor Matic
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation.  Davor Matic makes no representations about
+the suitability of this software for any purpose.  It is provided "as
+is" without express or implied warranty.
+
+
+(c) Copyright 1996 by Sebastien Marineau <marineau at genie.uottawa.ca>
+
+Permission is hereby granted, free of charge, to any person obtaining a 
+copy of this software and associated documentation files (the "Software"), 
+to deal in the Software without restriction, including without limitation 
+the rights to use, copy, modify, merge, publish, distribute, sublicense, 
+and/or sell copies of the Software, and to permit persons to whom the 
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
+HOLGER VEIT  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+SOFTWARE.
+
+Except as contained in this notice, the name of Sebastien Marineau shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from Sebastien Marineau.
+
+
+Copyright (C) 2001-2004 Harold L Hunt II
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL HAROLD L HUNT II BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Harold L Hunt II
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+from Harold L Hunt II.
+
+
+Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Thomas Roell not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Thomas Roell makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
+Copyright 1993 by David Wexelblat <dwex at goblin.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Thomas Roell and David Wexelblat
+not be used in advertising or publicity pertaining to distribution of
+the software without specific, written prior permission.  Thomas Roell and
+David Wexelblat makes no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
+implied warranty.
+
+THOMAS ROELL AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THOMAS ROELL OR DAVID WEXELBLAT BE LIABLE FOR
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
+Copyright 1993 by David Dawes <dawes at 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
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Thomas Roell and David Dawes 
+not be used in advertising or publicity pertaining to distribution of 
+the software without specific, written prior permission.  Thomas Roell and
+David Dawes makes no representations about the suitability of this 
+software for any purpose.  It is provided "as is" without express or 
+implied warranty.
+
+THOMAS ROELL AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD TO 
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS, IN NO EVENT SHALL THOMAS ROELL OR DAVID DAWES BE LIABLE FOR 
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1990,91,92,93 by Thomas Roell, Germany.
+Copyright 1991,92,93    by SGCS (Snitily Graphics Consulting Services), USA.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and
+that both that copyright notice and this  permission notice appear
+in supporting documentation, and that the name of Thomas Roell nor
+SGCS be used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+Thomas Roell nor SGCS makes no representations about the suitability
+of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+
+THOMAS ROELL AND SGCS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THOMAS ROELL OR SGCS BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 2001-2005 by Kean Johnston <jkj at sco.com>
+Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
+Copyright 1993 by David Wexelblat <dwex at goblin.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Thomas Roell, David Wexelblat 
+and Kean Johnston not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+Thomas Roell, David Wexelblat and Kean Johnston make no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+THOMAS ROELL, DAVID WEXELBLAT AND KEAN JOHNSTON DISCLAIM ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THOMAS ROELLm DAVID WEXELBLAT
+OR KEAN JOHNSTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+
+
+Copyright 2001-2005 by Kean Johnston <jkj at sco.com>
+Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
+Copyright 1993 by David Dawes <dawes at xfree86.org>
+Copyright 1993 by David Wexelblat <dwex at goblin.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Thomas Roell, David Dawes 
+and Kean Johnston not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+Thomas Roell, David Dawes and Kean Johnston make no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+THOMAS ROELL, DAVID DAWES AND KEAN JOHNSTON DISCLAIM ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THOMAS ROELLm DAVID WEXELBLAT
+OR KEAN JOHNSTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+
+
+Copyright (c) 2001-2003 Torrey T. Lyons.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+TORREY T. LYONS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Except as contained in this notice, the name(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Software without prior written authorization.
+
+
+Copyright © 2004 David Reveman
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without
+fee, provided that the above copyright notice appear in all copies
+and that both that copyright notice and this permission notice
+appear in supporting documentation, and that the name of
+David Reveman not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+David Reveman makes no representations about the suitability of this
+software for any purpose. It is provided "as is" without express or
+implied warranty.
+
+DAVID REVEMAN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL DAVID REVEMAN BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1993 Gerrit Jan Akkerman 
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that 
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Gerrit Jan Akkerman not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+GERRIT JAN AKKERMAN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+IN NO EVENT SHALL GERRIT JAN AKKERMAN BE LIABLE FOR ANY SPECIAL, INDIRECT
+OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1998 by Alan Hourihane, Wigan, England.
+Copyright 2000-2002 by Alan Hourihane, Flint Mountain, North Wales.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Alan Hourihane not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Alan Hourihane makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1995  Kaleb S. KEITHLEY
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES 
+OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Kaleb S. KEITHLEY 
+shall not be used in advertising or otherwise to promote the sale, use 
+or other dealings in this Software without prior written authorization
+from Kaleb S. KEITHLEY
+
+
+Copyright (c) 1997 Matthieu Herrb
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Matthieu Herrb not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Matthieu Herrb makes no
+representations about the suitability of this software for any purpose.
+ It is provided "as is" without express or implied warranty.
+
+MATTHIEU HERRB DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL MATTHIEU HERRB BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1993 by Thomas Mueller
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Thomas Mueller not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Thomas Mueller makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+THOMAS MUELLER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THOMAS MUELLER BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 2004, Egbert Eich
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+EGBERT EICH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Egbert Eich shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from Egbert Eich.
+
+
+Copyright 1993 by David Wexelblat <dwex at goblin.org>
+Copyright 2005 by Kean Johnston <jkj at sco.com>
+Copyright 1993 by David McCullough <davidm at stallion.oz.au>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of David Wexelblat not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  David Wexelblat makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL DAVID WEXELBLAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1992 by Orest Zborowski <obz at Kodak.com>
+Copyright 1993 by David Wexelblat <dwex at goblin.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Orest Zborowski and David Wexelblat
+not be used in advertising or publicity pertaining to distribution of
+the software without specific, written prior permission.  Orest Zborowski
+and David Wexelblat make no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
+implied warranty.
+
+OREST ZBOROWSKI AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1992 by Orest Zborowski <obz at Kodak.com>
+Copyright 1993 by David Dawes <dawes at 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
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Orest Zborowski and David Dawes 
+not be used in advertising or publicity pertaining to distribution of 
+the software without specific, written prior permission.  Orest Zborowski
+and David Dawes make no representations about the suitability of this 
+software for any purpose.  It is provided "as is" without express or 
+implied warranty.
+
+OREST ZBOROWSKI AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD 
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID DAWES BE LIABLE 
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1995-1999 by Frederic Lepied, France. <fred at sugix.frmug.fr.net>
+                                                                           
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is  hereby granted without fee, provided that
+the  above copyright   notice appear  in   all  copies and  that both  that
+copyright  notice   and   this  permission   notice  appear  in  supporting
+documentation, and that   the  name of  Frederic   Lepied not  be  used  in
+advertising or publicity pertaining to distribution of the software without
+specific,  written      prior  permission.     Frederic  Lepied   makes  no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.                   
+                                                                           
+FREDERIC  LEPIED DISCLAIMS ALL   WARRANTIES WITH REGARD  TO  THIS SOFTWARE,
+INCLUDING ALL IMPLIED   WARRANTIES OF MERCHANTABILITY  AND   FITNESS, IN NO
+EVENT  SHALL FREDERIC  LEPIED BE   LIABLE   FOR ANY  SPECIAL, INDIRECT   OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA  OR PROFITS, WHETHER  IN  AN ACTION OF  CONTRACT,  NEGLIGENCE OR OTHER
+TORTIOUS  ACTION, ARISING    OUT OF OR   IN  CONNECTION  WITH THE USE    OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright (C) 1999 Jeff Hartmann
+Copyright (C) 1999 Precision Insight, Inc.
+Copyright (C) 1999 Xi Graphics, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+JEFF HARTMANN, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright 2001,2005 by Kean Johnston <jkj at sco.com>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name Kean Johnston not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Kean Johnston makes no
+representations about the suitability of this software for any purpose.
+It is provided "as is" without express or implied warranty.
+
+KEAN JOHNSTON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL KEAN JOHNSTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1992 by Rich Murphey <Rich at Rice.edu>
+Copyright 1993 by David Wexelblat <dwex at goblin.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Rich Murphey and David Wexelblat 
+not be used in advertising or publicity pertaining to distribution of 
+the software without specific, written prior permission.  Rich Murphey and
+David Wexelblat make no representations about the suitability of this 
+software for any purpose.  It is provided "as is" without express or 
+implied warranty.
+
+RICH MURPHEY AND DAVID WEXELBLAT DISCLAIM ALL WARRANTIES WITH REGARD TO 
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID WEXELBLAT BE LIABLE FOR 
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1992 by Rich Murphey <Rich at Rice.edu>
+Copyright 1993 by David Dawes <dawes at 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
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of Rich Murphey and David Dawes 
+not be used in advertising or publicity pertaining to distribution of 
+the software without specific, written prior permission.  Rich Murphey and
+David Dawes make no representations about the suitability of this 
+software for any purpose.  It is provided "as is" without express or 
+implied warranty.
+
+RICH MURPHEY AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO 
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID DAWES BE LIABLE FOR 
+ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2004 Franco Catrin
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Franco Catrin not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Franco Catrin makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+FRANCO CATRIN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL FRANCO CATRIN BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2004 Ralph Thomas
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Ralph Thomas not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Ralph Thomas makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+RALPH THOMAS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL RALPH THOMAS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2004 Damien Ciabrini
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Anders Carlsson not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Anders Carlsson makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+DAMIEN CIABRINI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ANDERS CARLSSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2003-2004 Anders Carlsson
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Anders Carlsson not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Anders Carlsson makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+ANDERS CARLSSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ANDERS CARLSSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright (C) 2003 Anders Carlsson
+Copyright © 2003-2004 Eric Anholt
+Copyright © 2004 Keith Packard
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Eric Anholt not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Eric Anholt makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+ERIC ANHOLT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ERIC ANHOLT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 2000 Silicon Integrated Systems Corp, Inc., HsinChu, Taiwan.
+Copyright 2003 Eric Anholt
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright © 2004 PillowElephantBadgerBankPond 
+ 
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of PillowElephantBadgerBankPond not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  PillowElephantBadgerBankPond makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+PillowElephantBadgerBankPond DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL PillowElephantBadgerBankPond BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 2004 by Costas Stylianou <costas.stylianou at psion.com> +44(0)7850 394095
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Costas Sylianou not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Costas Stylianou makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+COSTAS STYLIANOU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL COSTAS STYLIANOU BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller at courtesan.com>
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL
+WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE
+FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright (C) 1995 Pascal Haible.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+PASCAL HAIBLE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Except as contained in this notice, the name of Pascal Haible shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from
+Pascal Haible.
+
+
+Copyright © 2003-2004 Philip Blundell
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Philip Blundell not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Philip Blundell makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+PHILIP BLUNDELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL PHILIP BLUNDELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+
+Copyright (c) 1994-2003 by The XFree86 Project, Inc.
+Copyright 1997 by Metro Link, Inc.
+Copyright 2003 by David H. Dawes.
+Copyright 2003 by X-Oz Technologies.
+Copyright (c) 2004, X.Org Foundation
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the copyright holder(s)
+and author(s) shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Software without prior written
+authorization from the copyright holder(s) and author(s).
+
+
+Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
+Copyright 1993 by David Wexelblat <dwex at goblin.org>
+Copyright 1999 by David Holland <davidh at iquest.net>
+Copyright © 2000 Compaq Computer Corporation
+Copyright © 2002 Hewlett-Packard Company
+Copyright © 2004, 2005 Red Hat, Inc.
+Copyright © 2004 Nicholas Miell
+Copyright © 2005 Trolltech AS
+Copyright © 2006 Intel Corporation
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Red Hat not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.  Red Hat makes no representations about the
+suitability of this software for any purpose.  It is provided "as is"
+without express or implied warranty.
+
+THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
+            2005 Lars Knoll & Zack Rusin, Trolltech
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Keith Packard not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Keith Packard makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+Copyright 1987, 1998  The Open Group
+Copyright © 1998-1999, 2001 The XFree86 Project, Inc.
+Copyright © 2000 VA Linux Systems, Inc.
+Copyright (c) 2000, 2001 Nokia Home Communications
+Copyright 2003-2006 Sun Microsystems, Inc.
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+
+Copyright (c) 1998-1999 Shunsuke Akiyama <akiyama at jp.FreeBSD.org>.
+Copyright (c) 1998-1999 X-TrueType Server Project
+Copyright (c) 1999 Lennart Augustsson <augustss at netbsd.org>
+All rights reserved
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+Copyright 1996 by Thomas E. Dickey <dickey at clark.net>
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of the above listed
+copyright holder(s) not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior
+permission.
+
+THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+(c) Copyright 1996 Hewlett-Packard Company
+(c) Copyright 1996 International Business Machines Corp.
+(c) Copyright 1996, 2004 Sun Microsystems, Inc.
+(c) Copyright 1996 Novell, Inc.
+(c) Copyright 1996 Digital Equipment Corp.
+(c) Copyright 1996 Fujitsu Limited
+(c) Copyright 1996 Hitachi, Ltd.
+Copyright (c) 2003-2005 Roland Mainz <roland.mainz at nrubsig.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the copyright holders shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from said
+copyright holders.
+
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+Copyright (c) 2001 Andreas Monitzer.
+Copyright (c) 2001-2004 Greg Parker.
+Copyright (c) 2001-2004 Torrey T. Lyons
+Copyright (c) 2002-2003 Apple Computer, Inc.
+Copyright (c) 2004-2005 Alexander Gottwald
+Copyright (c) 2002-2007 Apple Inc.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Software without prior written authorization.
+
+
+Copyright (C) 1999,2000 by Eric Sunshine <sunshine at sunshineco.com>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+  3. The name of the author may not be used to endorse or promote products
+     derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Copyright (C) 2005 Bogdan D. bogdand at users.sourceforge.net
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the author shall not be used in
+advertising or otherwise to promote the sale, use or other dealings in this
+Software without prior written authorization from the author.
+
+
+Copyright © 2002 David Dawes
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Except as contained in this notice, the name of the author(s) shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from
+the author(s).
+
+
+Copyright (C) 1996-1999 SciTech Software, Inc.
+Copyright (C) David Mosberger-Tang
+Copyright (C) 1999 Egbert Eich
+
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of the authors not be used
+in advertising or publicity pertaining to distribution of the software
+without specific, written prior permission.  The authors makes no
+representations about the suitability of this software for any purpose.
+It is provided "as is" without express or implied warranty.
+
+THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 2005-2006 Luc Verhaegen.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright 1995 by Robin Cutshaw <robin at XFree86.Org>
+Copyright 2000 by Egbert Eich
+Copyright 2002 by David Dawes
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of the above listed copyright holder(s)
+not be used in advertising or publicity pertaining to distribution of
+the software without specific, written prior permission.  The above listed
+copyright holder(s) make(s) no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
+implied warranty.
+
+THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 1997-2004 by Marc Aurele La France (TSI @ UQV), tsi at 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
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of Marc Aurele La France not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.  Marc Aurele La France makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as-is" without express or implied warranty.
+
+MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO
+EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+OF THIS SOFTWARE.
+
+
+Copyright 1994 by Glenn G. Lai
+All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyr notice and this permission notice appear in
+supporting documentation, and that the name of Glenn G. Lai not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+Glenn G. Lai DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+Copyright (c) 1999 by Keith Packard
+Copyright © 2006 Intel Corporation
+Copyright 2006 Luc Verhaegen.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+Copyright (c) 2000-2001 by Juliusz Chroboczek
+Copyright (c) 1999 by Keith Packard
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+Copyright 1990, 1991 by Thomas Roell, Dinkelscherben, Germany
+Copyright 1992 by David Dawes <dawes at XFree86.org>
+Copyright 1992 by Jim Tsillas <jtsilla at damon.ccs.northeastern.edu>
+Copyright 1992 by Rich Murphey <Rich at Rice.edu>
+Copyright 1992 by Robert Baron <Robert.Baron at ernst.mach.cs.cmu.edu>
+Copyright 1992 by Orest Zborowski <obz at eskimo.com>
+Copyright 1993 by Vrije Universiteit, The Netherlands
+Copyright 1993 by David Wexelblat <dwex at XFree86.org>
+Copyright 1994, 1996 by Holger Veit <Holger.Veit at gmd.de>
+Copyright 1997 by Takis Psarogiannakopoulos <takis at dpmms.cam.ac.uk>
+Copyright 1994-2003 by The XFree86 Project, Inc
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the names of the above listed copyright holders 
+not be used in advertising or publicity pertaining to distribution of 
+the software without specific, written prior permission.  The above listed
+copyright holders make no representations about the suitability of this 
+software for any purpose.  It is provided "as is" without express or 
+implied warranty.
+
+THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD 
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
+AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE 
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 2001-2005 by J. Kean Johnston <jkj at sco.com>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name J. Kean Johnston not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  J. Kean Johnston makes no
+representations about the suitability of this software for any purpose.
+It is provided "as is" without express or implied warranty.
+
+J. KEAN JOHNSTON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL J. KEAN JOHNSTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright (C) 2000 Jakub Jelinek (jakub at redhat.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+JAKUB JELINEK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright (C) 1996 David S. Miller (davem at redhat.com)
+Copyright (C) 1999 Jakub Jelinek (jj at ultra.linux.cz)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+JAKUB JELINEK OR DAVID MILLER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.
+
+
+Copyright 1997,1998 by UCHIYAMA Yasushi
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of UCHIYAMA Yasushi not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  UCHIYAMA Yasushi makes no representations
+about the suitability of this software for any purpose.  It is provided
+"as is" without express or implied warranty.
+
+UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright (C) 2000 Keith Packard
+              2004 Eric Anholt
+              2005 Zack Rusin
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of copyright holders not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Copyright holders make no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+
+(C) Copyright IBM Corporation 2002-2007
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+this permission notice appear in supporting documentation.  This permission
+notice shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright © 2006-2007 Keith Packard
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of the copyright holders not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.  The copyright holders make no representations
+about the suitability of this software for any purpose.  It is provided "as
+is" without express or implied warranty.
+
+THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+OF THIS SOFTWARE.
+
+
+Copyright 2006 Adam Jackson.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright © 2006 Daniel Stone
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of the copyright holders and/or authors
+not be used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  The copyright holders
+and/or authors make no representations about the suitability of this
+software for any purpose.  It is provided "as is" without express or
+implied warranty.
+
+THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright © 2006 Nokia Corporation
+Copyright © 2006 Daniel Stone
+
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that this copyright notice and this permission notice appear in
+supporting electronic documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR AUTHORS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright © 1999 Keith Packard
+Copyright © 2006 Nokia Corporation
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of the authors not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  The authors make no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
 
-http://lists.freedesktop.org/mailman/listinfo/xorg
diff-tree 7fa58385724fa7f441107a1793b601ba3dcb1f4c (from 18ab4d559409d4b682aab99fb75f8d861122eab6)
Author: Arkadiusz Miskiewicz <arekm at maven.pl>
Date:   Wed Aug 1 08:01:28 2007 +0300

    XFree86: xf1bpp: Fix parallel build
    
    One of the constructs wasn't parallel-build safe: fix that.

diff --git a/hw/xfree86/xf1bpp/Makefile.am b/hw/xfree86/xf1bpp/Makefile.am
index 6d510d1..4439f8d 100644
--- a/hw/xfree86/xf1bpp/Makefile.am
+++ b/hw/xfree86/xf1bpp/Makefile.am
@@ -173,10 +173,7 @@ mfbtileG.c:
 	echo "#include \"$(top_srcdir)/mfb/mfbtile.c\"" >> $@
 
 $(libxf1bppmfb_a_SOURCES):
-	for i in $(libxf1bppmfb_a_SOURCES) ; do \
-		echo "#include \"mfbmap.h\"" > $$i ; \
-		echo "#include \"$(top_srcdir)/mfb/$$i\"" >> $$i ; \
-	done
-
+	echo "#include \"mfbmap.h\"" > $$i ; \
+	echo "#include \"$(top_srcdir)/mfb/$$i\"" >> $$i ; \
 
 EXTRA_DIST = mfbmap.sh mfbunmap.sh 
diff-tree 18ab4d559409d4b682aab99fb75f8d861122eab6 (from 0bd6fe7401b2524cf34793c0b0c642e3d32fae00)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 07:27:53 2007 +0300

    Darwin: Remove missing file
    
    Xserver.m is missing and still hasn't been added, so just remove it for now.

diff --git a/hw/darwin/Makefile.am b/hw/darwin/Makefile.am
index b8641bb..b773910 100644
--- a/hw/darwin/Makefile.am
+++ b/hw/darwin/Makefile.am
@@ -36,7 +36,6 @@ Xquartz_SOURCES = \
                   $(top_srcdir)/Xi/stubs.c \
                   apple/X11Application.m \
                   apple/X11Controller.m \
-                  quartz/Xserver.m \
                   quartz/Preferences.m \
                   quartz/applewm.c \
                   quartz/keysym2ucs.c \
diff-tree 0bd6fe7401b2524cf34793c0b0c642e3d32fae00 (from 48b3034d13bbbb69072eb11f4579389cc32b0850)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 07:27:30 2007 +0300

    Config: Add missing include

diff --git a/config/config.c b/config/config.c
index 1067d18..882b699 100644
--- a/config/config.c
+++ b/config/config.c
@@ -27,6 +27,7 @@
 #include <dix-config.h>
 #endif
 
+#include "os.h"
 #include "hotplug.h"
 #include "config-backends.h"
 
diff-tree 48b3034d13bbbb69072eb11f4579389cc32b0850 (from 82b720cf3e09d8a6adcd40b25c4d48b34ba1ae80)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 07:01:51 2007 +0300

    Config: Add current FDI file
    
    Add the FDI file we're using at the moment, until it gets into upstream HAL.

diff --git a/config/x11-input.fdi b/config/x11-input.fdi
new file mode 100644
index 0000000..c0e636f
--- /dev/null
+++ b/config/x11-input.fdi
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deviceinfo version="0.2">
+  <device>
+    <!-- FIXME: Support tablets too. -->
+    <match key="info.capabilities" contains="input.mouse">
+      <merge key="input.x11_driver" type="string">mouse</merge>
+      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+             string="Linux">
+        <merge key="input.x11_driver" type="string">evdev</merge>
+      </match>
+    </match>
+
+    <match key="info.capabilities" contains="input.keys">
+      <merge key="input.xkb_rules" type="string">base</merge>
+
+      <!-- If we're using Linux, we use evdev by default (falling back to
+           keyboard otherwise). -->
+      <merge key="input.x11_driver" type="string">keyboard</merge>
+      <merge key="input.xkb_model" type="string">keyboard</merge>
+      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+             string="Linux">
+        <merge key="input.x11_driver" type="string">evdev</merge>
+        <merge key="input.xkb_model" type="string">evdev</merge>
+      </match>
+
+      <merge key="input.xkb_layout" type="string">us</merge>
+
+      <merge key="input.xkb_variant" type="string" />
+    </match>
+  </device>
+</deviceinfo>
diff-tree 82b720cf3e09d8a6adcd40b25c4d48b34ba1ae80 (from 6b055e5d9751e3679ff98065e43225ec8a960053)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 06:57:11 2007 +0300

    Config: Fix merge detritus

diff --git a/config/Makefile.am b/config/Makefile.am
index e9811c6..0efd6ce 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -12,7 +12,6 @@ if CONFIG_DBUS_API
 dbusconfigdir = $(sysconfdir)/dbus-1/system.d
 dbusconfig_DATA = xorg-server.conf
 
-noinst_LIBRARIES = libconfig.a
 libconfig_a_SOURCES += dbus.c
 endif
 
diff-tree 6b055e5d9751e3679ff98065e43225ec8a960053 (from 0e0174d45ecbeb7b6dddc4af53da9d6211038e0e)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 06:55:36 2007 +0300

    Input: Fix stuck modifiers (bug #11683)
    
    Disclaimer: It's 6:51am.  I'm trying to be as understandable as possible.
    
    What was happening previously was this:
     * Press Alt
     * Extended event generated and processed: state is now Alt down once
     * Core event generated
       - keyboard switched: inherited state is Alt down once
       - event processed: Alt down twice
     * Release Alt
     * Extended event generated and processed: state is now null
     * Core event generated and processed: Alt down once
    
    If we switch the order:
     * Press Alt
     * Core event generated:
      - keyboard switched: inherited state is null
      - event processed: Alt down once
     * Extended event generated and processed: state is now Alt down once
     * Release Alt
     * Core event generated and processed: state is now null
     * Extended event generated and processed: state is now null
    
    When we carry over the previous state, it needs to be the _previous_ state
    (state and modifiersPerKey), assuming that we're going to catch now-core
    events for any of these.  For example, if Ctrl is held down as we pivot, we
    need to carry Ctrl over with a count of one, for which an extended + core
    release will then clear.  Carrying over the union of the previous state _and
    the state resulting from the immediate action_ was what broke things.

diff --git a/dix/getevents.c b/dix/getevents.c
index bc3db79..2a10038 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -445,6 +445,13 @@ GetKeyboardValuatorEvents(xEvent *events
 
     ms = GetTimeInMillis();
 
+    if (pDev->coreEvents) {
+        events->u.keyButtonPointer.time = ms;
+        events->u.u.type = type;
+        events->u.u.detail = key_code;
+        events++;
+    }
+
     kbp = (deviceKeyButtonPointer *) events;
     kbp->time = ms;
     kbp->deviceid = pDev->id;
@@ -462,12 +469,6 @@ GetKeyboardValuatorEvents(xEvent *events
                                    num_valuators, valuators);
     }
 
-    if (pDev->coreEvents) {
-        events->u.keyButtonPointer.time = ms;
-        events->u.u.type = type;
-        events->u.u.detail = key_code;
-    }
-
     return numEvents;
 }
 
@@ -606,8 +607,27 @@ GetPointerEvents(xEvent *events, DeviceI
     pDev->valuator->lastx = x;
     pDev->valuator->lasty = y;
 
-    if (!coreOnly)
-    {
+    /* for some reason inputInfo.pointer does not have coreEvents set */
+    if (coreOnly || pDev->coreEvents) {
+        events->u.u.type = type;
+        events->u.keyButtonPointer.time = ms;
+        events->u.keyButtonPointer.rootX = x;
+        events->u.keyButtonPointer.rootY = y;
+
+        if (type == ButtonPress || type == ButtonRelease) {
+            /* We hijack SetPointerMapping to work on all core-sending
+             * devices, so we use the device-specific map here instead of
+             * the core one. */
+            events->u.u.detail = pDev->button->map[buttons];
+        }
+        else {
+            events->u.u.detail = 0;
+        }
+
+        events++;
+    }
+
+    if (!coreOnly) {
         kbp = (deviceKeyButtonPointer *) events;
         kbp->time = ms;
         kbp->deviceid = pDev->id;
@@ -635,24 +655,6 @@ GetPointerEvents(xEvent *events, DeviceI
         }
     }
 
-    /* for some reason inputInfo.pointer does not have coreEvents set */
-    if (coreOnly || pDev->coreEvents) {
-        events->u.u.type = type;
-        events->u.keyButtonPointer.time = ms;
-        events->u.keyButtonPointer.rootX = x;
-        events->u.keyButtonPointer.rootY = y;
-
-        if (type == ButtonPress || type == ButtonRelease) {
-            /* We hijack SetPointerMapping to work on all core-sending
-             * devices, so we use the device-specific map here instead of
-             * the core one. */
-            events->u.u.detail = pDev->button->map[buttons];
-        }
-        else {
-            events->u.u.detail = 0;
-        }
-    }
-
     return num_events;
 }
 
diff-tree 0e0174d45ecbeb7b6dddc4af53da9d6211038e0e (from cd8e99e56ec5d02026e401cc15e0f8d75f2a4727)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 03:30:07 2007 +0300

    XFree86: Allow disabling of HAL
    
    If NoAutoAddDevices is given as a server flag, then no devices will be added
    from HAL events at all.  If NoAutoEnableDevices is given, then the devices will
    be added (and the DevicePresenceNotify sent), but not enabled, thus leaving
    policy up to the client.

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 48c178b..3c29497 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -777,7 +777,9 @@ typedef enum {
     FLAG_AIGLX,
     FLAG_IGNORE_ABI,
     FLAG_ALLOW_EMPTY_INPUT,
-    FLAG_USE_DEFAULT_FONT_PATH
+    FLAG_USE_DEFAULT_FONT_PATH,
+    FLAG_AUTO_ADD_DEVICES,
+    FLAG_AUTO_ENABLE_DEVICES,
 } FlagValues;
    
 static OptionInfoRec FlagOptions[] = {
@@ -855,6 +857,10 @@ static OptionInfoRec FlagOptions[] = {
 	{0}, FALSE },
   { FLAG_USE_DEFAULT_FONT_PATH,  "UseDefaultFontPath",			OPTV_BOOLEAN,
 	{0}, FALSE },
+  { FLAG_AUTO_ADD_DEVICES,       "AutoAddDevices",                      OPTV_BOOLEAN,
+        {0}, TRUE },
+  { FLAG_AUTO_ENABLE_DEVICES,    "AutoEnableDevices",                   OPTV_BOOLEAN,
+        {0}, TRUE },
   { -1,				NULL,				OPTV_NONE,
 	{0}, FALSE },
 };
@@ -918,6 +924,30 @@ configServerFlags(XF86ConfFlagsPtr flags
 	    xf86Msg(X_CONFIG, "Ignoring ABI Version\n");
     }
 
+    if (xf86IsOptionSet(FlagOptions, FLAG_AUTO_ADD_DEVICES)) {
+        xf86GetOptValBool(FlagOptions, FLAG_AUTO_ADD_DEVICES,
+                          &xf86Info.autoAddDevices);
+        from = X_CONFIG;
+    }
+    else {
+        xf86Info.autoAddDevices = TRUE;
+        from = X_DEFAULT;
+    }
+    xf86Msg(from, "%sutomatically adding devices\n",
+            xf86Info.autoAddDevices ? "A" : "Not a");
+
+    if (xf86IsOptionSet(FlagOptions, FLAG_AUTO_ENABLE_DEVICES)) {
+        xf86GetOptValBool(FlagOptions, FLAG_AUTO_ENABLE_DEVICES,
+                          &xf86Info.autoEnableDevices);
+        from = X_CONFIG;
+    }
+    else {
+        xf86Info.autoEnableDevices = TRUE;
+        from = X_DEFAULT;
+    }
+    xf86Msg(from, "%sutomatically enabling devices\n",
+            xf86Info.autoEnableDevices ? "A" : "Not a");
+
     /*
      * Set things up based on the config file information.  Some of these
      * settings may be overridden later when the command line options are
diff --git a/hw/xfree86/common/xf86Privstr.h b/hw/xfree86/common/xf86Privstr.h
index 7ca0669..09ebb07 100644
--- a/hw/xfree86/common/xf86Privstr.h
+++ b/hw/xfree86/common/xf86Privstr.h
@@ -138,6 +138,9 @@ typedef struct {
 
     Bool        allowEmptyInput;  /* Allow the server to start with no input
                                    * devices. */
+    Bool        autoAddDevices; /* Whether to succeed NIDR, or ignore. */
+    Bool        autoEnableDevices; /* Whether to enable, or let the client
+                                    * control. */
 } xf86InfoRec, *xf86InfoPtr;
 
 #ifdef DPMSExtension
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 79422f7..e45d44c 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -312,6 +312,7 @@ NewInputDeviceRequest (InputOption *opti
     InputOption *option = NULL;
     DeviceIntPtr dev = NULL;
     int rval = Success;
+    int is_auto = 0;
 
     idev = xcalloc(sizeof(*idev), 1);
     if (!idev)
@@ -341,6 +342,7 @@ NewInputDeviceRequest (InputOption *opti
                 goto unwind;
             }
         }
+
         if (strcasecmp(option->key, "name") == 0 ||
             strcasecmp(option->key, "identifier") == 0) {
             if (idev->identifier) {
@@ -353,6 +355,17 @@ NewInputDeviceRequest (InputOption *opti
                 goto unwind;
             }
         }
+
+        /* Right now, the only automatic config we know of is HAL. */
+        if (strcmp(option->key, "_source") == 0 &&
+            strcmp(option->value, "server/hal") == 0) {
+            if (!xf86Info.autoAddDevices) {
+                rval = BadMatch;
+                goto unwind;
+            }
+
+            is_auto = 1;
+        }
     }
     if (!idev->driver || !idev->identifier) {
         xf86Msg(X_ERROR, "No input driver/identifier specified (ignoring)\n");
@@ -395,7 +408,10 @@ NewInputDeviceRequest (InputOption *opti
 
     dev = pInfo->dev;
     ActivateDevice(dev);
-    if (dev->inited && dev->startup && xf86Screens[0]->vtSema)
+    /* Enable it if it's properly initialised, we're currently in the VT, and
+     * either it's a manual request, or we're automatically enabling devices. */
+    if (dev->inited && dev->startup && xf86Screens[0]->vtSema &&
+        (!is_auto || xf86Info.autoEnableDevices))
         EnableDevice(dev);
 
     *pdev = dev;
diff-tree cd8e99e56ec5d02026e401cc15e0f8d75f2a4727 (from 0a31db14b7c7c21ef550dbcc73a9f649f3613cbe)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 03:29:12 2007 +0300

    Input: Don't enable devices when we open them
    
    Thanks to Xi's braindead design, it's otherwise impossible to query input
    devices without enabling them.  Hurrah.

diff --git a/Xi/opendev.c b/Xi/opendev.c
index 4b7b6a6..0b0671d 100644
--- a/Xi/opendev.c
+++ b/Xi/opendev.c
@@ -98,7 +98,6 @@ int
 ProcXOpenDevice(ClientPtr client)
 {
     xInputClassInfo evbase[numInputClasses];
-    Bool enableit = FALSE;
     int j = 0;
     int status = Success;
     xOpenDeviceReply rep;
@@ -121,7 +120,6 @@ ProcXOpenDevice(ClientPtr client)
 	    SendErrorToClient(client, IReqCode, X_OpenDevice, 0, BadDevice);
 	    return Success;
 	}
-	enableit = TRUE;
     }
 
     OpenInputDevice(dev, client, &status);
@@ -129,8 +127,6 @@ ProcXOpenDevice(ClientPtr client)
 	SendErrorToClient(client, IReqCode, X_OpenDevice, 0, status);
 	return Success;
     }
-    if (enableit && dev->inited && dev->startup)
-	(void)EnableDevice(dev);
 
     rep.repType = X_Reply;
     rep.RepType = X_OpenDevice;
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index dca4e32..79422f7 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -204,17 +204,6 @@ OpenInputDevice(DeviceIntPtr	dev,
     if (!dev->inited)
         ActivateDevice(dev);
 
-    if (!dev->public.on) {
-        if (EnableDevice(dev)) {
-            dev->startup = FALSE;
-        }
-        else {
-            ErrorF("couldn't enable device %s\n", dev->name);
-            *status = BadDevice;
-            return;
-        }
-    }
-
     *status = Success;
 }
 
diff-tree 0a31db14b7c7c21ef550dbcc73a9f649f3613cbe (from 89f628394f7d831f2ba1e45c5884c3983bef6031)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 02:54:14 2007 +0300

    Config: D-Bus core: Fix hook removal
    
    Make sure we properly initialise the entire hook when adding it, and
    bust out when we're done removing.

diff --git a/config/dbus-core.c b/config/dbus-core.c
index 008e21a..2888159 100644
--- a/config/dbus-core.c
+++ b/config/dbus-core.c
@@ -200,6 +200,8 @@ config_dbus_core_add_hook(struct config_
 
     for (prev = &bus_info.hooks; *prev; prev = &(*prev)->next)
         ;
+
+    hook->next = NULL;
     *prev = hook;
 
     /* If we're already connected, call the connect hook. */
@@ -215,8 +217,10 @@ config_dbus_core_remove_hook(struct conf
     struct config_dbus_core_hook **prev;
 
     for (prev = &bus_info.hooks; *prev; prev = &(*prev)->next) {
-        if (*prev == hook)
+        if (*prev == hook) {
             *prev = hook->next;
+            break;
+        }
     }
 }
 
diff-tree 89f628394f7d831f2ba1e45c5884c3983bef6031 (from aec0d06469a2fa7440fdd5ee03dc256a68704e77)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 02:08:02 2007 +0300

    XFree86: Input: Fix whitespace

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index f8feeef..dca4e32 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -338,7 +338,7 @@ NewInputDeviceRequest (InputOption *opti
              * test if the module is already loaded first */
             drv = xf86LookupInputDriver(option->value);
             if (!drv)
-                if(xf86LoadOneModule(option->value, NULL))
+                if (xf86LoadOneModule(option->value, NULL))
                     drv = xf86LookupInputDriver(option->value);
             if (!drv) {
                 xf86Msg(X_ERROR, "No input driver matching `%s'\n",
@@ -365,7 +365,7 @@ NewInputDeviceRequest (InputOption *opti
             }
         }
     }
-    if(!idev->driver || !idev->identifier) {
+    if (!idev->driver || !idev->identifier) {
         xf86Msg(X_ERROR, "No input driver/identifier specified (ignoring)\n");
         rval = BadRequest;
         goto unwind;
diff-tree aec0d06469a2fa7440fdd5ee03dc256a68704e77 (from a93033b0bc14ed0bb95c680ded26b63cfe5fd1d3)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Tue Jul 31 16:33:37 2007 -0700

    Fix a crash when rotating the screen.
    
    Remember output->crtc before setting a NULL mode because RRCrtcNotify now sets
    output->crtc to NULL.  Use the saved crtc to set the new mode.

diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index d92a0ff..8798b42 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -738,6 +738,7 @@ ProcRRSetScreenConfig (ClientPtr client)
     int			    rate;
     Bool		    has_rate;
     RROutputPtr		    output;
+    RRCrtcPtr		    crtc;
     RRModePtr		    mode;
     RR10DataPtr		    pData = NULL;
     RRScreenSizePtr    	    pSize;
@@ -783,7 +784,9 @@ ProcRRSetScreenConfig (ClientPtr client)
 	rep.status = RRSetConfigFailed;
 	goto sendReply;
     }
-    
+
+    crtc = output->crtc;
+
     /*
      * if the client's config timestamp is not the same as the last config
      * timestamp, then the config information isn't up-to-date and
@@ -831,7 +834,7 @@ ProcRRSetScreenConfig (ClientPtr client)
 	return BadValue;
     }
 
-    if ((~output->crtc->rotations) & rotation)
+    if ((~crtc->rotations) & rotation)
     {
 	/*
 	 * requested rotation or reflection not supported by screen
@@ -914,7 +917,7 @@ ProcRRSetScreenConfig (ClientPtr client)
 	}
     }
 
-    if (!RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation, 1, &output))
+    if (!RRCrtcSet (crtc, mode, 0, 0, stuff->rotation, 1, &output))
 	rep.status = RRSetConfigFailed;
     else
 	rep.status = RRSetConfigSuccess;
diff-tree a93033b0bc14ed0bb95c680ded26b63cfe5fd1d3 (from 1150969b826e2bd6d8345fa245ed499f2e4cf101)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 01:53:08 2007 +0300

    XFree86: Module: Bump input version
    
    config_info changes the size (and ordering) of DeviceIntRec, so bump the
    input major.

diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
index 4f9c0ca..20d8b44 100644
--- a/hw/xfree86/common/xf86Module.h
+++ b/hw/xfree86/common/xf86Module.h
@@ -84,7 +84,7 @@ typedef enum {
  */
 #define ABI_ANSIC_VERSION	SET_ABI_VERSION(0, 3)
 #define ABI_VIDEODRV_VERSION	SET_ABI_VERSION(2, 0)
-#define ABI_XINPUT_VERSION	SET_ABI_VERSION(1, 1)
+#define ABI_XINPUT_VERSION	SET_ABI_VERSION(2, 0)
 #define ABI_EXTENSION_VERSION	SET_ABI_VERSION(0, 3)
 #define ABI_FONT_VERSION	SET_ABI_VERSION(0, 5)
 
diff-tree 1150969b826e2bd6d8345fa245ed499f2e4cf101 (from 8658f5d923a69fb55b4cd9e1e84c2d271679f6e2)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 01:52:20 2007 +0300

    Convert all my license statements to the standard form
    
    Convert all my license statements to the standard, accepted form:
    cf. <20070717142307.GD13478 at fooishbar.org>
        http://lists.freedesktop.org/archives/xorg/2007-July/026451.html
    
    keithp's license on configure.ac changed with his verbal permission.

diff --git a/config/config-backends.h b/config/config-backends.h
index dd87a86..ce0e5e4 100644
--- a/config/config-backends.h
+++ b/config/config-backends.h
@@ -1,24 +1,26 @@
 /*
  * Copyright © 2006-2007 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the copyright holders and/or authors
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.  The copyright holders
- * and/or authors make no representations about the suitability of this
- * software for any purpose.  It is provided "as is" without express or
- * implied warranty.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
  *
- * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
- * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Author: Daniel Stone <daniel at fooishbar.org>
  */
 
 #ifdef HAVE_DIX_CONFIG_H
diff --git a/config/config.c b/config/config.c
index 837dd00..1067d18 100644
--- a/config/config.c
+++ b/config/config.c
@@ -1,24 +1,26 @@
 /*
  * Copyright © 2006-2007 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the copyright holders and/or authors
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.  The copyright holders
- * and/or authors make no representations about the suitability of this
- * software for any purpose.  It is provided "as is" without express or
- * implied warranty.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
  *
- * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
- * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Author: Daniel Stone <daniel at fooishbar.org>
  */
 
 #ifdef HAVE_DIX_CONFIG_H
diff --git a/config/dbus-core.c b/config/dbus-core.c
index 5cc80e3..008e21a 100644
--- a/config/dbus-core.c
+++ b/config/dbus-core.c
@@ -1,24 +1,26 @@
 /*
  * Copyright © 2006-2007 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the copyright holders and/or authors
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.  The copyright holders
- * and/or authors make no representations about the suitability of this
- * software for any purpose.  It is provided "as is" without express or
- * implied warranty.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
  *
- * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
- * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Author: Daniel Stone <daniel at fooishbar.org>
  */
 
 #ifdef HAVE_DIX_CONFIG_H
diff --git a/config/dbus.c b/config/dbus.c
index 861aa8e..c6f4af0 100644
--- a/config/dbus.c
+++ b/config/dbus.c
@@ -1,24 +1,26 @@
 /*
  * Copyright © 2006-2007 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the copyright holders and/or authors
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.  The copyright holders
- * and/or authors make no representations about the suitability of this
- * software for any purpose.  It is provided "as is" without express or
- * implied warranty.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
  *
- * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
- * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Author: Daniel Stone <daniel at fooishbar.org>
  */
 
 #ifdef HAVE_DIX_CONFIG_H
diff --git a/config/hal.c b/config/hal.c
index 66e4936..f29ba92 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -1,24 +1,26 @@
 /*
- * Copyright © 2006-2007 Daniel Stone
+ * Copyright © 2007 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the copyright holders and/or authors
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.  The copyright holders
- * and/or authors make no representations about the suitability of this
- * software for any purpose.  It is provided "as is" without express or
- * implied warranty.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
  *
- * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
- * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Author: Daniel Stone <daniel at fooishbar.org>
  */
 
 #ifdef HAVE_DIX_CONFIG_H
diff --git a/configure.ac b/configure.ac
index 6752ca9..17da31e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,24 +1,27 @@
-dnl $Id$
+dnl Copyright © 2003-2007 Keith Packard, Daniel Stone
 dnl
-dnl Copyright © 2003-2005 Keith Packard, Daniel Stone
+dnl Permission is hereby granted, free of charge, to any person obtaining a
+dnl copy of this software and associated documentation files (the "Software"),
+dnl to deal in the Software without restriction, including without limitation
+dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
+dnl and/or sell copies of the Software, and to permit persons to whom the
+dnl Software is furnished to do so, subject to the following conditions:
 dnl
-dnl Permission to use, copy, modify, distribute, and sell this software and its
-dnl documentation for any purpose is hereby granted without fee, provided that
-dnl the above copyright notice appear in all copies and that both that
-dnl copyright notice and this permission notice appear in supporting
-dnl documentation, and that the names of Keith Packard and Daniel Stone not be
-dnl used in advertising or publicity pertaining to distribution of the software
-dnl without specific, written prior permission.  Keith Packard and Daniel Stone
-dnl make no representations about the suitability of this software for any
-dnl purpose.  It is provided "as is" without express or implied warranty.
+dnl The above copyright notice and this permission notice (including the next
+dnl paragraph) shall be included in all copies or substantial portions of the
+dnl Software.
 dnl
-dnl KEITH PACKARD AND DANIEL STONE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-dnl SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-dnl IN NO EVENT SHALL KEITH PACKARD OR DANIEL STONE BE LIABLE FOR ANY SPECIAL,
-dnl INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-dnl LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-dnl OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-dnl PERFORMANCE OF THIS SOFTWARE.
+dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+dnl DEALINGS IN THE SOFTWARE.
+dnl
+dnl Authors: Keith Packard <keithp at keithp.com>
+dnl          Daniel Stone <daniel at fooishbar.org>
+dnl          an unwitting cast of miscellaneous others
 dnl
 dnl Process this file with autoconf to create configure.
 
diff --git a/dix/getevents.c b/dix/getevents.c
index 67990f2..bc3db79 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -1,23 +1,25 @@
 /*
  * Copyright © 2006 Nokia Corporation
- * Copyright © 2006 Daniel Stone
+ * Copyright © 2006-2007 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and
- * its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and that
- * both that this copyright notice and this permission notice appear in
- * supporting electronic documentation.
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR AUTHORS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
  *
  * Author: Daniel Stone <daniel at fooishbar.org>
  */
diff --git a/hw/xfree86/os-support/hurd/hurd_bell.c b/hw/xfree86/os-support/hurd/hurd_bell.c
index 2726611..732a1ca 100644
--- a/hw/xfree86/os-support/hurd/hurd_bell.c
+++ b/hw/xfree86/os-support/hurd/hurd_bell.c
@@ -1,22 +1,24 @@
 /*
  * Copyright © 2006 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and
- * its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and that
- * both that this copyright notice and this permission notice appear in
- * supporting electronic documentation.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
  *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
  *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR AUTHORS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
  *
  * Author: Daniel Stone <daniel at fooishbar.org>
  */
diff --git a/hw/xfree86/os-support/linux/lnx_bell.c b/hw/xfree86/os-support/linux/lnx_bell.c
index 6ef881b..93ad680 100644
--- a/hw/xfree86/os-support/linux/lnx_bell.c
+++ b/hw/xfree86/os-support/linux/lnx_bell.c
@@ -1,22 +1,24 @@
 /*
  * Copyright © 2006 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and
- * its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and that
- * both that this copyright notice and this permission notice appear in
- * supporting electronic documentation.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
  *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
  *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR AUTHORS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
  *
  * Author: Daniel Stone <daniel at fooishbar.org>
  */
diff --git a/include/hotplug.h b/include/hotplug.h
index 2a72ab9..b4f1bb6 100644
--- a/include/hotplug.h
+++ b/include/hotplug.h
@@ -1,24 +1,26 @@
 /*
  * Copyright © 2006-2007 Daniel Stone
  *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the copyright holders and/or authors
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.  The copyright holders
- * and/or authors make no representations about the suitability of this
- * software for any purpose.  It is provided "as is" without express or
- * implied warranty.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
  *
- * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
- * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Author: Daniel Stone <daniel at fooishbar.org>
  */
 
 #ifndef HOTPLUG_H
diff-tree 8658f5d923a69fb55b4cd9e1e84c2d271679f6e2 (from aa75b3481724834da2f855d8dd2ff36074bd5706)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 01:10:50 2007 +0300

    Hotplug: Add HAL support
    
    Add support for HAL-based hotplugging, in which we just get the list of
    input devices and properties from HAL.  Requires an FDI which is not yet
    in mainline HAL.

diff --git a/config/Makefile.am b/config/Makefile.am
index 5270344..e9811c6 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -16,4 +16,8 @@ noinst_LIBRARIES = libconfig.a
 libconfig_a_SOURCES += dbus.c
 endif
 
-EXTRA_DIST = xorg-server.conf
+if CONFIG_HAL
+libconfig_a_SOURCES += hal.c
+endif
+
+EXTRA_DIST = xorg-server.conf x11-input.fdi
diff --git a/config/config-backends.h b/config/config-backends.h
index 8a10a3e..dd87a86 100644
--- a/config/config-backends.h
+++ b/config/config-backends.h
@@ -50,3 +50,8 @@ void config_dbus_core_remove_hook(struct
 int config_dbus_init(void);
 void config_dbus_fini(void);
 #endif
+
+#ifdef CONFIG_HAL
+int config_hal_init(void);
+void config_hal_fini(void);
+#endif
diff --git a/config/config.c b/config/config.c
index a6d36c0..837dd00 100644
--- a/config/config.c
+++ b/config/config.c
@@ -31,10 +31,16 @@
 void
 config_init()
 {
-#if defined(CONFIG_DBUS_API)
+#if defined(CONFIG_DBUS_API) || defined(CONFIG_HAL)
     if (config_dbus_core_init()) {
+# ifdef CONFIG_DBUS_API
        if (!config_dbus_init())
 	    ErrorF("[config] failed to initialise D-Bus API\n");
+# endif
+# ifdef CONFIG_HAL
+        if (!config_hal_init())
+            ErrorF("[config] failed to initialise HAL\n");
+# endif
     }
     else {
 	ErrorF("[config] failed to initialise D-Bus core\n");
@@ -45,8 +51,13 @@ config_init()
 void
 config_fini()
 {
-#if defined(CONFIG_DBUS_API)
+#if defined(CONFIG_DBUS_API) || defined(CONFIG_HAL)
+# ifdef CONFIG_HAL
+    config_hal_fini();
+# endif
+# ifdef CONFIG_DBUS_API
     config_dbus_fini();
+# endif
     config_dbus_core_fini();
 #endif
 }
diff --git a/config/hal.c b/config/hal.c
new file mode 100644
index 0000000..66e4936
--- /dev/null
+++ b/config/hal.c
@@ -0,0 +1,369 @@
+/*
+ * Copyright © 2006-2007 Daniel Stone
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders and/or authors
+ * not be used in advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.  The copyright holders
+ * and/or authors make no representations about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or
+ * implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
+ * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#include <dbus/dbus.h>
+#include <hal/libhal.h>
+#include <string.h>
+#include <sys/select.h>
+
+#include "input.h"
+#include "inputstr.h"
+#include "hotplug.h"
+#include "config-backends.h"
+#include "os.h"
+
+#define TYPE_NONE 0
+#define TYPE_KEYS 1
+#define TYPE_POINTER 2
+
+struct config_hal_info {
+    DBusConnection *system_bus;
+    LibHalContext *hal_ctx;
+};
+
+static void
+remove_device(DeviceIntPtr dev)
+{
+    DebugF("[config/hal] removing device %s\n", dev->name);
+
+    /* Call PIE here so we don't try to dereference a device that's
+     * already been removed. */
+    OsBlockSignals();
+    ProcessInputEvents();
+    DeleteInputDeviceRequest(dev);
+    OsReleaseSignals();
+}
+
+static void
+device_removed(LibHalContext *ctx, const char *udi)
+{
+    DeviceIntPtr dev;
+    char *value;
+
+    value = xalloc(strlen(udi) + 5); /* "hal:" + NULL */
+    if (!value)
+        return;
+    sprintf(value, "hal:%s", udi);
+
+    for (dev = inputInfo.devices; dev; dev = dev->next) {
+        if (dev->config_info && strcmp(dev->config_info, value) == 0)
+            remove_device(dev);
+    }
+    for (dev = inputInfo.off_devices; dev; dev = dev->next) {
+        if (dev->config_info && strcmp(dev->config_info, value) == 0)
+            remove_device(dev);
+    }
+
+    xfree(value);
+}
+
+static void
+add_option(InputOption **options, const char *key, const char *value)
+{
+    if (!value || *value == '\0')
+        return;
+
+    for (; *options; options = &(*options)->next)
+        ;
+    *options = xcalloc(sizeof(**options), 1);
+    (*options)->key = xstrdup(key);
+    (*options)->value = xstrdup(value);
+    (*options)->next = NULL;
+}
+
+static char *
+get_prop_string(LibHalContext *hal_ctx, const char *udi, const char *name,
+                DBusError *error)
+{
+    char *prop, *ret;
+
+    prop = libhal_device_get_property_string(hal_ctx, udi, name, error);
+    DebugF(" [config/hal] getting %s on %s returned %s\n", name, udi, prop);
+    if (prop) {
+        ret = xstrdup(prop);
+        libhal_free_string(prop);
+    }
+    else {
+        return NULL;
+    }
+
+    return ret;
+}
+
+static char *
+get_prop_string_array(LibHalContext *hal_ctx, const char *udi, const char *prop,
+                      DBusError *error)
+{
+    char **props, *ret, *str;
+    int i, len = 0;
+
+    props = libhal_device_get_property_strlist(hal_ctx, udi, prop, error);
+    if (props) {
+        for (i = 0; props[i]; i++)
+            len += strlen(props[i]);
+
+        ret = xcalloc(sizeof(char), len + i); /* i - 1 commas, 1 NULL */
+        if (!ret) {
+            libhal_free_string_array(props);
+            return NULL;
+        }
+
+        str = ret;
+        for (i = 0; props[i]; i++) {
+            str = strcpy(str, props[i]);
+            *str++ = ',';
+        }
+        *str = '\0';
+
+        libhal_free_string_array(props);
+    }
+    else {
+        return NULL;
+    }
+
+    return ret;
+}
+
+static void
+device_added(LibHalContext *hal_ctx, const char *udi)
+{
+    char **props;
+    char *path = NULL, *driver = NULL, *name = NULL, *xkb_rules = NULL;
+    char *xkb_model = NULL, *xkb_layout = NULL, *xkb_variant = NULL;
+    char *xkb_options = NULL, *config_info = NULL;
+    InputOption *options = NULL;
+    DeviceIntPtr dev;
+    DBusError error;
+    int type = TYPE_NONE;
+    int i;
+
+    dbus_error_init(&error);
+
+    props = libhal_device_get_property_strlist(hal_ctx, udi,
+                                               "info.capabilities", &error);
+    if (!props) {
+        DebugF("[config/hal] couldn't get capabilities for %s: %s (%s)\n",
+               udi, error.name, error.message);
+        goto out_error;
+    }
+    for (i = 0; props[i]; i++) {
+        /* input.keys is the new, of which input.keyboard is a subset, but
+         * input.keyboard is the old 'we have keys', so we have to keep it
+         * around. */
+        if (strcmp(props[i], "input.keys") == 0 ||
+            strcmp(props[i], "input.keyboard") == 0)
+            type |= TYPE_KEYS;
+        if (strcmp(props[i], "input.mouse") == 0)
+            type |= TYPE_POINTER;
+    }
+    libhal_free_string_array(props);
+
+    if (type == TYPE_NONE)
+        goto out_error;
+
+    driver = get_prop_string(hal_ctx, udi, "input.x11_driver", &error);
+    path = get_prop_string(hal_ctx, udi, "input.device", &error);
+    if (!driver || !path) {
+        DebugF("[config/hal] no driver or path specified for %s\n", udi);
+        goto unwind;
+    }
+    name = get_prop_string(hal_ctx, udi, "info.product", &error);
+    if (!name)
+        name = xstrdup("(unnamed)");
+
+    if (type & TYPE_KEYS) {
+        xkb_rules = get_prop_string(hal_ctx, udi, "input.xkb_rules", &error);
+        xkb_model = get_prop_string(hal_ctx, udi, "input.xkb_model", &error);
+        xkb_layout = get_prop_string(hal_ctx, udi, "input.xkb_layout", &error);
+        xkb_variant = get_prop_string(hal_ctx, udi, "input.xkb_variant",
+                                      &error);
+        xkb_options = get_prop_string_array(hal_ctx, udi, "input.xkb_options",
+                                            &error);
+    }
+
+    options = xcalloc(sizeof(*options), 1);
+    options->key = xstrdup("_source");
+    options->value = xstrdup("server/hal");
+    if (!options->key || !options->value) {
+        ErrorF("[config] couldn't allocate first key/value pair\n");
+        goto unwind;
+    }
+
+    add_option(&options, "path", path);
+    add_option(&options, "driver", driver);
+    add_option(&options, "name", name);
+    config_info = xalloc(strlen(udi) + 5); /* "hal:" and NULL */
+    if (!config_info)
+        goto unwind;
+    sprintf(config_info, "hal:%s", udi);
+
+    if (xkb_model)
+        add_option(&options, "xkb_model", xkb_model);
+    if (xkb_layout)
+        add_option(&options, "xkb_layout", xkb_layout);
+    if (xkb_variant)
+        add_option(&options, "xkb_variant", xkb_variant);
+    if (xkb_options)
+        add_option(&options, "xkb_options", xkb_options);
+
+    if (NewInputDeviceRequest(options, &dev) != Success) {
+        DebugF("[config/hal] NewInputDeviceRequest failed\n");
+        goto unwind;
+    }
+
+    for (; dev; dev = dev->next)
+        dev->config_info = xstrdup(config_info);
+
+unwind:
+    if (path)
+        xfree(path);
+    if (driver)
+        xfree(driver);
+    if (name)
+        xfree(name);
+    if (xkb_rules)
+        xfree(xkb_rules);
+    if (xkb_model)
+        xfree(xkb_model);
+    if (xkb_layout)
+        xfree(xkb_layout);
+    if (xkb_options)
+        xfree(xkb_options);
+    if (config_info)
+        xfree(config_info);
+
+out_error:
+    dbus_error_free(&error);
+
+    return;
+}
+
+static void
+disconnect_hook(void *data)
+{
+    DBusError error;
+    struct config_hal_info *info = data;
+
+    if (info->hal_ctx) {
+        dbus_error_init(&error);
+        if (!libhal_ctx_shutdown(info->hal_ctx, &error))
+            DebugF("[config/hal] couldn't shut down context?\n");
+        libhal_ctx_free(info->hal_ctx);
+        dbus_error_free(&error);
+    }
+
+    info->hal_ctx = NULL;
+    info->system_bus = NULL;
+}
+
+static void
+connect_hook(DBusConnection *connection, void *data)
+{
+    DBusError error;
+    struct config_hal_info *info = data;
+    char **devices;
+    int num_devices, i;
+
+    info->system_bus = connection;
+
+    dbus_error_init(&error);
+
+    if (!info->hal_ctx)
+        info->hal_ctx = libhal_ctx_new();
+    if (!info->hal_ctx) {
+        ErrorF("[config/hal] couldn't create HAL context\n");
+        goto out_err;
+    }
+
+    if (!libhal_ctx_set_dbus_connection(info->hal_ctx, info->system_bus)) {
+        ErrorF("[config/hal] couldn't associate HAL context with bus\n");
+        goto out_ctx;
+    }
+    if (!libhal_ctx_init(info->hal_ctx, &error)) {
+        ErrorF("[config/hal] couldn't initialise context: %s (%s)\n",
+               error.name, error.message);
+        goto out_ctx;
+    }
+    if (!libhal_device_property_watch_all(info->hal_ctx, &error)) {
+        ErrorF("[config/hal] couldn't watch all properties: %s (%s)\n",
+               error.name, error.message);
+        goto out_ctx2;
+    }
+    libhal_ctx_set_device_added(info->hal_ctx, device_added);
+    libhal_ctx_set_device_removed(info->hal_ctx, device_removed);
+
+    devices = libhal_find_device_by_capability(info->hal_ctx, "input",
+                                               &num_devices, &error);
+    for (i = 0; i < num_devices; i++)
+        device_added(info->hal_ctx, devices[i]);
+    libhal_free_string_array(devices);
+
+    dbus_error_free(&error);
+
+    return;
+
+out_ctx2:
+    if (!libhal_ctx_shutdown(info->hal_ctx, &error))
+        DebugF("[config/hal] couldn't shut down context?\n");
+out_ctx:
+    libhal_ctx_free(info->hal_ctx);
+out_err:
+    dbus_error_free(&error);
+
+    info->hal_ctx = NULL;
+    info->system_bus = NULL;
+
+    return;
+}
+
+static struct config_hal_info hal_info;
+static struct config_dbus_core_hook hook = {
+    .connect = connect_hook,
+    .disconnect = disconnect_hook,
+    .data = &hal_info,
+};
+
+int
+config_hal_init(void)
+{
+    memset(&hal_info, 0, sizeof(hal_info));
+    hal_info.system_bus = NULL;
+    hal_info.hal_ctx = NULL;
+
+    if (!config_dbus_core_add_hook(&hook)) {
+        ErrorF("[config/hal] failed to add D-Bus hook\n");
+        return 0;
+    }
+
+    return 1;
+}
+
+void
+config_hal_fini(void)
+{
+    config_dbus_core_remove_hook(&hook);
+}
diff --git a/configure.ac b/configure.ac
index 96439c7..6752ca9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -520,6 +520,7 @@ AC_ARG_ENABLE(dbe,            AS_HELP_ST
 AC_ARG_ENABLE(xf86bigfont,    AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
 AC_ARG_ENABLE(dpms,           AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
 AC_ARG_ENABLE(config-dbus,    AS_HELP_STRING([--disable-config-dbus], [Build D-BUS support (default: auto)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=auto])
+AC_ARG_ENABLE(config-hal,     AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
 AC_ARG_ENABLE(xfree86-utils,     AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
 
 dnl DDXes.
@@ -637,14 +638,29 @@ if test "x$CONFIG_DBUS_API" = xyes; then
 	fi
 
 	AC_DEFINE(CONFIG_DBUS_API, 1, [Use the D-Bus input configuration API])
-	CONFIG_LIB='$(top_builddir)/config/libconfig.a'
 	NEED_DBUS="yes"
 fi
 AM_CONDITIONAL(CONFIG_DBUS_API, [test "x$CONFIG_DBUS_API" = xyes])
 
+PKG_CHECK_MODULES(HAL, hal, [HAVE_HAL=yes], [HAVE_HAL=no])
+if test "x$CONFIG_HAL" = xauto; then
+	CONFIG_HAL="$HAVE_HAL"
+fi
+if test "x$CONFIG_HAL" = xyes; then
+	if ! test "x$HAVE_HAL" = xyes; then
+		AC_MSG_ERROR([HAL hotplug API requested, but HAL is not installed.])
+	fi
+
+	AC_DEFINE(CONFIG_HAL, 1, [Use the HAL hotplug API])
+        REQUIRED_LIBS="$REQUIRED_LIBS hal"
+	NEED_DBUS="yes"
+fi
+AM_CONDITIONAL(CONFIG_HAL, [test "x$CONFIG_HAL" = xyes])
+
 if test "x$NEED_DBUS" = xyes; then
 	REQUIRED_LIBS="$REQUIRED_LIBS dbus-1"
 fi
+CONFIG_LIB='$(top_builddir)/config/libconfig.a'
 
 AM_CONDITIONAL(XV, [test "x$XV" = xyes])
 if test "x$XV" = xyes; then
diff --git a/dix/devices.c b/dix/devices.c
index 57e93bb..923bc0d 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -149,6 +149,7 @@ AddInputDevice(DeviceProc deviceProc, Bo
 #ifdef XKB
     dev->xkb_interest = NULL;
 #endif
+    dev->config_info = NULL;
     dev->nPrivates = 0;
     dev->devPrivates = NULL;
     dev->unwrapProc = NULL;
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index a26abac..ad97605 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -471,6 +471,9 @@
 /* Support the D-Bus hotplug API */
 #undef CONFIG_DBUS_API
 
+/* Support HAL for hotplug */
+#undef CONFIG_HAL
+
 /* Use only built-in fonts */
 #undef BUILTIN_FONTS
 
diff --git a/include/inputstr.h b/include/inputstr.h
index 8f4e9b9..3398949 100644
--- a/include/inputstr.h
+++ b/include/inputstr.h
@@ -326,6 +326,7 @@ typedef struct _DeviceIntRec {
 #else
     void                *pad0;
 #endif
+    char                *config_info; /* used by the hotplug layer */
     DevUnion		*devPrivates;
     int			nPrivates;
     DeviceUnwrapProc    unwrapProc;
diff-tree aa75b3481724834da2f855d8dd2ff36074bd5706 (from 4d238c5c67461ed747aa6c021d1532734f4c63fe)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 01:09:07 2007 +0300

    Hotplug: D-Bus: Dispatch harder
    
    Dispatch until we've got nothing left to dispatch, since apparently
    dispatching will only ever fire a single message ...

diff --git a/config/dbus-core.c b/config/dbus-core.c
index b90e413..5cc80e3 100644
--- a/config/dbus-core.c
+++ b/config/dbus-core.c
@@ -51,8 +51,12 @@ wakeup_handler(pointer data, int err, po
 {
     struct dbus_core_info *info = data;
 
-    if (info->connection && FD_ISSET(info->fd, (fd_set *) read_mask))
-        dbus_connection_read_write_dispatch(info->connection, 0);
+    if (info->connection && FD_ISSET(info->fd, (fd_set *) read_mask)) {
+        do {
+            dbus_connection_read_write_dispatch(info->connection, 0);
+        } while (dbus_connection_get_dispatch_status(info->connection) ==
+                  DBUS_DISPATCH_DATA_REMAINS);
+    }
 }
 
 static void
diff-tree 4d238c5c67461ed747aa6c021d1532734f4c63fe (from 7c9e8fd56e1830f7a971187d14877ebbdf35c4b0)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 01:08:26 2007 +0300

    Input: GetPointerEvents: Deny events from devices without valuators
    
    For some reason, my keyboard has 25 mouse buttons, but zero valuators.  This
    causes GPE to blow up spectacularly, trying to get (and set) co-ordinates from
    devices without valuators.  For now, just prevent this from ever happening,
    and whack a dirty great FIXME in.

diff --git a/dix/getevents.c b/dix/getevents.c
index 8a4f8ed..67990f2 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -499,14 +499,18 @@ GetPointerEvents(xEvent *events, DeviceI
     if ((type == ButtonPress || type == ButtonRelease) && !pDev->button)
         return 0;
 
+    /* FIXME: I guess it should, in theory, be possible to post button events
+     *        from devices without valuators. */
+    if (!pDev->valuator)
+        return 0;
+
     if (!coreOnly && pDev->coreEvents)
         num_events = 2;
     else
         num_events = 1;
 
-    if (type == MotionNotify && num_valuators <= 0) {
+    if (type == MotionNotify && num_valuators <= 0)
         return 0;
-    }
 
     /* Do we need to send a DeviceValuator event? */
     if (!coreOnly && sendValuators) {
diff-tree 7c9e8fd56e1830f7a971187d14877ebbdf35c4b0 (from 0afeb0241a83796575da827bd81375c99ff10af5)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Aug 1 00:19:14 2007 +0300

    Input: Allow enabling and disabling of devices
    
    Add DEVICE_ENABLE to KDrive and XFree86 to allow us to enable and disable
    devices on the fly.

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index e3c3abc..cfd162f 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -2294,6 +2294,7 @@ ChangeDeviceControl(register ClientPtr c
         return Success;
 
     case DEVICE_CORE:
+    case DEVICE_ENABLE:
         return Success;
 
     default:
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index b9f7aed..f8feeef 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -297,6 +297,7 @@ ChangeDeviceControl (ClientPtr client, D
       case DEVICE_RESOLUTION:
       case DEVICE_ABS_CALIB:
       case DEVICE_ABS_AREA:
+      case DEVICE_ENABLE:
         return Success;
       default:
         return BadMatch;
diff-tree 0afeb0241a83796575da827bd81375c99ff10af5 (from 62ec6d09b3adaea82ff52c8672e6f611c15ec56d)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Sun Jul 8 20:48:57 2007 +0300

    DIX: Clean up null root cursor handling
    
    Move the null root cursor handling out of main() and into CreateRootCursor.

diff --git a/dix/cursor.c b/dix/cursor.c
index 5ab562e..d903124 100644
--- a/dix/cursor.c
+++ b/dix/cursor.c
@@ -430,25 +430,41 @@ AllocGlyphCursor(Font source, unsigned s
  *************************************************************/
 
 CursorPtr 
-CreateRootCursor(char *pfilename, unsigned glyph)
+CreateRootCursor(char *unused1, unsigned int unused2)
 {
     CursorPtr 	curs;
+#ifdef NULL_ROOT_CURSOR
+    CursorMetricRec cm;
+#else
     FontPtr 	cursorfont;
     int	err;
     XID		fontID;
+#endif
 
+#ifdef NULL_ROOT_CURSOR
+    cm.width = 0;
+    cm.height = 0;
+    cm.xhot = 0;
+    cm.yhot = 0;
+
+    curs = AllocCursor(NULL, NULL, &cm, 0, 0, 0, 0, 0, 0);
+
+    if (curs == NullCursor)
+        return NullCursor;
+#else
     fontID = FakeClientID(0);
     err = OpenFont(serverClient, fontID, FontLoadAll | FontOpenSync,
-	(unsigned)strlen( pfilename), pfilename);
+	(unsigned)strlen(defaultCursorFont), defaultCursorFont);
     if (err != Success)
 	return NullCursor;
 
     cursorfont = (FontPtr)LookupIDByType(fontID, RT_FONT);
     if (!cursorfont)
 	return NullCursor;
-    if (AllocGlyphCursor(fontID, glyph, fontID, glyph + 1,
+    if (AllocGlyphCursor(fontID, 0, fontID, 1,
 			 0, 0, 0, ~0, ~0, ~0, &curs, serverClient) != Success)
 	return NullCursor;
+#endif
 
     if (!AddResource(FakeClientID(0), RT_CURSOR, (pointer)curs))
 	return NullCursor;
diff --git a/dix/main.c b/dix/main.c
index c5d3783..9fe822b 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -411,22 +411,10 @@ main(int argc, char *argv[], char *envp[
 	    FatalError("could not open default font '%s'", defaultTextFont);
 	}
 
-#ifdef NULL_ROOT_CURSOR
-        cm.width = 0;
-        cm.height = 0;
-        cm.xhot = 0;
-        cm.yhot = 0;
-
-        if (!(rootCursor = AllocCursor(NULL, NULL, &cm, 0, 0, 0, 0, 0, 0))) {
-            FatalError("could not create empty root cursor");
-	}
-        AddResource(FakeClientID(0), RT_CURSOR, (pointer)rootCursor);
-#else
-	if (!(rootCursor = CreateRootCursor(defaultCursorFont, 0))) {
+	if (!(rootCursor = CreateRootCursor(NULL, 0))) {
 	    FatalError("could not open default cursor font '%s'",
 		       defaultCursorFont);
 	}
-#endif
 
 #ifdef DPMSExtension
  	/* check all screens, looking for DPMS Capabilities */
diff-tree 62ec6d09b3adaea82ff52c8672e6f611c15ec56d (from 4d3379d418a781938358e511fd41deb4115a032c)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Sun Jul 8 20:47:28 2007 +0300

    dix.h: Remove duplicate ffs() prototype.

diff --git a/include/dix.h b/include/dix.h
index 2d452d1..c1d609a 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -640,7 +640,4 @@ typedef struct {
 extern int xstrcasecmp(char *s1, char *s2);
 #endif
 
-/* ffs.c */
-extern int ffs(int i);
-
 #endif /* DIX_H */
diff-tree 4d3379d418a781938358e511fd41deb4115a032c (from 9ac7e8a559fe6008cafc95e8264680c50e72ba19)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Sun Jul 8 14:31:35 2007 +0300

    Fonts: Fix builtin fonts
    
    Make sure the font path is always 'built-ins' when we use built-in fonts,
    rather than having it as a fixed path for a while, then clobbering it
    halfway through startup.

diff --git a/configure.ac b/configure.ac
index dfa2b54..96439c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -836,6 +836,7 @@ fi
 if test "x$BUILTIN_FONTS" = xyes; then
        AC_DEFINE(BUILTIN_FONTS, 1, [Use only built-in fonts])
        AC_DEFINE(NOFONTSERVERACCESS, 1, [Avoid using a font server])
+       FONTPATH="built-ins"
 fi
 
 if test "x$XCALIBRATE" = xyes && test "$KDRIVE" = yes; then
diff --git a/dix/main.c b/dix/main.c
index 48d16b1..c5d3783 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -399,14 +399,10 @@ main(int argc, char *argv[], char *envp[
 	    FatalError("failed to initialize core devices");
 
 	InitFonts();
-#ifdef BUILTIN_FONTS
-        defaultFontPath = "built-ins";
-#else
 	if (loadableFonts) {
 	    SetFontPath(0, 0, (unsigned char *)defaultFontPath, &error);
-	} else 
-#endif
-        {
+	}
+        else {
 	    if (SetDefaultFontPath(defaultFontPath) != Success)
 		ErrorF("failed to set default font path '%s'",
 			defaultFontPath);
@@ -414,6 +410,7 @@ main(int argc, char *argv[], char *envp[
 	if (!SetDefaultFont(defaultTextFont)) {
 	    FatalError("could not open default font '%s'", defaultTextFont);
 	}
+
 #ifdef NULL_ROOT_CURSOR
         cm.width = 0;
         cm.height = 0;
@@ -430,6 +427,7 @@ main(int argc, char *argv[], char *envp[
 		       defaultCursorFont);
 	}
 #endif
+
 #ifdef DPMSExtension
  	/* check all screens, looking for DPMS Capabilities */
  	DPMSCapableFlag = DPMSSupported();
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 666a424..bf7dac6 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -982,7 +982,9 @@ OsVendorInit()
   signal(SIGCHLD, SIG_DFL);	/* Need to wait for child processes */
 #endif
   OsDelayInitColors = TRUE;
+#ifndef BUILTIN_FONTS
   loadableFonts = TRUE;
+#endif
 
   if (!beenHere)
     xf86LogInit();
diff-tree 9ac7e8a559fe6008cafc95e8264680c50e72ba19 (from 1cdadc2f43d9069572814510d04b1a560c488fcb)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Sun Jul 8 14:30:53 2007 +0300

    Hotplug: D-Bus: API version 2
    
    Use uint32s instead of int32s where practical, and add an API version
    request.  Also, try to return all devices added, not just the first,
    and box device arguments.

diff --git a/config/dbus-api b/config/dbus-api
index 654c22b..018e986 100644
--- a/config/dbus-api
+++ b/config/dbus-api
@@ -1,4 +1,4 @@
-D-BUS Configuration API v0.1
+D-BUS Configuration API v2
 ----------------------------
 
 The X server will register the bus name org.x.config.displayN, and the 
@@ -7,6 +7,9 @@ object /org/x/config/N, where N is the d
 Currently only hotplugging of input devices is supported.
 
 org.x.config.input:
+    org.x.config.input.version:
+        Returns one unsigned int32, which is the API version.
+
     org.x.config.input.add:
         Takes an argument of key/value option pairs in arrays, e.g.:
          [ss][ss][ss][ss]
@@ -15,18 +18,18 @@ org.x.config.input:
         Option names beginning with _ are not allowed; they are reserved
         for internal use.
 
-        Returns one signed int32, which is the device id of the new device.
-        If the return value is a negative number, it represents the X
-        Status, as defined in X.h. BadMatch will be returned if the options
+        Returns a number of signed int32s.  Positive integers are the
+        device IDs of new devices; negative numbers are X error codes,
+        as defined in X.h.  BadMatch will be returned if the options
         given do not match any device.  BadValue is returned for a malformed
-        message.  (Example: 8 is new device id 8. -8 is BadMatch.)
+        message.  (Example: 8 is new device ID 8; -8 is BadMatch.)
 
         Notably, BadAlloc is never returned: the server internally signals
         to D-BUS that the attempt failed for lack of memory.
 
     org.x.config.input.remove:
-        Takes one int32 argument, which is the device ID to remove, i.e.:
-         i
+        Takes one uint32 argument, which is the device ID to remove, i.e.:
+         u
         is the signature.
 
         Returns one signed int32 which represents an X status as defined in
@@ -34,4 +37,4 @@ org.x.config.input:
 
     org.x.config.input.listDevices:
         Lists the currently active devices. No argument. 
-        Return value is sequence of <id> <name> <id> <name> ...
+        Return value is sequence of [<id> <name>] [<id> <name>] ..., i.e. [us].
diff --git a/config/dbus.c b/config/dbus.c
index 2450e0c..861aa8e 100644
--- a/config/dbus.c
+++ b/config/dbus.c
@@ -36,7 +36,7 @@
 #include "input.h"
 #include "inputstr.h"
 
-#define API_VERSION 1
+#define API_VERSION 2
 
 #define MATCH_RULE "type='method_call',interface='org.x.config.input'"
 
@@ -156,11 +156,17 @@ add_device(DBusMessage *message, DBusMes
         goto unwind;
     }
 
-    if (!dbus_message_iter_append_basic(&reply_iter, DBUS_TYPE_INT32,
-                                        &dev->id)) {
-        ErrorF("[config/dbus] couldn't append to iterator\n");
-        ret = BadAlloc;
-        goto unwind;
+    /* XXX: If we fail halfway through, we don't seem to have any way to
+     *      empty the iterator, so you'll end up with some device IDs,
+     *      plus an error.  This seems to be a shortcoming in the D-Bus
+     *      API. */
+    for (; dev; dev = dev->next) {
+        if (!dbus_message_iter_append_basic(&reply_iter, DBUS_TYPE_INT32,
+                                            &dev->id)) {
+            ErrorF("[config/dbus] couldn't append to iterator\n");
+            ret = BadAlloc;
+            goto unwind;
+        }
     }
 
 unwind:
@@ -198,7 +204,7 @@ remove_device(DBusMessage *message, DBus
     }
     dbus_message_iter_init_append(reply, &reply_iter);
 
-    if (!dbus_message_get_args(message, error, DBUS_TYPE_INT32,
+    if (!dbus_message_get_args(message, error, DBUS_TYPE_UINT32,
                                &deviceid, DBUS_TYPE_INVALID)) {
         MALFORMED_MESSAGE_ERROR();
     }
@@ -232,21 +238,45 @@ static int
 list_devices(DBusMessage *message, DBusMessage *reply, DBusError *error)
 {
     DeviceIntPtr dev;
-    DBusMessageIter iter;
+    DBusMessageIter iter, subiter;
 
     dbus_message_iter_init_append(reply, &iter);
 
     for (dev = inputInfo.devices; dev; dev = dev->next) {
-        if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32,
+        if (!dbus_message_iter_open_container(&iter, DBUS_TYPE_STRUCT, NULL,
+                                              &subiter)) {
+            ErrorF("[config/dbus] couldn't init container\n");
+            return BadAlloc;
+        }
+        if (!dbus_message_iter_append_basic(&subiter, DBUS_TYPE_UINT32,
                                             &dev->id)) {
             ErrorF("[config/dbus] couldn't append to iterator\n");
             return BadAlloc;
         }
-        if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING,
+        if (!dbus_message_iter_append_basic(&subiter, DBUS_TYPE_STRING,
                                             &dev->name)) {
             ErrorF("[config/dbus] couldn't append to iterator\n");
             return BadAlloc;
         }
+        if (!dbus_message_iter_close_container(&iter, &subiter)) {
+            ErrorF("[config/dbus] couldn't close container\n");
+            return BadAlloc;
+        }
+    }
+
+    return Success;
+}
+
+static int
+get_version(DBusMessage *message, DBusMessage *reply, DBusError *error)
+{
+    DBusMessageIter iter;
+    unsigned int version = API_VERSION;
+
+    dbus_message_iter_init_append(reply, &iter);
+    if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &version)) {
+        ErrorF("[config/dbus] couldn't append version\n");
+        return BadAlloc;
     }
 
     return Success;
@@ -282,6 +312,8 @@ message_handler(DBusConnection *connecti
         err = remove_device(message, reply, &error);
     else if (strcmp(dbus_message_get_member(message), "listDevices") == 0)
         err = list_devices(message, reply, &error);
+    else if (strcmp(dbus_message_get_member(message), "version") == 0)
+        err = get_version(message, reply, &error);
     else
         goto err_reply;
 
diff-tree 1cdadc2f43d9069572814510d04b1a560c488fcb (from 8bfa41e1bf3f588780d7e9f6f900b1fde0570a7e)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Sun Jul 8 14:28:58 2007 +0300

    Hotplug: Separate D-Bus into core and hotplug API components
    
    Break up D-Bus into two components: a D-Bus core that can be used by any
    part of the server (for the moment, just the D-Bus hotplug API, and the
    forthcoming HAL hotplug API), and the old D-Bus hotplug API.

diff --git a/config/Makefile.am b/config/Makefile.am
index 43c9aa3..5270344 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,10 +1,19 @@
 AM_CFLAGS = @DIX_CFLAGS@
 
+noinst_LIBRARIES = libconfig.a
+libconfig_a_SOURCES = config.c
+
+if HAVE_DBUS
+AM_CFLAGS += @DBUS_CFLAGS@
+libconfig_a_SOURCES += dbus-core.c
+endif
+
+if CONFIG_DBUS_API
 dbusconfigdir = $(sysconfdir)/dbus-1/system.d
 dbusconfig_DATA = xorg-server.conf
 
 noinst_LIBRARIES = libconfig.a
-
-libconfig_a_SOURCES = config.c
+libconfig_a_SOURCES += dbus.c
+endif
 
 EXTRA_DIST = xorg-server.conf
diff --git a/config/config-backends.h b/config/config-backends.h
new file mode 100644
index 0000000..8a10a3e
--- /dev/null
+++ b/config/config-backends.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright © 2006-2007 Daniel Stone
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders and/or authors
+ * not be used in advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.  The copyright holders
+ * and/or authors make no representations about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or
+ * implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
+ * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#ifdef HAVE_DBUS
+#include <dbus/dbus.h>
+
+typedef void (*config_dbus_core_connect_hook)(DBusConnection *connection,
+                                              void *data);
+typedef void (*config_dbus_core_disconnect_hook)(void *data);
+
+struct config_dbus_core_hook {
+    config_dbus_core_connect_hook connect;
+    config_dbus_core_disconnect_hook disconnect;
+    void *data;
+
+    struct config_dbus_core_hook *next;
+};
+
+int config_dbus_core_init(void);
+void config_dbus_core_fini(void);
+int config_dbus_core_add_hook(struct config_dbus_core_hook *hook);
+void config_dbus_core_remove_hook(struct config_dbus_core_hook *hook);
+#endif
+
+#ifdef CONFIG_DBUS_API
+int config_dbus_init(void);
+void config_dbus_fini(void);
+#endif
diff --git a/config/config.c b/config/config.c
index 9b38faf..a6d36c0 100644
--- a/config/config.c
+++ b/config/config.c
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2006 Daniel Stone
+ * Copyright © 2006-2007 Daniel Stone
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -25,490 +25,28 @@
 #include <dix-config.h>
 #endif
 
-#ifdef HAVE_DBUS
-#define DBUS_API_SUBJECT_TO_CHANGE
-#include <dbus/dbus.h>
-#include <string.h>
-#include <sys/select.h>
-
-#include <X11/X.h>
-
-#include "opaque.h" /* for 'display': there has to be a better way */
-                    /* the above comment lies.  there is no better way. */
-#include "input.h"
-#include "inputstr.h"
 #include "hotplug.h"
-#include "os.h"
-
-#define CONFIG_MATCH_RULE "type='method_call',interface='org.x.config.input'"
-
-#define MALFORMED_MSG "[config] malformed message, dropping"
-#define MALFORMED_MESSAGE() { DebugF(MALFORMED_MSG "\n"); \
-                            ret = BadValue; \
-                            goto unwind; }
-#define MALFORMED_MESSAGE_ERROR() { DebugF(MALFORMED_MSG ": %s, %s", \
-                                       error->name, error->message); \
-                                  ret = BadValue; \
-                                  goto unwind; }
-
-/* How often to attempt reconnecting when we get booted off the bus. */
-#define RECONNECT_DELAY 10000 /* in ms */
-
-struct config_data {
-    int fd;
-    DBusConnection *connection;
-    char busobject[32];
-    char busname[64];
-};
-
-static struct config_data *configData;
-
-static CARD32 configReconnect(OsTimerPtr timer, CARD32 time, pointer arg);
-
-static void
-configWakeupHandler(pointer blockData, int err, pointer pReadMask)
-{
-    struct config_data *data = blockData;
-
-    if (data->connection && FD_ISSET(data->fd, (fd_set *) pReadMask))
-        dbus_connection_read_write_dispatch(data->connection, 0);
-}
-
-static void
-configBlockHandler(pointer data, struct timeval **tv, pointer pReadMask)
-{
-}
-
-static void
-configTeardown(void)
-{
-    if (configData) {
-        RemoveGeneralSocket(configData->fd);
-        RemoveBlockAndWakeupHandlers(configBlockHandler, configWakeupHandler,
-                                     configData);
-        xfree(configData);
-        configData = NULL;
-    }
-}
-
-static int
-configAddDevice(DBusMessage *message, DBusMessageIter *iter, 
-                DBusMessage *reply, DBusMessageIter *r_iter,
-                DBusError *error)
-{
-    DBusMessageIter subiter;
-    InputOption *tmpo = NULL, *options = NULL;
-    char *tmp = NULL;
-    int ret = BadMatch;
-    DeviceIntPtr dev = NULL;
-
-    DebugF("[config] adding device\n");
-
-    /* signature should be [ss][ss]... */
-    options = (InputOption *) xcalloc(sizeof(InputOption), 1);
-    if (!options) {
-        ErrorF("[config] couldn't allocate option\n");
-        return BadAlloc;
-    }
-
-    options->key = xstrdup("_source");
-    options->value = xstrdup("client/dbus");
-    if(!options->key || !options->value) {
-        ErrorF("[config] couldn't allocate first key/value pair\n");
-        ret = BadAlloc;
-        goto unwind;
-    }
-
-    while (dbus_message_iter_get_arg_type(iter) == DBUS_TYPE_ARRAY) {
-        tmpo = (InputOption *) xcalloc(sizeof(InputOption), 1);
-        if (!tmpo) {
-            ErrorF("[config] couldn't allocate option\n");
-            ret = BadAlloc;
-            goto unwind;
-        }
-        tmpo->next = options;
-        options = tmpo;
-
-        dbus_message_iter_recurse(iter, &subiter);
-
-        if (dbus_message_iter_get_arg_type(&subiter) != DBUS_TYPE_STRING)
-            MALFORMED_MESSAGE();
-
-        dbus_message_iter_get_basic(&subiter, &tmp);
-        if (!tmp)
-            MALFORMED_MESSAGE();
-        if (tmp[0] == '_') {
-            ErrorF("[config] attempted subterfuge: option name %s given\n",
-                   tmp);
-            MALFORMED_MESSAGE();
-        }
-        options->key = xstrdup(tmp);
-        if (!options->key) {
-            ErrorF("[config] couldn't duplicate key!\n");
-            ret = BadAlloc;
-            goto unwind;
-        }
-
-        if (!dbus_message_iter_has_next(&subiter))
-            MALFORMED_MESSAGE();
-        dbus_message_iter_next(&subiter);
-        if (dbus_message_iter_get_arg_type(&subiter) != DBUS_TYPE_STRING)
-            MALFORMED_MESSAGE();
-
-        dbus_message_iter_get_basic(&subiter, &tmp);
-        if (!tmp)
-            MALFORMED_MESSAGE();
-        options->value = xstrdup(tmp);
-        if (!options->value) {
-            ErrorF("[config] couldn't duplicate option!\n");
-            ret = BadAlloc;
-            goto unwind;
-        }
-
-        dbus_message_iter_next(iter);
-    }
-
-    ret = NewInputDeviceRequest(options, &dev);
-    if (ret != Success) {
-        DebugF("[config] NewInputDeviceRequest failed\n");
-        goto unwind;
-    }
-
-    if (!dev) {
-        DebugF("[config] NewInputDeviceRequest succeeded, without device\n"); 
-        ret = BadMatch;
-        goto unwind;
-    }
-
-    if (!dbus_message_iter_append_basic(r_iter, DBUS_TYPE_INT32, &(dev->id))) {
-        ErrorF("[config] couldn't append to iterator\n");
-        ret = BadAlloc;
-        goto unwind;
-    }
-
-unwind:
-    if (dev && ret != Success)
-        RemoveDevice(dev);
-
-    while (options) {
-        tmpo = options;
-        options = options->next;
-        if (tmpo->key)
-            xfree(tmpo->key);
-        if (tmpo->value)
-            xfree(tmpo->value);
-        xfree(tmpo);
-    }
-
-    return ret;
-}
-
-static int
-configRemoveDevice(DBusMessage *message, DBusMessageIter *iter,
-                   DBusError *error)
-{
-    int deviceid = -1;
-    int ret = BadMatch;
-    DeviceIntPtr pDev = NULL;
-
-    if (!dbus_message_get_args(message, error, DBUS_TYPE_INT32,
-                               &deviceid, DBUS_TYPE_INVALID)) {
-        MALFORMED_MESSAGE_ERROR();
-    }
-
-    if (deviceid < 0 || !(pDev = LookupDeviceIntRec(deviceid))) {
-        DebugF("[config] bogus device id %d given\n", deviceid);
-        ret = BadMatch;
-        goto unwind;
-    }
-
-    DebugF("[config] removing device %s (id %d)\n", pDev->name, deviceid);
-
-    /* Call PIE here so we don't try to dereference a device that's
-     * already been removed. */
-    OsBlockSignals();
-    ProcessInputEvents();
-    DeleteInputDeviceRequest(pDev);
-    OsReleaseSignals();
-
-    return Success;
-
-unwind:
-    return ret;
-}
-
-static int
-configListDevices(DBusMessage *message, DBusMessageIter *iter,
-                   DBusMessage *reply, DBusMessageIter *r_iter,
-                   DBusError *error)
-{
-    DeviceIntPtr d;
-    int ret = BadMatch;
-
-    for (d = inputInfo.devices; d; d = d->next) {
-        if (!dbus_message_iter_append_basic(r_iter, DBUS_TYPE_INT32,
-                                            &(d->id))) {
-            ErrorF("[config] couldn't append to iterator\n");
-            ret = BadAlloc;
-            goto unwind;
-        }
-        if (!dbus_message_iter_append_basic(r_iter, DBUS_TYPE_STRING,
-                                            &(d->name))) {
-            ErrorF("[config] couldn't append to iterator\n");
-            ret = BadAlloc;
-            goto unwind;
-        }
-    }
-
-unwind:
-    return ret;
-}
-
-static DBusHandlerResult
-configMessage(DBusConnection *connection, DBusMessage *message, void *closure)
-{
-    DBusMessageIter iter;
-    DBusError error;
-    DBusMessage *reply;
-    DBusMessageIter r_iter;
-    DBusConnection *bus = closure;
-    int ret = BadDrawable; /* nonsensical value */
-
-    dbus_error_init(&error);
-
-    DebugF("[config] received a message\n");
-
-    if (strcmp(dbus_message_get_interface(message),
-               "org.x.config.input") == 0) {
-
-        if (!(reply = dbus_message_new_method_return(message))) {
-            ErrorF("[config] failed to create the reply message\n");
-            dbus_error_free(&error);
-            return DBUS_HANDLER_RESULT_NEED_MEMORY;
-        }
-        dbus_message_iter_init_append(reply, &r_iter);
-
-        /* listDevices doesn't take any arguments */
-        if (strcmp(dbus_message_get_member(message), "listDevices") == 0)
-            ret = configListDevices(message, NULL, reply, &r_iter, &error);
-        else 
-        {
-            if (!dbus_message_iter_init(message, &iter)) {
-                ErrorF("[config] failed to init iterator\n");
-                dbus_message_unref(reply);
-                dbus_error_free(&error);
-                return DBUS_HANDLER_RESULT_NEED_MEMORY; /* ?? */
-            }
-
-            if (strcmp(dbus_message_get_member(message), "add") == 0)
-                ret = configAddDevice(message, &iter, reply, &r_iter, &error);
-            else if (strcmp(dbus_message_get_member(message), "remove") == 0)
-                ret = configRemoveDevice(message, &iter, &error);
-        }
-
-        if (ret != BadDrawable && ret != BadAlloc) {
-            if (!strlen(dbus_message_get_signature(reply)))
-            {
-                ret = -ret; /* return errors as negative numbers */
-                if (!dbus_message_iter_append_basic(&r_iter, DBUS_TYPE_INT32, &ret)) {
-                    ErrorF("[config] couldn't append to iterator\n");
-                    dbus_message_unref(reply);
-                    dbus_error_free(&error);
-                    return DBUS_HANDLER_RESULT_HANDLED;
-                }
-            }
-
-            if (!dbus_connection_send(bus, reply, NULL))
-                ErrorF("[config] failed to send reply\n");
-        }
-        dbus_message_unref(reply);
-        dbus_connection_flush(bus);
-    }
-
-    dbus_error_free(&error);
-
-    if (ret == BadAlloc)
-        return DBUS_HANDLER_RESULT_NEED_MEMORY;
-    else if (ret == BadDrawable)
-        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-    else
-        return DBUS_HANDLER_RESULT_HANDLED;
-}
-
-/**
- * This is a filter, which only handles the disconnected signal, which
- * doesn't go to the normal message handling function.  This takes
- * precedence over the message handling function, so have have to be
- * careful to ignore anything we don't want to deal with here.
- *
- * Yes, this is brutally stupid.
- */
-static DBusHandlerResult
-configFilter(DBusConnection *connection, DBusMessage *message, void *closure)
-{
-    if (dbus_message_is_signal(message, DBUS_INTERFACE_LOCAL,
-                                    "Disconnected")) {
-        ErrorF("[dbus] disconnected from bus\n");
-        TimerSet(NULL, 0, RECONNECT_DELAY, configReconnect, NULL);
-        configTeardown();
-        return DBUS_HANDLER_RESULT_HANDLED;
-    }
-
-    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-}
-
-static Bool
-configSetup(void)
-{
-    DBusError error;
-    DBusObjectPathVTable vtable = { .message_function = configMessage };
-
-    if (!configData)
-        configData = (struct config_data *) xcalloc(sizeof(struct config_data), 1);
-    if (!configData) {
-        ErrorF("[dbus] failed to allocate data struct\n");
-        return FALSE;
-    }
-
-    dbus_error_init(&error);
-    configData->connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
-    if (!configData->connection || dbus_error_is_set(&error)) {
-        DebugF("[dbus] some kind of error occurred while connecting: %s (%s)\n",
-               error.name, error.message);
-        dbus_error_free(&error);
-        xfree(configData);
-        configData = NULL;
-        return FALSE;
-    }
-
-    dbus_connection_set_exit_on_disconnect(configData->connection, FALSE);
-
-    if (!dbus_connection_get_unix_fd(configData->connection, &configData->fd)) {
-        dbus_connection_unref(configData->connection);
-        ErrorF("[dbus] couldn't get fd for bus\n");
-        dbus_error_free(&error);
-        xfree(configData);
-        configData = NULL;
-        return FALSE;
-    }
-
-    snprintf(configData->busname, sizeof(configData->busname),
-             "org.x.config.display%d", atoi(display));
-    if (!dbus_bus_request_name(configData->connection, configData->busname,
-                               0, &error) || dbus_error_is_set(&error)) {
-        ErrorF("[dbus] couldn't take over org.x.config: %s (%s)\n",
-               error.name, error.message);
-        dbus_error_free(&error);
-        dbus_connection_unref(configData->connection);
-        xfree(configData);
-        configData = NULL;
-        return FALSE;
-    }
-
-    /* blocks until we get a reply. */
-    dbus_bus_add_match(configData->connection, CONFIG_MATCH_RULE, &error);
-    if (dbus_error_is_set(&error)) {
-        ErrorF("[dbus] couldn't match X.Org rule: %s (%s)\n", error.name,
-               error.message);
-        dbus_error_free(&error);
-        dbus_bus_release_name(configData->connection, configData->busname,
-                              &error);
-        dbus_connection_unref(configData->connection);
-        xfree(configData);
-        configData = NULL;
-        return FALSE;
-    }
-
-    if (!dbus_connection_add_filter(configData->connection, configFilter,
-                                    configData, NULL)) {
-
-        ErrorF("[dbus] couldn't add signal filter: %s (%s)\n", error.name,
-               error.message);
-        dbus_error_free(&error);
-        dbus_bus_release_name(configData->connection, configData->busname,
-                              &error);
-        dbus_bus_remove_match(configData->connection, CONFIG_MATCH_RULE,
-                              &error);
-        dbus_connection_unref(configData->connection);
-        xfree(configData);
-        configData = NULL;
-        return FALSE;
-    }
-
-    snprintf(configData->busobject, sizeof(configData->busobject),
-             "/org/x/config/%d", atoi(display));
-    if (!dbus_connection_register_object_path(configData->connection,
-                                              configData->busobject, &vtable,
-                                              configData->connection)) {
-        ErrorF("[dbus] couldn't register object path\n");
-        dbus_bus_release_name(configData->connection, configData->busname,
-                              &error);
-        dbus_bus_remove_match(configData->connection, CONFIG_MATCH_RULE,
-                              &error);
-        dbus_connection_unref(configData->connection);
-        dbus_error_free(&error);
-        xfree(configData);
-        configData = NULL;
-        return FALSE;
-    }
-
-    DebugF("[dbus] registered object path %s\n", configData->busobject);
-
-    dbus_error_free(&error);
-    AddGeneralSocket(configData->fd);
-
-    RegisterBlockAndWakeupHandlers(configBlockHandler, configWakeupHandler,
-                                   configData);
-
-    return TRUE;
-}
-
-static CARD32
-configReconnect(OsTimerPtr timer, CARD32 time, pointer arg)
-{
-    if (configSetup())
-        return 0;
-    else
-        return RECONNECT_DELAY;
-}
-
-void
-configInitialise(void)
-{
-    TimerSet(NULL, 0, 1, configReconnect, NULL);
-}
+#include "config-backends.h"
 
 void
-configFini(void)
+config_init()
 {
-    DBusError error;
-
-    if (configData) {
-        dbus_error_init(&error);
-        dbus_connection_unregister_object_path(configData->connection,
-                                               configData->busobject);
-        dbus_connection_remove_filter(configData->connection, configFilter,
-                                      configData);
-        dbus_bus_remove_match(configData->connection, CONFIG_MATCH_RULE,
-                              &error);
-        dbus_bus_release_name(configData->connection, configData->busname,
-                              &error);
-        dbus_connection_unref(configData->connection);
-        dbus_error_free(&error);
-        configTeardown();
+#if defined(CONFIG_DBUS_API)
+    if (config_dbus_core_init()) {
+       if (!config_dbus_init())
+	    ErrorF("[config] failed to initialise D-Bus API\n");
     }
-}
-
-#else /* !HAVE_DBUS */
-
-void
-configInitialise()
-{
+    else {
+	ErrorF("[config] failed to initialise D-Bus core\n");
+    }
+#endif
 }
 
 void
-configFini()
+config_fini()
 {
+#if defined(CONFIG_DBUS_API)
+    config_dbus_fini();
+    config_dbus_core_fini();
+#endif
 }
-
-#endif /* HAVE_DBUS */
diff --git a/config/dbus-core.c b/config/dbus-core.c
new file mode 100644
index 0000000..b90e413
--- /dev/null
+++ b/config/dbus-core.c
@@ -0,0 +1,233 @@
+/*
+ * Copyright © 2006-2007 Daniel Stone
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders and/or authors
+ * not be used in advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.  The copyright holders
+ * and/or authors make no representations about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or
+ * implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
+ * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#define DBUS_API_SUBJECT_TO_CHANGE
+#include <dbus/dbus.h>
+#include <sys/select.h>
+
+#include "config-backends.h"
+#include "dix.h"
+#include "os.h"
+
+/* How often to attempt reconnecting when we get booted off the bus. */
+#define RECONNECT_DELAY (10 * 1000) /* in ms */
+
+struct dbus_core_info {
+    int fd;
+    DBusConnection *connection;
+    OsTimerPtr timer;
+    struct config_dbus_core_hook *hooks;
+};
+static struct dbus_core_info bus_info;
+
+static CARD32 reconnect_timer(OsTimerPtr timer, CARD32 time, pointer arg);
+
+static void
+wakeup_handler(pointer data, int err, pointer read_mask)
+{
+    struct dbus_core_info *info = data;
+
+    if (info->connection && FD_ISSET(info->fd, (fd_set *) read_mask))
+        dbus_connection_read_write_dispatch(info->connection, 0);
+}
+
+static void
+block_handler(pointer data, struct timeval **tv, pointer read_mask)
+{
+}
+
+/**
+ * Disconnect (if we haven't already been forcefully disconnected), clean up
+ * after ourselves, and call all registered disconnect hooks.
+ */
+static void
+teardown(void)
+{
+    struct config_dbus_core_hook *hook;
+
+    if (bus_info.timer) {
+        TimerCancel(bus_info.timer);
+        bus_info.timer = NULL;
+    }
+
+    /* We should really have pre-disconnect hooks and run them here, for
+     * completeness.  But then it gets awkward, given that you can't
+     * guarantee that they'll be called ... */
+    if (bus_info.connection)
+        dbus_connection_unref(bus_info.connection);
+
+    RemoveBlockAndWakeupHandlers(block_handler, wakeup_handler, &bus_info);
+    RemoveGeneralSocket(bus_info.fd);
+    bus_info.fd = -1;
+    bus_info.connection = NULL;
+
+    for (hook = bus_info.hooks; hook; hook = hook->next) {
+        if (hook->disconnect)
+            hook->disconnect(hook->data);
+    }
+}
+
+/**
+ * This is a filter, which only handles the disconnected signal, which
+ * doesn't go to the normal message handling function.  This takes
+ * precedence over the message handling function, so have have to be
+ * careful to ignore anything we don't want to deal with here.
+ */
+static DBusHandlerResult
+message_filter(DBusConnection *connection, DBusMessage *message, void *data)
+{
+    /* If we get disconnected, then take everything down, and attempt to
+     * reconnect immediately (assuming it's just a restart).  The
+     * connection isn't valid at this point, so throw it out immediately. */
+    if (dbus_message_is_signal(message, DBUS_INTERFACE_LOCAL,
+                                    "Disconnected")) {
+        DebugF("[config/dbus-core] disconnected from bus\n");
+        bus_info.connection = NULL;
+        teardown();
+
+        bus_info.timer = TimerSet(NULL, 0, 1, reconnect_timer, NULL);
+
+        return DBUS_HANDLER_RESULT_HANDLED;
+    }
+
+    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+/**
+ * Attempt to connect to the system bus, and set a filter to deal with
+ * disconnection (see message_filter above).
+ *
+ * @return 1 on success, 0 on failure.
+ */
+static int
+connect_to_bus(void)
+{
+    DBusError error;
+    struct config_dbus_core_hook *hook;
+
+    dbus_error_init(&error);
+    bus_info.connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
+    if (!bus_info.connection || dbus_error_is_set(&error)) {
+        DebugF("[config/dbus-core] error connecting to system bus: %s (%s)\n",
+               error.name, error.message);
+        goto err_begin;
+    }
+
+    /* Thankyou.  Really, thankyou. */
+    dbus_connection_set_exit_on_disconnect(bus_info.connection, FALSE);
+
+    if (!dbus_connection_get_unix_fd(bus_info.connection, &bus_info.fd)) {
+        ErrorF("[config/dbus-core] couldn't get fd for system bus\n");
+        goto err_unref;
+    }
+
+    if (!dbus_connection_add_filter(bus_info.connection, message_filter,
+                                    &bus_info, NULL)) {
+        ErrorF("[config/dbus-core] couldn't add filter: %s (%s)\n", error.name,
+               error.message);
+        goto err_fd;
+    }
+
+    dbus_error_free(&error);
+    AddGeneralSocket(bus_info.fd);
+
+    RegisterBlockAndWakeupHandlers(block_handler, wakeup_handler, &bus_info);
+
+    for (hook = bus_info.hooks; hook; hook = hook->next) {
+        if (hook->connect)
+            hook->connect(bus_info.connection, hook->data);
+    }
+
+    return 1;
+
+err_fd:
+    bus_info.fd = -1;
+err_unref:
+    dbus_connection_unref(bus_info.connection);
+    bus_info.connection = NULL;
+err_begin:
+    dbus_error_free(&error);
+
+    return 0;
+}
+
+static CARD32
+reconnect_timer(OsTimerPtr timer, CARD32 time, pointer arg)
+{
+    if (connect_to_bus()) {
+        bus_info.timer = NULL;
+        return 0;
+    }
+    else {
+        return RECONNECT_DELAY;
+    }
+}
+
+int
+config_dbus_core_add_hook(struct config_dbus_core_hook *hook)
+{
+    struct config_dbus_core_hook **prev;
+
+    for (prev = &bus_info.hooks; *prev; prev = &(*prev)->next)
+        ;
+    *prev = hook;
+
+    /* If we're already connected, call the connect hook. */
+    if (bus_info.connection)
+        hook->connect(bus_info.connection, hook->data);
+
+    return 1;
+}
+
+void
+config_dbus_core_remove_hook(struct config_dbus_core_hook *hook)
+{
+    struct config_dbus_core_hook **prev;
+
+    for (prev = &bus_info.hooks; *prev; prev = &(*prev)->next) {
+        if (*prev == hook)
+            *prev = hook->next;
+    }
+}
+
+int
+config_dbus_core_init(void)
+{
+    memset(&bus_info, 0, sizeof(bus_info));
+    bus_info.fd = -1;
+    bus_info.hooks = NULL;
+    bus_info.connection = NULL;
+    bus_info.timer = TimerSet(NULL, 0, 1, reconnect_timer, NULL);
+
+    return 1;
+}
+
+void
+config_dbus_core_fini(void)
+{
+    teardown();
+}
diff --git a/config/dbus.c b/config/dbus.c
new file mode 100644
index 0000000..2450e0c
--- /dev/null
+++ b/config/dbus.c
@@ -0,0 +1,407 @@
+/*
+ * Copyright © 2006-2007 Daniel Stone
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders and/or authors
+ * not be used in advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.  The copyright holders
+ * and/or authors make no representations about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or
+ * implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS AND/OR AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD
+ * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND/OR AUTHORS BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#define DBUS_API_SUBJECT_TO_CHANGE
+#include <dbus/dbus.h>
+#include <string.h>
+
+#include <X11/X.h>
+
+#include "config-backends.h"
+#include "opaque.h" /* for 'display': there should be a better way. */
+#include "input.h"
+#include "inputstr.h"
+
+#define API_VERSION 1
+
+#define MATCH_RULE "type='method_call',interface='org.x.config.input'"
+
+#define MALFORMED_MSG "[config/dbus] malformed message, dropping"
+#define MALFORMED_MESSAGE() { DebugF(MALFORMED_MSG "\n"); \
+                            ret = BadValue; \
+                            goto unwind; }
+#define MALFORMED_MESSAGE_ERROR() { DebugF(MALFORMED_MSG ": %s, %s", \
+                                       error->name, error->message); \
+                                  ret = BadValue; \
+                                  goto unwind; }
+
+struct connection_info {
+    char busobject[32];
+    char busname[64];
+    DBusConnection *connection;
+};
+
+static void
+reset_info(struct connection_info *info)
+{
+    info->connection = NULL;
+    info->busname[0] = '\0';
+    info->busobject[0] = '\0';
+}
+
+static int
+add_device(DBusMessage *message, DBusMessage *reply, DBusError *error)
+{
+    DBusMessageIter iter, reply_iter, subiter;
+    InputOption *tmpo = NULL, *options = NULL;
+    char *tmp = NULL;
+    int ret, err;
+    DeviceIntPtr dev = NULL;
+
+    if (!dbus_message_iter_init(message, &iter)) {
+        ErrorF("[config/dbus] couldn't initialise iterator\n");
+        return BadAlloc;
+    }
+    dbus_message_iter_init_append(reply, &reply_iter);
+
+    options = xcalloc(sizeof(*options), 1);
+    if (!options) {
+        ErrorF("[config/dbus] couldn't allocate option\n");
+        return BadAlloc;
+    }
+
+    options->key = xstrdup("_source");
+    options->value = xstrdup("client/dbus");
+    if (!options->key || !options->value) {
+        ErrorF("[config/dbus] couldn't allocate first key/value pair\n");
+        ret = BadAlloc;
+        goto unwind;
+    }
+
+    /* signature should be [ss][ss]... */
+    while (dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_ARRAY) {
+        tmpo = xcalloc(sizeof(*tmpo), 1);
+        if (!tmpo) {
+            ErrorF("[config/dbus] couldn't allocate option\n");
+            ret = BadAlloc;
+            goto unwind;
+        }
+        tmpo->next = options;
+        options = tmpo;
+
+        dbus_message_iter_recurse(&iter, &subiter);
+
+        if (dbus_message_iter_get_arg_type(&subiter) != DBUS_TYPE_STRING)
+            MALFORMED_MESSAGE();
+
+        dbus_message_iter_get_basic(&subiter, &tmp);
+        if (!tmp)
+            MALFORMED_MESSAGE();
+        /* The _ prefix refers to internal settings, and may not be given by
+         * the client. */
+        if (tmp[0] == '_') {
+            ErrorF("[config/dbus] attempted subterfuge: option name %s given\n",
+                   tmp);
+            MALFORMED_MESSAGE();
+        }
+        options->key = xstrdup(tmp);
+        if (!options->key) {
+            ErrorF("[config/dbus] couldn't duplicate key!\n");
+            ret = BadAlloc;
+            goto unwind;
+        }
+
+        if (!dbus_message_iter_has_next(&subiter))
+            MALFORMED_MESSAGE();
+        dbus_message_iter_next(&subiter);
+        if (dbus_message_iter_get_arg_type(&subiter) != DBUS_TYPE_STRING)
+            MALFORMED_MESSAGE();
+
+        dbus_message_iter_get_basic(&subiter, &tmp);
+        if (!tmp)
+            MALFORMED_MESSAGE();
+        options->value = xstrdup(tmp);
+        if (!options->value) {
+            ErrorF("[config] couldn't duplicate option!\n");
+            ret = BadAlloc;
+            goto unwind;
+        }
+
+        dbus_message_iter_next(&iter);
+    }
+
+    ret = NewInputDeviceRequest(options, &dev);
+    if (ret != Success) {
+        DebugF("[config/dbus] NewInputDeviceRequest failed\n");
+        goto unwind;
+    }
+
+    if (!dev) {
+        DebugF("[config/dbus] NewInputDeviceRequest provided no device\n");
+        ret = BadImplementation;
+        goto unwind;
+    }
+
+    if (!dbus_message_iter_append_basic(&reply_iter, DBUS_TYPE_INT32,
+                                        &dev->id)) {
+        ErrorF("[config/dbus] couldn't append to iterator\n");
+        ret = BadAlloc;
+        goto unwind;
+    }
+
+unwind:
+    if (ret != Success) {
+        if (dev)
+            RemoveDevice(dev);
+
+        err = -ret;
+        dbus_message_iter_append_basic(&reply_iter, DBUS_TYPE_INT32, &err);
+    }
+
+    while (options) {
+        tmpo = options;
+        options = options->next;
+        if (tmpo->key)
+            xfree(tmpo->key);
+        if (tmpo->value)
+            xfree(tmpo->value);
+        xfree(tmpo);
+    }
+
+    return ret;
+}
+
+static int
+remove_device(DBusMessage *message, DBusMessage *reply, DBusError *error)
+{
+    int deviceid, ret, err;
+    DeviceIntPtr dev;
+    DBusMessageIter iter, reply_iter;
+
+    if (!dbus_message_iter_init(message, &iter)) {
+        ErrorF("[config] failed to init iterator\n");
+        return BadAlloc;
+    }
+    dbus_message_iter_init_append(reply, &reply_iter);
+
+    if (!dbus_message_get_args(message, error, DBUS_TYPE_INT32,
+                               &deviceid, DBUS_TYPE_INVALID)) {
+        MALFORMED_MESSAGE_ERROR();
+    }
+
+    dev = LookupDeviceIntRec(deviceid);
+    if (!dev) {
+        DebugF("[config] bogus device id %d given\n", deviceid);
+        ret = BadMatch;
+        goto unwind;
+    }
+
+    DebugF("[config] removing device %s (id %d)\n", dev->name, deviceid);
+
+    /* Call PIE here so we don't try to dereference a device that's
+     * already been removed. */
+    OsBlockSignals();
+    ProcessInputEvents();
+    DeleteInputDeviceRequest(dev);
+    OsReleaseSignals();
+
+    ret = Success;
+
+unwind:
+    err = (ret == Success) ? ret : -ret;
+    dbus_message_iter_append_basic(&reply_iter, DBUS_TYPE_INT32, &err);
+
+    return ret;
+}
+
+static int
+list_devices(DBusMessage *message, DBusMessage *reply, DBusError *error)
+{
+    DeviceIntPtr dev;
+    DBusMessageIter iter;
+
+    dbus_message_iter_init_append(reply, &iter);
+
+    for (dev = inputInfo.devices; dev; dev = dev->next) {
+        if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32,
+                                            &dev->id)) {
+            ErrorF("[config/dbus] couldn't append to iterator\n");
+            return BadAlloc;
+        }
+        if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING,
+                                            &dev->name)) {
+            ErrorF("[config/dbus] couldn't append to iterator\n");
+            return BadAlloc;
+        }
+    }
+
+    return Success;
+}
+
+static DBusHandlerResult
+message_handler(DBusConnection *connection, DBusMessage *message, void *data)
+{
+    DBusError error;
+    DBusMessage *reply;
+    struct connection_info *info = data;
+
+    /* ret is the overall D-Bus handler result, whereas err is the internal
+     * X error from our individual functions. */
+    int ret = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+    int err;
+
+    DebugF("[config/dbus] received a message for %s\n",
+           dbus_message_get_interface(message));
+
+    dbus_error_init(&error);
+
+    reply = dbus_message_new_method_return(message);
+    if (!reply) {
+        ErrorF("[config/dbus] failed to create reply\n");
+        ret = DBUS_HANDLER_RESULT_NEED_MEMORY;
+        goto err_start;
+    }
+
+    if (strcmp(dbus_message_get_member(message), "add") == 0)
+        err = add_device(message, reply, &error);
+    else if (strcmp(dbus_message_get_member(message), "remove") == 0)
+        err = remove_device(message, reply, &error);
+    else if (strcmp(dbus_message_get_member(message), "listDevices") == 0)
+        err = list_devices(message, reply, &error);
+    else
+        goto err_reply;
+
+    /* Failure to allocate is a special case. */
+    if (err == BadAlloc) {
+        ret = DBUS_HANDLER_RESULT_NEED_MEMORY;
+        goto err_reply;
+    }
+
+    /* While failure here is always an OOM, we don't return that,
+     * since that would result in devices being double-added/removed. */
+    if (dbus_connection_send(info->connection, reply, NULL))
+        dbus_connection_flush(info->connection);
+    else
+        ErrorF("[config/dbus] failed to send reply\n");
+
+    ret = DBUS_HANDLER_RESULT_HANDLED;
+
+err_reply:
+    dbus_message_unref(reply);
+err_start:
+    dbus_error_free(&error);
+
+    return ret;
+}
+
+static void
+connect_hook(DBusConnection *connection, void *data)
+{
+    DBusError error;
+    DBusObjectPathVTable vtable = { .message_function = message_handler, };
+    struct connection_info *info = data;
+
+    info->connection = connection;
+
+    dbus_error_init(&error);
+
+    if (!dbus_bus_request_name(info->connection, info->busname,
+                               0, &error)) {
+        ErrorF("[config/dbus] couldn't take over org.x.config: %s (%s)\n",
+               error.name, error.message);
+        goto err_start;
+    }
+
+    /* blocks until we get a reply. */
+    dbus_bus_add_match(info->connection, MATCH_RULE, &error);
+    if (dbus_error_is_set(&error)) {
+        ErrorF("[config/dbus] couldn't add match: %s (%s)\n", error.name,
+               error.message);
+        goto err_name;
+    }
+
+    if (!dbus_connection_register_object_path(info->connection,
+                                              info->busobject, &vtable,
+                                              info)) {
+        ErrorF("[config/dbus] couldn't register object path\n");
+        goto err_match;
+    }
+
+    DebugF("[dbus] registered %s, %s\n", info->busname, info->busobject);
+
+    dbus_error_free(&error);
+
+    return;
+
+err_match:
+    dbus_bus_remove_match(info->connection, MATCH_RULE, &error);
+err_name:
+    dbus_bus_release_name(info->connection, info->busname, &error);
+err_start:
+    dbus_error_free(&error);
+
+    reset_info(info);
+}
+
+static void
+disconnect_hook(void *data)
+{
+    struct connection_info *info = data;
+
+    reset_info(info);
+}
+
+#if 0
+void
+pre_disconnect_hook(void)
+{
+    DBusError error;
+
+    dbus_error_init(&error);
+    dbus_connection_unregister_object_path(connection_data->connection,
+                                           connection_data->busobject);
+    dbus_bus_remove_match(connection_data->connection, MATCH_RULE,
+                          &error);
+    dbus_bus_release_name(connection_data->connection,
+                          connection_data->busname, &error);
+    dbus_error_free(&error);
+}
+#endif
+
+static struct connection_info connection_data;
+static struct config_dbus_core_hook core_hook = {
+    .connect = connect_hook,
+    .disconnect = disconnect_hook,
+    .data = &connection_data,
+};
+
+int
+config_dbus_init(void)
+{
+    snprintf(connection_data.busname, sizeof(connection_data.busname),
+             "org.x.config.display%d", atoi(display));
+    snprintf(connection_data.busobject, sizeof(connection_data.busobject),
+             "/org/x/config/%d", atoi(display));
+
+    return config_dbus_core_add_hook(&core_hook);
+}
+
+void
+config_dbus_fini(void)
+{
+    config_dbus_core_remove_hook(&core_hook);
+}
diff --git a/configure.ac b/configure.ac
index d641bfe..dfa2b54 100644
--- a/configure.ac
+++ b/configure.ac
@@ -519,7 +519,7 @@ AC_ARG_ENABLE(fontcache,      AS_HELP_ST
 AC_ARG_ENABLE(dbe,            AS_HELP_STRING([--disable-dbe], [Build DBE extension (default: enabled)]), [DBE=$enableval], [DBE=yes])
 AC_ARG_ENABLE(xf86bigfont,    AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
 AC_ARG_ENABLE(dpms,           AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
-AC_ARG_ENABLE(dbus,           AS_HELP_STRING([--disable-dbus], [Build D-BUS support (default: auto)]), [DBUS=$enableval], [DBUS=auto])
+AC_ARG_ENABLE(config-dbus,    AS_HELP_STRING([--disable-config-dbus], [Build D-BUS support (default: auto)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=auto])
 AC_ARG_ENABLE(xfree86-utils,     AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
 
 dnl DDXes.
@@ -619,17 +619,32 @@ dnl Core modules for most extensions, et
 REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto [xproto >= 7.0.9] xtrans [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto [inputproto >= 1.4.2] [kbproto >= 1.0.3]"
 REQUIRED_LIBS="xfont xau fontenc $PIXMAN"
 
-if test "x$DBUS" = xauto; then
-       PKG_CHECK_MODULES(DBUS, dbus-1, [DBUS=yes], [DBUS=no])
+dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
+dnl CONFIG_DBUS_API is true if we want to enable the D-Bus config
+dnl API.
+PKG_CHECK_MODULES(DBUS, dbus-1, [HAVE_DBUS=yes], [HAVE_DBUS=no])
+if test "x$HAVE_DBUS" = xyes; then
+	AC_DEFINE(HAVE_DBUS, 1, [Have D-Bus support])
 fi
-if test "x$DBUS" = xyes; then
-       PKG_CHECK_MODULES(DBUS, dbus-1)
-       AC_DEFINE(HAVE_DBUS, 1, [Have D-BUS support])
-       REQUIRED_MODULES="$REQUIRED_MODULES dbus-1"
-       REQUIRED_LIBS="$REQUIRED_LIBS dbus-1"
+AM_CONDITIONAL(HAVE_DBUS, [test "x$HAVE_DBUS" = xyes])
+
+if test "x$CONFIG_DBUS_API" = xauto; then
+	CONFIG_DBUS_API="$HAVE_DBUS"
+fi
+if test "x$CONFIG_DBUS_API" = xyes; then
+	if ! test "x$HAVE_DBUS" = xyes; then
+		AC_MSG_ERROR([D-Bus configuration API requested, but D-Bus is not installed.])
+	fi
+
+	AC_DEFINE(CONFIG_DBUS_API, 1, [Use the D-Bus input configuration API])
+	CONFIG_LIB='$(top_builddir)/config/libconfig.a'
+	NEED_DBUS="yes"
+fi
+AM_CONDITIONAL(CONFIG_DBUS_API, [test "x$CONFIG_DBUS_API" = xyes])
+
+if test "x$NEED_DBUS" = xyes; then
+	REQUIRED_LIBS="$REQUIRED_LIBS dbus-1"
 fi
-CONFIG_LIB='$(top_builddir)/config/libconfig.a'
-AM_CONDITIONAL(DBUS, [test "x$DBUS" = xyes])
 
 AM_CONDITIONAL(XV, [test "x$XV" = xyes])
 if test "x$XV" = xyes; then
diff --git a/dix/main.c b/dix/main.c
index 7984137..48d16b1 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -310,7 +310,7 @@ main(int argc, char *argv[], char *envp[
 	InitBlockAndWakeupHandlers();
 	/* Perform any operating system dependent initializations you'd like */
 	OsInit();
-        configInitialise();
+        config_init();
 	if(serverGeneration == 1)
 	{
 	    CreateWellKnownSockets();
@@ -482,7 +482,7 @@ main(int argc, char *argv[], char *envp[
 	FreeAllResources();
 #endif
 
-        configFini();
+        config_fini();
 	CloseDownDevices();
 	for (i = screenInfo.numScreens - 1; i >= 0; i--)
 	{
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index 919da60..a26abac 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -465,9 +465,12 @@
 /* Define to 1 if modules should avoid the libcwrapper */
 #undef NO_LIBCWRAPPER
 
-/* Support D-BUS */
+/* Support D-Bus */
 #undef HAVE_DBUS
 
+/* Support the D-Bus hotplug API */
+#undef CONFIG_DBUS_API
+
 /* Use only built-in fonts */
 #undef BUILTIN_FONTS
 
diff --git a/include/hotplug.h b/include/hotplug.h
index 8831b1e..2a72ab9 100644
--- a/include/hotplug.h
+++ b/include/hotplug.h
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2006 Daniel Stone
+ * Copyright © 2006-2007 Daniel Stone
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -21,10 +21,10 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef HOTPLUG_H
+#define HOTPLUG_H
 
-void configInitialise(void);
-void configFini(void);
+void config_init(void);
+void config_fini(void);
 
-#endif /* CONFIG_H */
+#endif /* HOTPLUG_H */
diff-tree 8bfa41e1bf3f588780d7e9f6f900b1fde0570a7e (from 06dd2748da8b7af343f6cab409b9f351567de5f3)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Sun Jul 8 04:29:43 2007 +0300

    gitignore: Add automake lex/yacc wrapper

diff --git a/.gitignore b/.gitignore
index 62b5fd6..e4b3d31 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@ install-sh
 libtool
 ltmain.sh
 missing
+ylwrap
 xorg-server.pc
 stamp-h?
 do-not-use-config.h
diff-tree 06dd2748da8b7af343f6cab409b9f351567de5f3 (from fd10312b4224197b937d9e696b53dc2a16c8912f)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Sun Jul 8 00:27:40 2007 +0300

    configure.ac: Properly check XFree86 proto modules
    
    Not sure why these are conditionals, anyway.  This one really needs
    revisiting, but at least causes configure, rather than the compilation,
    to bomb out.

diff --git a/configure.ac b/configure.ac
index 5566907..d641bfe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1478,6 +1478,7 @@ return 0;}
 	fi
 	if test "x$DGA" = xyes; then
 		XORG_MODULES="$XORG_MODULES xf86dgaproto"
+		PKG_CHECK_MODULES(DGA, xf86dgaproto)
 		AC_DEFINE(DGA, 1, [Support DGA extension])
 		AC_DEFINE(XFreeXDGA, 1, [Build XDGA support])
 	fi
@@ -1487,6 +1488,7 @@ return 0;}
 	fi
 	if test "x$XF86MISC" = xyes; then
 		XORG_MODULES="$XORG_MODULES xf86miscproto"
+		PKG_CHECK_MODULES(XF86MISC, xf86miscproto)
 		AC_DEFINE(XF86MISC, 1, [Support XFree86 miscellaneous extensions])
 	fi
 
@@ -1495,6 +1497,7 @@ return 0;}
 	fi
 	if test "x$XF86VIDMODE" = xyes; then
 		XORG_MODULES="$XORG_MODULES xf86vidmodeproto"
+		PKG_CHECK_MODULES(XF86VIDMODE, xf86vidmodeproto)
 		AC_DEFINE(XF86VIDMODE, 1, [Support XFree86 Video Mode extension])
 	fi
 
diff-tree fd10312b4224197b937d9e696b53dc2a16c8912f (from f37612c6f2375ca904411e6caa0be19fa24f032c)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Sun Jul 8 00:26:26 2007 +0300

    configure.ac: Fix KDrive VESA/fbdev conditionals
    
    Make sure we actually respect anything explicitly given on the configure
    line, instead of just stomping it with what we detect.

diff --git a/configure.ac b/configure.ac
index be8878a..5566907 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1838,8 +1838,6 @@ AM_CONDITIONAL(XSDLSERVER, [test x"$XSDL
 AM_CONDITIONAL(XEPHYR, [test "x$KDRIVE" = xyes && test "x$XEPHYR" = xyes])
 AM_CONDITIONAL(BUILD_KDRIVEFBDEVLIB, [test "x$KDRIVE" = xyes && test "x$KDRIVEFBDEVLIB" = xyes])
 AM_CONDITIONAL(XFAKESERVER, [test "x$KDRIVE" = xyes && test "x$XFAKE" = xyes])
-AM_CONDITIONAL(KDRIVEVESA, [test x"$ac_cv_header_sys_vm86_h" = xyes])
-AM_CONDITIONAL(KDRIVEFBDEV, [test x"$ac_cv_header_linux_fb_h" = xyes])
 
 dnl these only go in xkb-config.h (which is shared by the Xorg and Xnest servers)
 AC_DEFINE(__XKBDEFRULES__, "xorg", [Default XKB rules])
diff-tree f37612c6f2375ca904411e6caa0be19fa24f032c (from 951c058e7800308f7c472e77178c14400f45c1b3)
Author: Nicolas Trangez <eikke at eikke.com>
Date:   Sun Jul 8 00:23:57 2007 +0300

    Hotplug: Remove unused function definition from hotplug.h
    
    configDispatch hasn't been used in a long time.

diff --git a/include/hotplug.h b/include/hotplug.h
index 0c304b1..8831b1e 100644
--- a/include/hotplug.h
+++ b/include/hotplug.h
@@ -26,6 +26,5 @@
 
 void configInitialise(void);
 void configFini(void);
-void configDispatch(void);
 
 #endif /* CONFIG_H */
diff-tree 951c058e7800308f7c472e77178c14400f45c1b3 (from 722d73a0ef54c2ebd8ef38c4a6afa0e7c5aa3e30)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Tue Jul 31 14:23:58 2007 -0700

    Don't fail compScreenInit if the driver added its own alternate visuals.

diff --git a/composite/compinit.c b/composite/compinit.c
index 8ce08b4..630f104 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -239,7 +239,8 @@ compAddAlternateVisual(ScreenPtr pScreen
 
     depth = compFindVisuallessDepth (pScreen, alt->depth);
     if (!depth)
-	return FALSE;
+	/* alt->depth doesn't exist or already has alternate visuals. */
+	return TRUE;
 
     pPictFormat = PictureMatchFormat (pScreen, alt->depth, alt->format);
     if (!pPictFormat)
diff-tree 722d73a0ef54c2ebd8ef38c4a6afa0e7c5aa3e30 (from 57b5b97a0710fc043b8a1c01d756cdb73dfe4567)
Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Jul 31 10:34:56 2007 +1000

    Revert "Fix RandR 1.2 conversion of two colour to ARGB cursor on MSB first platforms."
    
    This reverts commit 0f057ebb272f0ee0b51b9ab37d4b07da0924fec4.
    
    This screws my cursor up just starting a bare X server on Intel,
    I get the X more like <> than ><..

diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 8eaa0ba..396bf30 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -137,6 +137,8 @@ cursor_bitpos (int flags, int x, Bool ma
 	mask = !mask;
     if (flags & HARDWARE_CURSOR_NIBBLE_SWAPPED)
 	x = (x & ~3) | (3 - (x & 3));
+    if (flags & HARDWARE_CURSOR_BIT_ORDER_MSBFIRST)
+	x = (x & ~7) | (7 - (x & 7));
     if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1)
 	x = (x << 1) + mask;
     else if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_8)
diff-tree 57b5b97a0710fc043b8a1c01d756cdb73dfe4567 (from f62beb6f3609e8b6e61325ac89017590811bbd07)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Sun Jul 29 11:02:47 2007 -0400

    ReduceCompositeOp returns a Render op, not a boolean.

diff --git a/render/picture.c b/render/picture.c
index d0ae326..5ddd68c 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -1641,7 +1641,7 @@ FreePictFormat (pointer	pPictFormat,
  * unnecessary.  It may also avoid destination reads sometimes if apps aren't
  * being careful to avoid these cases.
  */
-static Bool
+static CARD8
 ReduceCompositeOp (CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst)
 {
     Bool no_src_alpha, no_dst_alpha;
diff-tree f62beb6f3609e8b6e61325ac89017590811bbd07 (from 486fd4145aed93093d1f1655de40c0a8582bb8b1)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Fri Jul 27 13:23:15 2007 -0400

    Remove all trace of Option "BiosLocation".
    
    This code was deeply dangerous.  If anyone actually had a use for this code,
    we should find a better way of doing it.

diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 504e0c2..3ff5776 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -1601,13 +1601,6 @@ Note that disabling an operation will ha
 not accelerated (whether due to lack of support in the hardware or in the
 driver).
 .TP 7
-.BI "Option \*qBiosLocation\*q \*q" address \*q
-Set the location of the BIOS for the Int10 module. One may select a BIOS
-of another card for posting or the legacy V_BIOS range located at 0xc0000
-or an alternative address (BUS_ISA).
-This is only useful under very special circumstances and should be used with
-extreme care.
-.TP 7
 .BI "Option \*qInitPrimary\*q \*q" boolean \*q
 Use the Int10 module to initialize the primary graphics card.
 Normally, only secondary cards are soft-booted using the Int10 module, as the
diff --git a/hw/xfree86/int10/generic.c b/hw/xfree86/int10/generic.c
index d863727..aa240ca 100644
--- a/hw/xfree86/int10/generic.c
+++ b/hw/xfree86/int10/generic.c
@@ -71,8 +71,7 @@ xf86ExtendedInitInt10(int entityIndex, i
     pciVideoPtr pvp;
     int screen;
     legacyVGARec vga;
-    xf86int10BiosLocation bios;
-    
+ 
 #ifdef _PC
     int size;
     CARD32 cs;
@@ -131,14 +130,9 @@ xf86ExtendedInitInt10(int entityIndex, i
 #endif
     INTPriv(pInt)->highMemory = V_BIOS;
     
-    xf86int10ParseBiosLocation(options,&bios);
-    
-    if (xf86IsEntityPrimary(entityIndex) 
-	&& !(initPrimary(options))) {
-	if (! xf86int10GetBiosSegment(pInt, &bios, 
-				      (unsigned char *)sysMem - V_BIOS)) {
+    if (xf86IsEntityPrimary(entityIndex) && !(initPrimary(options))) {
+	if (!xf86int10GetBiosSegment(pInt, (unsigned char *)sysMem - V_BIOS))
 	    goto error1;
-	}
 
 	set_return_trap(pInt);
 
@@ -148,8 +142,7 @@ xf86ExtendedInitInt10(int entityIndex, i
 	xf86Int10SaveRestoreBIOSVars(pInt, TRUE);
 	
     } else {
-	const BusType location_type = xf86int10GetBiosLocationType(pInt,
-								   &bios);
+	const BusType location_type = xf86int10GetBiosLocationType(pInt);
 	int bios_location = V_BIOS;
 
         reset_int_vect(pInt);
@@ -157,11 +150,7 @@ xf86ExtendedInitInt10(int entityIndex, i
 
 	switch (location_type) {
 	case BUS_PCI: {
-	    const int pci_entity = (bios.bus == BUS_PCI)
-	      ? xf86GetPciEntity(bios.location.pci.bus,
-				 bios.location.pci.dev,
-				 bios.location.pci.func)
-	      : pInt->entityIndex;
+	    const int pci_entity = pInt->entityIndex;
 
 	    vbiosMem = (unsigned char *)base + bios_location;
 	    if (!(size = mapPciRom(pci_entity,(unsigned char *)(vbiosMem)))) {
@@ -172,9 +161,6 @@ xf86ExtendedInitInt10(int entityIndex, i
 	    break;
 	}
 	case BUS_ISA:
-	    if (bios.bus == BUS_ISA) {
-		bios_location = bios.location.legacy;
-	    }
 	    vbiosMem = (unsigned char *)sysMem + bios_location;
 #if 0
 	    (void)memset(vbiosMem, 0, V_BIOS_SIZE);
@@ -228,48 +214,24 @@ xf86ExtendedInitInt10(int entityIndex, i
      * If this adapter is the primary, use its post-init BIOS (if we can find
      * it).
      */
-    xf86int10ParseBiosLocation(options,&bios);
-    
     {
 	int bios_location = V_BIOS;
 	Bool done = FALSE;
 	vbiosMem = (unsigned char *)base + bios_location;
 	
-	if ((bios.bus == BUS_ISA)
-	    || (bios.bus != BUS_PCI && xf86IsEntityPrimary(entityIndex))) {
-		if (bios.bus == BUS_ISA && bios.location.legacy) {
-		    xf86DrvMsg(screen, X_CONFIG,"Looking for legacy V_BIOS "
-			       "at 0x%x for %sprimary device\n",
-			       bios.location.legacy,
-			       xf86IsEntityPrimary(entityIndex) ? "" : "non-");
-		    bios_location = bios.location.legacy;
-		    vbiosMem = (unsigned char *)base + bios_location;
-		}
-		if (int10_check_bios(screen, bios_location >> 4, vbiosMem)) 
-		    done = TRUE;
-		else 
-		    xf86DrvMsg(screen,X_INFO,
-			       "No legacy BIOS found -- trying PCI\n");
+	if (xf86IsEntityPrimary(entityIndex)) {
+	    if (int10_check_bios(screen, bios_location >> 4, vbiosMem)) 
+		done = TRUE;
+	    else 
+		xf86DrvMsg(screen,X_INFO,
+			"No legacy BIOS found -- trying PCI\n");
 	} 
 	if (!done) {
-	    int pci_entity;
-	    
-	    if (bios.bus == BUS_PCI) {
-		xf86DrvMsg(screen,X_CONFIG,"Looking for BIOS at PCI:%i%i%i\n",
-			   bios.location.pci.bus,bios.location.pci.dev,
-			   bios.location.pci.func);		
-		pci_entity = xf86GetPciEntity(bios.location.pci.bus,
-					      bios.location.pci.dev,
-					      bios.location.pci.func);
-	    } else 
-		pci_entity = pInt->entityIndex;
-
-	    if (!mapPciRom(pci_entity, vbiosMem)) {
+	    if (!mapPciRom(pInt->entityIndex, vbiosMem)) {
 		    xf86DrvMsg(screen, X_ERROR, "Cannot read V_BIOS (5)\n");
 		    goto error1;
 	    }
 	} 
-
     }
 
     pInt->BIOSseg = V_BIOS >> 4;
diff --git a/hw/xfree86/int10/helper_mem.c b/hw/xfree86/int10/helper_mem.c
index c62377c..b59f473 100644
--- a/hw/xfree86/int10/helper_mem.c
+++ b/hw/xfree86/int10/helper_mem.c
@@ -25,13 +25,11 @@
 typedef enum {
     OPT_NOINT10,
     OPT_INIT_PRIMARY,
-    OPT_BIOS_LOCATION
 } INT10Opts;
 
 static const OptionInfoRec INT10Options[] = {
     {OPT_NOINT10,       "NoINT10",      OPTV_BOOLEAN,   {0},    FALSE },
     {OPT_INIT_PRIMARY,  "InitPrimary",  OPTV_BOOLEAN,   {0},    FALSE },   
-    {OPT_BIOS_LOCATION, "BiosLocation",	OPTV_STRING,	{0},	FALSE },
     { -1,		NULL,		OPTV_NONE,	{0},	FALSE },
 };
 
@@ -271,92 +269,14 @@ initPrimary(const void* options)
     return initPrimary;
 }
 
-/*
- * xf86int10ParseBiosLocation(): allows to set the location of the
- * BIOS. One may select a BIOS of another card for posting or the
- * legacy V_BIOS range located at 0xc0000 or an alternative address
- * (BUS_ISA).
- * This is only useful under very special circumstances and should
- * be used with extreme care.
- */
-void
-xf86int10ParseBiosLocation(const void* options,
-			   xf86int10BiosLocationPtr bios)
-{
-    const char *p;
-    const char *str;
-
-    bios->bus = BUS_NONE;
-
-    if ((options == NULL) 
-	|| ((str = xf86GetOptValString(options, OPT_BIOS_LOCATION)) == NULL)) {
-	return;
-    }
-
-    if (strncasecmp(str, "pci", 3) == 0) {
-	bios->bus = BUS_PCI;
-    } else if (strncasecmp(str, "primary", 7) == 0) {
-	bios->bus = BUS_ISA;
-    }
-    else {
-	return;
-    }
-    
-    p = strchr(str, ':');
-		     
-    switch (bios->bus) {
-    case BUS_ISA:
-	bios->location.legacy = (p != NULL) ? atoi(++p) : 0;
-	break;
-    case BUS_PCI:
-	if (p) {
-	    bios->location.pci.bus = atoi(++p);
-	    if ((p = strchr(p, ':'))) {
-		bios->location.pci.dev = atoi(++p);
-		if ((p = strchr(p, ':'))) {
-		    bios->location.pci.func = atoi(++p);
-		    break;
-		}
-	    }
-	}
-	/* fall through */
-	bios->bus = BUS_NONE;
-	break;
-    default:
-	break;
-    }
-}
-
-
 BusType
-xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt,
-			     const xf86int10BiosLocationPtr bios)
+xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt)
 {
-    BusType location_type = bios->bus;
+    BusType location_type;
 
-    switch (location_type) {
-    case BUS_PCI:
-	xf86DrvMsg(pInt->scrnIndex,X_CONFIG,"Overriding bios location: "
-		   "PCI:%i:%i%i\n",bios->location.pci.bus,
-		   bios->location.pci.dev,bios->location.pci.func);
-	break;
-    case BUS_ISA:
-	if (bios->location.legacy)
-	    xf86DrvMsg(pInt->scrnIndex,X_CONFIG,"Overriding bios location: "
-		       "Legacy:0x%x\n",bios->location.legacy);
-	else
-	    xf86DrvMsg(pInt->scrnIndex,X_CONFIG,"Overriding bios location: "
-		       "Legacy\n");
-	break;
-    case BUS_NONE: {
-	EntityInfoPtr pEnt = xf86GetEntityInfo(pInt->entityIndex);
-	location_type = pEnt->location.type;
-	xfree(pEnt);
-	break;
-    }
-    default:
-	break;
-    }
+    EntityInfoPtr pEnt = xf86GetEntityInfo(pInt->entityIndex);
+    location_type = pEnt->location.type;
+    xfree(pEnt);
 
     return location_type;
 }
@@ -371,40 +291,19 @@ xf86int10GetBiosLocationType(const xf86I
     }
 
 Bool
-xf86int10GetBiosSegment(xf86Int10InfoPtr pInt,
-			const xf86int10BiosLocationPtr bios, void * base)
+xf86int10GetBiosSegment(xf86Int10InfoPtr pInt, void *base)
 {
     unsigned i;
     int cs = ~0;
     int segments[4];
     const char * format;
 
+    segments[0] = MEM_RW(pInt, (0x10 << 2) + 2);
+    segments[1] = MEM_RW(pInt, (0x42 << 2) + 2);
+    segments[2] = V_BIOS >> 4;
+    segments[3] = ~0;
 
-    if (bios->bus == BUS_ISA && bios->location.legacy) {
-	xf86DrvMsg(pInt->scrnIndex, X_CONFIG, 
-		   "Overriding BIOS location: 0x%x\n",
-		   bios->location.legacy);
-
-	segments[0] = bios->location.legacy >> 4;
-	segments[1] = ~0;
-
-	format = "No V_BIOS at specified address 0x%lx\n";
-    } else {
-	if (bios->bus == BUS_PCI) {
-	    xf86DrvMsg(pInt->scrnIndex, X_WARNING,
-		       "Option BiosLocation for primary device ignored: "
-		       "It points to PCI.\n");
-	    xf86DrvMsg(pInt->scrnIndex, X_WARNING,
-		       "You must set Option InitPrimary also\n");
-	}
-
-	segments[0] = MEM_RW(pInt, (0x10 << 2) + 2);
-	segments[1] = MEM_RW(pInt, (0x42 << 2) + 2);
-	segments[2] = V_BIOS >> 4;
-	segments[3] = ~0;
-
-	format = "No V_BIOS found\n";
-    }
+    format = "No V_BIOS found\n";
 
     for (i = 0; segments[i] != ~0; i++) {
 	unsigned char * vbiosMem;
@@ -424,7 +323,7 @@ xf86int10GetBiosSegment(xf86Int10InfoPtr
     }
 
     xf86DrvMsg(pInt->scrnIndex, X_INFO, "Primary V_BIOS segment is: 0x%lx\n",
-	       (unsigned long)cs);
+	    (unsigned long)cs);
 
     pInt->BIOSseg = cs;
     return TRUE;
diff --git a/hw/xfree86/int10/xf86int10.h b/hw/xfree86/int10/xf86int10.h
index ec4fbd6..04838f1 100644
--- a/hw/xfree86/int10/xf86int10.h
+++ b/hw/xfree86/int10/xf86int10.h
@@ -59,18 +59,6 @@ typedef struct {
     CARD8 save_vse;
     CARD8 save_46e8;
 } legacyVGARec, *legacyVGAPtr;
-
-typedef struct {
-    BusType bus;
-    union {
-	struct {
-	    int bus;
-	    int dev;
-	    int func;
-	} pci;
-	int legacy;
-    } location;
-} xf86int10BiosLocation, *xf86int10BiosLocationPtr;
     
 /* OS dependent functions */
 xf86Int10InfoPtr xf86InitInt10(int entityIndex);
@@ -185,12 +173,8 @@ Bool int10skip(const void* options);
 Bool int10_check_bios(int scrnIndex, int codeSeg,
     const unsigned char* vbiosMem);
 Bool initPrimary(const void* options);
-void xf86int10ParseBiosLocation(const void* options, 
-				xf86int10BiosLocationPtr bios);
-BusType xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt,
-    const xf86int10BiosLocationPtr bios);
-Bool xf86int10GetBiosSegment(xf86Int10InfoPtr pInt,
-    const xf86int10BiosLocationPtr bios, void * base);
+BusType xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt);
+Bool xf86int10GetBiosSegment(xf86Int10InfoPtr pInt, void *base);
 #ifdef DEBUG
 void dprint(unsigned long start, unsigned long size);
 #endif
diff --git a/hw/xfree86/os-support/linux/int10/linux.c b/hw/xfree86/os-support/linux/int10/linux.c
index dd1637a..d8f4633 100644
--- a/hw/xfree86/os-support/linux/int10/linux.c
+++ b/hw/xfree86/os-support/linux/int10/linux.c
@@ -88,7 +88,6 @@ xf86ExtendedInitInt10(int entityIndex, i
     int pagesize; 
     memType cs;
     legacyVGARec vga;
-    xf86int10BiosLocation bios;
     Bool videoBiosMapped = FALSE;
     pciVideoPtr pvp;
     
@@ -260,13 +259,9 @@ xf86ExtendedInitInt10(int entityIndex, i
 #endif
     }
 
-    xf86int10ParseBiosLocation(options,&bios);
-
-    if (xf86IsEntityPrimary(entityIndex) 
-	&& !(initPrimary(options))) {
-	if (! xf86int10GetBiosSegment(pInt, &bios, NULL)) {
+    if (xf86IsEntityPrimary(entityIndex) && !(initPrimary(options))) {
+	if (!xf86int10GetBiosSegment(pInt, NULL))
 	    goto error3;
-	}
 
 	set_return_trap(pInt);
 #ifdef _PC	
@@ -276,16 +271,11 @@ xf86ExtendedInitInt10(int entityIndex, i
   	xf86Int10SaveRestoreBIOSVars(pInt, TRUE);
 #endif
     } else {
-	const BusType location_type = xf86int10GetBiosLocationType(pInt,
-								   &bios);
+	const BusType location_type = xf86int10GetBiosLocationType(pInt);
 
 	switch (location_type) {
 	case BUS_PCI: {
-	    const int pci_entity = (bios.bus == BUS_PCI)
-	      ? xf86GetPciEntity(bios.location.pci.bus,
-				 bios.location.pci.dev,
-				 bios.location.pci.func)
-	      : pInt->entityIndex;
+	    const int pci_entity = pInt->entityIndex;
 	    
 	    if (!mapPciRom(pci_entity, (unsigned char *)(V_BIOS))) {
 	        xf86DrvMsg(screen, X_ERROR, "Cannot read V_BIOS\n");
@@ -295,9 +285,8 @@ xf86ExtendedInitInt10(int entityIndex, i
 	    break;
 	}
 	case BUS_ISA:
-	    if (! xf86int10GetBiosSegment(pInt, &bios, NULL)) {
+	    if (!xf86int10GetBiosSegment(pInt, NULL))
 		goto error3;
-	    }
 	    break;
 	default:
 	    goto error3;
diff-tree 486fd4145aed93093d1f1655de40c0a8582bb8b1 (from 50cb6c7e4419e067c1f080d1de940811d21fc725)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Fri Jul 27 13:10:39 2007 -0400

    exaGetPixmapFirstPixel: avoid framebuffer readbacks if possible.
    
    If the pixel in framebuffer memory isn't modified since we uploaded it, we
    can just read from the system memory copy, wihch avoids both a readback and
    an accelerator stall.
    
    In principle this function is still wrong, and all the framebuffer pixel
    access should be going through (w)fb so we can get pixel layout corrections.

diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
index 708d1ea..b67ea63 100644
--- a/exa/exa_unaccel.c
+++ b/exa/exa_unaccel.c
@@ -369,31 +369,48 @@ ExaCheckComposite (CARD8      op,
 /**
  * Gets the 0,0 pixel of a pixmap.  Used for doing solid fills of tiled pixmaps
  * that happen to be 1x1.  Pixmap must be at least 8bpp.
+ *
+ * XXX This really belongs in fb, so it can be aware of tiling and etc.
  */
 CARD32
 exaGetPixmapFirstPixel (PixmapPtr pPixmap)
 {
     CARD32 pixel;
+    void *fb;
+    Bool need_finish = FALSE;
+    BoxRec box;
     ExaMigrationRec pixmaps[1];
+    ExaPixmapPriv (pPixmap);
 
-    pixmaps[0].as_dst = FALSE;
-    pixmaps[0].as_src = TRUE;
-    pixmaps[0].pPix = pPixmap;
-    exaDoMigration (pixmaps, 1, FALSE);
+    /* Try to avoid framebuffer readbacks */
+    if (exaPixmapIsOffscreen(pPixmap)) {
+	if (!miPointInRegion(DamageRegion(pExaPixmap->pDamage), 0, 0,  &box)) {
+	    fb = pExaPixmap->sys_ptr;
+	} else {
+	    need_finish = TRUE;
+	    fb = pPixmap->devPrivate.ptr;
+	    pixmaps[0].as_dst = FALSE;
+	    pixmaps[0].as_src = TRUE;
+	    pixmaps[0].pPix = pPixmap;
+	    exaDoMigration (pixmaps, 1, FALSE);
+	    exaPrepareAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
+	}
+    }
 
-    exaPrepareAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
     switch (pPixmap->drawable.bitsPerPixel) {
     case 32:
-	pixel = *(CARD32 *)(pPixmap->devPrivate.ptr);
+	pixel = *(CARD32 *)fb;
 	break;
     case 16:
-	pixel = *(CARD16 *)(pPixmap->devPrivate.ptr);
+	pixel = *(CARD16 *)fb;
 	break;
     default:
-	pixel = *(CARD8 *)(pPixmap->devPrivate.ptr);
+	pixel = *(CARD8 *)fb;
 	break;
     }
-    exaFinishAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
+
+    if (need_finish)
+	exaFinishAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
 
     return pixel;
 }
diff-tree 50cb6c7e4419e067c1f080d1de940811d21fc725 (from cec793ef7a6dac9fa2a6538683e363a72672cde9)
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Fri Jun 15 15:29:00 2007 -0400

    Don't map the front buffer in libdri if the ddx driver doesn't set the size.
    
    This lets drivers map the front buffer themselves
    by setting dontMapFramebuffer.

diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c
index 6c640d8..80e07c5 100644
--- a/hw/xfree86/dri/dri.c
+++ b/hw/xfree86/dri/dri.c
@@ -311,6 +311,8 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfo
     Bool                xineramaInCore = FALSE;
     DRIEntPrivPtr       pDRIEntPriv;
     ScrnInfoPtr         pScrn = xf86Screens[pScreen->myNum];
+    DRIContextFlags	flags    = 0;
+    DRIContextPrivPtr	pDRIContextPriv;
 
     /* If the DRI extension is disabled, do not initialize the DRI */
     if (noXFree86DRIExtension) {
@@ -416,23 +418,29 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfo
     pDRIPriv->hLSAREA = pDRIEntPriv->hLSAREA;
     pDRIPriv->pLSAREA = pDRIEntPriv->pLSAREA;
 
-    if (drmAddMap( pDRIPriv->drmFD,
-		   (drm_handle_t)pDRIPriv->pDriverInfo->frameBufferPhysicalAddress,
-		   pDRIPriv->pDriverInfo->frameBufferSize,
-		   DRM_FRAME_BUFFER,
-		   0,
-		   &pDRIPriv->hFrameBuffer) < 0)
+    if (!pDRIPriv->pDriverInfo->dontMapFrameBuffer)
     {
-	pDRIPriv->directRenderingSupport = FALSE;
-	pScreen->devPrivates[DRIScreenPrivIndex].ptr = NULL;
-	drmUnmap(pDRIPriv->pSAREA, pDRIPriv->pDriverInfo->SAREASize);
-	drmClose(pDRIPriv->drmFD);
-        DRIDrvMsg(pScreen->myNum, X_INFO,
-                  "[drm] drmAddMap failed\n");
-	return FALSE;
+	if (drmAddMap( pDRIPriv->drmFD,
+		       (drm_handle_t)pDRIPriv->pDriverInfo->frameBufferPhysicalAddress,
+		       pDRIPriv->pDriverInfo->frameBufferSize,
+		       DRM_FRAME_BUFFER,
+		       0,
+		       &pDRIPriv->pDriverInfo->hFrameBuffer) < 0)
+	    {
+		pDRIPriv->directRenderingSupport = FALSE;
+		pScreen->devPrivates[DRIScreenPrivIndex].ptr = NULL;
+		drmUnmap(pDRIPriv->pSAREA, pDRIPriv->pDriverInfo->SAREASize);
+		drmClose(pDRIPriv->drmFD);
+		DRIDrvMsg(pScreen->myNum, X_INFO,
+			  "[drm] drmAddMap failed\n");
+		return FALSE;
+	    }
+	DRIDrvMsg(pScreen->myNum, X_INFO, "[drm] framebuffer handle = %p\n",
+		  pDRIPriv->pDriverInfo->hFrameBuffer);
+    } else {
+	DRIDrvMsg(pScreen->myNum, X_INFO,
+		  "[drm] framebuffer mapped by ddx driver\n");
     }
-    DRIDrvMsg(pScreen->myNum, X_INFO, "[drm] framebuffer handle = %p\n",
-	      pDRIPriv->hFrameBuffer);
 
     if (pDRIEntPriv->resOwner == NULL) {
 	pDRIEntPriv->resOwner = pScreen;
@@ -479,21 +487,14 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfo
 
     pDRIEntPriv->refCount++;
 
-    return TRUE;
-}
-
-Bool
-DRIFinishScreenInit(ScreenPtr pScreen)
-{
-    DRIScreenPrivPtr  pDRIPriv = DRI_SCREEN_PRIV(pScreen);
-    DRIInfoPtr        pDRIInfo = pDRIPriv->pDriverInfo;
-    DRIContextFlags   flags    = 0;
-    DRIContextPrivPtr pDRIContextPriv;
-
-				/* Set up flags for DRICreateContextPriv */
+    /* Set up flags for DRICreateContextPriv */
     switch (pDRIInfo->driverSwapMethod) {
-    case DRI_KERNEL_SWAP:    flags = DRI_CONTEXT_2DONLY;    break;
-    case DRI_HIDE_X_CONTEXT: flags = DRI_CONTEXT_PRESERVED; break;
+    case DRI_KERNEL_SWAP:
+	flags = DRI_CONTEXT_2DONLY;
+	break;
+    case DRI_HIDE_X_CONTEXT:
+	flags = DRI_CONTEXT_PRESERVED;
+	break;
     }
 
     if (!(pDRIContextPriv = DRICreateContextPriv(pScreen,
@@ -580,6 +581,15 @@ DRIFinishScreenInit(ScreenPtr pScreen)
 	break;
     }
 
+    return TRUE;
+}
+
+Bool
+DRIFinishScreenInit(ScreenPtr pScreen)
+{
+    DRIScreenPrivPtr  pDRIPriv = DRI_SCREEN_PRIV(pScreen);
+    DRIInfoPtr        pDRIInfo = pDRIPriv->pDriverInfo;
+
     /* Wrap DRI support */
     if (pDRIInfo->wrap.ValidateTree) {
 	pDRIPriv->wrap.ValidateTree     = pScreen->ValidateTree;
@@ -1592,7 +1602,7 @@ DRIGetDeviceInfo(ScreenPtr pScreen,
 {
     DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
 
-    *hFrameBuffer = pDRIPriv->hFrameBuffer;
+    *hFrameBuffer = pDRIPriv->pDriverInfo->hFrameBuffer;
     *fbOrigin = 0;
     *fbSize = pDRIPriv->pDriverInfo->frameBufferSize;
     *fbStride = pDRIPriv->pDriverInfo->frameBufferStride;
diff --git a/hw/xfree86/dri/dri.h b/hw/xfree86/dri/dri.h
index c0da700..98e8b75 100644
--- a/hw/xfree86/dri/dri.h
+++ b/hw/xfree86/dri/dri.h
@@ -107,7 +107,7 @@ typedef struct {
  */
 
 #define DRIINFO_MAJOR_VERSION   5
-#define DRIINFO_MINOR_VERSION   3
+#define DRIINFO_MINOR_VERSION   4
 #define DRIINFO_PATCH_VERSION   0
 
 typedef unsigned long long (*DRITexOffsetStartProcPtr)(PixmapPtr pPix);
@@ -187,6 +187,12 @@ typedef struct {
     /* New with DRI version 5.3.0 */
     DRITexOffsetStartProcPtr  texOffsetStart;
     DRITexOffsetFinishProcPtr texOffsetFinish;
+
+    /* New with DRI version 5.4.0 */
+    int			dontMapFrameBuffer;
+    drm_handle_t   	hFrameBuffer; /* Handle to framebuffer, either
+				       * mapped by DDX driver or DRI */
+    
 } DRIInfoRec, *DRIInfoPtr;
 
 
diff --git a/hw/xfree86/dri/dristruct.h b/hw/xfree86/dri/dristruct.h
index 5d981b8..c3b0aee 100644
--- a/hw/xfree86/dri/dristruct.h
+++ b/hw/xfree86/dri/dristruct.h
@@ -85,7 +85,6 @@ typedef struct _DRIScreenPrivRec
     int			drmFD;	      /* File descriptor for /dev/video/?   */
     drm_handle_t   	hSAREA;	      /* Handle to SAREA, for mapping       */
     XF86DRISAREAPtr	pSAREA;	      /* Mapped pointer to SAREA            */
-    drm_handle_t   	hFrameBuffer; /* Handle to framebuffer, for mapping */
     drm_context_t          myContext;    /* DDX Driver's context               */
     DRIContextPrivPtr   myContextPriv;/* Pointer to server's private area   */
     DRIContextPrivPtr   lastPartial3DContext;  /* last one partially saved  */
diff-tree cec793ef7a6dac9fa2a6538683e363a72672cde9 (from 27845fe197b74bf453d99f352e83513e201fdaae)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Thu Jul 26 11:49:46 2007 -0700

    Include picturestr.h in xf86Crtc.h to pick up definition of PictTransform.

diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 982a3d7..a4e8ea3 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -30,6 +30,7 @@
 #include "xf86Modes.h"
 #include "xf86Cursor.h"
 #include "damage.h"
+#include "picturestr.h"
 
 /* Compat definitions for older X Servers. */
 #ifndef M_T_PREFERRED
diff-tree 27845fe197b74bf453d99f352e83513e201fdaae (from 276f8e2ca42eec982d16b86d67217d68ff98f81d)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Thu Jul 26 09:32:16 2007 -0400

    libconfig shouldn't be an installed library.

diff --git a/config/Makefile.am b/config/Makefile.am
index 1cc9109..43c9aa3 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -3,7 +3,7 @@ AM_CFLAGS = @DIX_CFLAGS@
 dbusconfigdir = $(sysconfdir)/dbus-1/system.d
 dbusconfig_DATA = xorg-server.conf
 
-lib_LIBRARIES = libconfig.a
+noinst_LIBRARIES = libconfig.a
 
 libconfig_a_SOURCES = config.c
 
diff-tree 276f8e2ca42eec982d16b86d67217d68ff98f81d (from eba2be448bdd298ff2f7b8603bd9e976da1fdf72)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Jul 25 17:42:23 2007 -0700

    Include comment/copyright/license for AC_DEFINE_DIR in acinclude.m4

diff --git a/acinclude.m4 b/acinclude.m4
index 2031432..f3d8734 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1,3 +1,36 @@
+##### http://autoconf-archive.cryp.to/ac_define_dir.html
+#
+# SYNOPSIS
+#
+#   AC_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION])
+#
+# DESCRIPTION
+#
+#   This macro sets VARNAME to the expansion of the DIR variable,
+#   taking care of fixing up ${prefix} and such.
+#
+#   VARNAME is then offered as both an output variable and a C
+#   preprocessor symbol.
+#
+#   Example:
+#
+#      AC_DEFINE_DIR([DATADIR], [datadir], [Where data are placed to.])
+#
+# LAST MODIFICATION
+#
+#   2006-10-13
+#
+# COPYLEFT
+#
+#   Copyright (c) 2006 Stepan Kasal <kasal at ucw.cz>
+#   Copyright (c) 2006 Andreas Schwab <schwab at suse.de>
+#   Copyright (c) 2006 Guido U. Draheim <guidod at gmx.de>
+#   Copyright (c) 2006 Alexandre Oliva
+#
+#   Copying and distribution of this file, with or without
+#   modification, are permitted in any medium without royalty provided
+#   the copyright notice and this notice are preserved.
+
 AC_DEFUN([AC_DEFINE_DIR], [
   prefix_NONE=
   exec_prefix_NONE=
diff-tree eba2be448bdd298ff2f7b8603bd9e976da1fdf72 (from 8d230319040f0a7f72231da2bf5ec97dc3612e21)
Author: Brice Goglin <Brice.Goglin at ens-lyon.org>
Date:   Wed Jul 25 20:53:45 2007 +0200

    Minor fixes in cvt and gtf manpages
    
    Reported by "A. Costa" <agcosta at gis.net> in
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=432065

diff --git a/hw/xfree86/utils/cvt/cvt.man.pre b/hw/xfree86/utils/cvt/cvt.man.pre
index 1090724..8a292ee 100644
--- a/hw/xfree86/utils/cvt/cvt.man.pre
+++ b/hw/xfree86/utils/cvt/cvt.man.pre
@@ -37,6 +37,6 @@ __xconfigfile__(__filemansuffix__)
 Luc Verhaegen.
 .PP
 This program is based on the Coordinated Video Timing sample
-implementation written by Graham Loveridge. This file is publically
+implementation written by Graham Loveridge. This file is publicly
 available at <http://www.vesa.org/Public/CVT/CVTd6r1.xls>. CVT is a
 VESA trademark.
diff --git a/hw/xfree86/utils/gtf/gtf.man.pre b/hw/xfree86/utils/gtf/gtf.man.pre
index fd0c406..74ade74 100644
--- a/hw/xfree86/utils/gtf/gtf.man.pre
+++ b/hw/xfree86/utils/gtf/gtf.man.pre
@@ -40,6 +40,6 @@ __xconfigfile__(__filemansuffix__)
 Andy Ritger.
 .PP
 This program is based on the Generalized Timing Formula (GTF(TM)) Standard
-Version: 1.0, Revsion: 1.0.  The GTF Excel(TM) spreadsheet, a sample
+Version: 1.0, Revision: 1.0.  The GTF Excel(TM) spreadsheet, a sample
 (and the definitive) implementation of the GTF Timing Standard is
 available at <ftp://ftp.vesa.org/pub/GTF/VTF_V1R1.xls>.
diff-tree 8d230319040f0a7f72231da2bf5ec97dc3612e21 (from 0f057ebb272f0ee0b51b9ab37d4b07da0924fec4)
Author: Gustavo Pichorim Boiko <boiko at mandriva.com>
Date:   Tue Jul 24 16:19:19 2007 -0300

    Fix the output->crtc initialization in the old randr setup

diff --git a/randr/rrinfo.c b/randr/rrinfo.c
index 858b1ed..bd5d5b1 100644
--- a/randr/rrinfo.c
+++ b/randr/rrinfo.c
@@ -98,6 +98,7 @@ RRScanOldConfig (ScreenPtr pScreen, Rota
 	if (!output)
 	    return;
 	RROutputSetCrtcs (output, &crtc, 1);
+	output->crtc = crtc;
 	RROutputSetConnection (output, RR_Connected);
 #ifdef RENDER
 	RROutputSetSubpixelOrder (output, PictureGetSubpixelOrder (pScreen));
diff-tree 0f057ebb272f0ee0b51b9ab37d4b07da0924fec4 (from 5b424b562eee863b11571de4cd0019cd9bc5b379)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Wed Jul 25 17:04:04 2007 +0200

    Fix RandR 1.2 conversion of two colour to ARGB cursor on MSB first platforms.
    
    Doesn't seem necessary to do anything here...

diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 396bf30..8eaa0ba 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -137,8 +137,6 @@ cursor_bitpos (int flags, int x, Bool ma
 	mask = !mask;
     if (flags & HARDWARE_CURSOR_NIBBLE_SWAPPED)
 	x = (x & ~3) | (3 - (x & 3));
-    if (flags & HARDWARE_CURSOR_BIT_ORDER_MSBFIRST)
-	x = (x & ~7) | (7 - (x & 7));
     if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1)
 	x = (x << 1) + mask;
     else if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_8)
diff-tree 5b424b562eee863b11571de4cd0019cd9bc5b379 (from 7da38bb6a15247948c90e00a59230453fcf13cbd)
Author: Gustavo Pichorim Boiko <boiko at mandriva.com>
Date:   Mon Jul 23 18:27:41 2007 -0300

    Set the crtc before the output change is notified
    
    Set the new randr crtc of the output before the output change notification is
    delivered to the clients.
    Remove RROutputSetCrtc as it is not really necessary. All we have to do is set
    the output's crtc on RRCrtcNotify

diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 6c3bf8d..889be6f 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -951,7 +951,6 @@ xf86RandR12SetInfo12 (ScreenPtr pScreen)
 	    return FALSE;
 	}
 
-	RROutputSetCrtc (output->randr_output, randr_crtc);
 	RROutputSetPhysicalSize(output->randr_output, 
 				output->mm_width,
 				output->mm_height);
diff --git a/randr/randrstr.h b/randr/randrstr.h
index 4cc3a46..bd19fe9 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -694,9 +694,6 @@ RROutputSetCrtcs (RROutputPtr	output,
 		  RRCrtcPtr	*crtcs,
 		  int		numCrtcs);
 
-void
-RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc);
-    
 Bool
 RROutputSetConnection (RROutputPtr  output,
 		       CARD8	    connection);
@@ -802,7 +799,6 @@ Query state:
 	    1.2:
 		RRScreenSetSizeRange
 		RROutputSetCrtcs
-		RROutputSetCrtc
 		RRModeGet
 		RROutputSetModes
 		RROutputSetConnection
@@ -822,7 +818,6 @@ Query state:
 		RRCrtcCreate
 		RROutputCreate
 		RROutputSetCrtcs
-		RROutputSetCrtc
 		RROutputSetConnection
 		RROutputSetSubpixelOrder
 		RROldModeAdd	• This adds modes one-at-a-time
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index 3ce9e21..db5007e 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -134,6 +134,7 @@ RRCrtcNotify (RRCrtcPtr	    crtc,
 		break;
 	if (j == crtc->numOutputs)
 	{
+	    outputs[i]->crtc = crtc;
 	    RROutputChanged (outputs[i], FALSE);
 	    RRCrtcChanged (crtc, FALSE);
 	}
@@ -149,6 +150,7 @@ RRCrtcNotify (RRCrtcPtr	    crtc,
 		break;
 	if (i == numOutputs)
 	{
+	    crtc->outputs[j]->crtc = NULL;
 	    RROutputChanged (crtc->outputs[j], FALSE);
 	    RRCrtcChanged (crtc, FALSE);
 	}
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
index 5ef1a6b..858b1ed 100644
--- a/randr/rrinfo.c
+++ b/randr/rrinfo.c
@@ -98,7 +98,6 @@ RRScanOldConfig (ScreenPtr pScreen, Rota
 	if (!output)
 	    return;
 	RROutputSetCrtcs (output, &crtc, 1);
-	RROutputSetCrtc (output, crtc);
 	RROutputSetConnection (output, RR_Connected);
 #ifdef RENDER
 	RROutputSetSubpixelOrder (output, PictureGetSubpixelOrder (pScreen));
diff --git a/randr/rroutput.c b/randr/rroutput.c
index e001162..1e1cfa5 100644
--- a/randr/rroutput.c
+++ b/randr/rroutput.c
@@ -286,15 +286,6 @@ RROutputSetCrtcs (RROutputPtr	output,
     return TRUE;
 }
 
-void
-RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc)
-{
-    if (output->crtc == crtc)
-	return;
-    output->crtc = crtc;
-    RROutputChanged (output, FALSE);
-}
-
 Bool
 RROutputSetConnection (RROutputPtr  output,
 		       CARD8	    connection)
diff-tree 7da38bb6a15247948c90e00a59230453fcf13cbd (from 0f91abd5c68eb044d09733d18ef0f6b8ed128200)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Sat Jul 21 15:27:40 2007 -0400

    Partial redundancy elimination in PropertyNotify generation.

diff --git a/dix/property.c b/dix/property.c
index 034d86f..e281dd7 100644
--- a/dix/property.c
+++ b/dix/property.c
@@ -91,6 +91,19 @@ PrintPropertys(WindowPtr pWin)
 }
 #endif
 
+static void
+deliverPropertyNotifyEvent(WindowPtr pWin, int state, Atom atom)
+{
+    xEvent event;
+
+    event.u.u.type = PropertyNotify;
+    event.u.property.window = pWin->drawable.id;
+    event.u.property.state = state;
+    event.u.property.atom = atom;
+    event.u.property.time = currentTime.milliseconds;
+    DeliverEvents(pWin, &event, 1, (WindowPtr)NULL);
+}
+
 int
 ProcRotateProperties(ClientPtr client)
 {
@@ -100,7 +113,6 @@ ProcRotateProperties(ClientPtr client)
     Atom * atoms;
     PropertyPtr * props;               /* array of pointer */
     PropertyPtr pProp;
-    xEvent event;
 
     REQUEST_FIXED_SIZE(xRotatePropertiesReq, stuff->nAtoms << 2);
     UpdateCurrentTime();
@@ -157,16 +169,9 @@ found: 
             delta += stuff->nAtoms;
     	for (i = 0; i < stuff->nAtoms; i++)
  	{
-	    /* Generate a PropertyNotify event for each property whose value
-		is changed in the order in which they appear in the request. */
+	    deliverPropertyNotifyEvent(pWin, PropertyNewValue,
+				       props[i]->propertyName);
  
- 	    event.u.u.type = PropertyNotify;
-            event.u.property.window = pWin->drawable.id;
-    	    event.u.property.state = PropertyNewValue;
-	    event.u.property.atom = props[i]->propertyName;	
-	    event.u.property.time = currentTime.milliseconds;
-	    DeliverEvents(pWin, &event, 1, (WindowPtr)NULL);
-	
             props[i]->propertyName = atoms[(i + delta) % stuff->nAtoms];
 	}
     }
@@ -243,7 +248,6 @@ ChangeWindowProperty(WindowPtr pWin, Ato
                      Bool sendevent)
 {
     PropertyPtr pProp;
-    xEvent event;
     int sizeInBytes;
     int totalSize;
     pointer data;
@@ -338,15 +342,10 @@ ChangeWindowProperty(WindowPtr pWin, Ato
             pProp->size += len;
 	}
     }
+
     if (sendevent)
-    {
-	event.u.u.type = PropertyNotify;
-	event.u.property.window = pWin->drawable.id;
-	event.u.property.state = PropertyNewValue;
-	event.u.property.atom = pProp->propertyName;
-	event.u.property.time = currentTime.milliseconds;
-	DeliverEvents(pWin, &event, 1, (WindowPtr)NULL);
-    }
+	deliverPropertyNotifyEvent(pWin, PropertyNewValue, pProp->propertyName);
+
     return(Success);
 }
 
@@ -354,7 +353,6 @@ int
 DeleteProperty(WindowPtr pWin, Atom propName)
 {
     PropertyPtr pProp, prevProp;
-    xEvent event;
 
     if (!(pProp = wUserProps (pWin)))
 	return(Success);
@@ -377,12 +375,7 @@ DeleteProperty(WindowPtr pWin, Atom prop
         {
             prevProp->next = pProp->next;
         }
-	event.u.u.type = PropertyNotify;
-	event.u.property.window = pWin->drawable.id;
-	event.u.property.state = PropertyDelete;
-        event.u.property.atom = pProp->propertyName;
-	event.u.property.time = currentTime.milliseconds;
-	DeliverEvents(pWin, &event, 1, (WindowPtr)NULL);
+	deliverPropertyNotifyEvent(pWin, PropertyDelete, pProp->propertyName);
 	xfree(pProp->data);
         xfree(pProp);
     }
@@ -393,17 +386,11 @@ void
 DeleteAllWindowProperties(WindowPtr pWin)
 {
     PropertyPtr pProp, pNextProp;
-    xEvent event;
 
     pProp = wUserProps (pWin);
     while (pProp)
     {
-	event.u.u.type = PropertyNotify;
-	event.u.property.window = pWin->drawable.id;
-	event.u.property.state = PropertyDelete;
-	event.u.property.atom = pProp->propertyName;
-	event.u.property.time = currentTime.milliseconds;
-	DeliverEvents(pWin, &event, 1, (WindowPtr)NULL);
+	deliverPropertyNotifyEvent(pWin, PropertyDelete, pProp->propertyName);
 	pNextProp = pProp->next;
         xfree(pProp->data);
         xfree(pProp);
@@ -537,16 +524,7 @@ ProcGetProperty(ClientPtr client)
     reply.propertyType = pProp->type;
 
     if (stuff->delete && (reply.bytesAfter == 0))
-    { /* send the event */
-	xEvent event;
-
-	event.u.u.type = PropertyNotify;
-	event.u.property.window = pWin->drawable.id;
-	event.u.property.state = PropertyDelete;
-	event.u.property.atom = pProp->propertyName;
-	event.u.property.time = currentTime.milliseconds;
-	DeliverEvents(pWin, &event, 1, (WindowPtr)NULL);
-    }
+	deliverPropertyNotifyEvent(pWin, PropertyDelete, pProp->propertyName);
 
     WriteReplyToClient(client, sizeof(xGenericReply), &reply);
     if (len)
diff-tree 0f91abd5c68eb044d09733d18ef0f6b8ed128200 (from dc9c5196282ba61bd542e198dfe0d53d93181591)
Author: Julien Cristau <jcristau at debian.org>
Date:   Thu Jul 19 20:37:26 2007 -0400

    Fix alpha build failures
    
    Don't include <asm/pci.h> in os-support/linux/lnx_axp.c, use "lnx.h" and
    <unistd.h> instead

diff --git a/hw/xfree86/os-support/linux/lnx.h b/hw/xfree86/os-support/linux/lnx.h
index 5aca9e9..085c942 100644
--- a/hw/xfree86/os-support/linux/lnx.h
+++ b/hw/xfree86/os-support/linux/lnx.h
@@ -11,7 +11,6 @@ extern int iopl __P ((int __level));
 
 /* new pciconfig_iobase syscall added in 2.2.15 and 2.3.99 */
 #  include <linux/unistd.h>
-#  include <asm/pci.h>
 extern long (*_iobase)(unsigned, int, int, int);
 
 /*
diff --git a/hw/xfree86/os-support/linux/lnx_axp.c b/hw/xfree86/os-support/linux/lnx_axp.c
index 0a76129..e255118 100644
--- a/hw/xfree86/os-support/linux/lnx_axp.c
+++ b/hw/xfree86/os-support/linux/lnx_axp.c
@@ -112,8 +112,8 @@ lnxGetAXP(void)
 /*
  * pciconfig_iobase wrappers and dynamic i/o selection
  */
-#include <linux/unistd.h>
-#include <asm/pci.h>
+#include "lnx.h"
+#include <unistd.h>
 #include <errno.h>
 
 /* glibc versions (single hose only) */
diff-tree dc9c5196282ba61bd542e198dfe0d53d93181591 (from 73a93c5a6b68f7ba21f9e75f50b1032603a3b39e)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Thu Jul 19 13:28:00 2007 -0700

    Make PreferredMode option in config file override EDID mode preferences.
    
    When the PreferredMode option is selected in the config file, remove the
    M_T_PREFERRED bit from all other preferred modes to force the config file
    mode to be selected.

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 1899d7f..170c921 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -1414,8 +1414,9 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, 
 			output->probed_modes = mode;
 		    }
 		    mode->type |= M_T_PREFERRED;
-		    break;
 		}
+		else
+		    mode->type &= ~M_T_PREFERRED;
 	    }
 	}
 	
diff-tree 73a93c5a6b68f7ba21f9e75f50b1032603a3b39e (from 9fc36a391c11170cde1a28f548a2cae5f6f20d5b)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Thu Jul 19 13:26:36 2007 -0700

    Query modes on disabled (but not ignored) outputs.
    
    Code that disabled mode detection on disabled outputs would confuse
    applications by listing said outputs as connected but without any modes.
    This makes the disabled state in the config file affect only the initial
    configuration and not subsequent modifications by RandR.

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index ecdf620..1899d7f 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -1254,7 +1254,7 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, 
 	 */
 	output->status = (*output->funcs->detect)(output);
 
-	if (!xf86OutputEnabled (output))
+	if (output->status == XF86OutputStatusDisconnected)
 	{
 	    xf86OutputSetEDID (output, NULL);
 	    continue;
diff-tree 9fc36a391c11170cde1a28f548a2cae5f6f20d5b (from aed6569309223ecc7e26fa84e4d430e422455607)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Sat Jul 14 12:36:15 2007 -0700

    Make pending property changes trigger mode setting.
    
    The DDX code was ignoring pending properties for computing when mode setting
    was required. This meant that configurations differing only in property
    values would not cause the mode to be set.

diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index f5215ef..6c3bf8d 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -750,6 +750,10 @@ xf86RandR12CrtcSet (ScreenPtr	pScreen,
 	    output->crtc = new_crtc;
 	}
     }
+    for (ro = 0; ro < num_randr_outputs; ro++) 
+        if (randr_outputs[ro]->pendingProperties)
+	    changed = TRUE;
+
     /* XXX need device-independent mode setting code through an API */
     if (changed)
     {
diff-tree aed6569309223ecc7e26fa84e4d430e422455607 (from 21bbd7d64b5f74915afd7a312e589654442f3461)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Sat Jul 14 15:21:46 2007 -0400

    Refactor how Composite adds visuals to the screen.
    
    Besides being slightly simpler to read, it's now trivial to add a depth-16
    visual to a depth-24 screen just by adding a line for it in the alternate
    visual list.  Visuals for indexed depths are slightly tricky still.

diff --git a/composite/compinit.c b/composite/compinit.c
index 9c715aa..8ce08b4 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -199,106 +199,83 @@ Bool CompositeRegisterAlternateVisuals (
     return compRegisterAlternateVisuals(cs, vids, nVisuals);
 }
 
-#if COMP_INCLUDE_RGB24_VISUAL
-#define NUM_COMP_ALTERNATE_VISUALS 2
-#else
-#define NUM_COMP_ALTERNATE_VISUALS 1
-#endif
-
 typedef struct _alternateVisual {
     int		depth;
     CARD32	format;
 } CompAlternateVisual;
 
-static CompAlternateVisual  altVisuals[NUM_COMP_ALTERNATE_VISUALS] = {
+static CompAlternateVisual  altVisuals[] = {
 #if COMP_INCLUDE_RGB24_VISUAL
     {	24,	PICT_r8g8b8 },
 #endif
     {	32,	PICT_a8r8g8b8 },
 };
 
+static const int NUM_COMP_ALTERNATE_VISUALS = sizeof(altVisuals) /
+					      sizeof(CompAlternateVisual);
+
 static Bool
-compAddAlternateVisuals (ScreenPtr pScreen, CompScreenPtr cs)
+compAddAlternateVisual(ScreenPtr pScreen, CompScreenPtr cs,
+		       CompAlternateVisual *alt)
 {
-    VisualPtr	    visuals;
-    DepthPtr	    depths[NUM_COMP_ALTERNATE_VISUALS];
-    PictFormatPtr   pPictFormats[NUM_COMP_ALTERNATE_VISUALS];
+    VisualPtr	    visual, visuals;
     int		    i;
     int		    numVisuals;
-    VisualID	    *vids[NUM_COMP_ALTERNATE_VISUALS];
     XID		    *installedCmaps;
     ColormapPtr	    installedCmap;
     int		    numInstalledCmaps;
-    int		    numAlternate = 0;
-    int		    alt;
-    
-    for (alt = 0; alt < NUM_COMP_ALTERNATE_VISUALS; alt++)
-    {
-	DepthPtr	depth;
-	PictFormatPtr   pPictFormat;
-	
-	depth = compFindVisuallessDepth (pScreen, altVisuals[alt].depth);
-	if (!depth)
-	    continue;
-	/*
-	 * Find the right picture format
-	 */
-	pPictFormat = PictureMatchFormat (pScreen, altVisuals[alt].depth,
-					  altVisuals[alt].format);
-	if (!pPictFormat)
-	    continue;
-
-	/*
-	 * Allocate vid list for this depth
-	 */
-	vids[numAlternate] = xalloc (sizeof (VisualID));
-	if (!vids[numAlternate])
-	    continue;
-	depths[numAlternate] = depth;
-	pPictFormats[numAlternate] = pPictFormat;
-	numAlternate++;
-    }
-    
-    if (!numAlternate)
-	return TRUE;
+    DepthPtr	    depth;
+    PictFormatPtr   pPictFormat;
+    VisualID	    *vid;
+    unsigned long   alphaMask;
 
     /*
-     * Find the installed colormaps
+     * The ARGB32 visual is always available.  Other alternate depth visuals
+     * are only provided if their depth is less than the root window depth.
+     * There's no deep reason for this.
      */
+    if (alt->depth >= pScreen->rootDepth && alt->depth != 32)
+	return FALSE;
+
+    depth = compFindVisuallessDepth (pScreen, alt->depth);
+    if (!depth)
+	return FALSE;
+
+    pPictFormat = PictureMatchFormat (pScreen, alt->depth, alt->format);
+    if (!pPictFormat)
+	return FALSE;
+
+    vid = xalloc(sizeof(VisualID));
+    if (!vid)
+	return FALSE;
+
+    /* Find the installed colormaps */
     installedCmaps = xalloc (pScreen->maxInstalledCmaps * sizeof (XID));
-    if (!installedCmaps)
-    {
-	for (alt = 0; alt < numAlternate; alt++)
-	    xfree (vids[alt]);
+    if (!installedCmaps) {
+	xfree(vid);
 	return FALSE;
     }
-    numInstalledCmaps = (*pScreen->ListInstalledColormaps) (pScreen, 
-							    installedCmaps);
-    
-    /*
-     * realloc the visual array to fit the new one in place
-     */
+    numInstalledCmaps = pScreen->ListInstalledColormaps(pScreen, 
+	    installedCmaps);
+
+    /* realloc the visual array to fit the new one in place */
     numVisuals = pScreen->numVisuals;
-    visuals = xrealloc (pScreen->visuals,
-			(numVisuals + numAlternate) * sizeof (VisualRec));
-    if (!visuals)
-    {
-	for (alt = 0; alt < numAlternate; alt++)
-	    xfree (vids[alt]);
-	xfree (installedCmaps);
+    visuals = xrealloc(pScreen->visuals, (numVisuals + 1) * sizeof(VisualRec));
+    if (!visuals) {
+	xfree(vid);
+	xfree(installedCmaps);
 	return FALSE;
     }
-    
+
     /*
      * Fix up any existing installed colormaps -- we'll assume that
      * the only ones created so far have been installed.  If this
      * isn't true, we'll have to walk the resource database looking
      * for all colormaps.
      */
-    for (i = 0; i < numInstalledCmaps; i++)
-    {
+    for (i = 0; i < numInstalledCmaps; i++) {
 	int j;
-	
+
 	installedCmap = LookupIDByType (installedCmaps[i], RT_COLORMAP);
 	if (!installedCmap)
 	    continue;
@@ -306,66 +283,64 @@ compAddAlternateVisuals (ScreenPtr pScre
 	installedCmap->pVisual = &visuals[j];
     }
 
-    xfree (installedCmaps);
+    xfree(installedCmaps);
 
     pScreen->visuals = visuals;
-    pScreen->numVisuals = numVisuals + numAlternate;
-
-    for (alt = 0; alt < numAlternate; alt++)
-    {
-	DepthPtr	depth = depths[alt];
-	PictFormatPtr	pPictFormat = pPictFormats[alt];
-	VisualPtr	visual = &visuals[numVisuals + alt];
-	unsigned long	alphaMask;
+    visual = visuals + pScreen->numVisuals; /* the new one */
+    pScreen->numVisuals++;
 
-	/*
-	 * Initialize the visual
-	 */
+    /* Initialize the visual */
+    visual->vid = FakeClientID (0);
+    visual->bitsPerRGBValue = 8;
+    if (PICT_FORMAT_TYPE(alt->format) == PICT_TYPE_COLOR) {
+	visual->class = PseudoColor;
+	visual->nplanes = PICT_FORMAT_BPP(alt->format);
+	visual->ColormapEntries = 1 << visual->nplanes;
+    } else {
+	DirectFormatRec *direct = &pPictFormat->direct;
 	visual->class = TrueColor;
-	visual->bitsPerRGBValue = 8;
-
-	visual->vid = FakeClientID (0);
-	visual->redMask   = (((unsigned long) pPictFormat->direct.redMask) << 
-			     pPictFormat->direct.red);
-	visual->greenMask = (((unsigned long) pPictFormat->direct.greenMask) << 
-			     pPictFormat->direct.green);
-	visual->blueMask  = (((unsigned long) pPictFormat->direct.blueMask) << 
-			     pPictFormat->direct.blue);
-	alphaMask =  (((unsigned long) pPictFormat->direct.alphaMask) << 
-		      pPictFormat->direct.alpha);
-	visual->offsetRed   = pPictFormat->direct.red;
-	visual->offsetGreen = pPictFormat->direct.green;
-	visual->offsetBlue  = pPictFormat->direct.blue;
+	visual->redMask   = ((unsigned long)direct->redMask) << direct->red;
+	visual->greenMask = ((unsigned long)direct->greenMask) << direct->green;
+	visual->blueMask  = ((unsigned long)direct->blueMask) << direct->blue;
+	alphaMask = ((unsigned long)direct->alphaMask) << direct->alpha;
+	visual->offsetRed   = direct->red;
+	visual->offsetGreen = direct->green;
+	visual->offsetBlue  = direct->blue;
 	/*
 	 * Include A bits in this (unlike GLX which includes only RGB)
 	 * This lets DIX compute suitable masks for colormap allocations
 	 */
 	visual->nplanes = Ones (visual->redMask |
-				visual->greenMask |
-				visual->blueMask |
-				alphaMask);
-	/*
-	 * find widest component
-	 */
+		visual->greenMask |
+		visual->blueMask |
+		alphaMask);
+	/* find widest component */
 	visual->ColormapEntries = (1 << max (Ones (visual->redMask),
-					     max (Ones (visual->greenMask),
-						  Ones (visual->blueMask))));
-
-	/*
-	 * remember the visual ID to detect auto-update windows
-	 */
-	compRegisterAlternateVisuals(cs, &visual->vid, 1);
-	
-	/*
-	 * Fix up the depth
-	 */
-	vids[alt][0] = visual->vid;
-	depth->numVids = 1;
-	depth->vids = vids[alt];
+		    max (Ones (visual->greenMask),
+			Ones (visual->blueMask))));
     }
+
+    /* remember the visual ID to detect auto-update windows */
+    compRegisterAlternateVisuals(cs, &visual->vid, 1);
+
+    /* Fix up the depth */
+    *vid = visual->vid;
+    depth->numVids = 1;
+    depth->vids = vid;
     return TRUE;
 }
 
+static Bool
+compAddAlternateVisuals (ScreenPtr pScreen, CompScreenPtr cs)
+{
+    int alt, ret = 0;
+
+    for (alt = 0; alt < NUM_COMP_ALTERNATE_VISUALS; alt++)
+	ret |= compAddAlternateVisual(pScreen, cs, altVisuals + alt);
+
+    return !!ret;
+}
+
 Bool
 compScreenInit (ScreenPtr pScreen)
 {
diff-tree 21bbd7d64b5f74915afd7a312e589654442f3461 (from 1f71f0c0574bafb36da20fec669f9a1138c69a47)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Feb 6 21:42:50 2007 -0500

    Delete some pre-dlloader debugging scaffolding.
    
    If your loader is as bad as elfloader, then it makes sense for the
    server to have some stubs for you to assign to / break on.  However it
    is no longer 1996.

diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index ba68a7e..f2cf78c 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -85,14 +85,6 @@ extern Bool xf86inSuspend;
 #define PIX24TOBPP(p) (((p) == Pix24Use24) ? 24 : \
 			(((p) == Pix24Use32) ? 32 : 0))
 
-/* variables for debugging */
-#ifdef BUILDDEBUG
-extern char* xf86p8bit[];
-extern CARD32 xf86DummyVar1;
-extern CARD32 xf86DummyVar2;
-extern CARD32 xf86DummyVar3;
-#endif
-
 /* Function Prototypes */
 #ifndef _NO_XF86_PROTOTYPES
 
@@ -365,9 +357,6 @@ void xf86DeleteModuleInfo(int idx);
 
 /* xf86Debug.c */
 #ifdef BUILDDEBUG
- void xf86Break1(void);
-void xf86Break2(void);
-void xf86Break3(void);
 CARD8  xf86PeekFb8(CARD8  *p);
 CARD16 xf86PeekFb16(CARD16 *p);
 CARD32 xf86PeekFb32(CARD32 *p);
@@ -380,8 +369,6 @@ CARD32 xf86PeekMmio32(pointer Base, unsi
 void xf86PokeMmio8(pointer Base, unsigned long Offset, CARD8  v);
 void xf86PokeMmio16(pointer Base, unsigned long Offset, CARD16 v);
 void xf86PokeMmio32(pointer Base, unsigned long Offset, CARD32 v);
-extern void xf86SPTimestamp(xf86TsPtr* timestamp, char* string);
-extern void xf86STimestamp(xf86TsPtr* timestamp);
 #endif
 
 /* xf86Init.c */
diff --git a/hw/xfree86/common/xf86Debug.c b/hw/xfree86/common/xf86Debug.c
index 781c0e5..5b60965 100644
--- a/hw/xfree86/common/xf86Debug.c
+++ b/hw/xfree86/common/xf86Debug.c
@@ -39,88 +39,6 @@
 #include "xf86_OSlib.h"
 #include "compiler.h"
 
-_X_EXPORT void xf86Break1(void)
-{
-}
-
-_X_EXPORT void xf86Break2(void)
-{
-}
-
-_X_EXPORT void xf86Break3(void)
-{
-}
-
-_X_EXPORT char *xf86p8bit[] = { "00000000", "00000001", "00000010", "00000011", 
-		      "00000100", "00000101", "00000110", "00000111", 
-		      "00001000", "00001001", "00001010", "00001011", 
-		      "00001100", "00001101", "00001110", "00001111", 
-		      "00010000", "00010001", "00010010", "00010011", 
-		      "00010100", "00010101", "00010110", "00010111", 
-		      "00011000", "00011001", "00011010", "00011011", 
-		      "00011100", "00011101", "00011110", "00011111", 
-		      "00100000", "00100001", "00100010", "00100011", 
-		      "00100100", "00100101", "00100110", "00100111", 
-		      "00101000", "00101001", "00101010", "00101011", 
-		      "00101100", "00101101", "00101110", "00101111", 
-		      "00110000", "00110001", "00110010", "00110011", 
-		      "00110100", "00110101", "00110110", "00110111", 
-		      "00111000", "00111001", "00111010", "00111011", 
-		      "00111100", "00111101", "00111110", "00111111", 
-		      "01000000", "01000001", "01000010", "01000011", 
-		      "01000100", "01000101", "01000110", "01000111", 
-		      "01001000", "01001001", "01001010", "01001011", 
-		      "01001100", "01001101", "01001110", "01001111", 
-		      "01010000", "01010001", "01010010", "01010011", 
-		      "01010100", "01010101", "01010110", "01010111", 
-		      "01011000", "01011001", "01011010", "01011011", 
-		      "01011100", "01011101", "01011110", "01011111", 
-		      "01100000", "01100001", "01100010", "01100011", 
-		      "01100100", "01100101", "01100110", "01100111", 
-		      "01101000", "01101001", "01101010", "01101011", 
-		      "01101100", "01101101", "01101110", "01101111", 
-		      "01110000", "01110001", "01110010", "01110011", 
-		      "01110100", "01110101", "01110110", "01110111", 
-		      "01111000", "01111001", "01111010", "01111011", 
-		      "01111100", "01111101", "01111110", "01111111", 
-		      "10000000", "10000001", "10000010", "10000011", 
-		      "10000100", "10000101", "10000110", "10000111", 
-		      "10001000", "10001001", "10001010", "10001011", 
-		      "10001100", "10001101", "10001110", "10001111", 
-		      "10010000", "10010001", "10010010", "10010011", 
-		      "10010100", "10010101", "10010110", "10010111", 
-		      "10011000", "10011001", "10011010", "10011011", 
-		      "10011100", "10011101", "10011110", "10011111", 
-		      "10100000", "10100001", "10100010", "10100011", 
-		      "10100100", "10100101", "10100110", "10100111", 
-		      "10101000", "10101001", "10101010", "10101011", 
-		      "10101100", "10101101", "10101110", "10101111", 
-		      "10110000", "10110001", "10110010", "10110011", 
-		      "10110100", "10110101", "10110110", "10110111", 
-		      "10111000", "10111001", "10111010", "10111011", 
-		      "10111100", "10111101", "10111110", "10111111", 
-		      "11000000", "11000001", "11000010", "11000011", 
-		      "11000100", "11000101", "11000110", "11000111", 
-		      "11001000", "11001001", "11001010", "11001011", 
-		      "11001100", "11001101", "11001110", "11001111", 
-		      "11010000", "11010001", "11010010", "11010011", 
-		      "11010100", "11010101", "11010110", "11010111", 
-		      "11011000", "11011001", "11011010", "11011011", 
-		      "11011100", "11011101", "11011110", "11011111", 
-		      "11100000", "11100001", "11100010", "11100011", 
-		      "11100100", "11100101", "11100110", "11100111", 
-		      "11101000", "11101001", "11101010", "11101011", 
-		      "11101100", "11101101", "11101110", "11101111", 
-		      "11110000", "11110001", "11110010", "11110011", 
-		      "11110100", "11110101", "11110110", "11110111", 
-		      "11111000", "11111001", "11111010", "11111011", 
-		      "11111100", "11111101", "11111110", "11111111"
-};
-
-_X_EXPORT CARD32 xf86DummyVar1;
-_X_EXPORT CARD32 xf86DummyVar2;
-_X_EXPORT CARD32 xf86DummyVar3;
-
 CARD8  xf86PeekFb8(CARD8  *p) { return *p; }
 CARD16 xf86PeekFb16(CARD16 *p) { return *p; }
 CARD32 xf86PeekFb32(CARD32 *p) { return *p; }
@@ -157,38 +75,3 @@ void xf86PokeMmio32(pointer Base, unsign
 {
     MMIO_OUT32(Base,Offset,v);
 }
-
-
-#if 0
-_X_EXPORT void
-xf86STimestamp(xf86TsPtr* timestamp)
-{
-    if (*timestamp) {
-	gettimeofday((struct timeval*)*timestamp,NULL);
-    } else {
-	*timestamp = xnfalloc(sizeof(xf86TsRec));
-	gettimeofday((struct timeval*)*timestamp,NULL);
-    }
-}
-
-_X_EXPORT void
-xf86SPTimestamp(xf86TsPtr* timestamp, char *str)
-{
-    if (*timestamp) {
-	long diff;
-	struct timeval ts;
-	ts = **(struct timeval**)timestamp;
-	gettimeofday((struct timeval*)*timestamp,NULL);
-	if (ts.tv_usec > (*timestamp)->usec) 
-	    diff = ((*timestamp)->sec - ts.tv_sec - 1) * 1000
-		+ (ts.tv_usec - (*timestamp)->usec) / 1000;
-	else
-	    diff =  ((*timestamp)->sec - ts.tv_sec) * 1000
-		+(- ts.tv_usec + (*timestamp)->usec) / 1000;
-	ErrorF("%s Elapsed: %li\n",str,diff);
-    } else {
-	*timestamp = xnfalloc(sizeof(xf86TsRec));
-	gettimeofday((struct timeval*)*timestamp,NULL);
-    }
-}
-#endif
diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
index 8da0d20..d925bed 100644
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -706,15 +706,6 @@ _X_HIDDEN void *xfree86LookupTab[] = {
     SYMFUNC(DPMSSet)
     SYMFUNC(DPMSSupported)
 #endif
-/* xf86Debug.c */
-#ifdef BUILDDEBUG
-    SYMFUNC(xf86Break1)
-    SYMFUNC(xf86Break2)
-    SYMFUNC(xf86Break3)
-    SYMFUNC(xf86SPTimestamp)
-    SYMFUNC(xf86STimestamp)
-#endif
-
     SYMFUNC(pciFindFirst)
     SYMFUNC(pciFindNext)
     SYMFUNC(pciWriteByte)
@@ -1127,13 +1118,6 @@ _X_HIDDEN void *xfree86LookupTab[] = {
     SYMVAR(xf86Screens)
     SYMVAR(byte_reversed)
     SYMVAR(xf86inSuspend)
-    /* debugging variables */
-#ifdef BUILDDEBUG
-    SYMVAR(xf86p8bit)
-    SYMVAR(xf86DummyVar1)
-    SYMVAR(xf86DummyVar2)
-    SYMVAR(xf86DummyVar3)
-#endif
 
     /* predefined resource lists from xf86Bus.h */
     SYMVAR(resVgaExclusive)
diff-tree 1f71f0c0574bafb36da20fec669f9a1138c69a47 (from 0a63d874e9c2f4fe4b38839a744461f9d41040b2)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Feb 6 21:28:03 2007 -0500

    Remove (long-)deprecated xf86EnablePciBusMaster.

diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index 169a957..ba68a7e 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -165,9 +165,6 @@ pciVideoPtr xf86FindPciDeviceVendor(CARD
 				    char n, pciVideoPtr pvp_exclude);
 pciVideoPtr xf86FindPciClass(CARD8 intf, CARD8 subClass, CARD16 class,
 			     char n, pciVideoPtr pvp_exclude);
-#ifdef INCLUDE_DEPRECATED
-void xf86EnablePciBusMaster(pciVideoPtr pPci, Bool enable);
-#endif
 void xf86RegisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func, pointer arg);
 Bool xf86DeregisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func);
 
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index ae33568..096b789 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -28,8 +28,6 @@
 /*
  * This file contains the interfaces to the bus-specific code
  */
-#define INCLUDE_DEPRECATED 1
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
@@ -3451,25 +3449,3 @@ pciConvertRange2Host(int entityIndex, re
     tag = TAG(pvp);
     pciTagConvertRange2Host(tag, pRange);
 }
-
-
-#ifdef INCLUDE_DEPRECATED
-_X_EXPORT void
-xf86EnablePciBusMaster(pciVideoPtr pPci, Bool enable)
-{
-    CARD32 temp;
-    PCITAG tag;
-
-    if (!pPci) return;
-
-    tag = pciTag(pPci->bus, pPci->device, pPci->func);
-    temp = pciReadLong(tag, PCI_CMD_STAT_REG);
-    if (enable) {
-	updateAccessInfoStatusControlInfo(tag, temp | PCI_CMD_MASTER_ENABLE);
-	pciWriteLong(tag, PCI_CMD_STAT_REG, temp | PCI_CMD_MASTER_ENABLE);
-    } else {
-	updateAccessInfoStatusControlInfo(tag, temp & ~PCI_CMD_MASTER_ENABLE);
-	pciWriteLong(tag, PCI_CMD_STAT_REG, temp & ~PCI_CMD_MASTER_ENABLE);
-    }
-}
-#endif /* INCLUDE_DEPRECATED */
diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
index aae3629..8da0d20 100644
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -46,8 +46,6 @@
  * authorization from the copyright holder(s) and author(s).
  */
 
-#define INCLUDE_DEPRECATED 1
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
@@ -350,9 +348,6 @@ _X_HIDDEN void *xfree86LookupTab[] = {
     SYMFUNC(xf86FindScreenForEntity)
     SYMFUNC(xf86FindPciDeviceVendor)
     SYMFUNC(xf86FindPciClass)
-#ifdef INCLUDE_DEPRECATED
-    SYMFUNC(xf86EnablePciBusMaster)
-#endif
     SYMFUNC(xf86RegisterStateChangeNotificationCallback)
     SYMFUNC(xf86DeregisterStateChangeNotificationCallback)
     SYMFUNC(xf86NoSharedResources)
diff-tree 0a63d874e9c2f4fe4b38839a744461f9d41040b2 (from 9a1c6afd12caf0143483f72bfbba0c4c3daaa6ff)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Feb 6 21:22:49 2007 -0500

    Always normalize the module name.

diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 2717a9c..4636af4 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -2429,12 +2429,8 @@ xf86LoadOneModule(char *name, pointer op
     if (!name)
 	return NULL;
 
-#ifndef NORMALISE_MODULE_NAME
-    Name = xstrdup(name);
-#else
     /* Normalise the module name */
     Name = xf86NormalizeName(name);
-#endif
 
     /* Skip empty names */
     if (Name == NULL)
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 0975898..666a424 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -1769,12 +1769,8 @@ xf86LoadModules(char **list, pointer *op
 
     for (i = 0; list[i] != NULL; i++) {
 
-#ifndef NORMALISE_MODULE_NAME
-	name = xstrdup(list[i]);
-#else
 	/* Normalise the module name */
 	name = xf86NormalizeName(list[i]);
-#endif
 
 	/* Skip empty names */
 	if (name == NULL || *name == '\0')
diff-tree 9a1c6afd12caf0143483f72bfbba0c4c3daaa6ff (from 8ca2fe8914af1a67bf597f99025e5cbe9b08da57)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Feb 6 21:19:50 2007 -0500

    Remove dead code for screen crossing.

diff --git a/hw/xfree86/common/xf86Cursor.c b/hw/xfree86/common/xf86Cursor.c
index 44c1a77..9e6e622 100644
--- a/hw/xfree86/common/xf86Cursor.c
+++ b/hw/xfree86/common/xf86Cursor.c
@@ -406,18 +406,14 @@ xf86CursorOffScreen(ScreenPtr *pScreen, 
 /*
  * xf86CrossScreen --
  *      Switch to another screen
+ *
+ *	Currently nothing special happens, but mi assumes the CrossScreen
+ *	method exists.
  */
 
-/* NEED TO CHECK THIS */
-/* ARGSUSED */
 static void
 xf86CrossScreen (ScreenPtr pScreen, Bool entering)
 {
-#if 0
-  if (xf86Info.sharedMonitor)
-    (XF86SCRNINFO(pScreen)->EnterLeaveMonitor)(entering);
-  (XF86SCRNINFO(pScreen)->EnterLeaveCursor)(entering);
-#endif
 }
 
 
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 4418a3c..0975898 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -881,14 +881,6 @@ InitOutput(ScreenInfo *pScreenInfo, int 
     xf86Msg(xf86Info.randRFrom, "RandR %s\n",
 	    xf86Info.disableRandR ? "disabled" : "enabled");
 #endif
-#ifdef NOT_USED
-      /*
-       * Here we have to let the driver getting access of the VT. Note that
-       * this doesn't mean that the graphics board may access automatically
-       * the monitor. If the monitor is shared this is done in xf86CrossScreen!
-       */
-      if (!xf86Info.sharedMonitor) (xf86Screens[i]->EnterLeaveMonitor)(ENTER);
-#endif
   }
 
   xf86PostScreenInit();
diff-tree 8ca2fe8914af1a67bf597f99025e5cbe9b08da57 (from e2413cc7cae4e578b8e9b408ea85bef596b03ea3)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Feb 6 21:11:13 2007 -0500

    Delete dead module test code.

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 9690bc5..4418a3c 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -313,39 +313,6 @@ InitOutput(ScreenInfo *pScreenInfo, int 
         LoaderSetOptions(LDR_OPT_ABI_MISMATCH_NONFATAL);
     }
 
-#ifdef TESTING
-    {
-	char **list, **l;
-	const char *subdirs[] = {
-		"drivers",
-		NULL
-	};
-	const char *patlist[] = {
-		"(.*)_drv\\.so",
-		"(.*)_drv\\.o",
-		NULL
-	};
-	ErrorF("Getting module listing...\n");
-	list = LoaderListDirs(NULL, NULL);
-	if (list)
-	    for (l = list; *l; l++)
-		ErrorF("module: %s\n", *l);
-	LoaderFreeDirList(list);
-	ErrorF("Getting video driver listing...\n");
-	list = LoaderListDirs(subdirs, NULL);
-	if (list)
-	    for (l = list; *l; l++)
-		ErrorF("video driver: %s\n", *l);
-	LoaderFreeDirList(list);
-	ErrorF("Getting driver listing...\n");
-	list = LoaderListDirs(NULL, patlist);
-	if (list)
-	    for (l = list; *l; l++)
-		ErrorF("video driver: %s\n", *l);
-	LoaderFreeDirList(list);
-    }
-#endif
-	
     /* Force load mandatory base modules */
     if (!xf86LoadModules(baseModules, NULL))
 	FatalError("Unable to load required base modules, Exiting...\n");
diff-tree e2413cc7cae4e578b8e9b408ea85bef596b03ea3 (from d1d65a84150dfbc3a4dbe108f237a85ab6e09bbb)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Feb 6 21:07:37 2007 -0500

    Remove MEMDEBUG
    
    This existed (but may not have worked) in the monolith, but is gone now.

diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index bbb5855..dd9c34e 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -764,16 +764,6 @@ xf86SigHandler(int signo)
   FatalError("Caught signal %d.  Server aborting\n", signo);
 }
 
-#ifdef MEMDEBUG
-void
-xf86SigMemDebug(int signo)
-{
-    CheckMemory();
-    (void) signal(signo, xf86SigMemDebug);
-    return;
-}
-#endif
-
 static void
 xf86ReleaseKeys(DeviceIntPtr pDev)
 {
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 0afbe12..9690bc5 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -230,9 +230,6 @@ PostConfigInit(void)
 #ifdef SIGXFSZ
        signal(SIGXFSZ,xf86SigHandler);
 #endif
-#ifdef MEMDEBUG
-       signal(SIGUSR2,xf86SigMemDebug);
-#endif
     }
 
 #ifdef XF86PM
diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
index 59ce8da..b6fbd3a 100644
--- a/hw/xfree86/common/xf86Priv.h
+++ b/hw/xfree86/common/xf86Priv.h
@@ -174,9 +174,6 @@ void xf86PostKbdEvent(unsigned key);
 void xf86PostMseEvent(DeviceIntPtr device, int buttons, int dx, int dy);
 void xf86Wakeup(pointer blockData, int err, pointer pReadmask);
 void xf86SigHandler(int signo);
-#ifdef MEMDEBUG
-void xf86SigMemDebug(int signo);
-#endif
 void xf86HandlePMEvents(int fd, pointer data);
 extern int (*xf86PMGetEventFromOs)(int fd,pmEvent *events,int num);
 extern pmWait (*xf86PMConfirmEventToOs)(int fd,pmEvent event);
diff-tree d1d65a84150dfbc3a4dbe108f237a85ab6e09bbb (from cbe74394a5ed21ed80c0aab6eefd2716122cce11)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Feb 6 21:01:08 2007 -0500

    Dead ifdefs for BITMAP_SCANLINE_UNIT == 64
    
    This appears to be a legacy of cfb24 not being smart enough to deal with this
    case.  But since cfb24 unexists, die die die.

diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index e0b758f..2717a9c 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -481,16 +481,6 @@ xf86SetDepthBpp(ScrnInfoPtr scrp, int de
     scrp->bitsPerPixelFrom = X_DEFAULT;
     scrp->depthFrom = X_DEFAULT;
 
-#if BITMAP_SCANLINE_UNIT == 64
-    /*
-     * For platforms with 64-bit scanlines, modify the driver's depth24flags
-     * to remove preferences for packed 24bpp modes, which are not currently
-     * supported on these platforms.
-     */
-    depth24flags &= ~(SupportConvert32to24 | SupportConvert32to24 |
-		      PreferConvert24to32 | PreferConvert32to24);
-#endif
-
     if (xf86FbBpp > 0) {
 	scrp->bitsPerPixel = xf86FbBpp;
 	scrp->bitsPerPixelFrom = X_CMDLINE;
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index c0775d1..0afbe12 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -761,27 +761,6 @@ InitOutput(ScreenInfo *pScreenInfo, int 
 	}
     }
 
-#if BITMAP_SCANLINE_UNIT == 64
-    /*
-     * cfb24 doesn't currently work on architectures with a 64 bit
-     * BITMAP_SCANLINE_UNIT, so check for 24 bit pixel size for pixmaps
-     * or framebuffers.
-     */
-    {
-	Bool usesCfb24 = FALSE;
-
-	if (PIX24TOBPP(pix24) == 24)
-	    usesCfb24 = TRUE;
-	for (i = 0; i < xf86NumScreens; i++)
-	    if (xf86Screens[i]->bitsPerPixel == 24)
-		usesCfb24 = TRUE;
-	if (usesCfb24) {
-	    FatalError("24-bit pixel size is not supported on systems with"
-			" 64-bit scanlines.\n");
-	}
-    }
-#endif
-
 #ifdef XKB
     xf86InitXkb();
 #endif
diff-tree cbe74394a5ed21ed80c0aab6eefd2716122cce11 (from 5657fb065cc79ba3ca5a836f45637ba9894f9abf)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Feb 6 20:44:34 2007 -0500

    Nuke dead X -configure code.

diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c
index abe986e..19f040b 100644
--- a/hw/xfree86/common/xf86Configure.c
+++ b/hw/xfree86/common/xf86Configure.c
@@ -268,17 +268,6 @@ configureInputSection (void)
     /* Crude mechanism to auto-detect mouse (os dependent) */
     { 
 	int fd;
-#if 0 && defined linux
-	/* Our autodetection code can do a better job */
-	int len;
-	char path[32];
-
-	if ((len = readlink(DFLT_MOUSE_DEV, path, sizeof(path) - 1)) > 0) {
-	    path[len] = '\0';
-	    if (strstr(path, "psaux") != NULL)
-		DFLT_MOUSE_PROTO = "PS/2";
-	}
-#endif
 #ifdef WSCONS_SUPPORT
 	fd = open("/dev/wsmouse", 0);
 	if (fd > 0) {
@@ -320,29 +309,6 @@ configureInputSection (void)
     return ptr;
 }
 
-static XF86ConfDRIPtr
-configureDRISection (void)
-{
-#ifdef NOTYET
-    parsePrologue (XF86ConfDRIPtr, XF86ConfDRIRec)
-
-    return ptr;
-#else
-    return NULL;
-#endif
-}
-
-static XF86ConfVendorPtr
-configureVendorSection (void)
-{
-    parsePrologue (XF86ConfVendorPtr, XF86ConfVendorRec)
-
-    return NULL;
-#if 0
-    return ptr;
-#endif
-}
-
 static XF86ConfScreenPtr
 configureScreenSection (int screennum)
 {
@@ -564,29 +530,6 @@ configureLayoutSection (void)
     return ptr;
 }
 
-static XF86ConfModesPtr
-configureModesSection (void)
-{
-#ifdef NOTYET
-    parsePrologue (XF86ConfModesPtr, XF86ConfModesRec)
-
-    return ptr;
-#else
-    return NULL;
-#endif
-}
-
-static XF86ConfVideoAdaptorPtr
-configureVideoAdaptorSection (void)
-{
-    parsePrologue (XF86ConfVideoAdaptorPtr, XF86ConfVideoAdaptorRec)
-
-    return NULL;
-#if 0
-    return ptr;
-#endif
-}
-
 static XF86ConfFlagsPtr
 configureFlagsSection (void)
 {
@@ -859,10 +802,10 @@ DoConfigure()
     xf86config->conf_files = configureFilesSection();
     xf86config->conf_modules = configureModuleSection();
     xf86config->conf_flags = configureFlagsSection();
-    xf86config->conf_videoadaptor_lst = configureVideoAdaptorSection();
-    xf86config->conf_modes_lst = configureModesSection();
-    xf86config->conf_vendor_lst = configureVendorSection();
-    xf86config->conf_dri = configureDRISection();
+    xf86config->conf_videoadaptor_lst = NULL;
+    xf86config->conf_modes_lst = NULL;
+    xf86config->conf_vendor_lst = NULL;
+    xf86config->conf_dri = NULL;
     xf86config->conf_input_lst = configureInputSection();
     xf86config->conf_layout_lst = configureLayoutSection();
 
diff-tree 5657fb065cc79ba3ca5a836f45637ba9894f9abf (from bbe7ce10fa93017374d7a4611427b70a22d7507a)
Author: Dodji Seketeli <dodji at seketeli.org>
Date:   Tue Jul 17 12:12:02 2007 +0200

    exaDriverInit: Fail if pScreenInfo or a member of it is invalid.
    
    EXA may attempt to use the invalid value and crash otherwise.

diff --git a/exa/exa.c b/exa/exa.c
index c5b5a66..8e22b89 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -569,6 +569,45 @@ exaDriverInit (ScreenPtr		pScreen,
     PictureScreenPtr ps;
 #endif
 
+    if (!pScreenInfo)
+	return FALSE;
+
+    if (!pScreenInfo->memoryBase) {
+	LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::memoryBase must be "
+		   "non-zero\n", pScreen->myNum);
+	return FALSE;
+    }
+
+    if (!pScreenInfo->memorySize) {
+	LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::memorySize must be "
+		   "non-zero\n", pScreen->myNum);
+	return FALSE;
+    }
+
+    if (pScreenInfo->offScreenBase > pScreenInfo->memorySize) {
+	LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::offScreenBase must be <= "
+		   "ExaDriverRec::memorySize\n", pScreen->myNum);
+	return FALSE;
+    }
+
+    if (!pScreenInfo->PrepareSolid) {
+	LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::PrepareSolid must be "
+		   "non-NULL\n", pScreen->myNum);
+	return FALSE;
+    }
+
+    if (!pScreenInfo->PrepareCopy) {
+	LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::PrepareCopy must be "
+		   "non-NULL\n", pScreen->myNum);
+	return FALSE;
+    }
+
+    if (!pScreenInfo->WaitMarker) {
+	LogMessage(X_ERROR, "EXA(%d): ExaDriverRec::WaitMarker must be "
+		   "non-NULL\n", pScreen->myNum);
+	return FALSE;
+    }
+
     if (pScreenInfo->exa_major != EXA_VERSION_MAJOR ||
 	pScreenInfo->exa_minor > EXA_VERSION_MINOR)
     {
diff-tree bbe7ce10fa93017374d7a4611427b70a22d7507a (from ac979c165128704116cd40086320b6edc79018e2)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Mon Jul 16 17:25:59 2007 -0700

    Update pci.ids to 2007-07-16 snapshot
    
    Remove nvidia ids in extrapci.ids that are now in pci.ids
    Add nvidia ids to extrapci.ids that are in xf86-video-nv but not pci.ids

diff --git a/hw/xfree86/scanpci/extrapci.ids b/hw/xfree86/scanpci/extrapci.ids
index 08e7af9..e39843b 100644
--- a/hw/xfree86/scanpci/extrapci.ids
+++ b/hw/xfree86/scanpci/extrapci.ids
@@ -37,7 +37,23 @@
 
 # Some NVIDIA cards that are not in the master pci.ids file yet.
 10de	"
-	0147	GeForce 6700 XL
-	0160	GeForce 6500
-	0169	GeForce 6250
+	0095	GeForce 7800 SLI
+	0194	GeForce 8800 Ultra
+	0399	GeForce Go 7600 GT
+	039a	Quadro NVS 300M
+	0400	GeForce 8600 GTS
+	0402	GeForce 8600 GT
+	0407	GeForce 8600M GT
+	040b	Quadro NVS 320M
+	0421	GeForce 8500 GT
+	0422	GeForce 8400 GS
+	0423	GeForce 8300 GS
+	0425	GeForce 8600M GS
+	0426	GeForce 8400M GT
+	0427	GeForce 8400M GS
+	0428	GeForce 8400M G
+	0429	Quadro NVS 140M
+	042a	Quadro NVS 130M
+	042b	Quadro NVS 135M
+
 
diff --git a/hw/xfree86/scanpci/pci.ids b/hw/xfree86/scanpci/pci.ids
index 64713d0..2b91673 100644
--- a/hw/xfree86/scanpci/pci.ids
+++ b/hw/xfree86/scanpci/pci.ids
@@ -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 Thu 2007-01-18 02:05:01
+#	Daily snapshot on Mon 2007-07-16 01:05:02
 #
 
 # Vendors, devices and subsystems. Please keep sorted.
@@ -65,6 +65,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 +83,8 @@
 	0109  F5U409-CU USB/Serial Portable Adapter
 	7050  F5D7050 802.11g Wireless USB Adapter
 	705c  F5D7050 v4
+058f  Alcor Micro Corporation
+	9254  AU9254 (4-port USB hub)
 05a9  OmniVision
 	8519  OV519 series
 05e3  CyberDoor
@@ -111,6 +114,7 @@
 	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
@@ -326,9 +331,11 @@
 	0041  53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI
 	0050  SAS1064 PCI-X Fusion-MPT SAS
 	0054  SAS1068 PCI-X Fusion-MPT SAS
+		1028 1f09  PowerEdge 860 SAS 5i/R
 	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
 	005a  SAS1066E PCI-Express Fusion-MPT SAS
 	005c  SAS1064A PCI-X Fusion-MPT SAS
@@ -341,16 +348,21 @@
 		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
 		1043 824d  MegaRAID SAS PCI Express ROMB
 		1170 002f  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
@@ -453,10 +465,10 @@
 1002  ATI Technologies Inc
 	3150  M24 1P [Radeon Mobility X600]
 	3152  M22 [Radeon Mobility X300]
-	3154  M24 1T [FireGL M24 GL]
+	3154  M24GL [Mobility FireGL V3200]
 	3e50  RV380 0x3e50 [Radeon X600]
 	3e54  RV380 0x3e54 [FireGL V3200]
-	3e70  RV380 [Radeon X600] Secondary
+	3e70  RV380 [Radeon X600] (Secondary)
 	4136  Radeon IGP 320 M
 	4137  Radeon IGP330/340/350
 	4144  R300 AD [Radeon 9500 Pro]
@@ -466,18 +478,18 @@
 	4148  R350 AH [Radeon 9800]
 	4149  R350 AI [Radeon 9800]
 	414a  R350 AJ [Radeon 9800]
-	414b  R350 AK [Fire GL X2]
+	414b  R350 AK [FireGL X2]
 	4150  RV350 AP [Radeon 9600]
 		1002 0002  R9600 Pro primary (Asus OEM for HP)
 		1002 0003  R9600 Pro secondary (Asus OEM for HP)
 		1002 4722  All-in-Wonder 2006 AGP Edition
-		1458 4024  Giga-Byte GV-R96128D Primary
+		1458 4024  Giga-Byte GV-R96128D (Primary)
 		148c 2064  PowerColor R96A-C3N
 		148c 2066  PowerColor R96A-C3N
 		174b 7c19  Sapphire Atlantis Radeon 9600 Pro
-		174b 7c29  GC-R9600PRO Primary [Sapphire]
+		174b 7c29  GC-R9600PRO [Sapphire] (Primary)
 		17ee 2002  Radeon 9600 256Mb Primary
-		18bc 0101  GC-R9600PRO Primary
+		18bc 0101  GC-R9600PRO (Primary)
 	4151  RV350 AQ [Radeon 9600]
 		1043 c004  A9600SE
 	4152  RV350 AR [Radeon 9600]
@@ -490,10 +502,10 @@
 	4153  RV350 AS [Radeon 9550]
 		1043 010c  A9550GE/TD
 		1462 932c  865PE Neo2-V (MS-6788) mainboard
-	4154  RV350 AT [Fire GL T2]
-	4155  RV350 AU [Fire GL T2]
-	4156  RV350 AV [Fire GL T2]
-	4157  RV350 AW [Fire GL T2]
+	4154  RV350 AT [FireGL T2]
+	4155  RV350 AU [FireGL T2]
+	4156  RV350 AV [FireGL T2]
+	4157  RV350 AW [FireGL T2]
 	4158  68800AX [Mach32]
 	4164  R300 AD [Radeon 9500 Pro] (Secondary)
 	4165  R300 AE [Radeon 9700 Pro] (Secondary)
@@ -502,11 +514,11 @@
 	4170  RV350 AP [Radeon 9600] (Secondary)
 		1002 0003  R9600 Pro secondary (Asus OEM for HP)
 		1002 4723  All-in-Wonder 2006 AGP Edition (Secondary)
-		1458 4025  Giga-Byte GV-R96128D Secondary
+		1458 4025  Giga-Byte GV-R96128D (Secondary)
 		148c 2067  PowerColor R96A-C3N (Secondary)
-		174b 7c28  GC-R9600PRO Secondary [Sapphire]
-		17ee 2003  Radeon 9600 256Mb Secondary
-		18bc 0100  GC-R9600PRO Secondary
+		174b 7c28  GC-R9600PRO [Sapphire] (Secondary)
+		17ee 2003  Radeon 9600 256Mb (Secondary)
+		18bc 0100  GC-R9600PRO (Secondary)
 	4171  RV350 AQ [Radeon 9600] (Secondary)
 		1043 c005  A9600SE (Secondary)
 	4172  RV350 AR [Radeon 9600] (Secondary)
@@ -533,16 +545,18 @@
 	4345  EHCI USB Controller
 	4347  OHCI USB Controller #1
 	4348  OHCI USB Controller #2
-	4349  ATI Dual Channel Bus Master PCI IDE Controller
+	4349  Dual Channel Bus Master PCI IDE Controller
 	434d  IXP AC'97 Modem
-	4353  ATI SMBus
+	4353  SMBus
 	4354  215CT [Mach64 CT]
 	4358  210888CX [Mach64 CX]
-	4363  ATI SMBus
-	436e  ATI 436E Serial ATA Controller
+	4363  SMBus
+	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
@@ -557,19 +571,19 @@
 	4375  IXP SB400 USB Host Controller
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
-	4376  Standard Dual Channel PCI IDE Controller ATI
+	4376  Standard Dual Channel PCI IDE Controller
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
 	4377  IXP SB400 PCI-ISA Bridge
 		1025 0080  Aspire 5024WLMi
 		103c 308b  MX6125
-	4378  ATI SB400 - AC'97 Modem Controller
+	4378  SB400 AC'97 Modem Controller
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
-	4379  ATI 4379 Serial ATA Controller
-	437a  ATI 437A Serial ATA Controller
-		1002 4379  ATI 4379 Serial ATA Controller
-		1002 437a  ATI 437A Serial ATA Controller
+	4379  4379 Serial ATA Controller
+	437a  437A Serial ATA Controller
+		1002 4379  4379 Serial ATA Controller
+		1002 437a  437A Serial ATA Controller
 		14f1 8800  Leadtek WinFast TV2000XP Expert
 	437b  SB450 HDA Audio
 		1734 10b8  Realtek High Definition Audio
@@ -741,6 +755,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
@@ -754,9 +769,10 @@
 	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]
 # Secondary chip to the Lf
-	4c6e  Radeon R250 Ln [Radeon Mobility 9000 M9] [Secondary]
+	4c6e  Radeon R250 Ln [Radeon Mobility 9000 M9] (Secondary)
 	4d46  Rage Mobility M4 AGP
 	4d4c  Rage Mobility M4 AGP
 	4e44  Radeon R300 ND [Radeon 9700 Pro]
@@ -770,7 +786,7 @@
 	4e48  Radeon R350 [Radeon 9800 Pro]
 	4e49  Radeon R350 [Radeon 9800]
 	4e4a  RV350 NJ [Radeon 9800 XT]
-	4e4b  R350 NK [Fire GL X2]
+	4e4b  R350 NK [FireGL X2]
 	4e50  RV350 [Mobility Radeon 9600 M10]
 		1025 005a  TravelMate 290
 		103c 088c  NC8000 laptop
@@ -793,7 +809,7 @@
 	4e68  Radeon R350 [Radeon 9800 Pro] (Secondary)
 	4e69  Radeon R350 [Radeon 9800] (Secondary)
 	4e6a  RV350 NJ [Radeon 9800 XT] (Secondary)
-		1002 4e71  ATI Technologies Inc M10 NQ [Radeon Mobility 9600]
+		1002 4e71  M10 NQ [Radeon Mobility 9600]
 	4e71  M10 NQ [Radeon Mobility 9600] (Secondary)
 	4f72  RV250 [Radeon 9000 Series]
 	4f73  Radeon RV250 [Radeon 9000 Series] (Secondary)
@@ -891,7 +907,7 @@
 		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 019a  PowerEdge SC1425
 		103c 1292  Radeon 7000
 		1458 4002  RV100 QY [RADEON 7000 PRO MAYA AV Series]
@@ -956,7 +972,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)]
@@ -965,18 +982,18 @@
 	554b  R423 UK [Radeon X800SE (PCIE)]
 	554d  R430 [Radeon X800 XL] (PCIe)
 	554f  R430 [Radeon X800 (PCIE)]
-	5550  R423 [Fire GL V7100]
+	5550  R423 [FireGL V7100]
 	5551  R423 [FireGL V5100 (PCIE)]
 	5552  R423 UR [FireGL V5100 (PCIE)]
 	5554  R423 UT [FireGL V7100 (PCIE)]
-	5569  R423 UI [Radeon X800PRO (PCIE)] Secondary
+	5569  R423 UI [Radeon X800PRO (PCIE)] (Secondary)
 	556b  Radeon R423 UK (PCIE) [X800 SE] (Secondary)
-	556d  R430 [Radeon X800 XL] (PCIe) Secondary
-	556f  R430 [Radeon X800 (PCIE) Secondary]
-	5571  R423GL-SE ATI FIREGL V5100 PCI-EX Secondary
+	556d  R430 [Radeon X800 XL] (PCIe) (Secondary)
+	556f  R430 [Radeon X800] (PCIE) (Secondary)
+	5571  R423GL-SE [FireGL V5100 (PCIE)] (Secondary)
 	564a  M26 [Mobility FireGL V5000]
 	564b  M26 [Mobility FireGL V5000]
-	564f  M26 [Radeon Mobility X700 XL] (PCIE)
+	564f  M26 [Radeon Mobility X700 XL (PCIE)]
 	5652  M26 [Radeon Mobility X700]
 	5653  Radeon Mobility X700 (PCIE)
 		1025 0080  Aspire 5024WLMi
@@ -992,6 +1009,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
@@ -1001,14 +1019,15 @@
 	5950  RS480 Host Bridge
 		1025 0080  Aspire 5024WLMMi
 		103c 308b  MX6125
-	5951  ATI Radeon Xpress 200 (RS480/RS482/RX480/RX482) Chipset - Host bridge
+	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]
 		1002 5954  RV370 [Radeon Xpress 200G Series]
-	5955  ATI Radeon XPRESS 200M 5955 (PCIE)
-		1002 5955  RS480 0x5955 [ATI Radeon XPRESS 200M 5955 (PCIE)]
+	5955  Radeon XPRESS 200M 5955 (PCIE)
+		1002 5955  RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)]
 		103c 308b  MX6125
 	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
@@ -1021,7 +1040,7 @@
 		18bc 0053  Radeon 9200 Game Buster VIVO
 	5962  RV280 [Radeon 9200]
 	5964  RV280 [Radeon 9200 SE]
-		1002 5964  ATI Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz
+		1002 5964  Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz
 		1043 c006  ASUS Radeon 9200 SE / TD / 128M
 		1458 4018  Radeon 9200 SE
 		1458 4032  Radeon 9200 SE 128MB
@@ -1071,6 +1090,7 @@
 	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)
@@ -1082,8 +1102,8 @@
 	5d4d  R480 [Radeon X850XT Platinum (PCIE)]
 	5d4f  R480 [Radeon X800 GTO (PCIE)]
 	5d52  R480 [Radeon X850XT (PCIE)] (Primary)
-		1002 0b12  PowerColor X850XT PCIe Primary
-		1002 0b13  PowerColor X850XT PCIe Secondary
+		1002 0b12  PowerColor X850XT PCIe (Primary)
+		1002 0b13  PowerColor X850XT PCIe (Secondary)
 	5d57  R423 5F57 [Radeon X800XT (PCIE)]
 	5d6d  R480 [Radeon X850XT Platinum (PCIE)] (Secondary)
 	5d6f  R480 [Radeon X800 GTO (PCIE)] (Secondary)
@@ -1097,7 +1117,7 @@
 	5e4d  RV410 [Radeon X700 (PCIE)]
 		148c 2116  PowerColor Bravo X700
 	5e4f  RV410 [Radeon X700]
-	5e6b  RV410 [Radeon X700 Pro (PCIE)] Secondary
+	5e6b  RV410 [Radeon X700 Pro (PCIE)] (Secondary)
 	5e6d  RV410 [Radeon X700 (PCIE)] (Secondary)
 		148c 2117  PowerColor Bravo X700
 	5f57  R423 [Radeon X800XT (PCIE)]
@@ -1106,7 +1126,7 @@
 	7100  R520 [Radeon X1800]
 	7102  M58 [Radeon Mobility X1800]
 	7103  M58 [Mobility FireGL V7200]
-	7104  R520 GL ATI FireGL V7200 Primary
+	7104  R520GL [FireGL V7200] (Primary)
 	7105  R520 [FireGL]
 	7106  M58 [Mobility FireGL V7100]
 	7108  M58 [Radeon Mobility X1800]
@@ -1117,66 +1137,69 @@
 	710b  R520 [Radeon X1800]
 	710c  R520 [Radeon X1800]
 	7120  R520 [Radeon X1800] (Secondary)
-	7124  R520 GL ATI FireGL V7200 Secondary
+	7124  R520GL [FireGL V7200] (Secondary)
 	7129  R520 [Radeon X1800] (Secondary)
 		1002 0323  All-in-Wonder X1800XL (Secondary)
 		1002 0d03  Radeon X1800 CrossFire Edition (Secondary)
 	7140  RV515 [Radeon X1600]
-	7142  RV515 PRO [ATI Radeon X1300/X1550 Series]
+	7142  RV515 PRO [Radeon X1300/X1550 Series]
 		1002 0322  All-in-Wonder 2006 PCI-E Edition
 	7143  RV505 [Radeon X1550 Series]
 	7145  Radeon Mobility X1400
 	7146  RV515 [Radeon X1300]
 		1002 0322  All-in-Wonder 2006 PCI-E Edition
 	7147  RV505 [Radeon X1550 64-bit]
-	7149  M52 [ATI Mobility Radeon X1300]
-	714a  M52 [ATI Mobility Radeon X1300]
-	714b  M52 [ATI Mobility Radeon X1300]
-	714c  M52 [ATI Mobility Radeon X1300]
+	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]
-	7152  RV515 GL ATI FireGL V3300 Primary
+	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 [ATI Radeon X1300/X1550 Series Secondary]
+	7162  RV515 PRO [Radeon X1300/X1550 Series] (Secondary)
 		1002 0323  All-in-Wonder 2006 PCI-E Edition (Secondary)
 	7166  RV515 [Radeon X1300] (Secondary)
 		1002 0323  All-in-Wonder 2006 PCI-E Edition (Secondary)
-	7172  RV515 GL ATI FireGL V3300 Secondary
-	7173  RV515GL [FireGL V3350 Secondary]
-	7180  RV516 [ATI Radeon X1300/X1550 Series]
-	7181  RV516 XT Radeon X1600 Series Primary
-	7183  RV516 [ATI Radeon X1300/X1550 Series]
-	7187  RV516 [ATI Radeon X1300/X1550 Series]
-	7188  M64-S [ATI Mobility Radeon X2300]
-	718a  ATI Mobility Radeon X2300
-	718c  M62CSP64 [ATI Mobility Radeon X1350]
-	718d  M64CSP128 [ATI Mobility Radeon X1450]
+	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]
+	7187  RV516 [Radeon X1300/X1550 Series]
+	7188  M64-S [Mobility Radeon X2300]
+	718a  Mobility Radeon X2300
+	718c  M62CSP64 [Mobility Radeon X1350]
+	718d  M64CSP128 [Mobility Radeon X1450]
 	7193  RV516 [Radeon X1550 Series]
 	719b  FireMV 2250
 	719f  RV516LE [Radeon X1550 64-bit]
-	71a0  RV516 [ATI Radeon X1300/X1550 Series Secondary]
-	71a1  RV516 XT Radeon X1600 Series Secondary
-	71a3  RV516 [ATI Radeon X1300 Pro Secondary]
-	71a7  RV516 [ATI Radeon X1300/X1550 Series Secondary]
-	71bb  FireMV 2250 Secondary
+	71a0  RV516 [Radeon X1300/X1550 Series] (Secondary)
+	71a1  RV516 XT Radeon X1600 Series (Secondary)
+	71a3  RV516 [Radeon X1300 Pro] (Secondary)
+	71a7  RV516 [Radeon X1300/X1550 Series] (Secondary)
+	71bb  FireMV 2250 (Secondary)
 	71c0  RV530 [Radeon X1600]
 	71c2  RV530 [Radeon X1600]
-	71c4  M56GL [ATI Mobility FireGL V5200]
+	71c4  M56GL [Mobility FireGL V5200]
 		17aa 2007  ThinkPad T60p
 	71c5  M56P [Radeon Mobility X1600]
-	71c6  RV530LE [Radeon X1600]
+	71c6  RV530LE [Radeon X1600/X1650 PRO]
 	71c7  RV535 [Radeon X1650 Series]
 	71ce  RV530LE [Radeon X1600]
-	71d5  M66-P ATI Mobility Radeon X1700
-	71d6  M66-XT ATI Mobility Radeon X1700
+	71d4  M56GL [Mobility FireGL V5250]
+	71d5  M66-P [Mobility Radeon X1700]
+	71d6  M66-XT [Mobility Radeon X1700]
 	71de  RV530LE [Radeon X1600]
 	71e0  RV530 [Radeon X1600] (Secondary)
 	71e2  RV530 [Radeon X1600] (Secondary)
+	71e6  RV530LE [Radeon X1650 PRO] (Secondary)
 	71e7  RV535 [Radeon X1650 Series]
-	7210  M71 [ATI Mobility Radeon X2100]
-	7211  M71 [ATI Mobility Radeon X2100 Secondary]
+	7210  M71 [Mobility Radeon X2100]
+	7211  M71 [Mobility Radeon X2100] (Secondary)
 	7240  R580 [Radeon X1900]
 	7241  R580 [Radeon X1900]
 	7242  R580 [Radeon X1900]
@@ -1186,32 +1209,33 @@
 	7246  R580 [Radeon X1900]
 	7247  R580 [Radeon X1900]
 	7248  R580 [Radeon X1900]
-	7249  R580 [Radeon X1900 XT] Primary
+	7249  R580 [Radeon X1900 XT] (Primary)
 	724a  R580 [Radeon X1900]
 	724b  R580 [Radeon X1900]
-		1002 0b12  Radeon X1900 Primary Display Device
-		1002 0b13  Radeon X1900 Secondary Display Device
+		1002 0b12  Radeon X1900 (Primary)
+		1002 0b13  Radeon X1900 (Secondary)
 	724c  R580 [Radeon X1900]
 	724d  R580 [Radeon X1900]
 	724e  R580 [AMD Stream Processor]
-	7269  R580 [Radeon X1900 XT] Secondary
+	7269  R580 [Radeon X1900 XT] (Secondary)
 	726b  R580 [Radeon X1900]
-	726e  R580 [AMD Stream Processor Secondary]
-	7280  ATI Radeon X1950 Pro Primary (PCIE)
-	7288  ATI Radeon X1950 GT
-	7291  ATI Radeon X1650 XT Primary (PCIE)
+	726e  R580 [AMD Stream Processor] (Secondary)
+	7280  Radeon X1950 Pro (Primary) (PCIE)
+	7288  Radeon X1950 GT
+	7291  Radeon X1650 XT (Primary) (PCIE)
 	7293  Radeon X1650 Series
-	72a0  ATI Radeon X1950 Pro Secondary (PCIE)
-	72a8  ATI Radeon X1950 GT Secondary
-	72b1  ATI Radeon X1650 XT Secondary (PCIE)
-	72b3  ATI Radeon X1650 Series Secondary
+	72a0  Radeon X1950 Pro (Secondary) (PCIE)
+	72a8  Radeon X1950 GT (Secondary)
+	72b1  Radeon X1650 XT (Secondary) (PCIE)
+	72b3  Radeon X1650 Series (Secondary)
 	7833  Radeon 9100 IGP Host Bridge
 	7834  Radeon 9100 PRO IGP
 	7835  Radeon Mobility 9200 IGP
 	7838  Radeon 9100 IGP PCI/AGP Bridge
-	791e  ATI Radeon Xpress 1200 Series
-	791f  ATI Radeon Xpress 1200 Series
-	793f  ATI Radeon Xpress 1200 Series Secondary
+	7919  Radeon X1200 Series Audio Controller
+	791e  Radeon X1200 Series
+	791f  Radeon X1200 Series
+	793f  Radeon X1200 Series (Secondary)
 	7c37  RV350 AQ [Radeon 9600 SE]
 	cab0  AGP Bridge [IGP 320M]
 	cab2  RS200/RS200M AGP Bridge [IGP 340M]
@@ -1285,13 +1309,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
@@ -1518,7 +1547,7 @@
 	009f  PCI 4758 Cryptographic Accelerator
 	00a5  ATM Controller (1410a500)
 	00a6  ATM 155MBPS MM Controller (1410a600)
-	00b7  256-bit Graphics Rasterizer [Fire GL1]
+	00b7  256-bit Graphics Rasterizer [FireGL1]
 		1092 00b8  FireGL1 AGP 32Mb
 	00b8  GXT2000P Graphics Adapter
 	00be  ATM 622MBPS Controller (1410be00)
@@ -1552,6 +1581,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
@@ -1572,9 +1604,12 @@
 	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-X266 Auxiliary Cache Adapter (575C)
 	0302  Winnipeg PCI-X Host Bridge
 	0308  CalIOC2 PCI-E Root Port
 	0314  ZISC 036 Neural accelerator card
+	0339  Obsidian-E PCI-E SCSI controller
+		1014 0360  PCI-E Auxiliary Cache Adapter (57B7)
 	3022  QLA3022 Network Adapter
 	4022  QLA3022 Network Adapter
 	ffff  MPIC-2 interrupt controller
@@ -1586,6 +1621,10 @@
 1019  Elitegroup Computer Systems
 101a  AT&T GIS (NCR)
 	0005  100VG ethernet
+	1dc1  Bynet
+		101a 0019  BIC2M
+		101a 001f  BIC4M
+		101a 0ece  BYA4M
 101b  Vitesse Semiconductor
 101c  Western Digital
 	0193  33C193A
@@ -1632,6 +1671,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
@@ -1661,8 +1710,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
@@ -1881,7 +1929,7 @@
 	0015  PowerEdge Expandable RAID controller 5i
 		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 Adapter RAID Controller
 1029  Siemens Nixdorf IS
 102a  LSI Logic
 	0000  HYDRA
@@ -2037,6 +2085,7 @@
 	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
@@ -2179,6 +2228,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
@@ -2222,6 +2272,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
@@ -2250,6 +2301,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 +2328,9 @@
 		1569 6326  SiS6326 GUI Accelerator
 	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
@@ -2283,14 +2338,17 @@
 		1039 7000  Onboard USB Controller
 		1462 5470  K7SOM+ 5.2C Motherboard
 		1462 7010  MS-6701 motherboard
+		1734 1095  D2030-A1 Motherboard
 	7002  USB 2.0 Controller
 		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
 		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
@@ -2302,6 +2360,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
@@ -2379,6 +2438,7 @@
 	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
 	2910  E2910A PCIBus Exerciser
 	2925  E2925A 32 Bit, 33 MHzPCI Exerciser & Analyzer
 	3080  Pavilion ze2028ea
@@ -2387,6 +2447,11 @@
 	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
+	3238  Smart Array E200i (SAS Controller)
 	4030  zx2 System Bus Adapter
 	4031  zx2 I/O Controller
 	4037  PCIe Local Bus Adapter
@@ -2714,7 +2779,7 @@
 	ac56  PCI1510 PC card Cardbus Controller
 		1014 0512  Thinkpad R50e model 1634
 		1014 0528  ThinkPad R40e (2684-HVG) Cardbus Controller
-		17aa 2012  Thinkpad R60e model 0657
+		17aa 2012  ThinkPad T60/R60 series
 	ac60  PCI2040 PCI to DSP Bridge Controller
 		175c 5100  ASI51xx Audio Adapter
 		175c 6100  ASI61xx Audio Adapter
@@ -2764,6 +2829,8 @@
 1052  ?Young Micro Systems
 1053  Young Micro Systems
 1054  Hitachi, Ltd
+	3011  ColdFusion 3e Chipset Processor to I/O Controller
+	3012  ColdFusion 3e Chipset Memory Controller Hub
 1055  Efar Microsystems
 	9130  SLC90E66 [Victory66] IDE
 	9460  SLC90E66 [Victory66] ISA
@@ -2782,6 +2849,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]
@@ -2858,7 +2927,7 @@
 1059  Teknor Industrial Computers Inc
 105a  Promise Technology, Inc.
 	0d30  PDC20265 (FastTrak100 Lite/Ultra100)
-		1043 8042  ASUS AV7266-E South Bridge Promise RAID
+		1043 8042  AV7266-E South Bridge Promise RAID
 		105a 4d33  Ultra100
 	0d38  20263
 		105a 4d39  Fasttrak66
@@ -2916,13 +2985,15 @@
 	7275  PDC20277 (SBFastTrak133 Lite)
 	8002  SATAII150 SX8
 	8350  80333 [SuperTrak EX8350/EX16350], 80331 [SuperTrak EX8300/EX16300]
-	8650  IOP1348 [SuperTrak EX4650/EX8650/EX8654]
+	8650  81348 [SuperTrak EX4650/EX8650/EX8654/EX4650EL]
 		105a 4600  SuperTrak EX4650
+		105a 4610  SuperTrak EX4650EL
 		105a 8601  SuperTrak EX8650
 		105a 8602  SuperTrak EX8654
 	c350  80333 [SuperTrak EX12350]
 	e350  80333 [SuperTrak EX24350]
 105b  Foxconn International, Inc.
+	0c4d  SiS AC'97 Sound Controller
 105c  Wipro Infotech Limited
 105d  Number 9 Computer Company
 	2309  Imagine 128
@@ -3267,12 +3338,16 @@
 	1648  [bge] Gigabit Ethernet
 	2bad  GEM
 	5000  Simba Advanced PCI Bridge
+		108e 5000  Netra AX1105-500
 	5043  SunPCI Co-processor
+	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
+		108e a001  Netra AX1105-500
 	a801  Tomatillo PCI Bus Module
 	abba  Cassini 10/100/1000
 108f  Systemsoft
@@ -3598,11 +3673,15 @@
 	1147  VScom 020 2 port parallel adaptor
 	2540  IXXAT CAN-Interface PC-I 04/PCI
 	2724  Thales PCSM Security Card
+	6520  PCI6520 PCI-X to PCI-X bridge
 	6540  PCI6540/6466 PCI-PCI bridge (transparent mode)
+		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
 	8114  PEX 8114 PCI Express-to-PCI/PCI-X Bridge
@@ -3672,14 +3751,16 @@
 		12c7 4001  Intel Dialogic DM/V960-4T1 PCI
 		12d9 0002  PCI Prosody Card rev 1.5
 		14b4 d100  Dektec DTA-100
+		14b4 d114  Dektec DTA-120
 		16df 0011  PIKA PrimeNet MM PCI
 		16df 0012  PIKA PrimeNet MM cPCI 8
 		16df 0013  PIKA PrimeNet MM cPCI 8 (without CAS Signaling)
 		16df 0014  PIKA PrimeNet MM cPCI 4
 		16df 0015  PIKA Daytona MM
 		16df 0016  PIKA InLine MM
-	9056  Francois
+	9056  9056 PCI I/O Accelerator
 		10b5 2979  CellinkBlade 11 - CPCI board VoATM AAL1
+		14b4 d140  Dektec DTA-140
 	9060  9060
 	906d  9060SD
 		125c 0640  Aries 16000P
@@ -3731,6 +3812,7 @@
 	0910  3C910-A01
 	1006  MINI PCI type 3B Data Fax Modem
 	1007  Mini PCI 56k Winmodem
+		10b7 615b  Mini PCI 56K Modem
 		10b7 615c  Mini PCI 56K Modem
 	1201  3c982-TXM 10/100baseTX Dual Port A [Hydra]
 	1202  3c982-TXM 10/100baseTX Dual Port B [Hydra]
@@ -3819,9 +3901,10 @@
 	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  3C905C-TX Fast Etherlink for PC Management NIC
+		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)
 	9201  3C920B-EMB Integrated Fast Ethernet Controller [Tornado]
@@ -4157,8 +4240,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
@@ -4196,7 +4279,7 @@
 	0041  NV40 [GeForce 6800]
 		1043 817b  V9999 Gamer Edition
 	0042  NV40.2 [GeForce 6800 LE]
-	0043  NV40.3
+	0043  NV40.3 [GeForce 6800 XE]
 	0044  NV40 [GeForce 6800 XT]
 	0045  NV40 [GeForce 6800 GT]
 	0046  NV40 [GeForce 6800 GT]
@@ -4207,52 +4290,54 @@
 	004d  NV40GL [Quadro FX 4000]
 	004e  NV40GL [Quadro FX 4000]
 	0050  CK804 ISA Bridge
-		1043 815a  K8N4-E Mainboard
+		1043 815a  K8N4-E or A8N-E Mainboard
 		1458 0c11  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
 	0051  CK804 ISA Bridge
 	0052  CK804 SMBus
-		1043 815a  K8N4-E Mainboard
+		1043 815a  K8N4-E or A8N-E Mainboard
 		1458 0c11  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
 	0053  CK804 IDE
-		1043 815a  K8N4-E Mainboard
+		1043 815a  K8N4-E or A8N-E Mainboard
 		1458 5002  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
 	0054  CK804 Serial ATA Controller
+		1043 815a  A8N-E Mainboard
 		1458 b003  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
 	0055  CK804 Serial ATA Controller
-		1043 815a  K8N4-E Mainboard
+		1043 815a  K8N4-E or A8N-E Mainboard
 		1458 b003  GA-K8N Ultra-9 Mainboard
 		147b 1c1a  KN8-Ultra Mainboard
 	0056  CK804 Ethernet Controller
 	0057  CK804 Ethernet Controller
-		1043 8141  K8N4-E Mainboard
+		1043 8141  K8N4-E or A8N-E Mainboard
 		1458 e000  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
 	0058  CK804 AC'97 Modem
 	0059  CK804 AC'97 Audio Controller
-		1043 812a  K8N4-E Mainboard
+		1043 812a  K8N4-E or A8N-E Mainboard
 		147b 1c1a  KN8-Ultra Mainboard
 	005a  CK804 USB Controller
-		1043 815a  K8N4-E Mainboard
+		1043 815a  K8N4-E or A8N-E Mainboard
 		1458 5004  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
 	005b  CK804 USB Controller
-		1043 815a  K8N4-E Mainboard
+		1043 815a  K8N4-E or A8N-E Mainboard
 		1458 5004  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
 		147b 1c1a  KN8-Ultra Mainboard
 	005c  CK804 PCI Bridge
 	005d  CK804 PCIE Bridge
 	005e  CK804 Memory Controller
+		1043 815a  A8N-E Mainboard
 		10f1 2891  Thunder K8SRE Mainboard
 		1458 5000  GA-K8N Ultra-9 Mainboard
 		1462 7100  MSI K8N Diamond
@@ -4301,15 +4386,15 @@
 	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
-	009d  G70GL [Quadro FX4500]
+	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]
@@ -4329,59 +4414,70 @@
 	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
 	00ed  nForce3 250Gb PCI-to-PCI Bridge
 	00ee  CK8S Serial ATA Controller (v2.5)
-	00f0  NV40 [GeForce 6800/GeForce 6800 Ultra]
-	00f1  NV43 [GeForce 6600/GeForce 6600 GT]
+	00f0  NV40 [GeForce 6800 Ultra]
+	00f1  NV43 [GeForce 6600 GT]
 		1043 81a6  N6600GT TD 128M AGP
+		1458 3150  GV-N66T128VP
 		1682 2119  GeForce 6600 GT AGP 128MB DDR3 DUAL DVI TV
-	00f2  NV43 [GeForce 6600/GeForce 6600 GT]
+	00f2  NV43 [GeForce 6600]
 		1682 211c  GeForce 6600 256MB DDR DUAL DVI TV
 	00f3  NV43 [GeForce 6200]
 	00f4  NV43 [GeForce 6600 LE]
 	00f5  G70 [GeForce 7800 GS]
-	00f6  NV43 [GeForce 6600 GS]
+	00f6  NV43 [GeForce 6800 GS]
 		1682 217e  XFX GeForce 6800 XTreme 256MB DDR3 AGP
 	00f8  NV45GL [Quadro FX 3400/4400]
-	00f9  NV40 [GeForce 6800 Ultra/GeForce 6800 GT]
+	00f9  NV45 [GeForce 6800 GTO]
 		1682 2120  GEFORCE 6800 GT PCI-E
 	00fa  NV36 [GeForce PCX 5750]
 	00fb  NV35 [GeForce PCX 5900]
 	00fc  NV37GL [Quadro FX 330/GeForce PCX 5300]
-	00fd  NV37GL [Quadro FX 330/Quadro NVS280]
+	00fd  NV37GL [Quadro PCI-E Series]
 	00fe  NV38GL [Quadro FX 1300]
 	00ff  NV18 [GeForce PCX 4300]
 	0100  NV10 [GeForce 256 SDR]
@@ -4410,6 +4506,7 @@
 		1048 0c4b  GLoria II-64 Pro DVII
 	0110  NV11 [GeForce2 MX/MX 400]
 		1043 4015  AGP-V7100 Pro
+		1043 4021  V7100 Deluxe Combo
 		1043 4031  V7100 Pro with TV output
 		1048 0c60  Gladiac MX
 		1048 0c61  Gladiac 511PCI
@@ -4422,20 +4519,23 @@
 		1462 8817  MSI GeForce2 MX400 Pro32S [MS-8817]
 		14af 7102  3D Prophet II MX
 		14af 7103  3D Prophet II MX Dual-Display
-	0111  NV11DDR [GeForce2 MX 100 DDR/200 DDR]
+	0111  NV11DDR [GeForce2 MX200]
 	0112  NV11 [GeForce2 Go]
 	0113  NV11GL [Quadro2 MXR/EX/Go]
 	0140  NV43 [GeForce 6600 GT]
 	0141  NV43 [GeForce 6600]
+		1043 81b0  EN6600 Silencer
 		1458 3124  GV-NX66128DP Turbo Force Edition
-	0142  NV43 [GeForce 6600 PCIe]
+	0142  NV43 [GeForce 6600 LE]
+	0143  NV43 [GeForce 6600 VE]
 	0144  NV43 [GeForce Go 6600]
 	0145  NV43 [GeForce 6610 XL]
 	0146  NV43 [Geforce Go 6600TE/6200TE]
+	0147  GeForce 6700 XL
 	0148  NV43 [GeForce Go 6600]
 	0149  NV43 [GeForce Go 6600 GT]
 	014a  Quadro NVS 440
-	014c  Quadro FX 550
+	014c  Quadro FX 540 MXM
 	014d  NV18GL [Quadro FX 550]
 	014e  NV43GL [Quadro FX 540]
 	014f  NV43 [GeForce 6200]
@@ -4453,14 +4553,17 @@
 	0152  NV15BR [GeForce2 Ultra, Bladerunner]
 		1048 0c56  GLADIAC Ultra
 	0153  NV15GL [Quadro2 Pro]
+	0160  GeForce 6500
 	0161  NV44 [GeForce 6200 TurboCache(TM)]
-	0162  NV44 [GeForce 6200 SE TurboCache (TM)]
+	0162  NV44 [GeForce 6200SE TurboCache (TM)]
 	0163  NV44 [GeForce 6200 LE]
 	0164  NV44 [GeForce Go 6200]
 	0165  NV44 [Quadro NVS 285]
 	0166  NV43 [GeForce Go 6400]
-	0167  GeForce Go 6200 TurboCache
-	0168  NV43 [GeForce Go 6200 TurboCache]
+	0167  NV43 [GeForce Go 6200/6400]
+	0168  NV43 [GeForce Go 6200/6400]
+	0169  GeForce 6250
+	016a  GeForce 7100 GS
 	0170  NV17 [GeForce4 MX 460]
 	0171  NV17 [GeForce4 MX 440]
 		10b0 0002  Gainward Pro/600 TV
@@ -4478,9 +4581,9 @@
 		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 [Quadro4 200/400 NVS]
+	017a  NV17GL [Quadro NVS]
 	017b  NV17GL [Quadro4 550 XGL]
 	017c  NV17GL [Quadro4 500 GoGL]
 	017d  NV17 [GeForce4 410 Go 16M]
@@ -4493,14 +4596,19 @@
 		147b 8f0d  Siluro GF4 MX-8X
 	0182  NV18 [GeForce4 MX 440SE AGP 8x]
 	0183  NV18 [GeForce4 MX 420 AGP 8x]
-	0185  NV18 [GeForce4 MX 4000 AGP 8x]
+	0184  NV18 [GeForce4 MX]
+	0185  NV18 [GeForce4 MX 4000]
 	0186  NV18M [GeForce4 448 Go]
 	0187  NV18M [GeForce4 488 Go]
 	0188  NV18GL [Quadro4 580 XGL]
-	018a  NV18GL [Quadro4 NVS AGP 8x]
+	018a  NV18GL [Quadro NVS with AGP8X]
 	018b  NV18GL [Quadro4 380 XGL]
-	018c  Quadro NVS 50 PCI
+	018c  NV18GL [Quadro NVS 50 PCI]
 	018d  NV18M [GeForce4 448 Go]
+	0191  G80 [GeForce 8800 GTX]
+	0193  G80 [GeForce 8800 GTS]
+	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)
@@ -4516,15 +4624,18 @@
 	01c1  nForce AC'97 Modem Controller
 	01c2  nForce USB Controller
 	01c3  nForce Ethernet Controller
-	01d1  GeForce 7300 LE
+	01d1  G72 [GeForce 7300 LE]
 		1462 0345  7300LE PCI Express Graphics Adapter
+	01d3  G72 [GeForce 7300 SE]
 	01d6  GeForce Go 7200
-	01d7  Quadro NVS 110M / GeForce Go 7300
-	01d8  GeForce Go 7400
-	01da  Quadro NVS 110M
-	01de  Quadro FX 350
+	01d7  G72M [Quadro NVS 110M/GeForce Go 7300]
+	01d8  G72M [GeForce Go 7400]
+	01da  G72M [Quadro NVS 110M]
+	01dc  G72GL [Quadro FX 350M]
+	01dd  G72 [GeForce 7500 LE]
+	01de  G72GL [Quadro FX 350]
 		10de 01dc  Quadro  FX Go350M
-	01df  GeForce 7300 GS
+	01df  G71 [GeForce 7300 GS]
 	01e0  nForce2 AGP (different version?)
 		147b 1c09  NV7 Motherboard
 	01e8  nForce2 AGP
@@ -4555,15 +4666,20 @@
 	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
 		1462 7207  K8NGM2 series
-	0241  C51 PCI Express Bridge
+	0241  C51 [GeForce 6150 LE]
 	0242  C51G [GeForce 6100]
 	0243  C51 PCI Express Bridge
-	0244  C51 PCI Express Bridge
-	0245  C51 PCI Express Bridge
+	0244  C51 [Geforce 6150 Go]
+		10de 0244  C51 [Geforce 6150 Go]
+	0245  C51 [Quadro NVS 210S/GeForce 6150LE]
 	0246  C51 PCI Express Bridge
-	0247  C51 PCI Express Bridge
+	0247  MCP51 PCI-X GeForce Go 6100
+		1043 1382  MCP51 PCI-X GeForce Go 6100
 	0248  C51 PCI Express Bridge
 	0249  C51 PCI Express Bridge
 	024a  C51 PCI Express Bridge
@@ -4583,37 +4699,53 @@
 	0259  NV25GL [Quadro4 750 XGL]
 	025b  NV25GL [Quadro4 700 XGL]
 	0260  MCP51 LPC Bridge
+		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
+		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	0265  MCP51 IDE
+		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	0266  MCP51 Serial ATA Controller
+		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	0267  MCP51 Serial ATA Controller
+		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	0268  MCP51 Ethernet Controller
 	0269  MCP51 Ethernet Controller
+		1043 8141  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	026a  MCP51 MCI
 	026b  MCP51 AC97 Audio Controller
 	026c  MCP51 High Definition Audio
+		10de cb84  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	026d  MCP51 USB Controller
+		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	026e  MCP51 USB Controller
+		1043 81bc  A8N-VM CSM Mainboard
 		1462 7207  K8NGM2 series
 	026f  MCP51 PCI Bridge
 	0270  MCP51 Host Bridge
+		1043 81bc  A8N-VM CSM Mainboard
+		1458 5001  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	0271  MCP51 PMU
 	0272  MCP51 Memory Controller 0
 	027e  C51 Memory Controller 2
+		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	027f  C51 Memory Controller 3
+		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]
@@ -4621,24 +4753,34 @@
 	0286  NV28 [GeForce4 Ti 4200 Go AGP 8x]
 	0288  NV28GL [Quadro4 980 XGL]
 	0289  NV28GL [Quadro4 780 XGL]
-	028c  NV28GLM [Quadro4 700 GoGL]
-	0290  GeForce 7900 GTX
-	0291  GeForce 7900 GT
-	0292  GeForce 7900 GS
+	028c  NV28GLM [Quadro4 Go700]
+	0290  G71 [GeForce 7900 GTX]
+	0291  G71 [GeForce 7900 GT/GTO]
+		10de 042b  NX7900GTO-T2D512E [7900 GTO]
+	0292  G71 [GeForce 7900 GS]
+	0293  G71 [GeForce 7900 GX2]
+	0294  G71 [GeForce 7950 GX2]
+	0295  G71 [GeForce 7950 GT]
+		107d 2a68  WinFast PX7950GT TDH
+	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]
-	02e1  GeForce 7600 GS
+	02e0  GeForce 7600 GT
+	02e1  G73 [GeForce 7600 GS]
+	02e2  GeForce 7300 GT
 	02f0  C51 Host Bridge
+		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
@@ -4646,17 +4788,27 @@
 	02f6  C51 Host Bridge
 	02f7  C51 Host Bridge
 	02f8  C51 Memory Controller 5
+		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	02f9  C51 Memory Controller 4
+		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	02fa  C51 Memory Controller 0
+		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
 	02fd  C51 PCI Express Bridge
 	02fe  C51 Memory Controller 1
+		1043 81cd  A8N-VM CSM Mainboard
+		1458 5000  GA-M55plus-S3G
 		1462 7207  K8NGM2 series
 	02ff  C51 Host Bridge
+		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]
@@ -4672,17 +4824,18 @@
 	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
 	0320  NV34 [GeForce FX 5200]
 	0321  NV34 [GeForce FX 5200 Ultra]
 	0322  NV34 [GeForce FX 5200]
+		1043 02fb  V9250 Magic
 		1462 9171  MS-8917 (FX5200-T128)
 		1462 9360  MS-8936 (FX5200-T128)
 	0323  NV34 [GeForce FX 5200LE]
-	0324  NV34M [GeForce FX Go5200]
+	0324  NV34M [GeForce FX Go5200 64M]
 		1028 0196  Inspiron 5160
 		1071 8160  MIM2000
 	0325  NV34M [GeForce FX Go5250]
@@ -4704,6 +4857,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]
@@ -4741,14 +4895,23 @@
 	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
+	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]
+	0394  G70 [GeForce 7600 LE]
+	0395  G70 [GeForce 7300 GT]
+	0397  GeForce Go 7700
 	0398  G70 [GeForce Go 7600]
-	039e  Quadro FX 560
+		1025 006c  Acer 9814 WKMI
+	039b  GeForce Go 7900 SE
+	039c  Quadro FX 550M
+	039e  G73GL [Quadro FX 560]
 	03a0  C55 Host Bridge
 	03a1  C55 Host Bridge
 	03a2  C55 Host Bridge
@@ -4835,8 +4998,13 @@
 	045d  MCP65 SATA Controller
 	045e  MCP65 SATA Controller
 	045f  MCP65 SATA Controller
+	055c  MCP67 High Definition Audio
+	055d  MCP67 High Definition Audio
+	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
@@ -4848,6 +5016,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
@@ -4862,6 +5031,7 @@
 	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
 	ff00  Neptune LightPulse Fibre Channel Host Adapter
@@ -4882,6 +5052,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]
@@ -4906,10 +5077,12 @@
 	80d7  PCI-9112
 	80d9  PCI-9118
 	80da  PCI-9812
+	80fc  APCI1500 Signal processing controller (16 dig. inputs + 16 dig. outputs)
 	811a  PCI-IEEE1355-DS-DE Interface
 	814c  Fastcom ESCC-PCI (Commtech, Inc.)
 	8170  S5933 [Matchmaker] (Chipset Development Tool)
 	81e6  Multimedia video controller
+	828d  APCI3001 Signal processing controller (up to 16 analog inputs)
 	8291  Fastcom 232/8-PCI (Commtech, Inc.)
 	82c4  Fastcom 422/4-PCI (Commtech, Inc.)
 	82c5  Fastcom 422/2-PCI (Commtech, Inc.)
@@ -4918,6 +5091,8 @@
 	82ca  Fastcom 232/4-PCI (Commtech, Inc.)
 	82db  AJA HDNTV HD SDI Framestore
 	82e2  Fastcom DIO24H-PCI (Commtech, Inc.)
+	8406  PCIcanx/PCIcan CAN interface [Kvaser AB]
+	8407  PCIcan II CAN interface (A1021, PCB-07, PCB-08) [Kvaser AB]
 	8851  S5933 on Innes Corp FM Radio Capture card
 10e9  Alps Electric Co., Ltd.
 10ea  Intergraphics Systems
@@ -4936,8 +5111,15 @@
 	8111  Twist3 Frame Grabber
 10ec  Realtek Semiconductor Co., Ltd.
 	0139  Zonet Zen3200
-	0883  High Definition Audio
+	0260  Realtek 260 High Definition Audio
+	0261  Realtek 261 High Definition Audio
+	0280  Realtek 280 High Definition Audio
+	0861  Realtek 861 High Definition Audio
+	0862  Realtek 862 High Definition Audio
+	0880  Realtek 880 High Definition Audio
+	0883  Realtek 883 High Definition Audio
 		1025 1605  TravelMate 5600 series
+	0888  Realtek 888 High Definition Audio
 	8029  RTL-8029(AS)
 		10b8 2011  EZ-Card (SMC1208)
 		10ec 8029  RTL-8029(AS)
@@ -4955,10 +5137,12 @@
 		1025 8920  ALN-325
 		1025 8921  ALN-325
 		103c 006a  NX9500
+		1043 1045  L8400B or L3C/S notebook
 		1043 8109  P5P800-MX Mainboard
 		1071 8160  MIM2000
 		10bd 0320  EP-320X-R
 		10ec 8139  RT8139
+		10f7 8338  Panasonic CF-Y5 laptop
 		1113 ec01  FNC-0107TX
 		1186 1300  DFE-538TX
 		1186 1320  SN5200
@@ -4969,6 +5153,7 @@
 		1429 d010  ND010
 		1432 9130  EN-9130TX
 		1436 8139  RT8139
+		144d c00c  P30/P35 notebook
 		1458 e000  GA-7VM400M/7VT600 Motherboard
 		1462 788c  865PE Neo2-V Mainboard
 		146c 1439  FE-1439TX
@@ -4977,6 +5162,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
@@ -4984,14 +5170,19 @@
 		8e2e 7000  KF-230TX
 		8e2e 7100  KF-230TX/2
 		a0a0 0007  ALN-325C
-	8167  RTL-8169SC Gigabit Ethernet
+	8167  RTL-8110SC/8169SC Gigabit Ethernet
+		1462 235c  P965 Neo MS-7235 mainboard
 	8168  RTL8111/8168B PCI Express Gigabit Ethernet controller
 	8169  RTL-8169 Gigabit Ethernet
 		1025 0079  Aspire 5024WLMi
 		1259 c107  CG-LAPCIGT
 		1371 434e  ProG-2000L
 		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
@@ -5010,6 +5201,7 @@
 	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)
 10ef  Racore Computer Products, Inc.
@@ -5071,8 +5263,10 @@
 		1102 0051  SB0090 Audigy Player
 		1102 0053  SB0090 Audigy Player/OEM
 		1102 0058  SB0090 Audigy Player/OEM
+		1102 1002  SB Audigy2 ZS
 		1102 1007  SB0240 Audigy 2 Platinum 6.1
 		1102 2002  SB Audigy 2 ZS (SB0350)
+		1102 4001  E-MU 1010
 	0005  SB X-Fi
 		1102 0021  X-Fi Platinum
 		1102 1003  X-Fi XtremeMusic
@@ -5116,13 +5310,16 @@
 	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
 	0005  HPT372A/372N
 	0006  HPT302/302N
 	0007  HPT371/371N
 	0008  HPT374
 	0009  HPT372N
+	2340  RocketRAID 2340 16 Port SATA-II Controller
 1104  RasterOps Corp.
 1105  Sigma Designs, Inc.
 	1105  REALmagic Xcard MPEG 1/2/3/4 DVD Decoder
@@ -5140,7 +5337,7 @@
 1106  VIA Technologies, Inc.
 	0102  Embedded VIA Ethernet Controller
 	0130  VT6305 1394.A Controller
-# Wrong ID found on Jetway K8M8MS
+	0198  P4X600 Host Bridge
 	0204  K8M800 Host Bridge
 	0208  PT890 Host Bridge
 	0238  K8T890 Host Bridge
@@ -5166,6 +5363,7 @@
 	0340  PT900 Host Bridge
 	0351  VT3351 Host Bridge
 	0364  P4M900 Host Bridge
+		1043 81ce  P5VD2-VM mothervoard
 	0391  VT8371 [KX133]
 	0501  VT8501 [Apollo MVP4]
 	0505  VT82C505
@@ -5183,6 +5381,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]
@@ -5240,6 +5440,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
@@ -5275,6 +5476,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
@@ -5284,8 +5487,9 @@
 		1106 0100  VT86C100A Fast Ethernet Adapter
 		1186 1400  DFE-530TX rev A
 	3044  IEEE 1394 Host Controller
+		0010 0001  IEEE 1394 4port DCST 1394-3+1B
 		1025 005a  TravelMate 290
-		1043 808a  A8V Deluxe
+		1043 808a  A8V Deluxe or A8N-VM CSM Mainboard
 		1458 1000  GA-7VT600-1394 Motherboard
 		1462 207d  K8NGM2 series motherboard
 		1462 702d  K8T NEO 2 motherboard
@@ -5318,24 +5522,30 @@
 		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
 		1106 4552  Soyo KT-600 Dragon Plus (Realtek ALC 650)
 		1297 c160  FX41 motherboard (Realtek ALC650 codec)
+		1413 147b  KV8 Pro motherboard onboard audio
 		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
 		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
 	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 7181  K8MM3-V mainboard
 		147b 1c09  NV7 Motherboard
 		1695 3005  VT6103
 		1695 300c  Realtek ALC655 sound chip
@@ -5361,6 +5571,8 @@
 		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
@@ -5385,10 +5597,13 @@
 		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
 		1043 80f4  P4P800 Mainboard Deluxe ATX
 		1462 7028  915P/G Neo2
@@ -5416,10 +5631,11 @@
 	3218  K8T800M Host Bridge
 	3227  VT8237 ISA bridge [KT600/K8T800/K8T890 South]
 		1043 80ed  A7V600/K8V-X/A8V Deluxe motherboard
-		1106 3227  DFI KT600-AL Motherboard
+		1106 3227  DFI KT600-AL / Soltek SL-B9D-FGR Motherboard
 		1458 5001  GA-7VT600 Motherboard
 		147b 1407  KV8-MAX3 motherboard
 		1849 3227  K7VT4 motherboard
+	3230  K8M890 [Chrome9] Integrated Video
 	3238  K8T890 Host Bridge
 	3249  VT6421 IDE RAID Controller
 	324a  CX700 PCI to PCI Bridge
@@ -5427,6 +5643,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
@@ -5438,10 +5655,13 @@
 	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
 	3364  P4M900 Host Bridge
+	3371  Chrome9 HC IGP
+	3372  VT8237S PCI to ISA Bridge
 	337a  VT8237A PCI to PCI Bridge
 	337b  VT8237A Host Bridge
 	4149  VIA VT6420 (ATA133) Controller
@@ -5468,13 +5688,16 @@
 	5238  K8T890 I/O APIC Interrupt Controller
 	5290  K8M890 I/O APIC Interrupt Controller
 	5308  PT894 I/O APIC Interrupt Controller
+	5324  CX700M2 IDE
 	5327  P4M890 I/O APIC Interrupt Controller
 	5336  K8M890CE I/O APIC Interrupt Controller
 	5340  PT900 I/O APIC Interrupt Controller
 	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
@@ -5634,11 +5857,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
@@ -5695,6 +5914,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)
@@ -5752,7 +5972,9 @@
 1130  Computervision
 1131  Philips Semiconductors
 	1561  USB 1.1 Host Controller
+		1775 c200  C2K onboard USB 1.1 host controller
 	1562  USB 2.0 Host Controller
+		1775 c200  C2K onboard USB 2.0 host controller
 	3400  SmartPCI56(UCB1500) 56K Modem
 	5400  TriMedia TM1000/1100
 	5402  TriMedia TM-1300
@@ -5779,6 +6001,7 @@
 		1043 4843  ASUS TV-FM 7133
 		1043 4845  TV-FM 7135
 		1043 4862  P7131 Dual
+		1131 0000  KWorld V-Stream Studio TV Terminator
 		1131 2001  Proteus Pro [philips reference design]
 		1131 2018  Tiger reference design
 		1131 4ee9  MonsterTV Mobile
@@ -5790,13 +6013,16 @@
 		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 at Anywhere plus
 		1489 0214  LifeView FlyTV Platinum FM
 		14c0 1212  LifeView FlyTV Platinum Mini2
 		153b 1160  Cinergy 250 PCI TV
 		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
@@ -5857,10 +6083,14 @@
 		13c2 100c  Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card
 		13c2 100f  Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card
 		13c2 1011  Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card
+		13c2 1012  DVB T-1500
 		13c2 1013  SATELCO Multimedia DVB
 		13c2 1016  WinTV-NOVA-SE DVB card
+		13c2 1018  DVB S-1401
+		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.
@@ -5935,6 +6165,7 @@
 		1133 e028  Diva Server Analog-8P
 	e02a  Diva Server IPM-300
 	e02c  Diva Server IPM-600
+	e032  Diva BRI-2 PCIe r1
 1134  Mercury Computer Systems
 	0001  Raceway Bridge
 	0002  Dual PCI to RapidIO Bridge
@@ -6077,6 +6308,7 @@
 	000d  SyncPort 2-Port (x.25/FR)
 	0011  AccelePort 8r EIA-232 (IBM)
 	0012  AccelePort 8r EIA-422
+	0013  AccelePort Xr
 	0014  AccelePort 8r EIA-422
 	0015  AccelePort Xem
 	0016  AccelePort EPC/X
@@ -6199,13 +6431,13 @@
 	0015  CMIC-GC Host Bridge
 	0016  CMIC-GC Host Bridge
 	0017  GCNB-LE Host Bridge
-	0036  HT1000 PCI/PCI-X 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
@@ -6216,34 +6448,37 @@
 		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
 	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)
 1167  Mutoh Industries Inc
 1168  Thine Electronics Inc
 1169  Centre for Development of Advanced Computing
@@ -6303,12 +6538,15 @@
 		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 )
 		104d 80df  Vaio PCG-FX403
 		104d 80e7  VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-		144d c00c  P35 notebook
+		104d 814e  VAIO GRZ390Z
+		10f7 8338  Panasonic CF-Y5 laptop
+		144d c00c  P30/P35 notebook
 		14ef 0220  PCD-RP-220S
 		17aa 201c  Thinkpad X60s
 	0477  RL5c477
@@ -6322,8 +6560,9 @@
 		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 c00c  P35 notebook
+		144d c00c  P30/P35 notebook
 		17aa 201e  Thinkpad X60s
 	0554  R5C554
 	0575  R5C575 SD Bus Host Adapter
@@ -6338,8 +6577,10 @@
 		1028 0188  Inspiron 6000 laptop
 		1028 01a2  Inspiron 9200
 		1043 1967  ASUS V6800V
+		10f7 8338  Panasonic CF-Y5 laptop
 		144d c018  X20 IV
 		17aa 201d  Thinkpad X60s
+	0832  R5C832 IEEE 1394 Controller
 	0841  R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394
 	0852  xD-Picture Card Controller
 		1043 1967  V6800V
@@ -6350,7 +6591,7 @@
 1186  D-Link System Inc
 	0100  DC21041
 	1002  DL10050 Sundance Ethernet
-		1186 1002  DFE-550TX
+		1186 1002  DFE-550TX/FX
 		1186 1012  DFE-580TX
 	1025  AirPlus Xtreme G DWL-G650 Adapter
 	1026  AirXpert DWL-AG650 Wireless Cardbus Adapter
@@ -6468,11 +6709,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
+	2a01  88W8335 [Libertas] 802.11b/g Wireless
 	4320  88E8001 Gigabit Ethernet Controller
 		1019 0f38  Marvell 88E8001 Gigabit Ethernet Controller (ECS)
 		1019 8001  Marvell 88E8001 Gigabit Ethernet Controller (ECS)
@@ -6500,6 +6744,7 @@
 	4345  88E8022 PCI-X IPMI Gigabit Ethernet Controller
 	4346  88E8061 PCI-E IPMI Gigabit Ethernet Controller
 	4347  88E8062 PCI-E IPMI Gigabit Ethernet Controller
+		4c53 10d0  Telum ASLP10 PrAMC Gigabit Ethernet
 	4350  88E8035 PCI-E Fast Ethernet Controller
 		1179 0001  Marvell 88E8035 Fast Ethernet Controller (Toshiba)
 		11ab 3521  Marvell RDK-8035
@@ -6592,6 +6837,7 @@
 		270f 2801  Marvell 88E8053 Gigabit Ethernet Controller (Chaintech)
 		a0a0 0506  Marvell 88E8053 Gigabit Ethernet Controller (Aopen)
 	4363  88E8055 PCI-E Gigabit Ethernet Controller
+	4364  88E8056 PCI-E Gigabit Ethernet Controller
 	4611  GT-64115 System Controller
 	4620  GT-64120/64120A/64121A System Controller
 	4801  GT-48001
@@ -6602,8 +6848,13 @@
 	5081  MV88SX5081 8-port SATA I PCI-X Controller
 	6041  MV88SX6041 4-port SATA II PCI-X Controller
 	6081  MV88SX6081 8-port SATA II PCI-X Controller
+	6101  88SE6101 single-port PATA133 interface
+	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
 	f003  GT-64010 Primary Image Piranha Image Generator
 11ac  Canon Information Systems Research Aust.
@@ -6642,6 +6893,12 @@
 	0001  NP-PCI
 11bd  Pinnacle Systems Inc.
 	002e  PCTV 40i
+	0040  Royal TS Function 1
+		11bd 0044  PCTV 2000i Dual DVB-T Pro PCI Tuner 1
+	0041  RoyalTS Function 2
+		11bd 0044  PCTV 2000i Dual DVB-T Pro PCI Tuner 2
+	0042  Royal TS Function 3
+		11bd 0044  PCTV 2000i Dual DVB-T Pro PCI Common
 	bede  AV/DV Studio Capture Card
 11be  International Microcircuits Inc
 11bf  Astrodesign, Inc.
@@ -6754,6 +7011,8 @@
 	048c  V.92 56K WinModem
 # InPorte Home Internal 56k Modem/fax/answering machine/SMS Features
 	048f  V.92 56k WinModem
+	1040  HDA softmodem
+	2600  StarPro26XX family (SP2601, SP2603, SP2612) DSP
 	5801  USB
 	5802  USS-312 USB Controller
 	5803  USS-344S USB Controller
@@ -6804,10 +7063,15 @@
 11d2  Intercom Inc.
 11d3  Trancell Systems Inc
 11d4  Analog Devices
+	0078  AD1986HD sound chip
 	1535  Blackfin BF535 processor
 	1805  SM56 PCI modem
 	1889  AD1889 sound chip
+	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
@@ -6981,6 +7245,7 @@
 	7223  OZ711M3/MC3 4-in-1 MemoryCardBus Controller
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
+		10cf 11c4  Lifebook P5020D Laptop
 	7233  OZ711MP3/MS3 4-in-1 MemoryCardBus Controller
 1218  Hybricon Corp.
 1219  First Virtual Corporation
@@ -7205,6 +7470,7 @@
 		125d 0428  ES56ST-PI Data Fax Modem
 		125d 0429  ES56SV-PI Data Fax Modem
 		147a c001  ES56-PI Data Fax Modem
+		148d 1030  HCF WV-PI56 [ESS ES56-PI Data Fax Modem]
 		14fe 0428  ES56-PI Data Fax Modem
 		14fe 0429  ES56-PI Data Fax Modem
 125e  Specialvideo Engineering SRL
@@ -7219,6 +7485,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
@@ -7227,6 +7494,7 @@
 		10b8 2835  SMC2835W Wireless Cardbus Adapter
 		10b8 a835  SMC2835W V2 Wireless Cardbus Adapter
 		1113 4203  WN4201B
+		1113 8201  T-Com T-Sinus 154pcicard Wireless PCI Adapter
 		1113 ee03  SMC2802W V2 Wireless PCI Adapter [ISL3886]
 		1113 ee08  SMC2835W V3 EU Wireless Cardbus Adapter
 		1186 3202  DWL-G650 A1 Wireless Adapter
@@ -7489,9 +7757,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
@@ -7522,6 +7792,7 @@
 1290  Sord Computer Corporation
 1291  NCS Computer Italia
 1292  Tritech Microelectronics Inc
+	fc02  Pyramid3D TR25202
 1293  Media Reality Technology
 1294  Rhetorex, Inc.
 1295  Imagenation Corporation
@@ -7549,8 +7820,12 @@
 12a9  Xiotech Corporation
 12aa  SDL Communications, Inc.
 12ab  Yuan Yuan Enterprise Co., Ltd.
+	0000  MPG160/Kuroutoshikou ITVC15-STVLP
 	0002  AU8830 [Vortex2] Based Sound Card With A3D Support
+	2300  Club-3D Zap TV2100
 	3000  MPG-200C PCI DVD Decoder Card
+	fff3  MPG600/Kuroutoshikou ITVC16-STVLP
+	ffff  MPG600/Kuroutoshikou ITVC16-STVLP
 12ac  Measurex Corporation
 12ad  Multidata GmbH
 12ae  Alteon Networks Inc.
@@ -7692,6 +7967,7 @@
 12d6  Analogic Corp
 12d7  Biotronic SRL
 12d8  Pericom Semiconductor
+	01a7  PI7C21P100 PCI to PCI Bridge
 	8150  PCI to PCI Bridge
 12d9  Aculab PLC
 	0002  PCI Prosody
@@ -7930,7 +8206,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
@@ -8075,6 +8351,8 @@
 	0038  Silicom Quad port Copper Ethernet PCI-E Intel based Bypass Server Adapter
 	0039  Silicom Dual port Fiber-SX Ethernet PCI-E Intel based Bypass Server Adapter
 	003a  Silicom Dual port Fiber-LX Ethernet PCI-E Intel based Bypass Server Adapter
+	003b  Silicom Dual port Fiber Ethernet PMC Intel based Bypass Server Adapter (PMCX2BPFI)
+	003c  Silicom Dual port Copper Ethernet PCI-X BGE based Bypass Server Adapter (PXG2BPRB)
 1375  Argosystems Inc
 1376  LMC
 1377  Electronic Equipment Production & Distribution GmbH
@@ -8105,9 +8383,10 @@
 1384  Reality Simulation Systems Inc
 1385  Netgear
 	0013  WG311T 108 Mbps Wireless PCI Adapter
-	311a  GA511 Gigabit Ethernet
-	4100  802.11b Wireless Adapter (MA301)
-	4105  MA311 802.11b wireless adapter
+	006b  WA301 802.11b Wireless PCI Adapter
+	311a  GA311 Gigabit Ethernet PCI Adapter
+	4100  MA301 802.11b Wireless PCI Adapter
+	4105  MA311 802.11b Wireless PCI Adapter
 	4251  WG111T 108 Mbps Wireless USB 2.0 Adapter
 	4400  WAG511 802.11a/b/g Dual Band Wireless PC Card
 	4600  WAG511 802.11a/b/g Dual Band Wireless PC Card
@@ -8127,7 +8406,7 @@
 	630a  GA630 Gigabit Ethernet
 	6b00  WG311v3 54 Mbps Wireless PCI Adapter
 	6d00  WPNT511 RangeMax 240 Mbps Wireless PC Card
-	7b00  WN511B RangeMax Next 280 Mbps Wireless PC Card
+	7b00  WN511B RangeMax Next 270 Mbps Wireless PC Card
 	7c00  WN511T RangeMax Next 300 Mbps Wireless PC Card
 	7d00  WN311B RangeMax Next 270 Mbps Wireless PCI Adapter
 	7e00  WN311T RangeMax Next 300 Mbps Wireless PCI Adapter
@@ -8150,6 +8429,7 @@
 	1040  Smartio C104H/PCI
 	1141  Industrio CP-114
 	1680  Smartio C168H/PCI
+	1681  CP-168U V2 Smart Serial Board (8-port RS-232)
 	2040  Intellio CP-204J
 	2180  Intellio C218 Turbo PCI
 	3200  Intellio C320 Turbo PCI
@@ -8162,12 +8442,16 @@
 	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)
 		0675 1708  ISDN Adapter (PCI Bus, D, C, ACPI)
 		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
 139a  Alacritech Inc
@@ -8194,6 +8478,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
@@ -8236,6 +8521,7 @@
 		13c1 1001  7xxx/8xxx-series PATA/SATA-RAID
 	1002  9xxx-series SATA-RAID
 	1003  9550SX SATA-RAID
+	1004  9650SE SATA-II RAID
 13c2  Technotrend Systemtechnik GmbH
 	000e  Technotrend/Hauppauge DVB card rev2.3
 13c3  Janz Computer AG
@@ -8264,6 +8550,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
@@ -8298,7 +8585,7 @@
 13f0  Sundance Technology Inc / IC Plus Corp
 	0200  IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY
 	0201  ST201 Sundance Ethernet
-	1023  IC Plus IP1000 Family Gigabit Ethernet
+	1023  IP1000 Family Gigabit Ethernet
 13f1  Oce' - Technologies B.V.
 13f2  Ford Microelectronics Inc
 13f3  Mcdata Corporation
@@ -8319,6 +8606,7 @@
 		13f6 0111  CMI8738/C3DX PCI Audio Device
 		1681 a000  Gamesurround MUSE XL
 	0211  CM8738
+	9880  CM9880
 13f7  Wildfire Communications
 13f8  Ad Lib Multimedia Inc
 13f9  NTT Advanced Technology Corp.
@@ -8461,6 +8749,7 @@
 1424  Videoserver Connections
 1425  Chelsio Communications Inc
 	000b  T210 Protocol Engine
+	000c  T204 Protocol Engine
 1426  Storage Technology Corp.
 1427  Better On-Line Solutions
 1428  Edec Co Ltd
@@ -8534,6 +8823,7 @@
 1457  Nuera Communications Inc
 1458  Giga-byte Technology
 	0c11  K8NS Pro Mainboard
+	9001  GC-PTV-TAF Hybrid TV card
 	e911  GN-WIAG02
 1459  DOOIN Electronics
 145a  Escalate Networks Inc
@@ -8545,6 +8835,9 @@
 	0001  NextMove PCI
 1460  DYNARC INC
 1461  Avermedia Technologies Inc
+	a3ce  M179
+	a3cf  M179
+	a836  M115 DVB-T, PAL/SECAM/NTSC Tuner
 	f436  AVerTV Hybrid+FM
 1462  Micro-Star International Co., Ltd.
 	5501  nVidia NV15DDR [GeForce2 Ti]
@@ -8552,6 +8845,8 @@
 	6825  PCI Card wireless 11g [PC54G]
 	6834  RaLink RT2500 802.11g [PC54G2]
 	7125  K8N motherboard
+	7235  P965 Neo MS-7235 mainboard
+	7242  K9AGM RS485 Motherboard
 	8725  NVIDIA NV25 [GeForce4 Ti 4600] VGA Adapter
 	9000  NVIDIA NV28 [GeForce4 Ti 4800] VGA Adapter
 	9110  GeFORCE FX5200
@@ -8560,6 +8855,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.
@@ -8764,8 +9060,11 @@
 	0811  Sentry5 External Interface Core
 	0816  BCM3302 Sentry5 MIPS32 CPU
 	1600  NetXtreme BCM5752 Gigabit Ethernet PCI Express
+		103c 3015  PCIe LAN on Motherboard
 		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
@@ -8853,12 +9152,16 @@
 		103c 7031  NC320T PCIe Gigabit Server Adapter
 		103c 7032  NC320i PCIe Gigabit Server Adapter
 		1734 1061  Primergy RX300 S2
+	165a  NetXtreme BCM5722 Gigabit Ethernet PCI Express
+		103c 7051  NC105i PCIe Gigabit Server Adapter
+		103c 7052  NC105T PCIe Gigabit Server Adapter
 	165d  NetXtreme BCM5705M Gigabit Ethernet
 		1028 865d  Latitude D400
 	165e  NetXtreme BCM5705M_2 Gigabit Ethernet
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 099c  NX6110/NC6120
+		10cf 1279  LifeBook E8010D
 	1668  NetXtreme BCM5714 Gigabit Ethernet
 		103c 7039  NC324i PCIe Dual Port Gigabit Server Adapter
 	1669  NetXtreme 5714S Gigabit Ethernet
@@ -8867,6 +9170,7 @@
 	166e  570x 10/100 Integrated Controller
 	1672  NetXtreme BCM5754M Gigabit Ethernet PCI Express
 	1673  NetXtreme BCM5755M Gigabit Ethernet PCI Express
+	1674  NetXtreme BCM5756ME Gigabit Ethernet PCI Express
 	1677  NetXtreme BCM5751 Gigabit Ethernet PCI Express
 		1028 0179  Optiplex GX280
 		1028 0182  Latitude D610
@@ -8884,6 +9188,7 @@
 	167d  NetXtreme BCM5751M Gigabit Ethernet PCI Express
 		17aa 2081  Thinkpad R60e model 0657
 	167e  NetXtreme BCM5751F Fast Ethernet PCI Express
+	167f  NetLink BCM5787F Fast Ethernet PCI Express
 	1693  NetLink BCM5787M Gigabit Ethernet PCI Express
 	1696  NetXtreme BCM5782 Gigabit Ethernet
 		103c 12bc  d530 CMT (DG746A)
@@ -8892,6 +9197,7 @@
 	169b  NetLink BCM5787 Gigabit Ethernet PCI Express
 	169c  NetXtreme BCM5788 Gigabit Ethernet
 		103c 308b  MX6125
+		103c 30a1  NC2400
 	169d  NetLink BCM5789 Gigabit Ethernet PCI Express
 	16a6  NetXtreme BCM5702X Gigabit Ethernet
 		0e11 00bb  NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T)
@@ -8913,6 +9219,7 @@
 		103c 3102  NC370F MultifuNCtion Gigabit Server Adapter
 	16ac  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
 		103c 703d  NC373F PCI Express Multifunction Gigabit Server Adapter
 	16c6  NetXtreme BCM5702A3 Gigabit Ethernet
@@ -8933,15 +9240,19 @@
 	170c  BCM4401-B0 100Base-TX
 		1028 0188  Inspiron 6000 laptop
 		1028 0196  Inspiron 5160
+		1028 01af  Inspiron 6400
 		103c 099c  NX6110/NC6120
 	170d  NetXtreme BCM5901 100Base-TX
 		1014 0545  ThinkPad R40e (2684-HVG) builtin ethernet controller
 	170e  NetXtreme BCM5901 100Base-TX
+	1712  NetLink BCM5906 Fast Ethernet PCI Express
+	1713  NetLink BCM5906M Fast Ethernet PCI Express
 	3352  BCM3352
 	3360  BCM3360
 	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
@@ -8949,18 +9260,19 @@
 	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
 		103c 1356  MX6125
 		1043 120f  A6U notebook embedded card
-		1468 0311  Aspire 3022WLMi, 5024WLMi
+		1468 0311  Aspire 3022WLMi, 5024WLMi, 5020
 		1468 0312  TravelMate 2410
 		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
@@ -8973,6 +9285,7 @@
 		106b 004e  AirPort Extreme
 		1154 0330  Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter
 		144f 7050  eMachines M6805 802.11g Built-in Wireless
+		144f 7051  Sonnet Aria Extreme PCI
 		14e4 4320  Linksys WMP54G PCI
 		1737 4320  WPC54G
 		1799 7001  Belkin F5D7001 High-Speed Mode Wireless G Network Card
@@ -8989,6 +9302,7 @@
 		1414 0004  Wireless PCI Adapter MN-730
 	4326  BCM4307 Chipcommon I/O Controller?
 	4329  BCM43XG
+	4344  EDGE/GPRS data and 802.11b/g combo cardbus [GC89]
 	4401  BCM4401 100Base-T
 		103c 08b0  tc1100 tablet
 		1043 80a8  A7V8X motherboard
@@ -9032,6 +9346,8 @@
 	5690  BCM5690 12-port Multi-Layer Gigabit Ethernet Switch
 	5691  BCM5691 GE/10GE 8+2 Gigabit Ethernet Switch Controller
 	5692  BCM5692 12-port Multi-Layer Gigabit Ethernet Switch
+	5695  BCM5695 12-port + HiGig Multi-Layer Gigabit Ethernet Switch
+	5698  BCM5698 12-port Multi-Layer Gigabit Ethernet Switch
 	5820  BCM5820 Crypto Accelerator
 	5821  BCM5821 Crypto Accelerator
 	5822  BCM5822 Crypto Accelerator
@@ -9109,6 +9425,7 @@
 	1066  HCF 56k Data/Fax/Voice/Spkp Modem
 		122d 4033  Dell Athena - MDP3900V-U
 	1085  HCF V90 56k Data/Fax/Voice/Spkp PCI Modem
+	10b6  CX06834-11 HCF V.92 56k Data/Fax/Voice/Spkp Modem
 	1433  HCF 56k Data/Fax Modem
 	1434  HCF 56k Data/Fax/Voice Modem
 	1435  HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
@@ -9190,6 +9507,7 @@
 	2465  HSF 56k Data/Fax/Voice/Spkp (w/HS) Modem (Mob SmartDAA)
 	2466  HSF 56k Data/Fax/Voice/Spkp Modem (Mob SmartDAA)
 	2bfa  HDAudio Soft Data Fax Modem with SmartCP
+		1025 0009  Aspire 5622WLMi
 	2f00  HSF 56k HSFi Modem
 		13e0 8d84  IBM HSFi V.90
 		13e0 8d85  Compaq Stinger
@@ -9197,6 +9515,9 @@
 	2f02  HSF 56k HSFi Data/Fax
 	2f11  HSF 56k HSFi Modem
 	2f20  HSF 56k Data/Fax Modem
+	2f30  HSF 56k Data/Fax Modem
+	5045  HDAUDIO with SmartCP
+	5047  High Definition Audio [Waikiki]
 	8234  RS8234 ATM SAR Controller [ServiceSAR Plus]
 	8800  CX23880/1/2/3 PCI Video and Audio Decoder
 		0070 2801  Hauppauge WinTV 28xxx (Roslyn) models
@@ -9246,6 +9567,7 @@
 		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
@@ -9365,6 +9687,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
@@ -9372,6 +9702,7 @@
 	0520  FLASH memory: ENE Technology Inc:
 	0530  ENE PCI Memory Stick Card Reader Controller
 	0550  ENE PCI Secure Digital Card Reader Controller
+	0551  SD/MMC Card Reader Controller
 	0610  PCI Smart Card Reader Controller
 	1211  CB1211 Cardbus Controller
 	1225  CB1225 Cardbus Controller
@@ -9402,6 +9733,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
@@ -9521,6 +9853,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
@@ -9566,6 +9901,7 @@
 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]
@@ -9575,11 +9911,19 @@
 	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]
+	6354  MT25428 [ConnectX IB QDR]
+	6368  MT25448 [ConnectX EN 10GigE]
 15b4  CCI/TRIAD
 15b5  Cimetrics Inc
 15b6  Texas Memory Systems Inc
 15b7  Sandisk Corp
 15b8  ADDI-DATA GmbH
+	1003  APCI1032 SP controller (32 digi inputs w/ opto coupler)
+	1005  APCI2200 SP controller (8/16 digi outputs (relay))
+	100a  APCI1696 SP controller (96 TTL I/Os)
+	3001  APCI3501 SP controller (analog output board)
 15b9  Maestro Digital Communications
 15ba  Impacct Technology Corp
 15bb  Portwell Inc
@@ -9628,6 +9972,7 @@
 15e0  Cacheflow Inc
 15e1  Voice Technologies Group Inc
 15e2  Quicknet Technologies Inc
+	0500  PhoneJack-PCI
 15e3  Networth Technologies Inc
 15e4  VSN Systemen BV
 15e5  Valley technologies Inc
@@ -9685,6 +10030,8 @@
 	8410  RTL81xx Fast Ethernet
 1629  Kongsberg Spacetec AS
 	1003  Format synchronizer v3.0
+	1006  Format synchronizer, model 10500
+	1007  Format synchronizer, model 21000
 	2002  Fast Universal Data Output
 # This seems to occur on their 802.11b Wireless card WMP-11
 1637  Linksys
@@ -9753,35 +10100,54 @@
 		168c 2042  Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter
 		168c 2051  TRENDnet TEW-443PI Wireless PCI Adapter
 		16ab 7302  Trust Speedshare Turbo Pro Wireless PCI Adapter
+		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
+		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
 		1186 3a15  D-Link AirPlus G DWL-G630 Wireless Cardbus Adapter(rev.D)
 		1186 3a16  D-Link AirPlus G DWL-G510 Wireless PCI Adapter(rev.B)
 		1186 3a23  D-Link AirPlus G DWL-G520+A Wireless PCI Adapter
 		1186 3a24  D-Link AirPlus G DWL-G650+A Wireless Cardbus Adapter
+		1186 3b08  AirPlus G DWL-G630
 		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
 		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
 	1014  AR5212 802.11abg NIC
 		1014 058a  ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)
+	3b08  D-Link AirPlus G DWL-G630
 1695  EPoX Computer Co., Ltd.
 169c  Netcell Corporation
 	0044  Revolution Storage Processing Card
+# The right ID is 196d, but they got it nibble-swapped in 2202.
+169d  Club-3D VB (Wrong ID)
+	3306  ZAP TV 2202
 16a5  Tekram Technology Co.,Ltd.
 16ab  Global Sun Technology Inc
 	1100  GL24110P
 	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.
@@ -9795,12 +10161,47 @@
 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
 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
@@ -9824,9 +10225,11 @@
 	13c8  AEP SureWare Runner 1000V3
 1734  Fujitsu Siemens Computer GmbH
 	1078  Amilo Pro v2010
+	1085  Celsius M450
 1737  Linksys
 	0013  WMP54G Wireless Pci Card
 	0015  WMP54GS Wireless Pci Card
+	0029  WPG54G ver. 4 PCI Card
 	1032  Gigabit Network Adapter
 		1737 0015  EG1032 v2 Instant Gigabit Network Adapter
 		1737 0024  EG1032 v3 Instant Gigabit Network Adapter
@@ -9848,6 +10251,7 @@
 175c  AudioScience Inc
 175e  Sanera Systems, Inc.
 1775  SBS Technologies
+177d  Cavium Networks
 1787  Hightech Information System Ltd.
 # also used by Struck Innovative Systeme for joint developments
 1796  Research Centre Juelich
@@ -9906,6 +10310,7 @@
 	5832  Xframe II 10Gbps Ethernet
 		10a9 8021  Single Port 10 Gigabit Ethernet II (PCI-X, Fiber)
 17db  Cray Inc
+	0101  XT Series [Seastar] 3D Toroidal Router
 17de  KWorld Computer Co. Ltd.
 17e4  Sectra AB
 	0001  KK671 Cardbus encryption board
@@ -9916,6 +10321,12 @@
 	0021  EN2210 [c.Link] MoCA Network Controller (Coax)
 17ee  Connect Components Ltd
 17f2  Albatron Corp.
+17f3  RDC Semiconductor, Inc.
+	6020  R6020 North Bridge
+	6030  R6030 ISA Bridge
+	6040  R6040 MAC Controller
+	6060  R6060 USB 1.1 Controller
+	6061  R6061 USB 2.0 Controller
 17fe  Linksys, A Division of Cisco Systems
 	2120  WMP11v4 802.11b PCI card
 	2220  [AirConn] INPROCOMM IPN 2220 Wireless LAN Adapter (rev 01)
@@ -9939,6 +10350,7 @@
 		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
@@ -9947,13 +10359,18 @@
 	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
 	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
+	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
@@ -9983,6 +10400,12 @@
 	5a46  MT23108 InfiniHost HCA bridge
 	6278  MT25208 InfiniHost III Ex (Tavor compatibility mode)
 	6282  MT25208 InfiniHost III Ex
+186c  Humusoft
+	0614  MF614 multifunction I/O card
+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
@@ -10009,9 +10432,10 @@
 # Nee Octigabay System
 18c8  Cray Inc
 18c9  ARVOO Engineering BV
-18ca  XGI - Xabre Graphics Inc
+18ca  XGI Technology Inc. (eXtreme Graphics Innovation)
 	0020  Volari Z7
 	0040  Volari V3XT/V5/V8
+	0047  Volari 8300 (chip: XP10, codename: XG47)
 18d2  Sitecom
 # Sitecom HFC-S based ISDN controller card DC-105v2
 	3069  DC-105v2 ISDN controller
@@ -10050,7 +10474,8 @@
 	0100  A104d QUAD T1/E1 AFT card
 	0300  A101 single-port T1/E1
 	0400  A104u Quad T1/E1 AFT
-1924  Level 5 Networks Inc.
+# nee Level 5 Networks
+1924  Solarflare Communications
 192e  TransDimension
 1931  Option N.V.
 	000c  Qualcomm MSM6275 UMTS chip
@@ -10073,31 +10498,46 @@
 	0086  MPC8343E
 	0087  MPC8343
 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
+	0105  NodalCore C-3000 Content Classification Accelerator
 196d  Club-3D BV
+1971  AGEIA Technologies, Inc.
+	1011  Physics Processing Unit [PhysX]
+		1043 0001  PhysX P1
 197b  JMicron Technologies, Inc.
 	2360  JMicron 20360/20363 AHCI Controller
 	2361  JMB361 AHCI/IDE
+		1462 7235  P965 Neo MS-7235 mainboard
 	2363  JMicron 20360/20363 AHCI Controller
 	2365  JMB365 AHCI/IDE
 	2366  JMB366 AHCI/IDE
+	2368  JMB368 IDE controller
+1982  Distant Early Warning Communications Inc
+	1600  OX16C954 HOST-A
+	16ff  OX16C954 HOST-B
 1989  Montilio Inc.
 	0001  RapidFile Bridge
 	8001  RapidFile
 1993  Innominate Security Technologies AG
 199a  Pulse-LINK, Inc.
+19a2  ServerEngines LLC
+	0200  BladeEngine 10Gb PCI-E iSCSI adapter
+	0201  BladeEngine 10Gb PCI-E Network Adpater
 19a8  DAQDATA GmbH
 19ac  Kasten Chase Applied Research
 	0001  ACA2400 Crypto Accelerator
 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
@@ -10107,11 +10547,25 @@
 	1005  STIX - 4 Port FXS Card
 1a03  ASPEED Technology, Inc.
 	2000  AST2000
+1a07  Kvaser AB
+	0006  CAN interface PC104+ HS/HS
+	0007  CAN interface PCIcanx II HS or HS/HS
 1a08  Sierra semiconductor
 	0000  SC15064
 1a1d  GFaI e.V.
+	1a17  Meta Networks MTP-1G IDPS NIC
+1a22  Ambric Inc.
 1a29  Fortinet, Inc.
 1a51  Hectronic AB
+1a5d  Celoxica
+1a71  XenSource, 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
+1ab9  Espia Srl
 1b13  Jaton Corp
 1c1c  Symphony
 	0001  82C101
@@ -10150,6 +10604,7 @@
 	0014  HiNT HC4 PCI to ISDN bridge, Network controller
 	0020  HB6 Universal PCI-PCI bridge (transparent mode)
 	0021  HB6 Universal PCI-PCI bridge (non-transparent mode)
+		1775 c200  C2K CompactPCI interface bridge
 		1775 ce90  CE9
 		4c53 1050  CT7 mainboard
 		4c53 1080  CT8 mainboard
@@ -10235,6 +10690,11 @@
 	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
+	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
 4143  Digital Equipment Corp
 4144  Alpha Data
 	0044  ADM-XRCIIPro
@@ -10242,6 +10702,7 @@
 	0100  AladdinCARD
 	0200  CPC
 4321  Tata Power Strategic Electronics Division
+434e  CAST Navigation LLC
 4444  Internext Compression Inc
 	0016  iTVC16 (CX23416) MPEG-2 Encoder
 		0070 0003  WinTV PVR 250
@@ -10299,6 +10760,8 @@
 4d51  MediaQ Inc.
 	0200  MQ-200
 4d54  Microtechnica Co Ltd
+4d56  MATRIX VISION GmbH
+	0000  Altera Cyclone II CameraLink Frame Grabber [mvHYPERION-CLe]
 4ddc  ILC Data Device Corp
 	0100  DD-42924I5-300 (ARINC 429 Data Bus)
 	0801  BU-65570I1 MIL-STD-1553 Test and Simulation
@@ -10371,6 +10834,7 @@
 	8903  Trio 3D business multimedia
 	8904  Trio 64 3D
 		1014 00db  Integrated Trio3D
+		4843 314a  Terminator 128/3D GLH
 		5333 8904  86C365 Trio3D AGP
 	8905  Trio 64V+ family
 	8906  Trio 64V+ family
@@ -10455,6 +10919,8 @@
 	8d02  VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK)
 	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
@@ -10469,6 +10935,7 @@
 	0350  TL880-based HDTV/ATSC tuner
 5455  Technische University Berlin
 	4458  S5933
+5456  GoTView
 5519  Cnet Technologies, Inc.
 5544  Dunord Technologies
 	0001  I-30xx Scanner Interface
@@ -10478,6 +10945,8 @@
 	3132  OpenSwitch12
 5700  Netpower
 5851  Exacq Technologies
+5853  XenSource, Inc.
+	0001  Xen Platform Device
 6356  UltraStor
 6374  c't Magazin fuer Computertechnik
 	6773  GPPCI
@@ -10555,14 +11024,15 @@
 # (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]
+	0960  80960RP (i960RP) Microprocessor/Bridge
+	0962  80960RM (i960RM) Bridge
+	0964  80960RP (i960RP) Microprocessor/Bridge
 	1000  82542 Gigabit Ethernet Controller
 		0e11 b0df  NC6132 Gigabit Ethernet Adapter (1000-SX)
 		0e11 b0e0  NC6133 Gigabit Ethernet Adapter (1000-LX)
@@ -10586,6 +11056,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 2550
 		1028 011c  PRO/1000 XT Network Connection
 		8086 1107  PRO/1000 XT Server Adapter
 		8086 2107  PRO/1000 XT Server Adapter
@@ -10712,7 +11183,8 @@
 	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 model 2681
+		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
@@ -10720,11 +11192,13 @@
 		103c 08b0  tc1100 tablet
 		8086 2522  Samsung P30 integrated WLAN
 		8086 2527  MIM2000/Centrino
+		8086 2561  Dell Latitude D800
 		8086 2581  Toshiba Satellite M10
 	1048  PRO/10GbE LR Server Adapter
 		8086 a01f  PRO/10GbE LR Server Adapter
 		8086 a11f  PRO/10GbE LR Server Adapter
 	1049  82566MM Gigabit Network Connection
+		17aa 20b9  Lenovo Thinkpad T61
 	104a  82566DM Gigabit Network Connection
 	104b  82566DC Gigabit Network Connection
 	104c  82562V 10/100 Network Connection
@@ -10746,6 +11220,7 @@
 	105b  82546GB Gigabit Ethernet Controller (Copper)
 	105e  82571EB Gigabit Ethernet Controller
 		103c 7044  NC360T PCI Express Dual Port Gigabit Server Adapter
+		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
@@ -10847,6 +11322,7 @@
 		17aa 2001  ThinkPad T60
 		17aa 207e  Thinkpad X60s
 		8086 109a  PRO/1000 PL Network Connection
+		8086 309c  DeskTop Board D945GTP
 	109b  82546GB PRO/1000 GF Quad Port Server Adapter
 	109e  82597EX 10GbE Ethernet Controller
 		8086 a01f  PRO/10GbE CX4 Server Adapter
@@ -10856,6 +11332,7 @@
 	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 PRO/1000 PF Quad Port Server Adapter
 	10b0  82573L PRO/1000 PL Network Connection
 	10b2  82573V PRO/1000 PM Network Connection
 	10b3  82573E PRO/1000 PM Network Connection
@@ -10864,6 +11341,7 @@
 		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)
 		8086 1083  PRO/1000 PT Desktop Adapter
 		8086 1093  PRO/1000 PT Desktop Adapter
@@ -10872,8 +11350,16 @@
 	10bc  82571EB Gigabit Ethernet Controller (Copper)
 		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
+	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  82598AF DUAL PORT 10GbE PCI-Express Ethernet Controller
+	10c7  82598AF SINGLE PORT 10GbE PCI-Express Ethernet Controller
+	10d9  82571EB Dual Port Gigabit Mezzanine Adapter
+	10da  82571EB Quad Port Gigabit Mezzanine Adapter
 	1107  PRO/1000 MF Server Adapter (LX)
 	1130  82815 815 Chipset Host Bridge and Memory Controller Hub
 		1025 1016  Travelmate 612 TX
@@ -10882,7 +11368,7 @@
 		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
 		104d 80df  Vaio PCG-FX403
 		8086 4532  D815EEA2 Mainboard
@@ -10904,8 +11390,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 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*
@@ -10974,6 +11459,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
@@ -10985,8 +11471,7 @@
 		8086 0006  82557 10/100 with Wake on LAN
 		8086 0007  82558 10/100 Adapter
 		8086 0008  82558 10/100 with Wake on LAN
-# 8086:0009 revision 5, 82558B based
-		8086 0009  PRO/100+ PCI (TP)
+		8086 0009  82558B PRO/100+ PCI (TP)
 		8086 000a  EtherExpress PRO/100+ Management Adapter
 		8086 000b  EtherExpress PRO/100+
 		8086 000c  EtherExpress PRO/100+ Management Adapter
@@ -11089,7 +11574,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
@@ -11114,44 +11599,45 @@
 		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
+	1a31  82845 845 [Brookdale] Chipset AGP Bridge
 	1a38  5000 Series Chipset DMA Engine
 	1a48  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
@@ -11162,7 +11648,7 @@
 		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
@@ -11173,7 +11659,7 @@
 		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
@@ -11182,7 +11668,7 @@
 		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
@@ -11191,10 +11677,12 @@
 		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
 		144d c00c  P30 notebook
 		1734 1055  Amilo M1420
@@ -11229,10 +11717,10 @@
 		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
@@ -11245,14 +11733,14 @@
 	244e  82801 PCI Bridge
 		1014 0267  NetVista A30p
 	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
@@ -11265,7 +11753,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
@@ -11276,6 +11764,9 @@
 		1014 0222  ThinkPad T23 (2647-4MG) or A30/A30p (2652/2653)
 		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
@@ -11287,13 +11778,13 @@
 		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
@@ -11308,7 +11799,7 @@
 	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
@@ -11317,31 +11808,38 @@
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
-		144d c00c  P30 notebook
+		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
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
+		144d c005  Samsung X10 Laptop
 		144d c00c  P30/P35 notebook
 		1458 24c2  GA-8PE667 Ultra
 		1462 5800  845PE Max (MS-6580)
 		1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
 		1734 1055  Amilo M1420
 		4c53 1090  Cx9 / Vx9 mainboard
+		e4bf 0cc9  CC9-SAMBA
+		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
@@ -11350,30 +11848,40 @@
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
-		144d c00c  P30 notebook
+		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 055f  Thinkpad R50e model 1634
 		1025 005a  TravelMate 290
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
 		1028 0196  Inspiron 5160
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
-		144d c00c  P30 notebook
+		144d c005  Samsung X10 Laptop
+		144d c00c  P30/P35 notebook
 		1458 a002  GA-8PE667 Ultra
 		1462 5800  845PE Max (MS-6580)
 		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 0525  ThinkPad
 		1014 0559  Thinkpad R50e model 1634
 		1025 003c  Aspire 2001WLCi (Compal CL50 motherboard) implementation
 		1025 005a  TravelMate 290
@@ -11382,10 +11890,11 @@
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
-		144d c00c  P30 notebook
+		144d 2115  Samsung X10 Laptop
+		144d c00c  P30/P35 notebook
 	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
@@ -11394,22 +11903,26 @@
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
-		144d c00c  P30 notebook
+		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 0196  Inspiron 5160
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
-		144d c00c  P30 notebook
+		144d c00c  P30/P35 notebook
 		1734 1055  Amilo M1420
 		8086 4541  Latitude D400
 	24cb  82801DB (ICH4) IDE Controller
@@ -11419,12 +11932,14 @@
 		1462 5800  845PE Max (MS-6580)
 		1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
 		4c53 1090  Cx9 / Vx9 mainboard
+		e4bf 0cc9  CC9-SAMBA
+		e4bf 0cd2  CD2-BEBOP
 	24cc  82801DBM (ICH4-M) LPC Interface Bridge
 		144d c00c  P30 notebook
 		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
@@ -11436,12 +11951,15 @@
 		103c 08b0  tc1100 tablet
 		1071 8160  MIM2000
 		1179 ff00  Satellite 2430
-		144d c00c  P30 notebook
+		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
 	24d1  82801EB (ICH5) SATA Controller
 		1028 0169  Precision 470
@@ -11450,13 +11968,15 @@
 		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 0183  PowerEdge 1800
 		1028 019a  PowerEdge SC1425
@@ -11465,6 +11985,7 @@
 		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
 		8086 3427  S875WP1-E mainboard
@@ -11472,13 +11993,15 @@
 		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
 		8086 3427  S875WP1-E mainboard
@@ -11486,7 +12009,8 @@
 		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 0183  PowerEdge 1800
 		1028 019a  PowerEdge SC1425
@@ -11495,6 +12019,7 @@
 		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
 		8086 3427  S875WP1-E mainboard
@@ -11526,6 +12051,7 @@
 		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
 		8086 3427  S875WP1-E mainboard
@@ -11533,7 +12059,8 @@
 		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 019a  PowerEdge SC1425
 		103c 006a  NX9500
@@ -11542,6 +12069,7 @@
 		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
 		8086 24db  P4C800 Mainboard
@@ -11551,7 +12079,8 @@
 		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 0183  PowerEdge 1800
 		1028 019a  PowerEdge SC1425
@@ -11570,6 +12099,7 @@
 		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
 		8086 3427  S875WP1-E mainboard
@@ -11623,6 +12153,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
@@ -11656,6 +12187,7 @@
 		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
 	2585  82925X/XE PCI Express Root Port
 	2588  E7220/E7221 Memory Controller Hub
@@ -11663,64 +12195,85 @@
 	258a  E7221 Integrated Graphics Controller
 	2590  Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller
 		1028 0182  Dell Latidude C610
+# (rev 03)
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		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 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
@@ -11779,7 +12332,12 @@
 	2640  82801FB/FR (ICH6/ICH6R) LPC Interface Bridge
 		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
+# (rev 03)
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
 	2642  82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge
 	2651  82801FB/FW (ICH6/ICH6W) SATA Controller
@@ -11787,30 +12345,48 @@
 		1043 2601  P5GD1-VW Mainboard
 		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
 		1462 7028  915P/G Neo2
 	2653  82801FBM (ICH6M) SATA Controller
 	2658  82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1
 		1028 0179  Optiplex GX280
+# (rev 03) (prog-if 00 [UHCI])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		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 0179  Optiplex GX280
+# (prog-if 00 [UHCI])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		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 0179  Optiplex GX280
+# (prog-if 00 [UHCI])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		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 0179  Optiplex GX280
 		103c 099c  NX6110/NC6120
@@ -11818,19 +12394,43 @@
 		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
 	265c  82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
 		1028 0179  Optiplex GX280
+# (rev 03) (prog-if 20 [EHCI])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 099c  NX6110/NC6120
 		1043 80a6  P5GD1-VW Mainboard
 		1458 5006  GA-8I915ME-G Mainboard
 		1462 7028  915P/G Neo2
 		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
 # based on the PTGD1-LA motherboard
 		103c 2a09  PufferM-UL8E
@@ -11841,15 +12441,22 @@
 		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)
+# (rev 03) (prog-if 00 [Generic])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		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 0179  Optiplex GX280
 		1028 0182  Latitude D610 Laptop
 		1028 0188  Inspiron 6000 laptop
+# (rev 03)
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		103c 0944  Compaq NC6220
 		103c 099c  NX6110/NC6120
 		103c 3006  DC7100 SFF(DX878AV)
@@ -11857,16 +12464,21 @@
 		152d 0745  Packard Bell A8550 Laptop
 		1734 105a  Scenic W620
 	266f  82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller
+# (rev 03) (prog-if 8a [Master SecP PriP])
+		103c 0934  HP Compaq nw8240 Mobile Workstation
 		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
@@ -11894,6 +12506,7 @@
 	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
@@ -11901,17 +12514,22 @@
 	2792  Mobile 915GM/GMS/910GML Express Graphics Controller
 		103c 099c  NX6110/NC6120
 		1043 1881  GMA 900 915GM Integrated Graphics
-	27a0  Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub
+		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
-	27a1  Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port
-	27a2  Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
+	27a1  Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port
+	27a2  Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
 		103c 30a1  NC2400
 		17aa 201a  Thinkpad R60e model 0657
-	27a6  Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
+	27a6  Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
 		103c 30a1  NC2400
 		17aa 201a  Thinkpad R60e model 0657
 	27b0  82801GH (ICH7DH) LPC Interface Bridge
+		8086 544e  DeskTop Board D945GTP
 	27b8  82801GB/GR (ICH7 Family) LPC Interface Bridge
 		107b 5048  E4500
 		8086 544e  DeskTop Board D945GTP
@@ -11920,36 +12538,45 @@
 		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
 		107b 5048  E4500
+		1462 7236  945P Neo3-F Rev. 2.2 motherboard
+		8086 544e  DeskTop Board D945GTP
+	27c1  82801GR/GH (ICH7 Family) SATA AHCI Controller
+	27c3  82801GR/GH (ICH7 Family) SATA RAID Controller
 		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
+	27c4  82801GBM/GHM (ICH7 Family) SATA IDE Controller
+		1025 006c  9814 WKMI
+	27c5  82801GBM/GHM (ICH7 Family) SATA AHCI Controller
 		17aa 200d  Thinkpad R60e model 0657
-	27c6  82801GHM (ICH7-M DH) Serial ATA Storage Controller RAID
-	27c8  82801G (ICH7 Family) USB UHCI #1
+	27c6  82801GHM (ICH7-M DH) SATA RAID Controller
+	27c8  82801G (ICH7 Family) USB UHCI Controller #1
+		1025 006c  9814 WKMI
 		103c 30a1  NC2400
 		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
 		103c 30a1  NC2400
 		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
 		103c 30a1  NC2400
 		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
 		103c 30a1  NC2400
 		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
 		103c 30a1  NC2400
 		17aa 200b  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
@@ -11958,14 +12585,19 @@
 	27d4  82801G (ICH7 Family) PCI Express Port 3
 	27d6  82801G (ICH7 Family) PCI Express Port 4
 	27d8  82801G (ICH7 Family) High Definition Audio Controller
+		1025 006c  9814 WKMI
 		103c 30a1  NC2400
+		1043 13c4  Asus G2P
 		107b 5048  E4500
 		10f7 8338  Panasonic CF-Y5 laptop
-		1179 ff31  Toshiba America Information Systems:AC97 Data Fax SoftModem with SmartCP
+		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
 	27da  82801G (ICH7 Family) SMBus Controller
+		1025 006c  9814 WKMI
 		10f7 8338  Panasonic CF-Y5 laptop
 		17aa 200f  ThinkPad T60/R60 series
 		8086 544e  DeskTop Board D945GTP
@@ -11973,6 +12605,7 @@
 		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
 		103c 30a1  NC2400
 		107b 5048  E4500
@@ -11982,31 +12615,34 @@
 	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
+	2811  82801HBM (ICH8M-E) LPC Interface Controller
 	2812  82801HH (ICH8DH) LPC Interface Controller
 	2814  82801HO (ICH8DO) LPC Interface Controller
-	2815  Mobile LPC Interface Controller
+	2815  82801HEM (ICH8M) LPC Interface Controller
 	2820  82801H (ICH8 Family) 4 port SATA IDE Controller
 		1462 7235  P965 Neo MS-7235 mainboard
 	2821  82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller
-	2822  82801HR/HO/HH (ICH8R/DO/DH) SATA RAID Controller
+	2822  82801 SATA RAID Controller
 	2824  82801HB (ICH8) 4 port SATA AHCI Controller
 	2825  82801H (ICH8 Family) 2 port SATA IDE Controller
 		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
+	2829  82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller
+	282a  Mobile 82801 SATA RAID Controller
+	2830  82801H (ICH8 Family) USB UHCI Controller #1
 		1462 7235  P965 Neo MS-7235 mainboard
-	2831  82801H (ICH8 Family) USB UHCI #2
+	2831  82801H (ICH8 Family) USB UHCI Controller #2
 		1462 7235  P965 Neo MS-7235 mainboard
-	2832  82801H (ICH8 Family) USB UHCI #3
-	2834  82801H (ICH8 Family) USB UHCI #4
+	2832  82801H (ICH8 Family) USB UHCI Controller #3
+	2834  82801H (ICH8 Family) USB UHCI Contoller #4
 		1462 7235  P965 Neo MS-7235 mainboard
-	2835  82801H (ICH8 Family) USB UHCI #5
-	2836  82801H (ICH8 Family) USB2 EHCI #1
+		17aa 20aa  Lenovo Thinkpad T61
+	2835  82801H (ICH8 Family) USB UHCI Controller #5
+		17aa 20aa  Lenovo Thinkpad T60
+	2836  82801H (ICH8 Family) USB2 EHCI Controller #1
 		1462 7235  P965 Neo MS-7235 mainboard
-	283a  82801H (ICH8 Family) USB2 EHCI #2
+	283a  82801H (ICH8 Family) USB2 EHCI Controller #2
+		17aa 20ab  Lenovo Thinkpad T61
 	283e  82801H (ICH8 Family) SMBus Controller
 		1462 7235  P965 Neo MS-7235 mainboard
 	283f  82801H (ICH8 Family) PCI Express Port 1
@@ -12016,36 +12652,45 @@
 	2847  82801H (ICH8 Family) PCI Express Port 5
 	2849  82801H (ICH8 Family) PCI Express Port 6
 	284b  82801H (ICH8 Family) HD Audio Controller
+		17aa 20ac  Lenovo Thinkpad T61
 	284f  82801H (ICH8 Family) Thermal Reporting Device
-	2850  Mobile IDE Controller
-	2910  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
+	2850  82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller
+	2911  LPC Interface Controller
+	2912  82801IH (ICH9DH) LPC Interface Controller
+	2914  LPC Interface Controller
+	2916  82801IR (ICH9R) LPC Interface Controller
+	2917  Mobile LPC Controller
+	2918  82801IB (ICH9) LPC Interface Controller
+	2919  Mobile LPC Controller
+	2920  82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller
+	2921  82801I (ICH9 Family) 2 port SATA IDE Controller
+	2922  82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller
+	2923  82801I (ICH9 Family) 4 port SATA AHCI Controller
+	2925  82801IR/IO (ICH9R//DO) SATA RAID Controller
+	2926  82801I (ICH9 Family) 2 port SATA IDE Controller
 	2928  Mobile 2 port SATA IDE Controller
+	2929  Mobile SATA AHCI Controller
+	292c  Mobile SATA RAID 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
+	2930  82801I (ICH9 Family) SMBus Controller
+	2932  82801I (ICH9 Family) Thermal Subsystem
+	2934  82801I (ICH9 Family) USB UHCI Controller #1
+	2935  82801I (ICH9 Family) USB UHCI Controller #2
+	2936  82801I (ICH9 Family) USB UHCI Controller #3
+	2937  82801I (ICH9 Family) USB UHCI Controller #4
+	2938  82801I (ICH9 Family) USB UHCI Controller #5
+	2939  82801I (ICH9 Family) USB UHCI Controller #6
+	293a  82801I (ICH9 Family) USB2 EHCI Controller #1
+	293c  82801I (ICH9 Family) USB2 EHCI Controller #2
+	293e  82801I (ICH9 Family) HD Audio Controller
+	2940  82801I (ICH9 Family) PCI Express Port 1
+	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  82801I (ICH9 Family) Gigabit Ethernet Controller
 	2970  82946GZ/PL/GL Memory Controller Hub
 	2971  82946GZ/PL/GL PCI Express Root Port
 	2972  82946GZ/GL Integrated Graphics Controller
@@ -12066,8 +12711,10 @@
 	2996  82Q963/Q965 PT IDER Controller
 	2997  82Q963/Q965 KT Controller
 	29a0  82P965/G965 Memory Controller Hub
+		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
@@ -12077,52 +12724,68 @@
 	29b1  PCI Express Root Port
 	29b2  Integrated Graphics Controller
 	29b3  Integrated Graphics Controller
-	29b4  HECI Controller
-	29b5  HECI Controller
+	29b4  MEI Controller
+	29b5  MEI 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
+	29c0  82G33/G31/P35 Express DRAM Controller
+	29c1  82G33/G31/P35 Express PCI Express Root Port
+	29c2  82G33/G31 Express Integrated Graphics Controller
+	29c3  82G33/G31 Express Integrated Graphics Controller
+	29c4  82G33/G31/P35 Express MEI Controller
+	29c5  82G33/G31/P35 Express MEI Controller
+	29c6  82G33/G31/P35 Express PT IDER Controller
+	29c7  82G33/G31/P35 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  MEI Controller
+	29d5  MEI Controller
+	29d6  PT IDER Controller
+	29d7  Serial KT Controller
 	29e0  DRAM Controller
 	29e1  Host-Primary PCI Express Bridge
-	29e4  HECI Controller
-	29e5  HECI Controller
+	29e4  MEI Controller
+	29e5  MEI 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
+	29f4  Server MEI Controller
+	29f5  Server MEI 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
+	2a00  Mobile PM965/GM965/GL960 Memory Controller Hub
+		17aa 20b1  Lenovo Thinkpad T61
+	2a01  Mobile PM965/GM965/GL960 PCI Express Root Port
+	2a02  Mobile GM965/GL960 Integrated Graphics Controller
+	2a03  Mobile GM965/GL960 Integrated Graphics Controller
+	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
 	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
 		1025 005a  TravelMate 290
 		103c 088c  NC8000 laptop
 		103c 0890  NC6000 laptop
 		103c 08b0  tc1100 tablet
-		144d c00c  P30 notebook
+		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
 	3500  6311ESB/6321ESB PCI Express Upstream Port
 	3501  6310ESB PCI Express Upstream Port
 	3504  6311ESB/6321ESB I/OxAPIC Interrupt Controller
@@ -12146,6 +12809,7 @@
 	3580  82852/82855 GM/GME/PM/GMV Processor to I/O Controller
 		1014 055c  Thinkpad R50e model 1634
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
 		1028 0196  Inspiron 5160
 		1734 1055  Amilo M1420
@@ -12153,19 +12817,25 @@
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10e0  PSL09 PrPMC
+		e4bf 0cc9  CC9-SAMBA
+		e4bf 0cd2  CD2-BEBOP
 	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
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
 		1775 10d0  V5D Single Board Computer VGA
 		1775 ce90  CE9
 		4c53 10b0  CL9 mainboard
 		4c53 10e0  PSL09 PrPMC
+		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
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
 		1028 0196  Inspiron 5160
 		1734 1055  Amilo M1420
@@ -12176,6 +12846,7 @@
 	3585  82852/82855 GM/GME/PM/GMV Processor to I/O Controller
 		1014 055e  Thinkpad R50e model 1634
 		1028 0139  Latitude D400
+		1028 014f  Latitude X300
 		1028 0163  Latitude D505
 		1028 0196  Inspiron 5160
 		1734 1055  Amilo M1420
@@ -12184,23 +12855,32 @@
 		4c53 10b0  CL9 mainboard
 		4c53 10e0  PSL09 PrPMC
 	3590  E7520 Memory Controller Hub
+		1014 02dd  eServer xSeries server mainboard
 		1028 019a  PowerEdge SC1425
 		1734 103e  Primergy RX300 S2
+		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
@@ -12224,6 +12904,8 @@
 	360f  Server FBD Branch 0 Registers
 	3610  Server FBD Branch 1 Registers
 	4000  Memory Controller Hub
+	4001  Memory Controller Hub
+	4003  Memory Controller Hub
 	4008  Memory Controller Hub
 	4010  Memory Controller Hub
 	4021  PCI Express Port 1
@@ -12243,7 +12925,8 @@
 	4035  FBD Registers
 	4036  FBD Registers
 	4220  PRO/Wireless 2200BG Network Connection
-		2731 8086  WLAN-Adapter
+# (rev 05)
+		103c 12f6  HP Compaq nw8240 Mobile Workstation
 		8086 2731  Samsung P35 integrated WLAN
 	4222  PRO/Wireless 3945ABG Network Connection
 		8086 1005  PRO/Wireless 3945BG Network Connection
@@ -12255,11 +12938,47 @@
 	4227  PRO/Wireless 3945ABG Network Connection
 		8086 1011  Thinkpad  X60s, R60e model 0657
 		8086 1014  PRO/Wireless 3945BG Network Connection
+	4229  PRO/Wireless 4965 AG or AGN Network Connection
+	4230  PRO/Wireless 4965 AG or AGN Network Connection
+		8086 1110  Lenovo Thinkpad T61
+	444e  Turbo Memory Controller
 	5001  Pro/DSL 2100 Modem
+	5020  Memory Controller Hub
+	5021  DRAM Error Reporting Registers
+	5023  EDMA Controller
+	5024  PCI Express Port PEA0
+	5025  PCI Express Port PEA1
+	5028  S-ATA IDE
+	5029  S-ATA AHCI
+	502a  S-ATA RAID0/1
+	502b  S-ATA Reserved
+	5031  LPC Bus
+	5032  SMBus Controller
+	5033  USB 1.1 Controller
+	5035  USB 2.0 Controller
+	5037  PCI-PCI Bridge (transparent mode)
+	5039  Controller Area Network (CAN) interface #1
+	503a  Controller Area Network (CAN) interface #2
+	503b  Synchronous Serial Port (SPP)
+	503c  IEEE 1588 Hardware Assist
+	503d  Local Expansion Bus
+	503e  Global Control Unit (GCU)
+	5040  Gigabit Ethernet MAC
+	5041  Gigabit Ethernet MAC
+	5042  Gigabit Ethernet MAC
+	5043  Gigabit Ethernet MAC
+	5044  Gigabit Ethernet MAC
+	5045  Gigabit Ethernet MAC
+	5046  Gigabit Ethernet MAC
+	5047  Gigabit Ethernet MAC
+	5048  Gigabit Ethernet MAC
+	5049  Gigabit Ethernet MAC
+	504a  Gigabit Ethernet MAC
+	504b  Gigabit Ethernet MAC
 	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]
+	530d  80310 (IOP) IO Processor
 	65c0  Memory Controller Hub
 	65e2  PCI Express x4 Port 2
 	65e3  PCI Express x4 Port 3
@@ -12292,17 +13011,19 @@
 		15ad 1976  virtualHW v3
 	7113  82371AB/EB/MB PIIX4 ACPI
 		15ad 1976  virtualHW v3
-	7120  82810 GMCH [Graphics Memory Controller Hub]
+	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
@@ -12352,6 +13073,7 @@
 		10b4 202f  Lightspeed 740
 		8086 0000  Terminator 2x/i
 		8086 0100  Intel740 Graphics Accelerator
+	8002  Trusted Execution Technology Registers
 	84c4  450KX/GX [Orion] - 82454KX/GX PCI bridge
 	84c5  450KX/GX [Orion] - 82453KX/GX Memory controller
 	84ca  450NX - 82451NX Memory & I/O Controller
@@ -12386,6 +13108,13 @@
 		4c53 1050  CT7 mainboard
 		4c53 1051  CE7 mainboard
 		e4bf 1000  CC8-1-BLUES
+80ee  InnoTek Systemberatung GmbH
+	beef  VirtualBox Graphics Adapter
+	cafe  VirtualBox Guest Service
+8384  Sigmatel
+	7618  High Definition Audio Codec
+	7670  9770 High Definition Audio
+	7672  9772 High Definition Audio
 8401  TRENDware International Inc.
 8686  ScaleMP
 	1010  vSMPowered system controller [vSMP CTL]
@@ -12548,6 +13277,8 @@
 	008f  AIC-7892P U160/m
 		1179 0001  Magnia Z310
 		15d9 9005  Onboard SCSI Host Adapter
+	0092  AVC-2010 [VideoH!]
+	0093  AVC-2410 [VideoH!]
 	00c0  AHA-3960D / AIC-7899A U160/m
 		0e11 f620  Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter
 		9005 f620  AHA-3960D U160/m
@@ -12577,6 +13308,13 @@
 		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
+		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)
@@ -12596,12 +13334,31 @@
 		9005 0294  ESD SO-DIMM PCI-X SATA ZCR (Prowler)
 		9005 0296  ASR-2240S
 		9005 0297  ASR-4005SAS
-		9005 0298  ASR-4000SAS
+		9005 0298  ASR-4000
 		9005 0299  ASR-4800SAS
 		9005 029a  4805SAS
+		9005 02a4  ICP ICP9085LI
+		9005 02a5  ICP ICP5085BR
 		9005 02b5  ASR5800
 		9005 02b6  ASR5805
 		9005 02b7  ASR5808
+		9005 02b8  ICP5445SL
+		9005 02b9  ICP5085SL
+		9005 02ba  ICP5805SL
+		9005 02bb  3405
+		9005 02bc  3805
+		9005 02bd  31205
+		9005 02be  31605
+		9005 02bf  ICP ICP5045BL
+		9005 02c0  ICP ICP5085BL
+		9005 02c1  ICP ICP5125BR
+		9005 02c2  ICP ICP5165BR
+		9005 02c3  51205
+		9005 02c4  51605
+		9005 02c5  ICP ICP5125SL
+		9005 02c6  ICP ICP5165SL
+		9005 02c7  3085
+		9005 02c8  ICP5805BL
 	0286  AAC-RAID (Rocket)
 		1014 034d  8s
 		1014 9540  ServeRAID 8k/8k-l4
@@ -12615,17 +13372,17 @@
 		9005 029f  ICP ICP9014R0
 		9005 02a0  ICP ICP9047MA
 		9005 02a1  ICP ICP9087MA
-		9005 02a2  3800SAS
+		9005 02a2  3800
 		9005 02a3  ICP ICP5445AU
 		9005 02a4  ICP ICP9085LI
 		9005 02a5  ICP ICP5085BR
 		9005 02a6  ICP9067MA
-		9005 02a7  3805SAS
-		9005 02a8  3400SAS
+		9005 02a7  3805
+		9005 02a8  3400
 		9005 02a9  ICP ICP5085AU
 		9005 02aa  ICP ICP5045AU
-		9005 02ac  1800SAS
-		9005 02b3  ASR-2400SAS
+		9005 02ac  1800
+		9005 02b3  2400
 		9005 02b4  ICP ICP5045AL
 		9005 0800  Callisto
 	0410  AIC-9410W SAS (Razor HBA RAID)
@@ -12648,6 +13405,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
@@ -12663,8 +13421,11 @@
 	8015  ASC-39320B U320
 	8016  ASC-39320A U320
 	8017  ASC-29320ALP U320
+		9005 0044  ASC-29320ALP PCIx U320
+		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
@@ -12680,6 +13441,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
@@ -12740,13 +13502,15 @@ cddd  Tyzx, Inc.
 	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
diff --git a/hw/xfree86/scanpci/xf86PciStdIds.h b/hw/xfree86/scanpci/xf86PciStdIds.h
index d2784f5..f73aa85 100644
--- a/hw/xfree86/scanpci/xf86PciStdIds.h
+++ b/hw/xfree86/scanpci/xf86PciStdIds.h
@@ -97,6 +97,9 @@ static const char pci_vendor_02ac[] = "S
 static const char pci_device_02ac_1012[] = "1012 PCMCIA 10/100 Ethernet Card [RTL81xx]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_02e0[] = "XFX Pine Group Inc";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_0315[] = "SK-Electronics Co., Ltd.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -130,6 +133,10 @@ static const char pci_device_050d_7050[]
 static const char pci_device_050d_705c[] = "F5D7050 v4";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_058f[] = "Alcor Micro Corporation";
+static const char pci_device_058f_9254[] = "AU9254 (4-port USB hub)";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_05a9[] = "OmniVision";
 static const char pci_device_05a9_8519[] = "OV519 series";
 #endif
@@ -182,6 +189,7 @@ static const char pci_vendor_093a[] = "P
 static const char pci_device_093a_010e[] = "Innovage Mini Digital Camera";
 static const char pci_device_093a_010f[] = "SDC-300 Webcam";
 static const char pci_device_093a_2468[] = "CIF Single Chip";
+static const char pci_device_093a_2600[] = "PAC7311";
 static const char pci_device_093a_2603[] = "Philips Webcam SPC500NC";
 static const char pci_device_093a_2608[] = "Maxell MaxCam RotaWeb";
 #endif
@@ -226,6 +234,9 @@ static const char pci_device_0e11_0001[]
 static const char pci_device_0e11_0002[] = "PCI to ISA Bridge";
 static const char pci_device_0e11_0046[] = "Smart Array 64xx";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_0e11_0046_0e11_4091[] = "Smart Array 6i";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_0e11_0046_0e11_409a[] = "Smart Array 641";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -576,13 +587,19 @@ static const char pci_subsys_1000_0040_1
 static const char pci_device_1000_0041[] = "53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI";
 static const char pci_device_1000_0050[] = "SAS1064 PCI-X Fusion-MPT SAS";
 static const char pci_device_1000_0054[] = "SAS1068 PCI-X Fusion-MPT SAS";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0054_1028_1f09[] = "PowerEdge 860 SAS 5i/R";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_1000_0055[] = "SAS1068 PCI-X Fusion-MPT SAS";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0055_1033_8336[] = "SAS1068";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const char pci_device_1000_0056[] = "SAS1064E PCI-Express Fusion-MPT SAS";
+static const char pci_device_1000_0056[] = "SAS1064ET PCI-Express Fusion-MPT SAS";
+static const char pci_device_1000_0057[] = "M1064E MegaRAID SAS";
 static const char pci_device_1000_0058[] = "SAS1068E PCI-Express Fusion-MPT SAS";
 static const char pci_device_1000_005a[] = "SAS1066E PCI-Express Fusion-MPT SAS";
 static const char pci_device_1000_005c[] = "SAS1064A PCI-X Fusion-MPT SAS";
@@ -610,6 +627,9 @@ static const char pci_subsys_1000_0060_1
 static const char pci_subsys_1000_0060_1000_1012[] = "MegaRAID SAS 8704ELP";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_1000_1016[] = "MegaRAID SAS 8880EM2";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0060_1014_0363[] = "MegaRAID SAS PCI Express ROMB";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -618,6 +638,9 @@ static const char pci_subsys_1000_0060_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0060_1014_0365[] = "SystemX MegaRAID SAS 8884E";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_1014_0379[] = "SystemX MegaRAID SAS 8880EM2";
+#endif
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0060_1028_1f0a[] = "PERC 6/E Adapter RAID Controller";
@@ -640,7 +663,7 @@ static const char pci_subsys_1000_0060_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1000_0060_1028_1f11[] = "CERC 6/i Adapter RAID Controller";
+static const char pci_subsys_1000_0060_1028_1f11[] = "CERC 6/i Integrated RAID Controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
@@ -651,6 +674,21 @@ static const char pci_subsys_1000_0060_1
 #endif
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_8086_1006[] = "RAID Controller SRCSAS28EP";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_8086_100a[] = "RAID Controller SRCSAS28EV";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1000_0060_8086_1010[] = "RAID Controller SRCSATA28E";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1000_0060_8086_34cc[] = "Integrated RAID Controller SROMBSAS28E";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -936,10 +974,10 @@ static const char pci_device_1001_9100[]
 static const char pci_vendor_1002[] = "ATI Technologies Inc";
 static const char pci_device_1002_3150[] = "M24 1P [Radeon Mobility X600]";
 static const char pci_device_1002_3152[] = "M22 [Radeon Mobility X300]";
-static const char pci_device_1002_3154[] = "M24 1T [FireGL M24 GL]";
+static const char pci_device_1002_3154[] = "M24GL [Mobility FireGL V3200]";
 static const char pci_device_1002_3e50[] = "RV380 0x3e50 [Radeon X600]";
 static const char pci_device_1002_3e54[] = "RV380 0x3e54 [FireGL V3200]";
-static const char pci_device_1002_3e70[] = "RV380 [Radeon X600] Secondary";
+static const char pci_device_1002_3e70[] = "RV380 [Radeon X600] (Secondary)";
 static const char pci_device_1002_4136[] = "Radeon IGP 320 M";
 static const char pci_device_1002_4137[] = "Radeon IGP330/340/350";
 static const char pci_device_1002_4144[] = "R300 AD [Radeon 9500 Pro]";
@@ -949,7 +987,7 @@ static const char pci_device_1002_4147[]
 static const char pci_device_1002_4148[] = "R350 AH [Radeon 9800]";
 static const char pci_device_1002_4149[] = "R350 AI [Radeon 9800]";
 static const char pci_device_1002_414a[] = "R350 AJ [Radeon 9800]";
-static const char pci_device_1002_414b[] = "R350 AK [Fire GL X2]";
+static const char pci_device_1002_414b[] = "R350 AK [FireGL X2]";
 static const char pci_device_1002_4150[] = "RV350 AP [Radeon 9600]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4150_1002_0002[] = "R9600 Pro primary (Asus OEM for HP)";
@@ -961,7 +999,7 @@ static const char pci_subsys_1002_4150_1
 static const char pci_subsys_1002_4150_1002_4722[] = "All-in-Wonder 2006 AGP Edition";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_4150_1458_4024[] = "Giga-Byte GV-R96128D Primary";
+static const char pci_subsys_1002_4150_1458_4024[] = "Giga-Byte GV-R96128D (Primary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4150_148c_2064[] = "PowerColor R96A-C3N";
@@ -973,13 +1011,13 @@ static const char pci_subsys_1002_4150_1
 static const char pci_subsys_1002_4150_174b_7c19[] = "Sapphire Atlantis Radeon 9600 Pro";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_4150_174b_7c29[] = "GC-R9600PRO Primary [Sapphire]";
+static const char pci_subsys_1002_4150_174b_7c29[] = "GC-R9600PRO [Sapphire] (Primary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4150_17ee_2002[] = "Radeon 9600 256Mb Primary";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_4150_18bc_0101[] = "GC-R9600PRO Primary";
+static const char pci_subsys_1002_4150_18bc_0101[] = "GC-R9600PRO (Primary)";
 #endif
 static const char pci_device_1002_4151[] = "RV350 AQ [Radeon 9600]";
 #ifdef INIT_SUBSYS_INFO
@@ -1011,10 +1049,10 @@ static const char pci_subsys_1002_4153_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4153_1462_932c[] = "865PE Neo2-V (MS-6788) mainboard";
 #endif
-static const char pci_device_1002_4154[] = "RV350 AT [Fire GL T2]";
-static const char pci_device_1002_4155[] = "RV350 AU [Fire GL T2]";
-static const char pci_device_1002_4156[] = "RV350 AV [Fire GL T2]";
-static const char pci_device_1002_4157[] = "RV350 AW [Fire GL T2]";
+static const char pci_device_1002_4154[] = "RV350 AT [FireGL T2]";
+static const char pci_device_1002_4155[] = "RV350 AU [FireGL T2]";
+static const char pci_device_1002_4156[] = "RV350 AV [FireGL T2]";
+static const char pci_device_1002_4157[] = "RV350 AW [FireGL T2]";
 static const char pci_device_1002_4158[] = "68800AX [Mach32]";
 static const char pci_device_1002_4164[] = "R300 AD [Radeon 9500 Pro] (Secondary)";
 static const char pci_device_1002_4165[] = "R300 AE [Radeon 9700 Pro] (Secondary)";
@@ -1028,19 +1066,19 @@ static const char pci_subsys_1002_4170_1
 static const char pci_subsys_1002_4170_1002_4723[] = "All-in-Wonder 2006 AGP Edition (Secondary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_4170_1458_4025[] = "Giga-Byte GV-R96128D Secondary";
+static const char pci_subsys_1002_4170_1458_4025[] = "Giga-Byte GV-R96128D (Secondary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4170_148c_2067[] = "PowerColor R96A-C3N (Secondary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_4170_174b_7c28[] = "GC-R9600PRO Secondary [Sapphire]";
+static const char pci_subsys_1002_4170_174b_7c28[] = "GC-R9600PRO [Sapphire] (Secondary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_4170_17ee_2003[] = "Radeon 9600 256Mb Secondary";
+static const char pci_subsys_1002_4170_17ee_2003[] = "Radeon 9600 256Mb (Secondary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_4170_18bc_0100[] = "GC-R9600PRO Secondary";
+static const char pci_subsys_1002_4170_18bc_0100[] = "GC-R9600PRO (Secondary)";
 #endif
 static const char pci_device_1002_4171[] = "RV350 AQ [Radeon 9600] (Secondary)";
 #ifdef INIT_SUBSYS_INFO
@@ -1096,21 +1134,27 @@ static const char pci_device_1002_4341[]
 static const char pci_device_1002_4345[] = "EHCI USB Controller";
 static const char pci_device_1002_4347[] = "OHCI USB Controller #1";
 static const char pci_device_1002_4348[] = "OHCI USB Controller #2";
-static const char pci_device_1002_4349[] = "ATI Dual Channel Bus Master PCI IDE Controller";
+static const char pci_device_1002_4349[] = "Dual Channel Bus Master PCI IDE Controller";
 static const char pci_device_1002_434d[] = "IXP AC'97 Modem";
-static const char pci_device_1002_4353[] = "ATI SMBus";
+static const char pci_device_1002_4353[] = "SMBus";
 static const char pci_device_1002_4354[] = "215CT [Mach64 CT]";
 static const char pci_device_1002_4358[] = "210888CX [Mach64 CX]";
-static const char pci_device_1002_4363[] = "ATI SMBus";
-static const char pci_device_1002_436e[] = "ATI 436E Serial ATA Controller";
+static const char pci_device_1002_4363[] = "SMBus";
+static const char pci_device_1002_436e[] = "436E Serial ATA Controller";
 static const char pci_device_1002_4370[] = "IXP SB400 AC'97 Audio Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4370_1025_0079[] = "Aspire 5024WLMMi";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_4370_1025_0091[] = "Aspire 5032WXMi";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4370_103c_308b[] = "MX6125";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_4370_105b_0c81[] = "Realtek ALC 653";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4370_107b_0300[] = "MX6421";
 #endif
 static const char pci_device_1002_4371[] = "IXP SB400 PCI-PCI Bridge";
@@ -1142,7 +1186,7 @@ static const char pci_subsys_1002_4375_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4375_103c_308b[] = "MX6125";
 #endif
-static const char pci_device_1002_4376[] = "Standard Dual Channel PCI IDE Controller ATI";
+static const char pci_device_1002_4376[] = "Standard Dual Channel PCI IDE Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4376_1025_0080[] = "Aspire 5024WLMMi";
 #endif
@@ -1156,20 +1200,20 @@ static const char pci_subsys_1002_4377_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4377_103c_308b[] = "MX6125";
 #endif
-static const char pci_device_1002_4378[] = "ATI SB400 - AC'97 Modem Controller";
+static const char pci_device_1002_4378[] = "SB400 AC'97 Modem Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4378_1025_0080[] = "Aspire 5024WLMMi";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4378_103c_308b[] = "MX6125";
 #endif
-static const char pci_device_1002_4379[] = "ATI 4379 Serial ATA Controller";
-static const char pci_device_1002_437a[] = "ATI 437A Serial ATA Controller";
+static const char pci_device_1002_4379[] = "4379 Serial ATA Controller";
+static const char pci_device_1002_437a[] = "437A Serial ATA Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_437a_1002_4379[] = "ATI 4379 Serial ATA Controller";
+static const char pci_subsys_1002_437a_1002_4379[] = "4379 Serial ATA Controller";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_437a_1002_437a[] = "ATI 437A Serial ATA Controller";
+static const char pci_subsys_1002_437a_1002_437a[] = "437A Serial ATA Controller";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_437a_14f1_8800[] = "Leadtek WinFast TV2000XP Expert";
@@ -1531,6 +1575,9 @@ static const char pci_subsys_1002_4c57_1
 static const char pci_subsys_1002_4c57_1028_012a[] = "Latitude C640";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_4c57_1043_1622[] = "Mobility Radeon M7 (L3C/S)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4c57_144d_c006[] = "Radeon Mobility M7 LW in vpr Matrix 170B4";
 #endif
 static const char pci_device_1002_4c58[] = "Radeon RV200 LX [Mobility FireGL 7800 M7]";
@@ -1557,8 +1604,11 @@ static const char pci_device_1002_4c5a[]
 static const char pci_device_1002_4c64[] = "Radeon R250 Ld [Radeon Mobility 9000 M9]";
 static const char pci_device_1002_4c65[] = "Radeon R250 Le [Radeon Mobility 9000 M9]";
 static const char pci_device_1002_4c66[] = "Radeon R250 [Mobility FireGL 9000]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_4c66_1014_054d[] = "Thinkpad T41";
+#endif
 static const char pci_device_1002_4c67[] = "Radeon R250 Lg [Radeon Mobility 9000 M9]";
-static const char pci_device_1002_4c6e[] = "Radeon R250 Ln [Radeon Mobility 9000 M9] [Secondary]";
+static const char pci_device_1002_4c6e[] = "Radeon R250 Ln [Radeon Mobility 9000 M9] (Secondary)";
 static const char pci_device_1002_4d46[] = "Rage Mobility M4 AGP";
 static const char pci_device_1002_4d4c[] = "Rage Mobility M4 AGP";
 static const char pci_device_1002_4e44[] = "Radeon R300 ND [Radeon 9700 Pro]";
@@ -1580,7 +1630,7 @@ static const char pci_device_1002_4e47[]
 static const char pci_device_1002_4e48[] = "Radeon R350 [Radeon 9800 Pro]";
 static const char pci_device_1002_4e49[] = "Radeon R350 [Radeon 9800]";
 static const char pci_device_1002_4e4a[] = "RV350 NJ [Radeon 9800 XT]";
-static const char pci_device_1002_4e4b[] = "R350 NK [Fire GL X2]";
+static const char pci_device_1002_4e4b[] = "R350 NK [FireGL X2]";
 static const char pci_device_1002_4e50[] = "RV350 [Mobility Radeon 9600 M10]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_4e50_1025_005a[] = "TravelMate 290";
@@ -1622,7 +1672,7 @@ static const char pci_device_1002_4e68[]
 static const char pci_device_1002_4e69[] = "Radeon R350 [Radeon 9800] (Secondary)";
 static const char pci_device_1002_4e6a[] = "RV350 NJ [Radeon 9800 XT] (Secondary)";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_4e6a_1002_4e71[] = "ATI Technologies Inc M10 NQ [Radeon Mobility 9600]";
+static const char pci_subsys_1002_4e6a_1002_4e71[] = "M10 NQ [Radeon Mobility 9600]";
 #endif
 static const char pci_device_1002_4e71[] = "M10 NQ [Radeon Mobility 9600] (Secondary)";
 static const char pci_device_1002_4f72[] = "RV250 [Radeon 9000 Series]";
@@ -1825,7 +1875,7 @@ static const char pci_subsys_1002_5159_1
 static const char pci_subsys_1002_5159_1014_029a[] = "Remote Supervisor Adapter II (RSA2)";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_5159_1014_02c8[] = "IBM eServer xSeries server mainboard";
+static const char pci_subsys_1002_5159_1014_02c8[] = "eServer xSeries server mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5159_1028_019a[] = "PowerEdge SC1425";
@@ -1960,7 +2010,10 @@ static const char pci_subsys_1002_5452_1
 static const char pci_device_1002_5453[] = "Rage 128 Pro Ultra TS";
 static const char pci_device_1002_5454[] = "Rage 128 Pro Ultra TT";
 static const char pci_device_1002_5455[] = "Rage 128 Pro Ultra TU";
-static const char pci_device_1002_5460[] = "M22 [Radeon Mobility M300]";
+static const char pci_device_1002_5460[] = "M22 [Mobility Radeon X300]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_5460_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
 static const char pci_device_1002_5462[] = "M24 [Radeon Mobility X600]";
 static const char pci_device_1002_5464[] = "M22 [FireGL GL]";
 static const char pci_device_1002_5548[] = "R423 UH [Radeon X800 (PCIE)]";
@@ -1969,18 +2022,18 @@ static const char pci_device_1002_554a[]
 static const char pci_device_1002_554b[] = "R423 UK [Radeon X800SE (PCIE)]";
 static const char pci_device_1002_554d[] = "R430 [Radeon X800 XL] (PCIe)";
 static const char pci_device_1002_554f[] = "R430 [Radeon X800 (PCIE)]";
-static const char pci_device_1002_5550[] = "R423 [Fire GL V7100]";
+static const char pci_device_1002_5550[] = "R423 [FireGL V7100]";
 static const char pci_device_1002_5551[] = "R423 [FireGL V5100 (PCIE)]";
 static const char pci_device_1002_5552[] = "R423 UR [FireGL V5100 (PCIE)]";
 static const char pci_device_1002_5554[] = "R423 UT [FireGL V7100 (PCIE)]";
-static const char pci_device_1002_5569[] = "R423 UI [Radeon X800PRO (PCIE)] Secondary";
+static const char pci_device_1002_5569[] = "R423 UI [Radeon X800PRO (PCIE)] (Secondary)";
 static const char pci_device_1002_556b[] = "Radeon R423 UK (PCIE) [X800 SE] (Secondary)";
-static const char pci_device_1002_556d[] = "R430 [Radeon X800 XL] (PCIe) Secondary";
-static const char pci_device_1002_556f[] = "R430 [Radeon X800 (PCIE) Secondary]";
-static const char pci_device_1002_5571[] = "R423GL-SE ATI FIREGL V5100 PCI-EX Secondary";
+static const char pci_device_1002_556d[] = "R430 [Radeon X800 XL] (PCIe) (Secondary)";
+static const char pci_device_1002_556f[] = "R430 [Radeon X800] (PCIE) (Secondary)";
+static const char pci_device_1002_5571[] = "R423GL-SE [FireGL V5100 (PCIE)] (Secondary)";
 static const char pci_device_1002_564a[] = "M26 [Mobility FireGL V5000]";
 static const char pci_device_1002_564b[] = "M26 [Mobility FireGL V5000]";
-static const char pci_device_1002_564f[] = "M26 [Radeon Mobility X700 XL] (PCIE)";
+static const char pci_device_1002_564f[] = "M26 [Radeon Mobility X700 XL (PCIE)]";
 static const char pci_device_1002_5652[] = "M26 [Radeon Mobility X700]";
 static const char pci_device_1002_5653[] = "Radeon Mobility X700 (PCIE)";
 #ifdef INIT_SUBSYS_INFO
@@ -2000,6 +2053,9 @@ static const char pci_device_1002_5834[]
 static const char pci_device_1002_5835[] = "RS300M AGP [Radeon Mobility 9100IGP]";
 static const char pci_device_1002_5838[] = "Radeon 9100 IGP AGP Bridge";
 static const char pci_device_1002_5940[] = "RV280 [Radeon 9200 PRO] (Secondary)";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_5940_17af_2021[] = "Excalibur Radeon 9250 (Secondary)";
+#endif
 static const char pci_device_1002_5941[] = "RV280 [Radeon 9200] (Secondary)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5941_1458_4019[] = "Gigabyte Radeon 9200";
@@ -2021,20 +2077,23 @@ static const char pci_subsys_1002_5950_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5950_103c_308b[] = "MX6125";
 #endif
-static const char pci_device_1002_5951[] = "ATI Radeon Xpress 200 (RS480/RS482/RX480/RX482) Chipset - Host bridge";
+static const char pci_device_1002_5951[] = "Radeon Xpress 200 (RS480/RS482/RX480/RX482) Chipset - Host bridge";
 static const char pci_device_1002_5952[] = "RD580 [CrossFire Xpress 3200] Chipset Host Bridge";
 static const char pci_device_1002_5954[] = "RS480 [Radeon Xpress 200G Series]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5954_1002_5954[] = "RV370 [Radeon Xpress 200G Series]";
 #endif
-static const char pci_device_1002_5955[] = "ATI Radeon XPRESS 200M 5955 (PCIE)";
+static const char pci_device_1002_5955[] = "Radeon XPRESS 200M 5955 (PCIE)";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_5955_1002_5955[] = "RS480 0x5955 [ATI Radeon XPRESS 200M 5955 (PCIE)]";
+static const char pci_subsys_1002_5955_1002_5955[] = "RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)]";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5955_103c_308b[] = "MX6125";
 #endif
 static const char pci_device_1002_5960[] = "RV280 [Radeon 9200 PRO]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_5960_17af_2020[] = "Excalibur Radeon 9250";
+#endif
 static const char pci_device_1002_5961[] = "RV280 [Radeon 9200]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5961_1002_2f72[] = "All-in-Wonder 9200 Series";
@@ -2066,7 +2125,7 @@ static const char pci_subsys_1002_5961_1
 static const char pci_device_1002_5962[] = "RV280 [Radeon 9200]";
 static const char pci_device_1002_5964[] = "RV280 [Radeon 9200 SE]";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_5964_1002_5964[] = "ATI Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz";
+static const char pci_subsys_1002_5964_1002_5964[] = "Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5964_1043_c006[] = "ASUS Radeon 9200 SE / TD / 128M";
@@ -2158,6 +2217,9 @@ static const char pci_subsys_1002_5d44_1
 static const char pci_subsys_1002_5d44_1458_4032[] = "Radeon 9200 SE 128MB";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1002_5d44_147b_6190[] = "R9200SE-DT (Secondary)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5d44_174b_7c12[] = "Sapphire Radeon 9200 SE (Secondary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -2179,10 +2241,10 @@ static const char pci_device_1002_5d4d[]
 static const char pci_device_1002_5d4f[] = "R480 [Radeon X800 GTO (PCIE)]";
 static const char pci_device_1002_5d52[] = "R480 [Radeon X850XT (PCIE)] (Primary)";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_5d52_1002_0b12[] = "PowerColor X850XT PCIe Primary";
+static const char pci_subsys_1002_5d52_1002_0b12[] = "PowerColor X850XT PCIe (Primary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_5d52_1002_0b13[] = "PowerColor X850XT PCIe Secondary";
+static const char pci_subsys_1002_5d52_1002_0b13[] = "PowerColor X850XT PCIe (Secondary)";
 #endif
 static const char pci_device_1002_5d57[] = "R423 5F57 [Radeon X800XT (PCIE)]";
 static const char pci_device_1002_5d6d[] = "R480 [Radeon X850XT Platinum (PCIE)] (Secondary)";
@@ -2199,7 +2261,7 @@ static const char pci_device_1002_5e4d[]
 static const char pci_subsys_1002_5e4d_148c_2116[] = "PowerColor Bravo X700";
 #endif
 static const char pci_device_1002_5e4f[] = "RV410 [Radeon X700]";
-static const char pci_device_1002_5e6b[] = "RV410 [Radeon X700 Pro (PCIE)] Secondary";
+static const char pci_device_1002_5e6b[] = "RV410 [Radeon X700 Pro (PCIE)] (Secondary)";
 static const char pci_device_1002_5e6d[] = "RV410 [Radeon X700 (PCIE)] (Secondary)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_5e6d_148c_2117[] = "PowerColor Bravo X700";
@@ -2210,7 +2272,7 @@ static const char pci_device_1002_7010[]
 static const char pci_device_1002_7100[] = "R520 [Radeon X1800]";
 static const char pci_device_1002_7102[] = "M58 [Radeon Mobility X1800]";
 static const char pci_device_1002_7103[] = "M58 [Mobility FireGL V7200]";
-static const char pci_device_1002_7104[] = "R520 GL ATI FireGL V7200 Primary";
+static const char pci_device_1002_7104[] = "R520GL [FireGL V7200] (Primary)";
 static const char pci_device_1002_7105[] = "R520 [FireGL]";
 static const char pci_device_1002_7106[] = "M58 [Mobility FireGL V7100]";
 static const char pci_device_1002_7108[] = "M58 [Radeon Mobility X1800]";
@@ -2225,7 +2287,7 @@ static const char pci_device_1002_710a[]
 static const char pci_device_1002_710b[] = "R520 [Radeon X1800]";
 static const char pci_device_1002_710c[] = "R520 [Radeon X1800]";
 static const char pci_device_1002_7120[] = "R520 [Radeon X1800] (Secondary)";
-static const char pci_device_1002_7124[] = "R520 GL ATI FireGL V7200 Secondary";
+static const char pci_device_1002_7124[] = "R520GL [FireGL V7200] (Secondary)";
 static const char pci_device_1002_7129[] = "R520 [Radeon X1800] (Secondary)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_7129_1002_0323[] = "All-in-Wonder X1800XL (Secondary)";
@@ -2234,7 +2296,7 @@ static const char pci_subsys_1002_7129_1
 static const char pci_subsys_1002_7129_1002_0d03[] = "Radeon X1800 CrossFire Edition (Secondary)";
 #endif
 static const char pci_device_1002_7140[] = "RV515 [Radeon X1600]";
-static const char pci_device_1002_7142[] = "RV515 PRO [ATI Radeon X1300/X1550 Series]";
+static const char pci_device_1002_7142[] = "RV515 PRO [Radeon X1300/X1550 Series]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_7142_1002_0322[] = "All-in-Wonder 2006 PCI-E Edition";
 #endif
@@ -2245,17 +2307,17 @@ static const char pci_device_1002_7146[]
 static const char pci_subsys_1002_7146_1002_0322[] = "All-in-Wonder 2006 PCI-E Edition";
 #endif
 static const char pci_device_1002_7147[] = "RV505 [Radeon X1550 64-bit]";
-static const char pci_device_1002_7149[] = "M52 [ATI Mobility Radeon X1300]";
-static const char pci_device_1002_714a[] = "M52 [ATI Mobility Radeon X1300]";
-static const char pci_device_1002_714b[] = "M52 [ATI Mobility Radeon X1300]";
-static const char pci_device_1002_714c[] = "M52 [ATI Mobility Radeon X1300]";
+static const char pci_device_1002_7149[] = "M52 [Mobility Radeon X1300]";
+static const char pci_device_1002_714a[] = "M52 [Mobility Radeon X1300]";
+static const char pci_device_1002_714b[] = "M52 [Mobility Radeon X1300]";
+static const char pci_device_1002_714c[] = "M52 [Mobility Radeon X1300]";
 static const char pci_device_1002_714d[] = "RV515 [Radeon X1300]";
-static const char pci_device_1002_714e[] = "RV515 [Radeon X1300]";
-static const char pci_device_1002_7152[] = "RV515 GL ATI FireGL V3300 Primary";
+static const char pci_device_1002_714e[] = "RV515LE [Radeon X1300]";
+static const char pci_device_1002_7152[] = "RV515GL [FireGL V3300] (Primary)";
 static const char pci_device_1002_7153[] = "RV515GL [FireGL V3350]";
 static const char pci_device_1002_715e[] = "RV515 [Radeon X1300]";
 static const char pci_device_1002_715f[] = "RV505 CE [Radeon X1550 64-bit]";
-static const char pci_device_1002_7162[] = "RV515 PRO [ATI Radeon X1300/X1550 Series Secondary]";
+static const char pci_device_1002_7162[] = "RV515 PRO [Radeon X1300/X1550 Series] (Secondary)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_7162_1002_0323[] = "All-in-Wonder 2006 PCI-E Edition (Secondary)";
 #endif
@@ -2263,42 +2325,45 @@ static const char pci_device_1002_7166[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_7166_1002_0323[] = "All-in-Wonder 2006 PCI-E Edition (Secondary)";
 #endif
-static const char pci_device_1002_7172[] = "RV515 GL ATI FireGL V3300 Secondary";
-static const char pci_device_1002_7173[] = "RV515GL [FireGL V3350 Secondary]";
-static const char pci_device_1002_7180[] = "RV516 [ATI Radeon X1300/X1550 Series]";
-static const char pci_device_1002_7181[] = "RV516 XT Radeon X1600 Series Primary";
-static const char pci_device_1002_7183[] = "RV516 [ATI Radeon X1300/X1550 Series]";
-static const char pci_device_1002_7187[] = "RV516 [ATI Radeon X1300/X1550 Series]";
-static const char pci_device_1002_7188[] = "M64-S [ATI Mobility Radeon X2300]";
-static const char pci_device_1002_718a[] = "ATI Mobility Radeon X2300";
-static const char pci_device_1002_718c[] = "M62CSP64 [ATI Mobility Radeon X1350]";
-static const char pci_device_1002_718d[] = "M64CSP128 [ATI Mobility Radeon X1450]";
+static const char pci_device_1002_716e[] = "RV515LE [Radeon X1300] Secondary";
+static const char pci_device_1002_7172[] = "RV515GL [FireGL V3300] (Secondary)";
+static const char pci_device_1002_7173[] = "RV515GL [FireGL V3350] (Secondary)";
+static const char pci_device_1002_7180[] = "RV516 [Radeon X1300/X1550 Series]";
+static const char pci_device_1002_7181[] = "RV516 XT Radeon X1600 Series (Primary)";
+static const char pci_device_1002_7183[] = "RV516 [Radeon X1300/X1550 Series]";
+static const char pci_device_1002_7187[] = "RV516 [Radeon X1300/X1550 Series]";
+static const char pci_device_1002_7188[] = "M64-S [Mobility Radeon X2300]";
+static const char pci_device_1002_718a[] = "Mobility Radeon X2300";
+static const char pci_device_1002_718c[] = "M62CSP64 [Mobility Radeon X1350]";
+static const char pci_device_1002_718d[] = "M64CSP128 [Mobility Radeon X1450]";
 static const char pci_device_1002_7193[] = "RV516 [Radeon X1550 Series]";
 static const char pci_device_1002_719b[] = "FireMV 2250";
 static const char pci_device_1002_719f[] = "RV516LE [Radeon X1550 64-bit]";
-static const char pci_device_1002_71a0[] = "RV516 [ATI Radeon X1300/X1550 Series Secondary]";
-static const char pci_device_1002_71a1[] = "RV516 XT Radeon X1600 Series Secondary";
-static const char pci_device_1002_71a3[] = "RV516 [ATI Radeon X1300 Pro Secondary]";
-static const char pci_device_1002_71a7[] = "RV516 [ATI Radeon X1300/X1550 Series Secondary]";
-static const char pci_device_1002_71bb[] = "FireMV 2250 Secondary";
+static const char pci_device_1002_71a0[] = "RV516 [Radeon X1300/X1550 Series] (Secondary)";
+static const char pci_device_1002_71a1[] = "RV516 XT Radeon X1600 Series (Secondary)";
+static const char pci_device_1002_71a3[] = "RV516 [Radeon X1300 Pro] (Secondary)";
+static const char pci_device_1002_71a7[] = "RV516 [Radeon X1300/X1550 Series] (Secondary)";
+static const char pci_device_1002_71bb[] = "FireMV 2250 (Secondary)";
 static const char pci_device_1002_71c0[] = "RV530 [Radeon X1600]";
 static const char pci_device_1002_71c2[] = "RV530 [Radeon X1600]";
-static const char pci_device_1002_71c4[] = "M56GL [ATI Mobility FireGL V5200]";
+static const char pci_device_1002_71c4[] = "M56GL [Mobility FireGL V5200]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1002_71c4_17aa_2007[] = "ThinkPad T60p";
 #endif
 static const char pci_device_1002_71c5[] = "M56P [Radeon Mobility X1600]";
-static const char pci_device_1002_71c6[] = "RV530LE [Radeon X1600]";
+static const char pci_device_1002_71c6[] = "RV530LE [Radeon X1600/X1650 PRO]";
 static const char pci_device_1002_71c7[] = "RV535 [Radeon X1650 Series]";
 static const char pci_device_1002_71ce[] = "RV530LE [Radeon X1600]";
-static const char pci_device_1002_71d5[] = "M66-P ATI Mobility Radeon X1700";
-static const char pci_device_1002_71d6[] = "M66-XT ATI Mobility Radeon X1700";
+static const char pci_device_1002_71d4[] = "M56GL [Mobility FireGL V5250]";
+static const char pci_device_1002_71d5[] = "M66-P [Mobility Radeon X1700]";
+static const char pci_device_1002_71d6[] = "M66-XT [Mobility Radeon X1700]";
 static const char pci_device_1002_71de[] = "RV530LE [Radeon X1600]";
 static const char pci_device_1002_71e0[] = "RV530 [Radeon X1600] (Secondary)";
 static const char pci_device_1002_71e2[] = "RV530 [Radeon X1600] (Secondary)";
+static const char pci_device_1002_71e6[] = "RV530LE [Radeon X1650 PRO] (Secondary)";
 static const char pci_device_1002_71e7[] = "RV535 [Radeon X1650 Series]";
-static const char pci_device_1002_7210[] = "M71 [ATI Mobility Radeon X2100]";
-static const char pci_device_1002_7211[] = "M71 [ATI Mobility Radeon X2100 Secondary]";
+static const char pci_device_1002_7210[] = "M71 [Mobility Radeon X2100]";
+static const char pci_device_1002_7211[] = "M71 [Mobility Radeon X2100] (Secondary)";
 static const char pci_device_1002_7240[] = "R580 [Radeon X1900]";
 static const char pci_device_1002_7241[] = "R580 [Radeon X1900]";
 static const char pci_device_1002_7242[] = "R580 [Radeon X1900]";
@@ -2308,36 +2373,37 @@ static const char pci_device_1002_7245[]
 static const char pci_device_1002_7246[] = "R580 [Radeon X1900]";
 static const char pci_device_1002_7247[] = "R580 [Radeon X1900]";
 static const char pci_device_1002_7248[] = "R580 [Radeon X1900]";
-static const char pci_device_1002_7249[] = "R580 [Radeon X1900 XT] Primary";
+static const char pci_device_1002_7249[] = "R580 [Radeon X1900 XT] (Primary)";
 static const char pci_device_1002_724a[] = "R580 [Radeon X1900]";
 static const char pci_device_1002_724b[] = "R580 [Radeon X1900]";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_724b_1002_0b12[] = "Radeon X1900 Primary Display Device";
+static const char pci_subsys_1002_724b_1002_0b12[] = "Radeon X1900 (Primary)";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1002_724b_1002_0b13[] = "Radeon X1900 Secondary Display Device";
+static const char pci_subsys_1002_724b_1002_0b13[] = "Radeon X1900 (Secondary)";
 #endif
 static const char pci_device_1002_724c[] = "R580 [Radeon X1900]";
 static const char pci_device_1002_724d[] = "R580 [Radeon X1900]";
 static const char pci_device_1002_724e[] = "R580 [AMD Stream Processor]";
-static const char pci_device_1002_7269[] = "R580 [Radeon X1900 XT] Secondary";
+static const char pci_device_1002_7269[] = "R580 [Radeon X1900 XT] (Secondary)";
 static const char pci_device_1002_726b[] = "R580 [Radeon X1900]";
-static const char pci_device_1002_726e[] = "R580 [AMD Stream Processor Secondary]";
-static const char pci_device_1002_7280[] = "ATI Radeon X1950 Pro Primary (PCIE)";
-static const char pci_device_1002_7288[] = "ATI Radeon X1950 GT";
-static const char pci_device_1002_7291[] = "ATI Radeon X1650 XT Primary (PCIE)";
+static const char pci_device_1002_726e[] = "R580 [AMD Stream Processor] (Secondary)";
+static const char pci_device_1002_7280[] = "Radeon X1950 Pro (Primary) (PCIE)";
+static const char pci_device_1002_7288[] = "Radeon X1950 GT";
+static const char pci_device_1002_7291[] = "Radeon X1650 XT (Primary) (PCIE)";
 static const char pci_device_1002_7293[] = "Radeon X1650 Series";
-static const char pci_device_1002_72a0[] = "ATI Radeon X1950 Pro Secondary (PCIE)";
-static const char pci_device_1002_72a8[] = "ATI Radeon X1950 GT Secondary";
-static const char pci_device_1002_72b1[] = "ATI Radeon X1650 XT Secondary (PCIE)";
-static const char pci_device_1002_72b3[] = "ATI Radeon X1650 Series Secondary";
+static const char pci_device_1002_72a0[] = "Radeon X1950 Pro (Secondary) (PCIE)";
+static const char pci_device_1002_72a8[] = "Radeon X1950 GT (Secondary)";
+static const char pci_device_1002_72b1[] = "Radeon X1650 XT (Secondary) (PCIE)";
+static const char pci_device_1002_72b3[] = "Radeon X1650 Series (Secondary)";
 static const char pci_device_1002_7833[] = "Radeon 9100 IGP Host Bridge";
 static const char pci_device_1002_7834[] = "Radeon 9100 PRO IGP";
 static const char pci_device_1002_7835[] = "Radeon Mobility 9200 IGP";
 static const char pci_device_1002_7838[] = "Radeon 9100 IGP PCI/AGP Bridge";
-static const char pci_device_1002_791e[] = "ATI Radeon Xpress 1200 Series";
-static const char pci_device_1002_791f[] = "ATI Radeon Xpress 1200 Series";
-static const char pci_device_1002_793f[] = "ATI Radeon Xpress 1200 Series Secondary";
+static const char pci_device_1002_7919[] = "Radeon X1200 Series Audio Controller";
+static const char pci_device_1002_791e[] = "Radeon X1200 Series";
+static const char pci_device_1002_791f[] = "Radeon X1200 Series";
+static const char pci_device_1002_793f[] = "Radeon X1200 Series (Secondary)";
 static const char pci_device_1002_7c37[] = "RV350 AQ [Radeon 9600 SE]";
 static const char pci_device_1002_cab0[] = "AGP Bridge [IGP 320M]";
 static const char pci_device_1002_cab2[] = "RS200/RS200M AGP Bridge [IGP 340M]";
@@ -2447,13 +2513,28 @@ static const char pci_device_100b_0030[]
 static const char pci_device_100b_0035[] = "DP83065 [Saturn] 10/100/1000 Ethernet Controller";
 static const char pci_device_100b_0500[] = "SCx200 Bridge";
 static const char pci_device_100b_0501[] = "SCx200 SMI";
-static const char pci_device_100b_0502[] = "SCx200 IDE";
-static const char pci_device_100b_0503[] = "SCx200 Audio";
+static const char pci_device_100b_0502[] = "SCx200, SC1100 IDE controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_100b_0502_100b_0502[] = "IDE Controller";
+#endif
+static const char pci_device_100b_0503[] = "SCx200, SC1100 Audio Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_100b_0503_100b_0503[] = "XpressAudio controller";
+#endif
 static const char pci_device_100b_0504[] = "SCx200 Video";
 static const char pci_device_100b_0505[] = "SCx200 XBus";
 static const char pci_device_100b_0510[] = "SC1100 Bridge";
-static const char pci_device_100b_0511[] = "SC1100 SMI";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_100b_0510_100b_0500[] = "GPIO and LPC support bridge";
+#endif
+static const char pci_device_100b_0511[] = "SC1100 SMI & ACPI";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_100b_0511_100b_0501[] = "SC1100 SMI & ACPI bridge";
+#endif
 static const char pci_device_100b_0515[] = "SC1100 XBus";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_100b_0515_100b_0505[] = "SC1100 PCI to XBus bridge";
+#endif
 static const char pci_device_100b_d001[] = "87410 IDE";
 static const char pci_vendor_100c[] = "Tseng Labs Inc";
 static const char pci_device_100c_3202[] = "ET4000/W32p rev A";
@@ -2900,7 +2981,7 @@ static const char pci_subsys_1014_0096_1
 static const char pci_device_1014_009f[] = "PCI 4758 Cryptographic Accelerator";
 static const char pci_device_1014_00a5[] = "ATM Controller (1410a500)";
 static const char pci_device_1014_00a6[] = "ATM 155MBPS MM Controller (1410a600)";
-static const char pci_device_1014_00b7[] = "256-bit Graphics Rasterizer [Fire GL1]";
+static const char pci_device_1014_00b7[] = "256-bit Graphics Rasterizer [FireGL1]";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1014_00b7_1092_00b8[] = "FireGL1 AGP 32Mb";
@@ -2960,6 +3041,13 @@ static const char pci_subsys_1014_01bd_1
 #endif
 static const char pci_device_1014_01c1[] = "64bit/66MHz PCI ATM 155 UTP";
 static const char pci_device_1014_01e6[] = "Cryptographic Accelerator";
+static const char pci_device_1014_01ef[] = "PowerPC 440GP PCI Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1014_01ef_1734_102b[] = "PCEAS PCI-X Dual Port ESCON Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1014_01ef_1734_10f8[] = "PCEAT PCI-Express Dual Port ESCON Adapter";
+#endif
 static const char pci_device_1014_01ff[] = "10/100 Mbps Ethernet";
 static const char pci_device_1014_0219[] = "Multiport Serial Adapter";
 #ifdef INIT_SUBSYS_INFO
@@ -2998,9 +3086,16 @@ static const char pci_subsys_1014_02bd_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1014_02bd_1014_02c2[] = "PCI-X DDR 3Gb SAS RAID Adapter (572B/571D)";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1014_02bd_1014_0338[] = "PCI-X266 Auxiliary Cache Adapter (575C)";
+#endif
 static const char pci_device_1014_0302[] = "Winnipeg PCI-X Host Bridge";
 static const char pci_device_1014_0308[] = "CalIOC2 PCI-E Root Port";
 static const char pci_device_1014_0314[] = "ZISC 036 Neural accelerator card";
+static const char pci_device_1014_0339[] = "Obsidian-E PCI-E SCSI controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1014_0339_1014_0360[] = "PCI-E Auxiliary Cache Adapter (57B7)";
+#endif
 static const char pci_device_1014_3022[] = "QLA3022 Network Adapter";
 static const char pci_device_1014_4022[] = "QLA3022 Network Adapter";
 static const char pci_device_1014_ffff[] = "MPIC-2 interrupt controller";
@@ -3024,6 +3119,16 @@ static const char pci_vendor_1019[] = "E
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_101a[] = "AT&T GIS (NCR)";
 static const char pci_device_101a_0005[] = "100VG ethernet";
+static const char pci_device_101a_1dc1[] = "Bynet";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_101a_1dc1_101a_0019[] = "BIC2M";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_101a_1dc1_101a_001f[] = "BIC4M";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_101a_1dc1_101a_0ece[] = "BYA4M";
+#endif
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_101b[] = "Vitesse Semiconductor";
@@ -3121,6 +3226,16 @@ static const char pci_device_1022_1100[]
 static const char pci_device_1022_1101[] = "K8 [Athlon64/Opteron] Address Map";
 static const char pci_device_1022_1102[] = "K8 [Athlon64/Opteron] DRAM Controller";
 static const char pci_device_1022_1103[] = "K8 [Athlon64/Opteron] Miscellaneous Control";
+static const char pci_device_1022_1200[] = "Family 10h [Opteron, Athlon64, Sempron] HyperTransport Configuration";
+static const char pci_device_1022_1201[] = "Family 10h [Opteron, Athlon64, Sempron] Address Map";
+static const char pci_device_1022_1202[] = "Family 10h [Opteron, Athlon64, Sempron] DRAM Controller";
+static const char pci_device_1022_1203[] = "Family 10h [Opteron, Athlon64, Sempron] Miscellaneous Control";
+static const char pci_device_1022_1204[] = "Family 10h [Opteron, Athlon64, Sempron] Link Control";
+static const char pci_device_1022_1300[] = "Family 11h HyperTransport Configuration";
+static const char pci_device_1022_1301[] = "Family 11h Address Map";
+static const char pci_device_1022_1302[] = "Family 11h DRAM Controller";
+static const char pci_device_1022_1303[] = "Family 11h Miscellaneous Control";
+static const char pci_device_1022_1304[] = "Family 11h Link Control";
 static const char pci_device_1022_2000[] = "79c970 [PCnet32 LANCE]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1022_2000_1014_2000[] = "NetFinity 10/100 Fast Ethernet";
@@ -3198,7 +3313,7 @@ static const char pci_subsys_1022_2001_1
 static const char pci_device_1022_2003[] = "Am 1771 MBW [Alchemy]";
 static const char pci_device_1022_2020[] = "53c974 [PCscsi]";
 static const char pci_device_1022_2040[] = "79c974";
-static const char pci_device_1022_2080[] = "Conrad Kostecki";
+static const char pci_device_1022_2080[] = "CS5536 [Geode companion] Host Bridge";
 static const char pci_device_1022_2081[] = "Geode LX Video";
 static const char pci_device_1022_2082[] = "Geode LX AES Security Block";
 static const char pci_device_1022_208f[] = "CS5536 GeodeLink PCI South Bridge";
@@ -3500,7 +3615,9 @@ static const char pci_subsys_1028_0015_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1028_0015_1028_1f02[] = "PERC 5/i Adapter RAID Controller";
 #endif
-static const char pci_device_1028_1f03[] = "PERC 5/i";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1028_0015_1028_1f03[] = "PERC 5/i Adapter RAID Controller";
+#endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1029[] = "Siemens Nixdorf IS";
 #endif
@@ -3916,6 +4033,9 @@ static const char pci_subsys_102b_2538_1
 static const char pci_subsys_102b_2538_102b_0907[] = "Millennium P650 PCIe 64MB";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_102b_2538_102b_0947[] = "Parhelia APVe";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_102b_2538_102b_1047[] = "Millennium P650 LP PCIe 128MB";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -4157,6 +4277,9 @@ static const char pci_device_1039_0018[]
 static const char pci_device_1039_0180[] = "RAID bus controller 180 SATA/PATA  [SiS]";
 static const char pci_device_1039_0181[] = "SATA";
 static const char pci_device_1039_0182[] = "182 SATA/RAID Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_0182_1734_1095[] = "D2030-A1";
+#endif
 static const char pci_device_1039_0186[] = "AHCI Controller (0106)";
 static const char pci_device_1039_0190[] = "190 Gigabit Ethernet Adapter";
 static const char pci_device_1039_0191[] = "191 Gigabit Ethernet Adapter";
@@ -4204,6 +4327,9 @@ static const char pci_device_1039_0746[]
 static const char pci_device_1039_0755[] = "755 Host";
 static const char pci_device_1039_0760[] = "760/M760 Host";
 static const char pci_device_1039_0761[] = "761/M761 Host";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_0761_1734_1099[] = "D2030-A1 Motherboard";
+#endif
 static const char pci_device_1039_0900[] = "SiS900 PCI Fast Ethernet";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_0900_1019_0a14[] = "K7S5A motherboard";
@@ -4248,6 +4374,9 @@ static const char pci_subsys_1039_5513_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_5513_1462_7010[] = "MS-6701 motherboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_5513_1734_1095[] = "D2030-A1 Motherboard";
+#endif
 static const char pci_device_1039_5517[] = "5517";
 static const char pci_device_1039_5571[] = "5571";
 static const char pci_device_1039_5581[] = "5581 Pentium Chipset";
@@ -4294,6 +4423,15 @@ static const char pci_device_1039_6330[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_6330_1039_6330[] = "[M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_6330_1043_8113[] = "SiS Real 256E (ASUS P5S800-VM motherboard)";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_6330_1458_d000[] = "SiS661FX GUI 2D/3D Accelerator";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_6330_1734_1099[] = "D2030-A1";
+#endif
 static const char pci_device_1039_6350[] = "770/670 PCIE VGA Display Adapter";
 static const char pci_device_1039_6351[] = "771/671 PCIE VGA Display Adapter";
 static const char pci_device_1039_7001[] = "USB 1.0 Controller";
@@ -4309,6 +4447,9 @@ static const char pci_subsys_1039_7001_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_7001_1462_7010[] = "MS-6701 motherboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_7001_1734_1095[] = "D2030-A1 Motherboard";
+#endif
 static const char pci_device_1039_7002[] = "USB 2.0 Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_7002_1462_7010[] = "MS-6701 motherboard";
@@ -4316,6 +4457,9 @@ static const char pci_subsys_1039_7002_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_7002_1509_7002[] = "Onboard USB Controller";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_7002_1734_1095[] = "D2030-A1";
+#endif
 static const char pci_device_1039_7007[] = "FireWire Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_7007_1462_701d[] = "MS-6701";
@@ -4327,6 +4471,9 @@ static const char pci_subsys_1039_7012_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_7012_15bd_1001[] = "DFI 661FX motherboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_7012_1734_109f[] = "D2030-A1 Motherboard";
+#endif
 static const char pci_device_1039_7013[] = "AC'97 Modem Controller";
 static const char pci_device_1039_7016[] = "SiS7016 PCI Fast Ethernet Adapter";
 #ifdef INIT_SUBSYS_INFO
@@ -4352,6 +4499,9 @@ static const char pci_subsys_1039_7018_1
 static const char pci_subsys_1039_7018_1039_7018[] = "SiS PCI Audio Accelerator";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1039_7018_1043_1453[] = "SiS PCI Audio Accelerator";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1039_7018_1043_800b[] = "SiS PCI Audio Accelerator";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -4498,6 +4648,7 @@ static const char pci_device_103c_12f8[]
 static const char pci_device_103c_12fa[] = "BCM4306 802.11b/g Wireless LAN Controller";
 static const char pci_device_103c_1302[] = "RMP-3 Shared Memory Driver";
 static const char pci_device_103c_1303[] = "RMP-3 (Remote Management Processor)";
+static const char pci_device_103c_1361[] = "BCM4312 802.11a/b/g WLAN Controller";
 static const char pci_device_103c_2910[] = "E2910A PCIBus Exerciser";
 static const char pci_device_103c_2925[] = "E2925A 32 Bit, 33 MHzPCI Exerciser & Analyzer";
 static const char pci_device_103c_3080[] = "Pavilion ze2028ea";
@@ -4508,6 +4659,19 @@ static const char pci_device_103c_3220[]
 static const char pci_subsys_103c_3220_103c_3225[] = "3 Gb/s SAS RAID";
 #endif
 static const char pci_device_103c_3230[] = "Smart Array Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_103c_3230_103c_3223[] = "Smart Array P800";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_103c_3230_103c_3234[] = "P400 SAS Controller";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_103c_3230_103c_3235[] = "P400i SAS Controller";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_103c_3230_103c_3237[] = "E500 SAS Controller";
+#endif
+static const char pci_device_103c_3238[] = "Smart Array E200i (SAS Controller)";
 static const char pci_device_103c_4030[] = "zx2 System Bus Adapter";
 static const char pci_device_103c_4031[] = "zx2 I/O Controller";
 static const char pci_device_103c_4037[] = "PCIe Local Bus Adapter";
@@ -5165,7 +5329,7 @@ static const char pci_subsys_104c_ac56_1
 static const char pci_subsys_104c_ac56_1014_0528[] = "ThinkPad R40e (2684-HVG) Cardbus Controller";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_104c_ac56_17aa_2012[] = "Thinkpad R60e model 0657";
+static const char pci_subsys_104c_ac56_17aa_2012[] = "ThinkPad T60/R60 series";
 #endif
 static const char pci_device_104c_ac60[] = "PCI2040 PCI to DSP Bridge Controller";
 #ifdef INIT_SUBSYS_INFO
@@ -5253,6 +5417,8 @@ static const char pci_vendor_1053[] = "Y
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1054[] = "Hitachi, Ltd";
+static const char pci_device_1054_3011[] = "ColdFusion 3e Chipset Processor to I/O Controller";
+static const char pci_device_1054_3012[] = "ColdFusion 3e Chipset Memory Controller Hub";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1055[] = "Efar Microsystems";
@@ -5275,6 +5441,8 @@ static const char pci_device_1057_0009[]
 static const char pci_device_1057_0012[] = "MPC8548 [PowerQUICC III]";
 static const char pci_device_1057_0100[] = "MC145575 [HFC-PCI]";
 static const char pci_device_1057_0431[] = "KTI829c 100VG";
+static const char pci_device_1057_1073[] = "Nokia N770";
+static const char pci_device_1057_1219[] = "Nokia N800";
 static const char pci_device_1057_1801[] = "DSP56301 Digital Signal Processor";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1057_1801_14fb_0101[] = "Transas Radar Imitator Board [RIM]";
@@ -5463,7 +5631,7 @@ static const char pci_vendor_1059[] = "T
 static const char pci_vendor_105a[] = "Promise Technology, Inc.";
 static const char pci_device_105a_0d30[] = "PDC20265 (FastTrak100 Lite/Ultra100)";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_105a_0d30_1043_8042[] = "ASUS AV7266-E South Bridge Promise RAID";
+static const char pci_subsys_105a_0d30_1043_8042[] = "AV7266-E South Bridge Promise RAID";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_105a_0d30_105a_4d33[] = "Ultra100";
@@ -5568,11 +5736,14 @@ static const char pci_device_105a_6629[]
 static const char pci_device_105a_7275[] = "PDC20277 (SBFastTrak133 Lite)";
 static const char pci_device_105a_8002[] = "SATAII150 SX8";
 static const char pci_device_105a_8350[] = "80333 [SuperTrak EX8350/EX16350], 80331 [SuperTrak EX8300/EX16300]";
-static const char pci_device_105a_8650[] = "IOP1348 [SuperTrak EX4650/EX8650/EX8654]";
+static const char pci_device_105a_8650[] = "81348 [SuperTrak EX4650/EX8650/EX8654/EX4650EL]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_105a_8650_105a_4600[] = "SuperTrak EX4650";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_105a_8650_105a_4610[] = "SuperTrak EX4650EL";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_105a_8650_105a_8601[] = "SuperTrak EX8650";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -5583,6 +5754,7 @@ static const char pci_device_105a_e350[]
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_105b[] = "Foxconn International, Inc.";
+static const char pci_device_105b_0c4d[] = "SiS AC'97 Sound Controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_105c[] = "Wipro Infotech Limited";
@@ -6173,12 +6345,20 @@ static const char pci_device_108e_1103[]
 static const char pci_device_108e_1648[] = "[bge] Gigabit Ethernet";
 static const char pci_device_108e_2bad[] = "GEM";
 static const char pci_device_108e_5000[] = "Simba Advanced PCI Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_108e_5000_108e_5000[] = "Netra AX1105-500";
+#endif
 static const char pci_device_108e_5043[] = "SunPCI Co-processor";
+static const char pci_device_108e_676e[] = "SunPCiIII";
+static const char pci_device_108e_7063[] = "SunPCiII / SunPCiIIpro";
 static const char pci_device_108e_8000[] = "Psycho PCI Bus Module";
 static const char pci_device_108e_8001[] = "Schizo PCI Bus Module";
 static const char pci_device_108e_8002[] = "Schizo+ PCI Bus Module";
 static const char pci_device_108e_a000[] = "Ultra IIi";
 static const char pci_device_108e_a001[] = "Ultra IIe";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_108e_a001_108e_a001[] = "Netra AX1105-500";
+#endif
 static const char pci_device_108e_a801[] = "Tomatillo PCI Bus Module";
 static const char pci_device_108e_abba[] = "Cassini 10/100/1000";
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -6840,16 +7020,26 @@ static const char pci_device_10b5_1146[]
 static const char pci_device_10b5_1147[] = "VScom 020 2 port parallel adaptor";
 static const char pci_device_10b5_2540[] = "IXXAT CAN-Interface PC-I 04/PCI";
 static const char pci_device_10b5_2724[] = "Thales PCSM Security Card";
+static const char pci_device_10b5_6520[] = "PCI6520 PCI-X to PCI-X bridge";
 static const char pci_device_10b5_6540[] = "PCI6540/6466 PCI-PCI bridge (transparent mode)";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b5_6540_1775_1100[] = "CR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_6540_4c53_10e0[] = "PSL09 PrPMC";
 #endif
 static const char pci_device_10b5_6541[] = "PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side)";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b5_6541_1775_1100[] = "CR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_6541_4c53_10e0[] = "PSL09 PrPMC";
 #endif
 static const char pci_device_10b5_6542[] = "PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side)";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b5_6542_1775_1100[] = "CR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_6542_4c53_10e0[] = "PSL09 PrPMC";
 #endif
 static const char pci_device_10b5_8111[] = "PEX 8111 PCI Express-to-PCI Bridge";
@@ -7041,6 +7231,9 @@ static const char pci_subsys_10b5_9054_1
 static const char pci_subsys_10b5_9054_14b4_d100[] = "Dektec DTA-100";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b5_9054_14b4_d114[] = "Dektec DTA-120";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9054_16df_0011[] = "PIKA PrimeNet MM PCI";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -7058,10 +7251,13 @@ static const char pci_subsys_10b5_9054_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9054_16df_0016[] = "PIKA InLine MM";
 #endif
-static const char pci_device_10b5_9056[] = "Francois";
+static const char pci_device_10b5_9056[] = "9056 PCI I/O Accelerator";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b5_9056_10b5_2979[] = "CellinkBlade 11 - CPCI board VoATM AAL1";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b5_9056_14b4_d140[] = "Dektec DTA-140";
+#endif
 static const char pci_device_10b5_9060[] = "9060";
 static const char pci_device_10b5_906d[] = "9060SD";
 #ifdef INIT_SUBSYS_INFO
@@ -7174,6 +7370,9 @@ static const char pci_device_10b7_0910[]
 static const char pci_device_10b7_1006[] = "MINI PCI type 3B Data Fax Modem";
 static const char pci_device_10b7_1007[] = "Mini PCI 56k Winmodem";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b7_1007_10b7_615b[] = "Mini PCI 56K Modem";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b7_1007_10b7_615c[] = "Mini PCI 56K Modem";
 #endif
 static const char pci_device_10b7_1201[] = "3c982-TXM 10/100baseTX Dual Port A [Hydra]";
@@ -7389,6 +7588,11 @@ static const char pci_subsys_10b7_9200_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10b7_9200_1028_00b4[] = "OptiPlex GX110";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b7_9200_1028_00fe[] = "Optiplex GX240";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -7398,7 +7602,7 @@ static const char pci_subsys_10b7_9200_1
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10b7_9200_10b7_1000[] = "3C905C-TX Fast Etherlink for PC Management NIC";
+static const char pci_subsys_10b7_9200_10b7_1000[] = "3C905CX-TX/TX-M Fast Etherlink for PC Management NIC";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10b7_9200_10b7_7000[] = "10/100 Mini PCI Ethernet Adapter";
@@ -8108,8 +8312,8 @@ static const char pci_subsys_10de_0029_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0029_14af_5820[] = "Maxi Gamer Xentor 32";
 #endif
-static const char pci_device_10de_002a[] = "NV5 [Riva TnT2]";
-static const char pci_device_10de_002b[] = "NV5 [Riva TnT2]";
+static const char pci_device_10de_002a[] = "NV5 [Riva TNT2]";
+static const char pci_device_10de_002b[] = "NV5 [Riva TNT2]";
 static const char pci_device_10de_002c[] = "NV6 [Vanta/Vanta LT]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_002c_1043_0200[] = "AGP-V3800 Combat SDRAM";
@@ -8187,7 +8391,7 @@ static const char pci_device_10de_0041[]
 static const char pci_subsys_10de_0041_1043_817b[] = "V9999 Gamer Edition";
 #endif
 static const char pci_device_10de_0042[] = "NV40.2 [GeForce 6800 LE]";
-static const char pci_device_10de_0043[] = "NV40.3";
+static const char pci_device_10de_0043[] = "NV40.3 [GeForce 6800 XE]";
 static const char pci_device_10de_0044[] = "NV40 [GeForce 6800 XT]";
 static const char pci_device_10de_0045[] = "NV40 [GeForce 6800 GT]";
 static const char pci_device_10de_0046[] = "NV40 [GeForce 6800 GT]";
@@ -8201,7 +8405,7 @@ static const char pci_device_10de_004d[]
 static const char pci_device_10de_004e[] = "NV40GL [Quadro FX 4000]";
 static const char pci_device_10de_0050[] = "CK804 ISA Bridge";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_0050_1043_815a[] = "K8N4-E Mainboard";
+static const char pci_subsys_10de_0050_1043_815a[] = "K8N4-E or A8N-E Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0050_1458_0c11[] = "GA-K8N Ultra-9 Mainboard";
@@ -8215,7 +8419,7 @@ static const char pci_subsys_10de_0050_1
 static const char pci_device_10de_0051[] = "CK804 ISA Bridge";
 static const char pci_device_10de_0052[] = "CK804 SMBus";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_0052_1043_815a[] = "K8N4-E Mainboard";
+static const char pci_subsys_10de_0052_1043_815a[] = "K8N4-E or A8N-E Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0052_1458_0c11[] = "GA-K8N Ultra-9 Mainboard";
@@ -8228,7 +8432,7 @@ static const char pci_subsys_10de_0052_1
 #endif
 static const char pci_device_10de_0053[] = "CK804 IDE";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_0053_1043_815a[] = "K8N4-E Mainboard";
+static const char pci_subsys_10de_0053_1043_815a[] = "K8N4-E or A8N-E Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0053_1458_5002[] = "GA-K8N Ultra-9 Mainboard";
@@ -8241,6 +8445,9 @@ static const char pci_subsys_10de_0053_1
 #endif
 static const char pci_device_10de_0054[] = "CK804 Serial ATA Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0054_1043_815a[] = "A8N-E Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0054_1458_b003[] = "GA-K8N Ultra-9 Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8251,7 +8458,7 @@ static const char pci_subsys_10de_0054_1
 #endif
 static const char pci_device_10de_0055[] = "CK804 Serial ATA Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_0055_1043_815a[] = "K8N4-E Mainboard";
+static const char pci_subsys_10de_0055_1043_815a[] = "K8N4-E or A8N-E Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0055_1458_b003[] = "GA-K8N Ultra-9 Mainboard";
@@ -8262,7 +8469,7 @@ static const char pci_subsys_10de_0055_1
 static const char pci_device_10de_0056[] = "CK804 Ethernet Controller";
 static const char pci_device_10de_0057[] = "CK804 Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_0057_1043_8141[] = "K8N4-E Mainboard";
+static const char pci_subsys_10de_0057_1043_8141[] = "K8N4-E or A8N-E Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0057_1458_e000[] = "GA-K8N Ultra-9 Mainboard";
@@ -8276,14 +8483,14 @@ static const char pci_subsys_10de_0057_1
 static const char pci_device_10de_0058[] = "CK804 AC'97 Modem";
 static const char pci_device_10de_0059[] = "CK804 AC'97 Audio Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_0059_1043_812a[] = "K8N4-E Mainboard";
+static const char pci_subsys_10de_0059_1043_812a[] = "K8N4-E or A8N-E Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0059_147b_1c1a[] = "KN8-Ultra Mainboard";
 #endif
 static const char pci_device_10de_005a[] = "CK804 USB Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_005a_1043_815a[] = "K8N4-E Mainboard";
+static const char pci_subsys_10de_005a_1043_815a[] = "K8N4-E or A8N-E Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_005a_1458_5004[] = "GA-K8N Ultra-9 Mainboard";
@@ -8296,7 +8503,7 @@ static const char pci_subsys_10de_005a_1
 #endif
 static const char pci_device_10de_005b[] = "CK804 USB Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_10de_005b_1043_815a[] = "K8N4-E Mainboard";
+static const char pci_subsys_10de_005b_1043_815a[] = "K8N4-E or A8N-E Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_005b_1458_5004[] = "GA-K8N Ultra-9 Mainboard";
@@ -8311,6 +8518,9 @@ static const char pci_device_10de_005c[]
 static const char pci_device_10de_005d[] = "CK804 PCIE Bridge";
 static const char pci_device_10de_005e[] = "CK804 Memory Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_005e_1043_815a[] = "A8N-E Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_005e_10f1_2891[] = "Thunder K8SRE Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8402,9 +8612,10 @@ static const char pci_device_10de_0090[]
 static const char pci_device_10de_0091[] = "G70 [GeForce 7800 GTX]";
 static const char pci_device_10de_0092[] = "G70 [GeForce 7800 GT]";
 static const char pci_device_10de_0093[] = "G70 [GeForce 7800 GS]";
-static const char pci_device_10de_0098[] = "GeForce Go 7800";
-static const char pci_device_10de_0099[] = "GE Force Go 7800 GTX";
-static const char pci_device_10de_009d[] = "G70GL [Quadro FX4500]";
+static const char pci_device_10de_0095[] = "GeForce 7800 SLI";
+static const char pci_device_10de_0098[] = "G70 [GeForce Go 7800]";
+static const char pci_device_10de_0099[] = "G70 [GeForce Go 7800 GTX]";
+static const char pci_device_10de_009d[] = "G70GL [Quadro FX 4500]";
 static const char pci_device_10de_00a0[] = "NV5 [Aladdin TNT2]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00a0_14af_5810[] = "Maxi Gamer Xentor";
@@ -8412,7 +8623,7 @@ static const char pci_subsys_10de_00a0_1
 static const char pci_device_10de_00c0[] = "NV41 [GeForce 6800 GS]";
 static const char pci_device_10de_00c1[] = "NV41.1 [GeForce 6800]";
 static const char pci_device_10de_00c2[] = "NV41.2 [GeForce 6800 LE]";
-static const char pci_device_10de_00c3[] = "NV42 [Geforce 6800 XT]";
+static const char pci_device_10de_00c3[] = "NV42 [GeForce 6800 XT]";
 static const char pci_device_10de_00c8[] = "NV41.8 [GeForce Go 6800]";
 static const char pci_device_10de_00c9[] = "NV41.9 [GeForce Go 6800 Ultra]";
 static const char pci_device_10de_00cc[] = "NV41 [Quadro FX Go1400]";
@@ -8435,6 +8646,9 @@ static const char pci_device_10de_00da[]
 static const char pci_device_10de_00dd[] = "nForce3 PCI Bridge";
 static const char pci_device_10de_00df[] = "CK8S Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00df_1043_80a7[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00df_105b_0c43[] = "Winfast NF3250K8AA";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8442,6 +8656,9 @@ static const char pci_subsys_10de_00df_1
 #endif
 static const char pci_device_10de_00e0[] = "nForce3 250Gb LPC Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00e0_1043_813f[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00e0_10de_0c11[] = "Winfast NF3250K8AA";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8452,6 +8669,9 @@ static const char pci_subsys_10de_00e0_1
 #endif
 static const char pci_device_10de_00e1[] = "nForce3 250Gb Host Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00e1_1043_813f[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00e1_1462_7030[] = "K8N Neo-FSR v2.0";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8460,6 +8680,9 @@ static const char pci_subsys_10de_00e1_1
 static const char pci_device_10de_00e2[] = "nForce3 250Gb AGP Host to PCI Bridge";
 static const char pci_device_10de_00e3[] = "CK8S Serial ATA Controller (v2.5)";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00e3_1043_813f[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00e3_105b_0c43[] = "Winfast NF3250K8AA";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8467,6 +8690,9 @@ static const char pci_subsys_10de_00e3_1
 #endif
 static const char pci_device_10de_00e4[] = "nForce 250Gb PCI System Management";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00e4_1043_813f[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00e4_105b_0c43[] = "Winfast NF3250K8AA";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8477,6 +8703,9 @@ static const char pci_subsys_10de_00e4_1
 #endif
 static const char pci_device_10de_00e5[] = "CK8S Parallel ATA Controller (v2.5)";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00e5_1043_813f[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00e5_105b_0c43[] = "Winfast NF3250K8AA";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8488,6 +8717,9 @@ static const char pci_subsys_10de_00e5_1
 static const char pci_device_10de_00e6[] = "CK8S Ethernet Controller";
 static const char pci_device_10de_00e7[] = "CK8S USB Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00e7_1043_813f[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00e7_105b_0c43[] = "Winfast NF3250K8AA";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8498,6 +8730,9 @@ static const char pci_subsys_10de_00e7_1
 #endif
 static const char pci_device_10de_00e8[] = "nForce3 EHCI USB 2.0 Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00e8_1043_813f[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00e8_105b_0c43[] = "Winfast NF3250K8AA";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8508,41 +8743,50 @@ static const char pci_subsys_10de_00e8_1
 #endif
 static const char pci_device_10de_00ea[] = "nForce3 250Gb AC'97 Audio Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00ea_1043_819d[] = "K8N-E";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00ea_105b_0c43[] = "Winfast NF3250K8AA";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00ea_1462_b010[] = "K8N Neo-FSR v2.0";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00ea_147b_1c0b[] = "NF8 Mainboard";
 #endif
 static const char pci_device_10de_00ed[] = "nForce3 250Gb PCI-to-PCI Bridge";
 static const char pci_device_10de_00ee[] = "CK8S Serial ATA Controller (v2.5)";
-static const char pci_device_10de_00f0[] = "NV40 [GeForce 6800/GeForce 6800 Ultra]";
-static const char pci_device_10de_00f1[] = "NV43 [GeForce 6600/GeForce 6600 GT]";
+static const char pci_device_10de_00f0[] = "NV40 [GeForce 6800 Ultra]";
+static const char pci_device_10de_00f1[] = "NV43 [GeForce 6600 GT]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00f1_1043_81a6[] = "N6600GT TD 128M AGP";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_00f1_1458_3150[] = "GV-N66T128VP";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00f1_1682_2119[] = "GeForce 6600 GT AGP 128MB DDR3 DUAL DVI TV";
 #endif
-static const char pci_device_10de_00f2[] = "NV43 [GeForce 6600/GeForce 6600 GT]";
+static const char pci_device_10de_00f2[] = "NV43 [GeForce 6600]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00f2_1682_211c[] = "GeForce 6600 256MB DDR DUAL DVI TV";
 #endif
 static const char pci_device_10de_00f3[] = "NV43 [GeForce 6200]";
 static const char pci_device_10de_00f4[] = "NV43 [GeForce 6600 LE]";
 static const char pci_device_10de_00f5[] = "G70 [GeForce 7800 GS]";
-static const char pci_device_10de_00f6[] = "NV43 [GeForce 6600 GS]";
+static const char pci_device_10de_00f6[] = "NV43 [GeForce 6800 GS]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00f6_1682_217e[] = "XFX GeForce 6800 XTreme 256MB DDR3 AGP";
 #endif
 static const char pci_device_10de_00f8[] = "NV45GL [Quadro FX 3400/4400]";
-static const char pci_device_10de_00f9[] = "NV40 [GeForce 6800 Ultra/GeForce 6800 GT]";
+static const char pci_device_10de_00f9[] = "NV45 [GeForce 6800 GTO]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_00f9_1682_2120[] = "GEFORCE 6800 GT PCI-E";
 #endif
 static const char pci_device_10de_00fa[] = "NV36 [GeForce PCX 5750]";
 static const char pci_device_10de_00fb[] = "NV35 [GeForce PCX 5900]";
 static const char pci_device_10de_00fc[] = "NV37GL [Quadro FX 330/GeForce PCX 5300]";
-static const char pci_device_10de_00fd[] = "NV37GL [Quadro FX 330/Quadro NVS280]";
+static const char pci_device_10de_00fd[] = "NV37GL [Quadro PCI-E Series]";
 static const char pci_device_10de_00fe[] = "NV38GL [Quadro FX 1300]";
 static const char pci_device_10de_00ff[] = "NV18 [GeForce PCX 4300]";
 static const char pci_device_10de_0100[] = "NV10 [GeForce 256 SDR]";
@@ -8616,6 +8860,9 @@ static const char pci_device_10de_0110[]
 static const char pci_subsys_10de_0110_1043_4015[] = "AGP-V7100 Pro";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0110_1043_4021[] = "V7100 Deluxe Combo";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0110_1043_4031[] = "V7100 Pro with TV output";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -8651,15 +8898,19 @@ static const char pci_subsys_10de_0110_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0110_14af_7103[] = "3D Prophet II MX Dual-Display";
 #endif
-static const char pci_device_10de_0111[] = "NV11DDR [GeForce2 MX 100 DDR/200 DDR]";
+static const char pci_device_10de_0111[] = "NV11DDR [GeForce2 MX200]";
 static const char pci_device_10de_0112[] = "NV11 [GeForce2 Go]";
 static const char pci_device_10de_0113[] = "NV11GL [Quadro2 MXR/EX/Go]";
 static const char pci_device_10de_0140[] = "NV43 [GeForce 6600 GT]";
 static const char pci_device_10de_0141[] = "NV43 [GeForce 6600]";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0141_1043_81b0[] = "EN6600 Silencer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0141_1458_3124[] = "GV-NX66128DP Turbo Force Edition";
 #endif
-static const char pci_device_10de_0142[] = "NV43 [GeForce 6600 PCIe]";
+static const char pci_device_10de_0142[] = "NV43 [GeForce 6600 LE]";
+static const char pci_device_10de_0143[] = "NV43 [GeForce 6600 VE]";
 static const char pci_device_10de_0144[] = "NV43 [GeForce Go 6600]";
 static const char pci_device_10de_0145[] = "NV43 [GeForce 6610 XL]";
 static const char pci_device_10de_0146[] = "NV43 [Geforce Go 6600TE/6200TE]";
@@ -8667,7 +8918,7 @@ static const char pci_device_10de_0147[]
 static const char pci_device_10de_0148[] = "NV43 [GeForce Go 6600]";
 static const char pci_device_10de_0149[] = "NV43 [GeForce Go 6600 GT]";
 static const char pci_device_10de_014a[] = "Quadro NVS 440";
-static const char pci_device_10de_014c[] = "Quadro FX 550";
+static const char pci_device_10de_014c[] = "Quadro FX 540 MXM";
 static const char pci_device_10de_014d[] = "NV18GL [Quadro FX 550]";
 static const char pci_device_10de_014e[] = "NV43GL [Quadro FX 540]";
 static const char pci_device_10de_014f[] = "NV43 [GeForce 6200]";
@@ -8707,14 +8958,15 @@ static const char pci_subsys_10de_0152_1
 static const char pci_device_10de_0153[] = "NV15GL [Quadro2 Pro]";
 static const char pci_device_10de_0160[] = "GeForce 6500";
 static const char pci_device_10de_0161[] = "NV44 [GeForce 6200 TurboCache(TM)]";
-static const char pci_device_10de_0162[] = "NV44 [GeForce 6200 SE TurboCache (TM)]";
+static const char pci_device_10de_0162[] = "NV44 [GeForce 6200SE TurboCache (TM)]";
 static const char pci_device_10de_0163[] = "NV44 [GeForce 6200 LE]";
 static const char pci_device_10de_0164[] = "NV44 [GeForce Go 6200]";
 static const char pci_device_10de_0165[] = "NV44 [Quadro NVS 285]";
 static const char pci_device_10de_0166[] = "NV43 [GeForce Go 6400]";
-static const char pci_device_10de_0167[] = "GeForce Go 6200 TurboCache";
-static const char pci_device_10de_0168[] = "NV43 [GeForce Go 6200 TurboCache]";
+static const char pci_device_10de_0167[] = "NV43 [GeForce Go 6200/6400]";
+static const char pci_device_10de_0168[] = "NV43 [GeForce Go 6200/6400]";
 static const char pci_device_10de_0169[] = "GeForce 6250";
+static const char pci_device_10de_016a[] = "GeForce 7100 GS";
 static const char pci_device_10de_0170[] = "NV17 [GeForce4 MX 460]";
 static const char pci_device_10de_0171[] = "NV17 [GeForce4 MX 440]";
 #ifdef INIT_SUBSYS_INFO
@@ -8748,11 +9000,11 @@ static const char pci_subsys_10de_0176_4
 #endif
 static const char pci_device_10de_0177[] = "NV17 [GeForce4 460 Go]";
 static const char pci_device_10de_0178[] = "NV17GL [Quadro4 550 XGL]";
-static const char pci_device_10de_0179[] = "NV17 [GeForce4 420 Go 32M]";
+static const char pci_device_10de_0179[] = "NV17 [GeForce4 440 Go 64M]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0179_10de_0179[] = "GeForce4 MX (Mac)";
 #endif
-static const char pci_device_10de_017a[] = "NV17GL [Quadro4 200/400 NVS]";
+static const char pci_device_10de_017a[] = "NV17GL [Quadro NVS]";
 static const char pci_device_10de_017b[] = "NV17GL [Quadro4 550 XGL]";
 static const char pci_device_10de_017c[] = "NV17GL [Quadro4 500 GoGL]";
 static const char pci_device_10de_017d[] = "NV17 [GeForce4 410 Go 16M]";
@@ -8777,14 +9029,20 @@ static const char pci_subsys_10de_0181_1
 #endif
 static const char pci_device_10de_0182[] = "NV18 [GeForce4 MX 440SE AGP 8x]";
 static const char pci_device_10de_0183[] = "NV18 [GeForce4 MX 420 AGP 8x]";
-static const char pci_device_10de_0185[] = "NV18 [GeForce4 MX 4000 AGP 8x]";
+static const char pci_device_10de_0184[] = "NV18 [GeForce4 MX]";
+static const char pci_device_10de_0185[] = "NV18 [GeForce4 MX 4000]";
 static const char pci_device_10de_0186[] = "NV18M [GeForce4 448 Go]";
 static const char pci_device_10de_0187[] = "NV18M [GeForce4 488 Go]";
 static const char pci_device_10de_0188[] = "NV18GL [Quadro4 580 XGL]";
-static const char pci_device_10de_018a[] = "NV18GL [Quadro4 NVS AGP 8x]";
+static const char pci_device_10de_018a[] = "NV18GL [Quadro NVS with AGP8X]";
 static const char pci_device_10de_018b[] = "NV18GL [Quadro4 380 XGL]";
-static const char pci_device_10de_018c[] = "Quadro NVS 50 PCI";
+static const char pci_device_10de_018c[] = "NV18GL [Quadro NVS 50 PCI]";
 static const char pci_device_10de_018d[] = "NV18M [GeForce4 448 Go]";
+static const char pci_device_10de_0191[] = "G80 [GeForce 8800 GTX]";
+static const char pci_device_10de_0193[] = "G80 [GeForce 8800 GTS]";
+static const char pci_device_10de_0194[] = "GeForce 8800 Ultra";
+static const char pci_device_10de_019d[] = "G80 [Quadro FX 5600]";
+static const char pci_device_10de_019e[] = "G80 [Quadro FX 4600]";
 static const char pci_device_10de_01a0[] = "NVCrush11 [GeForce2 MX Integrated Graphics]";
 static const char pci_device_10de_01a4[] = "nForce CPU bridge";
 static const char pci_device_10de_01ab[] = "nForce 420 Memory Controller (DDR)";
@@ -8800,19 +9058,22 @@ static const char pci_device_10de_01bc[]
 static const char pci_device_10de_01c1[] = "nForce AC'97 Modem Controller";
 static const char pci_device_10de_01c2[] = "nForce USB Controller";
 static const char pci_device_10de_01c3[] = "nForce Ethernet Controller";
-static const char pci_device_10de_01d1[] = "GeForce 7300 LE";
+static const char pci_device_10de_01d1[] = "G72 [GeForce 7300 LE]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_01d1_1462_0345[] = "7300LE PCI Express Graphics Adapter";
 #endif
+static const char pci_device_10de_01d3[] = "G72 [GeForce 7300 SE]";
 static const char pci_device_10de_01d6[] = "GeForce Go 7200";
-static const char pci_device_10de_01d7[] = "Quadro NVS 110M / GeForce Go 7300";
-static const char pci_device_10de_01d8[] = "GeForce Go 7400";
-static const char pci_device_10de_01da[] = "Quadro NVS 110M";
-static const char pci_device_10de_01de[] = "Quadro FX 350";
+static const char pci_device_10de_01d7[] = "G72M [Quadro NVS 110M/GeForce Go 7300]";
+static const char pci_device_10de_01d8[] = "G72M [GeForce Go 7400]";
+static const char pci_device_10de_01da[] = "G72M [Quadro NVS 110M]";
+static const char pci_device_10de_01dc[] = "G72GL [Quadro FX 350M]";
+static const char pci_device_10de_01dd[] = "G72 [GeForce 7500 LE]";
+static const char pci_device_10de_01de[] = "G72GL [Quadro FX 350]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_01de_10de_01dc[] = "Quadro  FX Go350M";
 #endif
-static const char pci_device_10de_01df[] = "GeForce 7300 GS";
+static const char pci_device_10de_01df[] = "G71 [GeForce 7300 GS]";
 static const char pci_device_10de_01e0[] = "nForce2 AGP (different version?)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_01e0_147b_1c09[] = "NV7 Motherboard";
@@ -8867,17 +9128,30 @@ static const char pci_device_10de_0212[]
 static const char pci_device_10de_0215[] = "NV40 [GeForce 6800 GT]";
 static const char pci_device_10de_0218[] = "NV40 [GeForce 6800 XT]";
 static const char pci_device_10de_0221[] = "NV44A [GeForce 6200]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0221_3842_a341[] = "256A8N341DX";
+#endif
+static const char pci_device_10de_0222[] = "GeForce 6200 A-LE";
 static const char pci_device_10de_0240[] = "C51PV [GeForce 6150]";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0240_1043_81cd[] = "A8N-VM CSM";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0240_1462_7207[] = "K8NGM2 series";
 #endif
-static const char pci_device_10de_0241[] = "C51 PCI Express Bridge";
+static const char pci_device_10de_0241[] = "C51 [GeForce 6150 LE]";
 static const char pci_device_10de_0242[] = "C51G [GeForce 6100]";
 static const char pci_device_10de_0243[] = "C51 PCI Express Bridge";
-static const char pci_device_10de_0244[] = "C51 PCI Express Bridge";
-static const char pci_device_10de_0245[] = "C51 PCI Express Bridge";
+static const char pci_device_10de_0244[] = "C51 [Geforce 6150 Go]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0244_10de_0244[] = "C51 [Geforce 6150 Go]";
+#endif
+static const char pci_device_10de_0245[] = "C51 [Quadro NVS 210S/GeForce 6150LE]";
 static const char pci_device_10de_0246[] = "C51 PCI Express Bridge";
-static const char pci_device_10de_0247[] = "C51 PCI Express Bridge";
+static const char pci_device_10de_0247[] = "MCP51 PCI-X GeForce Go 6100";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0247_1043_1382[] = "MCP51 PCI-X GeForce Go 6100";
+#endif
 static const char pci_device_10de_0248[] = "C51 PCI Express Bridge";
 static const char pci_device_10de_0249[] = "C51 PCI Express Bridge";
 static const char pci_device_10de_024a[] = "C51 PCI Express Bridge";
@@ -8904,6 +9178,12 @@ static const char pci_device_10de_0259[]
 static const char pci_device_10de_025b[] = "NV25GL [Quadro4 700 XGL]";
 static const char pci_device_10de_0260[] = "MCP51 LPC Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0260_1043_81bc[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0260_1458_5001[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0260_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0261[] = "MCP51 LPC Bridge";
@@ -8911,52 +9191,94 @@ static const char pci_device_10de_0262[]
 static const char pci_device_10de_0263[] = "MCP51 LPC Bridge";
 static const char pci_device_10de_0264[] = "MCP51 SMBus";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0264_1043_81bc[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0264_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0265[] = "MCP51 IDE";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0265_1043_81bc[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0265_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0266[] = "MCP51 Serial ATA Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0266_1043_81bc[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0266_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0267[] = "MCP51 Serial ATA Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0267_1043_81bc[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0267_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0268[] = "MCP51 Ethernet Controller";
 static const char pci_device_10de_0269[] = "MCP51 Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0269_1043_8141[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0269_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_026a[] = "MCP51 MCI";
 static const char pci_device_10de_026b[] = "MCP51 AC97 Audio Controller";
 static const char pci_device_10de_026c[] = "MCP51 High Definition Audio";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_026c_10de_cb84[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_026c_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_026d[] = "MCP51 USB Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_026d_1043_81bc[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_026d_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_026e[] = "MCP51 USB Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_026e_1043_81bc[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_026e_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_026f[] = "MCP51 PCI Bridge";
 static const char pci_device_10de_0270[] = "MCP51 Host Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0270_1043_81bc[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0270_1458_5001[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0270_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0271[] = "MCP51 PMU";
 static const char pci_device_10de_0272[] = "MCP51 Memory Controller 0";
 static const char pci_device_10de_027e[] = "C51 Memory Controller 2";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_027e_1043_81cd[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_027e_1458_5000[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_027e_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_027f[] = "C51 Memory Controller 3";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_027f_1043_81cd[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_027f_1458_5000[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_027f_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0280[] = "NV28 [GeForce4 Ti 4800]";
@@ -8965,25 +9287,43 @@ static const char pci_device_10de_0282[]
 static const char pci_device_10de_0286[] = "NV28 [GeForce4 Ti 4200 Go AGP 8x]";
 static const char pci_device_10de_0288[] = "NV28GL [Quadro4 980 XGL]";
 static const char pci_device_10de_0289[] = "NV28GL [Quadro4 780 XGL]";
-static const char pci_device_10de_028c[] = "NV28GLM [Quadro4 700 GoGL]";
-static const char pci_device_10de_0290[] = "GeForce 7900 GTX";
-static const char pci_device_10de_0291[] = "GeForce 7900 GT";
-static const char pci_device_10de_0292[] = "GeForce 7900 GS";
+static const char pci_device_10de_028c[] = "NV28GLM [Quadro4 Go700]";
+static const char pci_device_10de_0290[] = "G71 [GeForce 7900 GTX]";
+static const char pci_device_10de_0291[] = "G71 [GeForce 7900 GT/GTO]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0291_10de_042b[] = "NX7900GTO-T2D512E [7900 GTO]";
+#endif
+static const char pci_device_10de_0292[] = "G71 [GeForce 7900 GS]";
+static const char pci_device_10de_0293[] = "G71 [GeForce 7900 GX2]";
+static const char pci_device_10de_0294[] = "G71 [GeForce 7950 GX2]";
+static const char pci_device_10de_0295[] = "G71 [GeForce 7950 GT]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0295_107d_2a68[] = "WinFast PX7950GT TDH";
+#endif
+static const char pci_device_10de_0297[] = "GeForce Go 7950 GTX";
 static const char pci_device_10de_0298[] = "GeForce Go 7900 GS";
 static const char pci_device_10de_0299[] = "GeForce Go 7900 GTX";
 static const char pci_device_10de_029a[] = "G71 [Quadro FX 2500M]";
 static const char pci_device_10de_029b[] = "G71 [Quadro FX 1500M]";
-static const char pci_device_10de_029c[] = "Quadro FX 5500";
-static const char pci_device_10de_029d[] = "Quadro FX 3500";
-static const char pci_device_10de_029e[] = "Quadro FX 1500";
-static const char pci_device_10de_029f[] = "Quadro FX 4500 X2";
+static const char pci_device_10de_029c[] = "G71 [Quadro FX 5500]";
+static const char pci_device_10de_029d[] = "G71GL [Quadro FX 3500]";
+static const char pci_device_10de_029e[] = "G71 [Quadro FX 1500]";
+static const char pci_device_10de_029f[] = "G70 [Quadro FX 4500 X2]";
 static const char pci_device_10de_02a0[] = "NV2A [XGPU]";
-static const char pci_device_10de_02e1[] = "GeForce 7600 GS";
+static const char pci_device_10de_02e0[] = "GeForce 7600 GT";
+static const char pci_device_10de_02e1[] = "G73 [GeForce 7600 GS]";
+static const char pci_device_10de_02e2[] = "GeForce 7300 GT";
 static const char pci_device_10de_02f0[] = "C51 Host Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f0_1043_81cd[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02f0_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_02f1[] = "C51 Host Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f1_1458_5000[] = "GA-M55plus-S3G";
+#endif
 static const char pci_device_10de_02f2[] = "C51 Host Bridge";
 static const char pci_device_10de_02f3[] = "C51 Host Bridge";
 static const char pci_device_10de_02f4[] = "C51 Host Bridge";
@@ -8992,14 +9332,32 @@ static const char pci_device_10de_02f6[]
 static const char pci_device_10de_02f7[] = "C51 Host Bridge";
 static const char pci_device_10de_02f8[] = "C51 Memory Controller 5";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f8_1043_81cd[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f8_1458_5000[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02f8_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_02f9[] = "C51 Memory Controller 4";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f9_1043_81cd[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02f9_1458_5000[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02f9_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_02fa[] = "C51 Memory Controller 0";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02fa_1043_81cd[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02fa_1458_5000[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02fa_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_02fb[] = "C51 PCI Express Bridge";
@@ -9007,10 +9365,22 @@ static const char pci_device_10de_02fc[]
 static const char pci_device_10de_02fd[] = "C51 PCI Express Bridge";
 static const char pci_device_10de_02fe[] = "C51 Memory Controller 1";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02fe_1043_81cd[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02fe_1458_5000[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02fe_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_02ff[] = "C51 Host Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02ff_1043_81cd[] = "A8N-VM CSM Mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_02ff_1458_5000[] = "GA-M55plus-S3G";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_02ff_1462_7207[] = "K8NGM2 series";
 #endif
 static const char pci_device_10de_0300[] = "NV30 [GeForce FX]";
@@ -9029,7 +9399,7 @@ static const char pci_device_10de_0316[]
 static const char pci_device_10de_0317[] = "NV31M Pro";
 static const char pci_device_10de_031a[] = "NV31M [GeForce FX Go5600]";
 static const char pci_device_10de_031b[] = "NV31M [GeForce FX Go5650]";
-static const char pci_device_10de_031c[] = "NVIDIA Quadro FX Go700";
+static const char pci_device_10de_031c[] = "Quadro FX Go700";
 static const char pci_device_10de_031d[] = "NV31GLM";
 static const char pci_device_10de_031e[] = "NV31GLM Pro";
 static const char pci_device_10de_031f[] = "NV31GLM Pro";
@@ -9037,13 +9407,16 @@ static const char pci_device_10de_0320[]
 static const char pci_device_10de_0321[] = "NV34 [GeForce FX 5200 Ultra]";
 static const char pci_device_10de_0322[] = "NV34 [GeForce FX 5200]";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0322_1043_02fb[] = "V9250 Magic";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0322_1462_9171[] = "MS-8917 (FX5200-T128)";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0322_1462_9360[] = "MS-8936 (FX5200-T128)";
 #endif
 static const char pci_device_10de_0323[] = "NV34 [GeForce FX 5200LE]";
-static const char pci_device_10de_0324[] = "NV34M [GeForce FX Go5200]";
+static const char pci_device_10de_0324[] = "NV34M [GeForce FX Go5200 64M]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0324_1028_0196[] = "Inspiron 5160";
 #endif
@@ -9071,6 +9444,9 @@ static const char pci_device_10de_0334[]
 static const char pci_device_10de_0338[] = "NV35GL [Quadro FX 3000]";
 static const char pci_device_10de_033f[] = "NV35GL [Quadro FX 700]";
 static const char pci_device_10de_0341[] = "NV36.1 [GeForce FX 5700 Ultra]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0341_1462_9380[] = "MS-8938 (FX5700U-TD128)";
+#endif
 static const char pci_device_10de_0342[] = "NV36.2 [GeForce FX 5700]";
 static const char pci_device_10de_0343[] = "NV36 [GeForce FX 5700LE]";
 static const char pci_device_10de_0344[] = "NV36.4 [GeForce FX 5700VE]";
@@ -9110,16 +9486,31 @@ static const char pci_device_10de_0376[]
 static const char pci_device_10de_0377[] = "MCP55 PCI Express bridge";
 static const char pci_device_10de_0378[] = "MCP55 PCI Express bridge";
 static const char pci_device_10de_037a[] = "MCP55 Memory Controller";
+static const char pci_device_10de_037c[] = "G70 [GeForce 7800 GS] (rev a2)";
 static const char pci_device_10de_037e[] = "MCP55 SATA Controller";
 static const char pci_device_10de_037f[] = "MCP55 SATA Controller";
+static const char pci_device_10de_0390[] = "GeForce 7650 GS";
 static const char pci_device_10de_0391[] = "G70 [GeForce 7600 GT]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0391_1458_3427[] = "GV-NX76T128D-RH";
+#endif
 static const char pci_device_10de_0392[] = "G70 [GeForce 7600 GS]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10de_0392_1462_0622[] = "NX7600GS-T2D256EH";
 #endif
 static const char pci_device_10de_0393[] = "G70 [GeForce 7300 GT]";
+static const char pci_device_10de_0394[] = "G70 [GeForce 7600 LE]";
+static const char pci_device_10de_0395[] = "G70 [GeForce 7300 GT]";
+static const char pci_device_10de_0397[] = "GeForce Go 7700";
 static const char pci_device_10de_0398[] = "G70 [GeForce Go 7600]";
-static const char pci_device_10de_039e[] = "Quadro FX 560";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10de_0398_1025_006c[] = "Acer 9814 WKMI";
+#endif
+static const char pci_device_10de_0399[] = "GeForce Go 7600 GT";
+static const char pci_device_10de_039a[] = "Quadro NVS 300M";
+static const char pci_device_10de_039b[] = "GeForce Go 7900 SE";
+static const char pci_device_10de_039c[] = "Quadro FX 550M";
+static const char pci_device_10de_039e[] = "G73GL [Quadro FX 560]";
 static const char pci_device_10de_03a0[] = "C55 Host Bridge";
 static const char pci_device_10de_03a1[] = "C55 Host Bridge";
 static const char pci_device_10de_03a2[] = "C55 Host Bridge";
@@ -9175,6 +9566,20 @@ static const char pci_device_10de_03f4[]
 static const char pci_device_10de_03f5[] = "MCP61 Memory Controller";
 static const char pci_device_10de_03f6[] = "MCP61 SATA Controller";
 static const char pci_device_10de_03f7[] = "MCP61 SATA Controller";
+static const char pci_device_10de_0400[] = "GeForce 8600 GTS";
+static const char pci_device_10de_0402[] = "GeForce 8600 GT";
+static const char pci_device_10de_0407[] = "GeForce 8600M GT";
+static const char pci_device_10de_040b[] = "Quadro NVS 320M";
+static const char pci_device_10de_0421[] = "GeForce 8500 GT";
+static const char pci_device_10de_0422[] = "GeForce 8400 GS";
+static const char pci_device_10de_0423[] = "GeForce 8300 GS";
+static const char pci_device_10de_0425[] = "GeForce 8600M GS";
+static const char pci_device_10de_0426[] = "GeForce 8400M GT";
+static const char pci_device_10de_0427[] = "GeForce 8400M GS";
+static const char pci_device_10de_0428[] = "GeForce 8400M G";
+static const char pci_device_10de_0429[] = "Quadro NVS 140M";
+static const char pci_device_10de_042a[] = "Quadro NVS 130M";
+static const char pci_device_10de_042b[] = "Quadro NVS 135M";
 static const char pci_device_10de_0440[] = "MCP65 LPC Bridge";
 static const char pci_device_10de_0441[] = "MCP65 LPC Bridge";
 static const char pci_device_10de_0442[] = "MCP65 LPC Bridge";
@@ -9206,9 +9611,14 @@ static const char pci_device_10de_045c[]
 static const char pci_device_10de_045d[] = "MCP65 SATA Controller";
 static const char pci_device_10de_045e[] = "MCP65 SATA Controller";
 static const char pci_device_10de_045f[] = "MCP65 SATA Controller";
+static const char pci_device_10de_055c[] = "MCP67 High Definition Audio";
+static const char pci_device_10de_055d[] = "MCP67 High Definition Audio";
+static const char pci_device_10de_c615[] = "G70 [GeForce 7600 GT]";
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_10df[] = "Emulex Corporation";
 static const char pci_device_10df_1ae5[] = "LP6000 Fibre Channel Host Adapter";
+static const char pci_device_10df_f011[] = "Saturn: LightPulse Fibre Channel Host Adapter";
+static const char pci_device_10df_f015[] = "Saturn: LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_f085[] = "LP850 Fibre Channel Host Adapter";
 static const char pci_device_10df_f095[] = "LP952 Fibre Channel Host Adapter";
 static const char pci_device_10df_f098[] = "LP982 Fibre Channel Host Adapter";
@@ -9220,6 +9630,7 @@ static const char pci_device_10df_f0d5[]
 static const char pci_device_10df_f0e1[] = "Zephyr LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_f0e5[] = "Zephyr LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_f0f5[] = "Neptune LightPulse Fibre Channel Host Adapter";
+static const char pci_device_10df_f100[] = "Saturn-X: LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_f700[] = "LP7000 Fibre Channel Host Adapter";
 static const char pci_device_10df_f701[] = "LP7000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)";
 static const char pci_device_10df_f800[] = "LP8000 Fibre Channel Host Adapter";
@@ -9234,6 +9645,7 @@ static const char pci_device_10df_fb00[]
 static const char pci_device_10df_fc00[] = "Thor-X LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_fc10[] = "Helios-X LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_fc20[] = "Zephyr-X LightPulse Fibre Channel Host Adapter";
+static const char pci_device_10df_fc40[] = "Saturn-X: LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_fd00[] = "Helios-X LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_fe00[] = "Zephyr-X LightPulse Fibre Channel Host Adapter";
 static const char pci_device_10df_ff00[] = "Neptune LightPulse Fibre Channel Host Adapter";
@@ -9262,6 +9674,9 @@ static const char pci_vendor_10e3[] = "T
 static const char pci_device_10e3_0000[] = "CA91C042 [Universe]";
 static const char pci_device_10e3_0108[] = "Tsi108 Host Bridge for Single PowerPC";
 static const char pci_device_10e3_0148[] = "Tsi148 [Tempe]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10e3_0148_1775_1100[] = "VR11 Single Board Computer";
+#endif
 static const char pci_device_10e3_0860[] = "CA91C860 [QSpan]";
 static const char pci_device_10e3_0862[] = "CA91C862A [QSpan-II]";
 static const char pci_device_10e3_8260[] = "CA91L8200B [Dual PCI PowerSpan II]";
@@ -9296,10 +9711,12 @@ static const char pci_device_10e8_809c[]
 static const char pci_device_10e8_80d7[] = "PCI-9112";
 static const char pci_device_10e8_80d9[] = "PCI-9118";
 static const char pci_device_10e8_80da[] = "PCI-9812";
+static const char pci_device_10e8_80fc[] = "APCI1500 Signal processing controller (16 dig. inputs + 16 dig. outputs)";
 static const char pci_device_10e8_811a[] = "PCI-IEEE1355-DS-DE Interface";
 static const char pci_device_10e8_814c[] = "Fastcom ESCC-PCI (Commtech, Inc.)";
 static const char pci_device_10e8_8170[] = "S5933 [Matchmaker] (Chipset Development Tool)";
 static const char pci_device_10e8_81e6[] = "Multimedia video controller";
+static const char pci_device_10e8_828d[] = "APCI3001 Signal processing controller (up to 16 analog inputs)";
 static const char pci_device_10e8_8291[] = "Fastcom 232/8-PCI (Commtech, Inc.)";
 static const char pci_device_10e8_82c4[] = "Fastcom 422/4-PCI (Commtech, Inc.)";
 static const char pci_device_10e8_82c5[] = "Fastcom 422/2-PCI (Commtech, Inc.)";
@@ -9308,6 +9725,8 @@ static const char pci_device_10e8_82c7[]
 static const char pci_device_10e8_82ca[] = "Fastcom 232/4-PCI (Commtech, Inc.)";
 static const char pci_device_10e8_82db[] = "AJA HDNTV HD SDI Framestore";
 static const char pci_device_10e8_82e2[] = "Fastcom DIO24H-PCI (Commtech, Inc.)";
+static const char pci_device_10e8_8406[] = "PCIcanx/PCIcan CAN interface [Kvaser AB]";
+static const char pci_device_10e8_8407[] = "PCIcan II CAN interface (A1021, PCB-07, PCB-08) [Kvaser AB]";
 static const char pci_device_10e8_8851[] = "S5933 on Innes Corp FM Radio Capture card";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -9331,12 +9750,19 @@ static const char pci_device_10eb_8111[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_10ec[] = "Realtek Semiconductor Co., Ltd.";
 static const char pci_device_10ec_0139[] = "Zonet Zen3200";
-static const char pci_device_10ec_0883[] = "High Definition Audio";
+static const char pci_device_10ec_0260[] = "Realtek 260 High Definition Audio";
+static const char pci_device_10ec_0261[] = "Realtek 261 High Definition Audio";
+static const char pci_device_10ec_0280[] = "Realtek 280 High Definition Audio";
+static const char pci_device_10ec_0861[] = "Realtek 861 High Definition Audio";
+static const char pci_device_10ec_0862[] = "Realtek 862 High Definition Audio";
+static const char pci_device_10ec_0880[] = "Realtek 880 High Definition Audio";
+static const char pci_device_10ec_0883[] = "Realtek 883 High Definition Audio";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_0883_1025_1605[] = "TravelMate 5600 series";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_device_10ec_0888[] = "Realtek 888 High Definition Audio";
 static const char pci_device_10ec_8029[] = "RTL-8029(AS)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_8029_10b8_2011[] = "EZ-Card (SMC1208)";
@@ -9387,6 +9813,9 @@ static const char pci_subsys_10ec_8139_1
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8139_1043_1045[] = "L8400B or L3C/S notebook";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_8139_1043_8109[] = "P5P800-MX Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9399,6 +9828,9 @@ static const char pci_subsys_10ec_8139_1
 static const char pci_subsys_10ec_8139_10ec_8139[] = "RT8139";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8139_10f7_8338[] = "Panasonic CF-Y5 laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_8139_1113_ec01[] = "FNC-0107TX";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9429,6 +9861,9 @@ static const char pci_subsys_10ec_8139_1
 static const char pci_subsys_10ec_8139_1436_8139[] = "RT8139";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8139_144d_c00c[] = "P30/P35 notebook";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_8139_1458_e000[] = "GA-7VM400M/7VT600 Motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9453,6 +9888,9 @@ static const char pci_subsys_10ec_8139_1
 static const char pci_subsys_10ec_8139_14cb_0200[] = "LNR-100 Family 10/100 Base-TX Ethernet";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8139_1565_2300[] = "P4TSV Onboard LAN (RTL8100B)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_8139_1695_9001[] = "Onboard RTL8101L 10/100 MBit";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9473,7 +9911,10 @@ static const char pci_subsys_10ec_8139_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_8139_a0a0_0007[] = "ALN-325C";
 #endif
-static const char pci_device_10ec_8167[] = "RTL-8169SC Gigabit Ethernet";
+static const char pci_device_10ec_8167[] = "RTL-8110SC/8169SC Gigabit Ethernet";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8167_1462_235c[] = "P965 Neo MS-7235 mainboard";
+#endif
 static const char pci_device_10ec_8168[] = "RTL8111/8168B PCI Express Gigabit Ethernet controller";
 static const char pci_device_10ec_8169[] = "RTL-8169 Gigabit Ethernet";
 #endif
@@ -9491,8 +9932,20 @@ static const char pci_subsys_10ec_8169_1
 static const char pci_subsys_10ec_8169_1458_e000[] = "GA-8I915ME-G Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8169_1462_030c[] = "K8N Neo-FSR v2.0 mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_10ec_8169_1462_702c[] = "K8T NEO 2 motherboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8169_1462_7094[] = "K8T Neo2-F V2.0";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8169_1734_1091[] = "D2030-A1";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_10ec_8169_a0a0_0449[] = "AK86-L motherboard";
+#endif
 static const char pci_device_10ec_8180[] = "RTL8180L 802.11b MAC";
 static const char pci_device_10ec_8185[] = "RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller";
 static const char pci_device_10ec_8197[] = "SmartLAN56 56K Modem";
@@ -9515,6 +9968,7 @@ static const char pci_device_10ee_3fc3[]
 static const char pci_device_10ee_3fc4[] = "RME Digi9652 (Hammerfall)";
 static const char pci_device_10ee_3fc5[] = "RME Hammerfall DSP";
 static const char pci_device_10ee_3fc6[] = "RME Hammerfall DSP MADI";
+static const char pci_device_10ee_8380[] = "Ellips ProfiXpress Profibus Master";
 static const char pci_device_10ee_8381[] = "Ellips Santos Frame Grabber";
 static const char pci_device_10ee_d154[] = "Copley Controls CAN card (PCI-CAN-02)";
 #endif
@@ -9660,11 +10114,17 @@ static const char pci_subsys_1102_0004_1
 static const char pci_subsys_1102_0004_1102_0058[] = "SB0090 Audigy Player/OEM";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1102_0004_1102_1002[] = "SB Audigy2 ZS";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1102_0004_1102_1007[] = "SB0240 Audigy 2 Platinum 6.1";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1102_0004_1102_2002[] = "SB Audigy 2 ZS (SB0350)";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1102_0004_1102_4001[] = "E-MU 1010";
+#endif
 static const char pci_device_1102_0005[] = "SB X-Fi";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1102_0005_1102_0021[] = "X-Fi Platinum";
@@ -9771,16 +10231,23 @@ static const char pci_device_1103_0004[]
 static const char pci_subsys_1103_0004_1103_0001[] = "HPT370A";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1103_0004_1103_0003[] = "HPT343 / HPT345 / HPT363 UDMA33";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1103_0004_1103_0004[] = "HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4)";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1103_0004_1103_0005[] = "HPT370 UDMA100";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1103_0004_1103_0006[] = "HPT302/302N";
+#endif
 static const char pci_device_1103_0005[] = "HPT372A/372N";
 static const char pci_device_1103_0006[] = "HPT302/302N";
 static const char pci_device_1103_0007[] = "HPT371/371N";
 static const char pci_device_1103_0008[] = "HPT374";
 static const char pci_device_1103_0009[] = "HPT372N";
+static const char pci_device_1103_2340[] = "RocketRAID 2340 16 Port SATA-II Controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1104[] = "RasterOps Corp.";
@@ -9808,6 +10275,7 @@ static const char pci_device_1105_8486[]
 static const char pci_vendor_1106[] = "VIA Technologies, Inc.";
 static const char pci_device_1106_0102[] = "Embedded VIA Ethernet Controller";
 static const char pci_device_1106_0130[] = "VT6305 1394.A Controller";
+static const char pci_device_1106_0198[] = "P4X600 Host Bridge";
 static const char pci_device_1106_0204[] = "K8M800 Host Bridge";
 static const char pci_device_1106_0208[] = "PT890 Host Bridge";
 static const char pci_device_1106_0238[] = "K8T890 Host Bridge";
@@ -9845,6 +10313,9 @@ static const char pci_device_1106_0336[]
 static const char pci_device_1106_0340[] = "PT900 Host Bridge";
 static const char pci_device_1106_0351[] = "VT3351 Host Bridge";
 static const char pci_device_1106_0364[] = "P4M900 Host Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_0364_1043_81ce[] = "P5VD2-VM mothervoard";
+#endif
 static const char pci_device_1106_0391[] = "VT8371 [KX133]";
 static const char pci_device_1106_0501[] = "VT8501 [Apollo MVP4]";
 static const char pci_device_1106_0505[] = "VT82C505";
@@ -9884,6 +10355,12 @@ static const char pci_subsys_1106_0571_1
 static const char pci_subsys_1106_0571_1462_7020[] = "K8T NEO 2 motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_0571_1462_7094[] = "K8T Neo2-F V2.0";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_0571_1462_7181[] = "K8MM3-V mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_0571_147b_1407[] = "KV8-MAX3 motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -9978,6 +10455,7 @@ static const char pci_device_1106_1351[]
 static const char pci_device_1106_1364[] = "P4M900 Host Bridge";
 static const char pci_device_1106_1571[] = "VT82C576M/VT82C586";
 static const char pci_device_1106_1595[] = "VT82C595/97 [Apollo VP2/97]";
+static const char pci_device_1106_2106[] = "VIA Rhine Family Fast Ethernet Adapter (VT6105)";
 static const char pci_device_1106_2204[] = "K8M800 Host Bridge";
 static const char pci_device_1106_2208[] = "PT890 Host Bridge";
 static const char pci_device_1106_2238[] = "K8T890 Host Bridge";
@@ -10034,6 +10512,12 @@ static const char pci_subsys_1106_3038_1
 static const char pci_subsys_1106_3038_1462_7020[] = "K8T NEO 2 motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3038_1462_7094[] = "K8T Neo2-F V2.0";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3038_1462_7181[] = "K8MM3-V mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3038_147b_1407[] = "KV8-MAX3 motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10054,13 +10538,16 @@ static const char pci_subsys_1106_3043_1
 static const char pci_subsys_1106_3043_1186_1400[] = "DFE-530TX rev A";
 #endif
 static const char pci_device_1106_3044[] = "IEEE 1394 Host Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3044_0010_0001[] = "IEEE 1394 4port DCST 1394-3+1B";
+#endif
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3044_1025_005a[] = "TravelMate 290";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1106_3044_1043_808a[] = "A8V Deluxe";
+static const char pci_subsys_1106_3044_1043_808a[] = "A8V Deluxe or A8N-VM CSM Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3044_1458_1000[] = "GA-7VT600-1394 Motherboard";
@@ -10151,6 +10638,9 @@ static const char pci_subsys_1106_3059_1
 static const char pci_subsys_1106_3059_1043_812a[] = "A8V Deluxe motherboard (Realtek ALC850 codec)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3059_10ec_8168[] = "High Definition Audio";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3059_1106_3059[] = "L7VMM2 Motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10166,6 +10656,9 @@ static const char pci_subsys_1106_3059_1
 static const char pci_subsys_1106_3059_1297_c160[] = "FX41 motherboard (Realtek ALC650 codec)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3059_1413_147b[] = "KV8 Pro motherboard onboard audio";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3059_1458_a002[] = "GA-7VAX Onboard Audio (Realtek ALC650)";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10175,9 +10668,15 @@ static const char pci_subsys_1106_3059_1
 static const char pci_subsys_1106_3059_1462_3800[] = "KT266 onboard audio";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3059_1462_7181[] = "K8MM3-V mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3059_147b_1407[] = "KV8-MAX3 motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3059_1849_0850[] = "ASRock 775Dual-880 Pro onboard audio (Realtek ALC850)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3059_1849_9761[] = "K7VT6 motherboard";
 #endif
 #endif
@@ -10188,6 +10687,9 @@ static const char pci_subsys_1106_3059_4
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3059_a0a0_01b6[] = "AK77-8XN onboard audio";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3059_a0a0_0342[] = "AK86-L motherboard";
+#endif
 static const char pci_device_1106_3065[] = "VT6102 [Rhine-II]";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3065_1043_80a1[] = "A7V8X-X Motherboard";
@@ -10205,6 +10707,9 @@ static const char pci_subsys_1106_3065_1
 static const char pci_subsys_1106_3065_13b9_1421[] = "LD-10/100AL PCI Fast Ethernet Adapter (rev.B)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3065_1462_7181[] = "K8MM3-V mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3065_147b_1c09[] = "NV7 Motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10261,6 +10766,12 @@ static const char pci_subsys_1106_3104_1
 static const char pci_subsys_1106_3104_1462_7020[] = "K8T NEO 2 motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3104_1462_7094[] = "K8T Neo2-F V2.0";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3104_1462_7181[] = "K8MM3-V mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3104_147b_1407[] = "KV8-MAX3 motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10303,6 +10814,9 @@ static const char pci_subsys_1106_3149_1
 static const char pci_subsys_1106_3149_1462_7020[] = "K8T Neo 2 Motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3149_1462_7094[] = "K8T Neo2-F V2.0";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3149_147b_1407[] = "KV8-MAX3 motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10311,7 +10825,11 @@ static const char pci_subsys_1106_3149_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3149_1849_3149[] = "K7VT6 motherboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1106_3149_a0a0_04ad[] = "AK86-L motherboard";
+#endif
 static const char pci_device_1106_3156[] = "P/KN266 Host Bridge";
+static const char pci_device_1106_3157[] = "CX700M2 UniChrome PRO II Graphics";
 static const char pci_device_1106_3164[] = "VT6410 ATA133 RAID controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3164_1043_80f4[] = "P4P800 Mainboard Deluxe ATX";
@@ -10370,7 +10888,7 @@ static const char pci_device_1106_3227[]
 static const char pci_subsys_1106_3227_1043_80ed[] = "A7V600/K8V-X/A8V Deluxe motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1106_3227_1106_3227[] = "DFI KT600-AL Motherboard";
+static const char pci_subsys_1106_3227_1106_3227[] = "DFI KT600-AL / Soltek SL-B9D-FGR Motherboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3227_1458_5001[] = "GA-7VT600 Motherboard";
@@ -10381,6 +10899,7 @@ static const char pci_subsys_1106_3227_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1106_3227_1849_3227[] = "K7VT4 motherboard";
 #endif
+static const char pci_device_1106_3230[] = "K8M890 [Chrome9] Integrated Video";
 static const char pci_device_1106_3238[] = "K8T890 Host Bridge";
 static const char pci_device_1106_3249[] = "VT6421 IDE RAID Controller";
 static const char pci_device_1106_324a[] = "CX700 PCI to PCI Bridge";
@@ -10388,6 +10907,7 @@ static const char pci_device_1106_324b[]
 static const char pci_device_1106_324e[] = "CX700 Internal Module Bus";
 static const char pci_device_1106_3258[] = "PT880 Host Bridge";
 static const char pci_device_1106_3259[] = "CN400/PM880 Host Bridge";
+static const char pci_device_1106_3260[] = "VIA Chrome9 HC IGP";
 static const char pci_device_1106_3269[] = "KT880 Host Bridge";
 static const char pci_device_1106_3282[] = "K8T800Pro Host Bridge";
 static const char pci_device_1106_3287[] = "VT8251 PCI to ISA Bridge";
@@ -10399,10 +10919,13 @@ static const char pci_device_1106_3327[]
 static const char pci_device_1106_3336[] = "K8M890CE Host Bridge";
 static const char pci_device_1106_3337[] = "VT8237A PCI to ISA Bridge";
 static const char pci_device_1106_3340[] = "PT900 Host Bridge";
+static const char pci_device_1106_3343[] = "UniChrome Pro IGP [VIA P4M890 Chipset]";
 static const char pci_device_1106_3344[] = "UniChrome Pro IGP";
 static const char pci_device_1106_3349[] = "VT8251 AHCI/SATA 4-Port Controller";
 static const char pci_device_1106_3351[] = "VT3351 Host Bridge";
 static const char pci_device_1106_3364[] = "P4M900 Host Bridge";
+static const char pci_device_1106_3371[] = "Chrome9 HC IGP";
+static const char pci_device_1106_3372[] = "VT8237S PCI to ISA Bridge";
 static const char pci_device_1106_337a[] = "VT8237A PCI to PCI Bridge";
 static const char pci_device_1106_337b[] = "VT8237A Host Bridge";
 static const char pci_device_1106_4149[] = "VIA VT6420 (ATA133) Controller";
@@ -10429,13 +10952,16 @@ static const char pci_device_1106_5208[]
 static const char pci_device_1106_5238[] = "K8T890 I/O APIC Interrupt Controller";
 static const char pci_device_1106_5290[] = "K8M890 I/O APIC Interrupt Controller";
 static const char pci_device_1106_5308[] = "PT894 I/O APIC Interrupt Controller";
+static const char pci_device_1106_5324[] = "CX700M2 IDE";
 static const char pci_device_1106_5327[] = "P4M890 I/O APIC Interrupt Controller";
 static const char pci_device_1106_5336[] = "K8M890CE I/O APIC Interrupt Controller";
 static const char pci_device_1106_5340[] = "PT900 I/O APIC Interrupt Controller";
 static const char pci_device_1106_5351[] = "VT3351 I/O APIC Interrupt Controller";
 static const char pci_device_1106_5364[] = "P4M900 I/O APIC Interrupt Controller";
 static const char pci_device_1106_6100[] = "VT85C100A [Rhine II]";
+static const char pci_device_1106_6287[] = "SATA RAID Controller";
 static const char pci_device_1106_6327[] = "P4M890 Security Device";
+static const char pci_device_1106_6364[] = "P4M900 Security Device";
 static const char pci_device_1106_7204[] = "K8M800 Host Bridge";
 static const char pci_device_1106_7205[] = "VT8378 [S3 UniChrome] Integrated Video";
 #ifdef INIT_SUBSYS_INFO
@@ -10649,11 +11175,7 @@ static const char pci_device_1119_0009[]
 static const char pci_device_1119_000a[] = "GDT 6115/6515";
 static const char pci_device_1119_000b[] = "GDT 6125/6525";
 static const char pci_device_1119_000c[] = "GDT 6535";
-static const char pci_device_1119_000d[] = "GDT 6555";
-static const char pci_device_1119_0010[] = "GDT 6115/6515";
-static const char pci_device_1119_0011[] = "GDT 6125/6525";
-static const char pci_device_1119_0012[] = "GDT 6535";
-static const char pci_device_1119_0013[] = "GDT 6555/6555-ECC";
+static const char pci_device_1119_000d[] = "GDT 6555/6555-ECC";
 static const char pci_device_1119_0100[] = "GDT 6117RP/6517RP";
 static const char pci_device_1119_0101[] = "GDT 6127RP/6527RP";
 static const char pci_device_1119_0102[] = "GDT 6537RP";
@@ -10710,6 +11232,7 @@ static const char pci_device_1119_0260[]
 static const char pci_device_1119_0261[] = "GDT 7529RN/7629RN";
 static const char pci_device_1119_02ff[] = "GDT MAXRP";
 static const char pci_device_1119_0300[] = "GDT NEWRX";
+static const char pci_device_1119_0301[] = "GDT NEWRX2";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_111a[] = "Efficient Networks, Inc";
@@ -10833,7 +11356,13 @@ static const char pci_vendor_1130[] = "C
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1131[] = "Philips Semiconductors";
 static const char pci_device_1131_1561[] = "USB 1.1 Host Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_1561_1775_c200[] = "C2K onboard USB 1.1 host controller";
+#endif
 static const char pci_device_1131_1562[] = "USB 2.0 Host Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_1562_1775_c200[] = "C2K onboard USB 2.0 host controller";
+#endif
 static const char pci_device_1131_3400[] = "SmartPCI56(UCB1500) 56K Modem";
 static const char pci_device_1131_5400[] = "TriMedia TM1000/1100";
 static const char pci_device_1131_5402[] = "TriMedia TM-1300";
@@ -10901,6 +11430,9 @@ static const char pci_subsys_1131_7133_1
 static const char pci_subsys_1131_7133_1043_4862[] = "P7131 Dual";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7133_1131_0000[] = "KWorld V-Stream Studio TV Terminator";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7133_1131_2001[] = "Proteus Pro [philips reference design]";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10934,6 +11466,9 @@ static const char pci_subsys_1131_7133_1
 static const char pci_subsys_1131_7133_1461_1044[] = "AVerTVHD MCE A180";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7133_1461_a14b[] = "AVerTV Studio 509";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7133_1461_f31f[] = "Avermedia AVerTV GO 007 FM";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -10952,9 +11487,15 @@ static const char pci_subsys_1131_7133_1
 static const char pci_subsys_1131_7133_153b_1162[] = "Terratec Cinergy 400 mobile";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7133_17de_7350[] = "ATSC 110 Digital / Analog HDTV Tuner";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7133_185b_c100[] = "VideoMate TV";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7133_185b_c900[] = "VideoMate T750";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7133_5168_0306[] = "LifeView FlyDVB-T DUO";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -11129,17 +11670,29 @@ static const char pci_subsys_1131_7146_1
 static const char pci_subsys_1131_7146_13c2_1011[] = "Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7146_13c2_1012[] = "DVB T-1500";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7146_13c2_1013[] = "SATELCO Multimedia DVB";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7146_13c2_1016[] = "WinTV-NOVA-SE DVB card";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7146_13c2_1018[] = "DVB S-1401";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7146_13c2_1019[] = "S2-3200";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7146_13c2_1102[] = "Technotrend/Hauppauge DVB card rev2.1";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_7146_153b_1156[] = "Terratec Cynergy 1200C";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1131_7146_1894_0020[] = "KNC One DVB-C V1.0";
+#endif
 static const char pci_device_1131_9730[] = "SAA9730 Integrated Multimedia and Peripheral Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1131_9730_1131_0000[] = "Integrated Multimedia and Peripheral Controller";
@@ -11270,6 +11823,7 @@ static const char pci_subsys_1133_e028_1
 #endif
 static const char pci_device_1133_e02a[] = "Diva Server IPM-300";
 static const char pci_device_1133_e02c[] = "Diva Server IPM-600";
+static const char pci_device_1133_e032[] = "Diva BRI-2 PCIe r1";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1134[] = "Mercury Computer Systems";
@@ -11591,6 +12145,7 @@ static const char pci_device_114f_000c[]
 static const char pci_device_114f_000d[] = "SyncPort 2-Port (x.25/FR)";
 static const char pci_device_114f_0011[] = "AccelePort 8r EIA-232 (IBM)";
 static const char pci_device_114f_0012[] = "AccelePort 8r EIA-422";
+static const char pci_device_114f_0013[] = "AccelePort Xr";
 static const char pci_device_114f_0014[] = "AccelePort 8r EIA-422";
 static const char pci_device_114f_0015[] = "AccelePort Xem";
 static const char pci_device_114f_0016[] = "AccelePort EPC/X";
@@ -11830,13 +12385,13 @@ static const char pci_device_1166_0014[]
 static const char pci_device_1166_0015[] = "CMIC-GC Host Bridge";
 static const char pci_device_1166_0016[] = "CMIC-GC Host Bridge";
 static const char pci_device_1166_0017[] = "GCNB-LE Host Bridge";
-static const char pci_device_1166_0036[] = "HT1000 PCI/PCI-X bridge";
+static const char pci_device_1166_0036[] = "BCM5785 [HT1000] PCI/PCI-X Bridge";
 static const char pci_device_1166_0101[] = "CIOB-X2 PCI-X I/O Bridge";
 static const char pci_device_1166_0103[] = "EPB PCI-Express to PCI-X Bridge";
-static const char pci_device_1166_0104[] = "HT1000 PCI/PCI-X bridge";
+static const char pci_device_1166_0104[] = "BCM5785 [HT1000] PCI/PCI-X Bridge";
 static const char pci_device_1166_0110[] = "CIOB-E I/O Bridge with Gigabit Ethernet";
-static const char pci_device_1166_0130[] = "HT2000 PCI-X bridge";
-static const char pci_device_1166_0132[] = "HT2000 PCI-Express bridge";
+static const char pci_device_1166_0130[] = "BCM5780 [HT2000] PCI-X bridge";
+static const char pci_device_1166_0132[] = "BCM5780 [HT2000] PCI-Express Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1166_0132_1166_0132[] = "HT2000 PCI-Express bridge";
 #endif
@@ -11853,9 +12408,14 @@ static const char pci_device_1166_0203[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1166_0203_1734_1012[] = "Primergy RX300";
 #endif
-static const char pci_device_1166_0205[] = "HT1000 Legacy South Bridge";
+static const char pci_device_1166_0205[] = "BCM5785 [HT1000] Legacy South Bridge";
 static const char pci_device_1166_0211[] = "OSB4 IDE Controller";
 static const char pci_device_1166_0212[] = "CSB5 IDE Controller";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1166_0212_1028_810b[] = "PowerEdge 2550";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1166_0212_4c53_1080[] = "CT8 mainboard";
 #endif
@@ -11873,7 +12433,7 @@ static const char pci_subsys_1166_0213_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1166_0213_1734_1012[] = "Primergy RX300";
 #endif
-static const char pci_device_1166_0214[] = "HT1000 Legacy IDE controller";
+static const char pci_device_1166_0214[] = "BCM5785 [HT1000] IDE";
 static const char pci_device_1166_0217[] = "CSB6 IDE Controller";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -11888,7 +12448,7 @@ static const char pci_device_1166_0221[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1166_0221_1734_1012[] = "Primergy RX300";
 #endif
-static const char pci_device_1166_0223[] = "HT1000 USB Controller";
+static const char pci_device_1166_0223[] = "BCM5785 [HT1000] USB";
 static const char pci_device_1166_0225[] = "CSB5 LPC bridge";
 static const char pci_device_1166_0227[] = "GCLE-2 Host Bridge";
 #ifdef INIT_SUBSYS_INFO
@@ -11898,12 +12458,14 @@ static const char pci_device_1166_0230[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1166_0230_4c53_1080[] = "CT8 mainboard";
 #endif
-static const char pci_device_1166_0234[] = "HT1000 LPC Bridge";
+static const char pci_device_1166_0234[] = "BCM5785 [HT1000] LPC";
+static const char pci_device_1166_0235[] = "BCM5785 [HT1000] XIOAPIC0-2";
+static const char pci_device_1166_0238[] = "BCM5785 [HT1000] WDTimer";
 static const char pci_device_1166_0240[] = "K2 SATA";
 static const char pci_device_1166_0241[] = "RAIDCore RC4000";
 static const char pci_device_1166_0242[] = "RAIDCore BC4000";
-static const char pci_device_1166_024a[] = "BCM5785 (HT1000) SATA Native SATA Mode";
-static const char pci_device_1166_024b[] = "BCM5785 (HT1000) PATA/IDE Mode";
+static const char pci_device_1166_024a[] = "BCM5785 [HT1000] SATA (Native SATA Mode)";
+static const char pci_device_1166_024b[] = "BCM5785 [HT1000] SATA (PATA/IDE Mode)";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1167[] = "Mutoh Industries Inc";
@@ -12030,6 +12592,11 @@ static const char pci_subsys_1180_0476_1
 #endif
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0476_1028_014f[] = "Latitude X300 laptop";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0476_1028_0188[] = "Inspiron 6000 laptop";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -12049,8 +12616,16 @@ static const char pci_subsys_1180_0476_1
 static const char pci_subsys_1180_0476_104d_80e7[] = "VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0476_104d_814e[] = "VAIO GRZ390Z";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0476_10f7_8338[] = "Panasonic CF-Y5 laptop";
+#endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1180_0476_144d_c00c[] = "P35 notebook";
+static const char pci_subsys_1180_0476_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0476_14ef_0220[] = "PCD-RP-220S";
@@ -12081,11 +12656,16 @@ static const char pci_subsys_1180_0552_1
 #endif
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0552_1028_014f[] = "Latitude X300 laptop";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0552_1028_0188[] = "Inspiron 6000 laptop";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1180_0552_144d_c00c[] = "P35 notebook";
+static const char pci_subsys_1180_0552_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0552_17aa_201e[] = "Thinkpad X60s";
@@ -12122,11 +12702,15 @@ static const char pci_subsys_1180_0822_1
 static const char pci_subsys_1180_0822_1043_1967[] = "ASUS V6800V";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1180_0822_10f7_8338[] = "Panasonic CF-Y5 laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0822_144d_c018[] = "X20 IV";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1180_0822_17aa_201d[] = "Thinkpad X60s";
 #endif
+static const char pci_device_1180_0832[] = "R5C832 IEEE 1394 Controller";
 static const char pci_device_1180_0841[] = "R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394";
 static const char pci_device_1180_0852[] = "xD-Picture Card Controller";
 #ifdef INIT_SUBSYS_INFO
@@ -12150,7 +12734,7 @@ static const char pci_vendor_1186[] = "D
 static const char pci_device_1186_0100[] = "DC21041";
 static const char pci_device_1186_1002[] = "DL10050 Sundance Ethernet";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_1186_1002_1186_1002[] = "DFE-550TX";
+static const char pci_subsys_1186_1002_1186_1002[] = "DFE-550TX/FX";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1186_1002_1186_1012[] = "DFE-580TX";
@@ -12351,6 +12935,8 @@ static const char pci_vendor_11aa[] = "A
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_11ab[] = "Marvell Technology Group Ltd.";
 static const char pci_device_11ab_0146[] = "GT-64010/64010A System Controller";
+static const char pci_device_11ab_0f53[] = "88E6318 Link Street network controller";
+static const char pci_device_11ab_11ab[] = "MV88SE614x SATA II PCI-E controller";
 static const char pci_device_11ab_138f[] = "W8300 802.11 Adapter (rev 07)";
 static const char pci_device_11ab_1fa6[] = "Marvell W8300 802.11 Adapter";
 static const char pci_device_11ab_1fa7[] = "88W8310 and 88W8000G [Libertas] 802.11g client chipset";
@@ -12358,6 +12944,7 @@ static const char pci_device_11ab_1faa[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_11ab_1faa_1385_4e00[] = "WG511 v2 54MBit/ Wireless PC-Card";
 #endif
+static const char pci_device_11ab_2a01[] = "88W8335 [Libertas] 802.11b/g Wireless";
 static const char pci_device_11ab_4320[] = "88E8001 Gigabit Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_11ab_4320_1019_0f38[] = "Marvell 88E8001 Gigabit Ethernet Controller (ECS)";
@@ -12421,6 +13008,9 @@ static const char pci_device_11ab_4344[]
 static const char pci_device_11ab_4345[] = "88E8022 PCI-X IPMI Gigabit Ethernet Controller";
 static const char pci_device_11ab_4346[] = "88E8061 PCI-E IPMI Gigabit Ethernet Controller";
 static const char pci_device_11ab_4347[] = "88E8062 PCI-E IPMI Gigabit Ethernet Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_11ab_4347_4c53_10d0[] = "Telum ASLP10 PrAMC Gigabit Ethernet";
+#endif
 static const char pci_device_11ab_4350[] = "88E8035 PCI-E Fast Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_11ab_4350_1179_0001[] = "Marvell 88E8035 Fast Ethernet Controller (Toshiba)";
@@ -12689,6 +13279,7 @@ static const char pci_subsys_11ab_4362_2
 static const char pci_subsys_11ab_4362_a0a0_0506[] = "Marvell 88E8053 Gigabit Ethernet Controller (Aopen)";
 #endif
 static const char pci_device_11ab_4363[] = "88E8055 PCI-E Gigabit Ethernet Controller";
+static const char pci_device_11ab_4364[] = "88E8056 PCI-E Gigabit Ethernet Controller";
 static const char pci_device_11ab_4611[] = "GT-64115 System Controller";
 static const char pci_device_11ab_4620[] = "GT-64120/64120A/64121A System Controller";
 static const char pci_device_11ab_4801[] = "GT-48001";
@@ -12699,8 +13290,15 @@ static const char pci_device_11ab_5080[]
 static const char pci_device_11ab_5081[] = "MV88SX5081 8-port SATA I PCI-X Controller";
 static const char pci_device_11ab_6041[] = "MV88SX6041 4-port SATA II PCI-X Controller";
 static const char pci_device_11ab_6081[] = "MV88SX6081 8-port SATA II PCI-X Controller";
+static const char pci_device_11ab_6101[] = "88SE6101 single-port PATA133 interface";
+static const char pci_device_11ab_6141[] = "88SE614x SATA II PCI-E controller";
+static const char pci_device_11ab_6145[] = "88SE6145 SATA II PCI-E controller";
+static const char pci_device_11ab_6450[] = "64560 System Controller";
 static const char pci_device_11ab_6460[] = "MV64360/64361/64362 System Controller";
 static const char pci_device_11ab_6480[] = "MV64460/64461/64462 System Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_11ab_6480_1775_c200[] = "C2K CompactPCI single board computer";
+#endif
 static const char pci_device_11ab_6485[] = "MV64460/64461/64462 System Controller, Revision B";
 static const char pci_device_11ab_f003[] = "GT-64010 Primary Image Piranha Image Generator";
 #endif
@@ -12787,6 +13385,18 @@ static const char pci_device_11bc_0001[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_11bd[] = "Pinnacle Systems Inc.";
 static const char pci_device_11bd_002e[] = "PCTV 40i";
+static const char pci_device_11bd_0040[] = "Royal TS Function 1";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_11bd_0040_11bd_0044[] = "PCTV 2000i Dual DVB-T Pro PCI Tuner 1";
+#endif
+static const char pci_device_11bd_0041[] = "RoyalTS Function 2";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_11bd_0041_11bd_0044[] = "PCTV 2000i Dual DVB-T Pro PCI Tuner 2";
+#endif
+static const char pci_device_11bd_0042[] = "Royal TS Function 3";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_11bd_0042_11bd_0044[] = "PCTV 2000i Dual DVB-T Pro PCI Common";
+#endif
 static const char pci_device_11bd_bede[] = "AV/DV Studio Capture Card";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -13070,6 +13680,8 @@ static const char pci_device_11c1_0462[]
 static const char pci_device_11c1_0480[] = "Venus Modem (V90, 56KFlex)";
 static const char pci_device_11c1_048c[] = "V.92 56K WinModem";
 static const char pci_device_11c1_048f[] = "V.92 56k WinModem";
+static const char pci_device_11c1_1040[] = "HDA softmodem";
+static const char pci_device_11c1_2600[] = "StarPro26XX family (SP2601, SP2603, SP2612) DSP";
 static const char pci_device_11c1_5801[] = "USB";
 static const char pci_device_11c1_5802[] = "USS-312 USB Controller";
 static const char pci_device_11c1_5803[] = "USS-344S USB Controller";
@@ -13180,10 +13792,17 @@ static const char pci_vendor_11d3[] = "T
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_11d4[] = "Analog Devices";
+static const char pci_device_11d4_0078[] = "AD1986HD sound chip";
 static const char pci_device_11d4_1535[] = "Blackfin BF535 processor";
 static const char pci_device_11d4_1805[] = "SM56 PCI modem";
 static const char pci_device_11d4_1889[] = "AD1889 sound chip";
+static const char pci_device_11d4_1981[] = "AD1981HD sound chip";
+static const char pci_device_11d4_1983[] = "AD1983HD sound chip";
 static const char pci_device_11d4_1986[] = "AD1986A sound chip";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_11d4_1986_11d4_1986[] = "Lenovo N100 B9G";
+#endif
+static const char pci_device_11d4_198b[] = "AD1988B Sound Chip";
 static const char pci_device_11d4_5340[] = "AD1881 sound chip";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -13545,6 +14164,9 @@ static const char pci_subsys_1217_7223_1
 static const char pci_subsys_1217_7223_103c_0890[] = "NC6000 laptop";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1217_7223_10cf_11c4[] = "Lifebook P5020D Laptop";
+#endif
 static const char pci_device_1217_7233[] = "OZ711MP3/MS3 4-in-1 MemoryCardBus Controller";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -14072,6 +14694,9 @@ static const char pci_subsys_125d_2898_1
 static const char pci_subsys_125d_2898_147a_c001[] = "ES56-PI Data Fax Modem";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_125d_2898_148d_1030[] = "HCF WV-PI56 [ESS ES56-PI Data Fax Modem]";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_125d_2898_14fe_0428[] = "ES56-PI Data Fax Modem";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -14111,6 +14736,11 @@ static const char pci_subsys_1260_3873_1
 #endif
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1260_3873_8086_2510[] = "M3AWEB Wireless 802.11b MiniPCI Adapter";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1260_3873_8086_2513[] = "Wireless 802.11b MiniPCI Adapter";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -14132,6 +14762,9 @@ static const char pci_subsys_1260_3890_1
 static const char pci_subsys_1260_3890_1113_4203[] = "WN4201B";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1260_3890_1113_8201[] = "T-Com T-Sinus 154pcicard Wireless PCI Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1260_3890_1113_ee03[] = "SMC2802W V2 Wireless PCI Adapter [ISL3886]";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -14850,11 +15483,12 @@ static const char pci_device_1282_9132[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1283[] = "Integrated Technology Express, Inc.";
 static const char pci_device_1283_673a[] = "IT8330G";
-static const char pci_device_1283_8211[] = "ITE 8211F Single Channel UDMA 133 (ASUS 8211 (ITE IT8212 ATA RAID Controller))";
+static const char pci_device_1283_8152[] = "IT8152F/G Advanced RISC-to-PCI Companion Chip";
+static const char pci_device_1283_8211[] = "ITE 8211F Single Channel UDMA 133";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1283_8211_1043_8138[] = "P5GD1-VW Mainboard";
 #endif
-static const char pci_device_1283_8212[] = "IT/ITE8212 Dual channel ATA RAID controller (PCI version seems to be IT8212, embedded seems to be ITE8212)";
+static const char pci_device_1283_8212[] = "IT/ITE8212 Dual channel ATA RAID controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1283_8212_1283_0001[] = "IT/ITE8212 Dual channel ATA RAID controller";
 #endif
@@ -14916,6 +15550,7 @@ static const char pci_vendor_1290[] = "S
 static const char pci_vendor_1291[] = "NCS Computer Italia";
 #endif
 static const char pci_vendor_1292[] = "Tritech Microelectronics Inc";
+static const char pci_device_1292_fc02[] = "Pyramid3D TR25202";
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1293[] = "Media Reality Technology";
 #endif
@@ -14992,8 +15627,12 @@ static const char pci_vendor_12aa[] = "S
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_12ab[] = "Yuan Yuan Enterprise Co., Ltd.";
+static const char pci_device_12ab_0000[] = "MPG160/Kuroutoshikou ITVC15-STVLP";
 static const char pci_device_12ab_0002[] = "AU8830 [Vortex2] Based Sound Card With A3D Support";
+static const char pci_device_12ab_2300[] = "Club-3D Zap TV2100";
 static const char pci_device_12ab_3000[] = "MPG-200C PCI DVD Decoder Card";
+static const char pci_device_12ab_fff3[] = "MPG600/Kuroutoshikou ITVC16-STVLP";
+static const char pci_device_12ab_ffff[] = "MPG600/Kuroutoshikou ITVC16-STVLP";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_12ac[] = "Measurex Corporation";
@@ -15302,6 +15941,7 @@ static const char pci_vendor_12d7[] = "B
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_12d8[] = "Pericom Semiconductor";
+static const char pci_device_12d8_01a7[] = "PI7C21P100 PCI to PCI Bridge";
 static const char pci_device_12d8_8150[] = "PCI to PCI Bridge";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -15805,7 +16445,7 @@ static const char pci_vendor_132d[] = "I
 static const char pci_vendor_1330[] = "MMC Networks";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const char pci_vendor_1331[] = "Radisys Corp.";
+static const char pci_vendor_1331[] = "RadiSys Corporation";
 static const char pci_device_1331_0030[] = "ENP-2611";
 static const char pci_device_1331_8200[] = "82600 Host Bridge";
 static const char pci_device_1331_8201[] = "82600 IDE";
@@ -16070,6 +16710,8 @@ static const char pci_device_1374_0037[]
 static const char pci_device_1374_0038[] = "Silicom Quad port Copper Ethernet PCI-E Intel based Bypass Server Adapter";
 static const char pci_device_1374_0039[] = "Silicom Dual port Fiber-SX Ethernet PCI-E Intel based Bypass Server Adapter";
 static const char pci_device_1374_003a[] = "Silicom Dual port Fiber-LX Ethernet PCI-E Intel based Bypass Server Adapter";
+static const char pci_device_1374_003b[] = "Silicom Dual port Fiber Ethernet PMC Intel based Bypass Server Adapter (PMCX2BPFI)";
+static const char pci_device_1374_003c[] = "Silicom Dual port Copper Ethernet PCI-X BGE based Bypass Server Adapter (PXG2BPRB)";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1375[] = "Argosystems Inc";
@@ -16134,9 +16776,10 @@ static const char pci_vendor_1384[] = "R
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1385[] = "Netgear";
 static const char pci_device_1385_0013[] = "WG311T 108 Mbps Wireless PCI Adapter";
-static const char pci_device_1385_311a[] = "GA511 Gigabit Ethernet";
-static const char pci_device_1385_4100[] = "802.11b Wireless Adapter (MA301)";
-static const char pci_device_1385_4105[] = "MA311 802.11b wireless adapter";
+static const char pci_device_1385_006b[] = "WA301 802.11b Wireless PCI Adapter";
+static const char pci_device_1385_311a[] = "GA311 Gigabit Ethernet PCI Adapter";
+static const char pci_device_1385_4100[] = "MA301 802.11b Wireless PCI Adapter";
+static const char pci_device_1385_4105[] = "MA311 802.11b Wireless PCI Adapter";
 static const char pci_device_1385_4251[] = "WG111T 108 Mbps Wireless USB 2.0 Adapter";
 static const char pci_device_1385_4400[] = "WAG511 802.11a/b/g Dual Band Wireless PC Card";
 static const char pci_device_1385_4600[] = "WAG511 802.11a/b/g Dual Band Wireless PC Card";
@@ -16156,7 +16799,7 @@ static const char pci_device_1385_622a[]
 static const char pci_device_1385_630a[] = "GA630 Gigabit Ethernet";
 static const char pci_device_1385_6b00[] = "WG311v3 54 Mbps Wireless PCI Adapter";
 static const char pci_device_1385_6d00[] = "WPNT511 RangeMax 240 Mbps Wireless PC Card";
-static const char pci_device_1385_7b00[] = "WN511B RangeMax Next 280 Mbps Wireless PC Card";
+static const char pci_device_1385_7b00[] = "WN511B RangeMax Next 270 Mbps Wireless PC Card";
 static const char pci_device_1385_7c00[] = "WN511T RangeMax Next 300 Mbps Wireless PC Card";
 static const char pci_device_1385_7d00[] = "WN311B RangeMax Next 270 Mbps Wireless PCI Adapter";
 static const char pci_device_1385_7e00[] = "WN311T RangeMax Next 300 Mbps Wireless PCI Adapter";
@@ -16207,6 +16850,7 @@ static const char pci_vendor_1393[] = "M
 static const char pci_device_1393_1040[] = "Smartio C104H/PCI";
 static const char pci_device_1393_1141[] = "Industrio CP-114";
 static const char pci_device_1393_1680[] = "Smartio C168H/PCI";
+static const char pci_device_1393_1681[] = "CP-168U V2 Smart Serial Board (8-port RS-232)";
 static const char pci_device_1393_2040[] = "Intellio CP-204J";
 static const char pci_device_1393_2180[] = "Intellio C218 Turbo PCI";
 static const char pci_device_1393_3200[] = "Intellio C320 Turbo PCI";
@@ -16233,6 +16877,9 @@ static const char pci_subsys_1397_08b4_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1397_08b4_1397_b540[] = "HFC-4S [Swyx 4xS0 SX2 QuadBri]";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1397_08b4_1397_b556[] = "HFC-4S [Junghanns DuoDBRI]";
+#endif
 static const char pci_device_1397_16b8[] = "ISDN network Controller [HFC-8S]";
 static const char pci_device_1397_2bd0[] = "ISDN network controller [HFC-PCI]";
 #ifdef INIT_SUBSYS_INFO
@@ -16247,6 +16894,9 @@ static const char pci_subsys_1397_2bd0_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1397_2bd0_e4bf_1000[] = "CI1-1-Harp";
 #endif
+static const char pci_device_1397_30b1[] = "ISDN network Controller [HFC-E1]";
+static const char pci_device_1397_b700[] = "ISDN network controller PrimuX S0 [HFC-PCI]";
+static const char pci_device_1397_f001[] = "GSM Network Controller [HFC-4GSM]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1398[] = "Clarion co. Ltd";
@@ -16297,6 +16947,7 @@ static const char pci_device_13a3_0018[]
 static const char pci_device_13a3_001d[] = "7956 Security Processor";
 static const char pci_device_13a3_0020[] = "7955 Security Processor";
 static const char pci_device_13a3_0026[] = "8155 Security Processor";
+static const char pci_device_13a3_002e[] = "9630 Compression Processor";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_13a4[] = "Rascom Inc";
@@ -16401,6 +17052,7 @@ static const char pci_subsys_13c1_1001_1
 #endif
 static const char pci_device_13c1_1002[] = "9xxx-series SATA-RAID";
 static const char pci_device_13c1_1003[] = "9550SX SATA-RAID";
+static const char pci_device_13c1_1004[] = "9650SE SATA-II RAID";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_13c2[] = "Technotrend Systemtechnik GmbH";
@@ -16465,6 +17117,7 @@ static const char pci_vendor_13d2[] = "S
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_13d3[] = "IMC Networks";
+static const char pci_device_13d3_3219[] = "DTV-DVB 7049A DVB-T USB Stick";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_13d4[] = "Graphics Microsystems Inc";
@@ -16559,7 +17212,7 @@ static const char pci_vendor_13ef[] = "C
 static const char pci_vendor_13f0[] = "Sundance Technology Inc / IC Plus Corp";
 static const char pci_device_13f0_0200[] = "IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY";
 static const char pci_device_13f0_0201[] = "ST201 Sundance Ethernet";
-static const char pci_device_13f0_1023[] = "IC Plus IP1000 Family Gigabit Ethernet";
+static const char pci_device_13f0_1023[] = "IP1000 Family Gigabit Ethernet";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_13f1[] = "Oce' - Technologies B.V.";
@@ -16608,6 +17261,7 @@ static const char pci_subsys_13f6_0111_1
 static const char pci_subsys_13f6_0111_1681_a000[] = "Gamesurround MUSE XL";
 #endif
 static const char pci_device_13f6_0211[] = "CM8738";
+static const char pci_device_13f6_9880[] = "CM9880";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_13f7[] = "Wildfire Communications";
@@ -16930,6 +17584,7 @@ static const char pci_vendor_1424[] = "V
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1425[] = "Chelsio Communications Inc";
 static const char pci_device_1425_000b[] = "T210 Protocol Engine";
+static const char pci_device_1425_000c[] = "T204 Protocol Engine";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1426[] = "Storage Technology Corp.";
@@ -17100,6 +17755,7 @@ static const char pci_vendor_1457[] = "N
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1458[] = "Giga-byte Technology";
 static const char pci_device_1458_0c11[] = "K8NS Pro Mainboard";
+static const char pci_device_1458_9001[] = "GC-PTV-TAF Hybrid TV card";
 static const char pci_device_1458_e911[] = "GN-WIAG02";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -17129,6 +17785,9 @@ static const char pci_vendor_1460[] = "D
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1461[] = "Avermedia Technologies Inc";
+static const char pci_device_1461_a3ce[] = "M179";
+static const char pci_device_1461_a3cf[] = "M179";
+static const char pci_device_1461_a836[] = "M115 DVB-T, PAL/SECAM/NTSC Tuner";
 static const char pci_device_1461_f436[] = "AVerTV Hybrid+FM";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -17138,6 +17797,8 @@ static const char pci_device_1462_6819[]
 static const char pci_device_1462_6825[] = "PCI Card wireless 11g [PC54G]";
 static const char pci_device_1462_6834[] = "RaLink RT2500 802.11g [PC54G2]";
 static const char pci_device_1462_7125[] = "K8N motherboard";
+static const char pci_device_1462_7235[] = "P965 Neo MS-7235 mainboard";
+static const char pci_device_1462_7242[] = "K9AGM RS485 Motherboard";
 static const char pci_device_1462_8725[] = "NVIDIA NV25 [GeForce4 Ti 4600] VGA Adapter";
 static const char pci_device_1462_9000[] = "NVIDIA NV28 [GeForce4 Ti 4800] VGA Adapter";
 static const char pci_device_1462_9110[] = "GeFORCE FX5200";
@@ -17146,6 +17807,7 @@ static const char pci_device_1462_9123[]
 static const char pci_device_1462_9510[] = "Radeon 9600XT";
 static const char pci_device_1462_9511[] = "Radeon 9600XT";
 static const char pci_device_1462_9591[] = "nVidia Corporation NV36 [GeForce FX 5700LE]";
+static const char pci_device_1462_b834[] = "Wireless 11g Turbo G PCI card [MSI PC60G]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1463[] = "Fast Corporation";
@@ -17611,10 +18273,17 @@ static const char pci_device_14e4_080f[]
 static const char pci_device_14e4_0811[] = "Sentry5 External Interface Core";
 static const char pci_device_14e4_0816[] = "BCM3302 Sentry5 MIPS32 CPU";
 static const char pci_device_14e4_1600[] = "NetXtreme BCM5752 Gigabit Ethernet PCI Express";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_1600_103c_3015[] = "PCIe LAN on Motherboard";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_1600_107b_5048[] = "E4500 Onboard";
 #endif
 static const char pci_device_14e4_1601[] = "NetXtreme BCM5752M Gigabit Ethernet PCI Express";
+static const char pci_device_14e4_1639[] = "NetXtreme II BCM5709 Gigabit Ethernet";
+static const char pci_device_14e4_163a[] = "NetXtreme II BCM5709S Gigabit Ethernet";
 static const char pci_device_14e4_1644[] = "NetXtreme BCM5700 Gigabit Ethernet";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_1644_1014_0277[] = "Broadcom Vigil B5700 1000Base-T";
@@ -17920,6 +18589,17 @@ static const char pci_subsys_14e4_1659_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_1659_1734_1061[] = "Primergy RX300 S2";
 #endif
+static const char pci_device_14e4_165a[] = "NetXtreme BCM5722 Gigabit Ethernet PCI Express";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_165a_103c_7051[] = "NC105i PCIe Gigabit Server Adapter";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_165a_103c_7052[] = "NC105T PCIe Gigabit Server Adapter";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_14e4_165d[] = "NetXtreme BCM5705M Gigabit Ethernet";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -17942,6 +18622,9 @@ static const char pci_subsys_14e4_165e_1
 static const char pci_subsys_14e4_165e_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_165e_10cf_1279[] = "LifeBook E8010D";
+#endif
 static const char pci_device_14e4_1668[] = "NetXtreme BCM5714 Gigabit Ethernet";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -17954,6 +18637,7 @@ static const char pci_device_14e4_166b[]
 static const char pci_device_14e4_166e[] = "570x 10/100 Integrated Controller";
 static const char pci_device_14e4_1672[] = "NetXtreme BCM5754M Gigabit Ethernet PCI Express";
 static const char pci_device_14e4_1673[] = "NetXtreme BCM5755M Gigabit Ethernet PCI Express";
+static const char pci_device_14e4_1674[] = "NetXtreme BCM5756ME Gigabit Ethernet PCI Express";
 static const char pci_device_14e4_1677[] = "NetXtreme BCM5751 Gigabit Ethernet PCI Express";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -18007,6 +18691,7 @@ static const char pci_device_14e4_167d[]
 static const char pci_subsys_14e4_167d_17aa_2081[] = "Thinkpad R60e model 0657";
 #endif
 static const char pci_device_14e4_167e[] = "NetXtreme BCM5751F Fast Ethernet PCI Express";
+static const char pci_device_14e4_167f[] = "NetLink BCM5787F Fast Ethernet PCI Express";
 static const char pci_device_14e4_1693[] = "NetLink BCM5787M Gigabit Ethernet PCI Express";
 static const char pci_device_14e4_1696[] = "NetXtreme BCM5782 Gigabit Ethernet";
 #endif
@@ -18025,6 +18710,11 @@ static const char pci_device_14e4_169c[]
 static const char pci_subsys_14e4_169c_103c_308b[] = "MX6125";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_169c_103c_30a1[] = "NC2400";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_14e4_169d[] = "NetLink BCM5789 Gigabit Ethernet PCI Express";
 static const char pci_device_14e4_16a6[] = "NetXtreme BCM5702X Gigabit Ethernet";
 #endif
@@ -18090,6 +18780,11 @@ static const char pci_subsys_14e4_16ac_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_16ac_103c_7038[] = "NC373i PCI Express Multifunction Gigabit Server Adapter";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_16ac_103c_703b[] = "NC373i Integrated Multifunction Gigabit Server Adapter";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -18152,6 +18847,11 @@ static const char pci_subsys_14e4_170c_1
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_170c_1028_01af[] = "Inspiron 6400";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_170c_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -18160,11 +18860,14 @@ static const char pci_device_14e4_170d[]
 static const char pci_subsys_14e4_170d_1014_0545[] = "ThinkPad R40e (2684-HVG) builtin ethernet controller";
 #endif
 static const char pci_device_14e4_170e[] = "NetXtreme BCM5901 100Base-TX";
+static const char pci_device_14e4_1712[] = "NetLink BCM5906 Fast Ethernet PCI Express";
+static const char pci_device_14e4_1713[] = "NetLink BCM5906M Fast Ethernet PCI Express";
 static const char pci_device_14e4_3352[] = "BCM3352";
 static const char pci_device_14e4_3360[] = "BCM3360";
 static const char pci_device_14e4_4210[] = "BCM4210 iLine10 HomePNA 2.0";
 static const char pci_device_14e4_4211[] = "BCM4211 iLine10 HomePNA 2.0 + V.90 56k modem";
 static const char pci_device_14e4_4212[] = "BCM4212 v.90 56k modem";
+static const char pci_device_14e4_4220[] = "802-11b/g Wireless PCI controller, packaged as a Linksys WPC54G ver 1.2 PCMCIA card";
 static const char pci_device_14e4_4301[] = "BCM4303 802.11b Wireless LAN Controller";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -18178,8 +18881,8 @@ static const char pci_device_14e4_4305[]
 static const char pci_device_14e4_4306[] = "BCM4307 Ethernet Controller";
 static const char pci_device_14e4_4307[] = "BCM4307 802.11b Wireless LAN Controller";
 static const char pci_device_14e4_4310[] = "BCM4310 Chipcommon I/OController";
-static const char pci_device_14e4_4311[] = "Dell Wireless 1390 WLAN Mini-PCI Card";
-static const char pci_device_14e4_4312[] = "BCM4310 UART";
+static const char pci_device_14e4_4311[] = "BCM94311MCG wlan mini-PCI";
+static const char pci_device_14e4_4312[] = "BCM4312 802.11a/b/g";
 static const char pci_device_14e4_4313[] = "BCM4310 Ethernet Controller";
 static const char pci_device_14e4_4315[] = "BCM4310 USB Controller";
 static const char pci_device_14e4_4318[] = "BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller";
@@ -18192,7 +18895,7 @@ static const char pci_subsys_14e4_4318_1
 static const char pci_subsys_14e4_4318_1043_120f[] = "A6U notebook embedded card";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_14e4_4318_1468_0311[] = "Aspire 3022WLMi, 5024WLMi";
+static const char pci_subsys_14e4_4318_1468_0311[] = "Aspire 3022WLMi, 5024WLMi, 5020";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_4318_1468_0312[] = "TravelMate 2410";
@@ -18207,6 +18910,9 @@ static const char pci_subsys_14e4_4318_1
 static const char pci_subsys_14e4_4318_16ec_0119[] = "U.S.Robotics Wireless MAXg PC Card";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_4318_1737_0042[] = "WMP54GS version 1.1 [Wireless-G PCI Adapter]  802.11g w/SpeedBooster";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_4318_1737_0048[] = "WPC54G-EU version 3 [Wireless-G Notebook Adapter]";
 #endif
 static const char pci_device_14e4_4319[] = "BCM4311 [AirForce 54g] 802.11a/b/g PCI Express Transceiver";
@@ -18249,6 +18955,9 @@ static const char pci_subsys_14e4_4320_1
 static const char pci_subsys_14e4_4320_144f_7050[] = "eMachines M6805 802.11g Built-in Wireless";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14e4_4320_144f_7051[] = "Sonnet Aria Extreme PCI";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14e4_4320_14e4_4320[] = "Linksys WMP54G PCI";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -18288,6 +18997,7 @@ static const char pci_subsys_14e4_4325_1
 #endif
 static const char pci_device_14e4_4326[] = "BCM4307 Chipcommon I/O Controller?";
 static const char pci_device_14e4_4329[] = "BCM43XG";
+static const char pci_device_14e4_4344[] = "EDGE/GPRS data and 802.11b/g combo cardbus [GC89]";
 static const char pci_device_14e4_4401[] = "BCM4401 100Base-T";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -18337,6 +19047,8 @@ static const char pci_device_14e4_5680[]
 static const char pci_device_14e4_5690[] = "BCM5690 12-port Multi-Layer Gigabit Ethernet Switch";
 static const char pci_device_14e4_5691[] = "BCM5691 GE/10GE 8+2 Gigabit Ethernet Switch Controller";
 static const char pci_device_14e4_5692[] = "BCM5692 12-port Multi-Layer Gigabit Ethernet Switch";
+static const char pci_device_14e4_5695[] = "BCM5695 12-port + HiGig Multi-Layer Gigabit Ethernet Switch";
+static const char pci_device_14e4_5698[] = "BCM5698 12-port Multi-Layer Gigabit Ethernet Switch";
 static const char pci_device_14e4_5820[] = "BCM5820 Crypto Accelerator";
 static const char pci_device_14e4_5821[] = "BCM5821 Crypto Accelerator";
 static const char pci_device_14e4_5822[] = "BCM5822 Crypto Accelerator";
@@ -18496,6 +19208,7 @@ static const char pci_device_14f1_1066[]
 static const char pci_subsys_14f1_1066_122d_4033[] = "Dell Athena - MDP3900V-U";
 #endif
 static const char pci_device_14f1_1085[] = "HCF V90 56k Data/Fax/Voice/Spkp PCI Modem";
+static const char pci_device_14f1_10b6[] = "CX06834-11 HCF V.92 56k Data/Fax/Voice/Spkp Modem";
 static const char pci_device_14f1_1433[] = "HCF 56k Data/Fax Modem";
 static const char pci_device_14f1_1434[] = "HCF 56k Data/Fax/Voice Modem";
 static const char pci_device_14f1_1435[] = "HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem";
@@ -18649,6 +19362,11 @@ static const char pci_device_14f1_2464[]
 static const char pci_device_14f1_2465[] = "HSF 56k Data/Fax/Voice/Spkp (w/HS) Modem (Mob SmartDAA)";
 static const char pci_device_14f1_2466[] = "HSF 56k Data/Fax/Voice/Spkp Modem (Mob SmartDAA)";
 static const char pci_device_14f1_2bfa[] = "HDAudio Soft Data Fax Modem with SmartCP";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14f1_2bfa_1025_0009[] = "Aspire 5622WLMi";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_device_14f1_2f00[] = "HSF 56k HSFi Modem";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14f1_2f00_13e0_8d84[] = "IBM HSFi V.90";
@@ -18662,6 +19380,9 @@ static const char pci_subsys_14f1_2f00_1
 static const char pci_device_14f1_2f02[] = "HSF 56k HSFi Data/Fax";
 static const char pci_device_14f1_2f11[] = "HSF 56k HSFi Modem";
 static const char pci_device_14f1_2f20[] = "HSF 56k Data/Fax Modem";
+static const char pci_device_14f1_2f30[] = "HSF 56k Data/Fax Modem";
+static const char pci_device_14f1_5045[] = "HDAUDIO with SmartCP";
+static const char pci_device_14f1_5047[] = "High Definition Audio [Waikiki]";
 static const char pci_device_14f1_8234[] = "RS8234 ATM SAR Controller [ServiceSAR Plus]";
 static const char pci_device_14f1_8800[] = "CX23880/1/2/3 PCI Video and Audio Decoder";
 #ifdef INIT_SUBSYS_INFO
@@ -18806,6 +19527,9 @@ static const char pci_subsys_14f1_8802_1
 static const char pci_subsys_14f1_8802_107d_663c[] = "Leadtek PVR 2000";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_14f1_8802_107d_665f[] = "WinFast DTV1000-T";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_14f1_8802_14f1_0187[] = "Conexant DVB-T reference design";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -19091,6 +19815,30 @@ static const char pci_subsys_1522_0100_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1522_0100_1522_2700[] = "RockForceF8 8 Port V.34 Super-G3 Fax Modem";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1522_0100_1522_3000[] = "IQ Express D1 - 1 Port V.92 Data Modem";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1522_0100_1522_3100[] = "IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1522_0100_1522_3200[] = "IQ Express D2 - 2 Port V.92 Data Modem";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1522_0100_1522_3300[] = "IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1522_0100_1522_3400[] = "IQ Express D4 - 4 Port V.92 Data Modem";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1522_0100_1522_3500[] = "IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1522_0100_1522_3c00[] = "IQ Express D8 - 8 Port V.92 Data Modem";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1522_0100_1522_3d00[] = "IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem";
+#endif
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1523[] = "MUSIC Semiconductors";
@@ -19106,6 +19854,7 @@ static const char pci_subsys_1524_0510_1
 static const char pci_device_1524_0520[] = "FLASH memory: ENE Technology Inc:";
 static const char pci_device_1524_0530[] = "ENE PCI Memory Stick Card Reader Controller";
 static const char pci_device_1524_0550[] = "ENE PCI Secure Digital Card Reader Controller";
+static const char pci_device_1524_0551[] = "SD/MMC Card Reader Controller";
 static const char pci_device_1524_0610[] = "PCI Smart Card Reader Controller";
 static const char pci_device_1524_1211[] = "CB1211 Cardbus Controller";
 static const char pci_device_1524_1225[] = "CB1225 Cardbus Controller";
@@ -19184,6 +19933,9 @@ static const char pci_vendor_1534[] = "R
 static const char pci_vendor_1535[] = "EVERGREEN Technologies Inc";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1536[] = "ACTIS Computer";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1537[] = "DATALEX COMMUNCATIONS";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -19478,6 +20230,9 @@ static const char pci_vendor_158f[] = "D
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1590[] = "3pardata Inc";
+static const char pci_device_1590_0001[] = "Eagle Cluster Manager";
+static const char pci_device_1590_0002[] = "Osprey Cluster Manager";
+static const char pci_device_1590_a01d[] = "FC044X Fibre Channel HBA";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1591[] = "ARN";
@@ -19587,6 +20342,7 @@ static const char pci_vendor_15b2[] = "M
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_15b3[] = "Mellanox Technologies";
+static const char pci_device_15b3_0191[] = "MT25408 [ConnectX IB SDR Flash Recovery]";
 static const char pci_device_15b3_5274[] = "MT21108 InfiniBridge";
 static const char pci_device_15b3_5a44[] = "MT23108 InfiniHost";
 static const char pci_device_15b3_5a45[] = "MT23108 [Infinihost HCA Flash Recovery]";
@@ -19596,6 +20352,10 @@ static const char pci_device_15b3_6274[]
 static const char pci_device_15b3_6278[] = "MT25208 InfiniHost III Ex (Tavor compatibility mode)";
 static const char pci_device_15b3_6279[] = "MT25208 [InfiniHost III Ex HCA Flash Recovery]";
 static const char pci_device_15b3_6282[] = "MT25208 InfiniHost III Ex";
+static const char pci_device_15b3_6340[] = "MT25408 [ConnectX IB SDR]";
+static const char pci_device_15b3_634a[] = "MT25418 [ConnectX IB DDR]";
+static const char pci_device_15b3_6354[] = "MT25428 [ConnectX IB QDR]";
+static const char pci_device_15b3_6368[] = "MT25448 [ConnectX EN 10GigE]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_15b4[] = "CCI/TRIAD";
@@ -19611,6 +20371,10 @@ static const char pci_vendor_15b7[] = "S
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_15b8[] = "ADDI-DATA GmbH";
+static const char pci_device_15b8_1003[] = "APCI1032 SP controller (32 digi inputs w/ opto coupler)";
+static const char pci_device_15b8_1005[] = "APCI2200 SP controller (8/16 digi outputs (relay))";
+static const char pci_device_15b8_100a[] = "APCI1696 SP controller (96 TTL I/Os)";
+static const char pci_device_15b8_3001[] = "APCI3501 SP controller (analog output board)";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_15b9[] = "Maestro Digital Communications";
@@ -19741,6 +20505,7 @@ static const char pci_vendor_15e1[] = "V
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_15e2[] = "Quicknet Technologies Inc";
+static const char pci_device_15e2_0500[] = "PhoneJack-PCI";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_15e3[] = "Networth Technologies Inc";
@@ -19886,6 +20651,8 @@ static const char pci_device_1626_8410[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1629[] = "Kongsberg Spacetec AS";
 static const char pci_device_1629_1003[] = "Format synchronizer v3.0";
+static const char pci_device_1629_1006[] = "Format synchronizer, model 10500";
+static const char pci_device_1629_1007[] = "Format synchronizer, model 21000";
 static const char pci_device_1629_2002[] = "Fast Universal Data Output";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -20039,10 +20806,19 @@ static const char pci_subsys_168c_0013_1
 static const char pci_subsys_168c_0013_16ab_7302[] = "Trust Speedshare Turbo Pro Wireless PCI Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_0013_17cf_0042[] = "Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_0013_185f_1012[] = "CM9 Wireless a/b/g MiniPCI Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_168c_0013_185f_2012[] = "Wistron NeWeb WLAN a+b+g model CB9";
 #endif
 static const char pci_device_168c_001a[] = "AR5005G 802.11abg NIC";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_001a_1052_168c[] = "Sweex Wireless Lan PC Card 54Mbps";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_168c_001a_1113_ee20[] = "SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU)";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -20061,11 +20837,17 @@ static const char pci_subsys_168c_001a_1
 static const char pci_subsys_168c_001a_1186_3a24[] = "D-Link AirPlus G DWL-G650+A Wireless Cardbus Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_001a_1186_3b08[] = "AirPlus G DWL-G630";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_168c_001a_168c_001a[] = "Belkin FD7000";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_168c_001a_168c_1052[] = "TP-Link TL-WN510G Wireless CardBus Adapter";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_001a_168c_2052[] = "Compex Wireless 802.11 b/g  MiniPCI Adapter, Rev A1 [WLM54G]";
+#endif
 static const char pci_device_168c_001b[] = "AR5006X 802.11abg NIC";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_168c_001b_1186_3a19[] = "D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter";
@@ -20074,16 +20856,32 @@ static const char pci_subsys_168c_001b_1
 static const char pci_subsys_168c_001b_1186_3a22[] = "D-Link AirPremier AG DWL-AG530 Wireless PCI Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_001b_1458_e901[] = "GN-WI01HT Wireless a/b/g MiniPCI Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_001b_168c_001b[] = "Wireless LAN PCI LiteOn";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_168c_001b_168c_2062[] = "EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG)";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_168c_001b_168c_2063[] = "EnGenius EMP-8602 (400mw) or Compex WLM54AG";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_001b_185f_1600[] = "DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW)";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_168c_001b_a727_6804[] = "Wireless 11a/b/g PC Card with XJACK(r) Antenna";
+#endif
+static const char pci_device_168c_001c[] = "AR5006EG 802.11 b/g Wireless PCI Express Adapter";
 static const char pci_device_168c_0020[] = "AR5005VL 802.11bg Wireless NIC";
+static const char pci_device_168c_0023[] = "AR5416 802.11a/b/g/n Wireless PCI Adapter";
+static const char pci_device_168c_0024[] = "AR5418 802.11a/b/g/n Wireless PCI Express Adapter";
 static const char pci_device_168c_1014[] = "AR5212 802.11abg NIC";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_168c_1014_1014_058a[] = "ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)";
 #endif
+static const char pci_device_168c_3b08[] = "D-Link AirPlus G DWL-G630";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1695[] = "EPoX Computer Co., Ltd.";
@@ -20093,6 +20891,10 @@ static const char pci_vendor_169c[] = "N
 static const char pci_device_169c_0044[] = "Revolution Storage Processing Card";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_169d[] = "Club-3D VB (Wrong ID)";
+static const char pci_device_169d_3306[] = "ZAP TV 2202";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_16a5[] = "Tekram Technology Co.,Ltd.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -20103,8 +20905,11 @@ static const char pci_device_16ab_1102[]
 static const char pci_device_16ab_8501[] = "WL-8305 Wireless LAN PCI Adapter";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const char pci_vendor_16ae[] = "Safenet Inc";
-static const char pci_device_16ae_1141[] = "SafeXcel-1141";
+static const char pci_vendor_16ae[] = "SafeNet Inc";
+static const char pci_device_16ae_0001[] = "SafeXcel 1140";
+static const char pci_device_16ae_000a[] = "SafeXcel 1841";
+static const char pci_device_16ae_1141[] = "SafeXcel 1141";
+static const char pci_device_16ae_1841[] = "SafeXcel 1842";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_16af[] = "SparkLAN Communications, Inc.";
@@ -20140,7 +20945,41 @@ static const char pci_vendor_16ce[] = "R
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_16d5[] = "Acromag, Inc.";
+static const char pci_device_16d5_0504[] = "PMC-DX504 Reconfigurable FPGA with LVDS I/O";
+static const char pci_device_16d5_0520[] = "PMC520 Serial Communication, 232 Octal";
+static const char pci_device_16d5_0521[] = "PMC521 Serial Communication, 422/485 Octal";
+static const char pci_device_16d5_1020[] = "PMC-AX1020 Reconfigurable FPGA with A/D & D/A";
+static const char pci_device_16d5_1065[] = "PMC-AX1065 Reconfigurable FPGA with A/D & D/A";
+static const char pci_device_16d5_2004[] = "PMC-DX2004 Reconfigurable FPGA with LVDS I/O";
+static const char pci_device_16d5_2020[] = "PMC-AX2020 Reconfigurable FPGA with A/D & D/A";
+static const char pci_device_16d5_2065[] = "PMC-AX2065 Reconfigurable FPGA with A/D & D/A";
+static const char pci_device_16d5_3020[] = "PMC-AX3020 Reconfigurable FPGA with A/D & D/A";
+static const char pci_device_16d5_3065[] = "PMC-AX3065 Reconfigurable FPGA with A/D & D/A";
+static const char pci_device_16d5_4243[] = "PMC424, APC424, AcPC424 Digital I/O and Counter Timer Module";
+static const char pci_device_16d5_4248[] = "PMC464, APC464, AcPC464 Digital I/O and Counter Timer Module";
+static const char pci_device_16d5_424b[] = "PMC-DX2002 Reconfigurable FPGA with Differential I/O";
+static const char pci_device_16d5_4253[] = "PMC-DX503 Reconfigurable FPGA with TTL and Differential I/O";
+static const char pci_device_16d5_4312[] = "PMC-CX1002 Reconfigurable Conduction-Cooled FPGA Virtex-II with Differential I/O";
+static const char pci_device_16d5_4313[] = "PMC-CX1003 Reconfigurable Conduction-Cooled FPGA Virtex-II with CMOS and Differential I/O";
+static const char pci_device_16d5_4322[] = "PMC-CX2002 Reconfigurable Conduction-Cooled FPGA Virtex-II with Differential I/O";
+static const char pci_device_16d5_4323[] = "PMC-CX2003 Reconfigurable Conduction-Cooled FPGA Virtex-II with CMOS and Differential I/O";
+static const char pci_device_16d5_4350[] = "PMC-DX501 Reconfigurable Digital I/O Module";
+static const char pci_device_16d5_4353[] = "PMC-DX2003 Reconfigurable FPGA with TTL and Differential I/O";
+static const char pci_device_16d5_4357[] = "PMC-DX502 Reconfigurable Differential I/O Module";
+static const char pci_device_16d5_4457[] = "PMC730, APC730, AcPC730 Multifunction Module";
+static const char pci_device_16d5_464d[] = "PMC408 32-Channel Digital Input/Output Module";
+static const char pci_device_16d5_4850[] = "PMC220-16 12-Bit Analog Output Module";
+static const char pci_device_16d5_4a42[] = "PMC483, APC483, AcPC483 Counter Timer Module";
+static const char pci_device_16d5_4a50[] = "PMC484, APC484, AcPC484 Counter Timer Module";
+static const char pci_device_16d5_4a56[] = "PMC230 16-Bit Analog Output Module";
+static const char pci_device_16d5_4b47[] = "PMC330, APC330, AcPC330 Analog Input Module, 16-bit A/D";
+static const char pci_device_16d5_4c40[] = "PMC-LX40 Reconfigurable Virtex-4 FPGA with plug-in I/O";
+static const char pci_device_16d5_4c60[] = "PMC-LX60 Reconfigurable Virtex-4 FPGA with plug-in I/O";
+static const char pci_device_16d5_4d4d[] = "PMC341, APC341, AcPC341 Analog Input Module, Simultaneous Sample & Hold";
 static const char pci_device_16d5_4d4e[] = "PMC482, APC482, AcPC482 Counter Timer Board";
+static const char pci_device_16d5_524d[] = "PMC-DX2001 Reconfigurable FPGA with TTL I/O";
+static const char pci_device_16d5_5335[] = "PMC-SX35 Reconfigurable Virtex-4 FPGA with plug-in I/O";
+static const char pci_device_16d5_5456[] = "PMC470 48-Channel Digital Input/Output Module";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_16df[] = "PIKA Technologies Inc.";
@@ -20152,6 +20991,7 @@ static const char pci_device_16e3_1e0f[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_16e5[] = "Intellon Corp.";
 static const char pci_device_16e5_6000[] = "INT6000 Ethernet-to-Powerline Bridge [HomePlug AV]";
+static const char pci_device_16e5_6300[] = "INT6300 Ethernet-to-Powerline Bridge [HomePlug AV]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_16ec[] = "U.S. Robotics";
@@ -20198,11 +21038,13 @@ static const char pci_device_172a_13c8[]
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1734[] = "Fujitsu Siemens Computer GmbH";
 static const char pci_device_1734_1078[] = "Amilo Pro v2010";
+static const char pci_device_1734_1085[] = "Celsius M450";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1737[] = "Linksys";
 static const char pci_device_1737_0013[] = "WMP54G Wireless Pci Card";
 static const char pci_device_1737_0015[] = "WMP54GS Wireless Pci Card";
+static const char pci_device_1737_0029[] = "WPG54G ver. 4 PCI Card";
 static const char pci_device_1737_1032[] = "Gigabit Network Adapter";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1737_1032_1737_0015[] = "EG1032 v2 Instant Gigabit Network Adapter";
@@ -20250,6 +21092,9 @@ static const char pci_vendor_175e[] = "S
 static const char pci_vendor_1775[] = "SBS Technologies";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_177d[] = "Cavium Networks";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1787[] = "Hightech Information System Ltd.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -20351,6 +21196,7 @@ static const char pci_subsys_17d5_5832_1
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_17db[] = "Cray Inc";
+static const char pci_device_17db_0101[] = "XT Series [Seastar] 3D Toroidal Router";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_17de[] = "KWorld Computer Co. Ltd.";
@@ -20373,6 +21219,14 @@ static const char pci_vendor_17ee[] = "C
 static const char pci_vendor_17f2[] = "Albatron Corp.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_17f3[] = "RDC Semiconductor, Inc.";
+static const char pci_device_17f3_6020[] = "R6020 North Bridge";
+static const char pci_device_17f3_6030[] = "R6030 ISA Bridge";
+static const char pci_device_17f3_6040[] = "R6040 MAC Controller";
+static const char pci_device_17f3_6060[] = "R6060 USB 1.1 Controller";
+static const char pci_device_17f3_6061[] = "R6061 USB 2.0 Controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_17fe[] = "Linksys, A Division of Cisco Systems";
 static const char pci_device_17fe_2120[] = "WMP11v4 802.11b PCI card";
 static const char pci_device_17fe_2220[] = "[AirConn] INPROCOMM IPN 2220 Wireless LAN Adapter (rev 01)";
@@ -20427,6 +21281,9 @@ static const char pci_subsys_1814_0201_1
 static const char pci_subsys_1814_0201_1458_e931[] = "GN-WIKG 802.11b/g mini-PCI Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1814_0201_1462_6833[] = "Unknown 802.11g mini-PCI Adapter";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1814_0201_1462_6835[] = "Wireless 11G CardBus CB54G2";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -20449,6 +21306,12 @@ static const char pci_subsys_1814_0301_1
 static const char pci_subsys_1814_0301_1186_3c09[] = "DWL-G510 Rev C";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1814_0301_13d1_abe3[] = "miniPCI Pluscom 802.11 a/b/g";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1814_0301_1458_e934[] = "GN-WP01GS";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1814_0301_1737_0055[] = "WMP54G ver 4.1";
 #endif
 static const char pci_device_1814_0302[] = "RT2561/RT61 rev B 802.11g";
@@ -20458,13 +21321,18 @@ static const char pci_subsys_1814_0302_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_1814_0302_1186_3c09[] = "DWL-G510 Rev C";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1814_0302_1462_b834[] = "PC54G3 Wireless 11g PCI Card";
+#endif
 static const char pci_device_1814_0401[] = "Ralink RT2600 802.11 MIMO";
+static const char pci_device_1814_e932[] = "RT2560F 802.11 b/g PCI";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1820[] = "InfiniCon Systems Inc.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1822[] = "Twinhan Technology Co. Ltd";
+static const char pci_device_1822_0001[] = "Twinhan VisionPlus DVB [card=113]";
 static const char pci_device_1822_4e35[] = "Mantis DTV PCI Bridge Controller [Ver 1.0]";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -20523,6 +21391,16 @@ static const char pci_device_1867_6278[]
 static const char pci_device_1867_6282[] = "MT25208 InfiniHost III Ex";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_186c[] = "Humusoft";
+static const char pci_device_186c_0614[] = "MF614 multifunction I/O card";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1876[] = "L-3 Communications";
+static const char pci_device_1876_a101[] = "VigraWATCH PCI";
+static const char pci_device_1876_a102[] = "VigraWATCH PMC";
+static const char pci_device_1876_a103[] = "Vigra I/O";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_187e[] = "ZyXEL Communication Corporation";
 static const char pci_device_187e_3403[] = "ZyAir G-110 802.11g";
 static const char pci_device_187e_340e[] = "M-302 802.11g XtremeMIMO";
@@ -20576,9 +21454,10 @@ static const char pci_vendor_18c8[] = "C
 static const char pci_vendor_18c9[] = "ARVOO Engineering BV";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const char pci_vendor_18ca[] = "XGI - Xabre Graphics Inc";
+static const char pci_vendor_18ca[] = "XGI Technology Inc. (eXtreme Graphics Innovation)";
 static const char pci_device_18ca_0020[] = "Volari Z7";
 static const char pci_device_18ca_0040[] = "Volari V3XT/V5/V8";
+static const char pci_device_18ca_0047[] = "Volari 8300 (chip: XP10, codename: XG47)";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_18d2[] = "Sitecom";
@@ -20652,7 +21531,7 @@ static const char pci_device_1923_0300[]
 static const char pci_device_1923_0400[] = "A104u Quad T1/E1 AFT";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const char pci_vendor_1924[] = "Level 5 Networks Inc.";
+static const char pci_vendor_1924[] = "Solarflare Communications";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_192e[] = "TransDimension";
@@ -20689,28 +21568,49 @@ static const char pci_device_1957_0087[]
 static const char pci_vendor_1958[] = "Faster Technology, LLC.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1959[] = "PA Semi, Inc";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1966[] = "Orad Hi-Tec Systems";
 static const char pci_device_1966_1975[] = "DVG64 family";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1969[] = "Attansic Technology Corp.";
 static const char pci_device_1969_1048[] = "L1 Gigabit Ethernet Adapter";
+static const char pci_device_1969_2048[] = "L2 100 Mbit Ethernet Adapter";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_196a[] = "Sensory Networks Inc.";
 static const char pci_device_196a_0101[] = "NodalCore C-1000 Content Classification Accelerator";
 static const char pci_device_196a_0102[] = "NodalCore C-2000 Content Classification Accelerator";
+static const char pci_device_196a_0105[] = "NodalCore C-3000 Content Classification Accelerator";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_196d[] = "Club-3D BV";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1971[] = "AGEIA Technologies, Inc.";
+static const char pci_device_1971_1011[] = "Physics Processing Unit [PhysX]";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_1971_1011_1043_0001[] = "PhysX P1";
+#endif
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_197b[] = "JMicron Technologies, Inc.";
 static const char pci_device_197b_2360[] = "JMicron 20360/20363 AHCI Controller";
 static const char pci_device_197b_2361[] = "JMB361 AHCI/IDE";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_197b_2361_1462_7235[] = "P965 Neo MS-7235 mainboard";
+#endif
 static const char pci_device_197b_2363[] = "JMicron 20360/20363 AHCI Controller";
 static const char pci_device_197b_2365[] = "JMB365 AHCI/IDE";
 static const char pci_device_197b_2366[] = "JMB366 AHCI/IDE";
+static const char pci_device_197b_2368[] = "JMB368 IDE controller";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1982[] = "Distant Early Warning Communications Inc";
+static const char pci_device_1982_1600[] = "OX16C954 HOST-A";
+static const char pci_device_1982_16ff[] = "OX16C954 HOST-B";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1989[] = "Montilio Inc.";
@@ -20724,6 +21624,11 @@ static const char pci_vendor_1993[] = "I
 static const char pci_vendor_199a[] = "Pulse-LINK, Inc.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_19a2[] = "ServerEngines LLC";
+static const char pci_device_19a2_0200[] = "BladeEngine 10Gb PCI-E iSCSI adapter";
+static const char pci_device_19a2_0201[] = "BladeEngine 10Gb PCI-E Network Adpater";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_19a8[] = "DAQDATA GmbH";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -20738,6 +21643,9 @@ static const char pci_device_19ae_0520[]
 static const char pci_vendor_19d4[] = "Quixant Limited";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_19de[] = "Pico Computing";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_19e2[] = "Vector Informatik GmbH";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -20751,11 +21659,20 @@ static const char pci_device_19e7_1005[]
 static const char pci_vendor_1a03[] = "ASPEED Technology, Inc.";
 static const char pci_device_1a03_2000[] = "AST2000";
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1a07[] = "Kvaser AB";
+static const char pci_device_1a07_0006[] = "CAN interface PC104+ HS/HS";
+static const char pci_device_1a07_0007[] = "CAN interface PCIcanx II HS or HS/HS";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1a08[] = "Sierra semiconductor";
 static const char pci_device_1a08_0000[] = "SC15064";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1a1d[] = "GFaI e.V.";
+static const char pci_device_1a1d_1a17[] = "Meta Networks MTP-1G IDPS NIC";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1a22[] = "Ambric Inc.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1a29[] = "Fortinet, Inc.";
@@ -20764,6 +21681,29 @@ static const char pci_vendor_1a29[] = "F
 static const char pci_vendor_1a51[] = "Hectronic AB";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1a5d[] = "Celoxica";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1a71[] = "XenSource, Inc.";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1a73[] = "Violin Memory, Inc";
+static const char pci_device_1a73_0001[] = "Mozart [Memory Appliance 1010]";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1a77[] = "Lightfleet Corporation";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1a78[] = "Virident Systems Inc.";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1a8c[] = "Verigy Pte. Ltd.";
+static const char pci_device_1a8c_1100[] = "E8001-66443 PCI Express CIC";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_1ab9[] = "Espia Srl";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_1b13[] = "Jaton Corp";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -20844,6 +21784,9 @@ static const char pci_device_3388_0014[]
 static const char pci_device_3388_0020[] = "HB6 Universal PCI-PCI bridge (transparent mode)";
 static const char pci_device_3388_0021[] = "HB6 Universal PCI-PCI bridge (non-transparent mode)";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_3388_0021_1775_c200[] = "C2K CompactPCI interface bridge";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_3388_0021_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -21000,6 +21943,13 @@ static const char pci_vendor_4033[] = "A
 static const char pci_device_4033_1360[] = "RTL8139 Ethernet";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_4040[] = "NetXen Incorporated";
+static const char pci_device_4040_0001[] = "NXB-10GXSR 10 Gigabit Ethernet PCIe Adapter with SR-XFP optical interface";
+static const char pci_device_4040_0002[] = "NXB-10GCX4 10 Gigabit Ethernet PCIe Adapter with CX4 copper interface";
+static const char pci_device_4040_0003[] = "NXB-4GCU Quad Gigabit Ethernet PCIe Adapter with 1000-BASE-T interface";
+static const char pci_device_4040_0004[] = "BladeCenter-H 10 Gigabit Ethernet High Speed Daughter Card";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_4143[] = "Digital Equipment Corp";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -21015,6 +21965,9 @@ static const char pci_device_416c_0200[]
 static const char pci_vendor_4321[] = "Tata Power Strategic Electronics Division";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_434e[] = "CAST Navigation LLC";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_4444[] = "Internext Compression Inc";
 static const char pci_device_4444_0016[] = "iTVC16 (CX23416) MPEG-2 Encoder";
 #ifdef INIT_SUBSYS_INFO
@@ -21168,6 +22121,10 @@ static const char pci_device_4d51_0200[]
 static const char pci_vendor_4d54[] = "Microtechnica Co Ltd";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_4d56[] = "MATRIX VISION GmbH";
+static const char pci_device_4d56_0000[] = "Altera Cyclone II CameraLink Frame Grabber [mvHYPERION-CLe]";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_4ddc[] = "ILC Data Device Corp";
 static const char pci_device_4ddc_0100[] = "DD-42924I5-300 (ARINC 429 Data Bus)";
 static const char pci_device_4ddc_0801[] = "BU-65570I1 MIL-STD-1553 Test and Simulation";
@@ -21262,6 +22219,9 @@ static const char pci_device_5333_8904[]
 static const char pci_subsys_5333_8904_1014_00db[] = "Integrated Trio3D";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_5333_8904_4843_314a[] = "Terminator 128/3D GLH";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_5333_8904_5333_8904[] = "86C365 Trio3D AGP";
 #endif
 static const char pci_device_5333_8905[] = "Trio 64V+ family";
@@ -21431,6 +22391,10 @@ static const char pci_device_5333_8d01[]
 static const char pci_device_5333_8d02[] = "VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK)";
 static const char pci_device_5333_8d03[] = "VT8751 [ProSavageDDR P4M266]";
 static const char pci_device_5333_8d04[] = "VT8375 [ProSavage8 KM266/KL266]";
+static const char pci_device_5333_8e48[] = "Chrome S27 PCIE";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_5333_8e48_5333_0130[] = "Chrome S27 256M DDR2";
+#endif
 static const char pci_device_5333_9102[] = "86C410 Savage 2000";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_5333_9102_1092_5932[] = "Viper II Z200";
@@ -21466,6 +22430,9 @@ static const char pci_vendor_5455[] = "T
 static const char pci_device_5455_4458[] = "S5933";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_5456[] = "GoTView";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_5519[] = "Cnet Technologies, Inc.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -21487,6 +22454,10 @@ static const char pci_vendor_5700[] = "N
 static const char pci_vendor_5851[] = "Exacq Technologies";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_5853[] = "XenSource, Inc.";
+static const char pci_device_5853_0001[] = "Xen Platform Device";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_6356[] = "UltraStor";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -21579,6 +22550,9 @@ static const char pci_device_8086_0536[]
 static const char pci_device_8086_0537[] = "E8870SP Interleave registers 2 and 3";
 static const char pci_device_8086_0600[] = "RAID Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_0600_8086_0136[] = "SRCU31L";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_0600_8086_01af[] = "SRCZCR";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -21588,9 +22562,9 @@ static const char pci_subsys_8086_0600_8
 static const char pci_subsys_8086_0600_8086_01f7[] = "SCRU32";
 #endif
 static const char pci_device_8086_061f[] = "80303 I/O Processor";
-static const char pci_device_8086_0960[] = "80960RP [i960 RP Microprocessor/Bridge]";
-static const char pci_device_8086_0962[] = "80960RM [i960RM Bridge]";
-static const char pci_device_8086_0964[] = "80960RP [i960 RP Microprocessor/Bridge]";
+static const char pci_device_8086_0960[] = "80960RP (i960RP) Microprocessor/Bridge";
+static const char pci_device_8086_0962[] = "80960RM (i960RM) Bridge";
+static const char pci_device_8086_0964[] = "80960RP (i960RP) Microprocessor/Bridge";
 static const char pci_device_8086_1000[] = "82542 Gigabit Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1000_0e11_b0df[] = "NC6132 Gigabit Ethernet Adapter (1000-SX)";
@@ -21651,6 +22625,9 @@ static const char pci_device_8086_1008[]
 static const char pci_subsys_8086_1008_1014_0269[] = "iSeries 1000/100/10 Ethernet Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_1008_1028_011b[] = "PowerEdge 2550";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1008_1028_011c[] = "PRO/1000 XT Network Connection";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -21955,7 +22932,10 @@ static const char pci_device_8086_103b[]
 static const char pci_device_8086_103c[] = "82801DB PRO/100 VM (CNR) Ethernet Controller";
 static const char pci_device_8086_103d[] = "82801DB PRO/100 VE (MOB) Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_103d_1014_0522[] = "Thinkpad R50e model 1634";
+static const char pci_subsys_8086_103d_1014_0522[] = "Thinkpad R40 model 2681";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_103d_8086_103d[] = "82562EZ 10/100 Ethernet Controller";
 #endif
 static const char pci_device_8086_103e[] = "82801DB PRO/100 VM (MOB) Ethernet Controller";
 static const char pci_device_8086_1040[] = "536EP Data Fax Modem";
@@ -21973,6 +22953,9 @@ static const char pci_subsys_8086_1043_8
 static const char pci_subsys_8086_1043_8086_2527[] = "MIM2000/Centrino";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_1043_8086_2561[] = "Dell Latitude D800";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1043_8086_2581[] = "Toshiba Satellite M10";
 #endif
 static const char pci_device_8086_1048[] = "PRO/10GbE LR Server Adapter";
@@ -21983,6 +22966,9 @@ static const char pci_subsys_8086_1048_8
 static const char pci_subsys_8086_1048_8086_a11f[] = "PRO/10GbE LR Server Adapter";
 #endif
 static const char pci_device_8086_1049[] = "82566MM Gigabit Network Connection";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_1049_17aa_20b9[] = "Lenovo Thinkpad T61";
+#endif
 static const char pci_device_8086_104a[] = "82566DM Gigabit Network Connection";
 static const char pci_device_8086_104b[] = "82566DC Gigabit Network Connection";
 static const char pci_device_8086_104c[] = "82562V 10/100 Network Connection";
@@ -22017,6 +23003,9 @@ static const char pci_device_8086_105e[]
 static const char pci_subsys_8086_105e_103c_7044[] = "NC360T PCI Express Dual Port Gigabit Server Adapter";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_105e_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_105e_1775_6003[] = "Telum GE-QT";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -22229,6 +23218,9 @@ static const char pci_subsys_8086_109a_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_109a_8086_109a[] = "PRO/1000 PL Network Connection";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_109a_8086_309c[] = "DeskTop Board D945GTP";
+#endif
 static const char pci_device_8086_109b[] = "82546GB PRO/1000 GF Quad Port Server Adapter";
 static const char pci_device_8086_109e[] = "82597EX 10GbE Ethernet Controller";
 #ifdef INIT_SUBSYS_INFO
@@ -22246,6 +23238,7 @@ static const char pci_subsys_8086_10a4_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_10a4_8086_11a4[] = "PRO/1000 PT Quad Port Server Adapter";
 #endif
+static const char pci_device_8086_10a5[] = "82571EB PRO/1000 PF Quad Port Server Adapter";
 static const char pci_device_8086_10b0[] = "82573L PRO/1000 PL Network Connection";
 static const char pci_device_8086_10b2[] = "82573V PRO/1000 PM Network Connection";
 static const char pci_device_8086_10b3[] = "82573E PRO/1000 PM Network Connection";
@@ -22260,6 +23253,7 @@ static const char pci_subsys_8086_10b5_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_10b5_8086_1199[] = "PRO/1000 GT Quad Port Server Adapter";
 #endif
+static const char pci_device_8086_10b6[] = "82598 10GbE PCI-Express Ethernet Controller";
 static const char pci_device_8086_10b9[] = "82572EI Gigabit Ethernet Controller (Copper)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_10b9_8086_1083[] = "PRO/1000 PT Desktop Adapter";
@@ -22276,8 +23270,16 @@ static const char pci_subsys_8086_10bc_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_10bc_8086_11bc[] = "PRO/1000 PT Quad Port LP Server Adapter";
 #endif
+static const char pci_device_8086_10bd[] = "82566DM-2 Gigabit Network Connection";
+static const char pci_device_8086_10c0[] = "82562V-2 10/100 Network Connection";
+static const char pci_device_8086_10c2[] = "82562G-2 10/100 Network Connection";
+static const char pci_device_8086_10c3[] = "82562GT-2 10/100 Network Connection";
 static const char pci_device_8086_10c4[] = "82562GT 10/100 Network Connection";
 static const char pci_device_8086_10c5[] = "82562G 10/100 Network Connection";
+static const char pci_device_8086_10c6[] = "82598AF DUAL PORT 10GbE PCI-Express Ethernet Controller";
+static const char pci_device_8086_10c7[] = "82598AF SINGLE PORT 10GbE PCI-Express Ethernet Controller";
+static const char pci_device_8086_10d9[] = "82571EB Dual Port Gigabit Mezzanine Adapter";
+static const char pci_device_8086_10da[] = "82571EB Quad Port Gigabit Mezzanine Adapter";
 static const char pci_device_8086_1107[] = "PRO/1000 MF Server Adapter (LX)";
 static const char pci_device_8086_1130[] = "82815 815 Chipset Host Bridge and Memory Controller Hub";
 #ifdef INIT_SUBSYS_INFO
@@ -22296,7 +23298,7 @@ static const char pci_subsys_8086_1130_8
 static const char pci_subsys_8086_1130_8086_4557[] = "D815EGEW Mainboard";
 #endif
 static const char pci_device_8086_1131[] = "82815 815 Chipset AGP Bridge";
-static const char pci_device_8086_1132[] = "82815 CGC [Chipset Graphics Controller]";
+static const char pci_device_8086_1132[] = "82815 Chipset Graphics Controller (CGC)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1132_1025_1016[] = "Travelmate 612 TX";
 #endif
@@ -22338,7 +23340,7 @@ static const char pci_device_8086_1225[]
 static const char pci_device_8086_1226[] = "82596 PRO/10 PCI";
 static const char pci_device_8086_1227[] = "82865 EtherExpress PRO/100A";
 static const char pci_device_8086_1228[] = "82556 EtherExpress PRO/100 Smart";
-static const char pci_device_8086_1229[] = "82557/8/9 [Ethernet Pro 100]";
+static const char pci_device_8086_1229[] = "82557/8/9 Ethernet Pro 100";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1229_0e11_3001[] = "82559 Fast Ethernet LOM with Alert on LAN*";
 #endif
@@ -22544,6 +23546,9 @@ static const char pci_subsys_8086_1229_1
 static const char pci_subsys_8086_1229_1668_1100[] = "EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_1229_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1229_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -22577,7 +23582,7 @@ static const char pci_subsys_8086_1229_8
 static const char pci_subsys_8086_1229_8086_0008[] = "82558 10/100 with Wake on LAN";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_1229_8086_0009[] = "PRO/100+ PCI (TP)";
+static const char pci_subsys_8086_1229_8086_0009[] = "82558B PRO/100+ PCI (TP)";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1229_8086_000a[] = "EtherExpress PRO/100+ Management Adapter";
@@ -22843,7 +23848,7 @@ static const char pci_subsys_8086_1461_1
 static const char pci_subsys_8086_1461_4c53_1090[] = "Cx9/Vx9 mainboard";
 #endif
 static const char pci_device_8086_1462[] = "82870P2 P64H2 Hot Plug Controller";
-static const char pci_device_8086_1960[] = "80960RP [i960RP Microprocessor]";
+static const char pci_device_8086_1960[] = "80960RP (i960RP) Microprocessor";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1960_101e_0431[] = "MegaRAID 431 RAID Controller";
 #endif
@@ -22916,18 +23921,18 @@ static const char pci_subsys_8086_1960_e
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1960_e4bf_3100[] = "CX1-BAND";
 #endif
-static const char pci_device_8086_1962[] = "80960RM [i960RM Microprocessor]";
+static const char pci_device_8086_1962[] = "80960RM (i960RM) Microprocessor";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1962_105a_0000[] = "SuperTrak SX6000 I2O CPU";
 #endif
-static const char pci_device_8086_1a21[] = "82840 840 (Carmel) Chipset Host Bridge (Hub A)";
-static const char pci_device_8086_1a23[] = "82840 840 (Carmel) Chipset AGP Bridge";
-static const char pci_device_8086_1a24[] = "82840 840 (Carmel) Chipset PCI Bridge (Hub B)";
-static const char pci_device_8086_1a30[] = "82845 845 (Brookdale) Chipset Host Bridge";
+static const char pci_device_8086_1a21[] = "82840 840 [Carmel] Chipset Host Bridge (Hub A)";
+static const char pci_device_8086_1a23[] = "82840 840 [Carmel] Chipset AGP Bridge";
+static const char pci_device_8086_1a24[] = "82840 840 [Carmel] Chipset PCI Bridge (Hub B)";
+static const char pci_device_8086_1a30[] = "82845 845 [Brookdale] Chipset Host Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_1a30_1028_010e[] = "Optiplex GX240";
 #endif
-static const char pci_device_8086_1a31[] = "82845 845 (Brookdale) Chipset AGP Bridge";
+static const char pci_device_8086_1a31[] = "82845 845 [Brookdale] Chipset AGP Bridge";
 static const char pci_device_8086_1a38[] = "5000 Series Chipset DMA Engine";
 static const char pci_device_8086_1a48[] = "PRO/10GbE SR Server Adapter";
 static const char pci_device_8086_1b48[] = "82597EX 10GbE Ethernet Controller";
@@ -22938,14 +23943,17 @@ static const char pci_subsys_8086_1b48_8
 static const char pci_subsys_8086_1b48_8086_a11f[] = "PRO/10GbE LR Server Adapter";
 #endif
 static const char pci_device_8086_2410[] = "82801AA ISA Bridge (LPC)";
-static const char pci_device_8086_2411[] = "82801AA IDE";
-static const char pci_device_8086_2412[] = "82801AA USB";
-static const char pci_device_8086_2413[] = "82801AA SMBus";
-static const char pci_device_8086_2415[] = "82801AA AC'97 Audio";
+static const char pci_device_8086_2411[] = "82801AA IDE Controller";
+static const char pci_device_8086_2412[] = "82801AA USB Controller";
+static const char pci_device_8086_2413[] = "82801AA SMBus Controller";
+static const char pci_device_8086_2415[] = "82801AA AC'97 Audio Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2415_1028_0095[] = "Precision Workstation 220 Integrated Digital Audio";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2415_1028_00b4[] = "OptiPlex GX110";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2415_110a_0051[] = "Activy 2xx";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -22960,26 +23968,26 @@ static const char pci_subsys_8086_2415_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2415_1734_1025[] = "Activy 3xx";
 #endif
-static const char pci_device_8086_2416[] = "82801AA AC'97 Modem";
+static const char pci_device_8086_2416[] = "82801AA AC'97 Modem Controller";
 static const char pci_device_8086_2418[] = "82801AA PCI Bridge";
 static const char pci_device_8086_2420[] = "82801AB ISA Bridge (LPC)";
-static const char pci_device_8086_2421[] = "82801AB IDE";
-static const char pci_device_8086_2422[] = "82801AB USB";
-static const char pci_device_8086_2423[] = "82801AB SMBus";
-static const char pci_device_8086_2425[] = "82801AB AC'97 Audio";
+static const char pci_device_8086_2421[] = "82801AB IDE Controller";
+static const char pci_device_8086_2422[] = "82801AB USB Controller";
+static const char pci_device_8086_2423[] = "82801AB SMBus Controller";
+static const char pci_device_8086_2425[] = "82801AB AC'97 Audio Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2425_11d4_0040[] = "SoundMAX Integrated Digital Audio";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2425_11d4_0048[] = "SoundMAX Integrated Digital Audio";
 #endif
-static const char pci_device_8086_2426[] = "82801AB AC'97 Modem";
+static const char pci_device_8086_2426[] = "82801AB AC'97 Modem Controller";
 static const char pci_device_8086_2428[] = "82801AB PCI Bridge";
 static const char pci_device_8086_2440[] = "82801BA ISA Bridge (LPC)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2440_8086_5744[] = "S845WD1-E";
 #endif
-static const char pci_device_8086_2442[] = "82801BA/BAM USB (Hub #1)";
+static const char pci_device_8086_2442[] = "82801BA/BAM USB Controller #1";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2442_1014_01c6[] = "Netvista A40/A40p";
 #endif
@@ -23010,7 +24018,7 @@ static const char pci_subsys_8086_2442_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2442_8086_5744[] = "S845WD1-E mainboard";
 #endif
-static const char pci_device_8086_2443[] = "82801BA/BAM SMBus";
+static const char pci_device_8086_2443[] = "82801BA/BAM SMBus Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2443_1014_01c6[] = "Netvista A40/A40p";
 #endif
@@ -23041,7 +24049,7 @@ static const char pci_subsys_8086_2443_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2443_8086_5744[] = "S845WD1-E mainboard";
 #endif
-static const char pci_device_8086_2444[] = "82801BA/BAM USB (Hub #2)";
+static const char pci_device_8086_2444[] = "82801BA/BAM USB Controller #1";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2444_1025_1016[] = "Travelmate 612 TX";
 #endif
@@ -23066,7 +24074,7 @@ static const char pci_subsys_8086_2444_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2444_8086_5744[] = "S845WD1-E mainboard";
 #endif
-static const char pci_device_8086_2445[] = "82801BA/BAM AC'97 Audio";
+static const char pci_device_8086_2445[] = "82801BA/BAM AC'97 Audio Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2445_0e11_000b[] = "Compaq Deskpro EN Audio";
 #endif
@@ -23091,7 +24099,7 @@ static const char pci_subsys_8086_2445_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2445_8086_4557[] = "D815EGEW Mainboard";
 #endif
-static const char pci_device_8086_2446[] = "82801BA/BAM AC'97 Modem";
+static const char pci_device_8086_2446[] = "82801BA/BAM AC'97 Modem Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2446_1025_1016[] = "Travelmate 612 TX";
 #endif
@@ -23100,6 +24108,9 @@ static const char pci_subsys_8086_2446_1
 #endif
 static const char pci_device_8086_2448[] = "82801 Mobile PCI Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2448_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2448_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23199,14 +24210,14 @@ static const char pci_subsys_8086_2449_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2449_8086_3018[] = "EtherExpress PRO/100";
 #endif
-static const char pci_device_8086_244a[] = "82801BAM IDE U100";
+static const char pci_device_8086_244a[] = "82801BAM IDE U100 Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_244a_1025_1016[] = "Travelmate 612TX";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_244a_104d_80df[] = "Vaio PCG-FX403";
 #endif
-static const char pci_device_8086_244b[] = "82801BA IDE U100";
+static const char pci_device_8086_244b[] = "82801BA IDE U100 Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_244b_1014_01c6[] = "Netvista A40/A40p";
 #endif
@@ -23237,14 +24248,14 @@ static const char pci_device_8086_244e[]
 static const char pci_subsys_8086_244e_1014_0267[] = "NetVista A30p";
 #endif
 static const char pci_device_8086_2450[] = "82801E ISA Bridge (LPC)";
-static const char pci_device_8086_2452[] = "82801E USB";
-static const char pci_device_8086_2453[] = "82801E SMBus";
+static const char pci_device_8086_2452[] = "82801E USB Controller";
+static const char pci_device_8086_2453[] = "82801E SMBus Controller";
 static const char pci_device_8086_2459[] = "82801E Ethernet Controller 0";
-static const char pci_device_8086_245b[] = "82801E IDE U100";
+static const char pci_device_8086_245b[] = "82801E IDE U100 Controller";
 static const char pci_device_8086_245d[] = "82801E Ethernet Controller 1";
 static const char pci_device_8086_245e[] = "82801E PCI Bridge";
 static const char pci_device_8086_2480[] = "82801CA LPC Interface Controller";
-static const char pci_device_8086_2482[] = "82801CA/CAM USB (Hub #1)";
+static const char pci_device_8086_2482[] = "82801CA/CAM USB Controller #1";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2482_0e11_0030[] = "Evo N600c";
 #endif
@@ -23279,7 +24290,7 @@ static const char pci_subsys_8086_2483_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2483_8086_1958[] = "vpr Matrix 170B4";
 #endif
-static const char pci_device_8086_2484[] = "82801CA/CAM USB (Hub #2)";
+static const char pci_device_8086_2484[] = "82801CA/CAM USB Controller #2";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2484_0e11_0030[] = "Evo N600c";
 #endif
@@ -23309,6 +24320,15 @@ static const char pci_subsys_8086_2485_1
 static const char pci_subsys_8086_2485_1014_051c[] = "ThinkPad A/T/X Series";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2485_1043_1583[] = "L3C (SPDIF)";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2485_1043_1623[] = "L2B (no SPDIF)";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2485_1043_1643[] = "L3F";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2485_104d_80e7[] = "VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23339,7 +24359,7 @@ static const char pci_subsys_8086_2486_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2486_14f1_5421[] = "MD56ORD V.92 MDC Modem";
 #endif
-static const char pci_device_8086_2487[] = "82801CA/CAM USB (Hub #3)";
+static const char pci_device_8086_2487[] = "82801CA/CAM USB Controller #3";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2487_0e11_0030[] = "Evo N600c";
 #endif
@@ -23355,7 +24375,7 @@ static const char pci_subsys_8086_2487_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2487_8086_1958[] = "vpr Matrix 170B4";
 #endif
-static const char pci_device_8086_248a[] = "82801CAM IDE U100";
+static const char pci_device_8086_248a[] = "82801CAM IDE U100 Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_248a_0e11_0030[] = "Evo N600c";
 #endif
@@ -23389,7 +24409,7 @@ static const char pci_device_8086_24c2[]
 static const char pci_subsys_8086_24c2_1014_0267[] = "NetVista A30p";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c2_1014_052d[] = "Thinkpad R50e model 1634";
+static const char pci_subsys_8086_24c2_1014_052d[] = "ThinkPad";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c2_1025_005a[] = "TravelMate 290";
@@ -23416,7 +24436,7 @@ static const char pci_subsys_8086_24c2_1
 static const char pci_subsys_8086_24c2_1071_8160[] = "MIM2000";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c2_144d_c00c[] = "P30 notebook";
+static const char pci_subsys_8086_24c2_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c2_1462_5800[] = "845PE Max (MS-6580)";
@@ -23434,14 +24454,23 @@ static const char pci_subsys_8086_24c2_1
 static const char pci_subsys_8086_24c2_4c53_1090[] = "Cx9 / Vx9 mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c2_8086_24c2[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c2_8086_4541[] = "Latitude D400";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c2_e4bf_0cc9[] = "CC9-SAMBA";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c2_e4bf_0cd2[] = "CD2-BEBOP";
+#endif
 static const char pci_device_8086_24c3[] = "82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c3_1014_0267[] = "NetVista A30p";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c3_1014_052d[] = "Thinkpad R50e model 1634";
+static const char pci_subsys_8086_24c3_1014_052d[] = "ThinkPad";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c3_1025_005a[] = "TravelMate 290";
@@ -23450,6 +24479,9 @@ static const char pci_subsys_8086_24c3_1
 static const char pci_subsys_8086_24c3_1028_0126[] = "Optiplex GX260";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c3_1028_014f[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c3_103c_088c[] = "NC8000 laptop";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23462,6 +24494,9 @@ static const char pci_subsys_8086_24c3_1
 static const char pci_subsys_8086_24c3_1071_8160[] = "MIM2000";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c3_144d_c005[] = "Samsung X10 Laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c3_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23479,12 +24514,18 @@ static const char pci_subsys_8086_24c3_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c3_4c53_1090[] = "Cx9 / Vx9 mainboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c3_e4bf_0cc9[] = "CC9-SAMBA";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c3_e4bf_0cd2[] = "CD2-BEBOP";
+#endif
 static const char pci_device_8086_24c4[] = "82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c4_1014_0267[] = "NetVista A30p";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c4_1014_052d[] = "Thinkpad R50e model 1634";
+static const char pci_subsys_8086_24c4_1014_052d[] = "ThinkPad";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c4_1025_005a[] = "TravelMate 290";
@@ -23511,7 +24552,7 @@ static const char pci_subsys_8086_24c4_1
 static const char pci_subsys_8086_24c4_1071_8160[] = "MIM2000";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c4_144d_c00c[] = "P30 notebook";
+static const char pci_subsys_8086_24c4_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c4_1462_5800[] = "845PE Max (MS-6580)";
@@ -23526,8 +24567,17 @@ static const char pci_subsys_8086_24c4_1
 static const char pci_subsys_8086_24c4_4c53_1090[] = "Cx9 / Vx9 mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c4_8086_24c2[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c4_8086_4541[] = "Latitude D400";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c4_e4bf_0cc9[] = "CC9-SAMBA";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c4_e4bf_0cd2[] = "CD2-BEBOP";
+#endif
 static const char pci_device_8086_24c5[] = "82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c5_0e11_00b8[] = "Analog Devices Inc. codec [SoundMAX]";
@@ -23536,6 +24586,9 @@ static const char pci_subsys_8086_24c5_0
 static const char pci_subsys_8086_24c5_1014_0267[] = "NetVista A30p";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c5_1014_0537[] = "ThinkPad T41";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c5_1014_055f[] = "Thinkpad R50e model 1634";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23545,6 +24598,9 @@ static const char pci_subsys_8086_24c5_1
 static const char pci_subsys_8086_24c5_1028_0139[] = "Latitude D400";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c5_1028_014f[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c5_1028_0163[] = "Latitude D505";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23563,7 +24619,10 @@ static const char pci_subsys_8086_24c5_1
 static const char pci_subsys_8086_24c5_1071_8160[] = "MIM2000";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c5_144d_c00c[] = "P30 notebook";
+static const char pci_subsys_8086_24c5_144d_c005[] = "Samsung X10 Laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c5_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c5_1458_a002[] = "GA-8PE667 Ultra";
@@ -23577,8 +24636,20 @@ static const char pci_subsys_8086_24c5_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c5_1734_1055[] = "Amilo M1420";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c5_8086_24c5[] = "Dell Dimension 2400";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c5_a002_1458[] = "Realtek AC'97 codec [ALC655]";
+#endif
 static const char pci_device_8086_24c6[] = "82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c6_1014_0524[] = "Thinkpad T41";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c6_1014_0525[] = "ThinkPad";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c6_1014_0559[] = "Thinkpad R50e model 1634";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23603,14 +24674,17 @@ static const char pci_subsys_8086_24c6_1
 static const char pci_subsys_8086_24c6_1071_8160[] = "MIM2000";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c6_144d_c00c[] = "P30 notebook";
+static const char pci_subsys_8086_24c6_144d_2115[] = "Samsung X10 Laptop";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c6_144d_c00c[] = "P30/P35 notebook";
 #endif
 static const char pci_device_8086_24c7[] = "82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c7_1014_0267[] = "NetVista A30p";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c7_1014_052d[] = "Thinkpad R50e model 1634";
+static const char pci_subsys_8086_24c7_1014_052d[] = "ThinkPad";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c7_1025_005a[] = "TravelMate 290";
@@ -23637,7 +24711,7 @@ static const char pci_subsys_8086_24c7_1
 static const char pci_subsys_8086_24c7_1071_8160[] = "MIM2000";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24c7_144d_c00c[] = "P30 notebook";
+static const char pci_subsys_8086_24c7_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c7_1462_5800[] = "845PE Max (MS-6580)";
@@ -23652,16 +24726,28 @@ static const char pci_subsys_8086_24c7_1
 static const char pci_subsys_8086_24c7_4c53_1090[] = "Cx9 / Vx9 mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c7_8086_24c2[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24c7_8086_4541[] = "Latitude D400";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c7_e4bf_0cc9[] = "CC9-SAMBA";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24c7_e4bf_0cd2[] = "CD2-BEBOP";
+#endif
 static const char pci_device_8086_24ca[] = "82801DBM (ICH4-M) IDE Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24ca_1014_052d[] = "Thinkpad R50e model 1634";
+static const char pci_subsys_8086_24ca_1014_052d[] = "ThinkPad";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24ca_1025_005a[] = "TravelMate 290";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24ca_1028_014f[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24ca_1028_0163[] = "Latitude D505";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23680,7 +24766,7 @@ static const char pci_subsys_8086_24ca_1
 static const char pci_subsys_8086_24ca_1071_8160[] = "MIM2000";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24ca_144d_c00c[] = "P30 notebook";
+static const char pci_subsys_8086_24ca_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24ca_1734_1055[] = "Amilo M1420";
@@ -23707,6 +24793,12 @@ static const char pci_subsys_8086_24cb_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24cb_4c53_1090[] = "Cx9 / Vx9 mainboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24cb_e4bf_0cc9[] = "CC9-SAMBA";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24cb_e4bf_0cd2[] = "CD2-BEBOP";
+#endif
 static const char pci_device_8086_24cc[] = "82801DBM (ICH4-M) LPC Interface Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24cc_144d_c00c[] = "P30 notebook";
@@ -23719,7 +24811,7 @@ static const char pci_device_8086_24cd[]
 static const char pci_subsys_8086_24cd_1014_0267[] = "NetVista A30p";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24cd_1014_052e[] = "Thinkpad R50e model 1634";
+static const char pci_subsys_8086_24cd_1014_052e[] = "ThinkPad";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24cd_1025_005a[] = "TravelMate 290";
@@ -23755,7 +24847,7 @@ static const char pci_subsys_8086_24cd_1
 static const char pci_subsys_8086_24cd_1179_ff00[] = "Satellite 2430";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24cd_144d_c00c[] = "P30 notebook";
+static const char pci_subsys_8086_24cd_144d_c00c[] = "P30/P35 notebook";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24cd_1462_3981[] = "845PE Max (MS-6580)";
@@ -23772,6 +24864,15 @@ static const char pci_subsys_8086_24cd_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24cd_4c53_1090[] = "Cx9 / Vx9 mainboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24cd_8086_24c2[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24cd_e4bf_0cc9[] = "CC9-SAMBA";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24cd_e4bf_0cd2[] = "CD2-BEBOP";
+#endif
 static const char pci_device_8086_24d0[] = "82801EB/ER (ICH5/ICH5R) LPC Interface Bridge";
 static const char pci_device_8086_24d1[] = "82801EB (ICH5) SATA Controller";
 #ifdef INIT_SUBSYS_INFO
@@ -23793,6 +24894,9 @@ static const char pci_subsys_8086_24d1_1
 static const char pci_subsys_8086_24d1_1462_7280[] = "865PE Neo2 (MS-6728)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24d1_1565_5200[] = "P4TSV Motherboard (865G)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24d1_15d9_4580[] = "P4SCE Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23809,7 +24913,10 @@ static const char pci_subsys_8086_24d1_8
 #endif
 static const char pci_device_8086_24d2[] = "82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24d2_1014_02ed[] = "xSeries server mainboard";
+static const char pci_subsys_8086_24d2_1014_02dd[] = "eServer xSeries server mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24d2_1014_02ed[] = "eServer xSeries server mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24d2_1028_0169[] = "Precision 470";
@@ -23836,6 +24943,9 @@ static const char pci_subsys_8086_24d2_1
 static const char pci_subsys_8086_24d2_1462_7280[] = "865PE Neo2 (MS-6728)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24d2_1565_3101[] = "P4TSV Motherboard (865G)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24d2_15d9_4580[] = "P4SCE Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23855,7 +24965,10 @@ static const char pci_subsys_8086_24d2_8
 #endif
 static const char pci_device_8086_24d3[] = "82801EB/ER (ICH5/ICH5R) SMBus Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24d3_1014_02ed[] = "xSeries server mainboard";
+static const char pci_subsys_8086_24d3_1014_02dd[] = "eServer xSeries server mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24d3_1014_02ed[] = "eServer xSeries server mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24d3_1028_0156[] = "Precision 360";
@@ -23876,6 +24989,9 @@ static const char pci_subsys_8086_24d3_1
 static const char pci_subsys_8086_24d3_1462_7280[] = "865PE Neo2 (MS-6728)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24d3_1565_3101[] = "P4TSV Motherboard (865G)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24d3_15d9_4580[] = "P4SCE Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -23895,7 +25011,10 @@ static const char pci_subsys_8086_24d3_8
 #endif
 static const char pci_device_8086_24d4[] = "82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24d4_1014_02ed[] = "xSeries server mainboard";
+static const char pci_subsys_8086_24d4_1014_02dd[] = "eServer xSeries server mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24d4_1014_02ed[] = "eServer xSeries server mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24d4_1028_0169[] = "Precision 470";
@@ -23922,6 +25041,9 @@ static const char pci_subsys_8086_24d4_1
 static const char pci_subsys_8086_24d4_1462_7280[] = "865PE Neo2 (MS-6728)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24d4_1565_3101[] = "P4TSV Motherboard (865G)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24d4_15d9_4580[] = "P4SCE Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24009,6 +25131,9 @@ static const char pci_subsys_8086_24d7_1
 static const char pci_subsys_8086_24d7_1462_7280[] = "865PE Neo2 (MS-6728)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24d7_1565_3101[] = "P4TSV Motherboard (865G)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24d7_15d9_4580[] = "P4SCE Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24028,7 +25153,10 @@ static const char pci_subsys_8086_24d7_8
 #endif
 static const char pci_device_8086_24db[] = "82801EB/ER (ICH5/ICH5R) IDE Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24db_1014_02ed[] = "xSeries server mainboard";
+static const char pci_subsys_8086_24db_1014_02dd[] = "eServer xSeries server mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24db_1014_02ed[] = "eServer xSeries server mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24db_1028_0169[] = "Precision 470";
@@ -24055,6 +25183,9 @@ static const char pci_subsys_8086_24db_1
 static const char pci_subsys_8086_24db_1462_7580[] = "MSI 875P";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24db_1565_3101[] = "P4TSV Motherboard (865G)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24db_15d9_4580[] = "P4SCE Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24078,7 +25209,10 @@ static const char pci_subsys_8086_24db_8
 static const char pci_device_8086_24dc[] = "82801EB (ICH5) LPC Interface Bridge";
 static const char pci_device_8086_24dd[] = "82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_24dd_1014_02ed[] = "xSeries server mainboard";
+static const char pci_subsys_8086_24dd_1014_02dd[] = "eServer xSeries server mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24dd_1014_02ed[] = "eServer xSeries server mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24dd_1028_0169[] = "Precision 470";
@@ -24133,6 +25267,9 @@ static const char pci_subsys_8086_24de_1
 static const char pci_subsys_8086_24de_1462_7280[] = "865PE Neo2 (MS-6728)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_24de_1565_3101[] = "P4TSV Motherboard (865G)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_24de_15d9_4580[] = "P4SCE Mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24232,6 +25369,9 @@ static const char pci_subsys_8086_2562_0
 static const char pci_subsys_8086_2562_1014_0267[] = "NetVista A30p";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2562_1734_1003[] = "D1521 Mainboard (Fujitsu-Siemens)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2562_1734_1004[] = "D1451 Mainboard (SCENIC N300, i845GV)";
 #endif
 static const char pci_device_8086_2570[] = "82865G/PE/P DRAM Controller/Host-Hub Interface";
@@ -24306,6 +25446,9 @@ static const char pci_subsys_8086_2582_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2582_1734_105b[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2582_1849_2582[] = "ASRock P4Dual-915GL";
+#endif
 static const char pci_device_8086_2584[] = "82925X/XE Memory Controller Hub";
 static const char pci_device_8086_2585[] = "82925X/XE PCI Express Root Port";
 static const char pci_device_8086_2588[] = "E7220/E7221 Memory Controller Hub";
@@ -24316,12 +25459,30 @@ static const char pci_device_8086_2590[]
 static const char pci_subsys_8086_2590_1028_0182[] = "Dell Latidude C610";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2590_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2590_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2590_104d_81b7[] = "Vaio VGN-S3XP";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2590_a304_81b7[] = "Vaio VGN-S3XP";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2590_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2590_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2590_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2591[] = "Mobile 915GM/PM Express PCI Express Root Port";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2591_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
 static const char pci_device_8086_2592[] = "Mobile 915GM/GMS/910GML Express Graphics Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2592_103c_099c[] = "NX6110/NC6120";
@@ -24332,12 +25493,24 @@ static const char pci_subsys_8086_2592_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2592_1043_1881[] = "GMA 900 915GM Integrated Graphics";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2592_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2592_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2592_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_25a1[] = "6300ESB LPC Interface Controller";
 static const char pci_device_8086_25a2[] = "6300ESB PATA Storage Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25a2_1775_10d0[] = "V5D Single Board Computer IDE";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25a2_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25a2_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24348,6 +25521,9 @@ static const char pci_subsys_8086_25a2_4
 #endif
 static const char pci_device_8086_25a3[] = "6300ESB SATA Storage Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25a3_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25a3_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24364,6 +25540,9 @@ static const char pci_device_8086_25a4[]
 static const char pci_subsys_8086_25a4_1775_10d0[] = "V5D Single Board Computer";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25a4_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25a4_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24377,6 +25556,9 @@ static const char pci_subsys_8086_25a4_4
 #endif
 static const char pci_device_8086_25a6[] = "6300ESB AC'97 Audio Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25a6_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25a6_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24388,6 +25570,9 @@ static const char pci_device_8086_25a9[]
 static const char pci_subsys_8086_25a9_1775_10d0[] = "V5D Single Board Computer USB";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25a9_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25a9_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24401,6 +25586,9 @@ static const char pci_subsys_8086_25a9_4
 #endif
 static const char pci_device_8086_25aa[] = "6300ESB USB Universal Host Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25aa_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25aa_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24414,6 +25602,9 @@ static const char pci_device_8086_25ab[]
 static const char pci_subsys_8086_25ab_1775_10d0[] = "V5D Single Board Computer";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25ab_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25ab_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24430,6 +25621,9 @@ static const char pci_device_8086_25ac[]
 static const char pci_subsys_8086_25ac_1775_10d0[] = "V5D Single Board Computer";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25ac_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25ac_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24446,6 +25640,9 @@ static const char pci_device_8086_25ad[]
 static const char pci_subsys_8086_25ad_1775_10d0[] = "V5D Single Board Computer USB 2.0";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25ad_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25ad_1775_ce90[] = "CE9";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24460,6 +25657,9 @@ static const char pci_subsys_8086_25ad_4
 static const char pci_device_8086_25ae[] = "6300ESB 64-bit PCI-X Bridge";
 static const char pci_device_8086_25b0[] = "6300ESB SATA RAID Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_25b0_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_25b0_4c53_10d0[] = "Telum ASLP10 Processor AMC";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24525,8 +25725,20 @@ static const char pci_subsys_8086_2640_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2640_1734_105c[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2640_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2640_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2640_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2641[] = "82801FBM (ICH6M) LPC Interface Bridge";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2641_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2641_103c_099c[] = "NX6110/NC6120";
 #endif
 static const char pci_device_8086_2642[] = "82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge";
@@ -24543,6 +25755,15 @@ static const char pci_subsys_8086_2651_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2651_8086_4147[] = "D915GAG Motherboard";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2651_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2651_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2651_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2652[] = "82801FR/FRW (ICH6R/ICH6RW) SATA Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2652_1462_7028[] = "915P/G Neo2";
@@ -24553,6 +25774,9 @@ static const char pci_device_8086_2658[]
 static const char pci_subsys_8086_2658_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2658_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2658_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24567,11 +25791,23 @@ static const char pci_subsys_8086_2658_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2658_1734_105c[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2658_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2658_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2658_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2659[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2659_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2659_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2659_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24586,11 +25822,23 @@ static const char pci_subsys_8086_2659_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2659_1734_105c[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2659_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2659_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2659_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_265a[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265a_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265a_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265a_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24605,6 +25853,15 @@ static const char pci_subsys_8086_265a_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265a_1734_105c[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265a_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265a_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265a_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_265b[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265b_1028_0179[] = "Optiplex GX280";
@@ -24624,11 +25881,23 @@ static const char pci_subsys_8086_265b_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265b_1734_105c[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265b_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265b_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265b_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_265c[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265c_1028_0179[] = "Optiplex GX280";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265c_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265c_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24646,13 +25915,64 @@ static const char pci_subsys_8086_265c_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_265c_8086_265c[] = "Dimension 3100";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265c_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265c_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_265c_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2660[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2660_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2660_103c_099c[] = "NX6110/NC6120";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2660_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2660_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2660_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2662[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2662_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2662_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2662_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2662_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2664[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2664_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2664_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2664_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2666[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2666_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2666_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2666_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2668[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2668_103c_2a09[] = "PufferM-UL8E";
@@ -24676,12 +25996,24 @@ static const char pci_subsys_8086_266a_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266a_1734_105c[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266a_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266a_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266a_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_266c[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) LAN Controller";
 static const char pci_device_8086_266d[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266d_1025_006a[] = "Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266d_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266d_103c_099c[] = "NX6110/NC6120";
 #endif
 static const char pci_device_8086_266e[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller";
@@ -24698,6 +26030,9 @@ static const char pci_subsys_8086_266e_1
 static const char pci_subsys_8086_266e_1028_0188[] = "Inspiron 6000 laptop";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266e_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266e_103c_0944[] = "Compaq NC6220";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24717,6 +26052,9 @@ static const char pci_subsys_8086_266e_1
 #endif
 static const char pci_device_8086_266f[] = "82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266f_103c_0934[] = "HP Compaq nw8240 Mobile Workstation";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266f_103c_099c[] = "NX6110/NC6120";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24731,11 +26069,20 @@ static const char pci_subsys_8086_266f_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_266f_1734_105c[] = "Scenic W620";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266f_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266f_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_266f_e4bf_58b1[] = "XB1";
+#endif
 static const char pci_device_8086_2670[] = "631xESB/632xESB/3100 Chipset LPC Interface Controller";
-static const char pci_device_8086_2680[] = "631xESB/632xESB/3100 Chipset SATA Storage Controller IDE";
-static const char pci_device_8086_2681[] = "631xESB/632xESB SATA Storage Controller AHCI";
-static const char pci_device_8086_2682[] = "631xESB/632xESB SATA Storage Controller RAID";
-static const char pci_device_8086_2683[] = "631xESB/632xESB SATA Storage Controller RAID";
+static const char pci_device_8086_2680[] = "631xESB/632xESB/3100 Chipset SATA IDE Controller";
+static const char pci_device_8086_2681[] = "631xESB/632xESB SATA AHCI Controller";
+static const char pci_device_8086_2682[] = "631xESB/632xESB SATA RAID Controller";
+static const char pci_device_8086_2683[] = "631xESB/632xESB SATA RAID Controller";
 static const char pci_device_8086_2688[] = "631xESB/632xESB/3100 Chipset UHCI USB Controller #1";
 static const char pci_device_8086_2689[] = "631xESB/632xESB/3100 Chipset UHCI USB Controller #2";
 static const char pci_device_8086_268a[] = "631xESB/632xESB/3100 Chipset UHCI USB Controller #3";
@@ -24769,6 +26116,9 @@ static const char pci_device_8086_2778[]
 static const char pci_device_8086_2779[] = "E7230/3000/3010 PCI Express Root Port";
 static const char pci_device_8086_277a[] = "82975X/3010 PCI Express Root Port";
 static const char pci_device_8086_277c[] = "82975X Memory Controller Hub";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_277c_1043_8178[] = "P5WDG2 WS Professional motherboard";
+#endif
 static const char pci_device_8086_277d[] = "82975X PCI Express Root Port";
 static const char pci_device_8086_2782[] = "82915G Integrated Graphics Controller";
 #ifdef INIT_SUBSYS_INFO
@@ -24784,22 +26134,34 @@ static const char pci_subsys_8086_2792_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2792_1043_1881[] = "GMA 900 915GM Integrated Graphics";
 #endif
-static const char pci_device_8086_27a0[] = "Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2792_e4bf_0ccd[] = "CCD-CALYPSO";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2792_e4bf_0cd3[] = "CD3-JIVE";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2792_e4bf_58b1[] = "XB1";
+#endif
+static const char pci_device_8086_27a0[] = "Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27a0_1025_006c[] = "9814 WKMI";
+#endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27a0_103c_30a1[] = "NC2400";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27a0_17aa_2017[] = "Thinkpad R60e model 0657";
 #endif
-static const char pci_device_8086_27a1[] = "Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port";
-static const char pci_device_8086_27a2[] = "Mobile 945GM/GMS/940GML Express Integrated Graphics Controller";
+static const char pci_device_8086_27a1[] = "Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port";
+static const char pci_device_8086_27a2[] = "Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27a2_103c_30a1[] = "NC2400";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27a2_17aa_201a[] = "Thinkpad R60e model 0657";
 #endif
-static const char pci_device_8086_27a6[] = "Mobile 945GM/GMS/940GML Express Integrated Graphics Controller";
+static const char pci_device_8086_27a6[] = "Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27a6_103c_30a1[] = "NC2400";
 #endif
@@ -24807,6 +26169,9 @@ static const char pci_subsys_8086_27a6_1
 static const char pci_subsys_8086_27a6_17aa_201a[] = "Thinkpad R60e model 0657";
 #endif
 static const char pci_device_8086_27b0[] = "82801GH (ICH7DH) LPC Interface Bridge";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27b0_8086_544e[] = "DeskTop Board D945GTP";
+#endif
 static const char pci_device_8086_27b8[] = "82801GB/GR (ICH7 Family) LPC Interface Bridge";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27b8_107b_5048[] = "E4500";
@@ -24825,22 +26190,37 @@ static const char pci_subsys_8086_27b9_1
 static const char pci_subsys_8086_27b9_17aa_2009[] = "ThinkPad T60/R60 series";
 #endif
 static const char pci_device_8086_27bd[] = "82801GHM (ICH7-M DH) LPC Interface Bridge";
-static const char pci_device_8086_27c0[] = "82801GB/GR/GH (ICH7 Family) Serial ATA Storage Controller IDE";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27bd_1025_006c[] = "9814 WKMI";
+#endif
+static const char pci_device_8086_27c0[] = "82801GB/GR/GH (ICH7 Family) SATA IDE Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27c0_107b_5048[] = "E4500";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27c0_1462_7236[] = "945P Neo3-F Rev. 2.2 motherboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27c0_8086_544e[] = "DeskTop Board D945GTP";
 #endif
-static const char pci_device_8086_27c1[] = "82801GR/GH (ICH7 Family) Serial ATA Storage Controller AHCI";
-static const char pci_device_8086_27c3[] = "82801GR/GH (ICH7 Family) Serial ATA Storage Controller RAID";
-static const char pci_device_8086_27c4[] = "82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE";
-static const char pci_device_8086_27c5[] = "82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI";
+static const char pci_device_8086_27c1[] = "82801GR/GH (ICH7 Family) SATA AHCI Controller";
+static const char pci_device_8086_27c3[] = "82801GR/GH (ICH7 Family) SATA RAID Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27c3_8086_544e[] = "DeskTop Board D945GTP";
+#endif
+static const char pci_device_8086_27c4[] = "82801GBM/GHM (ICH7 Family) SATA IDE Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27c4_1025_006c[] = "9814 WKMI";
+#endif
+static const char pci_device_8086_27c5[] = "82801GBM/GHM (ICH7 Family) SATA AHCI Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27c5_17aa_200d[] = "Thinkpad R60e model 0657";
 #endif
-static const char pci_device_8086_27c6[] = "82801GHM (ICH7-M DH) Serial ATA Storage Controller RAID";
-static const char pci_device_8086_27c8[] = "82801G (ICH7 Family) USB UHCI #1";
+static const char pci_device_8086_27c6[] = "82801GHM (ICH7-M DH) SATA RAID Controller";
+static const char pci_device_8086_27c8[] = "82801G (ICH7 Family) USB UHCI Controller #1";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27c8_1025_006c[] = "9814 WKMI";
+#endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27c8_103c_30a1[] = "NC2400";
 #endif
@@ -24853,7 +26233,10 @@ static const char pci_subsys_8086_27c8_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27c8_8086_544e[] = "DeskTop Board D945GTP";
 #endif
-static const char pci_device_8086_27c9[] = "82801G (ICH7 Family) USB UHCI #2";
+static const char pci_device_8086_27c9[] = "82801G (ICH7 Family) USB UHCI Controller #2";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27c9_1025_006c[] = "9814 WKMI";
+#endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27c9_103c_30a1[] = "NC2400";
 #endif
@@ -24866,7 +26249,10 @@ static const char pci_subsys_8086_27c9_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27c9_8086_544e[] = "DeskTop Board D945GTP";
 #endif
-static const char pci_device_8086_27ca[] = "82801G (ICH7 Family) USB UHCI #3";
+static const char pci_device_8086_27ca[] = "82801G (ICH7 Family) USB UHCI Controller #3";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27ca_1025_006c[] = "9814 WKMI";
+#endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27ca_103c_30a1[] = "NC2400";
 #endif
@@ -24879,7 +26265,10 @@ static const char pci_subsys_8086_27ca_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27ca_8086_544e[] = "DeskTop Board D945GTP";
 #endif
-static const char pci_device_8086_27cb[] = "82801G (ICH7 Family) USB UHCI #4";
+static const char pci_device_8086_27cb[] = "82801G (ICH7 Family) USB UHCI Controller #4";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27cb_1025_006c[] = "9814 WKMI";
+#endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27cb_103c_30a1[] = "NC2400";
 #endif
@@ -24894,6 +26283,9 @@ static const char pci_subsys_8086_27cb_8
 #endif
 static const char pci_device_8086_27cc[] = "82801G (ICH7 Family) USB2 EHCI Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27cc_1025_006c[] = "9814 WKMI";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27cc_103c_30a1[] = "NC2400";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24908,16 +26300,22 @@ static const char pci_device_8086_27d4[]
 static const char pci_device_8086_27d6[] = "82801G (ICH7 Family) PCI Express Port 4";
 static const char pci_device_8086_27d8[] = "82801G (ICH7 Family) High Definition Audio Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27d8_1025_006c[] = "9814 WKMI";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27d8_103c_30a1[] = "NC2400";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27d8_1043_13c4[] = "Asus G2P";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27d8_107b_5048[] = "E4500";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27d8_10f7_8338[] = "Panasonic CF-Y5 laptop";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_27d8_1179_ff31[] = "Toshiba America Information Systems:AC97 Data Fax SoftModem with SmartCP";
+static const char pci_subsys_8086_27d8_1179_ff31[] = "AC97 Data Fax SoftModem with SmartCP";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27d8_152d_0753[] = "Softmodem";
@@ -24928,8 +26326,17 @@ static const char pci_subsys_8086_27d8_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27d8_17aa_2010[] = "ThinkPad T60/R60 series";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27d8_17aa_3802[] = "Lenovo 3000 C200 audio [Realtek ALC861VD]";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27d8_8086_1112[] = "DeskTop Board D945GTP";
+#endif
 static const char pci_device_8086_27da[] = "82801G (ICH7 Family) SMBus Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27da_1025_006c[] = "9814 WKMI";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27da_10f7_8338[] = "Panasonic CF-Y5 laptop";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -24944,6 +26351,9 @@ static const char pci_subsys_8086_27dc_8
 #endif
 static const char pci_device_8086_27dd[] = "82801G (ICH7 Family) AC'97 Modem Controller";
 static const char pci_device_8086_27de[] = "82801G (ICH7 Family) AC'97 Audio Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_27de_1462_7267[] = "Realtek ALC883 Audio Controller";
+#endif
 static const char pci_device_8086_27df[] = "82801G (ICH7 Family) IDE Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_27df_103c_30a1[] = "NC2400";
@@ -24963,43 +26373,52 @@ static const char pci_subsys_8086_27df_8
 static const char pci_device_8086_27e0[] = "82801GR/GH/GHM (ICH7 Family) PCI Express Port 5";
 static const char pci_device_8086_27e2[] = "82801GR/GH/GHM (ICH7 Family) PCI Express Port 6";
 static const char pci_device_8086_2810[] = "82801HB/HR (ICH8/R) LPC Interface Controller";
-static const char pci_device_8086_2811[] = "Mobile LPC Interface Controller";
+static const char pci_device_8086_2811[] = "82801HBM (ICH8M-E) LPC Interface Controller";
 static const char pci_device_8086_2812[] = "82801HH (ICH8DH) LPC Interface Controller";
 static const char pci_device_8086_2814[] = "82801HO (ICH8DO) LPC Interface Controller";
-static const char pci_device_8086_2815[] = "Mobile LPC Interface Controller";
+static const char pci_device_8086_2815[] = "82801HEM (ICH8M) LPC Interface Controller";
 static const char pci_device_8086_2820[] = "82801H (ICH8 Family) 4 port SATA IDE Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2820_1462_7235[] = "P965 Neo MS-7235 mainboard";
 #endif
 static const char pci_device_8086_2821[] = "82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller";
-static const char pci_device_8086_2822[] = "82801HR/HO/HH (ICH8R/DO/DH) SATA RAID Controller";
+static const char pci_device_8086_2822[] = "82801 SATA RAID Controller";
 static const char pci_device_8086_2824[] = "82801HB (ICH8) 4 port SATA AHCI Controller";
 static const char pci_device_8086_2825[] = "82801H (ICH8 Family) 2 port SATA IDE Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2825_1462_7235[] = "P965 Neo MS-7235 mainboard";
 #endif
-static const char pci_device_8086_2828[] = "Mobile SATA IDE Controller";
-static const char pci_device_8086_2829[] = "Mobile SATA AHCI Controller";
-static const char pci_device_8086_282a[] = "Mobile SATA RAID Controller";
-static const char pci_device_8086_2830[] = "82801H (ICH8 Family) USB UHCI #1";
+static const char pci_device_8086_2828[] = "82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller";
+static const char pci_device_8086_2829[] = "82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller";
+static const char pci_device_8086_282a[] = "Mobile 82801 SATA RAID Controller";
+static const char pci_device_8086_2830[] = "82801H (ICH8 Family) USB UHCI Controller #1";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2830_1462_7235[] = "P965 Neo MS-7235 mainboard";
 #endif
-static const char pci_device_8086_2831[] = "82801H (ICH8 Family) USB UHCI #2";
+static const char pci_device_8086_2831[] = "82801H (ICH8 Family) USB UHCI Controller #2";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2831_1462_7235[] = "P965 Neo MS-7235 mainboard";
 #endif
-static const char pci_device_8086_2832[] = "82801H (ICH8 Family) USB UHCI #3";
-static const char pci_device_8086_2834[] = "82801H (ICH8 Family) USB UHCI #4";
+static const char pci_device_8086_2832[] = "82801H (ICH8 Family) USB UHCI Controller #3";
+static const char pci_device_8086_2834[] = "82801H (ICH8 Family) USB UHCI Contoller #4";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2834_1462_7235[] = "P965 Neo MS-7235 mainboard";
 #endif
-static const char pci_device_8086_2835[] = "82801H (ICH8 Family) USB UHCI #5";
-static const char pci_device_8086_2836[] = "82801H (ICH8 Family) USB2 EHCI #1";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2834_17aa_20aa[] = "Lenovo Thinkpad T61";
+#endif
+static const char pci_device_8086_2835[] = "82801H (ICH8 Family) USB UHCI Controller #5";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2835_17aa_20aa[] = "Lenovo Thinkpad T60";
+#endif
+static const char pci_device_8086_2836[] = "82801H (ICH8 Family) USB2 EHCI Controller #1";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_2836_1462_7235[] = "P965 Neo MS-7235 mainboard";
 #endif
-static const char pci_device_8086_283a[] = "82801H (ICH8 Family) USB2 EHCI #2";
+static const char pci_device_8086_283a[] = "82801H (ICH8 Family) USB2 EHCI Controller #2";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_283a_17aa_20ab[] = "Lenovo Thinkpad T61";
+#endif
 static const char pci_device_8086_283e[] = "82801H (ICH8 Family) SMBus Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_283e_1462_7235[] = "P965 Neo MS-7235 mainboard";
@@ -25011,36 +26430,47 @@ static const char pci_device_8086_2845[]
 static const char pci_device_8086_2847[] = "82801H (ICH8 Family) PCI Express Port 5";
 static const char pci_device_8086_2849[] = "82801H (ICH8 Family) PCI Express Port 6";
 static const char pci_device_8086_284b[] = "82801H (ICH8 Family) HD Audio Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_284b_17aa_20ac[] = "Lenovo Thinkpad T61";
+#endif
 static const char pci_device_8086_284f[] = "82801H (ICH8 Family) Thermal Reporting Device";
-static const char pci_device_8086_2850[] = "Mobile IDE Controller";
-static const char pci_device_8086_2910[] = "LPC Interface Controller";
-static const char pci_device_8086_2920[] = "4 port SATA IDE Controller";
-static const char pci_device_8086_2921[] = "2 port SATA IDE Controller";
-static const char pci_device_8086_2922[] = "6 port SATA AHCI Controller";
-static const char pci_device_8086_2923[] = "4 port SATA AHCI Controller";
-static const char pci_device_8086_2925[] = "SATA RAID Controller";
-static const char pci_device_8086_2926[] = "2 port SATA IDE Controller";
+static const char pci_device_8086_2850[] = "82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller";
+static const char pci_device_8086_2911[] = "LPC Interface Controller";
+static const char pci_device_8086_2912[] = "82801IH (ICH9DH) LPC Interface Controller";
+static const char pci_device_8086_2914[] = "LPC Interface Controller";
+static const char pci_device_8086_2916[] = "82801IR (ICH9R) LPC Interface Controller";
+static const char pci_device_8086_2917[] = "Mobile LPC Controller";
+static const char pci_device_8086_2918[] = "82801IB (ICH9) LPC Interface Controller";
+static const char pci_device_8086_2919[] = "Mobile LPC Controller";
+static const char pci_device_8086_2920[] = "82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller";
+static const char pci_device_8086_2921[] = "82801I (ICH9 Family) 2 port SATA IDE Controller";
+static const char pci_device_8086_2922[] = "82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller";
+static const char pci_device_8086_2923[] = "82801I (ICH9 Family) 4 port SATA AHCI Controller";
+static const char pci_device_8086_2925[] = "82801IR/IO (ICH9R//DO) SATA RAID Controller";
+static const char pci_device_8086_2926[] = "82801I (ICH9 Family) 2 port SATA IDE Controller";
 static const char pci_device_8086_2928[] = "Mobile 2 port SATA IDE Controller";
+static const char pci_device_8086_2929[] = "Mobile SATA AHCI Controller";
+static const char pci_device_8086_292c[] = "Mobile SATA RAID Controller";
 static const char pci_device_8086_292d[] = "Mobile 2 port SATA IDE Controller";
 static const char pci_device_8086_292e[] = "Mobile 1 port SATA IDE Controller";
-static const char pci_device_8086_2930[] = "SMBus Controller";
-static const char pci_device_8086_2932[] = "Thermal Subsystem";
-static const char pci_device_8086_2934[] = "USB UHCI Controller #1";
-static const char pci_device_8086_2935[] = "USB UHCI Controller #2";
-static const char pci_device_8086_2936[] = "USB UHCI Controller #3";
-static const char pci_device_8086_2937[] = "USB UHCI Controller #4";
-static const char pci_device_8086_2938[] = "USB UHCI Controller #5";
-static const char pci_device_8086_2939[] = "USB UHCI Controller #6";
-static const char pci_device_8086_293a[] = "USB2 EHCI Controller #1";
-static const char pci_device_8086_293c[] = "USB2 EHCI Controller #2";
-static const char pci_device_8086_293e[] = "HD Audio Controller";
-static const char pci_device_8086_2940[] = "PCI Express Port 1";
-static const char pci_device_8086_2942[] = "PCI Express Port 2";
-static const char pci_device_8086_2944[] = "PCI Express Port 3";
-static const char pci_device_8086_2946[] = "PCI Express Port 4";
-static const char pci_device_8086_2948[] = "PCI Express Port 5";
-static const char pci_device_8086_294a[] = "PCI Express Port 6";
-static const char pci_device_8086_294c[] = "Gigabit Ethernet Controller";
+static const char pci_device_8086_2930[] = "82801I (ICH9 Family) SMBus Controller";
+static const char pci_device_8086_2932[] = "82801I (ICH9 Family) Thermal Subsystem";
+static const char pci_device_8086_2934[] = "82801I (ICH9 Family) USB UHCI Controller #1";
+static const char pci_device_8086_2935[] = "82801I (ICH9 Family) USB UHCI Controller #2";
+static const char pci_device_8086_2936[] = "82801I (ICH9 Family) USB UHCI Controller #3";
+static const char pci_device_8086_2937[] = "82801I (ICH9 Family) USB UHCI Controller #4";
+static const char pci_device_8086_2938[] = "82801I (ICH9 Family) USB UHCI Controller #5";
+static const char pci_device_8086_2939[] = "82801I (ICH9 Family) USB UHCI Controller #6";
+static const char pci_device_8086_293a[] = "82801I (ICH9 Family) USB2 EHCI Controller #1";
+static const char pci_device_8086_293c[] = "82801I (ICH9 Family) USB2 EHCI Controller #2";
+static const char pci_device_8086_293e[] = "82801I (ICH9 Family) HD Audio Controller";
+static const char pci_device_8086_2940[] = "82801I (ICH9 Family) PCI Express Port 1";
+static const char pci_device_8086_2942[] = "82801I (ICH9 Family) PCI Express Port 2";
+static const char pci_device_8086_2944[] = "82801I (ICH9 Family) PCI Express Port 3";
+static const char pci_device_8086_2946[] = "82801I (ICH9 Family) PCI Express Port 4";
+static const char pci_device_8086_2948[] = "82801I (ICH9 Family) PCI Express Port 5";
+static const char pci_device_8086_294a[] = "82801I (ICH9 Family) PCI Express Port 6";
+static const char pci_device_8086_294c[] = "82801I (ICH9 Family) Gigabit Ethernet Controller";
 static const char pci_device_8086_2970[] = "82946GZ/PL/GL Memory Controller Hub";
 static const char pci_device_8086_2971[] = "82946GZ/PL/GL PCI Express Root Port";
 static const char pci_device_8086_2972[] = "82946GZ/GL Integrated Graphics Controller";
@@ -25061,8 +26491,14 @@ static const char pci_device_8086_2995[]
 static const char pci_device_8086_2996[] = "82Q963/Q965 PT IDER Controller";
 static const char pci_device_8086_2997[] = "82Q963/Q965 KT Controller";
 static const char pci_device_8086_29a0[] = "82P965/G965 Memory Controller Hub";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_29a0_1462_7276[] = "MS-7276 [G965MDH]";
+#endif
 static const char pci_device_8086_29a1[] = "82P965/G965 PCI Express Root Port";
 static const char pci_device_8086_29a2[] = "82G965 Integrated Graphics Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_29a2_1462_7276[] = "MS-7276 [G965MDH]";
+#endif
 static const char pci_device_8086_29a3[] = "82G965 Integrated Graphics Controller";
 static const char pci_device_8086_29a4[] = "82P965/G965 HECI Controller";
 static const char pci_device_8086_29a5[] = "82P965/G965 HECI Controller";
@@ -25072,48 +26508,65 @@ static const char pci_device_8086_29b0[]
 static const char pci_device_8086_29b1[] = "PCI Express Root Port";
 static const char pci_device_8086_29b2[] = "Integrated Graphics Controller";
 static const char pci_device_8086_29b3[] = "Integrated Graphics Controller";
-static const char pci_device_8086_29b4[] = "HECI Controller";
-static const char pci_device_8086_29b5[] = "HECI Controller";
+static const char pci_device_8086_29b4[] = "MEI Controller";
+static const char pci_device_8086_29b5[] = "MEI Controller";
 static const char pci_device_8086_29b6[] = "PT IDER Controller";
 static const char pci_device_8086_29b7[] = "Serial KT Controller";
-static const char pci_device_8086_29c0[] = "DRAM Controller";
-static const char pci_device_8086_29c1[] = "PCI Express Root Port";
-static const char pci_device_8086_29c2[] = "Integrated Graphics Controller";
-static const char pci_device_8086_29c3[] = "Integrated Graphics Controller";
-static const char pci_device_8086_29c4[] = "HECI Controller";
-static const char pci_device_8086_29c5[] = "HECI Controller";
-static const char pci_device_8086_29c6[] = "PT IDER Controller";
-static const char pci_device_8086_29c7[] = "Serial KT Controller";
+static const char pci_device_8086_29c0[] = "82G33/G31/P35 Express DRAM Controller";
+static const char pci_device_8086_29c1[] = "82G33/G31/P35 Express PCI Express Root Port";
+static const char pci_device_8086_29c2[] = "82G33/G31 Express Integrated Graphics Controller";
+static const char pci_device_8086_29c3[] = "82G33/G31 Express Integrated Graphics Controller";
+static const char pci_device_8086_29c4[] = "82G33/G31/P35 Express MEI Controller";
+static const char pci_device_8086_29c5[] = "82G33/G31/P35 Express MEI Controller";
+static const char pci_device_8086_29c6[] = "82G33/G31/P35 Express PT IDER Controller";
+static const char pci_device_8086_29c7[] = "82G33/G31/P35 Express Serial KT Controller";
 static const char pci_device_8086_29cf[] = "Virtual HECI Controller";
+static const char pci_device_8086_29d0[] = "DRAM Controller";
+static const char pci_device_8086_29d1[] = "PCI Express Root Port";
+static const char pci_device_8086_29d2[] = "Integrated Graphics Controller";
+static const char pci_device_8086_29d3[] = "Integrated Graphics Controller";
+static const char pci_device_8086_29d4[] = "MEI Controller";
+static const char pci_device_8086_29d5[] = "MEI Controller";
+static const char pci_device_8086_29d6[] = "PT IDER Controller";
+static const char pci_device_8086_29d7[] = "Serial KT Controller";
 static const char pci_device_8086_29e0[] = "DRAM Controller";
 static const char pci_device_8086_29e1[] = "Host-Primary PCI Express Bridge";
-static const char pci_device_8086_29e4[] = "HECI Controller";
-static const char pci_device_8086_29e5[] = "HECI Controller";
+static const char pci_device_8086_29e4[] = "MEI Controller";
+static const char pci_device_8086_29e5[] = "MEI Controller";
 static const char pci_device_8086_29e6[] = "PT IDER Controller";
 static const char pci_device_8086_29e7[] = "Serial KT Controller";
 static const char pci_device_8086_29e9[] = "Host-Secondary PCI Express Bridge";
 static const char pci_device_8086_29f0[] = "Server DRAM Controller";
 static const char pci_device_8086_29f1[] = "Server Host-Primary PCI Express Bridge";
-static const char pci_device_8086_29f4[] = "Server HECI Controller";
-static const char pci_device_8086_29f5[] = "Server HECI Controller";
+static const char pci_device_8086_29f4[] = "Server MEI Controller";
+static const char pci_device_8086_29f5[] = "Server MEI Controller";
 static const char pci_device_8086_29f6[] = "Server PT IDER Controller";
 static const char pci_device_8086_29f7[] = "Server Serial KT Controller";
 static const char pci_device_8086_29f9[] = "Server Host-Secondary PCI Express Bridge";
-static const char pci_device_8086_2a00[] = "Mobile Memory Controller Hub";
-static const char pci_device_8086_2a01[] = "Mobile PCI Express Root Port";
-static const char pci_device_8086_2a02[] = "Mobile Integrated Graphics Controller";
-static const char pci_device_8086_2a03[] = "Mobile Integrated Graphics Controller";
-static const char pci_device_8086_2a04[] = "Mobile HECI Controller";
-static const char pci_device_8086_2a05[] = "Mobile HECI Controller";
-static const char pci_device_8086_2a06[] = "Mobile PT IDER Controller";
-static const char pci_device_8086_2a07[] = "Mobile KT Controller";
-static const char pci_device_8086_3092[] = "Integrated RAID";
+static const char pci_device_8086_2a00[] = "Mobile PM965/GM965/GL960 Memory Controller Hub";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_2a00_17aa_20b1[] = "Lenovo Thinkpad T61";
+#endif
+static const char pci_device_8086_2a01[] = "Mobile PM965/GM965/GL960 PCI Express Root Port";
+static const char pci_device_8086_2a02[] = "Mobile GM965/GL960 Integrated Graphics Controller";
+static const char pci_device_8086_2a03[] = "Mobile GM965/GL960 Integrated Graphics Controller";
+static const char pci_device_8086_2a04[] = "Mobile PM965/GM965 MEI Controller";
+static const char pci_device_8086_2a05[] = "Mobile PM965/GM965 MEI Controller";
+static const char pci_device_8086_2a06[] = "Mobile PM965/GM965 PT IDER Controller";
+static const char pci_device_8086_2a07[] = "Mobile PM965/GM965 KT Controller";
 static const char pci_device_8086_3200[] = "GD31244 PCI-X SATA HBA";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3200_1775_c200[] = "C2K onboard SATA host bus adapter";
 #endif
+static const char pci_device_8086_3313[] = "IOP348 I/O Processor (SL8e) in IOC Mode SAS/SATA";
+static const char pci_device_8086_331b[] = "IOP348 I/O Processor (SL8x) in IOC Mode SAS/SATA";
+static const char pci_device_8086_3331[] = "IOC340 I/O Controller (VV8e) SAS/SATA";
+static const char pci_device_8086_3339[] = "IOC340 I/O Controller (VV8x) SAS/SATA";
 static const char pci_device_8086_3340[] = "82855PM Processor to I/O Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3340_1014_0529[] = "Thinkpad T41";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3340_1025_005a[] = "TravelMate 290";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25126,12 +26579,15 @@ static const char pci_subsys_8086_3340_1
 static const char pci_subsys_8086_3340_103c_08b0[] = "tc1100 tablet";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_3340_144d_c00c[] = "P30 notebook";
+static const char pci_subsys_8086_3340_144d_c00c[] = "P30/P35 notebook";
 #endif
 static const char pci_device_8086_3341[] = "82855PM Processor to AGP Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3341_144d_c00c[] = "P30 notebook";
 #endif
+static const char pci_device_8086_3363[] = "IOC340 I/O Controller in IOC Mode SAS/SATA";
+static const char pci_device_8086_33c3[] = "IOP348 I/O Processor (SL8De) in IOC Mode SAS/SATA";
+static const char pci_device_8086_33cb[] = "IOP348 I/O Processor (SL8Dx) in IOC Mode SAS/SATA";
 static const char pci_device_8086_3500[] = "6311ESB/6321ESB PCI Express Upstream Port";
 static const char pci_device_8086_3501[] = "6310ESB PCI Express Upstream Port";
 static const char pci_device_8086_3504[] = "6311ESB/6321ESB I/OxAPIC Interrupt Controller";
@@ -25168,6 +26624,9 @@ static const char pci_subsys_8086_3580_1
 static const char pci_subsys_8086_3580_1028_0139[] = "Latitude D400";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3580_1028_014f[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3580_1028_0163[] = "Latitude D505";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25188,6 +26647,12 @@ static const char pci_subsys_8086_3580_4
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3580_4c53_10e0[] = "PSL09 PrPMC";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3580_e4bf_0cc9[] = "CC9-SAMBA";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3580_e4bf_0cd2[] = "CD2-BEBOP";
+#endif
 static const char pci_device_8086_3581[] = "82852/82855 GM/GME/PM/GMV Processor to AGP Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3581_1734_1055[] = "Amilo M1420";
@@ -25200,6 +26665,9 @@ static const char pci_subsys_8086_3582_1
 static const char pci_subsys_8086_3582_1028_0139[] = "Latitude D400";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3582_1028_014f[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3582_1028_0163[] = "Latitude D505";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25214,6 +26682,12 @@ static const char pci_subsys_8086_3582_4
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3582_4c53_10e0[] = "PSL09 PrPMC";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3582_e4bf_0cc9[] = "CC9-SAMBA";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3582_e4bf_0cd2[] = "CD2-BEBOP";
+#endif
 static const char pci_device_8086_3584[] = "82852/82855 GM/GME/PM/GMV Processor to I/O Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3584_1014_055d[] = "Thinkpad R50e model 1634";
@@ -25222,6 +26696,9 @@ static const char pci_subsys_8086_3584_1
 static const char pci_subsys_8086_3584_1028_0139[] = "Latitude D400";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3584_1028_014f[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3584_1028_0163[] = "Latitude D505";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25250,6 +26727,9 @@ static const char pci_subsys_8086_3585_1
 static const char pci_subsys_8086_3585_1028_0139[] = "Latitude D400";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3585_1028_014f[] = "Latitude X300";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3585_1028_0163[] = "Latitude D505";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25272,16 +26752,25 @@ static const char pci_subsys_8086_3585_4
 #endif
 static const char pci_device_8086_3590[] = "E7520 Memory Controller Hub";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3590_1014_02dd[] = "eServer xSeries server mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3590_1028_019a[] = "PowerEdge SC1425";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3590_1734_103e[] = "Primergy RX300 S2";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3590_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3590_4c53_10d0[] = "Telum ASLP10 Processor AMC";
 #endif
 static const char pci_device_8086_3591[] = "E7525/E7520 Error Reporting Registers";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3591_1014_02dd[] = "eServer xSeries server mainboard";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3591_1028_0169[] = "Precision 470";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25291,15 +26780,33 @@ static const char pci_device_8086_3592[]
 static const char pci_device_8086_3593[] = "E7320 Error Reporting Registers";
 static const char pci_device_8086_3594[] = "E7520 DMA Controller";
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3594_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_3594_4c53_10d0[] = "Telum ASLP10 Processor AMC";
 #endif
 static const char pci_device_8086_3595[] = "E7525/E7520/E7320 PCI Express Port A";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3595_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
 static const char pci_device_8086_3596[] = "E7525/E7520/E7320 PCI Express Port A1";
 static const char pci_device_8086_3597[] = "E7525/E7520 PCI Express Port B";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3597_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
 static const char pci_device_8086_3598[] = "E7520 PCI Express Port B1";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3598_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
 static const char pci_device_8086_3599[] = "E7520 PCI Express Port C";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_3599_1775_1100[] = "CR11/VR11 Single Board Computer";
+#endif
 static const char pci_device_8086_359a[] = "E7520 PCI Express Port C1";
 static const char pci_device_8086_359b[] = "E7525/E7520/E7320 Extended Configuration Registers";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_359b_1014_02dd[] = "eServer xSeries server mainboard";
+#endif
 static const char pci_device_8086_359e[] = "E7525 Memory Controller Hub";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_359e_1028_0169[] = "Precision 470";
@@ -25325,6 +26832,8 @@ static const char pci_device_8086_360e[]
 static const char pci_device_8086_360f[] = "Server FBD Branch 0 Registers";
 static const char pci_device_8086_3610[] = "Server FBD Branch 1 Registers";
 static const char pci_device_8086_4000[] = "Memory Controller Hub";
+static const char pci_device_8086_4001[] = "Memory Controller Hub";
+static const char pci_device_8086_4003[] = "Memory Controller Hub";
 static const char pci_device_8086_4008[] = "Memory Controller Hub";
 static const char pci_device_8086_4010[] = "Memory Controller Hub";
 static const char pci_device_8086_4021[] = "PCI Express Port 1";
@@ -25345,7 +26854,7 @@ static const char pci_device_8086_4035[]
 static const char pci_device_8086_4036[] = "FBD Registers";
 static const char pci_device_8086_4220[] = "PRO/Wireless 2200BG Network Connection";
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_8086_4220_2731_8086[] = "WLAN-Adapter";
+static const char pci_subsys_8086_4220_103c_12f6[] = "HP Compaq nw8240 Mobile Workstation";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_4220_8086_2731[] = "Samsung P35 integrated WLAN";
@@ -25372,13 +26881,51 @@ static const char pci_subsys_8086_4227_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_4227_8086_1014[] = "PRO/Wireless 3945BG Network Connection";
 #endif
+static const char pci_device_8086_4229[] = "PRO/Wireless 4965 AG or AGN Network Connection";
+static const char pci_device_8086_4230[] = "PRO/Wireless 4965 AG or AGN Network Connection";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_4230_8086_1110[] = "Lenovo Thinkpad T61";
+#endif
+static const char pci_device_8086_444e[] = "Turbo Memory Controller";
 static const char pci_device_8086_5001[] = "Pro/DSL 2100 Modem";
+static const char pci_device_8086_5020[] = "Memory Controller Hub";
+static const char pci_device_8086_5021[] = "DRAM Error Reporting Registers";
+static const char pci_device_8086_5023[] = "EDMA Controller";
+static const char pci_device_8086_5024[] = "PCI Express Port PEA0";
+static const char pci_device_8086_5025[] = "PCI Express Port PEA1";
+static const char pci_device_8086_5028[] = "S-ATA IDE";
+static const char pci_device_8086_5029[] = "S-ATA AHCI";
+static const char pci_device_8086_502a[] = "S-ATA RAID0/1";
+static const char pci_device_8086_502b[] = "S-ATA Reserved";
+static const char pci_device_8086_5031[] = "LPC Bus";
+static const char pci_device_8086_5032[] = "SMBus Controller";
+static const char pci_device_8086_5033[] = "USB 1.1 Controller";
+static const char pci_device_8086_5035[] = "USB 2.0 Controller";
+static const char pci_device_8086_5037[] = "PCI-PCI Bridge (transparent mode)";
+static const char pci_device_8086_5039[] = "Controller Area Network (CAN) interface #1";
+static const char pci_device_8086_503a[] = "Controller Area Network (CAN) interface #2";
+static const char pci_device_8086_503b[] = "Synchronous Serial Port (SPP)";
+static const char pci_device_8086_503c[] = "IEEE 1588 Hardware Assist";
+static const char pci_device_8086_503d[] = "Local Expansion Bus";
+static const char pci_device_8086_503e[] = "Global Control Unit (GCU)";
+static const char pci_device_8086_5040[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5041[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5042[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5043[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5044[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5045[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5046[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5047[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5048[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_5049[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_504a[] = "Gigabit Ethernet MAC";
+static const char pci_device_8086_504b[] = "Gigabit Ethernet MAC";
 static const char pci_device_8086_5200[] = "EtherExpress PRO/100 Intelligent Server";
 static const char pci_device_8086_5201[] = "EtherExpress PRO/100 Intelligent Server";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_5201_8086_0001[] = "EtherExpress PRO/100 Server Ethernet Adapter";
 #endif
-static const char pci_device_8086_530d[] = "80310 IOP [IO Processor]";
+static const char pci_device_8086_530d[] = "80310 (IOP) IO Processor";
 static const char pci_device_8086_65c0[] = "Memory Controller Hub";
 static const char pci_device_8086_65e2[] = "PCI Express x4 Port 2";
 static const char pci_device_8086_65e3[] = "PCI Express x4 Port 3";
@@ -25419,14 +26966,14 @@ static const char pci_device_8086_7113[]
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_7113_15ad_1976[] = "virtualHW v3";
 #endif
-static const char pci_device_8086_7120[] = "82810 GMCH [Graphics Memory Controller Hub]";
+static const char pci_device_8086_7120[] = "82810 GMCH (Graphics Memory Controller Hub)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_7120_4c53_1040[] = "CL7 mainboard";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_7120_4c53_1060[] = "PC7 mainboard";
 #endif
-static const char pci_device_8086_7121[] = "82810 CGC [Chipset Graphics Controller]";
+static const char pci_device_8086_7121[] = "82810 (CGC) Chipset Graphics Controller";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_7121_4c53_1040[] = "CL7 mainboard";
 #endif
@@ -25436,10 +26983,16 @@ static const char pci_subsys_8086_7121_4
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_7121_8086_4341[] = "Cayman (CA810) Mainboard";
 #endif
-static const char pci_device_8086_7122[] = "82810 DC-100 GMCH [Graphics Memory Controller Hub]";
-static const char pci_device_8086_7123[] = "82810 DC-100 CGC [Chipset Graphics Controller]";
-static const char pci_device_8086_7124[] = "82810E DC-133 GMCH [Graphics Memory Controller Hub]";
-static const char pci_device_8086_7125[] = "82810E DC-133 CGC [Chipset Graphics Controller]";
+static const char pci_device_8086_7122[] = "82810 DC-100 (GMCH) Graphics Memory Controller Hub";
+static const char pci_device_8086_7123[] = "82810 DC-100 (CGC) Chipset Graphics Controller";
+static const char pci_device_8086_7124[] = "82810E DC-133 (GMCH) Graphics Memory Controller Hub";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_7124_1028_00b4[] = "OptiPlex GX110";
+#endif
+static const char pci_device_8086_7125[] = "82810E DC-133 (CGC) Chipset Graphics Controller";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_8086_7125_1028_00b4[] = "OptiPlex GX110";
+#endif
 static const char pci_device_8086_7126[] = "82810 DC-133 System and Graphics Controller";
 static const char pci_device_8086_7128[] = "82810-M DC-100 System and Graphics Controller";
 static const char pci_device_8086_712a[] = "82810-M DC-133 System and Graphics Controller";
@@ -25541,6 +27094,7 @@ static const char pci_subsys_8086_7800_8
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_8086_7800_8086_0100[] = "Intel740 Graphics Accelerator";
 #endif
+static const char pci_device_8086_8002[] = "Trusted Execution Technology Registers";
 static const char pci_device_8086_84c4[] = "450KX/GX [Orion] - 82454KX/GX PCI bridge";
 static const char pci_device_8086_84c5[] = "450KX/GX [Orion] - 82453KX/GX Memory controller";
 static const char pci_device_8086_84ca[] = "450NX - 82451NX Memory & I/O Controller";
@@ -25593,6 +27147,17 @@ static const char pci_subsys_8086_b555_4
 static const char pci_subsys_8086_b555_e4bf_1000[] = "CC8-1-BLUES";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_80ee[] = "InnoTek Systemberatung GmbH";
+static const char pci_device_80ee_beef[] = "VirtualBox Graphics Adapter";
+static const char pci_device_80ee_cafe[] = "VirtualBox Guest Service";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const char pci_vendor_8384[] = "Sigmatel";
+static const char pci_device_8384_7618[] = "High Definition Audio Codec";
+static const char pci_device_8384_7670[] = "9770 High Definition Audio";
+static const char pci_device_8384_7672[] = "9772 High Definition Audio";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_8401[] = "TRENDware International Inc.";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -25882,6 +27447,8 @@ static const char pci_subsys_9005_008f_1
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_008f_15d9_9005[] = "Onboard SCSI Host Adapter";
 #endif
+static const char pci_device_9005_0092[] = "AVC-2010 [VideoH!]";
+static const char pci_device_9005_0093[] = "AVC-2410 [VideoH!]";
 static const char pci_device_9005_00c0[] = "AHA-3960D / AIC-7899A U160/m";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -25967,6 +27534,33 @@ static const char pci_subsys_9005_0285_1
 static const char pci_subsys_9005_0285_103c_3227[] = "AAR-2610SA";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_108e_0286[] = "STK RAID INT";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_108e_0287[] = "STK RAID EXT";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_108e_7aac[] = "STK RAID REM";
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_15d9_02b5[] = "AOC-USAS-S4i";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_15d9_02b6[] = "AOC-USAS-S8i";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_15d9_02c9[] = "AOC-USAS-S4iR";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_15d9_02ca[] = "AOC-USAS-S8iR";
+#endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0285_17aa_0286[] = "Legend S220 (Legend Crusader)";
 #endif
@@ -26019,7 +27613,7 @@ static const char pci_subsys_9005_0285_9
 static const char pci_subsys_9005_0285_9005_0297[] = "ASR-4005SAS";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_9005_0285_9005_0298[] = "ASR-4000SAS";
+static const char pci_subsys_9005_0285_9005_0298[] = "ASR-4000";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0285_9005_0299[] = "ASR-4800SAS";
@@ -26028,6 +27622,12 @@ static const char pci_subsys_9005_0285_9
 static const char pci_subsys_9005_0285_9005_029a[] = "4805SAS";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02a4[] = "ICP ICP9085LI";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02a5[] = "ICP ICP5085BR";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0285_9005_02b5[] = "ASR5800";
 #endif
 #ifdef INIT_SUBSYS_INFO
@@ -26036,6 +27636,57 @@ static const char pci_subsys_9005_0285_9
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0285_9005_02b7[] = "ASR5808";
 #endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02b8[] = "ICP5445SL";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02b9[] = "ICP5085SL";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02ba[] = "ICP5805SL";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02bb[] = "3405";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02bc[] = "3805";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02bd[] = "31205";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02be[] = "31605";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02bf[] = "ICP ICP5045BL";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c0[] = "ICP ICP5085BL";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c1[] = "ICP ICP5125BR";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c2[] = "ICP ICP5165BR";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c3[] = "51205";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c4[] = "51605";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c5[] = "ICP ICP5125SL";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c6[] = "ICP ICP5165SL";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c7[] = "3085";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0285_9005_02c8[] = "ICP5805BL";
+#endif
 static const char pci_device_9005_0286[] = "AAC-RAID (Rocket)";
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0286_1014_034d[] = "8s";
@@ -26074,7 +27725,7 @@ static const char pci_subsys_9005_0286_9
 static const char pci_subsys_9005_0286_9005_02a1[] = "ICP ICP9087MA";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_9005_0286_9005_02a2[] = "3800SAS";
+static const char pci_subsys_9005_0286_9005_02a2[] = "3800";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0286_9005_02a3[] = "ICP ICP5445AU";
@@ -26089,10 +27740,10 @@ static const char pci_subsys_9005_0286_9
 static const char pci_subsys_9005_0286_9005_02a6[] = "ICP9067MA";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_9005_0286_9005_02a7[] = "3805SAS";
+static const char pci_subsys_9005_0286_9005_02a7[] = "3805";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_9005_0286_9005_02a8[] = "3400SAS";
+static const char pci_subsys_9005_0286_9005_02a8[] = "3400";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0286_9005_02a9[] = "ICP ICP5085AU";
@@ -26101,10 +27752,10 @@ static const char pci_subsys_9005_0286_9
 static const char pci_subsys_9005_0286_9005_02aa[] = "ICP ICP5045AU";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_9005_0286_9005_02ac[] = "1800SAS";
+static const char pci_subsys_9005_0286_9005_02ac[] = "1800";
 #endif
 #ifdef INIT_SUBSYS_INFO
-static const char pci_subsys_9005_0286_9005_02b3[] = "ASR-2400SAS";
+static const char pci_subsys_9005_0286_9005_02b3[] = "2400";
 #endif
 #ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0286_9005_02b4[] = "ICP ICP5045AL";
@@ -26153,6 +27804,9 @@ static const char pci_device_9005_0503[]
 static const char pci_subsys_9005_0503_1014_02bf[] = "Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E)";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_0503_1014_02c3[] = "PCI-X DDR 3Gb SAS RAID Adapter (572F)";
+#endif
+#ifdef INIT_SUBSYS_INFO
 static const char pci_subsys_9005_0503_1014_02d5[] = "Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F)";
 #endif
 static const char pci_device_9005_0910[] = "AUA-3100B";
@@ -26175,8 +27829,17 @@ static const char pci_device_9005_8014[]
 static const char pci_device_9005_8015[] = "ASC-39320B U320";
 static const char pci_device_9005_8016[] = "ASC-39320A U320";
 static const char pci_device_9005_8017[] = "ASC-29320ALP U320";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_8017_9005_0044[] = "ASC-29320ALP PCIx U320";
+#endif
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_8017_9005_0045[] = "ASC-29320LPE PCIe U320";
+#endif
 static const char pci_device_9005_801c[] = "ASC-39320D U320";
 static const char pci_device_9005_801d[] = "AIC-7902B U320";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_801d_1014_02cc[] = "ServeRAID 7e";
+#endif
 static const char pci_device_9005_801e[] = "AIC-7901A U320";
 static const char pci_device_9005_801f[] = "AIC-7902 U320";
 #ifdef INIT_SUBSYS_INFO
@@ -26194,6 +27857,9 @@ static const char pci_device_9005_8096[]
 static const char pci_device_9005_8097[] = "ASC-29320ALP U320 w/HostRAID";
 static const char pci_device_9005_809c[] = "ASC-39320D(B) U320 w/HostRAID";
 static const char pci_device_9005_809d[] = "AIC-7902(B) U320 w/HostRAID";
+#ifdef INIT_SUBSYS_INFO
+static const char pci_subsys_9005_809d_1014_02cc[] = "ServeRAID 7e";
+#endif
 static const char pci_device_9005_809e[] = "AIC-7901A U320 w/HostRAID";
 static const char pci_device_9005_809f[] = "AIC-7902 U320 w/HostRAID";
 #endif
@@ -26326,13 +27992,15 @@ static const char pci_device_cddd_0200[]
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_d161[] = "Digium, Inc.";
-static const char pci_device_d161_0205[] = "Wildcard TE205P";
-static const char pci_device_d161_0210[] = "Wildcard TE210P";
-static const char pci_device_d161_0405[] = "Wildcard TE405P Quad-Span togglable E1/T1/J1 card 5.0v";
-static const char pci_device_d161_0406[] = "Wildcard TE406P Quad-Span togglable E1/T1/J1 echo cancellation card 5.0v";
-static const char pci_device_d161_0410[] = "Wildcard TE410P Quad-Span togglable E1/T1/J1 card 3.3v";
-static const char pci_device_d161_0411[] = "Wildcard TE411P Quad-Span togglable E1/T1/J1 echo cancellation card 3.3v";
-static const char pci_device_d161_2400[] = "Wildcard TDM2400P";
+static const char pci_device_d161_0120[] = "Wildcard TE120P single-span T1/E1/J1 card";
+static const char pci_device_d161_0205[] = "Wildcard TE205P dual-span T1/E1/J1 card 5.0V";
+static const char pci_device_d161_0210[] = "Wildcard TE210P dual-span T1/E1/J1 card 3.3V";
+static const char pci_device_d161_0405[] = "Wildcard TE405P quad-span T1/E1/J1 card 5.0V";
+static const char pci_device_d161_0410[] = "Wildcard TE410P quad-span T1/E1/J1 card 3.3V";
+static const char pci_device_d161_0800[] = "Wildcard TDM800P 8-port analog card";
+static const char pci_device_d161_2400[] = "Wildcard TDM2400P 24-port analog card";
+static const char pci_device_d161_3400[] = "Wildcard TC400P transcoder base card";
+static const char pci_device_d161_b410[] = "Wildcard B410 quad-BRI card";
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const char pci_vendor_d4d4[] = "Dy4 Systems Inc";
@@ -26471,6 +28139,10 @@ static const char pci_device_fffe_0710[]
 static const char pci_vendor_ffff[] = "Illegal Vendor ID";
 #endif
 #ifdef INIT_SUBSYS_INFO
+static const pciSubsystemInfo pci_ss_info_0e11_0046_0e11_4091 =
+	{0x0e11, 0x4091, pci_subsys_0e11_0046_0e11_4091, 0};
+#undef pci_ss_info_0e11_4091
+#define pci_ss_info_0e11_4091 pci_ss_info_0e11_0046_0e11_4091
 static const pciSubsystemInfo pci_ss_info_0e11_0046_0e11_409a =
 	{0x0e11, 0x409a, pci_subsys_0e11_0046_0e11_409a, 0};
 #undef pci_ss_info_0e11_409a
@@ -26763,6 +28435,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1000_0066
 #define pci_ss_info_1000_0066 pci_ss_info_1000_0040_1000_0066
 #endif
+static const pciSubsystemInfo pci_ss_info_1000_0054_1028_1f09 =
+	{0x1028, 0x1f09, pci_subsys_1000_0054_1028_1f09, 0};
+#undef pci_ss_info_1028_1f09
+#define pci_ss_info_1028_1f09 pci_ss_info_1000_0054_1028_1f09
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_1000_0055_1033_8336 =
 	{0x1033, 0x8336, pci_subsys_1000_0055_1033_8336, 0};
 #undef pci_ss_info_1033_8336
@@ -26796,6 +28474,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1000, 0x1012, pci_subsys_1000_0060_1000_1012, 0};
 #undef pci_ss_info_1000_1012
 #define pci_ss_info_1000_1012 pci_ss_info_1000_0060_1000_1012
+static const pciSubsystemInfo pci_ss_info_1000_0060_1000_1016 =
+	{0x1000, 0x1016, pci_subsys_1000_0060_1000_1016, 0};
+#undef pci_ss_info_1000_1016
+#define pci_ss_info_1000_1016 pci_ss_info_1000_0060_1000_1016
 static const pciSubsystemInfo pci_ss_info_1000_0060_1014_0363 =
 	{0x1014, 0x0363, pci_subsys_1000_0060_1014_0363, 0};
 #undef pci_ss_info_1014_0363
@@ -26808,6 +28490,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x0365, pci_subsys_1000_0060_1014_0365, 0};
 #undef pci_ss_info_1014_0365
 #define pci_ss_info_1014_0365 pci_ss_info_1000_0060_1014_0365
+static const pciSubsystemInfo pci_ss_info_1000_0060_1014_0379 =
+	{0x1014, 0x0379, pci_subsys_1000_0060_1014_0379, 0};
+#undef pci_ss_info_1014_0379
+#define pci_ss_info_1014_0379 pci_ss_info_1000_0060_1014_0379
 #endif
 static const pciSubsystemInfo pci_ss_info_1000_0060_1028_1f0a =
 	{0x1028, 0x1f0a, pci_subsys_1000_0060_1028_1f0a, 0};
@@ -26847,6 +28533,24 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1170_002f
 #define pci_ss_info_1170_002f pci_ss_info_1000_0060_1170_002f
 #endif
+static const pciSubsystemInfo pci_ss_info_1000_0060_8086_1006 =
+	{0x8086, 0x1006, pci_subsys_1000_0060_8086_1006, 0};
+#undef pci_ss_info_8086_1006
+#define pci_ss_info_8086_1006 pci_ss_info_1000_0060_8086_1006
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0060_8086_100a =
+	{0x8086, 0x100a, pci_subsys_1000_0060_8086_100a, 0};
+#undef pci_ss_info_8086_100a
+#define pci_ss_info_8086_100a pci_ss_info_1000_0060_8086_100a
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1000_0060_8086_1010 =
+	{0x8086, 0x1010, pci_subsys_1000_0060_8086_1010, 0};
+#undef pci_ss_info_8086_1010
+#define pci_ss_info_8086_1010 pci_ss_info_1000_0060_8086_1010
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_1000_0060_8086_34cc =
 	{0x8086, 0x34cc, pci_subsys_1000_0060_8086_34cc, 0};
 #undef pci_ss_info_8086_34cc
@@ -27315,10 +29019,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1025, 0x0079, pci_subsys_1002_4370_1025_0079, 0};
 #undef pci_ss_info_1025_0079
 #define pci_ss_info_1025_0079 pci_ss_info_1002_4370_1025_0079
+static const pciSubsystemInfo pci_ss_info_1002_4370_1025_0091 =
+	{0x1025, 0x0091, pci_subsys_1002_4370_1025_0091, 0};
+#undef pci_ss_info_1025_0091
+#define pci_ss_info_1025_0091 pci_ss_info_1002_4370_1025_0091
 static const pciSubsystemInfo pci_ss_info_1002_4370_103c_308b =
 	{0x103c, 0x308b, pci_subsys_1002_4370_103c_308b, 0};
 #undef pci_ss_info_103c_308b
 #define pci_ss_info_103c_308b pci_ss_info_1002_4370_103c_308b
+static const pciSubsystemInfo pci_ss_info_1002_4370_105b_0c81 =
+	{0x105b, 0x0c81, pci_subsys_1002_4370_105b_0c81, 0};
+#undef pci_ss_info_105b_0c81
+#define pci_ss_info_105b_0c81 pci_ss_info_1002_4370_105b_0c81
 static const pciSubsystemInfo pci_ss_info_1002_4370_107b_0300 =
 	{0x107b, 0x0300, pci_subsys_1002_4370_107b_0300, 0};
 #undef pci_ss_info_107b_0300
@@ -27763,6 +29475,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x012a, pci_subsys_1002_4c57_1028_012a, 0};
 #undef pci_ss_info_1028_012a
 #define pci_ss_info_1028_012a pci_ss_info_1002_4c57_1028_012a
+static const pciSubsystemInfo pci_ss_info_1002_4c57_1043_1622 =
+	{0x1043, 0x1622, pci_subsys_1002_4c57_1043_1622, 0};
+#undef pci_ss_info_1043_1622
+#define pci_ss_info_1043_1622 pci_ss_info_1002_4c57_1043_1622
 static const pciSubsystemInfo pci_ss_info_1002_4c57_144d_c006 =
 	{0x144d, 0xc006, pci_subsys_1002_4c57_144d_c006, 0};
 #undef pci_ss_info_144d_c006
@@ -27791,6 +29507,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1509, 0x1930, pci_subsys_1002_4c59_1509_1930, 0};
 #undef pci_ss_info_1509_1930
 #define pci_ss_info_1509_1930 pci_ss_info_1002_4c59_1509_1930
+static const pciSubsystemInfo pci_ss_info_1002_4c66_1014_054d =
+	{0x1014, 0x054d, pci_subsys_1002_4c66_1014_054d, 0};
+#undef pci_ss_info_1014_054d
+#define pci_ss_info_1014_054d pci_ss_info_1002_4c66_1014_054d
 static const pciSubsystemInfo pci_ss_info_1002_4e44_1002_515e =
 	{0x1002, 0x515e, pci_subsys_1002_4e44_1002_515e, 0};
 #undef pci_ss_info_1002_515e
@@ -28199,6 +29919,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x1279, pci_subsys_1002_5452_103c_1279, 0};
 #undef pci_ss_info_103c_1279
 #define pci_ss_info_103c_1279 pci_ss_info_1002_5452_103c_1279
+static const pciSubsystemInfo pci_ss_info_1002_5460_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_1002_5460_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_1002_5460_1775_1100
 static const pciSubsystemInfo pci_ss_info_1002_5653_1025_0080 =
 	{0x1025, 0x0080, pci_subsys_1002_5653_1025_0080, 0};
 #undef pci_ss_info_1025_0080
@@ -28207,6 +29931,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1002, 0x5654, pci_subsys_1002_5654_1002_5654, 0};
 #undef pci_ss_info_1002_5654
 #define pci_ss_info_1002_5654 pci_ss_info_1002_5654_1002_5654
+static const pciSubsystemInfo pci_ss_info_1002_5940_17af_2021 =
+	{0x17af, 0x2021, pci_subsys_1002_5940_17af_2021, 0};
+#undef pci_ss_info_17af_2021
+#define pci_ss_info_17af_2021 pci_ss_info_1002_5940_17af_2021
 static const pciSubsystemInfo pci_ss_info_1002_5941_1458_4019 =
 	{0x1458, 0x4019, pci_subsys_1002_5941_1458_4019, 0};
 #undef pci_ss_info_1458_4019
@@ -28243,6 +29971,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x308b, pci_subsys_1002_5955_103c_308b, 0};
 #undef pci_ss_info_103c_308b
 #define pci_ss_info_103c_308b pci_ss_info_1002_5955_103c_308b
+static const pciSubsystemInfo pci_ss_info_1002_5960_17af_2020 =
+	{0x17af, 0x2020, pci_subsys_1002_5960_17af_2020, 0};
+#undef pci_ss_info_17af_2020
+#define pci_ss_info_17af_2020 pci_ss_info_1002_5960_17af_2020
 static const pciSubsystemInfo pci_ss_info_1002_5961_1002_2f72 =
 	{0x1002, 0x2f72, pci_subsys_1002_5961_1002_2f72, 0};
 #undef pci_ss_info_1002_2f72
@@ -28367,6 +30099,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1458, 0x4032, pci_subsys_1002_5d44_1458_4032, 0};
 #undef pci_ss_info_1458_4032
 #define pci_ss_info_1458_4032 pci_ss_info_1002_5d44_1458_4032
+static const pciSubsystemInfo pci_ss_info_1002_5d44_147b_6190 =
+	{0x147b, 0x6190, pci_subsys_1002_5d44_147b_6190, 0};
+#undef pci_ss_info_147b_6190
+#define pci_ss_info_147b_6190 pci_ss_info_1002_5d44_147b_6190
 static const pciSubsystemInfo pci_ss_info_1002_5d44_174b_7c12 =
 	{0x174b, 0x7c12, pci_subsys_1002_5d44_174b_7c12, 0};
 #undef pci_ss_info_174b_7c12
@@ -28497,6 +30233,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1385, 0xf311, pci_subsys_100b_0020_1385_f311, 0};
 #undef pci_ss_info_1385_f311
 #define pci_ss_info_1385_f311 pci_ss_info_100b_0020_1385_f311
+static const pciSubsystemInfo pci_ss_info_100b_0502_100b_0502 =
+	{0x100b, 0x0502, pci_subsys_100b_0502_100b_0502, 0};
+#undef pci_ss_info_100b_0502
+#define pci_ss_info_100b_0502 pci_ss_info_100b_0502_100b_0502
+static const pciSubsystemInfo pci_ss_info_100b_0503_100b_0503 =
+	{0x100b, 0x0503, pci_subsys_100b_0503_100b_0503, 0};
+#undef pci_ss_info_100b_0503
+#define pci_ss_info_100b_0503 pci_ss_info_100b_0503_100b_0503
+static const pciSubsystemInfo pci_ss_info_100b_0510_100b_0500 =
+	{0x100b, 0x0500, pci_subsys_100b_0510_100b_0500, 0};
+#undef pci_ss_info_100b_0500
+#define pci_ss_info_100b_0500 pci_ss_info_100b_0510_100b_0500
+static const pciSubsystemInfo pci_ss_info_100b_0511_100b_0501 =
+	{0x100b, 0x0501, pci_subsys_100b_0511_100b_0501, 0};
+#undef pci_ss_info_100b_0501
+#define pci_ss_info_100b_0501 pci_ss_info_100b_0511_100b_0501
+static const pciSubsystemInfo pci_ss_info_100b_0515_100b_0505 =
+	{0x100b, 0x0505, pci_subsys_100b_0515_100b_0505, 0};
+#undef pci_ss_info_100b_0505
+#define pci_ss_info_100b_0505 pci_ss_info_100b_0515_100b_0505
 static const pciSubsystemInfo pci_ss_info_1011_0009_1025_0310 =
 	{0x1025, 0x0310, pci_subsys_1011_0009_1025_0310, 0};
 #undef pci_ss_info_1025_0310
@@ -28980,6 +30736,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x0259, pci_subsys_1014_01bd_1014_0259, 0};
 #undef pci_ss_info_1014_0259
 #define pci_ss_info_1014_0259 pci_ss_info_1014_01bd_1014_0259
+static const pciSubsystemInfo pci_ss_info_1014_01ef_1734_102b =
+	{0x1734, 0x102b, pci_subsys_1014_01ef_1734_102b, 0};
+#undef pci_ss_info_1734_102b
+#define pci_ss_info_1734_102b pci_ss_info_1014_01ef_1734_102b
+static const pciSubsystemInfo pci_ss_info_1014_01ef_1734_10f8 =
+	{0x1734, 0x10f8, pci_subsys_1014_01ef_1734_10f8, 0};
+#undef pci_ss_info_1734_10f8
+#define pci_ss_info_1734_10f8 pci_ss_info_1014_01ef_1734_10f8
 static const pciSubsystemInfo pci_ss_info_1014_0219_1014_021a =
 	{0x1014, 0x021a, pci_subsys_1014_0219_1014_021a, 0};
 #undef pci_ss_info_1014_021a
@@ -29016,6 +30780,28 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x02c2, pci_subsys_1014_02bd_1014_02c2, 0};
 #undef pci_ss_info_1014_02c2
 #define pci_ss_info_1014_02c2 pci_ss_info_1014_02bd_1014_02c2
+static const pciSubsystemInfo pci_ss_info_1014_02bd_1014_0338 =
+	{0x1014, 0x0338, pci_subsys_1014_02bd_1014_0338, 0};
+#undef pci_ss_info_1014_0338
+#define pci_ss_info_1014_0338 pci_ss_info_1014_02bd_1014_0338
+static const pciSubsystemInfo pci_ss_info_1014_0339_1014_0360 =
+	{0x1014, 0x0360, pci_subsys_1014_0339_1014_0360, 0};
+#undef pci_ss_info_1014_0360
+#define pci_ss_info_1014_0360 pci_ss_info_1014_0339_1014_0360
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_101a_1dc1_101a_0019 =
+	{0x101a, 0x0019, pci_subsys_101a_1dc1_101a_0019, 0};
+#undef pci_ss_info_101a_0019
+#define pci_ss_info_101a_0019 pci_ss_info_101a_1dc1_101a_0019
+static const pciSubsystemInfo pci_ss_info_101a_1dc1_101a_001f =
+	{0x101a, 0x001f, pci_subsys_101a_1dc1_101a_001f, 0};
+#undef pci_ss_info_101a_001f
+#define pci_ss_info_101a_001f pci_ss_info_101a_1dc1_101a_001f
+static const pciSubsystemInfo pci_ss_info_101a_1dc1_101a_0ece =
+	{0x101a, 0x0ece, pci_subsys_101a_1dc1_101a_0ece, 0};
+#undef pci_ss_info_101a_0ece
+#define pci_ss_info_101a_0ece pci_ss_info_101a_1dc1_101a_0ece
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_101e_1960_101e_0471 =
@@ -29345,6 +31131,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x1f02, pci_subsys_1028_0015_1028_1f02, 0};
 #undef pci_ss_info_1028_1f02
 #define pci_ss_info_1028_1f02 pci_ss_info_1028_0015_1028_1f02
+static const pciSubsystemInfo pci_ss_info_1028_0015_1028_1f03 =
+	{0x1028, 0x1f03, pci_subsys_1028_0015_1028_1f03, 0};
+#undef pci_ss_info_1028_1f03
+#define pci_ss_info_1028_1f03 pci_ss_info_1028_0015_1028_1f03
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_102a_001f_9005_000f =
 	{0x9005, 0x000f, pci_subsys_102a_001f_9005_000f, 0};
@@ -29853,6 +31643,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x102b, 0x0907, pci_subsys_102b_2538_102b_0907, 0};
 #undef pci_ss_info_102b_0907
 #define pci_ss_info_102b_0907 pci_ss_info_102b_2538_102b_0907
+static const pciSubsystemInfo pci_ss_info_102b_2538_102b_0947 =
+	{0x102b, 0x0947, pci_subsys_102b_2538_102b_0947, 0};
+#undef pci_ss_info_102b_0947
+#define pci_ss_info_102b_0947 pci_ss_info_102b_2538_102b_0947
 static const pciSubsystemInfo pci_ss_info_102b_2538_102b_1047 =
 	{0x102b, 0x1047, pci_subsys_102b_2538_102b_1047, 0};
 #undef pci_ss_info_102b_1047
@@ -30015,6 +31809,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x807d, 0x1043, pci_subsys_1033_00e0_807d_1043, 0};
 #undef pci_ss_info_807d_1043
 #define pci_ss_info_807d_1043 pci_ss_info_1033_00e0_807d_1043
+static const pciSubsystemInfo pci_ss_info_1039_0182_1734_1095 =
+	{0x1734, 0x1095, pci_subsys_1039_0182_1734_1095, 0};
+#undef pci_ss_info_1734_1095
+#define pci_ss_info_1734_1095 pci_ss_info_1039_0182_1734_1095
 static const pciSubsystemInfo pci_ss_info_1039_0200_1039_0000 =
 	{0x1039, 0x0000, pci_subsys_1039_0200_1039_0000, 0};
 #undef pci_ss_info_1039_0000
@@ -30023,6 +31821,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x107d, 0x2720, pci_subsys_1039_0300_107d_2720, 0};
 #undef pci_ss_info_107d_2720
 #define pci_ss_info_107d_2720 pci_ss_info_1039_0300_107d_2720
+static const pciSubsystemInfo pci_ss_info_1039_0761_1734_1099 =
+	{0x1734, 0x1099, pci_subsys_1039_0761_1734_1099, 0};
+#undef pci_ss_info_1734_1099
+#define pci_ss_info_1734_1099 pci_ss_info_1039_0761_1734_1099
 static const pciSubsystemInfo pci_ss_info_1039_0900_1019_0a14 =
 	{0x1019, 0x0a14, pci_subsys_1039_0900_1019_0a14, 0};
 #undef pci_ss_info_1019_0a14
@@ -30055,6 +31857,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7010, pci_subsys_1039_5513_1462_7010, 0};
 #undef pci_ss_info_1462_7010
 #define pci_ss_info_1462_7010 pci_ss_info_1039_5513_1462_7010
+static const pciSubsystemInfo pci_ss_info_1039_5513_1734_1095 =
+	{0x1734, 0x1095, pci_subsys_1039_5513_1734_1095, 0};
+#undef pci_ss_info_1734_1095
+#define pci_ss_info_1734_1095 pci_ss_info_1039_5513_1734_1095
 static const pciSubsystemInfo pci_ss_info_1039_6300_1019_0970 =
 	{0x1019, 0x0970, pci_subsys_1039_6300_1019_0970, 0};
 #undef pci_ss_info_1019_0970
@@ -30095,6 +31901,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1039, 0x6330, pci_subsys_1039_6330_1039_6330, 0};
 #undef pci_ss_info_1039_6330
 #define pci_ss_info_1039_6330 pci_ss_info_1039_6330_1039_6330
+static const pciSubsystemInfo pci_ss_info_1039_6330_1043_8113 =
+	{0x1043, 0x8113, pci_subsys_1039_6330_1043_8113, 0};
+#undef pci_ss_info_1043_8113
+#define pci_ss_info_1043_8113 pci_ss_info_1039_6330_1043_8113
+static const pciSubsystemInfo pci_ss_info_1039_6330_1458_d000 =
+	{0x1458, 0xd000, pci_subsys_1039_6330_1458_d000, 0};
+#undef pci_ss_info_1458_d000
+#define pci_ss_info_1458_d000 pci_ss_info_1039_6330_1458_d000
+static const pciSubsystemInfo pci_ss_info_1039_6330_1734_1099 =
+	{0x1734, 0x1099, pci_subsys_1039_6330_1734_1099, 0};
+#undef pci_ss_info_1734_1099
+#define pci_ss_info_1734_1099 pci_ss_info_1039_6330_1734_1099
 static const pciSubsystemInfo pci_ss_info_1039_7001_1019_0a14 =
 	{0x1019, 0x0a14, pci_subsys_1039_7001_1019_0a14, 0};
 #undef pci_ss_info_1019_0a14
@@ -30111,6 +31929,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7010, pci_subsys_1039_7001_1462_7010, 0};
 #undef pci_ss_info_1462_7010
 #define pci_ss_info_1462_7010 pci_ss_info_1039_7001_1462_7010
+static const pciSubsystemInfo pci_ss_info_1039_7001_1734_1095 =
+	{0x1734, 0x1095, pci_subsys_1039_7001_1734_1095, 0};
+#undef pci_ss_info_1734_1095
+#define pci_ss_info_1734_1095 pci_ss_info_1039_7001_1734_1095
 static const pciSubsystemInfo pci_ss_info_1039_7002_1462_7010 =
 	{0x1462, 0x7010, pci_subsys_1039_7002_1462_7010, 0};
 #undef pci_ss_info_1462_7010
@@ -30119,6 +31941,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1509, 0x7002, pci_subsys_1039_7002_1509_7002, 0};
 #undef pci_ss_info_1509_7002
 #define pci_ss_info_1509_7002 pci_ss_info_1039_7002_1509_7002
+static const pciSubsystemInfo pci_ss_info_1039_7002_1734_1095 =
+	{0x1734, 0x1095, pci_subsys_1039_7002_1734_1095, 0};
+#undef pci_ss_info_1734_1095
+#define pci_ss_info_1734_1095 pci_ss_info_1039_7002_1734_1095
 static const pciSubsystemInfo pci_ss_info_1039_7007_1462_701d =
 	{0x1462, 0x701d, pci_subsys_1039_7007_1462_701d, 0};
 #undef pci_ss_info_1462_701d
@@ -30131,6 +31957,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x15bd, 0x1001, pci_subsys_1039_7012_15bd_1001, 0};
 #undef pci_ss_info_15bd_1001
 #define pci_ss_info_15bd_1001 pci_ss_info_1039_7012_15bd_1001
+static const pciSubsystemInfo pci_ss_info_1039_7012_1734_109f =
+	{0x1734, 0x109f, pci_subsys_1039_7012_1734_109f, 0};
+#undef pci_ss_info_1734_109f
+#define pci_ss_info_1734_109f pci_ss_info_1039_7012_1734_109f
 static const pciSubsystemInfo pci_ss_info_1039_7016_1039_7016 =
 	{0x1039, 0x7016, pci_subsys_1039_7016_1039_7016, 0};
 #undef pci_ss_info_1039_7016
@@ -30159,6 +31989,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1039, 0x7018, pci_subsys_1039_7018_1039_7018, 0};
 #undef pci_ss_info_1039_7018
 #define pci_ss_info_1039_7018 pci_ss_info_1039_7018_1039_7018
+static const pciSubsystemInfo pci_ss_info_1039_7018_1043_1453 =
+	{0x1043, 0x1453, pci_subsys_1039_7018_1043_1453, 0};
+#undef pci_ss_info_1043_1453
+#define pci_ss_info_1043_1453 pci_ss_info_1039_7018_1043_1453
 static const pciSubsystemInfo pci_ss_info_1039_7018_1043_800b =
 	{0x1043, 0x800b, pci_subsys_1039_7018_1043_800b, 0};
 #undef pci_ss_info_1043_800b
@@ -30295,6 +32129,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x3225, pci_subsys_103c_3220_103c_3225, 0};
 #undef pci_ss_info_103c_3225
 #define pci_ss_info_103c_3225 pci_ss_info_103c_3220_103c_3225
+static const pciSubsystemInfo pci_ss_info_103c_3230_103c_3223 =
+	{0x103c, 0x3223, pci_subsys_103c_3230_103c_3223, 0};
+#undef pci_ss_info_103c_3223
+#define pci_ss_info_103c_3223 pci_ss_info_103c_3230_103c_3223
+static const pciSubsystemInfo pci_ss_info_103c_3230_103c_3234 =
+	{0x103c, 0x3234, pci_subsys_103c_3230_103c_3234, 0};
+#undef pci_ss_info_103c_3234
+#define pci_ss_info_103c_3234 pci_ss_info_103c_3230_103c_3234
+static const pciSubsystemInfo pci_ss_info_103c_3230_103c_3235 =
+	{0x103c, 0x3235, pci_subsys_103c_3230_103c_3235, 0};
+#undef pci_ss_info_103c_3235
+#define pci_ss_info_103c_3235 pci_ss_info_103c_3230_103c_3235
+static const pciSubsystemInfo pci_ss_info_103c_3230_103c_3237 =
+	{0x103c, 0x3237, pci_subsys_103c_3230_103c_3237, 0};
+#undef pci_ss_info_103c_3237
+#define pci_ss_info_103c_3237 pci_ss_info_103c_3230_103c_3237
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1043_0675_0675_1704 =
 	{0x0675, 0x1704, pci_subsys_1043_0675_0675_1704, 0};
@@ -31276,6 +33126,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x105a, 0x4600, pci_subsys_105a_8650_105a_4600, 0};
 #undef pci_ss_info_105a_4600
 #define pci_ss_info_105a_4600 pci_ss_info_105a_8650_105a_4600
+static const pciSubsystemInfo pci_ss_info_105a_8650_105a_4610 =
+	{0x105a, 0x4610, pci_subsys_105a_8650_105a_4610, 0};
+#undef pci_ss_info_105a_4610
+#define pci_ss_info_105a_4610 pci_ss_info_105a_8650_105a_4610
 static const pciSubsystemInfo pci_ss_info_105a_8650_105a_8601 =
 	{0x105a, 0x8601, pci_subsys_105a_8650_105a_8601, 0};
 #undef pci_ss_info_105a_8601
@@ -31591,6 +33445,14 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_108d_0017
 #define pci_ss_info_108d_0017 pci_ss_info_108d_0019_108d_0017
 #endif
+static const pciSubsystemInfo pci_ss_info_108e_5000_108e_5000 =
+	{0x108e, 0x5000, pci_subsys_108e_5000_108e_5000, 0};
+#undef pci_ss_info_108e_5000
+#define pci_ss_info_108e_5000 pci_ss_info_108e_5000_108e_5000
+static const pciSubsystemInfo pci_ss_info_108e_a001_108e_a001 =
+	{0x108e, 0xa001, pci_subsys_108e_a001_108e_a001, 0};
+#undef pci_ss_info_108e_a001
+#define pci_ss_info_108e_a001 pci_ss_info_108e_a001_108e_a001
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1095_0648_1043_8025 =
 	{0x1043, 0x8025, pci_subsys_1095_0648_1043_8025, 0};
@@ -32122,14 +33984,26 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_10b4_237e pci_ss_info_10b4_1b1d_10b4_237e
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_10b5_6540_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_10b5_6540_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_10b5_6540_1775_1100
 static const pciSubsystemInfo pci_ss_info_10b5_6540_4c53_10e0 =
 	{0x4c53, 0x10e0, pci_subsys_10b5_6540_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_10b5_6540_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_10b5_6541_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_10b5_6541_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_10b5_6541_1775_1100
 static const pciSubsystemInfo pci_ss_info_10b5_6541_4c53_10e0 =
 	{0x4c53, 0x10e0, pci_subsys_10b5_6541_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_10b5_6541_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_10b5_6542_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_10b5_6542_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_10b5_6542_1775_1100
 static const pciSubsystemInfo pci_ss_info_10b5_6542_4c53_10e0 =
 	{0x4c53, 0x10e0, pci_subsys_10b5_6542_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
@@ -32374,6 +34248,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x14b4, 0xd100, pci_subsys_10b5_9054_14b4_d100, 0};
 #undef pci_ss_info_14b4_d100
 #define pci_ss_info_14b4_d100 pci_ss_info_10b5_9054_14b4_d100
+static const pciSubsystemInfo pci_ss_info_10b5_9054_14b4_d114 =
+	{0x14b4, 0xd114, pci_subsys_10b5_9054_14b4_d114, 0};
+#undef pci_ss_info_14b4_d114
+#define pci_ss_info_14b4_d114 pci_ss_info_10b5_9054_14b4_d114
 static const pciSubsystemInfo pci_ss_info_10b5_9054_16df_0011 =
 	{0x16df, 0x0011, pci_subsys_10b5_9054_16df_0011, 0};
 #undef pci_ss_info_16df_0011
@@ -32402,6 +34280,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10b5, 0x2979, pci_subsys_10b5_9056_10b5_2979, 0};
 #undef pci_ss_info_10b5_2979
 #define pci_ss_info_10b5_2979 pci_ss_info_10b5_9056_10b5_2979
+static const pciSubsystemInfo pci_ss_info_10b5_9056_14b4_d140 =
+	{0x14b4, 0xd140, pci_subsys_10b5_9056_14b4_d140, 0};
+#undef pci_ss_info_14b4_d140
+#define pci_ss_info_14b4_d140 pci_ss_info_10b5_9056_14b4_d140
 static const pciSubsystemInfo pci_ss_info_10b5_906d_125c_0640 =
 	{0x125c, 0x0640, pci_subsys_10b5_906d_125c_0640, 0};
 #undef pci_ss_info_125c_0640
@@ -32512,6 +34394,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10b7, 0x2031, pci_subsys_10b7_0013_10b7_2031, 0};
 #undef pci_ss_info_10b7_2031
 #define pci_ss_info_10b7_2031 pci_ss_info_10b7_0013_10b7_2031
+static const pciSubsystemInfo pci_ss_info_10b7_1007_10b7_615b =
+	{0x10b7, 0x615b, pci_subsys_10b7_1007_10b7_615b, 0};
+#undef pci_ss_info_10b7_615b
+#define pci_ss_info_10b7_615b pci_ss_info_10b7_1007_10b7_615b
 static const pciSubsystemInfo pci_ss_info_10b7_1007_10b7_615c =
 	{0x10b7, 0x615c, pci_subsys_10b7_1007_10b7_615c, 0};
 #undef pci_ss_info_10b7_615c
@@ -32721,6 +34607,12 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_1028_0097 pci_ss_info_10b7_9200_1028_0097
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
+static const pciSubsystemInfo pci_ss_info_10b7_9200_1028_00b4 =
+	{0x1028, 0x00b4, pci_subsys_10b7_9200_1028_00b4, 0};
+#undef pci_ss_info_1028_00b4
+#define pci_ss_info_1028_00b4 pci_ss_info_10b7_9200_1028_00b4
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_10b7_9200_1028_00fe =
 	{0x1028, 0x00fe, pci_subsys_10b7_9200_1028_00fe, 0};
 #undef pci_ss_info_1028_00fe
@@ -33469,6 +35361,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c1a, pci_subsys_10de_0053_147b_1c1a, 0};
 #undef pci_ss_info_147b_1c1a
 #define pci_ss_info_147b_1c1a pci_ss_info_10de_0053_147b_1c1a
+static const pciSubsystemInfo pci_ss_info_10de_0054_1043_815a =
+	{0x1043, 0x815a, pci_subsys_10de_0054_1043_815a, 0};
+#undef pci_ss_info_1043_815a
+#define pci_ss_info_1043_815a pci_ss_info_10de_0054_1043_815a
 static const pciSubsystemInfo pci_ss_info_10de_0054_1458_b003 =
 	{0x1458, 0xb003, pci_subsys_10de_0054_1458_b003, 0};
 #undef pci_ss_info_1458_b003
@@ -33549,6 +35445,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c1a, pci_subsys_10de_005b_147b_1c1a, 0};
 #undef pci_ss_info_147b_1c1a
 #define pci_ss_info_147b_1c1a pci_ss_info_10de_005b_147b_1c1a
+static const pciSubsystemInfo pci_ss_info_10de_005e_1043_815a =
+	{0x1043, 0x815a, pci_subsys_10de_005e_1043_815a, 0};
+#undef pci_ss_info_1043_815a
+#define pci_ss_info_1043_815a pci_ss_info_10de_005e_1043_815a
 static const pciSubsystemInfo pci_ss_info_10de_005e_10f1_2891 =
 	{0x10f1, 0x2891, pci_subsys_10de_005e_10f1_2891, 0};
 #undef pci_ss_info_10f1_2891
@@ -33645,6 +35545,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10de, 0x029b, pci_subsys_10de_00cd_10de_029b, 0};
 #undef pci_ss_info_10de_029b
 #define pci_ss_info_10de_029b pci_ss_info_10de_00cd_10de_029b
+static const pciSubsystemInfo pci_ss_info_10de_00df_1043_80a7 =
+	{0x1043, 0x80a7, pci_subsys_10de_00df_1043_80a7, 0};
+#undef pci_ss_info_1043_80a7
+#define pci_ss_info_1043_80a7 pci_ss_info_10de_00df_1043_80a7
 static const pciSubsystemInfo pci_ss_info_10de_00df_105b_0c43 =
 	{0x105b, 0x0c43, pci_subsys_10de_00df_105b_0c43, 0};
 #undef pci_ss_info_105b_0c43
@@ -33653,6 +35557,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c0b, pci_subsys_10de_00df_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
 #define pci_ss_info_147b_1c0b pci_ss_info_10de_00df_147b_1c0b
+static const pciSubsystemInfo pci_ss_info_10de_00e0_1043_813f =
+	{0x1043, 0x813f, pci_subsys_10de_00e0_1043_813f, 0};
+#undef pci_ss_info_1043_813f
+#define pci_ss_info_1043_813f pci_ss_info_10de_00e0_1043_813f
 static const pciSubsystemInfo pci_ss_info_10de_00e0_10de_0c11 =
 	{0x10de, 0x0c11, pci_subsys_10de_00e0_10de_0c11, 0};
 #undef pci_ss_info_10de_0c11
@@ -33665,6 +35573,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c0b, pci_subsys_10de_00e0_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
 #define pci_ss_info_147b_1c0b pci_ss_info_10de_00e0_147b_1c0b
+static const pciSubsystemInfo pci_ss_info_10de_00e1_1043_813f =
+	{0x1043, 0x813f, pci_subsys_10de_00e1_1043_813f, 0};
+#undef pci_ss_info_1043_813f
+#define pci_ss_info_1043_813f pci_ss_info_10de_00e1_1043_813f
 static const pciSubsystemInfo pci_ss_info_10de_00e1_1462_7030 =
 	{0x1462, 0x7030, pci_subsys_10de_00e1_1462_7030, 0};
 #undef pci_ss_info_1462_7030
@@ -33673,6 +35585,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c0b, pci_subsys_10de_00e1_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
 #define pci_ss_info_147b_1c0b pci_ss_info_10de_00e1_147b_1c0b
+static const pciSubsystemInfo pci_ss_info_10de_00e3_1043_813f =
+	{0x1043, 0x813f, pci_subsys_10de_00e3_1043_813f, 0};
+#undef pci_ss_info_1043_813f
+#define pci_ss_info_1043_813f pci_ss_info_10de_00e3_1043_813f
 static const pciSubsystemInfo pci_ss_info_10de_00e3_105b_0c43 =
 	{0x105b, 0x0c43, pci_subsys_10de_00e3_105b_0c43, 0};
 #undef pci_ss_info_105b_0c43
@@ -33681,6 +35597,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c0b, pci_subsys_10de_00e3_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
 #define pci_ss_info_147b_1c0b pci_ss_info_10de_00e3_147b_1c0b
+static const pciSubsystemInfo pci_ss_info_10de_00e4_1043_813f =
+	{0x1043, 0x813f, pci_subsys_10de_00e4_1043_813f, 0};
+#undef pci_ss_info_1043_813f
+#define pci_ss_info_1043_813f pci_ss_info_10de_00e4_1043_813f
 static const pciSubsystemInfo pci_ss_info_10de_00e4_105b_0c43 =
 	{0x105b, 0x0c43, pci_subsys_10de_00e4_105b_0c43, 0};
 #undef pci_ss_info_105b_0c43
@@ -33693,6 +35613,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c0b, pci_subsys_10de_00e4_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
 #define pci_ss_info_147b_1c0b pci_ss_info_10de_00e4_147b_1c0b
+static const pciSubsystemInfo pci_ss_info_10de_00e5_1043_813f =
+	{0x1043, 0x813f, pci_subsys_10de_00e5_1043_813f, 0};
+#undef pci_ss_info_1043_813f
+#define pci_ss_info_1043_813f pci_ss_info_10de_00e5_1043_813f
 static const pciSubsystemInfo pci_ss_info_10de_00e5_105b_0c43 =
 	{0x105b, 0x0c43, pci_subsys_10de_00e5_105b_0c43, 0};
 #undef pci_ss_info_105b_0c43
@@ -33705,6 +35629,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c0b, pci_subsys_10de_00e5_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
 #define pci_ss_info_147b_1c0b pci_ss_info_10de_00e5_147b_1c0b
+static const pciSubsystemInfo pci_ss_info_10de_00e7_1043_813f =
+	{0x1043, 0x813f, pci_subsys_10de_00e7_1043_813f, 0};
+#undef pci_ss_info_1043_813f
+#define pci_ss_info_1043_813f pci_ss_info_10de_00e7_1043_813f
 static const pciSubsystemInfo pci_ss_info_10de_00e7_105b_0c43 =
 	{0x105b, 0x0c43, pci_subsys_10de_00e7_105b_0c43, 0};
 #undef pci_ss_info_105b_0c43
@@ -33717,6 +35645,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c0b, pci_subsys_10de_00e7_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
 #define pci_ss_info_147b_1c0b pci_ss_info_10de_00e7_147b_1c0b
+static const pciSubsystemInfo pci_ss_info_10de_00e8_1043_813f =
+	{0x1043, 0x813f, pci_subsys_10de_00e8_1043_813f, 0};
+#undef pci_ss_info_1043_813f
+#define pci_ss_info_1043_813f pci_ss_info_10de_00e8_1043_813f
 static const pciSubsystemInfo pci_ss_info_10de_00e8_105b_0c43 =
 	{0x105b, 0x0c43, pci_subsys_10de_00e8_105b_0c43, 0};
 #undef pci_ss_info_105b_0c43
@@ -33729,10 +35661,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x1c0b, pci_subsys_10de_00e8_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
 #define pci_ss_info_147b_1c0b pci_ss_info_10de_00e8_147b_1c0b
+static const pciSubsystemInfo pci_ss_info_10de_00ea_1043_819d =
+	{0x1043, 0x819d, pci_subsys_10de_00ea_1043_819d, 0};
+#undef pci_ss_info_1043_819d
+#define pci_ss_info_1043_819d pci_ss_info_10de_00ea_1043_819d
 static const pciSubsystemInfo pci_ss_info_10de_00ea_105b_0c43 =
 	{0x105b, 0x0c43, pci_subsys_10de_00ea_105b_0c43, 0};
 #undef pci_ss_info_105b_0c43
 #define pci_ss_info_105b_0c43 pci_ss_info_10de_00ea_105b_0c43
+static const pciSubsystemInfo pci_ss_info_10de_00ea_1462_b010 =
+	{0x1462, 0xb010, pci_subsys_10de_00ea_1462_b010, 0};
+#undef pci_ss_info_1462_b010
+#define pci_ss_info_1462_b010 pci_ss_info_10de_00ea_1462_b010
 static const pciSubsystemInfo pci_ss_info_10de_00ea_147b_1c0b =
 	{0x147b, 0x1c0b, pci_subsys_10de_00ea_147b_1c0b, 0};
 #undef pci_ss_info_147b_1c0b
@@ -33741,6 +35681,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x81a6, pci_subsys_10de_00f1_1043_81a6, 0};
 #undef pci_ss_info_1043_81a6
 #define pci_ss_info_1043_81a6 pci_ss_info_10de_00f1_1043_81a6
+static const pciSubsystemInfo pci_ss_info_10de_00f1_1458_3150 =
+	{0x1458, 0x3150, pci_subsys_10de_00f1_1458_3150, 0};
+#undef pci_ss_info_1458_3150
+#define pci_ss_info_1458_3150 pci_ss_info_10de_00f1_1458_3150
 static const pciSubsystemInfo pci_ss_info_10de_00f1_1682_2119 =
 	{0x1682, 0x2119, pci_subsys_10de_00f1_1682_2119, 0};
 #undef pci_ss_info_1682_2119
@@ -33845,6 +35789,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x4015, pci_subsys_10de_0110_1043_4015, 0};
 #undef pci_ss_info_1043_4015
 #define pci_ss_info_1043_4015 pci_ss_info_10de_0110_1043_4015
+static const pciSubsystemInfo pci_ss_info_10de_0110_1043_4021 =
+	{0x1043, 0x4021, pci_subsys_10de_0110_1043_4021, 0};
+#undef pci_ss_info_1043_4021
+#define pci_ss_info_1043_4021 pci_ss_info_10de_0110_1043_4021
 static const pciSubsystemInfo pci_ss_info_10de_0110_1043_4031 =
 	{0x1043, 0x4031, pci_subsys_10de_0110_1043_4031, 0};
 #undef pci_ss_info_1043_4031
@@ -33893,6 +35841,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x14af, 0x7103, pci_subsys_10de_0110_14af_7103, 0};
 #undef pci_ss_info_14af_7103
 #define pci_ss_info_14af_7103 pci_ss_info_10de_0110_14af_7103
+static const pciSubsystemInfo pci_ss_info_10de_0141_1043_81b0 =
+	{0x1043, 0x81b0, pci_subsys_10de_0141_1043_81b0, 0};
+#undef pci_ss_info_1043_81b0
+#define pci_ss_info_1043_81b0 pci_ss_info_10de_0141_1043_81b0
 static const pciSubsystemInfo pci_ss_info_10de_0141_1458_3124 =
 	{0x1458, 0x3124, pci_subsys_10de_0141_1458_3124, 0};
 #undef pci_ss_info_1458_3124
@@ -34053,10 +36005,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1545, 0x002f, pci_subsys_10de_0202_1545_002f, 0};
 #undef pci_ss_info_1545_002f
 #define pci_ss_info_1545_002f pci_ss_info_10de_0202_1545_002f
+static const pciSubsystemInfo pci_ss_info_10de_0221_3842_a341 =
+	{0x3842, 0xa341, pci_subsys_10de_0221_3842_a341, 0};
+#undef pci_ss_info_3842_a341
+#define pci_ss_info_3842_a341 pci_ss_info_10de_0221_3842_a341
+static const pciSubsystemInfo pci_ss_info_10de_0240_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_0240_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_0240_1043_81cd
 static const pciSubsystemInfo pci_ss_info_10de_0240_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_0240_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0240_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0244_10de_0244 =
+	{0x10de, 0x0244, pci_subsys_10de_0244_10de_0244, 0};
+#undef pci_ss_info_10de_0244
+#define pci_ss_info_10de_0244 pci_ss_info_10de_0244_10de_0244
+static const pciSubsystemInfo pci_ss_info_10de_0247_1043_1382 =
+	{0x1043, 0x1382, pci_subsys_10de_0247_1043_1382, 0};
+#undef pci_ss_info_1043_1382
+#define pci_ss_info_1043_1382 pci_ss_info_10de_0247_1043_1382
 static const pciSubsystemInfo pci_ss_info_10de_0251_1043_8023 =
 	{0x1043, 0x8023, pci_subsys_10de_0251_1043_8023, 0};
 #undef pci_ss_info_1043_8023
@@ -34069,74 +36037,194 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0x8f09, pci_subsys_10de_0253_147b_8f09, 0};
 #undef pci_ss_info_147b_8f09
 #define pci_ss_info_147b_8f09 pci_ss_info_10de_0253_147b_8f09
+static const pciSubsystemInfo pci_ss_info_10de_0260_1043_81bc =
+	{0x1043, 0x81bc, pci_subsys_10de_0260_1043_81bc, 0};
+#undef pci_ss_info_1043_81bc
+#define pci_ss_info_1043_81bc pci_ss_info_10de_0260_1043_81bc
+static const pciSubsystemInfo pci_ss_info_10de_0260_1458_5001 =
+	{0x1458, 0x5001, pci_subsys_10de_0260_1458_5001, 0};
+#undef pci_ss_info_1458_5001
+#define pci_ss_info_1458_5001 pci_ss_info_10de_0260_1458_5001
 static const pciSubsystemInfo pci_ss_info_10de_0260_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_0260_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0260_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0264_1043_81bc =
+	{0x1043, 0x81bc, pci_subsys_10de_0264_1043_81bc, 0};
+#undef pci_ss_info_1043_81bc
+#define pci_ss_info_1043_81bc pci_ss_info_10de_0264_1043_81bc
 static const pciSubsystemInfo pci_ss_info_10de_0264_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_0264_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0264_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0265_1043_81bc =
+	{0x1043, 0x81bc, pci_subsys_10de_0265_1043_81bc, 0};
+#undef pci_ss_info_1043_81bc
+#define pci_ss_info_1043_81bc pci_ss_info_10de_0265_1043_81bc
 static const pciSubsystemInfo pci_ss_info_10de_0265_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_0265_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0265_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0266_1043_81bc =
+	{0x1043, 0x81bc, pci_subsys_10de_0266_1043_81bc, 0};
+#undef pci_ss_info_1043_81bc
+#define pci_ss_info_1043_81bc pci_ss_info_10de_0266_1043_81bc
 static const pciSubsystemInfo pci_ss_info_10de_0266_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_0266_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0266_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0267_1043_81bc =
+	{0x1043, 0x81bc, pci_subsys_10de_0267_1043_81bc, 0};
+#undef pci_ss_info_1043_81bc
+#define pci_ss_info_1043_81bc pci_ss_info_10de_0267_1043_81bc
 static const pciSubsystemInfo pci_ss_info_10de_0267_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_0267_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0267_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0269_1043_8141 =
+	{0x1043, 0x8141, pci_subsys_10de_0269_1043_8141, 0};
+#undef pci_ss_info_1043_8141
+#define pci_ss_info_1043_8141 pci_ss_info_10de_0269_1043_8141
 static const pciSubsystemInfo pci_ss_info_10de_0269_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_0269_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0269_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_026c_10de_cb84 =
+	{0x10de, 0xcb84, pci_subsys_10de_026c_10de_cb84, 0};
+#undef pci_ss_info_10de_cb84
+#define pci_ss_info_10de_cb84 pci_ss_info_10de_026c_10de_cb84
 static const pciSubsystemInfo pci_ss_info_10de_026c_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_026c_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_026c_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_026d_1043_81bc =
+	{0x1043, 0x81bc, pci_subsys_10de_026d_1043_81bc, 0};
+#undef pci_ss_info_1043_81bc
+#define pci_ss_info_1043_81bc pci_ss_info_10de_026d_1043_81bc
 static const pciSubsystemInfo pci_ss_info_10de_026d_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_026d_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_026d_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_026e_1043_81bc =
+	{0x1043, 0x81bc, pci_subsys_10de_026e_1043_81bc, 0};
+#undef pci_ss_info_1043_81bc
+#define pci_ss_info_1043_81bc pci_ss_info_10de_026e_1043_81bc
 static const pciSubsystemInfo pci_ss_info_10de_026e_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_026e_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_026e_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0270_1043_81bc =
+	{0x1043, 0x81bc, pci_subsys_10de_0270_1043_81bc, 0};
+#undef pci_ss_info_1043_81bc
+#define pci_ss_info_1043_81bc pci_ss_info_10de_0270_1043_81bc
+static const pciSubsystemInfo pci_ss_info_10de_0270_1458_5001 =
+	{0x1458, 0x5001, pci_subsys_10de_0270_1458_5001, 0};
+#undef pci_ss_info_1458_5001
+#define pci_ss_info_1458_5001 pci_ss_info_10de_0270_1458_5001
 static const pciSubsystemInfo pci_ss_info_10de_0270_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_0270_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_0270_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_027e_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_027e_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_027e_1043_81cd
+static const pciSubsystemInfo pci_ss_info_10de_027e_1458_5000 =
+	{0x1458, 0x5000, pci_subsys_10de_027e_1458_5000, 0};
+#undef pci_ss_info_1458_5000
+#define pci_ss_info_1458_5000 pci_ss_info_10de_027e_1458_5000
 static const pciSubsystemInfo pci_ss_info_10de_027e_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_027e_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_027e_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_027f_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_027f_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_027f_1043_81cd
+static const pciSubsystemInfo pci_ss_info_10de_027f_1458_5000 =
+	{0x1458, 0x5000, pci_subsys_10de_027f_1458_5000, 0};
+#undef pci_ss_info_1458_5000
+#define pci_ss_info_1458_5000 pci_ss_info_10de_027f_1458_5000
 static const pciSubsystemInfo pci_ss_info_10de_027f_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_027f_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_027f_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_0291_10de_042b =
+	{0x10de, 0x042b, pci_subsys_10de_0291_10de_042b, 0};
+#undef pci_ss_info_10de_042b
+#define pci_ss_info_10de_042b pci_ss_info_10de_0291_10de_042b
+static const pciSubsystemInfo pci_ss_info_10de_0295_107d_2a68 =
+	{0x107d, 0x2a68, pci_subsys_10de_0295_107d_2a68, 0};
+#undef pci_ss_info_107d_2a68
+#define pci_ss_info_107d_2a68 pci_ss_info_10de_0295_107d_2a68
+static const pciSubsystemInfo pci_ss_info_10de_02f0_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_02f0_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_02f0_1043_81cd
 static const pciSubsystemInfo pci_ss_info_10de_02f0_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_02f0_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02f0_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02f1_1458_5000 =
+	{0x1458, 0x5000, pci_subsys_10de_02f1_1458_5000, 0};
+#undef pci_ss_info_1458_5000
+#define pci_ss_info_1458_5000 pci_ss_info_10de_02f1_1458_5000
+static const pciSubsystemInfo pci_ss_info_10de_02f8_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_02f8_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_02f8_1043_81cd
+static const pciSubsystemInfo pci_ss_info_10de_02f8_1458_5000 =
+	{0x1458, 0x5000, pci_subsys_10de_02f8_1458_5000, 0};
+#undef pci_ss_info_1458_5000
+#define pci_ss_info_1458_5000 pci_ss_info_10de_02f8_1458_5000
 static const pciSubsystemInfo pci_ss_info_10de_02f8_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_02f8_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02f8_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02f9_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_02f9_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_02f9_1043_81cd
+static const pciSubsystemInfo pci_ss_info_10de_02f9_1458_5000 =
+	{0x1458, 0x5000, pci_subsys_10de_02f9_1458_5000, 0};
+#undef pci_ss_info_1458_5000
+#define pci_ss_info_1458_5000 pci_ss_info_10de_02f9_1458_5000
 static const pciSubsystemInfo pci_ss_info_10de_02f9_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_02f9_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02f9_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02fa_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_02fa_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_02fa_1043_81cd
+static const pciSubsystemInfo pci_ss_info_10de_02fa_1458_5000 =
+	{0x1458, 0x5000, pci_subsys_10de_02fa_1458_5000, 0};
+#undef pci_ss_info_1458_5000
+#define pci_ss_info_1458_5000 pci_ss_info_10de_02fa_1458_5000
 static const pciSubsystemInfo pci_ss_info_10de_02fa_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_02fa_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02fa_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02fe_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_02fe_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_02fe_1043_81cd
+static const pciSubsystemInfo pci_ss_info_10de_02fe_1458_5000 =
+	{0x1458, 0x5000, pci_subsys_10de_02fe_1458_5000, 0};
+#undef pci_ss_info_1458_5000
+#define pci_ss_info_1458_5000 pci_ss_info_10de_02fe_1458_5000
 static const pciSubsystemInfo pci_ss_info_10de_02fe_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_02fe_1462_7207, 0};
 #undef pci_ss_info_1462_7207
 #define pci_ss_info_1462_7207 pci_ss_info_10de_02fe_1462_7207
+static const pciSubsystemInfo pci_ss_info_10de_02ff_1043_81cd =
+	{0x1043, 0x81cd, pci_subsys_10de_02ff_1043_81cd, 0};
+#undef pci_ss_info_1043_81cd
+#define pci_ss_info_1043_81cd pci_ss_info_10de_02ff_1043_81cd
+static const pciSubsystemInfo pci_ss_info_10de_02ff_1458_5000 =
+	{0x1458, 0x5000, pci_subsys_10de_02ff_1458_5000, 0};
+#undef pci_ss_info_1458_5000
+#define pci_ss_info_1458_5000 pci_ss_info_10de_02ff_1458_5000
 static const pciSubsystemInfo pci_ss_info_10de_02ff_1462_7207 =
 	{0x1462, 0x7207, pci_subsys_10de_02ff_1462_7207, 0};
 #undef pci_ss_info_1462_7207
@@ -34145,6 +36233,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x814a, pci_subsys_10de_0314_1043_814a, 0};
 #undef pci_ss_info_1043_814a
 #define pci_ss_info_1043_814a pci_ss_info_10de_0314_1043_814a
+static const pciSubsystemInfo pci_ss_info_10de_0322_1043_02fb =
+	{0x1043, 0x02fb, pci_subsys_10de_0322_1043_02fb, 0};
+#undef pci_ss_info_1043_02fb
+#define pci_ss_info_1043_02fb pci_ss_info_10de_0322_1043_02fb
 static const pciSubsystemInfo pci_ss_info_10de_0322_1462_9171 =
 	{0x1462, 0x9171, pci_subsys_10de_0322_1462_9171, 0};
 #undef pci_ss_info_1462_9171
@@ -34165,14 +36257,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x8145, pci_subsys_10de_0331_1043_8145, 0};
 #undef pci_ss_info_1043_8145
 #define pci_ss_info_1043_8145 pci_ss_info_10de_0331_1043_8145
+static const pciSubsystemInfo pci_ss_info_10de_0341_1462_9380 =
+	{0x1462, 0x9380, pci_subsys_10de_0341_1462_9380, 0};
+#undef pci_ss_info_1462_9380
+#define pci_ss_info_1462_9380 pci_ss_info_10de_0341_1462_9380
 static const pciSubsystemInfo pci_ss_info_10de_0347_103c_006a =
 	{0x103c, 0x006a, pci_subsys_10de_0347_103c_006a, 0};
 #undef pci_ss_info_103c_006a
 #define pci_ss_info_103c_006a pci_ss_info_10de_0347_103c_006a
+static const pciSubsystemInfo pci_ss_info_10de_0391_1458_3427 =
+	{0x1458, 0x3427, pci_subsys_10de_0391_1458_3427, 0};
+#undef pci_ss_info_1458_3427
+#define pci_ss_info_1458_3427 pci_ss_info_10de_0391_1458_3427
 static const pciSubsystemInfo pci_ss_info_10de_0392_1462_0622 =
 	{0x1462, 0x0622, pci_subsys_10de_0392_1462_0622, 0};
 #undef pci_ss_info_1462_0622
 #define pci_ss_info_1462_0622 pci_ss_info_10de_0392_1462_0622
+static const pciSubsystemInfo pci_ss_info_10de_0398_1025_006c =
+	{0x1025, 0x006c, pci_subsys_10de_0398_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_10de_0398_1025_006c
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_10e1_0391_10e1_0391 =
 	{0x10e1, 0x0391, pci_subsys_10e1_0391_10e1_0391, 0};
@@ -34180,6 +36284,12 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_10e1_0391 pci_ss_info_10e1_0391_10e1_0391
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_10e3_0148_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_10e3_0148_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_10e3_0148_1775_1100
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 static const pciSubsystemInfo pci_ss_info_10ec_0883_1025_1605 =
 	{0x1025, 0x1605, pci_subsys_10ec_0883_1025_1605, 0};
@@ -34242,6 +36352,10 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_103c_006a
 #define pci_ss_info_103c_006a pci_ss_info_10ec_8139_103c_006a
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_10ec_8139_1043_1045 =
+	{0x1043, 0x1045, pci_subsys_10ec_8139_1043_1045, 0};
+#undef pci_ss_info_1043_1045
+#define pci_ss_info_1043_1045 pci_ss_info_10ec_8139_1043_1045
 static const pciSubsystemInfo pci_ss_info_10ec_8139_1043_8109 =
 	{0x1043, 0x8109, pci_subsys_10ec_8139_1043_8109, 0};
 #undef pci_ss_info_1043_8109
@@ -34258,6 +36372,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x10ec, 0x8139, pci_subsys_10ec_8139_10ec_8139, 0};
 #undef pci_ss_info_10ec_8139
 #define pci_ss_info_10ec_8139 pci_ss_info_10ec_8139_10ec_8139
+static const pciSubsystemInfo pci_ss_info_10ec_8139_10f7_8338 =
+	{0x10f7, 0x8338, pci_subsys_10ec_8139_10f7_8338, 0};
+#undef pci_ss_info_10f7_8338
+#define pci_ss_info_10f7_8338 pci_ss_info_10ec_8139_10f7_8338
 static const pciSubsystemInfo pci_ss_info_10ec_8139_1113_ec01 =
 	{0x1113, 0xec01, pci_subsys_10ec_8139_1113_ec01, 0};
 #undef pci_ss_info_1113_ec01
@@ -34298,6 +36416,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1436, 0x8139, pci_subsys_10ec_8139_1436_8139, 0};
 #undef pci_ss_info_1436_8139
 #define pci_ss_info_1436_8139 pci_ss_info_10ec_8139_1436_8139
+static const pciSubsystemInfo pci_ss_info_10ec_8139_144d_c00c =
+	{0x144d, 0xc00c, pci_subsys_10ec_8139_144d_c00c, 0};
+#undef pci_ss_info_144d_c00c
+#define pci_ss_info_144d_c00c pci_ss_info_10ec_8139_144d_c00c
 static const pciSubsystemInfo pci_ss_info_10ec_8139_1458_e000 =
 	{0x1458, 0xe000, pci_subsys_10ec_8139_1458_e000, 0};
 #undef pci_ss_info_1458_e000
@@ -34330,6 +36452,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x14cb, 0x0200, pci_subsys_10ec_8139_14cb_0200, 0};
 #undef pci_ss_info_14cb_0200
 #define pci_ss_info_14cb_0200 pci_ss_info_10ec_8139_14cb_0200
+static const pciSubsystemInfo pci_ss_info_10ec_8139_1565_2300 =
+	{0x1565, 0x2300, pci_subsys_10ec_8139_1565_2300, 0};
+#undef pci_ss_info_1565_2300
+#define pci_ss_info_1565_2300 pci_ss_info_10ec_8139_1565_2300
 static const pciSubsystemInfo pci_ss_info_10ec_8139_1695_9001 =
 	{0x1695, 0x9001, pci_subsys_10ec_8139_1695_9001, 0};
 #undef pci_ss_info_1695_9001
@@ -34358,6 +36484,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xa0a0, 0x0007, pci_subsys_10ec_8139_a0a0_0007, 0};
 #undef pci_ss_info_a0a0_0007
 #define pci_ss_info_a0a0_0007 pci_ss_info_10ec_8139_a0a0_0007
+static const pciSubsystemInfo pci_ss_info_10ec_8167_1462_235c =
+	{0x1462, 0x235c, pci_subsys_10ec_8167_1462_235c, 0};
+#undef pci_ss_info_1462_235c
+#define pci_ss_info_1462_235c pci_ss_info_10ec_8167_1462_235c
 #endif
 static const pciSubsystemInfo pci_ss_info_10ec_8169_1025_0079 =
 	{0x1025, 0x0079, pci_subsys_10ec_8169_1025_0079, 0};
@@ -34376,10 +36506,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1458, 0xe000, pci_subsys_10ec_8169_1458_e000, 0};
 #undef pci_ss_info_1458_e000
 #define pci_ss_info_1458_e000 pci_ss_info_10ec_8169_1458_e000
+static const pciSubsystemInfo pci_ss_info_10ec_8169_1462_030c =
+	{0x1462, 0x030c, pci_subsys_10ec_8169_1462_030c, 0};
+#undef pci_ss_info_1462_030c
+#define pci_ss_info_1462_030c pci_ss_info_10ec_8169_1462_030c
 static const pciSubsystemInfo pci_ss_info_10ec_8169_1462_702c =
 	{0x1462, 0x702c, pci_subsys_10ec_8169_1462_702c, 0};
 #undef pci_ss_info_1462_702c
 #define pci_ss_info_1462_702c pci_ss_info_10ec_8169_1462_702c
+static const pciSubsystemInfo pci_ss_info_10ec_8169_1462_7094 =
+	{0x1462, 0x7094, pci_subsys_10ec_8169_1462_7094, 0};
+#undef pci_ss_info_1462_7094
+#define pci_ss_info_1462_7094 pci_ss_info_10ec_8169_1462_7094
+static const pciSubsystemInfo pci_ss_info_10ec_8169_1734_1091 =
+	{0x1734, 0x1091, pci_subsys_10ec_8169_1734_1091, 0};
+#undef pci_ss_info_1734_1091
+#define pci_ss_info_1734_1091 pci_ss_info_10ec_8169_1734_1091
+static const pciSubsystemInfo pci_ss_info_10ec_8169_a0a0_0449 =
+	{0xa0a0, 0x0449, pci_subsys_10ec_8169_a0a0_0449, 0};
+#undef pci_ss_info_a0a0_0449
+#define pci_ss_info_a0a0_0449 pci_ss_info_10ec_8169_a0a0_0449
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1102_0002_1102_0020 =
@@ -34470,6 +36616,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1102, 0x0058, pci_subsys_1102_0004_1102_0058, 0};
 #undef pci_ss_info_1102_0058
 #define pci_ss_info_1102_0058 pci_ss_info_1102_0004_1102_0058
+static const pciSubsystemInfo pci_ss_info_1102_0004_1102_1002 =
+	{0x1102, 0x1002, pci_subsys_1102_0004_1102_1002, 0};
+#undef pci_ss_info_1102_1002
+#define pci_ss_info_1102_1002 pci_ss_info_1102_0004_1102_1002
 static const pciSubsystemInfo pci_ss_info_1102_0004_1102_1007 =
 	{0x1102, 0x1007, pci_subsys_1102_0004_1102_1007, 0};
 #undef pci_ss_info_1102_1007
@@ -34478,6 +36628,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1102, 0x2002, pci_subsys_1102_0004_1102_2002, 0};
 #undef pci_ss_info_1102_2002
 #define pci_ss_info_1102_2002 pci_ss_info_1102_0004_1102_2002
+static const pciSubsystemInfo pci_ss_info_1102_0004_1102_4001 =
+	{0x1102, 0x4001, pci_subsys_1102_0004_1102_4001, 0};
+#undef pci_ss_info_1102_4001
+#define pci_ss_info_1102_4001 pci_ss_info_1102_0004_1102_4001
 static const pciSubsystemInfo pci_ss_info_1102_0005_1102_0021 =
 	{0x1102, 0x0021, pci_subsys_1102_0005_1102_0021, 0};
 #undef pci_ss_info_1102_0021
@@ -34598,6 +36752,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1103, 0x0001, pci_subsys_1103_0004_1103_0001, 0};
 #undef pci_ss_info_1103_0001
 #define pci_ss_info_1103_0001 pci_ss_info_1103_0004_1103_0001
+static const pciSubsystemInfo pci_ss_info_1103_0004_1103_0003 =
+	{0x1103, 0x0003, pci_subsys_1103_0004_1103_0003, 0};
+#undef pci_ss_info_1103_0003
+#define pci_ss_info_1103_0003 pci_ss_info_1103_0004_1103_0003
 static const pciSubsystemInfo pci_ss_info_1103_0004_1103_0004 =
 	{0x1103, 0x0004, pci_subsys_1103_0004_1103_0004, 0};
 #undef pci_ss_info_1103_0004
@@ -34606,6 +36764,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1103, 0x0005, pci_subsys_1103_0004_1103_0005, 0};
 #undef pci_ss_info_1103_0005
 #define pci_ss_info_1103_0005 pci_ss_info_1103_0004_1103_0005
+static const pciSubsystemInfo pci_ss_info_1103_0004_1103_0006 =
+	{0x1103, 0x0006, pci_subsys_1103_0004_1103_0006, 0};
+#undef pci_ss_info_1103_0006
+#define pci_ss_info_1103_0006 pci_ss_info_1103_0004_1103_0006
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1105_8475_1105_0001 =
@@ -34642,6 +36804,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147b, 0xa401, pci_subsys_1106_0305_147b_a401, 0};
 #undef pci_ss_info_147b_a401
 #define pci_ss_info_147b_a401 pci_ss_info_1106_0305_147b_a401
+static const pciSubsystemInfo pci_ss_info_1106_0364_1043_81ce =
+	{0x1043, 0x81ce, pci_subsys_1106_0364_1043_81ce, 0};
+#undef pci_ss_info_1043_81ce
+#define pci_ss_info_1043_81ce pci_ss_info_1106_0364_1043_81ce
 static const pciSubsystemInfo pci_ss_info_1106_0571_1019_0985 =
 	{0x1019, 0x0985, pci_subsys_1106_0571_1019_0985, 0};
 #undef pci_ss_info_1019_0985
@@ -34686,6 +36852,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7020, pci_subsys_1106_0571_1462_7020, 0};
 #undef pci_ss_info_1462_7020
 #define pci_ss_info_1462_7020 pci_ss_info_1106_0571_1462_7020
+static const pciSubsystemInfo pci_ss_info_1106_0571_1462_7094 =
+	{0x1462, 0x7094, pci_subsys_1106_0571_1462_7094, 0};
+#undef pci_ss_info_1462_7094
+#define pci_ss_info_1462_7094 pci_ss_info_1106_0571_1462_7094
+static const pciSubsystemInfo pci_ss_info_1106_0571_1462_7181 =
+	{0x1462, 0x7181, pci_subsys_1106_0571_1462_7181, 0};
+#undef pci_ss_info_1462_7181
+#define pci_ss_info_1462_7181 pci_ss_info_1106_0571_1462_7181
 static const pciSubsystemInfo pci_ss_info_1106_0571_147b_1407 =
 	{0x147b, 0x1407, pci_subsys_1106_0571_147b_1407, 0};
 #undef pci_ss_info_147b_1407
@@ -34802,6 +36976,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7020, pci_subsys_1106_3038_1462_7020, 0};
 #undef pci_ss_info_1462_7020
 #define pci_ss_info_1462_7020 pci_ss_info_1106_3038_1462_7020
+static const pciSubsystemInfo pci_ss_info_1106_3038_1462_7094 =
+	{0x1462, 0x7094, pci_subsys_1106_3038_1462_7094, 0};
+#undef pci_ss_info_1462_7094
+#define pci_ss_info_1462_7094 pci_ss_info_1106_3038_1462_7094
+static const pciSubsystemInfo pci_ss_info_1106_3038_1462_7181 =
+	{0x1462, 0x7181, pci_subsys_1106_3038_1462_7181, 0};
+#undef pci_ss_info_1462_7181
+#define pci_ss_info_1462_7181 pci_ss_info_1106_3038_1462_7181
 static const pciSubsystemInfo pci_ss_info_1106_3038_147b_1407 =
 	{0x147b, 0x1407, pci_subsys_1106_3038_147b_1407, 0};
 #undef pci_ss_info_147b_1407
@@ -34826,6 +37008,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1186, 0x1400, pci_subsys_1106_3043_1186_1400, 0};
 #undef pci_ss_info_1186_1400
 #define pci_ss_info_1186_1400 pci_ss_info_1106_3043_1186_1400
+static const pciSubsystemInfo pci_ss_info_1106_3044_0010_0001 =
+	{0x0010, 0x0001, pci_subsys_1106_3044_0010_0001, 0};
+#undef pci_ss_info_0010_0001
+#define pci_ss_info_0010_0001 pci_ss_info_1106_3044_0010_0001
 #endif
 static const pciSubsystemInfo pci_ss_info_1106_3044_1025_005a =
 	{0x1025, 0x005a, pci_subsys_1106_3044_1025_005a, 0};
@@ -34944,6 +37130,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x812a, pci_subsys_1106_3059_1043_812a, 0};
 #undef pci_ss_info_1043_812a
 #define pci_ss_info_1043_812a pci_ss_info_1106_3059_1043_812a
+static const pciSubsystemInfo pci_ss_info_1106_3059_10ec_8168 =
+	{0x10ec, 0x8168, pci_subsys_1106_3059_10ec_8168, 0};
+#undef pci_ss_info_10ec_8168
+#define pci_ss_info_10ec_8168 pci_ss_info_1106_3059_10ec_8168
 static const pciSubsystemInfo pci_ss_info_1106_3059_1106_3059 =
 	{0x1106, 0x3059, pci_subsys_1106_3059_1106_3059, 0};
 #undef pci_ss_info_1106_3059
@@ -34964,6 +37154,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1297, 0xc160, pci_subsys_1106_3059_1297_c160, 0};
 #undef pci_ss_info_1297_c160
 #define pci_ss_info_1297_c160 pci_ss_info_1106_3059_1297_c160
+static const pciSubsystemInfo pci_ss_info_1106_3059_1413_147b =
+	{0x1413, 0x147b, pci_subsys_1106_3059_1413_147b, 0};
+#undef pci_ss_info_1413_147b
+#define pci_ss_info_1413_147b pci_ss_info_1106_3059_1413_147b
 static const pciSubsystemInfo pci_ss_info_1106_3059_1458_a002 =
 	{0x1458, 0xa002, pci_subsys_1106_3059_1458_a002, 0};
 #undef pci_ss_info_1458_a002
@@ -34976,10 +37170,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x3800, pci_subsys_1106_3059_1462_3800, 0};
 #undef pci_ss_info_1462_3800
 #define pci_ss_info_1462_3800 pci_ss_info_1106_3059_1462_3800
+static const pciSubsystemInfo pci_ss_info_1106_3059_1462_7181 =
+	{0x1462, 0x7181, pci_subsys_1106_3059_1462_7181, 0};
+#undef pci_ss_info_1462_7181
+#define pci_ss_info_1462_7181 pci_ss_info_1106_3059_1462_7181
 static const pciSubsystemInfo pci_ss_info_1106_3059_147b_1407 =
 	{0x147b, 0x1407, pci_subsys_1106_3059_147b_1407, 0};
 #undef pci_ss_info_147b_1407
 #define pci_ss_info_147b_1407 pci_ss_info_1106_3059_147b_1407
+static const pciSubsystemInfo pci_ss_info_1106_3059_1849_0850 =
+	{0x1849, 0x0850, pci_subsys_1106_3059_1849_0850, 0};
+#undef pci_ss_info_1849_0850
+#define pci_ss_info_1849_0850 pci_ss_info_1106_3059_1849_0850
 static const pciSubsystemInfo pci_ss_info_1106_3059_1849_9761 =
 	{0x1849, 0x9761, pci_subsys_1106_3059_1849_9761, 0};
 #undef pci_ss_info_1849_9761
@@ -34994,6 +37196,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xa0a0, 0x01b6, pci_subsys_1106_3059_a0a0_01b6, 0};
 #undef pci_ss_info_a0a0_01b6
 #define pci_ss_info_a0a0_01b6 pci_ss_info_1106_3059_a0a0_01b6
+static const pciSubsystemInfo pci_ss_info_1106_3059_a0a0_0342 =
+	{0xa0a0, 0x0342, pci_subsys_1106_3059_a0a0_0342, 0};
+#undef pci_ss_info_a0a0_0342
+#define pci_ss_info_a0a0_0342 pci_ss_info_1106_3059_a0a0_0342
 static const pciSubsystemInfo pci_ss_info_1106_3065_1043_80a1 =
 	{0x1043, 0x80a1, pci_subsys_1106_3065_1043_80a1, 0};
 #undef pci_ss_info_1043_80a1
@@ -35014,6 +37220,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x13b9, 0x1421, pci_subsys_1106_3065_13b9_1421, 0};
 #undef pci_ss_info_13b9_1421
 #define pci_ss_info_13b9_1421 pci_ss_info_1106_3065_13b9_1421
+static const pciSubsystemInfo pci_ss_info_1106_3065_1462_7181 =
+	{0x1462, 0x7181, pci_subsys_1106_3065_1462_7181, 0};
+#undef pci_ss_info_1462_7181
+#define pci_ss_info_1462_7181 pci_ss_info_1106_3065_1462_7181
 static const pciSubsystemInfo pci_ss_info_1106_3065_147b_1c09 =
 	{0x147b, 0x1c09, pci_subsys_1106_3065_147b_1c09, 0};
 #undef pci_ss_info_147b_1c09
@@ -35078,6 +37288,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7020, pci_subsys_1106_3104_1462_7020, 0};
 #undef pci_ss_info_1462_7020
 #define pci_ss_info_1462_7020 pci_ss_info_1106_3104_1462_7020
+static const pciSubsystemInfo pci_ss_info_1106_3104_1462_7094 =
+	{0x1462, 0x7094, pci_subsys_1106_3104_1462_7094, 0};
+#undef pci_ss_info_1462_7094
+#define pci_ss_info_1462_7094 pci_ss_info_1106_3104_1462_7094
+static const pciSubsystemInfo pci_ss_info_1106_3104_1462_7181 =
+	{0x1462, 0x7181, pci_subsys_1106_3104_1462_7181, 0};
+#undef pci_ss_info_1462_7181
+#define pci_ss_info_1462_7181 pci_ss_info_1106_3104_1462_7181
 static const pciSubsystemInfo pci_ss_info_1106_3104_147b_1407 =
 	{0x147b, 0x1407, pci_subsys_1106_3104_147b_1407, 0};
 #undef pci_ss_info_147b_1407
@@ -35114,6 +37332,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7020, pci_subsys_1106_3149_1462_7020, 0};
 #undef pci_ss_info_1462_7020
 #define pci_ss_info_1462_7020 pci_ss_info_1106_3149_1462_7020
+static const pciSubsystemInfo pci_ss_info_1106_3149_1462_7094 =
+	{0x1462, 0x7094, pci_subsys_1106_3149_1462_7094, 0};
+#undef pci_ss_info_1462_7094
+#define pci_ss_info_1462_7094 pci_ss_info_1106_3149_1462_7094
 static const pciSubsystemInfo pci_ss_info_1106_3149_147b_1407 =
 	{0x147b, 0x1407, pci_subsys_1106_3149_147b_1407, 0};
 #undef pci_ss_info_147b_1407
@@ -35126,6 +37348,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1849, 0x3149, pci_subsys_1106_3149_1849_3149, 0};
 #undef pci_ss_info_1849_3149
 #define pci_ss_info_1849_3149 pci_ss_info_1106_3149_1849_3149
+static const pciSubsystemInfo pci_ss_info_1106_3149_a0a0_04ad =
+	{0xa0a0, 0x04ad, pci_subsys_1106_3149_a0a0_04ad, 0};
+#undef pci_ss_info_a0a0_04ad
+#define pci_ss_info_a0a0_04ad pci_ss_info_1106_3149_a0a0_04ad
 static const pciSubsystemInfo pci_ss_info_1106_3164_1043_80f4 =
 	{0x1043, 0x80f4, pci_subsys_1106_3164_1043_80f4, 0};
 #undef pci_ss_info_1043_80f4
@@ -35284,6 +37510,14 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_1127_0400 pci_ss_info_1127_0400_1127_0400
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_1131_1561_1775_c200 =
+	{0x1775, 0xc200, pci_subsys_1131_1561_1775_c200, 0};
+#undef pci_ss_info_1775_c200
+#define pci_ss_info_1775_c200 pci_ss_info_1131_1561_1775_c200
+static const pciSubsystemInfo pci_ss_info_1131_1562_1775_c200 =
+	{0x1775, 0xc200, pci_subsys_1131_1562_1775_c200, 0};
+#undef pci_ss_info_1775_c200
+#define pci_ss_info_1775_c200 pci_ss_info_1131_1562_1775_c200
 static const pciSubsystemInfo pci_ss_info_1131_5402_1244_0f00 =
 	{0x1244, 0x0f00, pci_subsys_1131_5402_1244_0f00, 0};
 #undef pci_ss_info_1244_0f00
@@ -35362,6 +37596,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x4862, pci_subsys_1131_7133_1043_4862, 0};
 #undef pci_ss_info_1043_4862
 #define pci_ss_info_1043_4862 pci_ss_info_1131_7133_1043_4862
+static const pciSubsystemInfo pci_ss_info_1131_7133_1131_0000 =
+	{0x1131, 0x0000, pci_subsys_1131_7133_1131_0000, 0};
+#undef pci_ss_info_1131_0000
+#define pci_ss_info_1131_0000 pci_ss_info_1131_7133_1131_0000
 static const pciSubsystemInfo pci_ss_info_1131_7133_1131_2001 =
 	{0x1131, 0x2001, pci_subsys_1131_7133_1131_2001, 0};
 #undef pci_ss_info_1131_2001
@@ -35406,6 +37644,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1461, 0x1044, pci_subsys_1131_7133_1461_1044, 0};
 #undef pci_ss_info_1461_1044
 #define pci_ss_info_1461_1044 pci_ss_info_1131_7133_1461_1044
+static const pciSubsystemInfo pci_ss_info_1131_7133_1461_a14b =
+	{0x1461, 0xa14b, pci_subsys_1131_7133_1461_a14b, 0};
+#undef pci_ss_info_1461_a14b
+#define pci_ss_info_1461_a14b pci_ss_info_1131_7133_1461_a14b
 static const pciSubsystemInfo pci_ss_info_1131_7133_1461_f31f =
 	{0x1461, 0xf31f, pci_subsys_1131_7133_1461_f31f, 0};
 #undef pci_ss_info_1461_f31f
@@ -35430,10 +37672,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x153b, 0x1162, pci_subsys_1131_7133_153b_1162, 0};
 #undef pci_ss_info_153b_1162
 #define pci_ss_info_153b_1162 pci_ss_info_1131_7133_153b_1162
+static const pciSubsystemInfo pci_ss_info_1131_7133_17de_7350 =
+	{0x17de, 0x7350, pci_subsys_1131_7133_17de_7350, 0};
+#undef pci_ss_info_17de_7350
+#define pci_ss_info_17de_7350 pci_ss_info_1131_7133_17de_7350
 static const pciSubsystemInfo pci_ss_info_1131_7133_185b_c100 =
 	{0x185b, 0xc100, pci_subsys_1131_7133_185b_c100, 0};
 #undef pci_ss_info_185b_c100
 #define pci_ss_info_185b_c100 pci_ss_info_1131_7133_185b_c100
+static const pciSubsystemInfo pci_ss_info_1131_7133_185b_c900 =
+	{0x185b, 0xc900, pci_subsys_1131_7133_185b_c900, 0};
+#undef pci_ss_info_185b_c900
+#define pci_ss_info_185b_c900 pci_ss_info_1131_7133_185b_c900
 static const pciSubsystemInfo pci_ss_info_1131_7133_5168_0306 =
 	{0x5168, 0x0306, pci_subsys_1131_7133_5168_0306, 0};
 #undef pci_ss_info_5168_0306
@@ -35662,6 +37912,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x13c2, 0x1011, pci_subsys_1131_7146_13c2_1011, 0};
 #undef pci_ss_info_13c2_1011
 #define pci_ss_info_13c2_1011 pci_ss_info_1131_7146_13c2_1011
+static const pciSubsystemInfo pci_ss_info_1131_7146_13c2_1012 =
+	{0x13c2, 0x1012, pci_subsys_1131_7146_13c2_1012, 0};
+#undef pci_ss_info_13c2_1012
+#define pci_ss_info_13c2_1012 pci_ss_info_1131_7146_13c2_1012
 static const pciSubsystemInfo pci_ss_info_1131_7146_13c2_1013 =
 	{0x13c2, 0x1013, pci_subsys_1131_7146_13c2_1013, 0};
 #undef pci_ss_info_13c2_1013
@@ -35670,6 +37924,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x13c2, 0x1016, pci_subsys_1131_7146_13c2_1016, 0};
 #undef pci_ss_info_13c2_1016
 #define pci_ss_info_13c2_1016 pci_ss_info_1131_7146_13c2_1016
+static const pciSubsystemInfo pci_ss_info_1131_7146_13c2_1018 =
+	{0x13c2, 0x1018, pci_subsys_1131_7146_13c2_1018, 0};
+#undef pci_ss_info_13c2_1018
+#define pci_ss_info_13c2_1018 pci_ss_info_1131_7146_13c2_1018
+static const pciSubsystemInfo pci_ss_info_1131_7146_13c2_1019 =
+	{0x13c2, 0x1019, pci_subsys_1131_7146_13c2_1019, 0};
+#undef pci_ss_info_13c2_1019
+#define pci_ss_info_13c2_1019 pci_ss_info_1131_7146_13c2_1019
 static const pciSubsystemInfo pci_ss_info_1131_7146_13c2_1102 =
 	{0x13c2, 0x1102, pci_subsys_1131_7146_13c2_1102, 0};
 #undef pci_ss_info_13c2_1102
@@ -35678,6 +37940,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x153b, 0x1156, pci_subsys_1131_7146_153b_1156, 0};
 #undef pci_ss_info_153b_1156
 #define pci_ss_info_153b_1156 pci_ss_info_1131_7146_153b_1156
+static const pciSubsystemInfo pci_ss_info_1131_7146_1894_0020 =
+	{0x1894, 0x0020, pci_subsys_1131_7146_1894_0020, 0};
+#undef pci_ss_info_1894_0020
+#define pci_ss_info_1894_0020 pci_ss_info_1131_7146_1894_0020
 static const pciSubsystemInfo pci_ss_info_1131_9730_1131_0000 =
 	{0x1131, 0x0000, pci_subsys_1131_9730_1131_0000, 0};
 #undef pci_ss_info_1131_0000
@@ -36188,6 +38454,12 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x1012, pci_subsys_1166_0203_1734_1012, 0};
 #undef pci_ss_info_1734_1012
 #define pci_ss_info_1734_1012 pci_ss_info_1166_0203_1734_1012
+#endif
+static const pciSubsystemInfo pci_ss_info_1166_0212_1028_810b =
+	{0x1028, 0x810b, pci_subsys_1166_0212_1028_810b, 0};
+#undef pci_ss_info_1028_810b
+#define pci_ss_info_1028_810b pci_ss_info_1166_0212_1028_810b
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_1166_0212_4c53_1080 =
 	{0x4c53, 0x1080, pci_subsys_1166_0212_4c53_1080, 0};
 #undef pci_ss_info_4c53_1080
@@ -36265,6 +38537,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1014_0185
 #define pci_ss_info_1014_0185 pci_ss_info_1180_0476_1014_0185
 #endif
+static const pciSubsystemInfo pci_ss_info_1180_0476_1028_014f =
+	{0x1028, 0x014f, pci_subsys_1180_0476_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_1180_0476_1028_014f
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_1180_0476_1028_0188 =
 	{0x1028, 0x0188, pci_subsys_1180_0476_1028_0188, 0};
 #undef pci_ss_info_1028_0188
@@ -36290,6 +38568,16 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_104d_80e7
 #define pci_ss_info_104d_80e7 pci_ss_info_1180_0476_104d_80e7
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_1180_0476_104d_814e =
+	{0x104d, 0x814e, pci_subsys_1180_0476_104d_814e, 0};
+#undef pci_ss_info_104d_814e
+#define pci_ss_info_104d_814e pci_ss_info_1180_0476_104d_814e
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_1180_0476_10f7_8338 =
+	{0x10f7, 0x8338, pci_subsys_1180_0476_10f7_8338, 0};
+#undef pci_ss_info_10f7_8338
+#define pci_ss_info_10f7_8338 pci_ss_info_1180_0476_10f7_8338
 static const pciSubsystemInfo pci_ss_info_1180_0476_144d_c00c =
 	{0x144d, 0xc00c, pci_subsys_1180_0476_144d_c00c, 0};
 #undef pci_ss_info_144d_c00c
@@ -36323,6 +38611,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1014_0511
 #define pci_ss_info_1014_0511 pci_ss_info_1180_0552_1014_0511
 #endif
+static const pciSubsystemInfo pci_ss_info_1180_0552_1028_014f =
+	{0x1028, 0x014f, pci_subsys_1180_0552_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_1180_0552_1028_014f
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_1180_0552_1028_0188 =
 	{0x1028, 0x0188, pci_subsys_1180_0552_1028_0188, 0};
 #undef pci_ss_info_1028_0188
@@ -36368,6 +38662,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x1967, pci_subsys_1180_0822_1043_1967, 0};
 #undef pci_ss_info_1043_1967
 #define pci_ss_info_1043_1967 pci_ss_info_1180_0822_1043_1967
+static const pciSubsystemInfo pci_ss_info_1180_0822_10f7_8338 =
+	{0x10f7, 0x8338, pci_subsys_1180_0822_10f7_8338, 0};
+#undef pci_ss_info_10f7_8338
+#define pci_ss_info_10f7_8338 pci_ss_info_1180_0822_10f7_8338
 static const pciSubsystemInfo pci_ss_info_1180_0822_144d_c018 =
 	{0x144d, 0xc018, pci_subsys_1180_0822_144d_c018, 0};
 #undef pci_ss_info_144d_c018
@@ -36484,6 +38782,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x270f, 0x2803, pci_subsys_11ab_4320_270f_2803, 0};
 #undef pci_ss_info_270f_2803
 #define pci_ss_info_270f_2803 pci_ss_info_11ab_4320_270f_2803
+static const pciSubsystemInfo pci_ss_info_11ab_4347_4c53_10d0 =
+	{0x4c53, 0x10d0, pci_subsys_11ab_4347_4c53_10d0, 0};
+#undef pci_ss_info_4c53_10d0
+#define pci_ss_info_4c53_10d0 pci_ss_info_11ab_4347_4c53_10d0
 static const pciSubsystemInfo pci_ss_info_11ab_4350_1179_0001 =
 	{0x1179, 0x0001, pci_subsys_11ab_4350_1179_0001, 0};
 #undef pci_ss_info_1179_0001
@@ -36830,6 +39132,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0xa0a0, 0x0506, pci_subsys_11ab_4362_a0a0_0506, 0};
 #undef pci_ss_info_a0a0_0506
 #define pci_ss_info_a0a0_0506 pci_ss_info_11ab_4362_a0a0_0506
+static const pciSubsystemInfo pci_ss_info_11ab_6480_1775_c200 =
+	{0x1775, 0xc200, pci_subsys_11ab_6480_1775_c200, 0};
+#undef pci_ss_info_1775_c200
+#define pci_ss_info_1775_c200 pci_ss_info_11ab_6480_1775_c200
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_11ad_0002_11ad_0002 =
@@ -36858,6 +39164,20 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_11ad_c001 pci_ss_info_11ad_c115_11ad_c001
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_11bd_0040_11bd_0044 =
+	{0x11bd, 0x0044, pci_subsys_11bd_0040_11bd_0044, 0};
+#undef pci_ss_info_11bd_0044
+#define pci_ss_info_11bd_0044 pci_ss_info_11bd_0040_11bd_0044
+static const pciSubsystemInfo pci_ss_info_11bd_0041_11bd_0044 =
+	{0x11bd, 0x0044, pci_subsys_11bd_0041_11bd_0044, 0};
+#undef pci_ss_info_11bd_0044
+#define pci_ss_info_11bd_0044 pci_ss_info_11bd_0041_11bd_0044
+static const pciSubsystemInfo pci_ss_info_11bd_0042_11bd_0044 =
+	{0x11bd, 0x0044, pci_subsys_11bd_0042_11bd_0044, 0};
+#undef pci_ss_info_11bd_0044
+#define pci_ss_info_11bd_0044 pci_ss_info_11bd_0042_11bd_0044
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 static const pciSubsystemInfo pci_ss_info_11c1_0440_1033_8015 =
 	{0x1033, 0x8015, pci_subsys_11c1_0440_1033_8015, 0};
@@ -37212,6 +39532,12 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_11cb_b008 pci_ss_info_11cb_2000_11cb_b008
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_11d4_1986_11d4_1986 =
+	{0x11d4, 0x1986, pci_subsys_11d4_1986_11d4_1986, 0};
+#undef pci_ss_info_11d4_1986
+#define pci_ss_info_11d4_1986 pci_ss_info_11d4_1986_11d4_1986
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 static const pciSubsystemInfo pci_ss_info_11de_6057_1031_7efe =
 	{0x1031, 0x7efe, pci_subsys_11de_6057_1031_7efe, 0};
@@ -37316,6 +39642,10 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_103c_0890
 #define pci_ss_info_103c_0890 pci_ss_info_1217_7223_103c_0890
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_1217_7223_10cf_11c4 =
+	{0x10cf, 0x11c4, pci_subsys_1217_7223_10cf_11c4, 0};
+#undef pci_ss_info_10cf_11c4
+#define pci_ss_info_10cf_11c4 pci_ss_info_1217_7223_10cf_11c4
 #endif
 static const pciSubsystemInfo pci_ss_info_121a_0003_1092_0003 =
 	{0x1092, 0x0003, pci_subsys_121a_0003_1092_0003, 0};
@@ -37646,6 +39976,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x147a, 0xc001, pci_subsys_125d_2898_147a_c001, 0};
 #undef pci_ss_info_147a_c001
 #define pci_ss_info_147a_c001 pci_ss_info_125d_2898_147a_c001
+static const pciSubsystemInfo pci_ss_info_125d_2898_148d_1030 =
+	{0x148d, 0x1030, pci_subsys_125d_2898_148d_1030, 0};
+#undef pci_ss_info_148d_1030
+#define pci_ss_info_148d_1030 pci_ss_info_125d_2898_148d_1030
 static const pciSubsystemInfo pci_ss_info_125d_2898_14fe_0428 =
 	{0x14fe, 0x0428, pci_subsys_125d_2898_14fe_0428, 0};
 #undef pci_ss_info_14fe_0428
@@ -37685,6 +40019,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1737_3874
 #define pci_ss_info_1737_3874 pci_ss_info_1260_3873_1737_3874
 #endif
+static const pciSubsystemInfo pci_ss_info_1260_3873_8086_2510 =
+	{0x8086, 0x2510, pci_subsys_1260_3873_8086_2510, 0};
+#undef pci_ss_info_8086_2510
+#define pci_ss_info_8086_2510 pci_ss_info_1260_3873_8086_2510
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_1260_3873_8086_2513 =
 	{0x8086, 0x2513, pci_subsys_1260_3873_8086_2513, 0};
 #undef pci_ss_info_8086_2513
@@ -37710,6 +40050,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1113, 0x4203, pci_subsys_1260_3890_1113_4203, 0};
 #undef pci_ss_info_1113_4203
 #define pci_ss_info_1113_4203 pci_ss_info_1260_3890_1113_4203
+static const pciSubsystemInfo pci_ss_info_1260_3890_1113_8201 =
+	{0x1113, 0x8201, pci_subsys_1260_3890_1113_8201, 0};
+#undef pci_ss_info_1113_8201
+#define pci_ss_info_1113_8201 pci_ss_info_1260_3890_1113_8201
 static const pciSubsystemInfo pci_ss_info_1260_3890_1113_ee03 =
 	{0x1113, 0xee03, pci_subsys_1260_3890_1113_ee03, 0};
 #undef pci_ss_info_1113_ee03
@@ -38830,6 +41174,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1397, 0xb540, pci_subsys_1397_08b4_1397_b540, 0};
 #undef pci_ss_info_1397_b540
 #define pci_ss_info_1397_b540 pci_ss_info_1397_08b4_1397_b540
+static const pciSubsystemInfo pci_ss_info_1397_08b4_1397_b556 =
+	{0x1397, 0xb556, pci_subsys_1397_08b4_1397_b556, 0};
+#undef pci_ss_info_1397_b556
+#define pci_ss_info_1397_b556 pci_ss_info_1397_08b4_1397_b556
 static const pciSubsystemInfo pci_ss_info_1397_2bd0_0675_1704 =
 	{0x0675, 0x1704, pci_subsys_1397_2bd0_0675_1704, 0};
 #undef pci_ss_info_0675_1704
@@ -39092,6 +41440,12 @@ static const pciSubsystemInfo pci_ss_inf
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_14e4_1600_103c_3015 =
+	{0x103c, 0x3015, pci_subsys_14e4_1600_103c_3015, 0};
+#undef pci_ss_info_103c_3015
+#define pci_ss_info_103c_3015 pci_ss_info_14e4_1600_103c_3015
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_14e4_1600_107b_5048 =
 	{0x107b, 0x5048, pci_subsys_14e4_1600_107b_5048, 0};
 #undef pci_ss_info_107b_5048
@@ -39467,6 +41821,18 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_1734_1061
 #define pci_ss_info_1734_1061 pci_ss_info_14e4_1659_1734_1061
 #endif
+static const pciSubsystemInfo pci_ss_info_14e4_165a_103c_7051 =
+	{0x103c, 0x7051, pci_subsys_14e4_165a_103c_7051, 0};
+#undef pci_ss_info_103c_7051
+#define pci_ss_info_103c_7051 pci_ss_info_14e4_165a_103c_7051
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_14e4_165a_103c_7052 =
+	{0x103c, 0x7052, pci_subsys_14e4_165a_103c_7052, 0};
+#undef pci_ss_info_103c_7052
+#define pci_ss_info_103c_7052 pci_ss_info_14e4_165a_103c_7052
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_14e4_165d_1028_865d =
 	{0x1028, 0x865d, pci_subsys_14e4_165d_1028_865d, 0};
 #undef pci_ss_info_1028_865d
@@ -39490,6 +41856,10 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_103c_099c
 #define pci_ss_info_103c_099c pci_ss_info_14e4_165e_103c_099c
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_14e4_165e_10cf_1279 =
+	{0x10cf, 0x1279, pci_subsys_14e4_165e_10cf_1279, 0};
+#undef pci_ss_info_10cf_1279
+#define pci_ss_info_10cf_1279 pci_ss_info_14e4_165e_10cf_1279
 #endif
 static const pciSubsystemInfo pci_ss_info_14e4_1668_103c_7039 =
 	{0x103c, 0x7039, pci_subsys_14e4_1668_103c_7039, 0};
@@ -39569,6 +41939,12 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_103c_308b pci_ss_info_14e4_169c_103c_308b
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
+static const pciSubsystemInfo pci_ss_info_14e4_169c_103c_30a1 =
+	{0x103c, 0x30a1, pci_subsys_14e4_169c_103c_30a1, 0};
+#undef pci_ss_info_103c_30a1
+#define pci_ss_info_103c_30a1 pci_ss_info_14e4_169c_103c_30a1
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_14e4_16a6_0e11_00bb =
 	{0x0e11, 0x00bb, pci_subsys_14e4_16a6_0e11_00bb, 0};
 #undef pci_ss_info_0e11_00bb
@@ -39641,6 +42017,12 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_103c_1706 pci_ss_info_14e4_16ac_103c_1706
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
+static const pciSubsystemInfo pci_ss_info_14e4_16ac_103c_7038 =
+	{0x103c, 0x7038, pci_subsys_14e4_16ac_103c_7038, 0};
+#undef pci_ss_info_103c_7038
+#define pci_ss_info_103c_7038 pci_ss_info_14e4_16ac_103c_7038
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_14e4_16ac_103c_703b =
 	{0x103c, 0x703b, pci_subsys_14e4_16ac_103c_703b, 0};
 #undef pci_ss_info_103c_703b
@@ -39709,6 +42091,12 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_1028_0196 pci_ss_info_14e4_170c_1028_0196
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
+static const pciSubsystemInfo pci_ss_info_14e4_170c_1028_01af =
+	{0x1028, 0x01af, pci_subsys_14e4_170c_1028_01af, 0};
+#undef pci_ss_info_1028_01af
+#define pci_ss_info_1028_01af pci_ss_info_14e4_170c_1028_01af
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
 static const pciSubsystemInfo pci_ss_info_14e4_170c_103c_099c =
 	{0x103c, 0x099c, pci_subsys_14e4_170c_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -39758,6 +42146,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x16ec, 0x0119, pci_subsys_14e4_4318_16ec_0119, 0};
 #undef pci_ss_info_16ec_0119
 #define pci_ss_info_16ec_0119 pci_ss_info_14e4_4318_16ec_0119
+static const pciSubsystemInfo pci_ss_info_14e4_4318_1737_0042 =
+	{0x1737, 0x0042, pci_subsys_14e4_4318_1737_0042, 0};
+#undef pci_ss_info_1737_0042
+#define pci_ss_info_1737_0042 pci_ss_info_14e4_4318_1737_0042
 static const pciSubsystemInfo pci_ss_info_14e4_4318_1737_0048 =
 	{0x1737, 0x0048, pci_subsys_14e4_4318_1737_0048, 0};
 #undef pci_ss_info_1737_0048
@@ -39808,6 +42200,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x144f, 0x7050, pci_subsys_14e4_4320_144f_7050, 0};
 #undef pci_ss_info_144f_7050
 #define pci_ss_info_144f_7050 pci_ss_info_14e4_4320_144f_7050
+static const pciSubsystemInfo pci_ss_info_14e4_4320_144f_7051 =
+	{0x144f, 0x7051, pci_subsys_14e4_4320_144f_7051, 0};
+#undef pci_ss_info_144f_7051
+#define pci_ss_info_144f_7051 pci_ss_info_14e4_4320_144f_7051
 static const pciSubsystemInfo pci_ss_info_14e4_4320_14e4_4320 =
 	{0x14e4, 0x4320, pci_subsys_14e4_4320_14e4_4320, 0};
 #undef pci_ss_info_14e4_4320
@@ -40090,6 +42486,12 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_104d_8097
 #define pci_ss_info_104d_8097 pci_ss_info_14f1_2443_104d_8097
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_14f1_2bfa_1025_0009 =
+	{0x1025, 0x0009, pci_subsys_14f1_2bfa_1025_0009, 0};
+#undef pci_ss_info_1025_0009
+#define pci_ss_info_1025_0009 pci_ss_info_14f1_2bfa_1025_0009
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_14f1_2f00_13e0_8d84 =
 	{0x13e0, 0x8d84, pci_subsys_14f1_2f00_13e0_8d84, 0};
 #undef pci_ss_info_13e0_8d84
@@ -40286,6 +42688,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x107d, 0x663c, pci_subsys_14f1_8802_107d_663c, 0};
 #undef pci_ss_info_107d_663c
 #define pci_ss_info_107d_663c pci_ss_info_14f1_8802_107d_663c
+static const pciSubsystemInfo pci_ss_info_14f1_8802_107d_665f =
+	{0x107d, 0x665f, pci_subsys_14f1_8802_107d_665f, 0};
+#undef pci_ss_info_107d_665f
+#define pci_ss_info_107d_665f pci_ss_info_14f1_8802_107d_665f
 static const pciSubsystemInfo pci_ss_info_14f1_8802_14f1_0187 =
 	{0x14f1, 0x0187, pci_subsys_14f1_8802_14f1_0187, 0};
 #undef pci_ss_info_14f1_0187
@@ -40430,6 +42836,38 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1522, 0x2700, pci_subsys_1522_0100_1522_2700, 0};
 #undef pci_ss_info_1522_2700
 #define pci_ss_info_1522_2700 pci_ss_info_1522_0100_1522_2700
+static const pciSubsystemInfo pci_ss_info_1522_0100_1522_3000 =
+	{0x1522, 0x3000, pci_subsys_1522_0100_1522_3000, 0};
+#undef pci_ss_info_1522_3000
+#define pci_ss_info_1522_3000 pci_ss_info_1522_0100_1522_3000
+static const pciSubsystemInfo pci_ss_info_1522_0100_1522_3100 =
+	{0x1522, 0x3100, pci_subsys_1522_0100_1522_3100, 0};
+#undef pci_ss_info_1522_3100
+#define pci_ss_info_1522_3100 pci_ss_info_1522_0100_1522_3100
+static const pciSubsystemInfo pci_ss_info_1522_0100_1522_3200 =
+	{0x1522, 0x3200, pci_subsys_1522_0100_1522_3200, 0};
+#undef pci_ss_info_1522_3200
+#define pci_ss_info_1522_3200 pci_ss_info_1522_0100_1522_3200
+static const pciSubsystemInfo pci_ss_info_1522_0100_1522_3300 =
+	{0x1522, 0x3300, pci_subsys_1522_0100_1522_3300, 0};
+#undef pci_ss_info_1522_3300
+#define pci_ss_info_1522_3300 pci_ss_info_1522_0100_1522_3300
+static const pciSubsystemInfo pci_ss_info_1522_0100_1522_3400 =
+	{0x1522, 0x3400, pci_subsys_1522_0100_1522_3400, 0};
+#undef pci_ss_info_1522_3400
+#define pci_ss_info_1522_3400 pci_ss_info_1522_0100_1522_3400
+static const pciSubsystemInfo pci_ss_info_1522_0100_1522_3500 =
+	{0x1522, 0x3500, pci_subsys_1522_0100_1522_3500, 0};
+#undef pci_ss_info_1522_3500
+#define pci_ss_info_1522_3500 pci_ss_info_1522_0100_1522_3500
+static const pciSubsystemInfo pci_ss_info_1522_0100_1522_3c00 =
+	{0x1522, 0x3c00, pci_subsys_1522_0100_1522_3c00, 0};
+#undef pci_ss_info_1522_3c00
+#define pci_ss_info_1522_3c00 pci_ss_info_1522_0100_1522_3c00
+static const pciSubsystemInfo pci_ss_info_1522_0100_1522_3d00 =
+	{0x1522, 0x3d00, pci_subsys_1522_0100_1522_3d00, 0};
+#undef pci_ss_info_1522_3d00
+#define pci_ss_info_1522_3d00 pci_ss_info_1522_0100_1522_3d00
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 #endif
@@ -40564,10 +43002,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x16ab, 0x7302, pci_subsys_168c_0013_16ab_7302, 0};
 #undef pci_ss_info_16ab_7302
 #define pci_ss_info_16ab_7302 pci_ss_info_168c_0013_16ab_7302
+static const pciSubsystemInfo pci_ss_info_168c_0013_17cf_0042 =
+	{0x17cf, 0x0042, pci_subsys_168c_0013_17cf_0042, 0};
+#undef pci_ss_info_17cf_0042
+#define pci_ss_info_17cf_0042 pci_ss_info_168c_0013_17cf_0042
+static const pciSubsystemInfo pci_ss_info_168c_0013_185f_1012 =
+	{0x185f, 0x1012, pci_subsys_168c_0013_185f_1012, 0};
+#undef pci_ss_info_185f_1012
+#define pci_ss_info_185f_1012 pci_ss_info_168c_0013_185f_1012
 static const pciSubsystemInfo pci_ss_info_168c_0013_185f_2012 =
 	{0x185f, 0x2012, pci_subsys_168c_0013_185f_2012, 0};
 #undef pci_ss_info_185f_2012
 #define pci_ss_info_185f_2012 pci_ss_info_168c_0013_185f_2012
+static const pciSubsystemInfo pci_ss_info_168c_001a_1052_168c =
+	{0x1052, 0x168c, pci_subsys_168c_001a_1052_168c, 0};
+#undef pci_ss_info_1052_168c
+#define pci_ss_info_1052_168c pci_ss_info_168c_001a_1052_168c
 static const pciSubsystemInfo pci_ss_info_168c_001a_1113_ee20 =
 	{0x1113, 0xee20, pci_subsys_168c_001a_1113_ee20, 0};
 #undef pci_ss_info_1113_ee20
@@ -40592,6 +43042,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1186, 0x3a24, pci_subsys_168c_001a_1186_3a24, 0};
 #undef pci_ss_info_1186_3a24
 #define pci_ss_info_1186_3a24 pci_ss_info_168c_001a_1186_3a24
+static const pciSubsystemInfo pci_ss_info_168c_001a_1186_3b08 =
+	{0x1186, 0x3b08, pci_subsys_168c_001a_1186_3b08, 0};
+#undef pci_ss_info_1186_3b08
+#define pci_ss_info_1186_3b08 pci_ss_info_168c_001a_1186_3b08
 static const pciSubsystemInfo pci_ss_info_168c_001a_168c_001a =
 	{0x168c, 0x001a, pci_subsys_168c_001a_168c_001a, 0};
 #undef pci_ss_info_168c_001a
@@ -40600,6 +43054,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x168c, 0x1052, pci_subsys_168c_001a_168c_1052, 0};
 #undef pci_ss_info_168c_1052
 #define pci_ss_info_168c_1052 pci_ss_info_168c_001a_168c_1052
+static const pciSubsystemInfo pci_ss_info_168c_001a_168c_2052 =
+	{0x168c, 0x2052, pci_subsys_168c_001a_168c_2052, 0};
+#undef pci_ss_info_168c_2052
+#define pci_ss_info_168c_2052 pci_ss_info_168c_001a_168c_2052
 static const pciSubsystemInfo pci_ss_info_168c_001b_1186_3a19 =
 	{0x1186, 0x3a19, pci_subsys_168c_001b_1186_3a19, 0};
 #undef pci_ss_info_1186_3a19
@@ -40608,6 +43066,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1186, 0x3a22, pci_subsys_168c_001b_1186_3a22, 0};
 #undef pci_ss_info_1186_3a22
 #define pci_ss_info_1186_3a22 pci_ss_info_168c_001b_1186_3a22
+static const pciSubsystemInfo pci_ss_info_168c_001b_1458_e901 =
+	{0x1458, 0xe901, pci_subsys_168c_001b_1458_e901, 0};
+#undef pci_ss_info_1458_e901
+#define pci_ss_info_1458_e901 pci_ss_info_168c_001b_1458_e901
+static const pciSubsystemInfo pci_ss_info_168c_001b_168c_001b =
+	{0x168c, 0x001b, pci_subsys_168c_001b_168c_001b, 0};
+#undef pci_ss_info_168c_001b
+#define pci_ss_info_168c_001b pci_ss_info_168c_001b_168c_001b
 static const pciSubsystemInfo pci_ss_info_168c_001b_168c_2062 =
 	{0x168c, 0x2062, pci_subsys_168c_001b_168c_2062, 0};
 #undef pci_ss_info_168c_2062
@@ -40616,6 +43082,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x168c, 0x2063, pci_subsys_168c_001b_168c_2063, 0};
 #undef pci_ss_info_168c_2063
 #define pci_ss_info_168c_2063 pci_ss_info_168c_001b_168c_2063
+static const pciSubsystemInfo pci_ss_info_168c_001b_185f_1600 =
+	{0x185f, 0x1600, pci_subsys_168c_001b_185f_1600, 0};
+#undef pci_ss_info_185f_1600
+#define pci_ss_info_185f_1600 pci_ss_info_168c_001b_185f_1600
+static const pciSubsystemInfo pci_ss_info_168c_001b_a727_6804 =
+	{0xa727, 0x6804, pci_subsys_168c_001b_a727_6804, 0};
+#undef pci_ss_info_a727_6804
+#define pci_ss_info_a727_6804 pci_ss_info_168c_001b_a727_6804
 static const pciSubsystemInfo pci_ss_info_168c_1014_1014_058a =
 	{0x1014, 0x058a, pci_subsys_168c_1014_1014_058a, 0};
 #undef pci_ss_info_1014_058a
@@ -40710,6 +43184,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1458, 0xe931, pci_subsys_1814_0201_1458_e931, 0};
 #undef pci_ss_info_1458_e931
 #define pci_ss_info_1458_e931 pci_ss_info_1814_0201_1458_e931
+static const pciSubsystemInfo pci_ss_info_1814_0201_1462_6833 =
+	{0x1462, 0x6833, pci_subsys_1814_0201_1462_6833, 0};
+#undef pci_ss_info_1462_6833
+#define pci_ss_info_1462_6833 pci_ss_info_1814_0201_1462_6833
 static const pciSubsystemInfo pci_ss_info_1814_0201_1462_6835 =
 	{0x1462, 0x6835, pci_subsys_1814_0201_1462_6835, 0};
 #undef pci_ss_info_1462_6835
@@ -40738,6 +43216,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1186, 0x3c09, pci_subsys_1814_0301_1186_3c09, 0};
 #undef pci_ss_info_1186_3c09
 #define pci_ss_info_1186_3c09 pci_ss_info_1814_0301_1186_3c09
+static const pciSubsystemInfo pci_ss_info_1814_0301_13d1_abe3 =
+	{0x13d1, 0xabe3, pci_subsys_1814_0301_13d1_abe3, 0};
+#undef pci_ss_info_13d1_abe3
+#define pci_ss_info_13d1_abe3 pci_ss_info_1814_0301_13d1_abe3
+static const pciSubsystemInfo pci_ss_info_1814_0301_1458_e934 =
+	{0x1458, 0xe934, pci_subsys_1814_0301_1458_e934, 0};
+#undef pci_ss_info_1458_e934
+#define pci_ss_info_1458_e934 pci_ss_info_1814_0301_1458_e934
 static const pciSubsystemInfo pci_ss_info_1814_0301_1737_0055 =
 	{0x1737, 0x0055, pci_subsys_1814_0301_1737_0055, 0};
 #undef pci_ss_info_1737_0055
@@ -40750,6 +43236,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1186, 0x3c09, pci_subsys_1814_0302_1186_3c09, 0};
 #undef pci_ss_info_1186_3c09
 #define pci_ss_info_1186_3c09 pci_ss_info_1814_0302_1186_3c09
+static const pciSubsystemInfo pci_ss_info_1814_0302_1462_b834 =
+	{0x1462, 0xb834, pci_subsys_1814_0302_1462_b834, 0};
+#undef pci_ss_info_1462_b834
+#define pci_ss_info_1462_b834 pci_ss_info_1814_0302_1462_b834
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_18ec_c006_18ec_d001 =
@@ -40786,6 +43276,22 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_info_18ec_d004 pci_ss_info_18ec_c058_18ec_d004
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_1971_1011_1043_0001 =
+	{0x1043, 0x0001, pci_subsys_1971_1011_1043_0001, 0};
+#undef pci_ss_info_1043_0001
+#define pci_ss_info_1043_0001 pci_ss_info_1971_1011_1043_0001
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_197b_2361_1462_7235 =
+	{0x1462, 0x7235, pci_subsys_197b_2361_1462_7235, 0};
+#undef pci_ss_info_1462_7235
+#define pci_ss_info_1462_7235 pci_ss_info_197b_2361_1462_7235
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_3388_0021_1775_c200 =
+	{0x1775, 0xc200, pci_subsys_3388_0021_1775_c200, 0};
+#undef pci_ss_info_1775_c200
+#define pci_ss_info_1775_c200 pci_ss_info_3388_0021_1775_c200
 static const pciSubsystemInfo pci_ss_info_3388_0021_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_3388_0021_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -41053,6 +43559,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x00db, pci_subsys_5333_8904_1014_00db, 0};
 #undef pci_ss_info_1014_00db
 #define pci_ss_info_1014_00db pci_ss_info_5333_8904_1014_00db
+static const pciSubsystemInfo pci_ss_info_5333_8904_4843_314a =
+	{0x4843, 0x314a, pci_subsys_5333_8904_4843_314a, 0};
+#undef pci_ss_info_4843_314a
+#define pci_ss_info_4843_314a pci_ss_info_5333_8904_4843_314a
 static const pciSubsystemInfo pci_ss_info_5333_8904_5333_8904 =
 	{0x5333, 0x8904, pci_subsys_5333_8904_5333_8904, 0};
 #undef pci_ss_info_5333_8904
@@ -41225,6 +43735,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x01fc, pci_subsys_5333_8c2e_1014_01fc, 0};
 #undef pci_ss_info_1014_01fc
 #define pci_ss_info_1014_01fc pci_ss_info_5333_8c2e_1014_01fc
+static const pciSubsystemInfo pci_ss_info_5333_8e48_5333_0130 =
+	{0x5333, 0x0130, pci_subsys_5333_8e48_5333_0130, 0};
+#undef pci_ss_info_5333_0130
+#define pci_ss_info_5333_0130 pci_ss_info_5333_8e48_5333_0130
 static const pciSubsystemInfo pci_ss_info_5333_9102_1092_5932 =
 	{0x1092, 0x5932, pci_subsys_5333_9102_1092_5932, 0};
 #undef pci_ss_info_1092_5932
@@ -41257,6 +43771,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1092, 0x5a57, pci_subsys_5333_9102_1092_5a57, 0};
 #undef pci_ss_info_1092_5a57
 #define pci_ss_info_1092_5a57 pci_ss_info_5333_9102_1092_5a57
+static const pciSubsystemInfo pci_ss_info_8086_0600_8086_0136 =
+	{0x8086, 0x0136, pci_subsys_8086_0600_8086_0136, 0};
+#undef pci_ss_info_8086_0136
+#define pci_ss_info_8086_0136 pci_ss_info_8086_0600_8086_0136
 static const pciSubsystemInfo pci_ss_info_8086_0600_8086_01af =
 	{0x8086, 0x01af, pci_subsys_8086_0600_8086_01af, 0};
 #undef pci_ss_info_8086_01af
@@ -41341,6 +43859,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x0269, pci_subsys_8086_1008_1014_0269, 0};
 #undef pci_ss_info_1014_0269
 #define pci_ss_info_1014_0269 pci_ss_info_8086_1008_1014_0269
+static const pciSubsystemInfo pci_ss_info_8086_1008_1028_011b =
+	{0x1028, 0x011b, pci_subsys_8086_1008_1028_011b, 0};
+#undef pci_ss_info_1028_011b
+#define pci_ss_info_1028_011b pci_ss_info_8086_1008_1028_011b
 static const pciSubsystemInfo pci_ss_info_8086_1008_1028_011c =
 	{0x1028, 0x011c, pci_subsys_8086_1008_1028_011c, 0};
 #undef pci_ss_info_1028_011c
@@ -41701,6 +44223,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x0522, pci_subsys_8086_103d_1014_0522, 0};
 #undef pci_ss_info_1014_0522
 #define pci_ss_info_1014_0522 pci_ss_info_8086_103d_1014_0522
+static const pciSubsystemInfo pci_ss_info_8086_103d_8086_103d =
+	{0x8086, 0x103d, pci_subsys_8086_103d_8086_103d, 0};
+#undef pci_ss_info_8086_103d
+#define pci_ss_info_8086_103d pci_ss_info_8086_103d_8086_103d
 static const pciSubsystemInfo pci_ss_info_8086_1040_16be_1040 =
 	{0x16be, 0x1040, pci_subsys_8086_1040_16be_1040, 0};
 #undef pci_ss_info_16be_1040
@@ -41717,6 +44243,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x2527, pci_subsys_8086_1043_8086_2527, 0};
 #undef pci_ss_info_8086_2527
 #define pci_ss_info_8086_2527 pci_ss_info_8086_1043_8086_2527
+static const pciSubsystemInfo pci_ss_info_8086_1043_8086_2561 =
+	{0x8086, 0x2561, pci_subsys_8086_1043_8086_2561, 0};
+#undef pci_ss_info_8086_2561
+#define pci_ss_info_8086_2561 pci_ss_info_8086_1043_8086_2561
 static const pciSubsystemInfo pci_ss_info_8086_1043_8086_2581 =
 	{0x8086, 0x2581, pci_subsys_8086_1043_8086_2581, 0};
 #undef pci_ss_info_8086_2581
@@ -41729,6 +44259,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0xa11f, pci_subsys_8086_1048_8086_a11f, 0};
 #undef pci_ss_info_8086_a11f
 #define pci_ss_info_8086_a11f pci_ss_info_8086_1048_8086_a11f
+static const pciSubsystemInfo pci_ss_info_8086_1049_17aa_20b9 =
+	{0x17aa, 0x20b9, pci_subsys_8086_1049_17aa_20b9, 0};
+#undef pci_ss_info_17aa_20b9
+#define pci_ss_info_17aa_20b9 pci_ss_info_8086_1049_17aa_20b9
 static const pciSubsystemInfo pci_ss_info_8086_1050_1462_728c =
 	{0x1462, 0x728c, pci_subsys_8086_1050_1462_728c, 0};
 #undef pci_ss_info_1462_728c
@@ -41753,6 +44287,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x103c, 0x7044, pci_subsys_8086_105e_103c_7044, 0};
 #undef pci_ss_info_103c_7044
 #define pci_ss_info_103c_7044 pci_ss_info_8086_105e_103c_7044
+static const pciSubsystemInfo pci_ss_info_8086_105e_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_105e_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_105e_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_105e_1775_6003 =
 	{0x1775, 0x6003, pci_subsys_8086_105e_1775_6003, 0};
 #undef pci_ss_info_1775_6003
@@ -41977,6 +44515,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x109a, pci_subsys_8086_109a_8086_109a, 0};
 #undef pci_ss_info_8086_109a
 #define pci_ss_info_8086_109a pci_ss_info_8086_109a_8086_109a
+static const pciSubsystemInfo pci_ss_info_8086_109a_8086_309c =
+	{0x8086, 0x309c, pci_subsys_8086_109a_8086_309c, 0};
+#undef pci_ss_info_8086_309c
+#define pci_ss_info_8086_309c pci_ss_info_8086_109a_8086_309c
 static const pciSubsystemInfo pci_ss_info_8086_109e_8086_a01f =
 	{0x8086, 0xa01f, pci_subsys_8086_109e_8086_a01f, 0};
 #undef pci_ss_info_8086_a01f
@@ -42353,6 +44895,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1668, 0x1100, pci_subsys_8086_1229_1668_1100, 0};
 #undef pci_ss_info_1668_1100
 #define pci_ss_info_1668_1100 pci_ss_info_8086_1229_1668_1100
+static const pciSubsystemInfo pci_ss_info_8086_1229_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_1229_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_1229_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_1229_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_1229_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -42841,6 +45387,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0095, pci_subsys_8086_2415_1028_0095, 0};
 #undef pci_ss_info_1028_0095
 #define pci_ss_info_1028_0095 pci_ss_info_8086_2415_1028_0095
+static const pciSubsystemInfo pci_ss_info_8086_2415_1028_00b4 =
+	{0x1028, 0x00b4, pci_subsys_8086_2415_1028_00b4, 0};
+#undef pci_ss_info_1028_00b4
+#define pci_ss_info_1028_00b4 pci_ss_info_8086_2415_1028_00b4
 static const pciSubsystemInfo pci_ss_info_8086_2415_110a_0051 =
 	{0x110a, 0x0051, pci_subsys_8086_2415_110a_0051, 0};
 #undef pci_ss_info_110a_0051
@@ -43025,6 +45575,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x104d, 0x80df, pci_subsys_8086_2446_104d_80df, 0};
 #undef pci_ss_info_104d_80df
 #define pci_ss_info_104d_80df pci_ss_info_8086_2446_104d_80df
+static const pciSubsystemInfo pci_ss_info_8086_2448_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_2448_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_2448_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_2448_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_2448_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -43281,6 +45835,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x051c, pci_subsys_8086_2485_1014_051c, 0};
 #undef pci_ss_info_1014_051c
 #define pci_ss_info_1014_051c pci_ss_info_8086_2485_1014_051c
+static const pciSubsystemInfo pci_ss_info_8086_2485_1043_1583 =
+	{0x1043, 0x1583, pci_subsys_8086_2485_1043_1583, 0};
+#undef pci_ss_info_1043_1583
+#define pci_ss_info_1043_1583 pci_ss_info_8086_2485_1043_1583
+static const pciSubsystemInfo pci_ss_info_8086_2485_1043_1623 =
+	{0x1043, 0x1623, pci_subsys_8086_2485_1043_1623, 0};
+#undef pci_ss_info_1043_1623
+#define pci_ss_info_1043_1623 pci_ss_info_8086_2485_1043_1623
+static const pciSubsystemInfo pci_ss_info_8086_2485_1043_1643 =
+	{0x1043, 0x1643, pci_subsys_8086_2485_1043_1643, 0};
+#undef pci_ss_info_1043_1643
+#define pci_ss_info_1043_1643 pci_ss_info_8086_2485_1043_1643
 static const pciSubsystemInfo pci_ss_info_8086_2485_104d_80e7 =
 	{0x104d, 0x80e7, pci_subsys_8086_2485_104d_80e7, 0};
 #undef pci_ss_info_104d_80e7
@@ -43437,10 +46003,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x1090, pci_subsys_8086_24c2_4c53_1090, 0};
 #undef pci_ss_info_4c53_1090
 #define pci_ss_info_4c53_1090 pci_ss_info_8086_24c2_4c53_1090
+static const pciSubsystemInfo pci_ss_info_8086_24c2_8086_24c2 =
+	{0x8086, 0x24c2, pci_subsys_8086_24c2_8086_24c2, 0};
+#undef pci_ss_info_8086_24c2
+#define pci_ss_info_8086_24c2 pci_ss_info_8086_24c2_8086_24c2
 static const pciSubsystemInfo pci_ss_info_8086_24c2_8086_4541 =
 	{0x8086, 0x4541, pci_subsys_8086_24c2_8086_4541, 0};
 #undef pci_ss_info_8086_4541
 #define pci_ss_info_8086_4541 pci_ss_info_8086_24c2_8086_4541
+static const pciSubsystemInfo pci_ss_info_8086_24c2_e4bf_0cc9 =
+	{0xe4bf, 0x0cc9, pci_subsys_8086_24c2_e4bf_0cc9, 0};
+#undef pci_ss_info_e4bf_0cc9
+#define pci_ss_info_e4bf_0cc9 pci_ss_info_8086_24c2_e4bf_0cc9
+static const pciSubsystemInfo pci_ss_info_8086_24c2_e4bf_0cd2 =
+	{0xe4bf, 0x0cd2, pci_subsys_8086_24c2_e4bf_0cd2, 0};
+#undef pci_ss_info_e4bf_0cd2
+#define pci_ss_info_e4bf_0cd2 pci_ss_info_8086_24c2_e4bf_0cd2
 static const pciSubsystemInfo pci_ss_info_8086_24c3_1014_0267 =
 	{0x1014, 0x0267, pci_subsys_8086_24c3_1014_0267, 0};
 #undef pci_ss_info_1014_0267
@@ -43457,6 +46035,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0126, pci_subsys_8086_24c3_1028_0126, 0};
 #undef pci_ss_info_1028_0126
 #define pci_ss_info_1028_0126 pci_ss_info_8086_24c3_1028_0126
+static const pciSubsystemInfo pci_ss_info_8086_24c3_1028_014f =
+	{0x1028, 0x014f, pci_subsys_8086_24c3_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_8086_24c3_1028_014f
 static const pciSubsystemInfo pci_ss_info_8086_24c3_103c_088c =
 	{0x103c, 0x088c, pci_subsys_8086_24c3_103c_088c, 0};
 #undef pci_ss_info_103c_088c
@@ -43473,6 +46055,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1071, 0x8160, pci_subsys_8086_24c3_1071_8160, 0};
 #undef pci_ss_info_1071_8160
 #define pci_ss_info_1071_8160 pci_ss_info_8086_24c3_1071_8160
+static const pciSubsystemInfo pci_ss_info_8086_24c3_144d_c005 =
+	{0x144d, 0xc005, pci_subsys_8086_24c3_144d_c005, 0};
+#undef pci_ss_info_144d_c005
+#define pci_ss_info_144d_c005 pci_ss_info_8086_24c3_144d_c005
 static const pciSubsystemInfo pci_ss_info_8086_24c3_144d_c00c =
 	{0x144d, 0xc00c, pci_subsys_8086_24c3_144d_c00c, 0};
 #undef pci_ss_info_144d_c00c
@@ -43497,6 +46083,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x1090, pci_subsys_8086_24c3_4c53_1090, 0};
 #undef pci_ss_info_4c53_1090
 #define pci_ss_info_4c53_1090 pci_ss_info_8086_24c3_4c53_1090
+static const pciSubsystemInfo pci_ss_info_8086_24c3_e4bf_0cc9 =
+	{0xe4bf, 0x0cc9, pci_subsys_8086_24c3_e4bf_0cc9, 0};
+#undef pci_ss_info_e4bf_0cc9
+#define pci_ss_info_e4bf_0cc9 pci_ss_info_8086_24c3_e4bf_0cc9
+static const pciSubsystemInfo pci_ss_info_8086_24c3_e4bf_0cd2 =
+	{0xe4bf, 0x0cd2, pci_subsys_8086_24c3_e4bf_0cd2, 0};
+#undef pci_ss_info_e4bf_0cd2
+#define pci_ss_info_e4bf_0cd2 pci_ss_info_8086_24c3_e4bf_0cd2
 static const pciSubsystemInfo pci_ss_info_8086_24c4_1014_0267 =
 	{0x1014, 0x0267, pci_subsys_8086_24c4_1014_0267, 0};
 #undef pci_ss_info_1014_0267
@@ -43557,10 +46151,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x1090, pci_subsys_8086_24c4_4c53_1090, 0};
 #undef pci_ss_info_4c53_1090
 #define pci_ss_info_4c53_1090 pci_ss_info_8086_24c4_4c53_1090
+static const pciSubsystemInfo pci_ss_info_8086_24c4_8086_24c2 =
+	{0x8086, 0x24c2, pci_subsys_8086_24c4_8086_24c2, 0};
+#undef pci_ss_info_8086_24c2
+#define pci_ss_info_8086_24c2 pci_ss_info_8086_24c4_8086_24c2
 static const pciSubsystemInfo pci_ss_info_8086_24c4_8086_4541 =
 	{0x8086, 0x4541, pci_subsys_8086_24c4_8086_4541, 0};
 #undef pci_ss_info_8086_4541
 #define pci_ss_info_8086_4541 pci_ss_info_8086_24c4_8086_4541
+static const pciSubsystemInfo pci_ss_info_8086_24c4_e4bf_0cc9 =
+	{0xe4bf, 0x0cc9, pci_subsys_8086_24c4_e4bf_0cc9, 0};
+#undef pci_ss_info_e4bf_0cc9
+#define pci_ss_info_e4bf_0cc9 pci_ss_info_8086_24c4_e4bf_0cc9
+static const pciSubsystemInfo pci_ss_info_8086_24c4_e4bf_0cd2 =
+	{0xe4bf, 0x0cd2, pci_subsys_8086_24c4_e4bf_0cd2, 0};
+#undef pci_ss_info_e4bf_0cd2
+#define pci_ss_info_e4bf_0cd2 pci_ss_info_8086_24c4_e4bf_0cd2
 static const pciSubsystemInfo pci_ss_info_8086_24c5_0e11_00b8 =
 	{0x0e11, 0x00b8, pci_subsys_8086_24c5_0e11_00b8, 0};
 #undef pci_ss_info_0e11_00b8
@@ -43569,6 +46175,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x0267, pci_subsys_8086_24c5_1014_0267, 0};
 #undef pci_ss_info_1014_0267
 #define pci_ss_info_1014_0267 pci_ss_info_8086_24c5_1014_0267
+static const pciSubsystemInfo pci_ss_info_8086_24c5_1014_0537 =
+	{0x1014, 0x0537, pci_subsys_8086_24c5_1014_0537, 0};
+#undef pci_ss_info_1014_0537
+#define pci_ss_info_1014_0537 pci_ss_info_8086_24c5_1014_0537
 static const pciSubsystemInfo pci_ss_info_8086_24c5_1014_055f =
 	{0x1014, 0x055f, pci_subsys_8086_24c5_1014_055f, 0};
 #undef pci_ss_info_1014_055f
@@ -43581,6 +46191,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0139, pci_subsys_8086_24c5_1028_0139, 0};
 #undef pci_ss_info_1028_0139
 #define pci_ss_info_1028_0139 pci_ss_info_8086_24c5_1028_0139
+static const pciSubsystemInfo pci_ss_info_8086_24c5_1028_014f =
+	{0x1028, 0x014f, pci_subsys_8086_24c5_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_8086_24c5_1028_014f
 static const pciSubsystemInfo pci_ss_info_8086_24c5_1028_0163 =
 	{0x1028, 0x0163, pci_subsys_8086_24c5_1028_0163, 0};
 #undef pci_ss_info_1028_0163
@@ -43605,6 +46219,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1071, 0x8160, pci_subsys_8086_24c5_1071_8160, 0};
 #undef pci_ss_info_1071_8160
 #define pci_ss_info_1071_8160 pci_ss_info_8086_24c5_1071_8160
+static const pciSubsystemInfo pci_ss_info_8086_24c5_144d_c005 =
+	{0x144d, 0xc005, pci_subsys_8086_24c5_144d_c005, 0};
+#undef pci_ss_info_144d_c005
+#define pci_ss_info_144d_c005 pci_ss_info_8086_24c5_144d_c005
 static const pciSubsystemInfo pci_ss_info_8086_24c5_144d_c00c =
 	{0x144d, 0xc00c, pci_subsys_8086_24c5_144d_c00c, 0};
 #undef pci_ss_info_144d_c00c
@@ -43625,6 +46243,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x1055, pci_subsys_8086_24c5_1734_1055, 0};
 #undef pci_ss_info_1734_1055
 #define pci_ss_info_1734_1055 pci_ss_info_8086_24c5_1734_1055
+static const pciSubsystemInfo pci_ss_info_8086_24c5_8086_24c5 =
+	{0x8086, 0x24c5, pci_subsys_8086_24c5_8086_24c5, 0};
+#undef pci_ss_info_8086_24c5
+#define pci_ss_info_8086_24c5 pci_ss_info_8086_24c5_8086_24c5
+static const pciSubsystemInfo pci_ss_info_8086_24c5_a002_1458 =
+	{0xa002, 0x1458, pci_subsys_8086_24c5_a002_1458, 0};
+#undef pci_ss_info_a002_1458
+#define pci_ss_info_a002_1458 pci_ss_info_8086_24c5_a002_1458
+static const pciSubsystemInfo pci_ss_info_8086_24c6_1014_0524 =
+	{0x1014, 0x0524, pci_subsys_8086_24c6_1014_0524, 0};
+#undef pci_ss_info_1014_0524
+#define pci_ss_info_1014_0524 pci_ss_info_8086_24c6_1014_0524
+static const pciSubsystemInfo pci_ss_info_8086_24c6_1014_0525 =
+	{0x1014, 0x0525, pci_subsys_8086_24c6_1014_0525, 0};
+#undef pci_ss_info_1014_0525
+#define pci_ss_info_1014_0525 pci_ss_info_8086_24c6_1014_0525
 static const pciSubsystemInfo pci_ss_info_8086_24c6_1014_0559 =
 	{0x1014, 0x0559, pci_subsys_8086_24c6_1014_0559, 0};
 #undef pci_ss_info_1014_0559
@@ -43657,6 +46291,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1071, 0x8160, pci_subsys_8086_24c6_1071_8160, 0};
 #undef pci_ss_info_1071_8160
 #define pci_ss_info_1071_8160 pci_ss_info_8086_24c6_1071_8160
+static const pciSubsystemInfo pci_ss_info_8086_24c6_144d_2115 =
+	{0x144d, 0x2115, pci_subsys_8086_24c6_144d_2115, 0};
+#undef pci_ss_info_144d_2115
+#define pci_ss_info_144d_2115 pci_ss_info_8086_24c6_144d_2115
 static const pciSubsystemInfo pci_ss_info_8086_24c6_144d_c00c =
 	{0x144d, 0xc00c, pci_subsys_8086_24c6_144d_c00c, 0};
 #undef pci_ss_info_144d_c00c
@@ -43721,10 +46359,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x1090, pci_subsys_8086_24c7_4c53_1090, 0};
 #undef pci_ss_info_4c53_1090
 #define pci_ss_info_4c53_1090 pci_ss_info_8086_24c7_4c53_1090
+static const pciSubsystemInfo pci_ss_info_8086_24c7_8086_24c2 =
+	{0x8086, 0x24c2, pci_subsys_8086_24c7_8086_24c2, 0};
+#undef pci_ss_info_8086_24c2
+#define pci_ss_info_8086_24c2 pci_ss_info_8086_24c7_8086_24c2
 static const pciSubsystemInfo pci_ss_info_8086_24c7_8086_4541 =
 	{0x8086, 0x4541, pci_subsys_8086_24c7_8086_4541, 0};
 #undef pci_ss_info_8086_4541
 #define pci_ss_info_8086_4541 pci_ss_info_8086_24c7_8086_4541
+static const pciSubsystemInfo pci_ss_info_8086_24c7_e4bf_0cc9 =
+	{0xe4bf, 0x0cc9, pci_subsys_8086_24c7_e4bf_0cc9, 0};
+#undef pci_ss_info_e4bf_0cc9
+#define pci_ss_info_e4bf_0cc9 pci_ss_info_8086_24c7_e4bf_0cc9
+static const pciSubsystemInfo pci_ss_info_8086_24c7_e4bf_0cd2 =
+	{0xe4bf, 0x0cd2, pci_subsys_8086_24c7_e4bf_0cd2, 0};
+#undef pci_ss_info_e4bf_0cd2
+#define pci_ss_info_e4bf_0cd2 pci_ss_info_8086_24c7_e4bf_0cd2
 static const pciSubsystemInfo pci_ss_info_8086_24ca_1014_052d =
 	{0x1014, 0x052d, pci_subsys_8086_24ca_1014_052d, 0};
 #undef pci_ss_info_1014_052d
@@ -43733,6 +46383,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1025, 0x005a, pci_subsys_8086_24ca_1025_005a, 0};
 #undef pci_ss_info_1025_005a
 #define pci_ss_info_1025_005a pci_ss_info_8086_24ca_1025_005a
+static const pciSubsystemInfo pci_ss_info_8086_24ca_1028_014f =
+	{0x1028, 0x014f, pci_subsys_8086_24ca_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_8086_24ca_1028_014f
 static const pciSubsystemInfo pci_ss_info_8086_24ca_1028_0163 =
 	{0x1028, 0x0163, pci_subsys_8086_24ca_1028_0163, 0};
 #undef pci_ss_info_1028_0163
@@ -43793,6 +46447,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x1090, pci_subsys_8086_24cb_4c53_1090, 0};
 #undef pci_ss_info_4c53_1090
 #define pci_ss_info_4c53_1090 pci_ss_info_8086_24cb_4c53_1090
+static const pciSubsystemInfo pci_ss_info_8086_24cb_e4bf_0cc9 =
+	{0xe4bf, 0x0cc9, pci_subsys_8086_24cb_e4bf_0cc9, 0};
+#undef pci_ss_info_e4bf_0cc9
+#define pci_ss_info_e4bf_0cc9 pci_ss_info_8086_24cb_e4bf_0cc9
+static const pciSubsystemInfo pci_ss_info_8086_24cb_e4bf_0cd2 =
+	{0xe4bf, 0x0cd2, pci_subsys_8086_24cb_e4bf_0cd2, 0};
+#undef pci_ss_info_e4bf_0cd2
+#define pci_ss_info_e4bf_0cd2 pci_ss_info_8086_24cb_e4bf_0cd2
 static const pciSubsystemInfo pci_ss_info_8086_24cc_144d_c00c =
 	{0x144d, 0xc00c, pci_subsys_8086_24cc_144d_c00c, 0};
 #undef pci_ss_info_144d_c00c
@@ -43877,6 +46539,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x1090, pci_subsys_8086_24cd_4c53_1090, 0};
 #undef pci_ss_info_4c53_1090
 #define pci_ss_info_4c53_1090 pci_ss_info_8086_24cd_4c53_1090
+static const pciSubsystemInfo pci_ss_info_8086_24cd_8086_24c2 =
+	{0x8086, 0x24c2, pci_subsys_8086_24cd_8086_24c2, 0};
+#undef pci_ss_info_8086_24c2
+#define pci_ss_info_8086_24c2 pci_ss_info_8086_24cd_8086_24c2
+static const pciSubsystemInfo pci_ss_info_8086_24cd_e4bf_0cc9 =
+	{0xe4bf, 0x0cc9, pci_subsys_8086_24cd_e4bf_0cc9, 0};
+#undef pci_ss_info_e4bf_0cc9
+#define pci_ss_info_e4bf_0cc9 pci_ss_info_8086_24cd_e4bf_0cc9
+static const pciSubsystemInfo pci_ss_info_8086_24cd_e4bf_0cd2 =
+	{0xe4bf, 0x0cd2, pci_subsys_8086_24cd_e4bf_0cd2, 0};
+#undef pci_ss_info_e4bf_0cd2
+#define pci_ss_info_e4bf_0cd2 pci_ss_info_8086_24cd_e4bf_0cd2
 static const pciSubsystemInfo pci_ss_info_8086_24d1_1028_0169 =
 	{0x1028, 0x0169, pci_subsys_8086_24d1_1028_0169, 0};
 #undef pci_ss_info_1028_0169
@@ -43901,6 +46575,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7280, pci_subsys_8086_24d1_1462_7280, 0};
 #undef pci_ss_info_1462_7280
 #define pci_ss_info_1462_7280 pci_ss_info_8086_24d1_1462_7280
+static const pciSubsystemInfo pci_ss_info_8086_24d1_1565_5200 =
+	{0x1565, 0x5200, pci_subsys_8086_24d1_1565_5200, 0};
+#undef pci_ss_info_1565_5200
+#define pci_ss_info_1565_5200 pci_ss_info_8086_24d1_1565_5200
 static const pciSubsystemInfo pci_ss_info_8086_24d1_15d9_4580 =
 	{0x15d9, 0x4580, pci_subsys_8086_24d1_15d9_4580, 0};
 #undef pci_ss_info_15d9_4580
@@ -43921,6 +46599,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x524c, pci_subsys_8086_24d1_8086_524c, 0};
 #undef pci_ss_info_8086_524c
 #define pci_ss_info_8086_524c pci_ss_info_8086_24d1_8086_524c
+static const pciSubsystemInfo pci_ss_info_8086_24d2_1014_02dd =
+	{0x1014, 0x02dd, pci_subsys_8086_24d2_1014_02dd, 0};
+#undef pci_ss_info_1014_02dd
+#define pci_ss_info_1014_02dd pci_ss_info_8086_24d2_1014_02dd
 static const pciSubsystemInfo pci_ss_info_8086_24d2_1014_02ed =
 	{0x1014, 0x02ed, pci_subsys_8086_24d2_1014_02ed, 0};
 #undef pci_ss_info_1014_02ed
@@ -43957,6 +46639,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7280, pci_subsys_8086_24d2_1462_7280, 0};
 #undef pci_ss_info_1462_7280
 #define pci_ss_info_1462_7280 pci_ss_info_8086_24d2_1462_7280
+static const pciSubsystemInfo pci_ss_info_8086_24d2_1565_3101 =
+	{0x1565, 0x3101, pci_subsys_8086_24d2_1565_3101, 0};
+#undef pci_ss_info_1565_3101
+#define pci_ss_info_1565_3101 pci_ss_info_8086_24d2_1565_3101
 static const pciSubsystemInfo pci_ss_info_8086_24d2_15d9_4580 =
 	{0x15d9, 0x4580, pci_subsys_8086_24d2_15d9_4580, 0};
 #undef pci_ss_info_15d9_4580
@@ -43981,6 +46667,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x524c, pci_subsys_8086_24d2_8086_524c, 0};
 #undef pci_ss_info_8086_524c
 #define pci_ss_info_8086_524c pci_ss_info_8086_24d2_8086_524c
+static const pciSubsystemInfo pci_ss_info_8086_24d3_1014_02dd =
+	{0x1014, 0x02dd, pci_subsys_8086_24d3_1014_02dd, 0};
+#undef pci_ss_info_1014_02dd
+#define pci_ss_info_1014_02dd pci_ss_info_8086_24d3_1014_02dd
 static const pciSubsystemInfo pci_ss_info_8086_24d3_1014_02ed =
 	{0x1014, 0x02ed, pci_subsys_8086_24d3_1014_02ed, 0};
 #undef pci_ss_info_1014_02ed
@@ -44009,6 +46699,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7280, pci_subsys_8086_24d3_1462_7280, 0};
 #undef pci_ss_info_1462_7280
 #define pci_ss_info_1462_7280 pci_ss_info_8086_24d3_1462_7280
+static const pciSubsystemInfo pci_ss_info_8086_24d3_1565_3101 =
+	{0x1565, 0x3101, pci_subsys_8086_24d3_1565_3101, 0};
+#undef pci_ss_info_1565_3101
+#define pci_ss_info_1565_3101 pci_ss_info_8086_24d3_1565_3101
 static const pciSubsystemInfo pci_ss_info_8086_24d3_15d9_4580 =
 	{0x15d9, 0x4580, pci_subsys_8086_24d3_15d9_4580, 0};
 #undef pci_ss_info_15d9_4580
@@ -44033,6 +46727,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x524c, pci_subsys_8086_24d3_8086_524c, 0};
 #undef pci_ss_info_8086_524c
 #define pci_ss_info_8086_524c pci_ss_info_8086_24d3_8086_524c
+static const pciSubsystemInfo pci_ss_info_8086_24d4_1014_02dd =
+	{0x1014, 0x02dd, pci_subsys_8086_24d4_1014_02dd, 0};
+#undef pci_ss_info_1014_02dd
+#define pci_ss_info_1014_02dd pci_ss_info_8086_24d4_1014_02dd
 static const pciSubsystemInfo pci_ss_info_8086_24d4_1014_02ed =
 	{0x1014, 0x02ed, pci_subsys_8086_24d4_1014_02ed, 0};
 #undef pci_ss_info_1014_02ed
@@ -44069,6 +46767,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7280, pci_subsys_8086_24d4_1462_7280, 0};
 #undef pci_ss_info_1462_7280
 #define pci_ss_info_1462_7280 pci_ss_info_8086_24d4_1462_7280
+static const pciSubsystemInfo pci_ss_info_8086_24d4_1565_3101 =
+	{0x1565, 0x3101, pci_subsys_8086_24d4_1565_3101, 0};
+#undef pci_ss_info_1565_3101
+#define pci_ss_info_1565_3101 pci_ss_info_8086_24d4_1565_3101
 static const pciSubsystemInfo pci_ss_info_8086_24d4_15d9_4580 =
 	{0x15d9, 0x4580, pci_subsys_8086_24d4_15d9_4580, 0};
 #undef pci_ss_info_15d9_4580
@@ -44181,6 +46883,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7280, pci_subsys_8086_24d7_1462_7280, 0};
 #undef pci_ss_info_1462_7280
 #define pci_ss_info_1462_7280 pci_ss_info_8086_24d7_1462_7280
+static const pciSubsystemInfo pci_ss_info_8086_24d7_1565_3101 =
+	{0x1565, 0x3101, pci_subsys_8086_24d7_1565_3101, 0};
+#undef pci_ss_info_1565_3101
+#define pci_ss_info_1565_3101 pci_ss_info_8086_24d7_1565_3101
 static const pciSubsystemInfo pci_ss_info_8086_24d7_15d9_4580 =
 	{0x15d9, 0x4580, pci_subsys_8086_24d7_15d9_4580, 0};
 #undef pci_ss_info_15d9_4580
@@ -44205,6 +46911,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x524c, pci_subsys_8086_24d7_8086_524c, 0};
 #undef pci_ss_info_8086_524c
 #define pci_ss_info_8086_524c pci_ss_info_8086_24d7_8086_524c
+static const pciSubsystemInfo pci_ss_info_8086_24db_1014_02dd =
+	{0x1014, 0x02dd, pci_subsys_8086_24db_1014_02dd, 0};
+#undef pci_ss_info_1014_02dd
+#define pci_ss_info_1014_02dd pci_ss_info_8086_24db_1014_02dd
 static const pciSubsystemInfo pci_ss_info_8086_24db_1014_02ed =
 	{0x1014, 0x02ed, pci_subsys_8086_24db_1014_02ed, 0};
 #undef pci_ss_info_1014_02ed
@@ -44241,6 +46951,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7580, pci_subsys_8086_24db_1462_7580, 0};
 #undef pci_ss_info_1462_7580
 #define pci_ss_info_1462_7580 pci_ss_info_8086_24db_1462_7580
+static const pciSubsystemInfo pci_ss_info_8086_24db_1565_3101 =
+	{0x1565, 0x3101, pci_subsys_8086_24db_1565_3101, 0};
+#undef pci_ss_info_1565_3101
+#define pci_ss_info_1565_3101 pci_ss_info_8086_24db_1565_3101
 static const pciSubsystemInfo pci_ss_info_8086_24db_15d9_4580 =
 	{0x15d9, 0x4580, pci_subsys_8086_24db_15d9_4580, 0};
 #undef pci_ss_info_15d9_4580
@@ -44269,6 +46983,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x524c, pci_subsys_8086_24db_8086_524c, 0};
 #undef pci_ss_info_8086_524c
 #define pci_ss_info_8086_524c pci_ss_info_8086_24db_8086_524c
+static const pciSubsystemInfo pci_ss_info_8086_24dd_1014_02dd =
+	{0x1014, 0x02dd, pci_subsys_8086_24dd_1014_02dd, 0};
+#undef pci_ss_info_1014_02dd
+#define pci_ss_info_1014_02dd pci_ss_info_8086_24dd_1014_02dd
 static const pciSubsystemInfo pci_ss_info_8086_24dd_1014_02ed =
 	{0x1014, 0x02ed, pci_subsys_8086_24dd_1014_02ed, 0};
 #undef pci_ss_info_1014_02ed
@@ -44341,6 +47059,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7280, pci_subsys_8086_24de_1462_7280, 0};
 #undef pci_ss_info_1462_7280
 #define pci_ss_info_1462_7280 pci_ss_info_8086_24de_1462_7280
+static const pciSubsystemInfo pci_ss_info_8086_24de_1565_3101 =
+	{0x1565, 0x3101, pci_subsys_8086_24de_1565_3101, 0};
+#undef pci_ss_info_1565_3101
+#define pci_ss_info_1565_3101 pci_ss_info_8086_24de_1565_3101
 static const pciSubsystemInfo pci_ss_info_8086_24de_15d9_4580 =
 	{0x15d9, 0x4580, pci_subsys_8086_24de_15d9_4580, 0};
 #undef pci_ss_info_15d9_4580
@@ -44433,6 +47155,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x0267, pci_subsys_8086_2562_1014_0267, 0};
 #undef pci_ss_info_1014_0267
 #define pci_ss_info_1014_0267 pci_ss_info_8086_2562_1014_0267
+static const pciSubsystemInfo pci_ss_info_8086_2562_1734_1003 =
+	{0x1734, 0x1003, pci_subsys_8086_2562_1734_1003, 0};
+#undef pci_ss_info_1734_1003
+#define pci_ss_info_1734_1003 pci_ss_info_8086_2562_1734_1003
 static const pciSubsystemInfo pci_ss_info_8086_2562_1734_1004 =
 	{0x1734, 0x1004, pci_subsys_8086_2562_1734_1004, 0};
 #undef pci_ss_info_1734_1004
@@ -44517,18 +47243,46 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105b, pci_subsys_8086_2582_1734_105b, 0};
 #undef pci_ss_info_1734_105b
 #define pci_ss_info_1734_105b pci_ss_info_8086_2582_1734_105b
+static const pciSubsystemInfo pci_ss_info_8086_2582_1849_2582 =
+	{0x1849, 0x2582, pci_subsys_8086_2582_1849_2582, 0};
+#undef pci_ss_info_1849_2582
+#define pci_ss_info_1849_2582 pci_ss_info_8086_2582_1849_2582
 static const pciSubsystemInfo pci_ss_info_8086_2590_1028_0182 =
 	{0x1028, 0x0182, pci_subsys_8086_2590_1028_0182, 0};
 #undef pci_ss_info_1028_0182
 #define pci_ss_info_1028_0182 pci_ss_info_8086_2590_1028_0182
+static const pciSubsystemInfo pci_ss_info_8086_2590_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_2590_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_2590_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_2590_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_2590_103c_099c, 0};
 #undef pci_ss_info_103c_099c
 #define pci_ss_info_103c_099c pci_ss_info_8086_2590_103c_099c
+static const pciSubsystemInfo pci_ss_info_8086_2590_104d_81b7 =
+	{0x104d, 0x81b7, pci_subsys_8086_2590_104d_81b7, 0};
+#undef pci_ss_info_104d_81b7
+#define pci_ss_info_104d_81b7 pci_ss_info_8086_2590_104d_81b7
 static const pciSubsystemInfo pci_ss_info_8086_2590_a304_81b7 =
 	{0xa304, 0x81b7, pci_subsys_8086_2590_a304_81b7, 0};
 #undef pci_ss_info_a304_81b7
 #define pci_ss_info_a304_81b7 pci_ss_info_8086_2590_a304_81b7
+static const pciSubsystemInfo pci_ss_info_8086_2590_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2590_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2590_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2590_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2590_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2590_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2590_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2590_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2590_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_2591_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_2591_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_2591_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_2592_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_2592_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -44541,10 +47295,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x1881, pci_subsys_8086_2592_1043_1881, 0};
 #undef pci_ss_info_1043_1881
 #define pci_ss_info_1043_1881 pci_ss_info_8086_2592_1043_1881
+static const pciSubsystemInfo pci_ss_info_8086_2592_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2592_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2592_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2592_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2592_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2592_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2592_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2592_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2592_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_25a2_1775_10d0 =
 	{0x1775, 0x10d0, pci_subsys_8086_25a2_1775_10d0, 0};
 #undef pci_ss_info_1775_10d0
 #define pci_ss_info_1775_10d0 pci_ss_info_8086_25a2_1775_10d0
+static const pciSubsystemInfo pci_ss_info_8086_25a2_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25a2_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25a2_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25a2_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25a2_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44557,6 +47327,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10e0, pci_subsys_8086_25a2_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_8086_25a2_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_8086_25a3_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25a3_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25a3_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25a3_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25a3_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44577,6 +47351,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1775, 0x10d0, pci_subsys_8086_25a4_1775_10d0, 0};
 #undef pci_ss_info_1775_10d0
 #define pci_ss_info_1775_10d0 pci_ss_info_8086_25a4_1775_10d0
+static const pciSubsystemInfo pci_ss_info_8086_25a4_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25a4_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25a4_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25a4_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25a4_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44593,6 +47371,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10e0, pci_subsys_8086_25a4_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_8086_25a4_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_8086_25a6_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25a6_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25a6_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25a6_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25a6_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44605,6 +47387,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1775, 0x10d0, pci_subsys_8086_25a9_1775_10d0, 0};
 #undef pci_ss_info_1775_10d0
 #define pci_ss_info_1775_10d0 pci_ss_info_8086_25a9_1775_10d0
+static const pciSubsystemInfo pci_ss_info_8086_25a9_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25a9_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25a9_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25a9_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25a9_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44621,6 +47407,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10e0, pci_subsys_8086_25a9_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_8086_25a9_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_8086_25aa_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25aa_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25aa_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25aa_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25aa_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44637,6 +47427,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1775, 0x10d0, pci_subsys_8086_25ab_1775_10d0, 0};
 #undef pci_ss_info_1775_10d0
 #define pci_ss_info_1775_10d0 pci_ss_info_8086_25ab_1775_10d0
+static const pciSubsystemInfo pci_ss_info_8086_25ab_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25ab_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25ab_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25ab_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25ab_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44657,6 +47451,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1775, 0x10d0, pci_subsys_8086_25ac_1775_10d0, 0};
 #undef pci_ss_info_1775_10d0
 #define pci_ss_info_1775_10d0 pci_ss_info_8086_25ac_1775_10d0
+static const pciSubsystemInfo pci_ss_info_8086_25ac_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25ac_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25ac_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25ac_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25ac_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44677,6 +47475,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1775, 0x10d0, pci_subsys_8086_25ad_1775_10d0, 0};
 #undef pci_ss_info_1775_10d0
 #define pci_ss_info_1775_10d0 pci_ss_info_8086_25ad_1775_10d0
+static const pciSubsystemInfo pci_ss_info_8086_25ad_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25ad_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25ad_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25ad_1775_ce90 =
 	{0x1775, 0xce90, pci_subsys_8086_25ad_1775_ce90, 0};
 #undef pci_ss_info_1775_ce90
@@ -44693,6 +47495,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10e0, pci_subsys_8086_25ad_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_8086_25ad_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_8086_25b0_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_25b0_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_25b0_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_25b0_4c53_10d0 =
 	{0x4c53, 0x10d0, pci_subsys_8086_25b0_4c53_10d0, 0};
 #undef pci_ss_info_4c53_10d0
@@ -44709,6 +47515,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105c, pci_subsys_8086_2640_1734_105c, 0};
 #undef pci_ss_info_1734_105c
 #define pci_ss_info_1734_105c pci_ss_info_8086_2640_1734_105c
+static const pciSubsystemInfo pci_ss_info_8086_2640_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2640_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2640_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2640_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2640_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2640_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2640_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2640_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2640_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_2641_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_2641_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_2641_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_2641_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_2641_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -44729,6 +47551,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x4147, pci_subsys_8086_2651_8086_4147, 0};
 #undef pci_ss_info_8086_4147
 #define pci_ss_info_8086_4147 pci_ss_info_8086_2651_8086_4147
+static const pciSubsystemInfo pci_ss_info_8086_2651_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2651_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2651_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2651_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2651_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2651_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2651_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2651_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2651_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_2652_1462_7028 =
 	{0x1462, 0x7028, pci_subsys_8086_2652_1462_7028, 0};
 #undef pci_ss_info_1462_7028
@@ -44737,6 +47571,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0179, pci_subsys_8086_2658_1028_0179, 0};
 #undef pci_ss_info_1028_0179
 #define pci_ss_info_1028_0179 pci_ss_info_8086_2658_1028_0179
+static const pciSubsystemInfo pci_ss_info_8086_2658_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_2658_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_2658_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_2658_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_2658_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -44757,10 +47595,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105c, pci_subsys_8086_2658_1734_105c, 0};
 #undef pci_ss_info_1734_105c
 #define pci_ss_info_1734_105c pci_ss_info_8086_2658_1734_105c
+static const pciSubsystemInfo pci_ss_info_8086_2658_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2658_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2658_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2658_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2658_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2658_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2658_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2658_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2658_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_2659_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_2659_1028_0179, 0};
 #undef pci_ss_info_1028_0179
 #define pci_ss_info_1028_0179 pci_ss_info_8086_2659_1028_0179
+static const pciSubsystemInfo pci_ss_info_8086_2659_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_2659_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_2659_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_2659_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_2659_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -44781,10 +47635,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105c, pci_subsys_8086_2659_1734_105c, 0};
 #undef pci_ss_info_1734_105c
 #define pci_ss_info_1734_105c pci_ss_info_8086_2659_1734_105c
+static const pciSubsystemInfo pci_ss_info_8086_2659_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2659_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2659_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2659_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2659_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2659_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2659_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2659_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2659_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_265a_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_265a_1028_0179, 0};
 #undef pci_ss_info_1028_0179
 #define pci_ss_info_1028_0179 pci_ss_info_8086_265a_1028_0179
+static const pciSubsystemInfo pci_ss_info_8086_265a_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_265a_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_265a_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_265a_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_265a_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -44805,6 +47675,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105c, pci_subsys_8086_265a_1734_105c, 0};
 #undef pci_ss_info_1734_105c
 #define pci_ss_info_1734_105c pci_ss_info_8086_265a_1734_105c
+static const pciSubsystemInfo pci_ss_info_8086_265a_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_265a_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_265a_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_265a_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_265a_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_265a_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_265a_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_265a_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_265a_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_265b_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_265b_1028_0179, 0};
 #undef pci_ss_info_1028_0179
@@ -44829,10 +47711,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105c, pci_subsys_8086_265b_1734_105c, 0};
 #undef pci_ss_info_1734_105c
 #define pci_ss_info_1734_105c pci_ss_info_8086_265b_1734_105c
+static const pciSubsystemInfo pci_ss_info_8086_265b_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_265b_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_265b_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_265b_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_265b_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_265b_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_265b_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_265b_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_265b_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_265c_1028_0179 =
 	{0x1028, 0x0179, pci_subsys_8086_265c_1028_0179, 0};
 #undef pci_ss_info_1028_0179
 #define pci_ss_info_1028_0179 pci_ss_info_8086_265c_1028_0179
+static const pciSubsystemInfo pci_ss_info_8086_265c_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_265c_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_265c_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_265c_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_265c_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -44857,10 +47755,78 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x265c, pci_subsys_8086_265c_8086_265c, 0};
 #undef pci_ss_info_8086_265c
 #define pci_ss_info_8086_265c pci_ss_info_8086_265c_8086_265c
+static const pciSubsystemInfo pci_ss_info_8086_265c_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_265c_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_265c_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_265c_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_265c_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_265c_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_265c_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_265c_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_265c_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_2660_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_2660_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_2660_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_2660_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_2660_103c_099c, 0};
 #undef pci_ss_info_103c_099c
 #define pci_ss_info_103c_099c pci_ss_info_8086_2660_103c_099c
+static const pciSubsystemInfo pci_ss_info_8086_2660_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2660_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2660_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2660_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2660_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2660_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2660_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2660_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2660_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_2662_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_2662_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_2662_103c_0934
+static const pciSubsystemInfo pci_ss_info_8086_2662_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2662_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2662_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2662_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2662_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2662_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2662_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2662_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2662_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_2664_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2664_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2664_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2664_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2664_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2664_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2664_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2664_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2664_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_2666_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2666_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2666_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2666_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2666_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2666_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2666_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2666_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2666_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_2668_103c_2a09 =
 	{0x103c, 0x2a09, pci_subsys_8086_2668_103c_2a09, 0};
 #undef pci_ss_info_103c_2a09
@@ -44889,10 +47855,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105c, pci_subsys_8086_266a_1734_105c, 0};
 #undef pci_ss_info_1734_105c
 #define pci_ss_info_1734_105c pci_ss_info_8086_266a_1734_105c
+static const pciSubsystemInfo pci_ss_info_8086_266a_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_266a_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_266a_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_266a_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_266a_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_266a_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_266a_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_266a_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_266a_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_266d_1025_006a =
 	{0x1025, 0x006a, pci_subsys_8086_266d_1025_006a, 0};
 #undef pci_ss_info_1025_006a
 #define pci_ss_info_1025_006a pci_ss_info_8086_266d_1025_006a
+static const pciSubsystemInfo pci_ss_info_8086_266d_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_266d_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_266d_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_266d_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_266d_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -44913,6 +47895,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0188, pci_subsys_8086_266e_1028_0188, 0};
 #undef pci_ss_info_1028_0188
 #define pci_ss_info_1028_0188 pci_ss_info_8086_266e_1028_0188
+static const pciSubsystemInfo pci_ss_info_8086_266e_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_266e_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_266e_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_266e_103c_0944 =
 	{0x103c, 0x0944, pci_subsys_8086_266e_103c_0944, 0};
 #undef pci_ss_info_103c_0944
@@ -44937,6 +47923,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105a, pci_subsys_8086_266e_1734_105a, 0};
 #undef pci_ss_info_1734_105a
 #define pci_ss_info_1734_105a pci_ss_info_8086_266e_1734_105a
+static const pciSubsystemInfo pci_ss_info_8086_266f_103c_0934 =
+	{0x103c, 0x0934, pci_subsys_8086_266f_103c_0934, 0};
+#undef pci_ss_info_103c_0934
+#define pci_ss_info_103c_0934 pci_ss_info_8086_266f_103c_0934
 static const pciSubsystemInfo pci_ss_info_8086_266f_103c_099c =
 	{0x103c, 0x099c, pci_subsys_8086_266f_103c_099c, 0};
 #undef pci_ss_info_103c_099c
@@ -44957,6 +47947,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x105c, pci_subsys_8086_266f_1734_105c, 0};
 #undef pci_ss_info_1734_105c
 #define pci_ss_info_1734_105c pci_ss_info_8086_266f_1734_105c
+static const pciSubsystemInfo pci_ss_info_8086_266f_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_266f_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_266f_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_266f_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_266f_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_266f_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_266f_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_266f_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_266f_e4bf_58b1
 static const pciSubsystemInfo pci_ss_info_8086_2770_107b_5048 =
 	{0x107b, 0x5048, pci_subsys_8086_2770_107b_5048, 0};
 #undef pci_ss_info_107b_5048
@@ -44969,6 +47971,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x544e, pci_subsys_8086_2772_8086_544e, 0};
 #undef pci_ss_info_8086_544e
 #define pci_ss_info_8086_544e pci_ss_info_8086_2772_8086_544e
+static const pciSubsystemInfo pci_ss_info_8086_277c_1043_8178 =
+	{0x1043, 0x8178, pci_subsys_8086_277c_1043_8178, 0};
+#undef pci_ss_info_1043_8178
+#define pci_ss_info_1043_8178 pci_ss_info_8086_277c_1043_8178
 static const pciSubsystemInfo pci_ss_info_8086_2782_1043_2582 =
 	{0x1043, 0x2582, pci_subsys_8086_2782_1043_2582, 0};
 #undef pci_ss_info_1043_2582
@@ -44985,6 +47991,22 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1043, 0x1881, pci_subsys_8086_2792_1043_1881, 0};
 #undef pci_ss_info_1043_1881
 #define pci_ss_info_1043_1881 pci_ss_info_8086_2792_1043_1881
+static const pciSubsystemInfo pci_ss_info_8086_2792_e4bf_0ccd =
+	{0xe4bf, 0x0ccd, pci_subsys_8086_2792_e4bf_0ccd, 0};
+#undef pci_ss_info_e4bf_0ccd
+#define pci_ss_info_e4bf_0ccd pci_ss_info_8086_2792_e4bf_0ccd
+static const pciSubsystemInfo pci_ss_info_8086_2792_e4bf_0cd3 =
+	{0xe4bf, 0x0cd3, pci_subsys_8086_2792_e4bf_0cd3, 0};
+#undef pci_ss_info_e4bf_0cd3
+#define pci_ss_info_e4bf_0cd3 pci_ss_info_8086_2792_e4bf_0cd3
+static const pciSubsystemInfo pci_ss_info_8086_2792_e4bf_58b1 =
+	{0xe4bf, 0x58b1, pci_subsys_8086_2792_e4bf_58b1, 0};
+#undef pci_ss_info_e4bf_58b1
+#define pci_ss_info_e4bf_58b1 pci_ss_info_8086_2792_e4bf_58b1
+static const pciSubsystemInfo pci_ss_info_8086_27a0_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27a0_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27a0_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27a0_103c_30a1 =
 	{0x103c, 0x30a1, pci_subsys_8086_27a0_103c_30a1, 0};
 #undef pci_ss_info_103c_30a1
@@ -45009,6 +48031,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x17aa, 0x201a, pci_subsys_8086_27a6_17aa_201a, 0};
 #undef pci_ss_info_17aa_201a
 #define pci_ss_info_17aa_201a pci_ss_info_8086_27a6_17aa_201a
+static const pciSubsystemInfo pci_ss_info_8086_27b0_8086_544e =
+	{0x8086, 0x544e, pci_subsys_8086_27b0_8086_544e, 0};
+#undef pci_ss_info_8086_544e
+#define pci_ss_info_8086_544e pci_ss_info_8086_27b0_8086_544e
 static const pciSubsystemInfo pci_ss_info_8086_27b8_107b_5048 =
 	{0x107b, 0x5048, pci_subsys_8086_27b8_107b_5048, 0};
 #undef pci_ss_info_107b_5048
@@ -45029,18 +48055,38 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x17aa, 0x2009, pci_subsys_8086_27b9_17aa_2009, 0};
 #undef pci_ss_info_17aa_2009
 #define pci_ss_info_17aa_2009 pci_ss_info_8086_27b9_17aa_2009
+static const pciSubsystemInfo pci_ss_info_8086_27bd_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27bd_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27bd_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27c0_107b_5048 =
 	{0x107b, 0x5048, pci_subsys_8086_27c0_107b_5048, 0};
 #undef pci_ss_info_107b_5048
 #define pci_ss_info_107b_5048 pci_ss_info_8086_27c0_107b_5048
+static const pciSubsystemInfo pci_ss_info_8086_27c0_1462_7236 =
+	{0x1462, 0x7236, pci_subsys_8086_27c0_1462_7236, 0};
+#undef pci_ss_info_1462_7236
+#define pci_ss_info_1462_7236 pci_ss_info_8086_27c0_1462_7236
 static const pciSubsystemInfo pci_ss_info_8086_27c0_8086_544e =
 	{0x8086, 0x544e, pci_subsys_8086_27c0_8086_544e, 0};
 #undef pci_ss_info_8086_544e
 #define pci_ss_info_8086_544e pci_ss_info_8086_27c0_8086_544e
+static const pciSubsystemInfo pci_ss_info_8086_27c3_8086_544e =
+	{0x8086, 0x544e, pci_subsys_8086_27c3_8086_544e, 0};
+#undef pci_ss_info_8086_544e
+#define pci_ss_info_8086_544e pci_ss_info_8086_27c3_8086_544e
+static const pciSubsystemInfo pci_ss_info_8086_27c4_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27c4_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27c4_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27c5_17aa_200d =
 	{0x17aa, 0x200d, pci_subsys_8086_27c5_17aa_200d, 0};
 #undef pci_ss_info_17aa_200d
 #define pci_ss_info_17aa_200d pci_ss_info_8086_27c5_17aa_200d
+static const pciSubsystemInfo pci_ss_info_8086_27c8_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27c8_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27c8_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27c8_103c_30a1 =
 	{0x103c, 0x30a1, pci_subsys_8086_27c8_103c_30a1, 0};
 #undef pci_ss_info_103c_30a1
@@ -45057,6 +48103,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x544e, pci_subsys_8086_27c8_8086_544e, 0};
 #undef pci_ss_info_8086_544e
 #define pci_ss_info_8086_544e pci_ss_info_8086_27c8_8086_544e
+static const pciSubsystemInfo pci_ss_info_8086_27c9_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27c9_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27c9_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27c9_103c_30a1 =
 	{0x103c, 0x30a1, pci_subsys_8086_27c9_103c_30a1, 0};
 #undef pci_ss_info_103c_30a1
@@ -45073,6 +48123,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x544e, pci_subsys_8086_27c9_8086_544e, 0};
 #undef pci_ss_info_8086_544e
 #define pci_ss_info_8086_544e pci_ss_info_8086_27c9_8086_544e
+static const pciSubsystemInfo pci_ss_info_8086_27ca_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27ca_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27ca_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27ca_103c_30a1 =
 	{0x103c, 0x30a1, pci_subsys_8086_27ca_103c_30a1, 0};
 #undef pci_ss_info_103c_30a1
@@ -45089,6 +48143,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x544e, pci_subsys_8086_27ca_8086_544e, 0};
 #undef pci_ss_info_8086_544e
 #define pci_ss_info_8086_544e pci_ss_info_8086_27ca_8086_544e
+static const pciSubsystemInfo pci_ss_info_8086_27cb_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27cb_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27cb_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27cb_103c_30a1 =
 	{0x103c, 0x30a1, pci_subsys_8086_27cb_103c_30a1, 0};
 #undef pci_ss_info_103c_30a1
@@ -45105,6 +48163,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x544e, pci_subsys_8086_27cb_8086_544e, 0};
 #undef pci_ss_info_8086_544e
 #define pci_ss_info_8086_544e pci_ss_info_8086_27cb_8086_544e
+static const pciSubsystemInfo pci_ss_info_8086_27cc_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27cc_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27cc_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27cc_103c_30a1 =
 	{0x103c, 0x30a1, pci_subsys_8086_27cc_103c_30a1, 0};
 #undef pci_ss_info_103c_30a1
@@ -45117,10 +48179,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x544e, pci_subsys_8086_27cc_8086_544e, 0};
 #undef pci_ss_info_8086_544e
 #define pci_ss_info_8086_544e pci_ss_info_8086_27cc_8086_544e
+static const pciSubsystemInfo pci_ss_info_8086_27d8_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27d8_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27d8_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27d8_103c_30a1 =
 	{0x103c, 0x30a1, pci_subsys_8086_27d8_103c_30a1, 0};
 #undef pci_ss_info_103c_30a1
 #define pci_ss_info_103c_30a1 pci_ss_info_8086_27d8_103c_30a1
+static const pciSubsystemInfo pci_ss_info_8086_27d8_1043_13c4 =
+	{0x1043, 0x13c4, pci_subsys_8086_27d8_1043_13c4, 0};
+#undef pci_ss_info_1043_13c4
+#define pci_ss_info_1043_13c4 pci_ss_info_8086_27d8_1043_13c4
 static const pciSubsystemInfo pci_ss_info_8086_27d8_107b_5048 =
 	{0x107b, 0x5048, pci_subsys_8086_27d8_107b_5048, 0};
 #undef pci_ss_info_107b_5048
@@ -45145,6 +48215,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x17aa, 0x2010, pci_subsys_8086_27d8_17aa_2010, 0};
 #undef pci_ss_info_17aa_2010
 #define pci_ss_info_17aa_2010 pci_ss_info_8086_27d8_17aa_2010
+static const pciSubsystemInfo pci_ss_info_8086_27d8_17aa_3802 =
+	{0x17aa, 0x3802, pci_subsys_8086_27d8_17aa_3802, 0};
+#undef pci_ss_info_17aa_3802
+#define pci_ss_info_17aa_3802 pci_ss_info_8086_27d8_17aa_3802
+static const pciSubsystemInfo pci_ss_info_8086_27d8_8086_1112 =
+	{0x8086, 0x1112, pci_subsys_8086_27d8_8086_1112, 0};
+#undef pci_ss_info_8086_1112
+#define pci_ss_info_8086_1112 pci_ss_info_8086_27d8_8086_1112
+static const pciSubsystemInfo pci_ss_info_8086_27da_1025_006c =
+	{0x1025, 0x006c, pci_subsys_8086_27da_1025_006c, 0};
+#undef pci_ss_info_1025_006c
+#define pci_ss_info_1025_006c pci_ss_info_8086_27da_1025_006c
 static const pciSubsystemInfo pci_ss_info_8086_27da_10f7_8338 =
 	{0x10f7, 0x8338, pci_subsys_8086_27da_10f7_8338, 0};
 #undef pci_ss_info_10f7_8338
@@ -45161,6 +48243,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x308d, pci_subsys_8086_27dc_8086_308d, 0};
 #undef pci_ss_info_8086_308d
 #define pci_ss_info_8086_308d pci_ss_info_8086_27dc_8086_308d
+static const pciSubsystemInfo pci_ss_info_8086_27de_1462_7267 =
+	{0x1462, 0x7267, pci_subsys_8086_27de_1462_7267, 0};
+#undef pci_ss_info_1462_7267
+#define pci_ss_info_1462_7267 pci_ss_info_8086_27de_1462_7267
 static const pciSubsystemInfo pci_ss_info_8086_27df_103c_30a1 =
 	{0x103c, 0x30a1, pci_subsys_8086_27df_103c_30a1, 0};
 #undef pci_ss_info_103c_30a1
@@ -45201,18 +48287,50 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1462, 0x7235, pci_subsys_8086_2834_1462_7235, 0};
 #undef pci_ss_info_1462_7235
 #define pci_ss_info_1462_7235 pci_ss_info_8086_2834_1462_7235
+static const pciSubsystemInfo pci_ss_info_8086_2834_17aa_20aa =
+	{0x17aa, 0x20aa, pci_subsys_8086_2834_17aa_20aa, 0};
+#undef pci_ss_info_17aa_20aa
+#define pci_ss_info_17aa_20aa pci_ss_info_8086_2834_17aa_20aa
+static const pciSubsystemInfo pci_ss_info_8086_2835_17aa_20aa =
+	{0x17aa, 0x20aa, pci_subsys_8086_2835_17aa_20aa, 0};
+#undef pci_ss_info_17aa_20aa
+#define pci_ss_info_17aa_20aa pci_ss_info_8086_2835_17aa_20aa
 static const pciSubsystemInfo pci_ss_info_8086_2836_1462_7235 =
 	{0x1462, 0x7235, pci_subsys_8086_2836_1462_7235, 0};
 #undef pci_ss_info_1462_7235
 #define pci_ss_info_1462_7235 pci_ss_info_8086_2836_1462_7235
+static const pciSubsystemInfo pci_ss_info_8086_283a_17aa_20ab =
+	{0x17aa, 0x20ab, pci_subsys_8086_283a_17aa_20ab, 0};
+#undef pci_ss_info_17aa_20ab
+#define pci_ss_info_17aa_20ab pci_ss_info_8086_283a_17aa_20ab
 static const pciSubsystemInfo pci_ss_info_8086_283e_1462_7235 =
 	{0x1462, 0x7235, pci_subsys_8086_283e_1462_7235, 0};
 #undef pci_ss_info_1462_7235
 #define pci_ss_info_1462_7235 pci_ss_info_8086_283e_1462_7235
+static const pciSubsystemInfo pci_ss_info_8086_284b_17aa_20ac =
+	{0x17aa, 0x20ac, pci_subsys_8086_284b_17aa_20ac, 0};
+#undef pci_ss_info_17aa_20ac
+#define pci_ss_info_17aa_20ac pci_ss_info_8086_284b_17aa_20ac
+static const pciSubsystemInfo pci_ss_info_8086_29a0_1462_7276 =
+	{0x1462, 0x7276, pci_subsys_8086_29a0_1462_7276, 0};
+#undef pci_ss_info_1462_7276
+#define pci_ss_info_1462_7276 pci_ss_info_8086_29a0_1462_7276
+static const pciSubsystemInfo pci_ss_info_8086_29a2_1462_7276 =
+	{0x1462, 0x7276, pci_subsys_8086_29a2_1462_7276, 0};
+#undef pci_ss_info_1462_7276
+#define pci_ss_info_1462_7276 pci_ss_info_8086_29a2_1462_7276
+static const pciSubsystemInfo pci_ss_info_8086_2a00_17aa_20b1 =
+	{0x17aa, 0x20b1, pci_subsys_8086_2a00_17aa_20b1, 0};
+#undef pci_ss_info_17aa_20b1
+#define pci_ss_info_17aa_20b1 pci_ss_info_8086_2a00_17aa_20b1
 static const pciSubsystemInfo pci_ss_info_8086_3200_1775_c200 =
 	{0x1775, 0xc200, pci_subsys_8086_3200_1775_c200, 0};
 #undef pci_ss_info_1775_c200
 #define pci_ss_info_1775_c200 pci_ss_info_8086_3200_1775_c200
+static const pciSubsystemInfo pci_ss_info_8086_3340_1014_0529 =
+	{0x1014, 0x0529, pci_subsys_8086_3340_1014_0529, 0};
+#undef pci_ss_info_1014_0529
+#define pci_ss_info_1014_0529 pci_ss_info_8086_3340_1014_0529
 static const pciSubsystemInfo pci_ss_info_8086_3340_1025_005a =
 	{0x1025, 0x005a, pci_subsys_8086_3340_1025_005a, 0};
 #undef pci_ss_info_1025_005a
@@ -45261,6 +48379,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0139, pci_subsys_8086_3580_1028_0139, 0};
 #undef pci_ss_info_1028_0139
 #define pci_ss_info_1028_0139 pci_ss_info_8086_3580_1028_0139
+static const pciSubsystemInfo pci_ss_info_8086_3580_1028_014f =
+	{0x1028, 0x014f, pci_subsys_8086_3580_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_8086_3580_1028_014f
 static const pciSubsystemInfo pci_ss_info_8086_3580_1028_0163 =
 	{0x1028, 0x0163, pci_subsys_8086_3580_1028_0163, 0};
 #undef pci_ss_info_1028_0163
@@ -45289,6 +48411,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10e0, pci_subsys_8086_3580_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_8086_3580_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_8086_3580_e4bf_0cc9 =
+	{0xe4bf, 0x0cc9, pci_subsys_8086_3580_e4bf_0cc9, 0};
+#undef pci_ss_info_e4bf_0cc9
+#define pci_ss_info_e4bf_0cc9 pci_ss_info_8086_3580_e4bf_0cc9
+static const pciSubsystemInfo pci_ss_info_8086_3580_e4bf_0cd2 =
+	{0xe4bf, 0x0cd2, pci_subsys_8086_3580_e4bf_0cd2, 0};
+#undef pci_ss_info_e4bf_0cd2
+#define pci_ss_info_e4bf_0cd2 pci_ss_info_8086_3580_e4bf_0cd2
 static const pciSubsystemInfo pci_ss_info_8086_3581_1734_1055 =
 	{0x1734, 0x1055, pci_subsys_8086_3581_1734_1055, 0};
 #undef pci_ss_info_1734_1055
@@ -45301,6 +48431,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0139, pci_subsys_8086_3582_1028_0139, 0};
 #undef pci_ss_info_1028_0139
 #define pci_ss_info_1028_0139 pci_ss_info_8086_3582_1028_0139
+static const pciSubsystemInfo pci_ss_info_8086_3582_1028_014f =
+	{0x1028, 0x014f, pci_subsys_8086_3582_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_8086_3582_1028_014f
 static const pciSubsystemInfo pci_ss_info_8086_3582_1028_0163 =
 	{0x1028, 0x0163, pci_subsys_8086_3582_1028_0163, 0};
 #undef pci_ss_info_1028_0163
@@ -45321,6 +48455,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10e0, pci_subsys_8086_3582_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_8086_3582_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_8086_3582_e4bf_0cc9 =
+	{0xe4bf, 0x0cc9, pci_subsys_8086_3582_e4bf_0cc9, 0};
+#undef pci_ss_info_e4bf_0cc9
+#define pci_ss_info_e4bf_0cc9 pci_ss_info_8086_3582_e4bf_0cc9
+static const pciSubsystemInfo pci_ss_info_8086_3582_e4bf_0cd2 =
+	{0xe4bf, 0x0cd2, pci_subsys_8086_3582_e4bf_0cd2, 0};
+#undef pci_ss_info_e4bf_0cd2
+#define pci_ss_info_e4bf_0cd2 pci_ss_info_8086_3582_e4bf_0cd2
 static const pciSubsystemInfo pci_ss_info_8086_3584_1014_055d =
 	{0x1014, 0x055d, pci_subsys_8086_3584_1014_055d, 0};
 #undef pci_ss_info_1014_055d
@@ -45329,6 +48471,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0139, pci_subsys_8086_3584_1028_0139, 0};
 #undef pci_ss_info_1028_0139
 #define pci_ss_info_1028_0139 pci_ss_info_8086_3584_1028_0139
+static const pciSubsystemInfo pci_ss_info_8086_3584_1028_014f =
+	{0x1028, 0x014f, pci_subsys_8086_3584_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_8086_3584_1028_014f
 static const pciSubsystemInfo pci_ss_info_8086_3584_1028_0163 =
 	{0x1028, 0x0163, pci_subsys_8086_3584_1028_0163, 0};
 #undef pci_ss_info_1028_0163
@@ -45365,6 +48511,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1028, 0x0139, pci_subsys_8086_3585_1028_0139, 0};
 #undef pci_ss_info_1028_0139
 #define pci_ss_info_1028_0139 pci_ss_info_8086_3585_1028_0139
+static const pciSubsystemInfo pci_ss_info_8086_3585_1028_014f =
+	{0x1028, 0x014f, pci_subsys_8086_3585_1028_014f, 0};
+#undef pci_ss_info_1028_014f
+#define pci_ss_info_1028_014f pci_ss_info_8086_3585_1028_014f
 static const pciSubsystemInfo pci_ss_info_8086_3585_1028_0163 =
 	{0x1028, 0x0163, pci_subsys_8086_3585_1028_0163, 0};
 #undef pci_ss_info_1028_0163
@@ -45393,6 +48543,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10e0, pci_subsys_8086_3585_4c53_10e0, 0};
 #undef pci_ss_info_4c53_10e0
 #define pci_ss_info_4c53_10e0 pci_ss_info_8086_3585_4c53_10e0
+static const pciSubsystemInfo pci_ss_info_8086_3590_1014_02dd =
+	{0x1014, 0x02dd, pci_subsys_8086_3590_1014_02dd, 0};
+#undef pci_ss_info_1014_02dd
+#define pci_ss_info_1014_02dd pci_ss_info_8086_3590_1014_02dd
 static const pciSubsystemInfo pci_ss_info_8086_3590_1028_019a =
 	{0x1028, 0x019a, pci_subsys_8086_3590_1028_019a, 0};
 #undef pci_ss_info_1028_019a
@@ -45401,10 +48555,18 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1734, 0x103e, pci_subsys_8086_3590_1734_103e, 0};
 #undef pci_ss_info_1734_103e
 #define pci_ss_info_1734_103e pci_ss_info_8086_3590_1734_103e
+static const pciSubsystemInfo pci_ss_info_8086_3590_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_3590_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_3590_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_3590_4c53_10d0 =
 	{0x4c53, 0x10d0, pci_subsys_8086_3590_4c53_10d0, 0};
 #undef pci_ss_info_4c53_10d0
 #define pci_ss_info_4c53_10d0 pci_ss_info_8086_3590_4c53_10d0
+static const pciSubsystemInfo pci_ss_info_8086_3591_1014_02dd =
+	{0x1014, 0x02dd, pci_subsys_8086_3591_1014_02dd, 0};
+#undef pci_ss_info_1014_02dd
+#define pci_ss_info_1014_02dd pci_ss_info_8086_3591_1014_02dd
 static const pciSubsystemInfo pci_ss_info_8086_3591_1028_0169 =
 	{0x1028, 0x0169, pci_subsys_8086_3591_1028_0169, 0};
 #undef pci_ss_info_1028_0169
@@ -45413,18 +48575,42 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x4c53, 0x10d0, pci_subsys_8086_3591_4c53_10d0, 0};
 #undef pci_ss_info_4c53_10d0
 #define pci_ss_info_4c53_10d0 pci_ss_info_8086_3591_4c53_10d0
+static const pciSubsystemInfo pci_ss_info_8086_3594_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_3594_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_3594_1775_1100
 static const pciSubsystemInfo pci_ss_info_8086_3594_4c53_10d0 =
 	{0x4c53, 0x10d0, pci_subsys_8086_3594_4c53_10d0, 0};
 #undef pci_ss_info_4c53_10d0
 #define pci_ss_info_4c53_10d0 pci_ss_info_8086_3594_4c53_10d0
+static const pciSubsystemInfo pci_ss_info_8086_3595_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_3595_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_3595_1775_1100
+static const pciSubsystemInfo pci_ss_info_8086_3597_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_3597_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_3597_1775_1100
+static const pciSubsystemInfo pci_ss_info_8086_3598_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_3598_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_3598_1775_1100
+static const pciSubsystemInfo pci_ss_info_8086_3599_1775_1100 =
+	{0x1775, 0x1100, pci_subsys_8086_3599_1775_1100, 0};
+#undef pci_ss_info_1775_1100
+#define pci_ss_info_1775_1100 pci_ss_info_8086_3599_1775_1100
+static const pciSubsystemInfo pci_ss_info_8086_359b_1014_02dd =
+	{0x1014, 0x02dd, pci_subsys_8086_359b_1014_02dd, 0};
+#undef pci_ss_info_1014_02dd
+#define pci_ss_info_1014_02dd pci_ss_info_8086_359b_1014_02dd
 static const pciSubsystemInfo pci_ss_info_8086_359e_1028_0169 =
 	{0x1028, 0x0169, pci_subsys_8086_359e_1028_0169, 0};
 #undef pci_ss_info_1028_0169
 #define pci_ss_info_1028_0169 pci_ss_info_8086_359e_1028_0169
-static const pciSubsystemInfo pci_ss_info_8086_4220_2731_8086 =
-	{0x2731, 0x8086, pci_subsys_8086_4220_2731_8086, 0};
-#undef pci_ss_info_2731_8086
-#define pci_ss_info_2731_8086 pci_ss_info_8086_4220_2731_8086
+static const pciSubsystemInfo pci_ss_info_8086_4220_103c_12f6 =
+	{0x103c, 0x12f6, pci_subsys_8086_4220_103c_12f6, 0};
+#undef pci_ss_info_103c_12f6
+#define pci_ss_info_103c_12f6 pci_ss_info_8086_4220_103c_12f6
 static const pciSubsystemInfo pci_ss_info_8086_4220_8086_2731 =
 	{0x8086, 0x2731, pci_subsys_8086_4220_8086_2731, 0};
 #undef pci_ss_info_8086_2731
@@ -45453,6 +48639,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x1014, pci_subsys_8086_4227_8086_1014, 0};
 #undef pci_ss_info_8086_1014
 #define pci_ss_info_8086_1014 pci_ss_info_8086_4227_8086_1014
+static const pciSubsystemInfo pci_ss_info_8086_4230_8086_1110 =
+	{0x8086, 0x1110, pci_subsys_8086_4230_8086_1110, 0};
+#undef pci_ss_info_8086_1110
+#define pci_ss_info_8086_1110 pci_ss_info_8086_4230_8086_1110
 static const pciSubsystemInfo pci_ss_info_8086_5201_8086_0001 =
 	{0x8086, 0x0001, pci_subsys_8086_5201_8086_0001, 0};
 #undef pci_ss_info_8086_0001
@@ -45493,6 +48683,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x8086, 0x4341, pci_subsys_8086_7121_8086_4341, 0};
 #undef pci_ss_info_8086_4341
 #define pci_ss_info_8086_4341 pci_ss_info_8086_7121_8086_4341
+static const pciSubsystemInfo pci_ss_info_8086_7124_1028_00b4 =
+	{0x1028, 0x00b4, pci_subsys_8086_7124_1028_00b4, 0};
+#undef pci_ss_info_1028_00b4
+#define pci_ss_info_1028_00b4 pci_ss_info_8086_7124_1028_00b4
+static const pciSubsystemInfo pci_ss_info_8086_7125_1028_00b4 =
+	{0x1028, 0x00b4, pci_subsys_8086_7125_1028_00b4, 0};
+#undef pci_ss_info_1028_00b4
+#define pci_ss_info_1028_00b4 pci_ss_info_8086_7125_1028_00b4
 static const pciSubsystemInfo pci_ss_info_8086_7190_0e11_0500 =
 	{0x0e11, 0x0500, pci_subsys_8086_7190_0e11_0500, 0};
 #undef pci_ss_info_0e11_0500
@@ -45942,6 +49140,40 @@ static const pciSubsystemInfo pci_ss_inf
 #undef pci_ss_info_103c_3227
 #define pci_ss_info_103c_3227 pci_ss_info_9005_0285_103c_3227
 #ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_9005_0285_108e_0286 =
+	{0x108e, 0x0286, pci_subsys_9005_0285_108e_0286, 0};
+#undef pci_ss_info_108e_0286
+#define pci_ss_info_108e_0286 pci_ss_info_9005_0285_108e_0286
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_9005_0285_108e_0287 =
+	{0x108e, 0x0287, pci_subsys_9005_0285_108e_0287, 0};
+#undef pci_ss_info_108e_0287
+#define pci_ss_info_108e_0287 pci_ss_info_9005_0285_108e_0287
+#ifdef VENDOR_INCLUDE_NONVIDEO
+#endif
+static const pciSubsystemInfo pci_ss_info_9005_0285_108e_7aac =
+	{0x108e, 0x7aac, pci_subsys_9005_0285_108e_7aac, 0};
+#undef pci_ss_info_108e_7aac
+#define pci_ss_info_108e_7aac pci_ss_info_9005_0285_108e_7aac
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo pci_ss_info_9005_0285_15d9_02b5 =
+	{0x15d9, 0x02b5, pci_subsys_9005_0285_15d9_02b5, 0};
+#undef pci_ss_info_15d9_02b5
+#define pci_ss_info_15d9_02b5 pci_ss_info_9005_0285_15d9_02b5
+static const pciSubsystemInfo pci_ss_info_9005_0285_15d9_02b6 =
+	{0x15d9, 0x02b6, pci_subsys_9005_0285_15d9_02b6, 0};
+#undef pci_ss_info_15d9_02b6
+#define pci_ss_info_15d9_02b6 pci_ss_info_9005_0285_15d9_02b6
+static const pciSubsystemInfo pci_ss_info_9005_0285_15d9_02c9 =
+	{0x15d9, 0x02c9, pci_subsys_9005_0285_15d9_02c9, 0};
+#undef pci_ss_info_15d9_02c9
+#define pci_ss_info_15d9_02c9 pci_ss_info_9005_0285_15d9_02c9
+static const pciSubsystemInfo pci_ss_info_9005_0285_15d9_02ca =
+	{0x15d9, 0x02ca, pci_subsys_9005_0285_15d9_02ca, 0};
+#undef pci_ss_info_15d9_02ca
+#define pci_ss_info_15d9_02ca pci_ss_info_9005_0285_15d9_02ca
 static const pciSubsystemInfo pci_ss_info_9005_0285_17aa_0286 =
 	{0x17aa, 0x0286, pci_subsys_9005_0285_17aa_0286, 0};
 #undef pci_ss_info_17aa_0286
@@ -46022,6 +49254,14 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x9005, 0x029a, pci_subsys_9005_0285_9005_029a, 0};
 #undef pci_ss_info_9005_029a
 #define pci_ss_info_9005_029a pci_ss_info_9005_0285_9005_029a
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02a4 =
+	{0x9005, 0x02a4, pci_subsys_9005_0285_9005_02a4, 0};
+#undef pci_ss_info_9005_02a4
+#define pci_ss_info_9005_02a4 pci_ss_info_9005_0285_9005_02a4
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02a5 =
+	{0x9005, 0x02a5, pci_subsys_9005_0285_9005_02a5, 0};
+#undef pci_ss_info_9005_02a5
+#define pci_ss_info_9005_02a5 pci_ss_info_9005_0285_9005_02a5
 static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02b5 =
 	{0x9005, 0x02b5, pci_subsys_9005_0285_9005_02b5, 0};
 #undef pci_ss_info_9005_02b5
@@ -46034,6 +49274,74 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x9005, 0x02b7, pci_subsys_9005_0285_9005_02b7, 0};
 #undef pci_ss_info_9005_02b7
 #define pci_ss_info_9005_02b7 pci_ss_info_9005_0285_9005_02b7
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02b8 =
+	{0x9005, 0x02b8, pci_subsys_9005_0285_9005_02b8, 0};
+#undef pci_ss_info_9005_02b8
+#define pci_ss_info_9005_02b8 pci_ss_info_9005_0285_9005_02b8
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02b9 =
+	{0x9005, 0x02b9, pci_subsys_9005_0285_9005_02b9, 0};
+#undef pci_ss_info_9005_02b9
+#define pci_ss_info_9005_02b9 pci_ss_info_9005_0285_9005_02b9
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02ba =
+	{0x9005, 0x02ba, pci_subsys_9005_0285_9005_02ba, 0};
+#undef pci_ss_info_9005_02ba
+#define pci_ss_info_9005_02ba pci_ss_info_9005_0285_9005_02ba
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02bb =
+	{0x9005, 0x02bb, pci_subsys_9005_0285_9005_02bb, 0};
+#undef pci_ss_info_9005_02bb
+#define pci_ss_info_9005_02bb pci_ss_info_9005_0285_9005_02bb
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02bc =
+	{0x9005, 0x02bc, pci_subsys_9005_0285_9005_02bc, 0};
+#undef pci_ss_info_9005_02bc
+#define pci_ss_info_9005_02bc pci_ss_info_9005_0285_9005_02bc
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02bd =
+	{0x9005, 0x02bd, pci_subsys_9005_0285_9005_02bd, 0};
+#undef pci_ss_info_9005_02bd
+#define pci_ss_info_9005_02bd pci_ss_info_9005_0285_9005_02bd
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02be =
+	{0x9005, 0x02be, pci_subsys_9005_0285_9005_02be, 0};
+#undef pci_ss_info_9005_02be
+#define pci_ss_info_9005_02be pci_ss_info_9005_0285_9005_02be
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02bf =
+	{0x9005, 0x02bf, pci_subsys_9005_0285_9005_02bf, 0};
+#undef pci_ss_info_9005_02bf
+#define pci_ss_info_9005_02bf pci_ss_info_9005_0285_9005_02bf
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c0 =
+	{0x9005, 0x02c0, pci_subsys_9005_0285_9005_02c0, 0};
+#undef pci_ss_info_9005_02c0
+#define pci_ss_info_9005_02c0 pci_ss_info_9005_0285_9005_02c0
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c1 =
+	{0x9005, 0x02c1, pci_subsys_9005_0285_9005_02c1, 0};
+#undef pci_ss_info_9005_02c1
+#define pci_ss_info_9005_02c1 pci_ss_info_9005_0285_9005_02c1
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c2 =
+	{0x9005, 0x02c2, pci_subsys_9005_0285_9005_02c2, 0};
+#undef pci_ss_info_9005_02c2
+#define pci_ss_info_9005_02c2 pci_ss_info_9005_0285_9005_02c2
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c3 =
+	{0x9005, 0x02c3, pci_subsys_9005_0285_9005_02c3, 0};
+#undef pci_ss_info_9005_02c3
+#define pci_ss_info_9005_02c3 pci_ss_info_9005_0285_9005_02c3
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c4 =
+	{0x9005, 0x02c4, pci_subsys_9005_0285_9005_02c4, 0};
+#undef pci_ss_info_9005_02c4
+#define pci_ss_info_9005_02c4 pci_ss_info_9005_0285_9005_02c4
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c5 =
+	{0x9005, 0x02c5, pci_subsys_9005_0285_9005_02c5, 0};
+#undef pci_ss_info_9005_02c5
+#define pci_ss_info_9005_02c5 pci_ss_info_9005_0285_9005_02c5
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c6 =
+	{0x9005, 0x02c6, pci_subsys_9005_0285_9005_02c6, 0};
+#undef pci_ss_info_9005_02c6
+#define pci_ss_info_9005_02c6 pci_ss_info_9005_0285_9005_02c6
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c7 =
+	{0x9005, 0x02c7, pci_subsys_9005_0285_9005_02c7, 0};
+#undef pci_ss_info_9005_02c7
+#define pci_ss_info_9005_02c7 pci_ss_info_9005_0285_9005_02c7
+static const pciSubsystemInfo pci_ss_info_9005_0285_9005_02c8 =
+	{0x9005, 0x02c8, pci_subsys_9005_0285_9005_02c8, 0};
+#undef pci_ss_info_9005_02c8
+#define pci_ss_info_9005_02c8 pci_ss_info_9005_0285_9005_02c8
 static const pciSubsystemInfo pci_ss_info_9005_0286_1014_034d =
 	{0x1014, 0x034d, pci_subsys_9005_0286_1014_034d, 0};
 #undef pci_ss_info_1014_034d
@@ -46174,6 +49482,10 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x1014, 0x02bf, pci_subsys_9005_0503_1014_02bf, 0};
 #undef pci_ss_info_1014_02bf
 #define pci_ss_info_1014_02bf pci_ss_info_9005_0503_1014_02bf
+static const pciSubsystemInfo pci_ss_info_9005_0503_1014_02c3 =
+	{0x1014, 0x02c3, pci_subsys_9005_0503_1014_02c3, 0};
+#undef pci_ss_info_1014_02c3
+#define pci_ss_info_1014_02c3 pci_ss_info_9005_0503_1014_02c3
 static const pciSubsystemInfo pci_ss_info_9005_0503_1014_02d5 =
 	{0x1014, 0x02d5, pci_subsys_9005_0503_1014_02d5, 0};
 #undef pci_ss_info_1014_02d5
@@ -46188,10 +49500,26 @@ static const pciSubsystemInfo pci_ss_inf
 	{0x9005, 0x0041, pci_subsys_9005_8011_9005_0041, 0};
 #undef pci_ss_info_9005_0041
 #define pci_ss_info_9005_0041 pci_ss_info_9005_8011_9005_0041
+static const pciSubsystemInfo pci_ss_info_9005_8017_9005_0044 =
+	{0x9005, 0x0044, pci_subsys_9005_8017_9005_0044, 0};
+#undef pci_ss_info_9005_0044
+#define pci_ss_info_9005_0044 pci_ss_info_9005_8017_9005_0044
+static const pciSubsystemInfo pci_ss_info_9005_8017_9005_0045 =
+	{0x9005, 0x0045, pci_subsys_9005_8017_9005_0045, 0};
+#undef pci_ss_info_9005_0045
+#define pci_ss_info_9005_0045 pci_ss_info_9005_8017_9005_0045
+static const pciSubsystemInfo pci_ss_info_9005_801d_1014_02cc =
+	{0x1014, 0x02cc, pci_subsys_9005_801d_1014_02cc, 0};
+#undef pci_ss_info_1014_02cc
+#define pci_ss_info_1014_02cc pci_ss_info_9005_801d_1014_02cc
 static const pciSubsystemInfo pci_ss_info_9005_801f_1734_1011 =
 	{0x1734, 0x1011, pci_subsys_9005_801f_1734_1011, 0};
 #undef pci_ss_info_1734_1011
 #define pci_ss_info_1734_1011 pci_ss_info_9005_801f_1734_1011
+static const pciSubsystemInfo pci_ss_info_9005_809d_1014_02cc =
+	{0x1014, 0x02cc, pci_subsys_9005_809d_1014_02cc, 0};
+#undef pci_ss_info_1014_02cc
+#define pci_ss_info_1014_02cc pci_ss_info_9005_809d_1014_02cc
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo pci_ss_info_9710_9815_1000_0020 =
@@ -46269,6 +49597,7 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_list_050d_0109 NULL
 #define pci_ss_list_050d_7050 NULL
 #define pci_ss_list_050d_705c NULL
+#define pci_ss_list_058f_9254 NULL
 #define pci_ss_list_05a9_8519 NULL
 #define pci_ss_list_05e3_0701 NULL
 #define pci_ss_list_066f_3410 NULL
@@ -46284,6 +49613,7 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_list_093a_010e NULL
 #define pci_ss_list_093a_010f NULL
 #define pci_ss_list_093a_2468 NULL
+#define pci_ss_list_093a_2600 NULL
 #define pci_ss_list_093a_2603 NULL
 #define pci_ss_list_093a_2608 NULL
 #define pci_ss_list_09c1_0704 NULL
@@ -46307,6 +49637,7 @@ static const pciSubsystemInfo pci_ss_inf
 #define pci_ss_list_0e11_0001 NULL
 #define pci_ss_list_0e11_0002 NULL
 static const pciSubsystemInfo *pci_ss_list_0e11_0046[] = {
+	&pci_ss_info_0e11_0046_0e11_4091,
 	&pci_ss_info_0e11_0046_0e11_409a,
 	&pci_ss_info_0e11_0046_0e11_409b,
 	&pci_ss_info_0e11_0046_0e11_409c,
@@ -46525,12 +49856,16 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_1000_0041 NULL
 #define pci_ss_list_1000_0050 NULL
-#define pci_ss_list_1000_0054 NULL
+static const pciSubsystemInfo *pci_ss_list_1000_0054[] = {
+	&pci_ss_info_1000_0054_1028_1f09,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_1000_0055[] = {
 	&pci_ss_info_1000_0055_1033_8336,
 	NULL
 };
 #define pci_ss_list_1000_0056 NULL
+#define pci_ss_list_1000_0057 NULL
 #define pci_ss_list_1000_0058 NULL
 #define pci_ss_list_1000_005a NULL
 #define pci_ss_list_1000_005c NULL
@@ -46543,9 +49878,11 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1000_0060_1000_1010,
 	&pci_ss_info_1000_0060_1000_1011,
 	&pci_ss_info_1000_0060_1000_1012,
+	&pci_ss_info_1000_0060_1000_1016,
 	&pci_ss_info_1000_0060_1014_0363,
 	&pci_ss_info_1000_0060_1014_0364,
 	&pci_ss_info_1000_0060_1014_0365,
+	&pci_ss_info_1000_0060_1014_0379,
 	&pci_ss_info_1000_0060_1028_1f0a,
 	&pci_ss_info_1000_0060_1028_1f0b,
 	&pci_ss_info_1000_0060_1028_1f0c,
@@ -46553,6 +49890,9 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1000_0060_1028_1f11,
 	&pci_ss_info_1000_0060_1043_824d,
 	&pci_ss_info_1000_0060_1170_002f,
+	&pci_ss_info_1000_0060_8086_1006,
+	&pci_ss_info_1000_0060_8086_100a,
+	&pci_ss_info_1000_0060_8086_1010,
 	&pci_ss_info_1000_0060_8086_34cc,
 	&pci_ss_info_1000_0060_8086_34cd,
 	NULL
@@ -46789,7 +50129,9 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_436e NULL
 static const pciSubsystemInfo *pci_ss_list_1002_4370[] = {
 	&pci_ss_info_1002_4370_1025_0079,
+	&pci_ss_info_1002_4370_1025_0091,
 	&pci_ss_info_1002_4370_103c_308b,
+	&pci_ss_info_1002_4370_105b_0c81,
 	&pci_ss_info_1002_4370_107b_0300,
 	NULL
 };
@@ -47048,6 +50390,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1002_4c57_1014_0517,
 	&pci_ss_info_1002_4c57_1028_00e6,
 	&pci_ss_info_1002_4c57_1028_012a,
+	&pci_ss_info_1002_4c57_1043_1622,
 	&pci_ss_info_1002_4c57_144d_c006,
 	NULL
 };
@@ -47064,7 +50407,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_4c5a NULL
 #define pci_ss_list_1002_4c64 NULL
 #define pci_ss_list_1002_4c65 NULL
-#define pci_ss_list_1002_4c66 NULL
+static const pciSubsystemInfo *pci_ss_list_1002_4c66[] = {
+	&pci_ss_info_1002_4c66_1014_054d,
+	NULL
+};
 #define pci_ss_list_1002_4c67 NULL
 #define pci_ss_list_1002_4c6e NULL
 #define pci_ss_list_1002_4d46 NULL
@@ -47308,7 +50654,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_5453 NULL
 #define pci_ss_list_1002_5454 NULL
 #define pci_ss_list_1002_5455 NULL
-#define pci_ss_list_1002_5460 NULL
+static const pciSubsystemInfo *pci_ss_list_1002_5460[] = {
+	&pci_ss_info_1002_5460_1775_1100,
+	NULL
+};
 #define pci_ss_list_1002_5462 NULL
 #define pci_ss_list_1002_5464 NULL
 #define pci_ss_list_1002_5548 NULL
@@ -47347,7 +50696,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_5834 NULL
 #define pci_ss_list_1002_5835 NULL
 #define pci_ss_list_1002_5838 NULL
-#define pci_ss_list_1002_5940 NULL
+static const pciSubsystemInfo *pci_ss_list_1002_5940[] = {
+	&pci_ss_info_1002_5940_17af_2021,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_1002_5941[] = {
 	&pci_ss_info_1002_5941_1458_4019,
 	&pci_ss_info_1002_5941_174b_7c12,
@@ -47372,7 +50724,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1002_5955_103c_308b,
 	NULL
 };
-#define pci_ss_list_1002_5960 NULL
+static const pciSubsystemInfo *pci_ss_list_1002_5960[] = {
+	&pci_ss_info_1002_5960_17af_2020,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_1002_5961[] = {
 	&pci_ss_info_1002_5961_1002_2f72,
 	&pci_ss_info_1002_5961_1019_4c30,
@@ -47443,6 +50798,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1002_5d44[] = {
 	&pci_ss_info_1002_5d44_1458_4019,
 	&pci_ss_info_1002_5d44_1458_4032,
+	&pci_ss_info_1002_5d44_147b_6190,
 	&pci_ss_info_1002_5d44_174b_7c12,
 	&pci_ss_info_1002_5d44_1787_5965,
 	&pci_ss_info_1002_5d44_17af_2013,
@@ -47535,6 +50891,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1002_7166_1002_0323,
 	NULL
 };
+#define pci_ss_list_1002_716e NULL
 #define pci_ss_list_1002_7172 NULL
 #define pci_ss_list_1002_7173 NULL
 #define pci_ss_list_1002_7180 NULL
@@ -47563,11 +50920,13 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_71c6 NULL
 #define pci_ss_list_1002_71c7 NULL
 #define pci_ss_list_1002_71ce NULL
+#define pci_ss_list_1002_71d4 NULL
 #define pci_ss_list_1002_71d5 NULL
 #define pci_ss_list_1002_71d6 NULL
 #define pci_ss_list_1002_71de NULL
 #define pci_ss_list_1002_71e0 NULL
 #define pci_ss_list_1002_71e2 NULL
+#define pci_ss_list_1002_71e6 NULL
 #define pci_ss_list_1002_71e7 NULL
 #define pci_ss_list_1002_7210 NULL
 #define pci_ss_list_1002_7211 NULL
@@ -47605,6 +50964,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1002_7834 NULL
 #define pci_ss_list_1002_7835 NULL
 #define pci_ss_list_1002_7838 NULL
+#define pci_ss_list_1002_7919 NULL
 #define pci_ss_list_1002_791e NULL
 #define pci_ss_list_1002_791f NULL
 #define pci_ss_list_1002_793f NULL
@@ -47683,13 +51043,28 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_100b_0035 NULL
 #define pci_ss_list_100b_0500 NULL
 #define pci_ss_list_100b_0501 NULL
-#define pci_ss_list_100b_0502 NULL
-#define pci_ss_list_100b_0503 NULL
+static const pciSubsystemInfo *pci_ss_list_100b_0502[] = {
+	&pci_ss_info_100b_0502_100b_0502,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_100b_0503[] = {
+	&pci_ss_info_100b_0503_100b_0503,
+	NULL
+};
 #define pci_ss_list_100b_0504 NULL
 #define pci_ss_list_100b_0505 NULL
-#define pci_ss_list_100b_0510 NULL
-#define pci_ss_list_100b_0511 NULL
-#define pci_ss_list_100b_0515 NULL
+static const pciSubsystemInfo *pci_ss_list_100b_0510[] = {
+	&pci_ss_info_100b_0510_100b_0500,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_100b_0511[] = {
+	&pci_ss_info_100b_0511_100b_0501,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_100b_0515[] = {
+	&pci_ss_info_100b_0515_100b_0505,
+	NULL
+};
 #define pci_ss_list_100b_d001 NULL
 #define pci_ss_list_100c_3202 NULL
 #define pci_ss_list_100c_3205 NULL
@@ -47986,6 +51361,11 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_1014_01c1 NULL
 #define pci_ss_list_1014_01e6 NULL
+static const pciSubsystemInfo *pci_ss_list_1014_01ef[] = {
+	&pci_ss_info_1014_01ef_1734_102b,
+	&pci_ss_info_1014_01ef_1734_10f8,
+	NULL
+};
 #define pci_ss_list_1014_01ff NULL
 static const pciSubsystemInfo *pci_ss_list_1014_0219[] = {
 	&pci_ss_info_1014_0219_1014_021a,
@@ -48010,17 +51390,30 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1014_02bd[] = {
 	&pci_ss_info_1014_02bd_1014_02c1,
 	&pci_ss_info_1014_02bd_1014_02c2,
+	&pci_ss_info_1014_02bd_1014_0338,
 	NULL
 };
 #define pci_ss_list_1014_0302 NULL
 #define pci_ss_list_1014_0308 NULL
 #define pci_ss_list_1014_0314 NULL
+static const pciSubsystemInfo *pci_ss_list_1014_0339[] = {
+	&pci_ss_info_1014_0339_1014_0360,
+	NULL
+};
 #define pci_ss_list_1014_3022 NULL
 #define pci_ss_list_1014_4022 NULL
 #define pci_ss_list_1014_ffff NULL
 #endif
 #define pci_ss_list_1017_5343 NULL
 #define pci_ss_list_101a_0005 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_101a_1dc1[] = {
+	&pci_ss_info_101a_1dc1_101a_0019,
+	&pci_ss_info_101a_1dc1_101a_001f,
+	&pci_ss_info_101a_1dc1_101a_0ece,
+	NULL
+};
+#endif
 #define pci_ss_list_101c_0193 NULL
 #define pci_ss_list_101c_0196 NULL
 #define pci_ss_list_101c_0197 NULL
@@ -48066,6 +51459,16 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1022_1101 NULL
 #define pci_ss_list_1022_1102 NULL
 #define pci_ss_list_1022_1103 NULL
+#define pci_ss_list_1022_1200 NULL
+#define pci_ss_list_1022_1201 NULL
+#define pci_ss_list_1022_1202 NULL
+#define pci_ss_list_1022_1203 NULL
+#define pci_ss_list_1022_1204 NULL
+#define pci_ss_list_1022_1300 NULL
+#define pci_ss_list_1022_1301 NULL
+#define pci_ss_list_1022_1302 NULL
+#define pci_ss_list_1022_1303 NULL
+#define pci_ss_list_1022_1304 NULL
 static const pciSubsystemInfo *pci_ss_list_1022_2000[] = {
 	&pci_ss_info_1022_2000_1014_2000,
 	&pci_ss_info_1022_2000_1022_2000,
@@ -48367,9 +51770,9 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1028_0015[] = {
 	&pci_ss_info_1028_0015_1028_1f01,
 	&pci_ss_info_1028_0015_1028_1f02,
+	&pci_ss_info_1028_0015_1028_1f03,
 	NULL
 };
-#define pci_ss_list_1028_1f03 NULL
 #define pci_ss_list_102a_0000 NULL
 #define pci_ss_list_102a_0010 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -48551,6 +51954,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_102b_2538[] = {
 	&pci_ss_info_102b_2538_102b_08c7,
 	&pci_ss_info_102b_2538_102b_0907,
+	&pci_ss_info_102b_2538_102b_0947,
 	&pci_ss_info_102b_2538_102b_1047,
 	&pci_ss_info_102b_2538_102b_1087,
 	&pci_ss_info_102b_2538_102b_2538,
@@ -48700,7 +52104,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1039_0018 NULL
 #define pci_ss_list_1039_0180 NULL
 #define pci_ss_list_1039_0181 NULL
-#define pci_ss_list_1039_0182 NULL
+static const pciSubsystemInfo *pci_ss_list_1039_0182[] = {
+	&pci_ss_info_1039_0182_1734_1095,
+	NULL
+};
 #define pci_ss_list_1039_0186 NULL
 #define pci_ss_list_1039_0190 NULL
 #define pci_ss_list_1039_0191 NULL
@@ -48747,7 +52154,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1039_0746 NULL
 #define pci_ss_list_1039_0755 NULL
 #define pci_ss_list_1039_0760 NULL
-#define pci_ss_list_1039_0761 NULL
+static const pciSubsystemInfo *pci_ss_list_1039_0761[] = {
+	&pci_ss_info_1039_0761_1734_1099,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_1039_0900[] = {
 	&pci_ss_info_1039_0900_1019_0a14,
 	&pci_ss_info_1039_0900_1039_0900,
@@ -48778,6 +52188,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1039_5513_1039_5513,
 	&pci_ss_info_1039_5513_1043_8035,
 	&pci_ss_info_1039_5513_1462_7010,
+	&pci_ss_info_1039_5513_1734_1095,
 	NULL
 };
 #define pci_ss_list_1039_5517 NULL
@@ -48812,6 +52223,9 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_1039_6330[] = {
 	&pci_ss_info_1039_6330_1039_6330,
+	&pci_ss_info_1039_6330_1043_8113,
+	&pci_ss_info_1039_6330_1458_d000,
+	&pci_ss_info_1039_6330_1734_1099,
 	NULL
 };
 #define pci_ss_list_1039_6350 NULL
@@ -48821,11 +52235,13 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1039_7001_1039_7000,
 	&pci_ss_info_1039_7001_1462_5470,
 	&pci_ss_info_1039_7001_1462_7010,
+	&pci_ss_info_1039_7001_1734_1095,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1039_7002[] = {
 	&pci_ss_info_1039_7002_1462_7010,
 	&pci_ss_info_1039_7002_1509_7002,
+	&pci_ss_info_1039_7002_1734_1095,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1039_7007[] = {
@@ -48835,6 +52251,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1039_7012[] = {
 	&pci_ss_info_1039_7012_1462_7010,
 	&pci_ss_info_1039_7012_15bd_1001,
+	&pci_ss_info_1039_7012_1734_109f,
 	NULL
 };
 #define pci_ss_list_1039_7013 NULL
@@ -48849,6 +52266,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1039_7018_1025_000e,
 	&pci_ss_info_1039_7018_1025_0018,
 	&pci_ss_info_1039_7018_1039_7018,
+	&pci_ss_info_1039_7018_1043_1453,
 	&pci_ss_info_1039_7018_1043_800b,
 	&pci_ss_info_1039_7018_1054_7018,
 	&pci_ss_info_1039_7018_107d_5330,
@@ -48933,6 +52351,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_103c_12fa NULL
 #define pci_ss_list_103c_1302 NULL
 #define pci_ss_list_103c_1303 NULL
+#define pci_ss_list_103c_1361 NULL
 #define pci_ss_list_103c_2910 NULL
 #define pci_ss_list_103c_2925 NULL
 #define pci_ss_list_103c_3080 NULL
@@ -48942,7 +52361,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_3220_103c_3225,
 	NULL
 };
-#define pci_ss_list_103c_3230 NULL
+static const pciSubsystemInfo *pci_ss_list_103c_3230[] = {
+	&pci_ss_info_103c_3230_103c_3223,
+	&pci_ss_info_103c_3230_103c_3234,
+	&pci_ss_info_103c_3230_103c_3235,
+	&pci_ss_info_103c_3230_103c_3237,
+	NULL
+};
+#define pci_ss_list_103c_3238 NULL
 #define pci_ss_list_103c_4030 NULL
 #define pci_ss_list_103c_4031 NULL
 #define pci_ss_list_103c_4037 NULL
@@ -49396,6 +52822,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1050_9922 NULL
 #define pci_ss_list_1050_9970 NULL
 #endif
+#define pci_ss_list_1054_3011 NULL
+#define pci_ss_list_1054_3012 NULL
 #define pci_ss_list_1055_9130 NULL
 #define pci_ss_list_1055_9460 NULL
 #define pci_ss_list_1055_9462 NULL
@@ -49410,6 +52838,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1057_0012 NULL
 #define pci_ss_list_1057_0100 NULL
 #define pci_ss_list_1057_0431 NULL
+#define pci_ss_list_1057_1073 NULL
+#define pci_ss_list_1057_1219 NULL
 static const pciSubsystemInfo *pci_ss_list_1057_1801[] = {
 	&pci_ss_info_1057_1801_14fb_0101,
 	&pci_ss_info_1057_1801_14fb_0102,
@@ -49576,6 +53006,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_105a_8350 NULL
 static const pciSubsystemInfo *pci_ss_list_105a_8650[] = {
 	&pci_ss_info_105a_8650_105a_4600,
+	&pci_ss_info_105a_8650_105a_4610,
 	&pci_ss_info_105a_8650_105a_8601,
 	&pci_ss_info_105a_8650_105a_8602,
 	NULL
@@ -49583,6 +53014,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_105a_c350 NULL
 #define pci_ss_list_105a_e350 NULL
 #endif
+#define pci_ss_list_105b_0c4d NULL
 #define pci_ss_list_105d_2309 NULL
 static const pciSubsystemInfo *pci_ss_list_105d_2339[] = {
 	&pci_ss_info_105d_2339_105d_0000,
@@ -49937,13 +53369,21 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_108e_1103 NULL
 #define pci_ss_list_108e_1648 NULL
 #define pci_ss_list_108e_2bad NULL
-#define pci_ss_list_108e_5000 NULL
+static const pciSubsystemInfo *pci_ss_list_108e_5000[] = {
+	&pci_ss_info_108e_5000_108e_5000,
+	NULL
+};
 #define pci_ss_list_108e_5043 NULL
+#define pci_ss_list_108e_676e NULL
+#define pci_ss_list_108e_7063 NULL
 #define pci_ss_list_108e_8000 NULL
 #define pci_ss_list_108e_8001 NULL
 #define pci_ss_list_108e_8002 NULL
 #define pci_ss_list_108e_a000 NULL
-#define pci_ss_list_108e_a001 NULL
+static const pciSubsystemInfo *pci_ss_list_108e_a001[] = {
+	&pci_ss_info_108e_a001_108e_a001,
+	NULL
+};
 #define pci_ss_list_108e_a801 NULL
 #define pci_ss_list_108e_abba NULL
 #define pci_ss_list_1091_0020 NULL
@@ -50269,16 +53709,20 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10b5_1147 NULL
 #define pci_ss_list_10b5_2540 NULL
 #define pci_ss_list_10b5_2724 NULL
+#define pci_ss_list_10b5_6520 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_10b5_6540[] = {
+	&pci_ss_info_10b5_6540_1775_1100,
 	&pci_ss_info_10b5_6540_4c53_10e0,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10b5_6541[] = {
+	&pci_ss_info_10b5_6541_1775_1100,
 	&pci_ss_info_10b5_6541_4c53_10e0,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10b5_6542[] = {
+	&pci_ss_info_10b5_6542_1775_1100,
 	&pci_ss_info_10b5_6542_4c53_10e0,
 	NULL
 };
@@ -50354,6 +53798,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10b5_9054_12c7_4001,
 	&pci_ss_info_10b5_9054_12d9_0002,
 	&pci_ss_info_10b5_9054_14b4_d100,
+	&pci_ss_info_10b5_9054_14b4_d114,
 	&pci_ss_info_10b5_9054_16df_0011,
 	&pci_ss_info_10b5_9054_16df_0012,
 	&pci_ss_info_10b5_9054_16df_0013,
@@ -50364,6 +53809,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_10b5_9056[] = {
 	&pci_ss_info_10b5_9056_10b5_2979,
+	&pci_ss_info_10b5_9056_14b4_d140,
 	NULL
 };
 #define pci_ss_list_10b5_9060 NULL
@@ -50443,6 +53889,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10b7_0910 NULL
 #define pci_ss_list_10b7_1006 NULL
 static const pciSubsystemInfo *pci_ss_list_10b7_1007[] = {
+	&pci_ss_info_10b7_1007_10b7_615b,
 	&pci_ss_info_10b7_1007_10b7_615c,
 	NULL
 };
@@ -50563,6 +54010,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_10b7_9200[] = {
 	&pci_ss_info_10b7_9200_1028_0095,
 	&pci_ss_info_10b7_9200_1028_0097,
+	&pci_ss_info_10b7_9200_1028_00b4,
 	&pci_ss_info_10b7_9200_1028_00fe,
 	&pci_ss_info_10b7_9200_1028_012a,
 	&pci_ss_info_10b7_9200_10b7_1000,
@@ -51004,6 +54452,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0054[] = {
+	&pci_ss_info_10de_0054_1043_815a,
 	&pci_ss_info_10de_0054_1458_b003,
 	&pci_ss_info_10de_0054_1462_7100,
 	&pci_ss_info_10de_0054_147b_1c1a,
@@ -51046,6 +54495,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_005c NULL
 #define pci_ss_list_10de_005d NULL
 static const pciSubsystemInfo *pci_ss_list_10de_005e[] = {
+	&pci_ss_info_10de_005e_1043_815a,
 	&pci_ss_info_10de_005e_10f1_2891,
 	&pci_ss_info_10de_005e_1458_5000,
 	&pci_ss_info_10de_005e_1462_7100,
@@ -51126,6 +54576,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0091 NULL
 #define pci_ss_list_10de_0092 NULL
 #define pci_ss_list_10de_0093 NULL
+#define pci_ss_list_10de_0095 NULL
 #define pci_ss_list_10de_0098 NULL
 #define pci_ss_list_10de_0099 NULL
 #define pci_ss_list_10de_009d NULL
@@ -51158,34 +54609,40 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_00da NULL
 #define pci_ss_list_10de_00dd NULL
 static const pciSubsystemInfo *pci_ss_list_10de_00df[] = {
+	&pci_ss_info_10de_00df_1043_80a7,
 	&pci_ss_info_10de_00df_105b_0c43,
 	&pci_ss_info_10de_00df_147b_1c0b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_00e0[] = {
+	&pci_ss_info_10de_00e0_1043_813f,
 	&pci_ss_info_10de_00e0_10de_0c11,
 	&pci_ss_info_10de_00e0_1462_7030,
 	&pci_ss_info_10de_00e0_147b_1c0b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_00e1[] = {
+	&pci_ss_info_10de_00e1_1043_813f,
 	&pci_ss_info_10de_00e1_1462_7030,
 	&pci_ss_info_10de_00e1_147b_1c0b,
 	NULL
 };
 #define pci_ss_list_10de_00e2 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_00e3[] = {
+	&pci_ss_info_10de_00e3_1043_813f,
 	&pci_ss_info_10de_00e3_105b_0c43,
 	&pci_ss_info_10de_00e3_147b_1c0b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_00e4[] = {
+	&pci_ss_info_10de_00e4_1043_813f,
 	&pci_ss_info_10de_00e4_105b_0c43,
 	&pci_ss_info_10de_00e4_1462_7030,
 	&pci_ss_info_10de_00e4_147b_1c0b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_00e5[] = {
+	&pci_ss_info_10de_00e5_1043_813f,
 	&pci_ss_info_10de_00e5_105b_0c43,
 	&pci_ss_info_10de_00e5_1462_7030,
 	&pci_ss_info_10de_00e5_147b_1c0b,
@@ -51193,19 +54650,23 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_10de_00e6 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_00e7[] = {
+	&pci_ss_info_10de_00e7_1043_813f,
 	&pci_ss_info_10de_00e7_105b_0c43,
 	&pci_ss_info_10de_00e7_1462_7030,
 	&pci_ss_info_10de_00e7_147b_1c0b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_00e8[] = {
+	&pci_ss_info_10de_00e8_1043_813f,
 	&pci_ss_info_10de_00e8_105b_0c43,
 	&pci_ss_info_10de_00e8_1462_7030,
 	&pci_ss_info_10de_00e8_147b_1c0b,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_00ea[] = {
+	&pci_ss_info_10de_00ea_1043_819d,
 	&pci_ss_info_10de_00ea_105b_0c43,
+	&pci_ss_info_10de_00ea_1462_b010,
 	&pci_ss_info_10de_00ea_147b_1c0b,
 	NULL
 };
@@ -51214,6 +54675,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_00f0 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_00f1[] = {
 	&pci_ss_info_10de_00f1_1043_81a6,
+	&pci_ss_info_10de_00f1_1458_3150,
 	&pci_ss_info_10de_00f1_1682_2119,
 	NULL
 };
@@ -51271,6 +54733,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0110[] = {
 	&pci_ss_info_10de_0110_1043_4015,
+	&pci_ss_info_10de_0110_1043_4021,
 	&pci_ss_info_10de_0110_1043_4031,
 	&pci_ss_info_10de_0110_1048_0c60,
 	&pci_ss_info_10de_0110_1048_0c61,
@@ -51290,10 +54753,12 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0113 NULL
 #define pci_ss_list_10de_0140 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0141[] = {
+	&pci_ss_info_10de_0141_1043_81b0,
 	&pci_ss_info_10de_0141_1458_3124,
 	NULL
 };
 #define pci_ss_list_10de_0142 NULL
+#define pci_ss_list_10de_0143 NULL
 #define pci_ss_list_10de_0144 NULL
 #define pci_ss_list_10de_0145 NULL
 #define pci_ss_list_10de_0146 NULL
@@ -51335,6 +54800,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0167 NULL
 #define pci_ss_list_10de_0168 NULL
 #define pci_ss_list_10de_0169 NULL
+#define pci_ss_list_10de_016a NULL
 #define pci_ss_list_10de_0170 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0171[] = {
 	&pci_ss_info_10de_0171_10b0_0002,
@@ -51375,6 +54841,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_10de_0182 NULL
 #define pci_ss_list_10de_0183 NULL
+#define pci_ss_list_10de_0184 NULL
 #define pci_ss_list_10de_0185 NULL
 #define pci_ss_list_10de_0186 NULL
 #define pci_ss_list_10de_0187 NULL
@@ -51383,6 +54850,11 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_018b NULL
 #define pci_ss_list_10de_018c NULL
 #define pci_ss_list_10de_018d NULL
+#define pci_ss_list_10de_0191 NULL
+#define pci_ss_list_10de_0193 NULL
+#define pci_ss_list_10de_0194 NULL
+#define pci_ss_list_10de_019d NULL
+#define pci_ss_list_10de_019e NULL
 #define pci_ss_list_10de_01a0 NULL
 #define pci_ss_list_10de_01a4 NULL
 #define pci_ss_list_10de_01ab NULL
@@ -51402,10 +54874,13 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10de_01d1_1462_0345,
 	NULL
 };
+#define pci_ss_list_10de_01d3 NULL
 #define pci_ss_list_10de_01d6 NULL
 #define pci_ss_list_10de_01d7 NULL
 #define pci_ss_list_10de_01d8 NULL
 #define pci_ss_list_10de_01da NULL
+#define pci_ss_list_10de_01dc NULL
+#define pci_ss_list_10de_01dd NULL
 static const pciSubsystemInfo *pci_ss_list_10de_01de[] = {
 	&pci_ss_info_10de_01de_10de_01dc,
 	NULL
@@ -51460,18 +54935,29 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0212 NULL
 #define pci_ss_list_10de_0215 NULL
 #define pci_ss_list_10de_0218 NULL
-#define pci_ss_list_10de_0221 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0221[] = {
+	&pci_ss_info_10de_0221_3842_a341,
+	NULL
+};
+#define pci_ss_list_10de_0222 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0240[] = {
+	&pci_ss_info_10de_0240_1043_81cd,
 	&pci_ss_info_10de_0240_1462_7207,
 	NULL
 };
 #define pci_ss_list_10de_0241 NULL
 #define pci_ss_list_10de_0242 NULL
 #define pci_ss_list_10de_0243 NULL
-#define pci_ss_list_10de_0244 NULL
-#define pci_ss_list_10de_0245 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0244[] = {
+	&pci_ss_info_10de_0244_10de_0244,
+	NULL
+};
+#define pci_ss_list_10de_0245 NULL
 #define pci_ss_list_10de_0246 NULL
-#define pci_ss_list_10de_0247 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0247[] = {
+	&pci_ss_info_10de_0247_1043_1382,
+	NULL
+};
 #define pci_ss_list_10de_0248 NULL
 #define pci_ss_list_10de_0249 NULL
 #define pci_ss_list_10de_024a NULL
@@ -51495,6 +54981,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0259 NULL
 #define pci_ss_list_10de_025b NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0260[] = {
+	&pci_ss_info_10de_0260_1043_81bc,
+	&pci_ss_info_10de_0260_1458_5001,
 	&pci_ss_info_10de_0260_1462_7207,
 	NULL
 };
@@ -51502,52 +54990,66 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0262 NULL
 #define pci_ss_list_10de_0263 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0264[] = {
+	&pci_ss_info_10de_0264_1043_81bc,
 	&pci_ss_info_10de_0264_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0265[] = {
+	&pci_ss_info_10de_0265_1043_81bc,
 	&pci_ss_info_10de_0265_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0266[] = {
+	&pci_ss_info_10de_0266_1043_81bc,
 	&pci_ss_info_10de_0266_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_0267[] = {
+	&pci_ss_info_10de_0267_1043_81bc,
 	&pci_ss_info_10de_0267_1462_7207,
 	NULL
 };
 #define pci_ss_list_10de_0268 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0269[] = {
+	&pci_ss_info_10de_0269_1043_8141,
 	&pci_ss_info_10de_0269_1462_7207,
 	NULL
 };
 #define pci_ss_list_10de_026a NULL
 #define pci_ss_list_10de_026b NULL
 static const pciSubsystemInfo *pci_ss_list_10de_026c[] = {
+	&pci_ss_info_10de_026c_10de_cb84,
 	&pci_ss_info_10de_026c_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_026d[] = {
+	&pci_ss_info_10de_026d_1043_81bc,
 	&pci_ss_info_10de_026d_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_026e[] = {
+	&pci_ss_info_10de_026e_1043_81bc,
 	&pci_ss_info_10de_026e_1462_7207,
 	NULL
 };
 #define pci_ss_list_10de_026f NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0270[] = {
+	&pci_ss_info_10de_0270_1043_81bc,
+	&pci_ss_info_10de_0270_1458_5001,
 	&pci_ss_info_10de_0270_1462_7207,
 	NULL
 };
 #define pci_ss_list_10de_0271 NULL
 #define pci_ss_list_10de_0272 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_027e[] = {
+	&pci_ss_info_10de_027e_1043_81cd,
+	&pci_ss_info_10de_027e_1458_5000,
 	&pci_ss_info_10de_027e_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_027f[] = {
+	&pci_ss_info_10de_027f_1043_81cd,
+	&pci_ss_info_10de_027f_1458_5000,
 	&pci_ss_info_10de_027f_1462_7207,
 	NULL
 };
@@ -51559,8 +55061,18 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0289 NULL
 #define pci_ss_list_10de_028c NULL
 #define pci_ss_list_10de_0290 NULL
-#define pci_ss_list_10de_0291 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0291[] = {
+	&pci_ss_info_10de_0291_10de_042b,
+	NULL
+};
 #define pci_ss_list_10de_0292 NULL
+#define pci_ss_list_10de_0293 NULL
+#define pci_ss_list_10de_0294 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0295[] = {
+	&pci_ss_info_10de_0295_107d_2a68,
+	NULL
+};
+#define pci_ss_list_10de_0297 NULL
 #define pci_ss_list_10de_0298 NULL
 #define pci_ss_list_10de_0299 NULL
 #define pci_ss_list_10de_029a NULL
@@ -51570,12 +55082,18 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_029e NULL
 #define pci_ss_list_10de_029f NULL
 #define pci_ss_list_10de_02a0 NULL
+#define pci_ss_list_10de_02e0 NULL
 #define pci_ss_list_10de_02e1 NULL
+#define pci_ss_list_10de_02e2 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_02f0[] = {
+	&pci_ss_info_10de_02f0_1043_81cd,
 	&pci_ss_info_10de_02f0_1462_7207,
 	NULL
 };
-#define pci_ss_list_10de_02f1 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_02f1[] = {
+	&pci_ss_info_10de_02f1_1458_5000,
+	NULL
+};
 #define pci_ss_list_10de_02f2 NULL
 #define pci_ss_list_10de_02f3 NULL
 #define pci_ss_list_10de_02f4 NULL
@@ -51583,14 +55101,20 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_02f6 NULL
 #define pci_ss_list_10de_02f7 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_02f8[] = {
+	&pci_ss_info_10de_02f8_1043_81cd,
+	&pci_ss_info_10de_02f8_1458_5000,
 	&pci_ss_info_10de_02f8_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_02f9[] = {
+	&pci_ss_info_10de_02f9_1043_81cd,
+	&pci_ss_info_10de_02f9_1458_5000,
 	&pci_ss_info_10de_02f9_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_02fa[] = {
+	&pci_ss_info_10de_02fa_1043_81cd,
+	&pci_ss_info_10de_02fa_1458_5000,
 	&pci_ss_info_10de_02fa_1462_7207,
 	NULL
 };
@@ -51598,10 +55122,14 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_02fc NULL
 #define pci_ss_list_10de_02fd NULL
 static const pciSubsystemInfo *pci_ss_list_10de_02fe[] = {
+	&pci_ss_info_10de_02fe_1043_81cd,
+	&pci_ss_info_10de_02fe_1458_5000,
 	&pci_ss_info_10de_02fe_1462_7207,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_10de_02ff[] = {
+	&pci_ss_info_10de_02ff_1043_81cd,
+	&pci_ss_info_10de_02ff_1458_5000,
 	&pci_ss_info_10de_02ff_1462_7207,
 	NULL
 };
@@ -51628,6 +55156,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0320 NULL
 #define pci_ss_list_10de_0321 NULL
 static const pciSubsystemInfo *pci_ss_list_10de_0322[] = {
+	&pci_ss_info_10de_0322_1043_02fb,
 	&pci_ss_info_10de_0322_1462_9171,
 	&pci_ss_info_10de_0322_1462_9360,
 	NULL
@@ -51658,7 +55187,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0334 NULL
 #define pci_ss_list_10de_0338 NULL
 #define pci_ss_list_10de_033f NULL
-#define pci_ss_list_10de_0341 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0341[] = {
+	&pci_ss_info_10de_0341_1462_9380,
+	NULL
+};
 #define pci_ss_list_10de_0342 NULL
 #define pci_ss_list_10de_0343 NULL
 #define pci_ss_list_10de_0344 NULL
@@ -51698,15 +55230,30 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_0377 NULL
 #define pci_ss_list_10de_0378 NULL
 #define pci_ss_list_10de_037a NULL
+#define pci_ss_list_10de_037c NULL
 #define pci_ss_list_10de_037e NULL
 #define pci_ss_list_10de_037f NULL
-#define pci_ss_list_10de_0391 NULL
+#define pci_ss_list_10de_0390 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0391[] = {
+	&pci_ss_info_10de_0391_1458_3427,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_10de_0392[] = {
 	&pci_ss_info_10de_0392_1462_0622,
 	NULL
 };
 #define pci_ss_list_10de_0393 NULL
-#define pci_ss_list_10de_0398 NULL
+#define pci_ss_list_10de_0394 NULL
+#define pci_ss_list_10de_0395 NULL
+#define pci_ss_list_10de_0397 NULL
+static const pciSubsystemInfo *pci_ss_list_10de_0398[] = {
+	&pci_ss_info_10de_0398_1025_006c,
+	NULL
+};
+#define pci_ss_list_10de_0399 NULL
+#define pci_ss_list_10de_039a NULL
+#define pci_ss_list_10de_039b NULL
+#define pci_ss_list_10de_039c NULL
 #define pci_ss_list_10de_039e NULL
 #define pci_ss_list_10de_03a0 NULL
 #define pci_ss_list_10de_03a1 NULL
@@ -51763,6 +55310,20 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_03f5 NULL
 #define pci_ss_list_10de_03f6 NULL
 #define pci_ss_list_10de_03f7 NULL
+#define pci_ss_list_10de_0400 NULL
+#define pci_ss_list_10de_0402 NULL
+#define pci_ss_list_10de_0407 NULL
+#define pci_ss_list_10de_040b NULL
+#define pci_ss_list_10de_0421 NULL
+#define pci_ss_list_10de_0422 NULL
+#define pci_ss_list_10de_0423 NULL
+#define pci_ss_list_10de_0425 NULL
+#define pci_ss_list_10de_0426 NULL
+#define pci_ss_list_10de_0427 NULL
+#define pci_ss_list_10de_0428 NULL
+#define pci_ss_list_10de_0429 NULL
+#define pci_ss_list_10de_042a NULL
+#define pci_ss_list_10de_042b NULL
 #define pci_ss_list_10de_0440 NULL
 #define pci_ss_list_10de_0441 NULL
 #define pci_ss_list_10de_0442 NULL
@@ -51794,7 +55355,12 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10de_045d NULL
 #define pci_ss_list_10de_045e NULL
 #define pci_ss_list_10de_045f NULL
+#define pci_ss_list_10de_055c NULL
+#define pci_ss_list_10de_055d NULL
+#define pci_ss_list_10de_c615 NULL
 #define pci_ss_list_10df_1ae5 NULL
+#define pci_ss_list_10df_f011 NULL
+#define pci_ss_list_10df_f015 NULL
 #define pci_ss_list_10df_f085 NULL
 #define pci_ss_list_10df_f095 NULL
 #define pci_ss_list_10df_f098 NULL
@@ -51806,6 +55372,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10df_f0e1 NULL
 #define pci_ss_list_10df_f0e5 NULL
 #define pci_ss_list_10df_f0f5 NULL
+#define pci_ss_list_10df_f100 NULL
 #define pci_ss_list_10df_f700 NULL
 #define pci_ss_list_10df_f701 NULL
 #define pci_ss_list_10df_f800 NULL
@@ -51820,6 +55387,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10df_fc00 NULL
 #define pci_ss_list_10df_fc10 NULL
 #define pci_ss_list_10df_fc20 NULL
+#define pci_ss_list_10df_fc40 NULL
 #define pci_ss_list_10df_fd00 NULL
 #define pci_ss_list_10df_fe00 NULL
 #define pci_ss_list_10df_ff00 NULL
@@ -51839,12 +55407,17 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_10e3_0000 NULL
 #define pci_ss_list_10e3_0108 NULL
-#define pci_ss_list_10e3_0148 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_10e3_0148[] = {
+	&pci_ss_info_10e3_0148_1775_1100,
+	NULL
+};
 #define pci_ss_list_10e3_0860 NULL
 #define pci_ss_list_10e3_0862 NULL
 #define pci_ss_list_10e3_8260 NULL
 #define pci_ss_list_10e3_8261 NULL
 #define pci_ss_list_10e3_a108 NULL
+#endif
 #define pci_ss_list_10e4_8029 NULL
 #define pci_ss_list_10e8_1072 NULL
 #define pci_ss_list_10e8_2011 NULL
@@ -51859,10 +55432,12 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10e8_80d7 NULL
 #define pci_ss_list_10e8_80d9 NULL
 #define pci_ss_list_10e8_80da NULL
+#define pci_ss_list_10e8_80fc NULL
 #define pci_ss_list_10e8_811a NULL
 #define pci_ss_list_10e8_814c NULL
 #define pci_ss_list_10e8_8170 NULL
 #define pci_ss_list_10e8_81e6 NULL
+#define pci_ss_list_10e8_828d NULL
 #define pci_ss_list_10e8_8291 NULL
 #define pci_ss_list_10e8_82c4 NULL
 #define pci_ss_list_10e8_82c5 NULL
@@ -51871,6 +55446,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10e8_82ca NULL
 #define pci_ss_list_10e8_82db NULL
 #define pci_ss_list_10e8_82e2 NULL
+#define pci_ss_list_10e8_8406 NULL
+#define pci_ss_list_10e8_8407 NULL
 #define pci_ss_list_10e8_8851 NULL
 #define pci_ss_list_10ea_1680 NULL
 #define pci_ss_list_10ea_1682 NULL
@@ -51884,11 +55461,18 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10eb_0101 NULL
 #define pci_ss_list_10eb_8111 NULL
 #define pci_ss_list_10ec_0139 NULL
+#define pci_ss_list_10ec_0260 NULL
+#define pci_ss_list_10ec_0261 NULL
+#define pci_ss_list_10ec_0280 NULL
+#define pci_ss_list_10ec_0861 NULL
+#define pci_ss_list_10ec_0862 NULL
+#define pci_ss_list_10ec_0880 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_10ec_0883[] = {
 	&pci_ss_info_10ec_0883_1025_1605,
 	NULL
 };
+#define pci_ss_list_10ec_0888 NULL
 static const pciSubsystemInfo *pci_ss_list_10ec_8029[] = {
 	&pci_ss_info_10ec_8029_10b8_2011,
 	&pci_ss_info_10ec_8029_10ec_8029,
@@ -51912,10 +55496,12 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10ec_8139_1025_8920,
 	&pci_ss_info_10ec_8139_1025_8921,
 	&pci_ss_info_10ec_8139_103c_006a,
+	&pci_ss_info_10ec_8139_1043_1045,
 	&pci_ss_info_10ec_8139_1043_8109,
 	&pci_ss_info_10ec_8139_1071_8160,
 	&pci_ss_info_10ec_8139_10bd_0320,
 	&pci_ss_info_10ec_8139_10ec_8139,
+	&pci_ss_info_10ec_8139_10f7_8338,
 	&pci_ss_info_10ec_8139_1113_ec01,
 	&pci_ss_info_10ec_8139_1186_1300,
 	&pci_ss_info_10ec_8139_1186_1320,
@@ -51926,6 +55512,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10ec_8139_1429_d010,
 	&pci_ss_info_10ec_8139_1432_9130,
 	&pci_ss_info_10ec_8139_1436_8139,
+	&pci_ss_info_10ec_8139_144d_c00c,
 	&pci_ss_info_10ec_8139_1458_e000,
 	&pci_ss_info_10ec_8139_1462_788c,
 	&pci_ss_info_10ec_8139_146c_1439,
@@ -51934,6 +55521,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10ec_8139_149c_139a,
 	&pci_ss_info_10ec_8139_149c_8139,
 	&pci_ss_info_10ec_8139_14cb_0200,
+	&pci_ss_info_10ec_8139_1565_2300,
 	&pci_ss_info_10ec_8139_1695_9001,
 	&pci_ss_info_10ec_8139_1799_5000,
 	&pci_ss_info_10ec_8139_1904_8139,
@@ -51943,14 +55531,21 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10ec_8139_a0a0_0007,
 	NULL
 };
-#define pci_ss_list_10ec_8167 NULL
+static const pciSubsystemInfo *pci_ss_list_10ec_8167[] = {
+	&pci_ss_info_10ec_8167_1462_235c,
+	NULL
+};
 #define pci_ss_list_10ec_8168 NULL
 static const pciSubsystemInfo *pci_ss_list_10ec_8169[] = {
 	&pci_ss_info_10ec_8169_1025_0079,
 	&pci_ss_info_10ec_8169_1259_c107,
 	&pci_ss_info_10ec_8169_1371_434e,
 	&pci_ss_info_10ec_8169_1458_e000,
+	&pci_ss_info_10ec_8169_1462_030c,
 	&pci_ss_info_10ec_8169_1462_702c,
+	&pci_ss_info_10ec_8169_1462_7094,
+	&pci_ss_info_10ec_8169_1734_1091,
+	&pci_ss_info_10ec_8169_a0a0_0449,
 	NULL
 };
 #define pci_ss_list_10ec_8180 NULL
@@ -51970,6 +55565,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_10ee_3fc4 NULL
 #define pci_ss_list_10ee_3fc5 NULL
 #define pci_ss_list_10ee_3fc6 NULL
+#define pci_ss_list_10ee_8380 NULL
 #define pci_ss_list_10ee_8381 NULL
 #define pci_ss_list_10ee_d154 NULL
 #define pci_ss_list_10ef_8154 NULL
@@ -52013,8 +55609,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1102_0004_1102_0051,
 	&pci_ss_info_1102_0004_1102_0053,
 	&pci_ss_info_1102_0004_1102_0058,
+	&pci_ss_info_1102_0004_1102_1002,
 	&pci_ss_info_1102_0004_1102_1007,
 	&pci_ss_info_1102_0004_1102_2002,
+	&pci_ss_info_1102_0004_1102_4001,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1102_0005[] = {
@@ -52077,8 +55675,10 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1103_0004[] = {
 	&pci_ss_info_1103_0004_1103_0001,
+	&pci_ss_info_1103_0004_1103_0003,
 	&pci_ss_info_1103_0004_1103_0004,
 	&pci_ss_info_1103_0004_1103_0005,
+	&pci_ss_info_1103_0004_1103_0006,
 	NULL
 };
 #define pci_ss_list_1103_0005 NULL
@@ -52086,6 +55686,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1103_0007 NULL
 #define pci_ss_list_1103_0008 NULL
 #define pci_ss_list_1103_0009 NULL
+#define pci_ss_list_1103_2340 NULL
 #endif
 #define pci_ss_list_1105_1105 NULL
 #define pci_ss_list_1105_8300 NULL
@@ -52107,6 +55708,7 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_1106_0102 NULL
 #define pci_ss_list_1106_0130 NULL
+#define pci_ss_list_1106_0198 NULL
 #define pci_ss_list_1106_0204 NULL
 #define pci_ss_list_1106_0208 NULL
 #define pci_ss_list_1106_0238 NULL
@@ -52136,7 +55738,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1106_0336 NULL
 #define pci_ss_list_1106_0340 NULL
 #define pci_ss_list_1106_0351 NULL
-#define pci_ss_list_1106_0364 NULL
+static const pciSubsystemInfo *pci_ss_list_1106_0364[] = {
+	&pci_ss_info_1106_0364_1043_81ce,
+	NULL
+};
 #define pci_ss_list_1106_0391 NULL
 #define pci_ss_list_1106_0501 NULL
 #define pci_ss_list_1106_0505 NULL
@@ -52153,6 +55758,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_0571_1297_f641,
 	&pci_ss_info_1106_0571_1458_5002,
 	&pci_ss_info_1106_0571_1462_7020,
+	&pci_ss_info_1106_0571_1462_7094,
+	&pci_ss_info_1106_0571_1462_7181,
 	&pci_ss_info_1106_0571_147b_1407,
 	&pci_ss_info_1106_0571_1849_0571,
 	NULL
@@ -52222,6 +55829,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1106_1364 NULL
 #define pci_ss_list_1106_1571 NULL
 #define pci_ss_list_1106_1595 NULL
+#define pci_ss_list_1106_2106 NULL
 #define pci_ss_list_1106_2204 NULL
 #define pci_ss_list_1106_2208 NULL
 #define pci_ss_list_1106_2238 NULL
@@ -52257,6 +55865,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_3038_1179_0001,
 	&pci_ss_info_1106_3038_1458_5004,
 	&pci_ss_info_1106_3038_1462_7020,
+	&pci_ss_info_1106_3038_1462_7094,
+	&pci_ss_info_1106_3038_1462_7181,
 	&pci_ss_info_1106_3038_147b_1407,
 	&pci_ss_info_1106_3038_182d_201d,
 	&pci_ss_info_1106_3038_1849_3038,
@@ -52270,6 +55880,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1106_3044[] = {
+	&pci_ss_info_1106_3044_0010_0001,
 	&pci_ss_info_1106_3044_1025_005a,
 	&pci_ss_info_1106_3044_1043_808a,
 	&pci_ss_info_1106_3044_1458_1000,
@@ -52310,18 +55921,23 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_3059_1043_80a1,
 	&pci_ss_info_1106_3059_1043_80b0,
 	&pci_ss_info_1106_3059_1043_812a,
+	&pci_ss_info_1106_3059_10ec_8168,
 	&pci_ss_info_1106_3059_1106_3059,
 	&pci_ss_info_1106_3059_1106_4161,
 	&pci_ss_info_1106_3059_1106_4170,
 	&pci_ss_info_1106_3059_1106_4552,
 	&pci_ss_info_1106_3059_1297_c160,
+	&pci_ss_info_1106_3059_1413_147b,
 	&pci_ss_info_1106_3059_1458_a002,
 	&pci_ss_info_1106_3059_1462_0080,
 	&pci_ss_info_1106_3059_1462_3800,
+	&pci_ss_info_1106_3059_1462_7181,
 	&pci_ss_info_1106_3059_147b_1407,
+	&pci_ss_info_1106_3059_1849_0850,
 	&pci_ss_info_1106_3059_1849_9761,
 	&pci_ss_info_1106_3059_4005_4710,
 	&pci_ss_info_1106_3059_a0a0_01b6,
+	&pci_ss_info_1106_3059_a0a0_0342,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1106_3065[] = {
@@ -52330,6 +55946,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_3065_1186_1400,
 	&pci_ss_info_1106_3065_1186_1401,
 	&pci_ss_info_1106_3065_13b9_1421,
+	&pci_ss_info_1106_3065_1462_7181,
 	&pci_ss_info_1106_3065_147b_1c09,
 	&pci_ss_info_1106_3065_1695_3005,
 	&pci_ss_info_1106_3065_1695_300c,
@@ -52362,6 +55979,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_3104_1297_f641,
 	&pci_ss_info_1106_3104_1458_5004,
 	&pci_ss_info_1106_3104_1462_7020,
+	&pci_ss_info_1106_3104_1462_7094,
+	&pci_ss_info_1106_3104_1462_7181,
 	&pci_ss_info_1106_3104_147b_1407,
 	&pci_ss_info_1106_3104_182d_201d,
 	&pci_ss_info_1106_3104_1849_3104,
@@ -52394,12 +56013,15 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_3149_1043_80ed,
 	&pci_ss_info_1106_3149_1458_b003,
 	&pci_ss_info_1106_3149_1462_7020,
+	&pci_ss_info_1106_3149_1462_7094,
 	&pci_ss_info_1106_3149_147b_1407,
 	&pci_ss_info_1106_3149_147b_1408,
 	&pci_ss_info_1106_3149_1849_3149,
+	&pci_ss_info_1106_3149_a0a0_04ad,
 	NULL
 };
 #define pci_ss_list_1106_3156 NULL
+#define pci_ss_list_1106_3157 NULL
 static const pciSubsystemInfo *pci_ss_list_1106_3164[] = {
 	&pci_ss_info_1106_3164_1043_80f4,
 	&pci_ss_info_1106_3164_1462_7028,
@@ -52443,6 +56065,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1106_3227_1849_3227,
 	NULL
 };
+#define pci_ss_list_1106_3230 NULL
 #define pci_ss_list_1106_3238 NULL
 #define pci_ss_list_1106_3249 NULL
 #define pci_ss_list_1106_324a NULL
@@ -52450,6 +56073,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1106_324e NULL
 #define pci_ss_list_1106_3258 NULL
 #define pci_ss_list_1106_3259 NULL
+#define pci_ss_list_1106_3260 NULL
 #define pci_ss_list_1106_3269 NULL
 #define pci_ss_list_1106_3282 NULL
 #define pci_ss_list_1106_3287 NULL
@@ -52461,10 +56085,13 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1106_3336 NULL
 #define pci_ss_list_1106_3337 NULL
 #define pci_ss_list_1106_3340 NULL
+#define pci_ss_list_1106_3343 NULL
 #define pci_ss_list_1106_3344 NULL
 #define pci_ss_list_1106_3349 NULL
 #define pci_ss_list_1106_3351 NULL
 #define pci_ss_list_1106_3364 NULL
+#define pci_ss_list_1106_3371 NULL
+#define pci_ss_list_1106_3372 NULL
 #define pci_ss_list_1106_337a NULL
 #define pci_ss_list_1106_337b NULL
 #define pci_ss_list_1106_4149 NULL
@@ -52491,13 +56118,16 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1106_5238 NULL
 #define pci_ss_list_1106_5290 NULL
 #define pci_ss_list_1106_5308 NULL
+#define pci_ss_list_1106_5324 NULL
 #define pci_ss_list_1106_5327 NULL
 #define pci_ss_list_1106_5336 NULL
 #define pci_ss_list_1106_5340 NULL
 #define pci_ss_list_1106_5351 NULL
 #define pci_ss_list_1106_5364 NULL
 #define pci_ss_list_1106_6100 NULL
+#define pci_ss_list_1106_6287 NULL
 #define pci_ss_list_1106_6327 NULL
+#define pci_ss_list_1106_6364 NULL
 #define pci_ss_list_1106_7204 NULL
 static const pciSubsystemInfo *pci_ss_list_1106_7205[] = {
 	&pci_ss_info_1106_7205_1458_d000,
@@ -52652,10 +56282,6 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1119_000b NULL
 #define pci_ss_list_1119_000c NULL
 #define pci_ss_list_1119_000d NULL
-#define pci_ss_list_1119_0010 NULL
-#define pci_ss_list_1119_0011 NULL
-#define pci_ss_list_1119_0012 NULL
-#define pci_ss_list_1119_0013 NULL
 #define pci_ss_list_1119_0100 NULL
 #define pci_ss_list_1119_0101 NULL
 #define pci_ss_list_1119_0102 NULL
@@ -52712,6 +56338,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1119_0261 NULL
 #define pci_ss_list_1119_02ff NULL
 #define pci_ss_list_1119_0300 NULL
+#define pci_ss_list_1119_0301 NULL
 #define pci_ss_list_111a_0000 NULL
 #define pci_ss_list_111a_0002 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -52757,11 +56384,17 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_112f_0000 NULL
 #define pci_ss_list_112f_0001 NULL
 #define pci_ss_list_112f_0008 NULL
-#define pci_ss_list_1131_1561 NULL
-#define pci_ss_list_1131_1562 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_1131_1561[] = {
+	&pci_ss_info_1131_1561_1775_c200,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_1131_1562[] = {
+	&pci_ss_info_1131_1562_1775_c200,
+	NULL
+};
 #define pci_ss_list_1131_3400 NULL
 #define pci_ss_list_1131_5400 NULL
-#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1131_5402[] = {
 	&pci_ss_info_1131_5402_1244_0f00,
 	NULL
@@ -52790,6 +56423,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1131_7133_1043_4843,
 	&pci_ss_info_1131_7133_1043_4845,
 	&pci_ss_info_1131_7133_1043_4862,
+	&pci_ss_info_1131_7133_1131_0000,
 	&pci_ss_info_1131_7133_1131_2001,
 	&pci_ss_info_1131_7133_1131_2018,
 	&pci_ss_info_1131_7133_1131_4ee9,
@@ -52801,13 +56435,16 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1131_7133_1435_7330,
 	&pci_ss_info_1131_7133_1435_7350,
 	&pci_ss_info_1131_7133_1461_1044,
+	&pci_ss_info_1131_7133_1461_a14b,
 	&pci_ss_info_1131_7133_1461_f31f,
 	&pci_ss_info_1131_7133_1462_6231,
 	&pci_ss_info_1131_7133_1489_0214,
 	&pci_ss_info_1131_7133_14c0_1212,
 	&pci_ss_info_1131_7133_153b_1160,
 	&pci_ss_info_1131_7133_153b_1162,
+	&pci_ss_info_1131_7133_17de_7350,
 	&pci_ss_info_1131_7133_185b_c100,
+	&pci_ss_info_1131_7133_185b_c900,
 	&pci_ss_info_1131_7133_5168_0306,
 	&pci_ss_info_1131_7133_5168_0319,
 	&pci_ss_info_1131_7133_5168_0502,
@@ -52872,10 +56509,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1131_7146_13c2_100c,
 	&pci_ss_info_1131_7146_13c2_100f,
 	&pci_ss_info_1131_7146_13c2_1011,
+	&pci_ss_info_1131_7146_13c2_1012,
 	&pci_ss_info_1131_7146_13c2_1013,
 	&pci_ss_info_1131_7146_13c2_1016,
+	&pci_ss_info_1131_7146_13c2_1018,
+	&pci_ss_info_1131_7146_13c2_1019,
 	&pci_ss_info_1131_7146_13c2_1102,
 	&pci_ss_info_1131_7146_153b_1156,
+	&pci_ss_info_1131_7146_1894_0020,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1131_9730[] = {
@@ -52974,6 +56615,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_1133_e02a NULL
 #define pci_ss_list_1133_e02c NULL
+#define pci_ss_list_1133_e032 NULL
 #endif
 #define pci_ss_list_1134_0001 NULL
 #define pci_ss_list_1134_0002 NULL
@@ -53098,6 +56740,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_114f_000d NULL
 #define pci_ss_list_114f_0011 NULL
 #define pci_ss_list_114f_0012 NULL
+#define pci_ss_list_114f_0013 NULL
 #define pci_ss_list_114f_0014 NULL
 #define pci_ss_list_114f_0015 NULL
 #define pci_ss_list_114f_0016 NULL
@@ -53247,6 +56890,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1166_0205 NULL
 #define pci_ss_list_1166_0211 NULL
 static const pciSubsystemInfo *pci_ss_list_1166_0212[] = {
+	&pci_ss_info_1166_0212_1028_810b,
 	&pci_ss_info_1166_0212_4c53_1080,
 	NULL
 };
@@ -53280,6 +56924,8 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_1166_0234 NULL
+#define pci_ss_list_1166_0235 NULL
+#define pci_ss_list_1166_0238 NULL
 #define pci_ss_list_1166_0240 NULL
 #define pci_ss_list_1166_0241 NULL
 #define pci_ss_list_1166_0242 NULL
@@ -53333,11 +56979,14 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_1180_0476[] = {
 	&pci_ss_info_1180_0476_1014_0185,
+	&pci_ss_info_1180_0476_1028_014f,
 	&pci_ss_info_1180_0476_1028_0188,
 	&pci_ss_info_1180_0476_1043_1967,
 	&pci_ss_info_1180_0476_1043_1987,
 	&pci_ss_info_1180_0476_104d_80df,
 	&pci_ss_info_1180_0476_104d_80e7,
+	&pci_ss_info_1180_0476_104d_814e,
+	&pci_ss_info_1180_0476_10f7_8338,
 	&pci_ss_info_1180_0476_144d_c00c,
 	&pci_ss_info_1180_0476_14ef_0220,
 	&pci_ss_info_1180_0476_17aa_201c,
@@ -53360,6 +57009,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_1180_0552[] = {
 	&pci_ss_info_1180_0552_1014_0511,
+	&pci_ss_info_1180_0552_1028_014f,
 	&pci_ss_info_1180_0552_1028_0188,
 	&pci_ss_info_1180_0552_144d_c00c,
 	&pci_ss_info_1180_0552_17aa_201e,
@@ -53380,10 +57030,12 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1180_0822_1028_0188,
 	&pci_ss_info_1180_0822_1028_01a2,
 	&pci_ss_info_1180_0822_1043_1967,
+	&pci_ss_info_1180_0822_10f7_8338,
 	&pci_ss_info_1180_0822_144d_c018,
 	&pci_ss_info_1180_0822_17aa_201d,
 	NULL
 };
+#define pci_ss_list_1180_0832 NULL
 #define pci_ss_list_1180_0841 NULL
 static const pciSubsystemInfo *pci_ss_list_1180_0852[] = {
 	&pci_ss_info_1180_0852_1043_1967,
@@ -53479,6 +57131,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_119e_0003 NULL
 #define pci_ss_list_11a9_4240 NULL
 #define pci_ss_list_11ab_0146 NULL
+#define pci_ss_list_11ab_0f53 NULL
+#define pci_ss_list_11ab_11ab NULL
 #define pci_ss_list_11ab_138f NULL
 #define pci_ss_list_11ab_1fa6 NULL
 #define pci_ss_list_11ab_1fa7 NULL
@@ -53487,6 +57141,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_11ab_1faa_1385_4e00,
 	NULL
 };
+#define pci_ss_list_11ab_2a01 NULL
 static const pciSubsystemInfo *pci_ss_list_11ab_4320[] = {
 	&pci_ss_info_11ab_4320_1019_0f38,
 	&pci_ss_info_11ab_4320_1019_8001,
@@ -53515,7 +57170,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_11ab_4344 NULL
 #define pci_ss_list_11ab_4345 NULL
 #define pci_ss_list_11ab_4346 NULL
-#define pci_ss_list_11ab_4347 NULL
+static const pciSubsystemInfo *pci_ss_list_11ab_4347[] = {
+	&pci_ss_info_11ab_4347_4c53_10d0,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_11ab_4350[] = {
 	&pci_ss_info_11ab_4350_1179_0001,
 	&pci_ss_info_11ab_4350_11ab_3521,
@@ -53618,6 +57276,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_11ab_4363 NULL
+#define pci_ss_list_11ab_4364 NULL
 #define pci_ss_list_11ab_4611 NULL
 #define pci_ss_list_11ab_4620 NULL
 #define pci_ss_list_11ab_4801 NULL
@@ -53628,8 +57287,15 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_11ab_5081 NULL
 #define pci_ss_list_11ab_6041 NULL
 #define pci_ss_list_11ab_6081 NULL
+#define pci_ss_list_11ab_6101 NULL
+#define pci_ss_list_11ab_6141 NULL
+#define pci_ss_list_11ab_6145 NULL
+#define pci_ss_list_11ab_6450 NULL
 #define pci_ss_list_11ab_6460 NULL
-#define pci_ss_list_11ab_6480 NULL
+static const pciSubsystemInfo *pci_ss_list_11ab_6480[] = {
+	&pci_ss_info_11ab_6480_1775_c200,
+	NULL
+};
 #define pci_ss_list_11ab_6485 NULL
 #define pci_ss_list_11ab_f003 NULL
 #endif
@@ -53657,7 +57323,21 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_11b9_c0ed NULL
 #define pci_ss_list_11bc_0001 NULL
 #define pci_ss_list_11bd_002e NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_11bd_0040[] = {
+	&pci_ss_info_11bd_0040_11bd_0044,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_11bd_0041[] = {
+	&pci_ss_info_11bd_0041_11bd_0044,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_11bd_0042[] = {
+	&pci_ss_info_11bd_0042_11bd_0044,
+	NULL
+};
 #define pci_ss_list_11bd_bede NULL
+#endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_11c1_0440[] = {
 	&pci_ss_info_11c1_0440_1033_8015,
@@ -53779,6 +57459,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_11c1_0480 NULL
 #define pci_ss_list_11c1_048c NULL
 #define pci_ss_list_11c1_048f NULL
+#define pci_ss_list_11c1_1040 NULL
+#define pci_ss_list_11c1_2600 NULL
 #define pci_ss_list_11c1_5801 NULL
 #define pci_ss_list_11c1_5802 NULL
 #define pci_ss_list_11c1_5803 NULL
@@ -53823,11 +57505,20 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_11cb_8000 NULL
 #endif
 #define pci_ss_list_11d1_01f7 NULL
+#define pci_ss_list_11d4_0078 NULL
 #define pci_ss_list_11d4_1535 NULL
 #define pci_ss_list_11d4_1805 NULL
 #define pci_ss_list_11d4_1889 NULL
-#define pci_ss_list_11d4_1986 NULL
+#define pci_ss_list_11d4_1981 NULL
+#define pci_ss_list_11d4_1983 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_11d4_1986[] = {
+	&pci_ss_info_11d4_1986_11d4_1986,
+	NULL
+};
+#define pci_ss_list_11d4_198b NULL
 #define pci_ss_list_11d4_5340 NULL
+#endif
 #define pci_ss_list_11d5_0115 NULL
 #define pci_ss_list_11d5_0117 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -53957,6 +57648,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1217_7223[] = {
 	&pci_ss_info_1217_7223_103c_088c,
 	&pci_ss_info_1217_7223_103c_0890,
+	&pci_ss_info_1217_7223_10cf_11c4,
 	NULL
 };
 #define pci_ss_list_1217_7233 NULL
@@ -54161,6 +57853,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_125d_2898_125d_0428,
 	&pci_ss_info_125d_2898_125d_0429,
 	&pci_ss_info_125d_2898_147a_c001,
+	&pci_ss_info_125d_2898_148d_1030,
 	&pci_ss_info_125d_2898_14fe_0428,
 	&pci_ss_info_125d_2898_14fe_0429,
 	NULL
@@ -54178,6 +57871,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1260_3873_1668_0414,
 	&pci_ss_info_1260_3873_16a5_1601,
 	&pci_ss_info_1260_3873_1737_3874,
+	&pci_ss_info_1260_3873_8086_2510,
 	&pci_ss_info_1260_3873_8086_2513,
 	NULL
 };
@@ -54190,6 +57884,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1260_3890_10b8_2835,
 	&pci_ss_info_1260_3890_10b8_a835,
 	&pci_ss_info_1260_3890_1113_4203,
+	&pci_ss_info_1260_3890_1113_8201,
 	&pci_ss_info_1260_3890_1113_ee03,
 	&pci_ss_info_1260_3890_1113_ee08,
 	&pci_ss_info_1260_3890_1186_3202,
@@ -54467,6 +58162,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1282_9102 NULL
 #define pci_ss_list_1282_9132 NULL
 #define pci_ss_list_1283_673a NULL
+#define pci_ss_list_1283_8152 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1283_8211[] = {
 	&pci_ss_info_1283_8211_1043_8138,
@@ -54491,10 +58187,15 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_128e_000a NULL
 #define pci_ss_list_128e_000b NULL
 #define pci_ss_list_128e_000c NULL
+#define pci_ss_list_1292_fc02 NULL
 #define pci_ss_list_129a_0615 NULL
 #define pci_ss_list_12a3_8105 NULL
+#define pci_ss_list_12ab_0000 NULL
 #define pci_ss_list_12ab_0002 NULL
+#define pci_ss_list_12ab_2300 NULL
 #define pci_ss_list_12ab_3000 NULL
+#define pci_ss_list_12ab_fff3 NULL
+#define pci_ss_list_12ab_ffff NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_12ae_0001[] = {
 	&pci_ss_info_12ae_0001_1014_0104,
@@ -54610,6 +58311,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_12d4_0200 NULL
 #define pci_ss_list_12d5_0003 NULL
 #define pci_ss_list_12d5_1000 NULL
+#define pci_ss_list_12d8_01a7 NULL
 #define pci_ss_list_12d8_8150 NULL
 #define pci_ss_list_12d9_0002 NULL
 #define pci_ss_list_12d9_0004 NULL
@@ -54897,6 +58599,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1374_0038 NULL
 #define pci_ss_list_1374_0039 NULL
 #define pci_ss_list_1374_003a NULL
+#define pci_ss_list_1374_003b NULL
+#define pci_ss_list_1374_003c NULL
 #define pci_ss_list_137a_0001 NULL
 #define pci_ss_list_1382_0001 NULL
 #define pci_ss_list_1382_2008 NULL
@@ -54910,6 +58614,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1382_4248 NULL
 #define pci_ss_list_1382_4424 NULL
 #define pci_ss_list_1385_0013 NULL
+#define pci_ss_list_1385_006b NULL
 #define pci_ss_list_1385_311a NULL
 #define pci_ss_list_1385_4100 NULL
 #define pci_ss_list_1385_4105 NULL
@@ -54941,6 +58646,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1393_1040 NULL
 #define pci_ss_list_1393_1141 NULL
 #define pci_ss_list_1393_1680 NULL
+#define pci_ss_list_1393_1681 NULL
 #define pci_ss_list_1393_2040 NULL
 #define pci_ss_list_1393_2180 NULL
 #define pci_ss_list_1393_3200 NULL
@@ -54954,6 +58660,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1397_08b4[] = {
 	&pci_ss_info_1397_08b4_1397_b520,
 	&pci_ss_info_1397_08b4_1397_b540,
+	&pci_ss_info_1397_08b4_1397_b556,
 	NULL
 };
 #define pci_ss_list_1397_16b8 NULL
@@ -54964,6 +58671,9 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1397_2bd0_e4bf_1000,
 	NULL
 };
+#define pci_ss_list_1397_30b1 NULL
+#define pci_ss_list_1397_b700 NULL
+#define pci_ss_list_1397_f001 NULL
 #endif
 #define pci_ss_list_139a_0001 NULL
 #define pci_ss_list_139a_0003 NULL
@@ -54979,6 +58689,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_13a3_001d NULL
 #define pci_ss_list_13a3_0020 NULL
 #define pci_ss_list_13a3_0026 NULL
+#define pci_ss_list_13a3_002e NULL
 #define pci_ss_list_13a8_0152 NULL
 #define pci_ss_list_13a8_0154 NULL
 #define pci_ss_list_13a8_0158 NULL
@@ -54994,6 +58705,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_13c1_1002 NULL
 #define pci_ss_list_13c1_1003 NULL
+#define pci_ss_list_13c1_1004 NULL
 #endif
 #define pci_ss_list_13c2_000e NULL
 #define pci_ss_list_13c6_0520 NULL
@@ -55005,6 +58717,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_13d1_ab03 NULL
 #define pci_ss_list_13d1_ab06 NULL
 #define pci_ss_list_13d1_ab08 NULL
+#define pci_ss_list_13d3_3219 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_13df_0001[] = {
 	&pci_ss_info_13df_0001_13df_0001,
@@ -55036,6 +58749,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_13f6_0211 NULL
+#define pci_ss_list_13f6_9880 NULL
 #endif
 #define pci_ss_list_13fe_1240 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -55149,6 +58863,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1420_8002 NULL
 #define pci_ss_list_1420_8003 NULL
 #define pci_ss_list_1425_000b NULL
+#define pci_ss_list_1425_000c NULL
 #define pci_ss_list_142e_4020 NULL
 #define pci_ss_list_142e_4337 NULL
 #define pci_ss_list_1432_9130 NULL
@@ -55172,14 +58887,20 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_144a_9114 NULL
 #define pci_ss_list_144d_c00c NULL
 #define pci_ss_list_1458_0c11 NULL
+#define pci_ss_list_1458_9001 NULL
 #define pci_ss_list_1458_e911 NULL
 #define pci_ss_list_145f_0001 NULL
+#define pci_ss_list_1461_a3ce NULL
+#define pci_ss_list_1461_a3cf NULL
+#define pci_ss_list_1461_a836 NULL
 #define pci_ss_list_1461_f436 NULL
 #define pci_ss_list_1462_5501 NULL
 #define pci_ss_list_1462_6819 NULL
 #define pci_ss_list_1462_6825 NULL
 #define pci_ss_list_1462_6834 NULL
 #define pci_ss_list_1462_7125 NULL
+#define pci_ss_list_1462_7235 NULL
+#define pci_ss_list_1462_7242 NULL
 #define pci_ss_list_1462_8725 NULL
 #define pci_ss_list_1462_9000 NULL
 #define pci_ss_list_1462_9110 NULL
@@ -55188,6 +58909,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1462_9510 NULL
 #define pci_ss_list_1462_9511 NULL
 #define pci_ss_list_1462_9591 NULL
+#define pci_ss_list_1462_b834 NULL
 #define pci_ss_list_146c_1430 NULL
 #define pci_ss_list_148d_1003 NULL
 #define pci_ss_list_1497_1497 NULL
@@ -55267,10 +58989,13 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14e4_0816 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_14e4_1600[] = {
+	&pci_ss_info_14e4_1600_103c_3015,
 	&pci_ss_info_14e4_1600_107b_5048,
 	NULL
 };
 #define pci_ss_list_14e4_1601 NULL
+#define pci_ss_list_14e4_1639 NULL
+#define pci_ss_list_14e4_163a NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_1644[] = {
 	&pci_ss_info_14e4_1644_1014_0277,
 	&pci_ss_info_14e4_1644_1028_00d1,
@@ -55378,6 +59103,11 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14e4_1659_1734_1061,
 	NULL
 };
+static const pciSubsystemInfo *pci_ss_list_14e4_165a[] = {
+	&pci_ss_info_14e4_165a_103c_7051,
+	&pci_ss_info_14e4_165a_103c_7052,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_14e4_165d[] = {
 	&pci_ss_info_14e4_165d_1028_865d,
 	NULL
@@ -55386,6 +59116,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14e4_165e_103c_088c,
 	&pci_ss_info_14e4_165e_103c_0890,
 	&pci_ss_info_14e4_165e_103c_099c,
+	&pci_ss_info_14e4_165e_10cf_1279,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_14e4_1668[] = {
@@ -55398,6 +59129,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14e4_166e NULL
 #define pci_ss_list_14e4_1672 NULL
 #define pci_ss_list_14e4_1673 NULL
+#define pci_ss_list_14e4_1674 NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_1677[] = {
 	&pci_ss_info_14e4_1677_1028_0179,
 	&pci_ss_info_14e4_1677_1028_0182,
@@ -55421,6 +59153,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_14e4_167e NULL
+#define pci_ss_list_14e4_167f NULL
 #define pci_ss_list_14e4_1693 NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_1696[] = {
 	&pci_ss_info_14e4_1696_103c_12bc,
@@ -55431,6 +59164,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14e4_169b NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_169c[] = {
 	&pci_ss_info_14e4_169c_103c_308b,
+	&pci_ss_info_14e4_169c_103c_30a1,
 	NULL
 };
 #define pci_ss_list_14e4_169d NULL
@@ -55462,6 +59196,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_14e4_16ac[] = {
 	&pci_ss_info_14e4_16ac_103c_1706,
+	&pci_ss_info_14e4_16ac_103c_7038,
 	&pci_ss_info_14e4_16ac_103c_703b,
 	&pci_ss_info_14e4_16ac_103c_703d,
 	NULL
@@ -55488,6 +59223,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_14e4_170c[] = {
 	&pci_ss_info_14e4_170c_1028_0188,
 	&pci_ss_info_14e4_170c_1028_0196,
+	&pci_ss_info_14e4_170c_1028_01af,
 	&pci_ss_info_14e4_170c_103c_099c,
 	NULL
 };
@@ -55496,11 +59232,14 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_14e4_170e NULL
+#define pci_ss_list_14e4_1712 NULL
+#define pci_ss_list_14e4_1713 NULL
 #define pci_ss_list_14e4_3352 NULL
 #define pci_ss_list_14e4_3360 NULL
 #define pci_ss_list_14e4_4210 NULL
 #define pci_ss_list_14e4_4211 NULL
 #define pci_ss_list_14e4_4212 NULL
+#define pci_ss_list_14e4_4220 NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_4301[] = {
 	&pci_ss_info_14e4_4301_1028_0407,
 	&pci_ss_info_14e4_4301_1043_0120,
@@ -55522,6 +59261,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14e4_4318_14e4_0449,
 	&pci_ss_info_14e4_4318_14e4_4318,
 	&pci_ss_info_14e4_4318_16ec_0119,
+	&pci_ss_info_14e4_4318_1737_0042,
 	&pci_ss_info_14e4_4318_1737_0048,
 	NULL
 };
@@ -55536,6 +59276,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14e4_4320_106b_004e,
 	&pci_ss_info_14e4_4320_1154_0330,
 	&pci_ss_info_14e4_4320_144f_7050,
+	&pci_ss_info_14e4_4320_144f_7051,
 	&pci_ss_info_14e4_4320_14e4_4320,
 	&pci_ss_info_14e4_4320_1737_4320,
 	&pci_ss_info_14e4_4320_1799_7001,
@@ -55558,6 +59299,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_14e4_4326 NULL
 #define pci_ss_list_14e4_4329 NULL
+#define pci_ss_list_14e4_4344 NULL
 static const pciSubsystemInfo *pci_ss_list_14e4_4401[] = {
 	&pci_ss_info_14e4_4401_103c_08b0,
 	&pci_ss_info_14e4_4401_1043_80a8,
@@ -55603,6 +59345,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14e4_5690 NULL
 #define pci_ss_list_14e4_5691 NULL
 #define pci_ss_list_14e4_5692 NULL
+#define pci_ss_list_14e4_5695 NULL
+#define pci_ss_list_14e4_5698 NULL
 #define pci_ss_list_14e4_5820 NULL
 #define pci_ss_list_14e4_5821 NULL
 #define pci_ss_list_14e4_5822 NULL
@@ -55677,6 +59421,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_14f1_1085 NULL
+#define pci_ss_list_14f1_10b6 NULL
 #define pci_ss_list_14f1_1433 NULL
 #define pci_ss_list_14f1_1434 NULL
 #define pci_ss_list_14f1_1435 NULL
@@ -55773,7 +59518,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14f1_2464 NULL
 #define pci_ss_list_14f1_2465 NULL
 #define pci_ss_list_14f1_2466 NULL
-#define pci_ss_list_14f1_2bfa NULL
+static const pciSubsystemInfo *pci_ss_list_14f1_2bfa[] = {
+	&pci_ss_info_14f1_2bfa_1025_0009,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_14f1_2f00[] = {
 	&pci_ss_info_14f1_2f00_13e0_8d84,
 	&pci_ss_info_14f1_2f00_13e0_8d85,
@@ -55783,6 +59531,9 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_14f1_2f02 NULL
 #define pci_ss_list_14f1_2f11 NULL
 #define pci_ss_list_14f1_2f20 NULL
+#define pci_ss_list_14f1_2f30 NULL
+#define pci_ss_list_14f1_5045 NULL
+#define pci_ss_list_14f1_5047 NULL
 #define pci_ss_list_14f1_8234 NULL
 static const pciSubsystemInfo *pci_ss_list_14f1_8800[] = {
 	&pci_ss_info_14f1_8800_0070_2801,
@@ -55836,6 +59587,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_14f1_8802_0070_9002,
 	&pci_ss_info_14f1_8802_1043_4823,
 	&pci_ss_info_14f1_8802_107d_663c,
+	&pci_ss_info_14f1_8802_107d_665f,
 	&pci_ss_info_14f1_8802_14f1_0187,
 	&pci_ss_info_14f1_8802_17de_08a1,
 	&pci_ss_info_14f1_8802_17de_08a6,
@@ -55917,6 +59669,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1522_0100_1522_2500,
 	&pci_ss_info_1522_0100_1522_2600,
 	&pci_ss_info_1522_0100_1522_2700,
+	&pci_ss_info_1522_0100_1522_3000,
+	&pci_ss_info_1522_0100_1522_3100,
+	&pci_ss_info_1522_0100_1522_3200,
+	&pci_ss_info_1522_0100_1522_3300,
+	&pci_ss_info_1522_0100_1522_3400,
+	&pci_ss_info_1522_0100_1522_3500,
+	&pci_ss_info_1522_0100_1522_3c00,
+	&pci_ss_info_1522_0100_1522_3d00,
 	NULL
 };
 #endif
@@ -55928,6 +59688,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1524_0520 NULL
 #define pci_ss_list_1524_0530 NULL
 #define pci_ss_list_1524_0550 NULL
+#define pci_ss_list_1524_0551 NULL
 #define pci_ss_list_1524_0610 NULL
 #define pci_ss_list_1524_1211 NULL
 #define pci_ss_list_1524_1225 NULL
@@ -55975,6 +59736,9 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1571_a206 NULL
 #define pci_ss_list_1578_5615 NULL
 #define pci_ss_list_157c_8001 NULL
+#define pci_ss_list_1590_0001 NULL
+#define pci_ss_list_1590_0002 NULL
+#define pci_ss_list_1590_a01d NULL
 #define pci_ss_list_1592_0781 NULL
 #define pci_ss_list_1592_0782 NULL
 #define pci_ss_list_1592_0783 NULL
@@ -55987,6 +59751,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_15ad_0405 NULL
 #define pci_ss_list_15ad_0710 NULL
 #define pci_ss_list_15ad_0720 NULL
+#define pci_ss_list_15b3_0191 NULL
 #define pci_ss_list_15b3_5274 NULL
 #define pci_ss_list_15b3_5a44 NULL
 #define pci_ss_list_15b3_5a45 NULL
@@ -55996,6 +59761,14 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_15b3_6278 NULL
 #define pci_ss_list_15b3_6279 NULL
 #define pci_ss_list_15b3_6282 NULL
+#define pci_ss_list_15b3_6340 NULL
+#define pci_ss_list_15b3_634a NULL
+#define pci_ss_list_15b3_6354 NULL
+#define pci_ss_list_15b3_6368 NULL
+#define pci_ss_list_15b8_1003 NULL
+#define pci_ss_list_15b8_1005 NULL
+#define pci_ss_list_15b8_100a NULL
+#define pci_ss_list_15b8_3001 NULL
 #define pci_ss_list_15bc_1100 NULL
 #define pci_ss_list_15bc_2922 NULL
 #define pci_ss_list_15bc_2928 NULL
@@ -56003,6 +59776,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_15c5_8010 NULL
 #define pci_ss_list_15c7_0349 NULL
 #define pci_ss_list_15dc_0001 NULL
+#define pci_ss_list_15e2_0500 NULL
 #define pci_ss_list_15e8_0130 NULL
 #define pci_ss_list_15e9_1841 NULL
 #define pci_ss_list_15ec_3101 NULL
@@ -56016,6 +59790,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1619_2610 NULL
 #define pci_ss_list_1626_8410 NULL
 #define pci_ss_list_1629_1003 NULL
+#define pci_ss_list_1629_1006 NULL
+#define pci_ss_list_1629_1007 NULL
 #define pci_ss_list_1629_2002 NULL
 #define pci_ss_list_1637_3874 NULL
 #define pci_ss_list_1638_1100 NULL
@@ -56070,44 +59846,96 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_168c_0013_168c_2042,
 	&pci_ss_info_168c_0013_168c_2051,
 	&pci_ss_info_168c_0013_16ab_7302,
+	&pci_ss_info_168c_0013_17cf_0042,
+	&pci_ss_info_168c_0013_185f_1012,
 	&pci_ss_info_168c_0013_185f_2012,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_168c_001a[] = {
+	&pci_ss_info_168c_001a_1052_168c,
 	&pci_ss_info_168c_001a_1113_ee20,
 	&pci_ss_info_168c_001a_1113_ee24,
 	&pci_ss_info_168c_001a_1186_3a15,
 	&pci_ss_info_168c_001a_1186_3a16,
 	&pci_ss_info_168c_001a_1186_3a23,
 	&pci_ss_info_168c_001a_1186_3a24,
+	&pci_ss_info_168c_001a_1186_3b08,
 	&pci_ss_info_168c_001a_168c_001a,
 	&pci_ss_info_168c_001a_168c_1052,
+	&pci_ss_info_168c_001a_168c_2052,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_168c_001b[] = {
 	&pci_ss_info_168c_001b_1186_3a19,
 	&pci_ss_info_168c_001b_1186_3a22,
+	&pci_ss_info_168c_001b_1458_e901,
+	&pci_ss_info_168c_001b_168c_001b,
 	&pci_ss_info_168c_001b_168c_2062,
 	&pci_ss_info_168c_001b_168c_2063,
+	&pci_ss_info_168c_001b_185f_1600,
+	&pci_ss_info_168c_001b_a727_6804,
 	NULL
 };
+#define pci_ss_list_168c_001c NULL
 #define pci_ss_list_168c_0020 NULL
+#define pci_ss_list_168c_0023 NULL
+#define pci_ss_list_168c_0024 NULL
 static const pciSubsystemInfo *pci_ss_list_168c_1014[] = {
 	&pci_ss_info_168c_1014_1014_058a,
 	NULL
 };
+#define pci_ss_list_168c_3b08 NULL
 #endif
 #define pci_ss_list_169c_0044 NULL
+#define pci_ss_list_169d_3306 NULL
 #define pci_ss_list_16ab_1100 NULL
 #define pci_ss_list_16ab_1101 NULL
 #define pci_ss_list_16ab_1102 NULL
 #define pci_ss_list_16ab_8501 NULL
+#define pci_ss_list_16ae_0001 NULL
+#define pci_ss_list_16ae_000a NULL
 #define pci_ss_list_16ae_1141 NULL
+#define pci_ss_list_16ae_1841 NULL
 #define pci_ss_list_16c6_8695 NULL
 #define pci_ss_list_16ca_0001 NULL
+#define pci_ss_list_16d5_0504 NULL
+#define pci_ss_list_16d5_0520 NULL
+#define pci_ss_list_16d5_0521 NULL
+#define pci_ss_list_16d5_1020 NULL
+#define pci_ss_list_16d5_1065 NULL
+#define pci_ss_list_16d5_2004 NULL
+#define pci_ss_list_16d5_2020 NULL
+#define pci_ss_list_16d5_2065 NULL
+#define pci_ss_list_16d5_3020 NULL
+#define pci_ss_list_16d5_3065 NULL
+#define pci_ss_list_16d5_4243 NULL
+#define pci_ss_list_16d5_4248 NULL
+#define pci_ss_list_16d5_424b NULL
+#define pci_ss_list_16d5_4253 NULL
+#define pci_ss_list_16d5_4312 NULL
+#define pci_ss_list_16d5_4313 NULL
+#define pci_ss_list_16d5_4322 NULL
+#define pci_ss_list_16d5_4323 NULL
+#define pci_ss_list_16d5_4350 NULL
+#define pci_ss_list_16d5_4353 NULL
+#define pci_ss_list_16d5_4357 NULL
+#define pci_ss_list_16d5_4457 NULL
+#define pci_ss_list_16d5_464d NULL
+#define pci_ss_list_16d5_4850 NULL
+#define pci_ss_list_16d5_4a42 NULL
+#define pci_ss_list_16d5_4a50 NULL
+#define pci_ss_list_16d5_4a56 NULL
+#define pci_ss_list_16d5_4b47 NULL
+#define pci_ss_list_16d5_4c40 NULL
+#define pci_ss_list_16d5_4c60 NULL
+#define pci_ss_list_16d5_4d4d NULL
 #define pci_ss_list_16d5_4d4e NULL
+#define pci_ss_list_16d5_524d NULL
+#define pci_ss_list_16d5_5335 NULL
+#define pci_ss_list_16d5_5456 NULL
 #define pci_ss_list_16e3_1e0f NULL
 #define pci_ss_list_16e5_6000 NULL
+#define pci_ss_list_16e5_6300 NULL
 #define pci_ss_list_16ec_00ff NULL
 #define pci_ss_list_16ec_0116 NULL
 #define pci_ss_list_16ec_2f00 NULL
@@ -56118,8 +59946,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1725_7174 NULL
 #define pci_ss_list_172a_13c8 NULL
 #define pci_ss_list_1734_1078 NULL
+#define pci_ss_list_1734_1085 NULL
 #define pci_ss_list_1737_0013 NULL
 #define pci_ss_list_1737_0015 NULL
+#define pci_ss_list_1737_0029 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1737_1032[] = {
 	&pci_ss_info_1737_1032_1737_0015,
@@ -56188,11 +60018,17 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
+#define pci_ss_list_17db_0101 NULL
 #define pci_ss_list_17e4_0001 NULL
 #define pci_ss_list_17e4_0002 NULL
 #define pci_ss_list_17e6_0010 NULL
 #define pci_ss_list_17e6_0011 NULL
 #define pci_ss_list_17e6_0021 NULL
+#define pci_ss_list_17f3_6020 NULL
+#define pci_ss_list_17f3_6030 NULL
+#define pci_ss_list_17f3_6040 NULL
+#define pci_ss_list_17f3_6060 NULL
+#define pci_ss_list_17f3_6061 NULL
 #define pci_ss_list_17fe_2120 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_17fe_2220[] = {
@@ -56224,6 +60060,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1814_0201_1371_0020,
 	&pci_ss_info_1814_0201_1458_e381,
 	&pci_ss_info_1814_0201_1458_e931,
+	&pci_ss_info_1814_0201_1462_6833,
 	&pci_ss_info_1814_0201_1462_6835,
 	&pci_ss_info_1814_0201_1737_0032,
 	&pci_ss_info_1814_0201_1799_700a,
@@ -56234,16 +60071,21 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1814_0301[] = {
 	&pci_ss_info_1814_0301_1186_3c08,
 	&pci_ss_info_1814_0301_1186_3c09,
+	&pci_ss_info_1814_0301_13d1_abe3,
+	&pci_ss_info_1814_0301_1458_e934,
 	&pci_ss_info_1814_0301_1737_0055,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_1814_0302[] = {
 	&pci_ss_info_1814_0302_1186_3c08,
 	&pci_ss_info_1814_0302_1186_3c09,
+	&pci_ss_info_1814_0302_1462_b834,
 	NULL
 };
 #define pci_ss_list_1814_0401 NULL
+#define pci_ss_list_1814_e932 NULL
 #endif
+#define pci_ss_list_1822_0001 NULL
 #define pci_ss_list_1822_4e35 NULL
 #define pci_ss_list_182d_3069 NULL
 #define pci_ss_list_182d_9790 NULL
@@ -56258,6 +60100,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1867_5a46 NULL
 #define pci_ss_list_1867_6278 NULL
 #define pci_ss_list_1867_6282 NULL
+#define pci_ss_list_186c_0614 NULL
+#define pci_ss_list_1876_a101 NULL
+#define pci_ss_list_1876_a102 NULL
+#define pci_ss_list_1876_a103 NULL
 #define pci_ss_list_187e_3403 NULL
 #define pci_ss_list_187e_340e NULL
 #define pci_ss_list_1888_0301 NULL
@@ -56271,6 +60117,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_18b8_b001 NULL
 #define pci_ss_list_18ca_0020 NULL
 #define pci_ss_list_18ca_0040 NULL
+#define pci_ss_list_18ca_0047 NULL
 #define pci_ss_list_18d2_3069 NULL
 #define pci_ss_list_18dd_4c6f NULL
 #define pci_ss_list_18e6_0001 NULL
@@ -56323,15 +60170,33 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1957_0087 NULL
 #define pci_ss_list_1966_1975 NULL
 #define pci_ss_list_1969_1048 NULL
+#define pci_ss_list_1969_2048 NULL
 #define pci_ss_list_196a_0101 NULL
 #define pci_ss_list_196a_0102 NULL
+#define pci_ss_list_196a_0105 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_1971_1011[] = {
+	&pci_ss_info_1971_1011_1043_0001,
+	NULL
+};
+#endif
 #define pci_ss_list_197b_2360 NULL
-#define pci_ss_list_197b_2361 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_197b_2361[] = {
+	&pci_ss_info_197b_2361_1462_7235,
+	NULL
+};
 #define pci_ss_list_197b_2363 NULL
 #define pci_ss_list_197b_2365 NULL
 #define pci_ss_list_197b_2366 NULL
+#define pci_ss_list_197b_2368 NULL
+#endif
+#define pci_ss_list_1982_1600 NULL
+#define pci_ss_list_1982_16ff NULL
 #define pci_ss_list_1989_0001 NULL
 #define pci_ss_list_1989_8001 NULL
+#define pci_ss_list_19a2_0200 NULL
+#define pci_ss_list_19a2_0201 NULL
 #define pci_ss_list_19ac_0001 NULL
 #define pci_ss_list_19ae_0520 NULL
 #define pci_ss_list_19e7_1001 NULL
@@ -56340,7 +60205,12 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_19e7_1004 NULL
 #define pci_ss_list_19e7_1005 NULL
 #define pci_ss_list_1a03_2000 NULL
+#define pci_ss_list_1a07_0006 NULL
+#define pci_ss_list_1a07_0007 NULL
 #define pci_ss_list_1a08_0000 NULL
+#define pci_ss_list_1a1d_1a17 NULL
+#define pci_ss_list_1a73_0001 NULL
+#define pci_ss_list_1a8c_1100 NULL
 #define pci_ss_list_1c1c_0001 NULL
 #define pci_ss_list_1d44_a400 NULL
 #define pci_ss_list_1de1_0391 NULL
@@ -56357,6 +60227,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_3388_0020 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_3388_0021[] = {
+	&pci_ss_info_3388_0021_1775_c200,
 	&pci_ss_info_3388_0021_1775_ce90,
 	&pci_ss_info_3388_0021_4c53_1050,
 	&pci_ss_info_3388_0021_4c53_1080,
@@ -56460,6 +60331,10 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_4005_4710 NULL
 #define pci_ss_list_4033_1360 NULL
+#define pci_ss_list_4040_0001 NULL
+#define pci_ss_list_4040_0002 NULL
+#define pci_ss_list_4040_0003 NULL
+#define pci_ss_list_4040_0004 NULL
 #define pci_ss_list_4144_0044 NULL
 #define pci_ss_list_416c_0100 NULL
 #define pci_ss_list_416c_0200 NULL
@@ -56519,6 +60394,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_4d51_0200 NULL
+#define pci_ss_list_4d56_0000 NULL
 #define pci_ss_list_4ddc_0100 NULL
 #define pci_ss_list_4ddc_0801 NULL
 #define pci_ss_list_4ddc_0802 NULL
@@ -56586,6 +60462,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_5333_8903 NULL
 static const pciSubsystemInfo *pci_ss_list_5333_8904[] = {
 	&pci_ss_info_5333_8904_1014_00db,
+	&pci_ss_info_5333_8904_4843_314a,
 	&pci_ss_info_5333_8904_5333_8904,
 	NULL
 };
@@ -56692,6 +60569,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_5333_8d02 NULL
 #define pci_ss_list_5333_8d03 NULL
 #define pci_ss_list_5333_8d04 NULL
+static const pciSubsystemInfo *pci_ss_list_5333_8e48[] = {
+	&pci_ss_info_5333_8e48_5333_0130,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_5333_9102[] = {
 	&pci_ss_info_5333_9102_1092_5932,
 	&pci_ss_info_5333_9102_1092_5934,
@@ -56709,6 +60590,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_5544_0001 NULL
 #define pci_ss_list_5555_0003 NULL
 #define pci_ss_list_5654_3132 NULL
+#define pci_ss_list_5853_0001 NULL
 #define pci_ss_list_6374_6773 NULL
 #define pci_ss_list_6666_0001 NULL
 #define pci_ss_list_6666_0002 NULL
@@ -56770,6 +60652,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_0536 NULL
 #define pci_ss_list_8086_0537 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_0600[] = {
+	&pci_ss_info_8086_0600_8086_0136,
 	&pci_ss_info_8086_0600_8086_01af,
 	&pci_ss_info_8086_0600_8086_01c1,
 	&pci_ss_info_8086_0600_8086_01f7,
@@ -56810,6 +60693,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_8086_1008[] = {
 	&pci_ss_info_8086_1008_1014_0269,
+	&pci_ss_info_8086_1008_1028_011b,
 	&pci_ss_info_8086_1008_1028_011c,
 	&pci_ss_info_8086_1008_8086_1107,
 	&pci_ss_info_8086_1008_8086_2107,
@@ -56987,6 +60871,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_103c NULL
 static const pciSubsystemInfo *pci_ss_list_8086_103d[] = {
 	&pci_ss_info_8086_103d_1014_0522,
+	&pci_ss_info_8086_103d_8086_103d,
 	NULL
 };
 #define pci_ss_list_8086_103e NULL
@@ -56998,6 +60883,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_1043_103c_08b0,
 	&pci_ss_info_8086_1043_8086_2522,
 	&pci_ss_info_8086_1043_8086_2527,
+	&pci_ss_info_8086_1043_8086_2561,
 	&pci_ss_info_8086_1043_8086_2581,
 	NULL
 };
@@ -57006,7 +60892,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_1048_8086_a11f,
 	NULL
 };
-#define pci_ss_list_8086_1049 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_1049[] = {
+	&pci_ss_info_8086_1049_17aa_20b9,
+	NULL
+};
 #define pci_ss_list_8086_104a NULL
 #define pci_ss_list_8086_104b NULL
 #define pci_ss_list_8086_104c NULL
@@ -57030,6 +60919,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_105b NULL
 static const pciSubsystemInfo *pci_ss_list_8086_105e[] = {
 	&pci_ss_info_8086_105e_103c_7044,
+	&pci_ss_info_8086_105e_1775_1100,
 	&pci_ss_info_8086_105e_1775_6003,
 	&pci_ss_info_8086_105e_8086_005e,
 	&pci_ss_info_8086_105e_8086_105e,
@@ -57163,6 +61053,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_109a_17aa_2001,
 	&pci_ss_info_8086_109a_17aa_207e,
 	&pci_ss_info_8086_109a_8086_109a,
+	&pci_ss_info_8086_109a_8086_309c,
 	NULL
 };
 #define pci_ss_list_8086_109b NULL
@@ -57178,6 +61069,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_10a4_8086_11a4,
 	NULL
 };
+#define pci_ss_list_8086_10a5 NULL
 #define pci_ss_list_8086_10b0 NULL
 #define pci_ss_list_8086_10b2 NULL
 #define pci_ss_list_8086_10b3 NULL
@@ -57188,6 +61080,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_10b5_8086_1199,
 	NULL
 };
+#define pci_ss_list_8086_10b6 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_10b9[] = {
 	&pci_ss_info_8086_10b9_8086_1083,
 	&pci_ss_info_8086_10b9_8086_1093,
@@ -57200,8 +61093,16 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_10bc_8086_11bc,
 	NULL
 };
+#define pci_ss_list_8086_10bd NULL
+#define pci_ss_list_8086_10c0 NULL
+#define pci_ss_list_8086_10c2 NULL
+#define pci_ss_list_8086_10c3 NULL
 #define pci_ss_list_8086_10c4 NULL
 #define pci_ss_list_8086_10c5 NULL
+#define pci_ss_list_8086_10c6 NULL
+#define pci_ss_list_8086_10c7 NULL
+#define pci_ss_list_8086_10d9 NULL
+#define pci_ss_list_8086_10da NULL
 #define pci_ss_list_8086_1107 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_1130[] = {
 	&pci_ss_info_8086_1130_1025_1016,
@@ -57311,6 +61212,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_1229_144d_2501,
 	&pci_ss_info_8086_1229_144d_2502,
 	&pci_ss_info_8086_1229_1668_1100,
+	&pci_ss_info_8086_1229_1775_1100,
 	&pci_ss_info_8086_1229_1775_ce90,
 	&pci_ss_info_8086_1229_4c53_1080,
 	&pci_ss_info_8086_1229_4c53_10e0,
@@ -57483,6 +61385,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2413 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2415[] = {
 	&pci_ss_info_8086_2415_1028_0095,
+	&pci_ss_info_8086_2415_1028_00b4,
 	&pci_ss_info_8086_2415_110a_0051,
 	&pci_ss_info_8086_2415_11d4_0040,
 	&pci_ss_info_8086_2415_11d4_0048,
@@ -57561,6 +61464,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_2448[] = {
+	&pci_ss_info_8086_2448_103c_0934,
 	&pci_ss_info_8086_2448_103c_099c,
 	&pci_ss_info_8086_2448_144d_c00c,
 	&pci_ss_info_8086_2448_1734_1055,
@@ -57658,6 +61562,9 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_2485_1014_0222,
 	&pci_ss_info_8086_2485_1014_0508,
 	&pci_ss_info_8086_2485_1014_051c,
+	&pci_ss_info_8086_2485_1043_1583,
+	&pci_ss_info_8086_2485_1043_1623,
+	&pci_ss_info_8086_2485_1043_1643,
 	&pci_ss_info_8086_2485_104d_80e7,
 	&pci_ss_info_8086_2485_144d_c006,
 	NULL
@@ -57717,7 +61624,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24c2_1734_1004,
 	&pci_ss_info_8086_24c2_1734_1055,
 	&pci_ss_info_8086_24c2_4c53_1090,
+	&pci_ss_info_8086_24c2_8086_24c2,
 	&pci_ss_info_8086_24c2_8086_4541,
+	&pci_ss_info_8086_24c2_e4bf_0cc9,
+	&pci_ss_info_8086_24c2_e4bf_0cd2,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24c3[] = {
@@ -57725,16 +61635,20 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24c3_1014_052d,
 	&pci_ss_info_8086_24c3_1025_005a,
 	&pci_ss_info_8086_24c3_1028_0126,
+	&pci_ss_info_8086_24c3_1028_014f,
 	&pci_ss_info_8086_24c3_103c_088c,
 	&pci_ss_info_8086_24c3_103c_0890,
 	&pci_ss_info_8086_24c3_103c_08b0,
 	&pci_ss_info_8086_24c3_1071_8160,
+	&pci_ss_info_8086_24c3_144d_c005,
 	&pci_ss_info_8086_24c3_144d_c00c,
 	&pci_ss_info_8086_24c3_1458_24c2,
 	&pci_ss_info_8086_24c3_1462_5800,
 	&pci_ss_info_8086_24c3_1734_1004,
 	&pci_ss_info_8086_24c3_1734_1055,
 	&pci_ss_info_8086_24c3_4c53_1090,
+	&pci_ss_info_8086_24c3_e4bf_0cc9,
+	&pci_ss_info_8086_24c3_e4bf_0cd2,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24c4[] = {
@@ -57753,29 +61667,39 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24c4_1509_2990,
 	&pci_ss_info_8086_24c4_1734_1004,
 	&pci_ss_info_8086_24c4_4c53_1090,
+	&pci_ss_info_8086_24c4_8086_24c2,
 	&pci_ss_info_8086_24c4_8086_4541,
+	&pci_ss_info_8086_24c4_e4bf_0cc9,
+	&pci_ss_info_8086_24c4_e4bf_0cd2,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24c5[] = {
 	&pci_ss_info_8086_24c5_0e11_00b8,
 	&pci_ss_info_8086_24c5_1014_0267,
+	&pci_ss_info_8086_24c5_1014_0537,
 	&pci_ss_info_8086_24c5_1014_055f,
 	&pci_ss_info_8086_24c5_1025_005a,
 	&pci_ss_info_8086_24c5_1028_0139,
+	&pci_ss_info_8086_24c5_1028_014f,
 	&pci_ss_info_8086_24c5_1028_0163,
 	&pci_ss_info_8086_24c5_1028_0196,
 	&pci_ss_info_8086_24c5_103c_088c,
 	&pci_ss_info_8086_24c5_103c_0890,
 	&pci_ss_info_8086_24c5_103c_08b0,
 	&pci_ss_info_8086_24c5_1071_8160,
+	&pci_ss_info_8086_24c5_144d_c005,
 	&pci_ss_info_8086_24c5_144d_c00c,
 	&pci_ss_info_8086_24c5_1458_a002,
 	&pci_ss_info_8086_24c5_1462_5800,
 	&pci_ss_info_8086_24c5_1734_1005,
 	&pci_ss_info_8086_24c5_1734_1055,
+	&pci_ss_info_8086_24c5_8086_24c5,
+	&pci_ss_info_8086_24c5_a002_1458,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24c6[] = {
+	&pci_ss_info_8086_24c6_1014_0524,
+	&pci_ss_info_8086_24c6_1014_0525,
 	&pci_ss_info_8086_24c6_1014_0559,
 	&pci_ss_info_8086_24c6_1025_003c,
 	&pci_ss_info_8086_24c6_1025_005a,
@@ -57784,6 +61708,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24c6_103c_0890,
 	&pci_ss_info_8086_24c6_103c_08b0,
 	&pci_ss_info_8086_24c6_1071_8160,
+	&pci_ss_info_8086_24c6_144d_2115,
 	&pci_ss_info_8086_24c6_144d_c00c,
 	NULL
 };
@@ -57803,12 +61728,16 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24c7_1509_2990,
 	&pci_ss_info_8086_24c7_1734_1004,
 	&pci_ss_info_8086_24c7_4c53_1090,
+	&pci_ss_info_8086_24c7_8086_24c2,
 	&pci_ss_info_8086_24c7_8086_4541,
+	&pci_ss_info_8086_24c7_e4bf_0cc9,
+	&pci_ss_info_8086_24c7_e4bf_0cd2,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24ca[] = {
 	&pci_ss_info_8086_24ca_1014_052d,
 	&pci_ss_info_8086_24ca_1025_005a,
+	&pci_ss_info_8086_24ca_1028_014f,
 	&pci_ss_info_8086_24ca_1028_0163,
 	&pci_ss_info_8086_24ca_1028_0196,
 	&pci_ss_info_8086_24ca_103c_088c,
@@ -57827,6 +61756,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24cb_1462_5800,
 	&pci_ss_info_8086_24cb_1734_1004,
 	&pci_ss_info_8086_24cb_4c53_1090,
+	&pci_ss_info_8086_24cb_e4bf_0cc9,
+	&pci_ss_info_8086_24cb_e4bf_0cd2,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24cc[] = {
@@ -57854,6 +61785,9 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24cd_1734_1004,
 	&pci_ss_info_8086_24cd_1734_1055,
 	&pci_ss_info_8086_24cd_4c53_1090,
+	&pci_ss_info_8086_24cd_8086_24c2,
+	&pci_ss_info_8086_24cd_e4bf_0cc9,
+	&pci_ss_info_8086_24cd_e4bf_0cd2,
 	NULL
 };
 #define pci_ss_list_8086_24d0 NULL
@@ -57864,6 +61798,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24d1_1043_80a6,
 	&pci_ss_info_8086_24d1_1458_24d1,
 	&pci_ss_info_8086_24d1_1462_7280,
+	&pci_ss_info_8086_24d1_1565_5200,
 	&pci_ss_info_8086_24d1_15d9_4580,
 	&pci_ss_info_8086_24d1_8086_3427,
 	&pci_ss_info_8086_24d1_8086_4246,
@@ -57872,6 +61807,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24d2[] = {
+	&pci_ss_info_8086_24d2_1014_02dd,
 	&pci_ss_info_8086_24d2_1014_02ed,
 	&pci_ss_info_8086_24d2_1028_0169,
 	&pci_ss_info_8086_24d2_1028_0183,
@@ -57881,6 +61817,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24d2_1043_80a6,
 	&pci_ss_info_8086_24d2_1458_24d2,
 	&pci_ss_info_8086_24d2_1462_7280,
+	&pci_ss_info_8086_24d2_1565_3101,
 	&pci_ss_info_8086_24d2_15d9_4580,
 	&pci_ss_info_8086_24d2_1734_101c,
 	&pci_ss_info_8086_24d2_8086_3427,
@@ -57890,6 +61827,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24d3[] = {
+	&pci_ss_info_8086_24d3_1014_02dd,
 	&pci_ss_info_8086_24d3_1014_02ed,
 	&pci_ss_info_8086_24d3_1028_0156,
 	&pci_ss_info_8086_24d3_1028_0169,
@@ -57897,6 +61835,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24d3_1043_80a6,
 	&pci_ss_info_8086_24d3_1458_24d2,
 	&pci_ss_info_8086_24d3_1462_7280,
+	&pci_ss_info_8086_24d3_1565_3101,
 	&pci_ss_info_8086_24d3_15d9_4580,
 	&pci_ss_info_8086_24d3_1734_101c,
 	&pci_ss_info_8086_24d3_8086_3427,
@@ -57906,6 +61845,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24d4[] = {
+	&pci_ss_info_8086_24d4_1014_02dd,
 	&pci_ss_info_8086_24d4_1014_02ed,
 	&pci_ss_info_8086_24d4_1028_0169,
 	&pci_ss_info_8086_24d4_1028_0183,
@@ -57915,6 +61855,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24d4_1043_80a6,
 	&pci_ss_info_8086_24d4_1458_24d2,
 	&pci_ss_info_8086_24d4_1462_7280,
+	&pci_ss_info_8086_24d4_1565_3101,
 	&pci_ss_info_8086_24d4_15d9_4580,
 	&pci_ss_info_8086_24d4_1734_101c,
 	&pci_ss_info_8086_24d4_8086_3427,
@@ -57952,6 +61893,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24d7_1043_80a6,
 	&pci_ss_info_8086_24d7_1458_24d2,
 	&pci_ss_info_8086_24d7_1462_7280,
+	&pci_ss_info_8086_24d7_1565_3101,
 	&pci_ss_info_8086_24d7_15d9_4580,
 	&pci_ss_info_8086_24d7_1734_101c,
 	&pci_ss_info_8086_24d7_8086_3427,
@@ -57961,6 +61903,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_24db[] = {
+	&pci_ss_info_8086_24db_1014_02dd,
 	&pci_ss_info_8086_24db_1014_02ed,
 	&pci_ss_info_8086_24db_1028_0169,
 	&pci_ss_info_8086_24db_1028_019a,
@@ -57970,6 +61913,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24db_1458_24d2,
 	&pci_ss_info_8086_24db_1462_7280,
 	&pci_ss_info_8086_24db_1462_7580,
+	&pci_ss_info_8086_24db_1565_3101,
 	&pci_ss_info_8086_24db_15d9_4580,
 	&pci_ss_info_8086_24db_1734_101c,
 	&pci_ss_info_8086_24db_8086_24db,
@@ -57981,6 +61925,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_8086_24dc NULL
 static const pciSubsystemInfo *pci_ss_list_8086_24dd[] = {
+	&pci_ss_info_8086_24dd_1014_02dd,
 	&pci_ss_info_8086_24dd_1014_02ed,
 	&pci_ss_info_8086_24dd_1028_0169,
 	&pci_ss_info_8086_24dd_1028_0183,
@@ -58002,6 +61947,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_24de_1043_80a6,
 	&pci_ss_info_8086_24de_1458_24d2,
 	&pci_ss_info_8086_24de_1462_7280,
+	&pci_ss_info_8086_24de_1565_3101,
 	&pci_ss_info_8086_24de_15d9_4580,
 	&pci_ss_info_8086_24de_1734_101c,
 	&pci_ss_info_8086_24de_8086_3427,
@@ -58073,6 +62019,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_8086_2562[] = {
 	&pci_ss_info_8086_2562_0e11_00b9,
 	&pci_ss_info_8086_2562_1014_0267,
+	&pci_ss_info_8086_2562_1734_1003,
 	&pci_ss_info_8086_2562_1734_1004,
 	NULL
 };
@@ -58116,6 +62063,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_2582_1043_2582,
 	&pci_ss_info_8086_2582_1458_2582,
 	&pci_ss_info_8086_2582_1734_105b,
+	&pci_ss_info_8086_2582_1849_2582,
 	NULL
 };
 #define pci_ss_list_8086_2584 NULL
@@ -58125,26 +62073,39 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_258a NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2590[] = {
 	&pci_ss_info_8086_2590_1028_0182,
+	&pci_ss_info_8086_2590_103c_0934,
 	&pci_ss_info_8086_2590_103c_099c,
+	&pci_ss_info_8086_2590_104d_81b7,
 	&pci_ss_info_8086_2590_a304_81b7,
+	&pci_ss_info_8086_2590_e4bf_0ccd,
+	&pci_ss_info_8086_2590_e4bf_0cd3,
+	&pci_ss_info_8086_2590_e4bf_58b1,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_2591[] = {
+	&pci_ss_info_8086_2591_103c_0934,
 	NULL
 };
-#define pci_ss_list_8086_2591 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2592[] = {
 	&pci_ss_info_8086_2592_103c_099c,
 	&pci_ss_info_8086_2592_103c_308a,
 	&pci_ss_info_8086_2592_1043_1881,
+	&pci_ss_info_8086_2592_e4bf_0ccd,
+	&pci_ss_info_8086_2592_e4bf_0cd3,
+	&pci_ss_info_8086_2592_e4bf_58b1,
 	NULL
 };
 #define pci_ss_list_8086_25a1 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_25a2[] = {
 	&pci_ss_info_8086_25a2_1775_10d0,
+	&pci_ss_info_8086_25a2_1775_1100,
 	&pci_ss_info_8086_25a2_1775_ce90,
 	&pci_ss_info_8086_25a2_4c53_10b0,
 	&pci_ss_info_8086_25a2_4c53_10e0,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_25a3[] = {
+	&pci_ss_info_8086_25a3_1775_1100,
 	&pci_ss_info_8086_25a3_1775_ce90,
 	&pci_ss_info_8086_25a3_4c53_10b0,
 	&pci_ss_info_8086_25a3_4c53_10d0,
@@ -58153,6 +62114,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_8086_25a4[] = {
 	&pci_ss_info_8086_25a4_1775_10d0,
+	&pci_ss_info_8086_25a4_1775_1100,
 	&pci_ss_info_8086_25a4_1775_ce90,
 	&pci_ss_info_8086_25a4_4c53_10b0,
 	&pci_ss_info_8086_25a4_4c53_10d0,
@@ -58160,6 +62122,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_25a6[] = {
+	&pci_ss_info_8086_25a6_1775_1100,
 	&pci_ss_info_8086_25a6_1775_ce90,
 	&pci_ss_info_8086_25a6_4c53_10b0,
 	NULL
@@ -58167,6 +62130,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_25a7 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_25a9[] = {
 	&pci_ss_info_8086_25a9_1775_10d0,
+	&pci_ss_info_8086_25a9_1775_1100,
 	&pci_ss_info_8086_25a9_1775_ce90,
 	&pci_ss_info_8086_25a9_4c53_10b0,
 	&pci_ss_info_8086_25a9_4c53_10d0,
@@ -58174,6 +62138,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_25aa[] = {
+	&pci_ss_info_8086_25aa_1775_1100,
 	&pci_ss_info_8086_25aa_1775_ce90,
 	&pci_ss_info_8086_25aa_4c53_10b0,
 	&pci_ss_info_8086_25aa_4c53_10e0,
@@ -58181,6 +62146,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_8086_25ab[] = {
 	&pci_ss_info_8086_25ab_1775_10d0,
+	&pci_ss_info_8086_25ab_1775_1100,
 	&pci_ss_info_8086_25ab_1775_ce90,
 	&pci_ss_info_8086_25ab_4c53_10b0,
 	&pci_ss_info_8086_25ab_4c53_10d0,
@@ -58189,6 +62155,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_8086_25ac[] = {
 	&pci_ss_info_8086_25ac_1775_10d0,
+	&pci_ss_info_8086_25ac_1775_1100,
 	&pci_ss_info_8086_25ac_1775_ce90,
 	&pci_ss_info_8086_25ac_4c53_10b0,
 	&pci_ss_info_8086_25ac_4c53_10d0,
@@ -58197,6 +62164,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_8086_25ad[] = {
 	&pci_ss_info_8086_25ad_1775_10d0,
+	&pci_ss_info_8086_25ad_1775_1100,
 	&pci_ss_info_8086_25ad_1775_ce90,
 	&pci_ss_info_8086_25ad_4c53_10b0,
 	&pci_ss_info_8086_25ad_4c53_10d0,
@@ -58205,6 +62173,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_8086_25ae NULL
 static const pciSubsystemInfo *pci_ss_list_8086_25b0[] = {
+	&pci_ss_info_8086_25b0_1775_1100,
 	&pci_ss_info_8086_25b0_4c53_10d0,
 	&pci_ss_info_8086_25b0_4c53_10e0,
 	NULL
@@ -58265,9 +62234,13 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_8086_2640[] = {
 	&pci_ss_info_8086_2640_1462_7028,
 	&pci_ss_info_8086_2640_1734_105c,
+	&pci_ss_info_8086_2640_e4bf_0ccd,
+	&pci_ss_info_8086_2640_e4bf_0cd3,
+	&pci_ss_info_8086_2640_e4bf_58b1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_2641[] = {
+	&pci_ss_info_8086_2641_103c_0934,
 	&pci_ss_info_8086_2641_103c_099c,
 	NULL
 };
@@ -58277,6 +62250,9 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_2651_1043_2601,
 	&pci_ss_info_8086_2651_1734_105c,
 	&pci_ss_info_8086_2651_8086_4147,
+	&pci_ss_info_8086_2651_e4bf_0ccd,
+	&pci_ss_info_8086_2651_e4bf_0cd3,
+	&pci_ss_info_8086_2651_e4bf_58b1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_2652[] = {
@@ -58286,29 +62262,41 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2653 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2658[] = {
 	&pci_ss_info_8086_2658_1028_0179,
+	&pci_ss_info_8086_2658_103c_0934,
 	&pci_ss_info_8086_2658_103c_099c,
 	&pci_ss_info_8086_2658_1043_80a6,
 	&pci_ss_info_8086_2658_1458_2558,
 	&pci_ss_info_8086_2658_1462_7028,
 	&pci_ss_info_8086_2658_1734_105c,
+	&pci_ss_info_8086_2658_e4bf_0ccd,
+	&pci_ss_info_8086_2658_e4bf_0cd3,
+	&pci_ss_info_8086_2658_e4bf_58b1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_2659[] = {
 	&pci_ss_info_8086_2659_1028_0179,
+	&pci_ss_info_8086_2659_103c_0934,
 	&pci_ss_info_8086_2659_103c_099c,
 	&pci_ss_info_8086_2659_1043_80a6,
 	&pci_ss_info_8086_2659_1458_2659,
 	&pci_ss_info_8086_2659_1462_7028,
 	&pci_ss_info_8086_2659_1734_105c,
+	&pci_ss_info_8086_2659_e4bf_0ccd,
+	&pci_ss_info_8086_2659_e4bf_0cd3,
+	&pci_ss_info_8086_2659_e4bf_58b1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_265a[] = {
 	&pci_ss_info_8086_265a_1028_0179,
+	&pci_ss_info_8086_265a_103c_0934,
 	&pci_ss_info_8086_265a_103c_099c,
 	&pci_ss_info_8086_265a_1043_80a6,
 	&pci_ss_info_8086_265a_1458_265a,
 	&pci_ss_info_8086_265a_1462_7028,
 	&pci_ss_info_8086_265a_1734_105c,
+	&pci_ss_info_8086_265a_e4bf_0ccd,
+	&pci_ss_info_8086_265a_e4bf_0cd3,
+	&pci_ss_info_8086_265a_e4bf_58b1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_265b[] = {
@@ -58318,25 +62306,52 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_265b_1458_265a,
 	&pci_ss_info_8086_265b_1462_7028,
 	&pci_ss_info_8086_265b_1734_105c,
+	&pci_ss_info_8086_265b_e4bf_0ccd,
+	&pci_ss_info_8086_265b_e4bf_0cd3,
+	&pci_ss_info_8086_265b_e4bf_58b1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_265c[] = {
 	&pci_ss_info_8086_265c_1028_0179,
+	&pci_ss_info_8086_265c_103c_0934,
 	&pci_ss_info_8086_265c_103c_099c,
 	&pci_ss_info_8086_265c_1043_80a6,
 	&pci_ss_info_8086_265c_1458_5006,
 	&pci_ss_info_8086_265c_1462_7028,
 	&pci_ss_info_8086_265c_1734_105c,
 	&pci_ss_info_8086_265c_8086_265c,
+	&pci_ss_info_8086_265c_e4bf_0ccd,
+	&pci_ss_info_8086_265c_e4bf_0cd3,
+	&pci_ss_info_8086_265c_e4bf_58b1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_2660[] = {
+	&pci_ss_info_8086_2660_103c_0934,
 	&pci_ss_info_8086_2660_103c_099c,
+	&pci_ss_info_8086_2660_e4bf_0ccd,
+	&pci_ss_info_8086_2660_e4bf_0cd3,
+	&pci_ss_info_8086_2660_e4bf_58b1,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_2662[] = {
+	&pci_ss_info_8086_2662_103c_0934,
+	&pci_ss_info_8086_2662_e4bf_0ccd,
+	&pci_ss_info_8086_2662_e4bf_0cd3,
+	&pci_ss_info_8086_2662_e4bf_58b1,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_2664[] = {
+	&pci_ss_info_8086_2664_e4bf_0ccd,
+	&pci_ss_info_8086_2664_e4bf_0cd3,
+	&pci_ss_info_8086_2664_e4bf_58b1,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_2666[] = {
+	&pci_ss_info_8086_2666_e4bf_0ccd,
+	&pci_ss_info_8086_2666_e4bf_0cd3,
+	&pci_ss_info_8086_2666_e4bf_58b1,
 	NULL
 };
-#define pci_ss_list_8086_2662 NULL
-#define pci_ss_list_8086_2664 NULL
-#define pci_ss_list_8086_2666 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2668[] = {
 	&pci_ss_info_8086_2668_103c_2a09,
 	&pci_ss_info_8086_2668_1043_814e,
@@ -58348,11 +62363,15 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_266a_1458_266a,
 	&pci_ss_info_8086_266a_1462_7028,
 	&pci_ss_info_8086_266a_1734_105c,
+	&pci_ss_info_8086_266a_e4bf_0ccd,
+	&pci_ss_info_8086_266a_e4bf_0cd3,
+	&pci_ss_info_8086_266a_e4bf_58b1,
 	NULL
 };
 #define pci_ss_list_8086_266c NULL
 static const pciSubsystemInfo *pci_ss_list_8086_266d[] = {
 	&pci_ss_info_8086_266d_1025_006a,
+	&pci_ss_info_8086_266d_103c_0934,
 	&pci_ss_info_8086_266d_103c_099c,
 	NULL
 };
@@ -58361,6 +62380,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_266e_1028_0179,
 	&pci_ss_info_8086_266e_1028_0182,
 	&pci_ss_info_8086_266e_1028_0188,
+	&pci_ss_info_8086_266e_103c_0934,
 	&pci_ss_info_8086_266e_103c_0944,
 	&pci_ss_info_8086_266e_103c_099c,
 	&pci_ss_info_8086_266e_103c_3006,
@@ -58370,11 +62390,15 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_266f[] = {
+	&pci_ss_info_8086_266f_103c_0934,
 	&pci_ss_info_8086_266f_103c_099c,
 	&pci_ss_info_8086_266f_1043_80a6,
 	&pci_ss_info_8086_266f_1458_266f,
 	&pci_ss_info_8086_266f_1462_7028,
 	&pci_ss_info_8086_266f_1734_105c,
+	&pci_ss_info_8086_266f_e4bf_0ccd,
+	&pci_ss_info_8086_266f_e4bf_0cd3,
+	&pci_ss_info_8086_266f_e4bf_58b1,
 	NULL
 };
 #define pci_ss_list_8086_2670 NULL
@@ -58412,7 +62436,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2778 NULL
 #define pci_ss_list_8086_2779 NULL
 #define pci_ss_list_8086_277a NULL
-#define pci_ss_list_8086_277c NULL
+static const pciSubsystemInfo *pci_ss_list_8086_277c[] = {
+	&pci_ss_info_8086_277c_1043_8178,
+	NULL
+};
 #define pci_ss_list_8086_277d NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2782[] = {
 	&pci_ss_info_8086_2782_1043_2582,
@@ -58422,9 +62449,13 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_8086_2792[] = {
 	&pci_ss_info_8086_2792_103c_099c,
 	&pci_ss_info_8086_2792_1043_1881,
+	&pci_ss_info_8086_2792_e4bf_0ccd,
+	&pci_ss_info_8086_2792_e4bf_0cd3,
+	&pci_ss_info_8086_2792_e4bf_58b1,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_27a0[] = {
+	&pci_ss_info_8086_27a0_1025_006c,
 	&pci_ss_info_8086_27a0_103c_30a1,
 	&pci_ss_info_8086_27a0_17aa_2017,
 	NULL
@@ -58440,7 +62471,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_27a6_17aa_201a,
 	NULL
 };
-#define pci_ss_list_8086_27b0 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_27b0[] = {
+	&pci_ss_info_8086_27b0_8086_544e,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_8086_27b8[] = {
 	&pci_ss_info_8086_27b8_107b_5048,
 	&pci_ss_info_8086_27b8_8086_544e,
@@ -58452,21 +62486,32 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_27b9_17aa_2009,
 	NULL
 };
-#define pci_ss_list_8086_27bd NULL
+static const pciSubsystemInfo *pci_ss_list_8086_27bd[] = {
+	&pci_ss_info_8086_27bd_1025_006c,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_8086_27c0[] = {
 	&pci_ss_info_8086_27c0_107b_5048,
+	&pci_ss_info_8086_27c0_1462_7236,
 	&pci_ss_info_8086_27c0_8086_544e,
 	NULL
 };
 #define pci_ss_list_8086_27c1 NULL
-#define pci_ss_list_8086_27c3 NULL
-#define pci_ss_list_8086_27c4 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_27c3[] = {
+	&pci_ss_info_8086_27c3_8086_544e,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_27c4[] = {
+	&pci_ss_info_8086_27c4_1025_006c,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_8086_27c5[] = {
 	&pci_ss_info_8086_27c5_17aa_200d,
 	NULL
 };
 #define pci_ss_list_8086_27c6 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_27c8[] = {
+	&pci_ss_info_8086_27c8_1025_006c,
 	&pci_ss_info_8086_27c8_103c_30a1,
 	&pci_ss_info_8086_27c8_107b_5048,
 	&pci_ss_info_8086_27c8_17aa_200a,
@@ -58474,6 +62519,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_27c9[] = {
+	&pci_ss_info_8086_27c9_1025_006c,
 	&pci_ss_info_8086_27c9_103c_30a1,
 	&pci_ss_info_8086_27c9_107b_5048,
 	&pci_ss_info_8086_27c9_17aa_200a,
@@ -58481,6 +62527,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_27ca[] = {
+	&pci_ss_info_8086_27ca_1025_006c,
 	&pci_ss_info_8086_27ca_103c_30a1,
 	&pci_ss_info_8086_27ca_107b_5048,
 	&pci_ss_info_8086_27ca_17aa_200a,
@@ -58488,6 +62535,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_27cb[] = {
+	&pci_ss_info_8086_27cb_1025_006c,
 	&pci_ss_info_8086_27cb_103c_30a1,
 	&pci_ss_info_8086_27cb_107b_5048,
 	&pci_ss_info_8086_27cb_17aa_200a,
@@ -58495,6 +62543,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_27cc[] = {
+	&pci_ss_info_8086_27cc_1025_006c,
 	&pci_ss_info_8086_27cc_103c_30a1,
 	&pci_ss_info_8086_27cc_17aa_200b,
 	&pci_ss_info_8086_27cc_8086_544e,
@@ -58505,16 +62554,21 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_27d4 NULL
 #define pci_ss_list_8086_27d6 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_27d8[] = {
+	&pci_ss_info_8086_27d8_1025_006c,
 	&pci_ss_info_8086_27d8_103c_30a1,
+	&pci_ss_info_8086_27d8_1043_13c4,
 	&pci_ss_info_8086_27d8_107b_5048,
 	&pci_ss_info_8086_27d8_10f7_8338,
 	&pci_ss_info_8086_27d8_1179_ff31,
 	&pci_ss_info_8086_27d8_152d_0753,
 	&pci_ss_info_8086_27d8_1734_10ad,
 	&pci_ss_info_8086_27d8_17aa_2010,
+	&pci_ss_info_8086_27d8_17aa_3802,
+	&pci_ss_info_8086_27d8_8086_1112,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_27da[] = {
+	&pci_ss_info_8086_27da_1025_006c,
 	&pci_ss_info_8086_27da_10f7_8338,
 	&pci_ss_info_8086_27da_17aa_200f,
 	&pci_ss_info_8086_27da_8086_544e,
@@ -58525,7 +62579,10 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_8086_27dd NULL
-#define pci_ss_list_8086_27de NULL
+static const pciSubsystemInfo *pci_ss_list_8086_27de[] = {
+	&pci_ss_info_8086_27de_1462_7267,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_8086_27df[] = {
 	&pci_ss_info_8086_27df_103c_30a1,
 	&pci_ss_info_8086_27df_107b_5048,
@@ -58566,14 +62623,21 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2832 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2834[] = {
 	&pci_ss_info_8086_2834_1462_7235,
+	&pci_ss_info_8086_2834_17aa_20aa,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_2835[] = {
+	&pci_ss_info_8086_2835_17aa_20aa,
 	NULL
 };
-#define pci_ss_list_8086_2835 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_2836[] = {
 	&pci_ss_info_8086_2836_1462_7235,
 	NULL
 };
-#define pci_ss_list_8086_283a NULL
+static const pciSubsystemInfo *pci_ss_list_8086_283a[] = {
+	&pci_ss_info_8086_283a_17aa_20ab,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_8086_283e[] = {
 	&pci_ss_info_8086_283e_1462_7235,
 	NULL
@@ -58584,10 +62648,19 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2845 NULL
 #define pci_ss_list_8086_2847 NULL
 #define pci_ss_list_8086_2849 NULL
-#define pci_ss_list_8086_284b NULL
+static const pciSubsystemInfo *pci_ss_list_8086_284b[] = {
+	&pci_ss_info_8086_284b_17aa_20ac,
+	NULL
+};
 #define pci_ss_list_8086_284f NULL
 #define pci_ss_list_8086_2850 NULL
-#define pci_ss_list_8086_2910 NULL
+#define pci_ss_list_8086_2911 NULL
+#define pci_ss_list_8086_2912 NULL
+#define pci_ss_list_8086_2914 NULL
+#define pci_ss_list_8086_2916 NULL
+#define pci_ss_list_8086_2917 NULL
+#define pci_ss_list_8086_2918 NULL
+#define pci_ss_list_8086_2919 NULL
 #define pci_ss_list_8086_2920 NULL
 #define pci_ss_list_8086_2921 NULL
 #define pci_ss_list_8086_2922 NULL
@@ -58595,6 +62668,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2925 NULL
 #define pci_ss_list_8086_2926 NULL
 #define pci_ss_list_8086_2928 NULL
+#define pci_ss_list_8086_2929 NULL
+#define pci_ss_list_8086_292c NULL
 #define pci_ss_list_8086_292d NULL
 #define pci_ss_list_8086_292e NULL
 #define pci_ss_list_8086_2930 NULL
@@ -58634,9 +62709,15 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2995 NULL
 #define pci_ss_list_8086_2996 NULL
 #define pci_ss_list_8086_2997 NULL
-#define pci_ss_list_8086_29a0 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_29a0[] = {
+	&pci_ss_info_8086_29a0_1462_7276,
+	NULL
+};
 #define pci_ss_list_8086_29a1 NULL
-#define pci_ss_list_8086_29a2 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_29a2[] = {
+	&pci_ss_info_8086_29a2_1462_7276,
+	NULL
+};
 #define pci_ss_list_8086_29a3 NULL
 #define pci_ss_list_8086_29a4 NULL
 #define pci_ss_list_8086_29a5 NULL
@@ -58659,6 +62740,14 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_29c6 NULL
 #define pci_ss_list_8086_29c7 NULL
 #define pci_ss_list_8086_29cf NULL
+#define pci_ss_list_8086_29d0 NULL
+#define pci_ss_list_8086_29d1 NULL
+#define pci_ss_list_8086_29d2 NULL
+#define pci_ss_list_8086_29d3 NULL
+#define pci_ss_list_8086_29d4 NULL
+#define pci_ss_list_8086_29d5 NULL
+#define pci_ss_list_8086_29d6 NULL
+#define pci_ss_list_8086_29d7 NULL
 #define pci_ss_list_8086_29e0 NULL
 #define pci_ss_list_8086_29e1 NULL
 #define pci_ss_list_8086_29e4 NULL
@@ -58673,7 +62762,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_29f6 NULL
 #define pci_ss_list_8086_29f7 NULL
 #define pci_ss_list_8086_29f9 NULL
-#define pci_ss_list_8086_2a00 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_2a00[] = {
+	&pci_ss_info_8086_2a00_17aa_20b1,
+	NULL
+};
 #define pci_ss_list_8086_2a01 NULL
 #define pci_ss_list_8086_2a02 NULL
 #define pci_ss_list_8086_2a03 NULL
@@ -58681,12 +62773,16 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_2a05 NULL
 #define pci_ss_list_8086_2a06 NULL
 #define pci_ss_list_8086_2a07 NULL
-#define pci_ss_list_8086_3092 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_3200[] = {
 	&pci_ss_info_8086_3200_1775_c200,
 	NULL
 };
+#define pci_ss_list_8086_3313 NULL
+#define pci_ss_list_8086_331b NULL
+#define pci_ss_list_8086_3331 NULL
+#define pci_ss_list_8086_3339 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_3340[] = {
+	&pci_ss_info_8086_3340_1014_0529,
 	&pci_ss_info_8086_3340_1025_005a,
 	&pci_ss_info_8086_3340_103c_088c,
 	&pci_ss_info_8086_3340_103c_0890,
@@ -58698,6 +62794,9 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_3341_144d_c00c,
 	NULL
 };
+#define pci_ss_list_8086_3363 NULL
+#define pci_ss_list_8086_33c3 NULL
+#define pci_ss_list_8086_33cb NULL
 #define pci_ss_list_8086_3500 NULL
 #define pci_ss_list_8086_3501 NULL
 #define pci_ss_list_8086_3504 NULL
@@ -58725,6 +62824,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_8086_3580[] = {
 	&pci_ss_info_8086_3580_1014_055c,
 	&pci_ss_info_8086_3580_1028_0139,
+	&pci_ss_info_8086_3580_1028_014f,
 	&pci_ss_info_8086_3580_1028_0163,
 	&pci_ss_info_8086_3580_1028_0196,
 	&pci_ss_info_8086_3580_1734_1055,
@@ -58732,6 +62832,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_3580_1775_ce90,
 	&pci_ss_info_8086_3580_4c53_10b0,
 	&pci_ss_info_8086_3580_4c53_10e0,
+	&pci_ss_info_8086_3580_e4bf_0cc9,
+	&pci_ss_info_8086_3580_e4bf_0cd2,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_3581[] = {
@@ -58741,16 +62843,20 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_8086_3582[] = {
 	&pci_ss_info_8086_3582_1014_0562,
 	&pci_ss_info_8086_3582_1028_0139,
+	&pci_ss_info_8086_3582_1028_014f,
 	&pci_ss_info_8086_3582_1028_0163,
 	&pci_ss_info_8086_3582_1775_10d0,
 	&pci_ss_info_8086_3582_1775_ce90,
 	&pci_ss_info_8086_3582_4c53_10b0,
 	&pci_ss_info_8086_3582_4c53_10e0,
+	&pci_ss_info_8086_3582_e4bf_0cc9,
+	&pci_ss_info_8086_3582_e4bf_0cd2,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_3584[] = {
 	&pci_ss_info_8086_3584_1014_055d,
 	&pci_ss_info_8086_3584_1028_0139,
+	&pci_ss_info_8086_3584_1028_014f,
 	&pci_ss_info_8086_3584_1028_0163,
 	&pci_ss_info_8086_3584_1028_0196,
 	&pci_ss_info_8086_3584_1734_1055,
@@ -58763,6 +62869,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_8086_3585[] = {
 	&pci_ss_info_8086_3585_1014_055e,
 	&pci_ss_info_8086_3585_1028_0139,
+	&pci_ss_info_8086_3585_1028_014f,
 	&pci_ss_info_8086_3585_1028_0163,
 	&pci_ss_info_8086_3585_1028_0196,
 	&pci_ss_info_8086_3585_1734_1055,
@@ -58773,12 +62880,15 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_3590[] = {
+	&pci_ss_info_8086_3590_1014_02dd,
 	&pci_ss_info_8086_3590_1028_019a,
 	&pci_ss_info_8086_3590_1734_103e,
+	&pci_ss_info_8086_3590_1775_1100,
 	&pci_ss_info_8086_3590_4c53_10d0,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_8086_3591[] = {
+	&pci_ss_info_8086_3591_1014_02dd,
 	&pci_ss_info_8086_3591_1028_0169,
 	&pci_ss_info_8086_3591_4c53_10d0,
 	NULL
@@ -58786,16 +62896,32 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_3592 NULL
 #define pci_ss_list_8086_3593 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_3594[] = {
+	&pci_ss_info_8086_3594_1775_1100,
 	&pci_ss_info_8086_3594_4c53_10d0,
 	NULL
 };
-#define pci_ss_list_8086_3595 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_3595[] = {
+	&pci_ss_info_8086_3595_1775_1100,
+	NULL
+};
 #define pci_ss_list_8086_3596 NULL
-#define pci_ss_list_8086_3597 NULL
-#define pci_ss_list_8086_3598 NULL
-#define pci_ss_list_8086_3599 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_3597[] = {
+	&pci_ss_info_8086_3597_1775_1100,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_3598[] = {
+	&pci_ss_info_8086_3598_1775_1100,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_3599[] = {
+	&pci_ss_info_8086_3599_1775_1100,
+	NULL
+};
 #define pci_ss_list_8086_359a NULL
-#define pci_ss_list_8086_359b NULL
+static const pciSubsystemInfo *pci_ss_list_8086_359b[] = {
+	&pci_ss_info_8086_359b_1014_02dd,
+	NULL
+};
 static const pciSubsystemInfo *pci_ss_list_8086_359e[] = {
 	&pci_ss_info_8086_359e_1028_0169,
 	NULL
@@ -58821,6 +62947,8 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_360f NULL
 #define pci_ss_list_8086_3610 NULL
 #define pci_ss_list_8086_4000 NULL
+#define pci_ss_list_8086_4001 NULL
+#define pci_ss_list_8086_4003 NULL
 #define pci_ss_list_8086_4008 NULL
 #define pci_ss_list_8086_4010 NULL
 #define pci_ss_list_8086_4021 NULL
@@ -58840,7 +62968,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_8086_4035 NULL
 #define pci_ss_list_8086_4036 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_4220[] = {
-	&pci_ss_info_8086_4220_2731_8086,
+	&pci_ss_info_8086_4220_103c_12f6,
 	&pci_ss_info_8086_4220_8086_2731,
 	NULL
 };
@@ -58860,7 +62988,45 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_4227_8086_1014,
 	NULL
 };
+#define pci_ss_list_8086_4229 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_4230[] = {
+	&pci_ss_info_8086_4230_8086_1110,
+	NULL
+};
+#define pci_ss_list_8086_444e NULL
 #define pci_ss_list_8086_5001 NULL
+#define pci_ss_list_8086_5020 NULL
+#define pci_ss_list_8086_5021 NULL
+#define pci_ss_list_8086_5023 NULL
+#define pci_ss_list_8086_5024 NULL
+#define pci_ss_list_8086_5025 NULL
+#define pci_ss_list_8086_5028 NULL
+#define pci_ss_list_8086_5029 NULL
+#define pci_ss_list_8086_502a NULL
+#define pci_ss_list_8086_502b NULL
+#define pci_ss_list_8086_5031 NULL
+#define pci_ss_list_8086_5032 NULL
+#define pci_ss_list_8086_5033 NULL
+#define pci_ss_list_8086_5035 NULL
+#define pci_ss_list_8086_5037 NULL
+#define pci_ss_list_8086_5039 NULL
+#define pci_ss_list_8086_503a NULL
+#define pci_ss_list_8086_503b NULL
+#define pci_ss_list_8086_503c NULL
+#define pci_ss_list_8086_503d NULL
+#define pci_ss_list_8086_503e NULL
+#define pci_ss_list_8086_5040 NULL
+#define pci_ss_list_8086_5041 NULL
+#define pci_ss_list_8086_5042 NULL
+#define pci_ss_list_8086_5043 NULL
+#define pci_ss_list_8086_5044 NULL
+#define pci_ss_list_8086_5045 NULL
+#define pci_ss_list_8086_5046 NULL
+#define pci_ss_list_8086_5047 NULL
+#define pci_ss_list_8086_5048 NULL
+#define pci_ss_list_8086_5049 NULL
+#define pci_ss_list_8086_504a NULL
+#define pci_ss_list_8086_504b NULL
 #define pci_ss_list_8086_5200 NULL
 static const pciSubsystemInfo *pci_ss_list_8086_5201[] = {
 	&pci_ss_info_8086_5201_8086_0001,
@@ -58920,8 +63086,14 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_8086_7122 NULL
 #define pci_ss_list_8086_7123 NULL
-#define pci_ss_list_8086_7124 NULL
-#define pci_ss_list_8086_7125 NULL
+static const pciSubsystemInfo *pci_ss_list_8086_7124[] = {
+	&pci_ss_info_8086_7124_1028_00b4,
+	NULL
+};
+static const pciSubsystemInfo *pci_ss_list_8086_7125[] = {
+	&pci_ss_info_8086_7125_1028_00b4,
+	NULL
+};
 #define pci_ss_list_8086_7126 NULL
 #define pci_ss_list_8086_7128 NULL
 #define pci_ss_list_8086_712a NULL
@@ -58987,6 +63159,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_7800_8086_0100,
 	NULL
 };
+#define pci_ss_list_8086_8002 NULL
 #define pci_ss_list_8086_84c4 NULL
 #define pci_ss_list_8086_84c5 NULL
 #define pci_ss_list_8086_84ca NULL
@@ -59024,6 +63197,11 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_b555_e4bf_1000,
 	NULL
 };
+#define pci_ss_list_80ee_beef NULL
+#define pci_ss_list_80ee_cafe NULL
+#define pci_ss_list_8384_7618 NULL
+#define pci_ss_list_8384_7670 NULL
+#define pci_ss_list_8384_7672 NULL
 #define pci_ss_list_8686_1010 NULL
 #define pci_ss_list_8800_2008 NULL
 #define pci_ss_list_8c4a_1980 NULL
@@ -59217,6 +63395,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_008f_15d9_9005,
 	NULL
 };
+#define pci_ss_list_9005_0092 NULL
+#define pci_ss_list_9005_0093 NULL
 static const pciSubsystemInfo *pci_ss_list_9005_00c0[] = {
 	&pci_ss_info_9005_00c0_0e11_f620,
 	&pci_ss_info_9005_00c0_9005_f620,
@@ -59258,6 +63438,13 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_0285_1028_0287,
 	&pci_ss_info_9005_0285_1028_0291,
 	&pci_ss_info_9005_0285_103c_3227,
+	&pci_ss_info_9005_0285_108e_0286,
+	&pci_ss_info_9005_0285_108e_0287,
+	&pci_ss_info_9005_0285_108e_7aac,
+	&pci_ss_info_9005_0285_15d9_02b5,
+	&pci_ss_info_9005_0285_15d9_02b6,
+	&pci_ss_info_9005_0285_15d9_02c9,
+	&pci_ss_info_9005_0285_15d9_02ca,
 	&pci_ss_info_9005_0285_17aa_0286,
 	&pci_ss_info_9005_0285_17aa_0287,
 	&pci_ss_info_9005_0285_9005_0285,
@@ -59278,9 +63465,28 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_0285_9005_0298,
 	&pci_ss_info_9005_0285_9005_0299,
 	&pci_ss_info_9005_0285_9005_029a,
+	&pci_ss_info_9005_0285_9005_02a4,
+	&pci_ss_info_9005_0285_9005_02a5,
 	&pci_ss_info_9005_0285_9005_02b5,
 	&pci_ss_info_9005_0285_9005_02b6,
 	&pci_ss_info_9005_0285_9005_02b7,
+	&pci_ss_info_9005_0285_9005_02b8,
+	&pci_ss_info_9005_0285_9005_02b9,
+	&pci_ss_info_9005_0285_9005_02ba,
+	&pci_ss_info_9005_0285_9005_02bb,
+	&pci_ss_info_9005_0285_9005_02bc,
+	&pci_ss_info_9005_0285_9005_02bd,
+	&pci_ss_info_9005_0285_9005_02be,
+	&pci_ss_info_9005_0285_9005_02bf,
+	&pci_ss_info_9005_0285_9005_02c0,
+	&pci_ss_info_9005_0285_9005_02c1,
+	&pci_ss_info_9005_0285_9005_02c2,
+	&pci_ss_info_9005_0285_9005_02c3,
+	&pci_ss_info_9005_0285_9005_02c4,
+	&pci_ss_info_9005_0285_9005_02c5,
+	&pci_ss_info_9005_0285_9005_02c6,
+	&pci_ss_info_9005_0285_9005_02c7,
+	&pci_ss_info_9005_0285_9005_02c8,
 	NULL
 };
 static const pciSubsystemInfo *pci_ss_list_9005_0286[] = {
@@ -59343,6 +63549,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 static const pciSubsystemInfo *pci_ss_list_9005_0503[] = {
 	&pci_ss_info_9005_0503_1014_02bf,
+	&pci_ss_info_9005_0503_1014_02c3,
 	&pci_ss_info_9005_0503_1014_02d5,
 	NULL
 };
@@ -59361,9 +63568,16 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_9005_8014 NULL
 #define pci_ss_list_9005_8015 NULL
 #define pci_ss_list_9005_8016 NULL
-#define pci_ss_list_9005_8017 NULL
+static const pciSubsystemInfo *pci_ss_list_9005_8017[] = {
+	&pci_ss_info_9005_8017_9005_0044,
+	&pci_ss_info_9005_8017_9005_0045,
+	NULL
+};
 #define pci_ss_list_9005_801c NULL
-#define pci_ss_list_9005_801d NULL
+static const pciSubsystemInfo *pci_ss_list_9005_801d[] = {
+	&pci_ss_info_9005_801d_1014_02cc,
+	NULL
+};
 #define pci_ss_list_9005_801e NULL
 static const pciSubsystemInfo *pci_ss_list_9005_801f[] = {
 	&pci_ss_info_9005_801f_1734_1011,
@@ -59380,7 +63594,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_9005_8096 NULL
 #define pci_ss_list_9005_8097 NULL
 #define pci_ss_list_9005_809c NULL
-#define pci_ss_list_9005_809d NULL
+static const pciSubsystemInfo *pci_ss_list_9005_809d[] = {
+	&pci_ss_info_9005_809d_1014_02cc,
+	NULL
+};
 #define pci_ss_list_9005_809e NULL
 #define pci_ss_list_9005_809f NULL
 #endif
@@ -59419,13 +63636,15 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_cafe_0003 NULL
 #define pci_ss_list_cddd_0101 NULL
 #define pci_ss_list_cddd_0200 NULL
+#define pci_ss_list_d161_0120 NULL
 #define pci_ss_list_d161_0205 NULL
 #define pci_ss_list_d161_0210 NULL
 #define pci_ss_list_d161_0405 NULL
-#define pci_ss_list_d161_0406 NULL
 #define pci_ss_list_d161_0410 NULL
-#define pci_ss_list_d161_0411 NULL
+#define pci_ss_list_d161_0800 NULL
 #define pci_ss_list_d161_2400 NULL
+#define pci_ss_list_d161_3400 NULL
+#define pci_ss_list_d161_b410 NULL
 #define pci_ss_list_d4d4_0601 NULL
 #define pci_ss_list_deaf_9050 NULL
 #define pci_ss_list_deaf_9051 NULL
@@ -59563,6 +63782,7 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_0291 NULL
 #define pci_ss_list_02ac NULL
+#define pci_ss_list_02e0 NULL
 #define pci_ss_list_0315 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_0357[] = {
@@ -59576,6 +63796,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_0482 NULL
 #define pci_ss_list_04cf NULL
 #define pci_ss_list_050d NULL
+#define pci_ss_list_058f NULL
 #define pci_ss_list_05a9 NULL
 #define pci_ss_list_05e3 NULL
 #define pci_ss_list_066f NULL
@@ -59667,6 +63888,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_0e11_4080,
 	&pci_ss_info_0e11_4082,
 	&pci_ss_info_0e11_4083,
+	&pci_ss_info_0e11_4091,
 	&pci_ss_info_0e11_409a,
 	&pci_ss_info_0e11_409b,
 	&pci_ss_info_0e11_409c,
@@ -59765,6 +63987,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1000_1010,
 	&pci_ss_info_1000_1011,
 	&pci_ss_info_1000_1012,
+	&pci_ss_info_1000_1016,
 	&pci_ss_info_1000_1020,
 	&pci_ss_info_1000_2004,
 	&pci_ss_info_1000_2005,
@@ -59887,7 +64110,14 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
-#define pci_ss_list_100b NULL
+static const pciSubsystemInfo *pci_ss_list_100b[] = {
+	&pci_ss_info_100b_0500,
+	&pci_ss_info_100b_0501,
+	&pci_ss_info_100b_0502,
+	&pci_ss_info_100b_0503,
+	&pci_ss_info_100b_0505,
+	NULL
+};
 #define pci_ss_list_100c NULL
 #define pci_ss_list_100d NULL
 #define pci_ss_list_100e NULL
@@ -60018,18 +64248,24 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1014_02c0,
 	&pci_ss_info_1014_02c1,
 	&pci_ss_info_1014_02c2,
+	&pci_ss_info_1014_02c3,
 	&pci_ss_info_1014_02c6,
 	&pci_ss_info_1014_02c8,
+	&pci_ss_info_1014_02cc,
 	&pci_ss_info_1014_02d3,
 	&pci_ss_info_1014_02d4,
 	&pci_ss_info_1014_02d5,
+	&pci_ss_info_1014_02dd,
 	&pci_ss_info_1014_02ed,
 	&pci_ss_info_1014_02f2,
 	&pci_ss_info_1014_030d,
+	&pci_ss_info_1014_0338,
 	&pci_ss_info_1014_034d,
+	&pci_ss_info_1014_0360,
 	&pci_ss_info_1014_0363,
 	&pci_ss_info_1014_0364,
 	&pci_ss_info_1014_0365,
+	&pci_ss_info_1014_0379,
 	&pci_ss_info_1014_0502,
 	&pci_ss_info_1014_0503,
 	&pci_ss_info_1014_0506,
@@ -60043,11 +64279,15 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1014_051a,
 	&pci_ss_info_1014_051c,
 	&pci_ss_info_1014_0522,
+	&pci_ss_info_1014_0524,
+	&pci_ss_info_1014_0525,
 	&pci_ss_info_1014_0528,
+	&pci_ss_info_1014_0529,
 	&pci_ss_info_1014_052c,
 	&pci_ss_info_1014_052d,
 	&pci_ss_info_1014_052e,
 	&pci_ss_info_1014_0535,
+	&pci_ss_info_1014_0537,
 	&pci_ss_info_1014_053a,
 	&pci_ss_info_1014_053b,
 	&pci_ss_info_1014_053c,
@@ -60056,6 +64296,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1014_0540,
 	&pci_ss_info_1014_0545,
 	&pci_ss_info_1014_0549,
+	&pci_ss_info_1014_054d,
 	&pci_ss_info_1014_0556,
 	&pci_ss_info_1014_0559,
 	&pci_ss_info_1014_055c,
@@ -60108,7 +64349,14 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
-#define pci_ss_list_101a NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_101a[] = {
+	&pci_ss_info_101a_0019,
+	&pci_ss_info_101a_001f,
+	&pci_ss_info_101a_0ece,
+	NULL
+};
+#endif
 #define pci_ss_list_101b NULL
 #define pci_ss_list_101c NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -60157,14 +64405,17 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_1024 NULL
 static const pciSubsystemInfo *pci_ss_list_1025[] = {
+	&pci_ss_info_1025_0009,
 	&pci_ss_info_1025_000e,
 	&pci_ss_info_1025_0018,
 	&pci_ss_info_1025_003c,
 	&pci_ss_info_1025_004d,
 	&pci_ss_info_1025_005a,
 	&pci_ss_info_1025_006a,
+	&pci_ss_info_1025_006c,
 	&pci_ss_info_1025_0079,
 	&pci_ss_info_1025_0080,
+	&pci_ss_info_1025_0091,
 	&pci_ss_info_1025_0310,
 	&pci_ss_info_1025_0315,
 	&pci_ss_info_1025_1003,
@@ -60213,6 +64464,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1028_009b,
 	&pci_ss_info_1028_00aa,
 	&pci_ss_info_1028_00b1,
+	&pci_ss_info_1028_00b4,
 	&pci_ss_info_1028_00bb,
 	&pci_ss_info_1028_00c5,
 	&pci_ss_info_1028_00c7,
@@ -60238,6 +64490,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1028_0149,
 	&pci_ss_info_1028_014a,
 	&pci_ss_info_1028_014e,
+	&pci_ss_info_1028_014f,
 	&pci_ss_info_1028_0151,
 	&pci_ss_info_1028_0156,
 	&pci_ss_info_1028_0163,
@@ -60259,6 +64512,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1028_019d,
 	&pci_ss_info_1028_01a2,
 	&pci_ss_info_1028_01ad,
+	&pci_ss_info_1028_01af,
 	&pci_ss_info_1028_0287,
 	&pci_ss_info_1028_0291,
 	&pci_ss_info_1028_0407,
@@ -60277,6 +64531,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1028_1f01,
 	&pci_ss_info_1028_1f02,
 	&pci_ss_info_1028_1f03,
+	&pci_ss_info_1028_1f09,
 	&pci_ss_info_1028_1f0a,
 	&pci_ss_info_1028_1f0b,
 	&pci_ss_info_1028_1f0c,
@@ -60285,6 +64540,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1028_4082,
 	&pci_ss_info_1028_4134,
 	&pci_ss_info_1028_8082,
+	&pci_ss_info_1028_810b,
 	&pci_ss_info_1028_865d,
 	&pci_ss_info_1028_c082,
 	&pci_ss_info_1028_c134,
@@ -60310,6 +64566,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_102b_0850,
 	&pci_ss_info_102b_08c7,
 	&pci_ss_info_102b_0907,
+	&pci_ss_info_102b_0947,
 	&pci_ss_info_102b_0d41,
 	&pci_ss_info_102b_0d42,
 	&pci_ss_info_102b_0d43,
@@ -60486,6 +64743,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_088c,
 	&pci_ss_info_103c_0890,
 	&pci_ss_info_103c_08b0,
+	&pci_ss_info_103c_0934,
 	&pci_ss_info_103c_0944,
 	&pci_ss_info_103c_099c,
 	&pci_ss_info_103c_1040,
@@ -60540,6 +64798,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_12d7,
 	&pci_ss_info_103c_12dd,
 	&pci_ss_info_103c_12f4,
+	&pci_ss_info_103c_12f6,
 	&pci_ss_info_103c_12fa,
 	&pci_ss_info_103c_1300,
 	&pci_ss_info_103c_1301,
@@ -60552,6 +64811,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_2a09,
 	&pci_ss_info_103c_2a0d,
 	&pci_ss_info_103c_3006,
+	&pci_ss_info_103c_3015,
 	&pci_ss_info_103c_3070,
 	&pci_ss_info_103c_308a,
 	&pci_ss_info_103c_308b,
@@ -60562,9 +64822,13 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_3102,
 	&pci_ss_info_103c_3103,
 	&pci_ss_info_103c_3109,
+	&pci_ss_info_103c_3223,
 	&pci_ss_info_103c_3225,
 	&pci_ss_info_103c_3226,
 	&pci_ss_info_103c_3227,
+	&pci_ss_info_103c_3234,
+	&pci_ss_info_103c_3235,
+	&pci_ss_info_103c_3237,
 	&pci_ss_info_103c_60e7,
 	&pci_ss_info_103c_7031,
 	&pci_ss_info_103c_7032,
@@ -60575,6 +64839,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_103c_703c,
 	&pci_ss_info_103c_703d,
 	&pci_ss_info_103c_7044,
+	&pci_ss_info_103c_7051,
+	&pci_ss_info_103c_7052,
 	&pci_ss_info_103c_def1,
 	NULL
 };
@@ -60596,6 +64862,7 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1043[] = {
+	&pci_ss_info_1043_0001,
 	&pci_ss_info_1043_002a,
 	&pci_ss_info_1043_010c,
 	&pci_ss_info_1043_010d,
@@ -60606,12 +64873,21 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1043_0202,
 	&pci_ss_info_1043_0205,
 	&pci_ss_info_1043_0210,
+	&pci_ss_info_1043_02fb,
 	&pci_ss_info_1043_032e,
 	&pci_ss_info_1043_0c11,
 	&pci_ss_info_1043_100f,
+	&pci_ss_info_1043_1045,
 	&pci_ss_info_1043_1106,
 	&pci_ss_info_1043_120f,
 	&pci_ss_info_1043_130f,
+	&pci_ss_info_1043_1382,
+	&pci_ss_info_1043_13c4,
+	&pci_ss_info_1043_1453,
+	&pci_ss_info_1043_1583,
+	&pci_ss_info_1043_1622,
+	&pci_ss_info_1043_1623,
+	&pci_ss_info_1043_1643,
 	&pci_ss_info_1043_1702,
 	&pci_ss_info_1043_1703,
 	&pci_ss_info_1043_1707,
@@ -60628,6 +64904,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1043_400b,
 	&pci_ss_info_1043_4015,
 	&pci_ss_info_1043_4016,
+	&pci_ss_info_1043_4021,
 	&pci_ss_info_1043_402f,
 	&pci_ss_info_1043_4031,
 	&pci_ss_info_1043_405b,
@@ -60684,10 +64961,12 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1043_80f8,
 	&pci_ss_info_1043_8109,
 	&pci_ss_info_1043_810f,
+	&pci_ss_info_1043_8113,
 	&pci_ss_info_1043_811a,
 	&pci_ss_info_1043_812a,
 	&pci_ss_info_1043_8134,
 	&pci_ss_info_1043_8138,
+	&pci_ss_info_1043_813f,
 	&pci_ss_info_1043_8141,
 	&pci_ss_info_1043_8142,
 	&pci_ss_info_1043_8145,
@@ -60695,8 +64974,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1043_814e,
 	&pci_ss_info_1043_815a,
 	&pci_ss_info_1043_815b,
+	&pci_ss_info_1043_8178,
 	&pci_ss_info_1043_817b,
+	&pci_ss_info_1043_819d,
 	&pci_ss_info_1043_81a6,
+	&pci_ss_info_1043_81b0,
+	&pci_ss_info_1043_81bc,
+	&pci_ss_info_1043_81cd,
+	&pci_ss_info_1043_81ce,
 	&pci_ss_info_1043_824d,
 	&pci_ss_info_1043_c002,
 	&pci_ss_info_1043_c003,
@@ -60842,6 +65127,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_104d_810f,
 	&pci_ss_info_104d_813c,
 	&pci_ss_info_104d_8140,
+	&pci_ss_info_104d_814e,
+	&pci_ss_info_104d_81b7,
 	&pci_ss_info_104d_830b,
 	NULL
 };
@@ -60855,7 +65142,12 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_1051 NULL
-#define pci_ss_list_1052 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_1052[] = {
+	&pci_ss_info_1052_168c,
+	NULL
+};
+#endif
 #define pci_ss_list_1053 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1054[] = {
@@ -60893,6 +65185,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_105a_1275,
 	&pci_ss_info_105a_2168,
 	&pci_ss_info_105a_4600,
+	&pci_ss_info_105a_4610,
 	&pci_ss_info_105a_4d30,
 	&pci_ss_info_105a_4d33,
 	&pci_ss_info_105a_4d39,
@@ -60908,6 +65201,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_105b[] = {
 	&pci_ss_info_105b_0c19,
 	&pci_ss_info_105b_0c43,
+	&pci_ss_info_105b_0c81,
 	NULL
 };
 #endif
@@ -61042,6 +65336,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_107d_2840,
 	&pci_ss_info_107d_2842,
 	&pci_ss_info_107d_2896,
+	&pci_ss_info_107d_2a68,
 	&pci_ss_info_107d_5330,
 	&pci_ss_info_107d_5350,
 	&pci_ss_info_107d_6606,
@@ -61085,7 +65380,12 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 static const pciSubsystemInfo *pci_ss_list_108e[] = {
+	&pci_ss_info_108e_0286,
+	&pci_ss_info_108e_0287,
 	&pci_ss_info_108e_10cf,
+	&pci_ss_info_108e_5000,
+	&pci_ss_info_108e_7aac,
+	&pci_ss_info_108e_a001,
 	NULL
 };
 #define pci_ss_list_108f NULL
@@ -61350,6 +65650,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10b7_5a57,
 	&pci_ss_info_10b7_5b57,
 	&pci_ss_info_10b7_5c57,
+	&pci_ss_info_10b7_615b,
 	&pci_ss_info_10b7_615c,
 	&pci_ss_info_10b7_6556,
 	&pci_ss_info_10b7_656a,
@@ -61474,6 +65775,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10cf_10b4,
 	&pci_ss_info_10cf_1115,
 	&pci_ss_info_10cf_1143,
+	&pci_ss_info_10cf_11c4,
+	&pci_ss_info_10cf_1279,
 	NULL
 };
 #endif
@@ -61502,8 +65805,11 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10de_00a1,
 	&pci_ss_info_10de_0179,
 	&pci_ss_info_10de_01dc,
+	&pci_ss_info_10de_0244,
 	&pci_ss_info_10de_029b,
+	&pci_ss_info_10de_042b,
 	&pci_ss_info_10de_0c11,
+	&pci_ss_info_10de_cb84,
 	NULL
 };
 #define pci_ss_list_10df NULL
@@ -61531,6 +65837,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_10ec_8129,
 	&pci_ss_info_10ec_8138,
 	&pci_ss_info_10ec_8139,
+	&pci_ss_info_10ec_8168,
 	NULL
 };
 #endif
@@ -61654,8 +65961,10 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1103[] = {
 	&pci_ss_info_1103_0001,
+	&pci_ss_info_1103_0003,
 	&pci_ss_info_1103_0004,
 	&pci_ss_info_1103_0005,
+	&pci_ss_info_1103_0006,
 	NULL
 };
 #endif
@@ -61738,6 +66047,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1113_2220,
 	&pci_ss_info_1113_2242,
 	&pci_ss_info_1113_4203,
+	&pci_ss_info_1113_8201,
 	&pci_ss_info_1113_9211,
 	&pci_ss_info_1113_d301,
 	&pci_ss_info_1113_ec01,
@@ -62088,6 +66398,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1186_3b01,
 	&pci_ss_info_1186_3b04,
 	&pci_ss_info_1186_3b05,
+	&pci_ss_info_1186_3b08,
 	&pci_ss_info_1186_3c08,
 	&pci_ss_info_1186_3c09,
 	&pci_ss_info_1186_4c00,
@@ -62197,6 +66508,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_11bd_002b,
 	&pci_ss_info_11bd_002d,
 	&pci_ss_info_11bd_002e,
+	&pci_ss_info_11bd_0044,
 	NULL
 };
 #endif
@@ -62243,6 +66555,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_11d4[] = {
 	&pci_ss_info_11d4_0040,
 	&pci_ss_info_11d4_0048,
+	&pci_ss_info_11d4_1986,
 	&pci_ss_info_11d4_5340,
 	NULL
 };
@@ -63109,6 +67422,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1397_3137,
 	&pci_ss_info_1397_b520,
 	&pci_ss_info_1397_b540,
+	&pci_ss_info_1397_b556,
 	NULL
 };
 #endif
@@ -63201,8 +67515,11 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_13c2_100c,
 	&pci_ss_info_13c2_100f,
 	&pci_ss_info_13c2_1011,
+	&pci_ss_info_13c2_1012,
 	&pci_ss_info_13c2_1013,
 	&pci_ss_info_13c2_1016,
+	&pci_ss_info_13c2_1018,
+	&pci_ss_info_13c2_1019,
 	&pci_ss_info_13c2_1102,
 	NULL
 };
@@ -63255,6 +67572,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_13d1[] = {
 	&pci_ss_info_13d1_ab01,
 	&pci_ss_info_13d1_aba0,
+	&pci_ss_info_13d1_abe3,
 	&pci_ss_info_13d1_ac11,
 	&pci_ss_info_13d1_ac12,
 	NULL
@@ -63431,7 +67749,12 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
-#define pci_ss_list_1413 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_1413[] = {
+	&pci_ss_info_1413_147b,
+	NULL
+};
+#endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1414[] = {
 	&pci_ss_info_1414_0003,
@@ -63561,6 +67884,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_144d_c000,
 	&pci_ss_info_144d_c001,
 	&pci_ss_info_144d_c003,
+	&pci_ss_info_144d_c005,
 	&pci_ss_info_144d_c006,
 	&pci_ss_info_144d_c00c,
 	&pci_ss_info_144d_c018,
@@ -63589,6 +67913,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_144f_3000,
 	&pci_ss_info_144f_4005,
 	&pci_ss_info_144f_7050,
+	&pci_ss_info_144f_7051,
 	NULL
 };
 #endif
@@ -63621,6 +67946,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1458_266a,
 	&pci_ss_info_1458_266f,
 	&pci_ss_info_1458_3124,
+	&pci_ss_info_1458_3150,
+	&pci_ss_info_1458_3427,
 	&pci_ss_info_1458_4000,
 	&pci_ss_info_1458_4002,
 	&pci_ss_info_1458_4018,
@@ -63641,8 +67968,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1458_d000,
 	&pci_ss_info_1458_e000,
 	&pci_ss_info_1458_e381,
+	&pci_ss_info_1458_e901,
 	&pci_ss_info_1458_e911,
 	&pci_ss_info_1458_e931,
+	&pci_ss_info_1458_e934,
 	NULL
 };
 #endif
@@ -63671,6 +68000,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1461_2c00,
 	&pci_ss_info_1461_8011,
 	&pci_ss_info_1461_9715,
+	&pci_ss_info_1461_a14b,
 	&pci_ss_info_1461_a3ce,
 	&pci_ss_info_1461_a3cf,
 	&pci_ss_info_1461_a70a,
@@ -63684,6 +68014,7 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1462[] = {
 	&pci_ss_info_1462_0080,
+	&pci_ss_info_1462_030c,
 	&pci_ss_info_1462_0311,
 	&pci_ss_info_1462_0345,
 	&pci_ss_info_1462_0400,
@@ -63695,6 +68026,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1462_0900,
 	&pci_ss_info_1462_1009,
 	&pci_ss_info_1462_207d,
+	&pci_ss_info_1462_235c,
 	&pci_ss_info_1462_3091,
 	&pci_ss_info_1462_309e,
 	&pci_ss_info_1462_3300,
@@ -63717,6 +68049,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1462_6822,
 	&pci_ss_info_1462_6828,
 	&pci_ss_info_1462_6830,
+	&pci_ss_info_1462_6833,
 	&pci_ss_info_1462_6835,
 	&pci_ss_info_1462_6880,
 	&pci_ss_info_1462_6900,
@@ -63732,9 +68065,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1462_702d,
 	&pci_ss_info_1462_702e,
 	&pci_ss_info_1462_7030,
+	&pci_ss_info_1462_7094,
 	&pci_ss_info_1462_7100,
+	&pci_ss_info_1462_7181,
 	&pci_ss_info_1462_7207,
 	&pci_ss_info_1462_7235,
+	&pci_ss_info_1462_7236,
+	&pci_ss_info_1462_7267,
+	&pci_ss_info_1462_7276,
 	&pci_ss_info_1462_7280,
 	&pci_ss_info_1462_728c,
 	&pci_ss_info_1462_7580,
@@ -63753,7 +68091,10 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1462_932c,
 	&pci_ss_info_1462_9350,
 	&pci_ss_info_1462_9360,
+	&pci_ss_info_1462_9380,
 	&pci_ss_info_1462_971d,
+	&pci_ss_info_1462_b010,
+	&pci_ss_info_1462_b834,
 	NULL
 };
 #endif
@@ -63818,6 +68159,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_147b_1c09,
 	&pci_ss_info_147b_1c0b,
 	&pci_ss_info_147b_1c1a,
+	&pci_ss_info_147b_6190,
 	&pci_ss_info_147b_6191,
 	&pci_ss_info_147b_8f00,
 	&pci_ss_info_147b_8f09,
@@ -63875,7 +68217,12 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
-#define pci_ss_list_148d NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_148d[] = {
+	&pci_ss_info_148d_1030,
+	NULL
+};
+#endif
 #define pci_ss_list_148e NULL
 #define pci_ss_list_148f NULL
 #define pci_ss_list_1490 NULL
@@ -63967,6 +68314,8 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_14b4[] = {
 	&pci_ss_info_14b4_d100,
+	&pci_ss_info_14b4_d114,
+	&pci_ss_info_14b4_d140,
 	NULL
 };
 #endif
@@ -64254,6 +68603,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1522_2500,
 	&pci_ss_info_1522_2600,
 	&pci_ss_info_1522_2700,
+	&pci_ss_info_1522_3000,
+	&pci_ss_info_1522_3100,
+	&pci_ss_info_1522_3200,
+	&pci_ss_info_1522_3300,
+	&pci_ss_info_1522_3400,
+	&pci_ss_info_1522_3500,
+	&pci_ss_info_1522_3c00,
+	&pci_ss_info_1522_3d00,
 	NULL
 };
 #endif
@@ -64288,6 +68645,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1533 NULL
 #define pci_ss_list_1534 NULL
 #define pci_ss_list_1535 NULL
+#define pci_ss_list_1536 NULL
 #define pci_ss_list_1537 NULL
 #define pci_ss_list_1538 NULL
 #define pci_ss_list_1539 NULL
@@ -64396,7 +68754,14 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_1564 NULL
-#define pci_ss_list_1565 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_1565[] = {
+	&pci_ss_info_1565_2300,
+	&pci_ss_info_1565_3101,
+	&pci_ss_info_1565_5200,
+	NULL
+};
+#endif
 #define pci_ss_list_1566 NULL
 #define pci_ss_list_1567 NULL
 #define pci_ss_list_1568 NULL
@@ -64545,6 +68910,10 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_15d8 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_15d9[] = {
+	&pci_ss_info_15d9_02b5,
+	&pci_ss_info_15d9_02b6,
+	&pci_ss_info_15d9_02c9,
+	&pci_ss_info_15d9_02ca,
 	&pci_ss_info_15d9_3480,
 	&pci_ss_info_15d9_4580,
 	&pci_ss_info_15d9_9005,
@@ -64697,6 +69066,7 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_168c[] = {
 	&pci_ss_info_168c_0013,
 	&pci_ss_info_168c_001a,
+	&pci_ss_info_168c_001b,
 	&pci_ss_info_168c_1025,
 	&pci_ss_info_168c_1027,
 	&pci_ss_info_168c_1042,
@@ -64705,6 +69075,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_168c_2041,
 	&pci_ss_info_168c_2042,
 	&pci_ss_info_168c_2051,
+	&pci_ss_info_168c_2052,
 	&pci_ss_info_168c_2062,
 	&pci_ss_info_168c_2063,
 	NULL
@@ -64721,6 +69092,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_169c NULL
+#define pci_ss_list_169d NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_16a5[] = {
 	&pci_ss_info_16a5_1601,
@@ -64805,6 +69177,7 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1734[] = {
 	&pci_ss_info_1734_007a,
+	&pci_ss_info_1734_1003,
 	&pci_ss_info_1734_1004,
 	&pci_ss_info_1734_1005,
 	&pci_ss_info_1734_100b,
@@ -64813,6 +69186,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1734_1012,
 	&pci_ss_info_1734_101c,
 	&pci_ss_info_1734_1025,
+	&pci_ss_info_1734_102b,
 	&pci_ss_info_1734_103e,
 	&pci_ss_info_1734_1052,
 	&pci_ss_info_1734_1055,
@@ -64824,9 +69198,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1734_1065,
 	&pci_ss_info_1734_106c,
 	&pci_ss_info_1734_1081,
+	&pci_ss_info_1734_1091,
+	&pci_ss_info_1734_1095,
+	&pci_ss_info_1734_1099,
+	&pci_ss_info_1734_109f,
 	&pci_ss_info_1734_10a3,
 	&pci_ss_info_1734_10ad,
 	&pci_ss_info_1734_10b8,
+	&pci_ss_info_1734_10f8,
 	NULL
 };
 #endif
@@ -64837,6 +69216,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_1737_0024,
 	&pci_ss_info_1737_0032,
 	&pci_ss_info_1737_0033,
+	&pci_ss_info_1737_0042,
 	&pci_ss_info_1737_0048,
 	&pci_ss_info_1737_0055,
 	&pci_ss_info_1737_3874,
@@ -64890,12 +69270,14 @@ static const pciSubsystemInfo *pci_ss_li
 static const pciSubsystemInfo *pci_ss_list_1775[] = {
 	&pci_ss_info_1775_10d0,
 	&pci_ss_info_1775_10d1,
+	&pci_ss_info_1775_1100,
 	&pci_ss_info_1775_6003,
 	&pci_ss_info_1775_c200,
 	&pci_ss_info_1775_ce90,
 	NULL
 };
 #endif
+#define pci_ss_list_177d NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1787[] = {
 	&pci_ss_info_1787_0202,
@@ -64944,6 +69326,12 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_17aa_201e,
 	&pci_ss_info_17aa_207e,
 	&pci_ss_info_17aa_2081,
+	&pci_ss_info_17aa_20aa,
+	&pci_ss_info_17aa_20ab,
+	&pci_ss_info_17aa_20ac,
+	&pci_ss_info_17aa_20b1,
+	&pci_ss_info_17aa_20b9,
+	&pci_ss_info_17aa_3802,
 	NULL
 };
 #endif
@@ -64956,6 +69344,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_17af_200d,
 	&pci_ss_info_17af_2012,
 	&pci_ss_info_17af_2013,
+	&pci_ss_info_17af_2020,
+	&pci_ss_info_17af_2021,
 	NULL
 };
 #endif
@@ -64970,6 +69360,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_17cf_0014,
 	&pci_ss_info_17cf_0020,
 	&pci_ss_info_17cf_0037,
+	&pci_ss_info_17cf_0042,
 	NULL
 };
 #endif
@@ -64981,6 +69372,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_17de_08a1,
 	&pci_ss_info_17de_08a6,
 	&pci_ss_info_17de_08b2,
+	&pci_ss_info_17de_7350,
 	&pci_ss_info_17de_a8a6,
 	NULL
 };
@@ -65002,6 +69394,7 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
+#define pci_ss_list_17f3 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_17fe[] = {
 	&pci_ss_info_17fe_2220,
@@ -65042,6 +69435,8 @@ static const pciSubsystemInfo *pci_ss_li
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1849[] = {
 	&pci_ss_info_1849_0571,
+	&pci_ss_info_1849_0850,
+	&pci_ss_info_1849_2582,
 	&pci_ss_info_1849_3038,
 	&pci_ss_info_1849_3065,
 	&pci_ss_info_1849_3099,
@@ -65112,7 +69507,9 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_185f[] = {
+	&pci_ss_info_185f_1012,
 	&pci_ss_info_185f_1220,
+	&pci_ss_info_185f_1600,
 	&pci_ss_info_185f_2012,
 	&pci_ss_info_185f_22a0,
 	NULL
@@ -65120,6 +69517,8 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_1864 NULL
 #define pci_ss_list_1867 NULL
+#define pci_ss_list_186c NULL
+#define pci_ss_list_1876 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_187e[] = {
 	&pci_ss_info_187e_3406,
@@ -65138,6 +69537,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_1890 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1894[] = {
+	&pci_ss_info_1894_0020,
 	&pci_ss_info_1894_a006,
 	&pci_ss_info_1894_fe01,
 	NULL
@@ -65216,6 +69616,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_194a NULL
 #define pci_ss_list_1957 NULL
 #define pci_ss_list_1958 NULL
+#define pci_ss_list_1959 NULL
 #define pci_ss_list_1966 NULL
 #define pci_ss_list_1969 NULL
 #define pci_ss_list_196a NULL
@@ -65226,7 +69627,9 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
+#define pci_ss_list_1971 NULL
 #define pci_ss_list_197b NULL
+#define pci_ss_list_1982 NULL
 #define pci_ss_list_1989 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_1993[] = {
@@ -65237,17 +69640,28 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #endif
 #define pci_ss_list_199a NULL
+#define pci_ss_list_19a2 NULL
 #define pci_ss_list_19a8 NULL
 #define pci_ss_list_19ac NULL
 #define pci_ss_list_19ae NULL
 #define pci_ss_list_19d4 NULL
+#define pci_ss_list_19de NULL
 #define pci_ss_list_19e2 NULL
 #define pci_ss_list_19e7 NULL
 #define pci_ss_list_1a03 NULL
+#define pci_ss_list_1a07 NULL
 #define pci_ss_list_1a08 NULL
 #define pci_ss_list_1a1d NULL
+#define pci_ss_list_1a22 NULL
 #define pci_ss_list_1a29 NULL
 #define pci_ss_list_1a51 NULL
+#define pci_ss_list_1a5d NULL
+#define pci_ss_list_1a71 NULL
+#define pci_ss_list_1a73 NULL
+#define pci_ss_list_1a77 NULL
+#define pci_ss_list_1a78 NULL
+#define pci_ss_list_1a8c NULL
+#define pci_ss_list_1ab9 NULL
 #define pci_ss_list_1b13 NULL
 #define pci_ss_list_1c1c NULL
 #define pci_ss_list_1d44 NULL
@@ -65321,7 +69735,12 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_3411 NULL
 #define pci_ss_list_3513 NULL
-#define pci_ss_list_3842 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_3842[] = {
+	&pci_ss_info_3842_a341,
+	NULL
+};
+#endif
 #define pci_ss_list_38ef NULL
 static const pciSubsystemInfo *pci_ss_list_3d3d[] = {
 	&pci_ss_info_3d3d_0100,
@@ -65343,16 +69762,21 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #define pci_ss_list_4033 NULL
+#define pci_ss_list_4040 NULL
 #define pci_ss_list_4143 NULL
 #define pci_ss_list_4144 NULL
 #define pci_ss_list_416c NULL
 #define pci_ss_list_4321 NULL
+#define pci_ss_list_434e NULL
 #define pci_ss_list_4444 NULL
 #define pci_ss_list_4468 NULL
 #define pci_ss_list_4594 NULL
 #define pci_ss_list_45fb NULL
 #define pci_ss_list_4680 NULL
-#define pci_ss_list_4843 NULL
+static const pciSubsystemInfo *pci_ss_list_4843[] = {
+	&pci_ss_info_4843_314a,
+	NULL
+};
 #define pci_ss_list_4916 NULL
 #define pci_ss_list_4943 NULL
 #define pci_ss_list_494f NULL
@@ -65396,6 +69820,7 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_4ca1 NULL
 #define pci_ss_list_4d51 NULL
 #define pci_ss_list_4d54 NULL
+#define pci_ss_list_4d56 NULL
 #define pci_ss_list_4ddc NULL
 #define pci_ss_list_5046 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -65426,6 +69851,7 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_5301 NULL
 static const pciSubsystemInfo *pci_ss_list_5333[] = {
+	&pci_ss_info_5333_0130,
 	&pci_ss_info_5333_8100,
 	&pci_ss_info_5333_8110,
 	&pci_ss_info_5333_8125,
@@ -65445,6 +69871,7 @@ static const pciSubsystemInfo *pci_ss_li
 };
 #define pci_ss_list_544c NULL
 #define pci_ss_list_5455 NULL
+#define pci_ss_list_5456 NULL
 #define pci_ss_list_5519 NULL
 #define pci_ss_list_5544 NULL
 #define pci_ss_list_5555 NULL
@@ -65458,6 +69885,7 @@ static const pciSubsystemInfo *pci_ss_li
 #endif
 #define pci_ss_list_5700 NULL
 #define pci_ss_list_5851 NULL
+#define pci_ss_list_5853 NULL
 #define pci_ss_list_6356 NULL
 #define pci_ss_list_6374 NULL
 #define pci_ss_list_6409 NULL
@@ -65519,6 +69947,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_0079,
 	&pci_ss_info_8086_007b,
 	&pci_ss_info_8086_0100,
+	&pci_ss_info_8086_0136,
 	&pci_ss_info_8086_01af,
 	&pci_ss_info_8086_01c1,
 	&pci_ss_info_8086_01f7,
@@ -65532,8 +69961,11 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_1003,
 	&pci_ss_info_8086_1004,
 	&pci_ss_info_8086_1005,
+	&pci_ss_info_8086_1006,
 	&pci_ss_info_8086_1009,
+	&pci_ss_info_8086_100a,
 	&pci_ss_info_8086_100c,
+	&pci_ss_info_8086_1010,
 	&pci_ss_info_8086_1011,
 	&pci_ss_info_8086_1012,
 	&pci_ss_info_8086_1013,
@@ -65550,6 +69982,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_1028,
 	&pci_ss_info_8086_1030,
 	&pci_ss_info_8086_1034,
+	&pci_ss_info_8086_103d,
 	&pci_ss_info_8086_1040,
 	&pci_ss_info_8086_1041,
 	&pci_ss_info_8086_1042,
@@ -65581,6 +70014,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_1107,
 	&pci_ss_info_8086_1109,
 	&pci_ss_info_8086_110d,
+	&pci_ss_info_8086_1110,
 	&pci_ss_info_8086_1112,
 	&pci_ss_info_8086_1113,
 	&pci_ss_info_8086_115e,
@@ -65645,10 +70079,14 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_2411,
 	&pci_ss_info_8086_2412,
 	&pci_ss_info_8086_2413,
+	&pci_ss_info_8086_24c2,
+	&pci_ss_info_8086_24c5,
 	&pci_ss_info_8086_24db,
+	&pci_ss_info_8086_2510,
 	&pci_ss_info_8086_2513,
 	&pci_ss_info_8086_2522,
 	&pci_ss_info_8086_2527,
+	&pci_ss_info_8086_2561,
 	&pci_ss_info_8086_2581,
 	&pci_ss_info_8086_265c,
 	&pci_ss_info_8086_2731,
@@ -65674,6 +70112,7 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_302f,
 	&pci_ss_info_8086_3063,
 	&pci_ss_info_8086_308d,
+	&pci_ss_info_8086_309c,
 	&pci_ss_info_8086_3108,
 	&pci_ss_info_8086_3411,
 	&pci_ss_info_8086_3424,
@@ -65720,6 +70159,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_8086_e002,
 	NULL
 };
+#define pci_ss_list_80ee NULL
+#define pci_ss_list_8384 NULL
 #define pci_ss_list_8401 NULL
 #define pci_ss_list_8686 NULL
 #define pci_ss_list_8800 NULL
@@ -65781,6 +70222,8 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_0003,
 	&pci_ss_info_9005_000f,
 	&pci_ss_info_9005_0041,
+	&pci_ss_info_9005_0044,
+	&pci_ss_info_9005_0045,
 	&pci_ss_info_9005_0092,
 	&pci_ss_info_9005_0093,
 	&pci_ss_info_9005_0106,
@@ -65829,6 +70272,23 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_9005_02b5,
 	&pci_ss_info_9005_02b6,
 	&pci_ss_info_9005_02b7,
+	&pci_ss_info_9005_02b8,
+	&pci_ss_info_9005_02b9,
+	&pci_ss_info_9005_02ba,
+	&pci_ss_info_9005_02bb,
+	&pci_ss_info_9005_02bc,
+	&pci_ss_info_9005_02bd,
+	&pci_ss_info_9005_02be,
+	&pci_ss_info_9005_02bf,
+	&pci_ss_info_9005_02c0,
+	&pci_ss_info_9005_02c1,
+	&pci_ss_info_9005_02c2,
+	&pci_ss_info_9005_02c3,
+	&pci_ss_info_9005_02c4,
+	&pci_ss_info_9005_02c5,
+	&pci_ss_info_9005_02c6,
+	&pci_ss_info_9005_02c7,
+	&pci_ss_info_9005_02c8,
 	&pci_ss_info_9005_0364,
 	&pci_ss_info_9005_0365,
 	&pci_ss_info_9005_0410,
@@ -65871,12 +70331,15 @@ static const pciSubsystemInfo *pci_ss_li
 	&pci_ss_info_a0a0_01b6,
 	&pci_ss_info_a0a0_0304,
 	&pci_ss_info_a0a0_0306,
+	&pci_ss_info_a0a0_0342,
 	&pci_ss_info_a0a0_03b2,
 	&pci_ss_info_a0a0_03b4,
 	&pci_ss_info_a0a0_03b5,
 	&pci_ss_info_a0a0_03b9,
 	&pci_ss_info_a0a0_03ba,
 	&pci_ss_info_a0a0_03bb,
+	&pci_ss_info_a0a0_0449,
+	&pci_ss_info_a0a0_04ad,
 	&pci_ss_info_a0a0_0506,
 	&pci_ss_info_a0a0_0509,
 	NULL
@@ -65892,7 +70355,12 @@ static const pciSubsystemInfo *pci_ss_li
 	NULL
 };
 #endif
-#define pci_ss_list_a727 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciSubsystemInfo *pci_ss_list_a727[] = {
+	&pci_ss_info_a727_6804,
+	NULL
+};
+#endif
 #define pci_ss_list_aa42 NULL
 #define pci_ss_list_ac1e NULL
 #define pci_ss_list_ac3d NULL
@@ -65956,11 +70424,16 @@ static const pciSubsystemInfo *pci_ss_li
 #define pci_ss_list_e159 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciSubsystemInfo *pci_ss_list_e4bf[] = {
+	&pci_ss_info_e4bf_0cc9,
+	&pci_ss_info_e4bf_0ccd,
+	&pci_ss_info_e4bf_0cd2,
+	&pci_ss_info_e4bf_0cd3,
 	&pci_ss_info_e4bf_1000,
 	&pci_ss_info_e4bf_1010,
 	&pci_ss_info_e4bf_1020,
 	&pci_ss_info_e4bf_1040,
 	&pci_ss_info_e4bf_3100,
+	&pci_ss_info_e4bf_58b1,
 	NULL
 };
 #endif
@@ -66300,6 +70773,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_058f_9254 = {
+	0x9254, pci_device_058f_9254,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_058f_9254,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_05a9_8519 = {
 	0x8519, pci_device_05a9_8519,
 #ifdef INIT_SUBSYS_INFO
@@ -66449,6 +70933,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_093a_2600 = {
+	0x2600, pci_device_093a_2600,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_093a_2600,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_093a_2603 = {
 	0x2603, pci_device_093a_2603,
 #ifdef INIT_SUBSYS_INFO
@@ -67721,6 +72214,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1000_0057 = {
+	0x0057, pci_device_1000_0057,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1000_0057,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1000_0058 = {
 	0x0058, pci_device_1000_0058,
 #ifdef INIT_SUBSYS_INFO
@@ -71396,6 +75898,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_716e = {
+	0x716e, pci_device_1002_716e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_716e,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_7172 = {
 	0x7172, pci_device_1002_7172,
 #ifdef INIT_SUBSYS_INFO
@@ -71621,6 +76132,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_71d4 = {
+	0x71d4, pci_device_1002_71d4,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_71d4,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_71d5 = {
 	0x71d5, pci_device_1002_71d5,
 #ifdef INIT_SUBSYS_INFO
@@ -71666,6 +76186,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_71e6 = {
+	0x71e6, pci_device_1002_71e6,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_71e6,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_71e7 = {
 	0x71e7, pci_device_1002_71e7,
 #ifdef INIT_SUBSYS_INFO
@@ -71963,6 +76492,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1002_7919 = {
+	0x7919, pci_device_1002_7919,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1002_7919,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1002_791e = {
 	0x791e, pci_device_1002_791e,
 #ifdef INIT_SUBSYS_INFO
@@ -73714,6 +78252,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1014_01ef = {
+	0x01ef, pci_device_1014_01ef,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1014_01ef,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1014_01ff = {
 	0x01ff, pci_device_1014_01ff,
 #ifdef INIT_SUBSYS_INFO
@@ -73840,6 +78387,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1014_0339 = {
+	0x0339, pci_device_1014_0339,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1014_0339,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1014_3022 = {
 	0x3022, pci_device_1014_3022,
 #ifdef INIT_SUBSYS_INFO
@@ -73889,6 +78445,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_101a_1dc1 = {
+	0x1dc1, pci_device_101a_1dc1,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_101a_1dc1,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_101c_0193 = {
@@ -74119,6 +78684,96 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1022_1200 = {
+	0x1200, pci_device_1022_1200,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1200,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1201 = {
+	0x1201, pci_device_1022_1201,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1201,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1202 = {
+	0x1202, pci_device_1022_1202,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1202,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1203 = {
+	0x1203, pci_device_1022_1203,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1203,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1204 = {
+	0x1204, pci_device_1022_1204,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1204,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1300 = {
+	0x1300, pci_device_1022_1300,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1300,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1301 = {
+	0x1301, pci_device_1022_1301,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1301,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1302 = {
+	0x1302, pci_device_1022_1302,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1302,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1303 = {
+	0x1303, pci_device_1022_1303,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1303,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1022_1304 = {
+	0x1304, pci_device_1022_1304,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1022_1304,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1022_2000 = {
 	0x2000, pci_device_1022_2000,
 #ifdef INIT_SUBSYS_INFO
@@ -75721,15 +80376,6 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1028_1f03 = {
-	0x1f03, pci_device_1028_1f03,
-#ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1028_1f03,
-#else
-	NULL,
-#endif
-	0
-};
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_102a_0000 = {
 	0x0000, pci_device_102a_0000,
@@ -77907,6 +82553,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_103c_1361 = {
+	0x1361, pci_device_103c_1361,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_103c_1361,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_103c_2910 = {
 	0x2910, pci_device_103c_2910,
 #ifdef INIT_SUBSYS_INFO
@@ -77970,6 +82625,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_103c_3238 = {
+	0x3238, pci_device_103c_3238,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_103c_3238,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_103c_4030 = {
 	0x4030, pci_device_103c_4030,
 #ifdef INIT_SUBSYS_INFO
@@ -79668,6 +84332,26 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1054_3011 = {
+	0x3011, pci_device_1054_3011,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1054_3011,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1054_3012 = {
+	0x3012, pci_device_1054_3012,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1054_3012,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1055_9130 = {
 	0x9130, pci_device_1055_9130,
 #ifdef INIT_SUBSYS_INFO
@@ -79795,6 +84479,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1057_1073 = {
+	0x1073, pci_device_1057_1073,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1057_1073,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1057_1219 = {
+	0x1219, pci_device_1057_1219,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1057_1219,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1057_1801 = {
 	0x1801, pci_device_1057_1801,
 #ifdef INIT_SUBSYS_INFO
@@ -80328,6 +85030,17 @@ static const pciDeviceInfo pci_dev_info_
 	0
 };
 #endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_105b_0c4d = {
+	0x0c4d, pci_device_105b_0c4d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_105b_0c4d,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
 static const pciDeviceInfo pci_dev_info_105d_2309 = {
 	0x2309, pci_device_105d_2309,
 #ifdef INIT_SUBSYS_INFO
@@ -82364,6 +87077,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_108e_676e = {
+	0x676e, pci_device_108e_676e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_108e_676e,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_108e_7063 = {
+	0x7063, pci_device_108e_7063,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_108e_7063,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_108e_8000 = {
 	0x8000, pci_device_108e_8000,
 #ifdef INIT_SUBSYS_INFO
@@ -83827,6 +88558,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10b5_6520 = {
+	0x6520, pci_device_10b5_6520,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10b5_6520,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10b5_6540 = {
 	0x6540, pci_device_10b5_6540,
 #ifdef INIT_SUBSYS_INFO
@@ -86574,6 +91314,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0095 = {
+	0x0095, pci_device_10de_0095,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0095,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0098 = {
 	0x0098, pci_device_10de_0098,
 #ifdef INIT_SUBSYS_INFO
@@ -87141,6 +91890,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0143 = {
+	0x0143, pci_device_10de_0143,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0143,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0144 = {
 	0x0144, pci_device_10de_0144,
 #ifdef INIT_SUBSYS_INFO
@@ -87366,6 +92124,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_016a = {
+	0x016a, pci_device_10de_016a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_016a,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0170 = {
 	0x0170, pci_device_10de_0170,
 #ifdef INIT_SUBSYS_INFO
@@ -87519,6 +92286,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0184 = {
+	0x0184, pci_device_10de_0184,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0184,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0185 = {
 	0x0185, pci_device_10de_0185,
 #ifdef INIT_SUBSYS_INFO
@@ -87591,6 +92367,51 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0191 = {
+	0x0191, pci_device_10de_0191,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0191,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0193 = {
+	0x0193, pci_device_10de_0193,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0193,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0194 = {
+	0x0194, pci_device_10de_0194,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0194,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_019d = {
+	0x019d, pci_device_10de_019d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_019d,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_019e = {
+	0x019e, pci_device_10de_019e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_019e,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_01a0 = {
 	0x01a0, pci_device_10de_01a0,
 #ifdef INIT_SUBSYS_INFO
@@ -87735,6 +92556,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_01d3 = {
+	0x01d3, pci_device_10de_01d3,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_01d3,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_01d6 = {
 	0x01d6, pci_device_10de_01d6,
 #ifdef INIT_SUBSYS_INFO
@@ -87771,6 +92601,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_01dc = {
+	0x01dc, pci_device_10de_01dc,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_01dc,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_01dd = {
+	0x01dd, pci_device_10de_01dd,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_01dd,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_01de = {
 	0x01de, pci_device_10de_01de,
 #ifdef INIT_SUBSYS_INFO
@@ -87951,6 +92799,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0222 = {
+	0x0222, pci_device_10de_0222,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0222,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0240 = {
 	0x0240, pci_device_10de_0240,
 #ifdef INIT_SUBSYS_INFO
@@ -88437,6 +93294,42 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0293 = {
+	0x0293, pci_device_10de_0293,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0293,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0294 = {
+	0x0294, pci_device_10de_0294,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0294,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0295 = {
+	0x0295, pci_device_10de_0295,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0295,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0297 = {
+	0x0297, pci_device_10de_0297,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0297,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0298 = {
 	0x0298, pci_device_10de_0298,
 #ifdef INIT_SUBSYS_INFO
@@ -88518,6 +93411,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_02e0 = {
+	0x02e0, pci_device_10de_02e0,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_02e0,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_02e1 = {
 	0x02e1, pci_device_10de_02e1,
 #ifdef INIT_SUBSYS_INFO
@@ -88527,6 +93429,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_02e2 = {
+	0x02e2, pci_device_10de_02e2,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_02e2,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_02f0 = {
 	0x02f0, pci_device_10de_02f0,
 #ifdef INIT_SUBSYS_INFO
@@ -89355,6 +94266,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_037c = {
+	0x037c, pci_device_10de_037c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_037c,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_037e = {
 	0x037e, pci_device_10de_037e,
 #ifdef INIT_SUBSYS_INFO
@@ -89373,6 +94293,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0390 = {
+	0x0390, pci_device_10de_0390,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0390,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0391 = {
 	0x0391, pci_device_10de_0391,
 #ifdef INIT_SUBSYS_INFO
@@ -89400,6 +94329,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0394 = {
+	0x0394, pci_device_10de_0394,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0394,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0395 = {
+	0x0395, pci_device_10de_0395,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0395,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0397 = {
+	0x0397, pci_device_10de_0397,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0397,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0398 = {
 	0x0398, pci_device_10de_0398,
 #ifdef INIT_SUBSYS_INFO
@@ -89409,6 +94365,42 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0399 = {
+	0x0399, pci_device_10de_0399,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0399,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_039a = {
+	0x039a, pci_device_10de_039a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_039a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_039b = {
+	0x039b, pci_device_10de_039b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_039b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_039c = {
+	0x039c, pci_device_10de_039c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_039c,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_039e = {
 	0x039e, pci_device_10de_039e,
 #ifdef INIT_SUBSYS_INFO
@@ -89913,6 +94905,132 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_0400 = {
+	0x0400, pci_device_10de_0400,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0400,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0402 = {
+	0x0402, pci_device_10de_0402,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0402,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0407 = {
+	0x0407, pci_device_10de_0407,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0407,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_040b = {
+	0x040b, pci_device_10de_040b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_040b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0421 = {
+	0x0421, pci_device_10de_0421,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0421,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0422 = {
+	0x0422, pci_device_10de_0422,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0422,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0423 = {
+	0x0423, pci_device_10de_0423,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0423,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0425 = {
+	0x0425, pci_device_10de_0425,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0425,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0426 = {
+	0x0426, pci_device_10de_0426,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0426,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0427 = {
+	0x0427, pci_device_10de_0427,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0427,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0428 = {
+	0x0428, pci_device_10de_0428,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0428,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_0429 = {
+	0x0429, pci_device_10de_0429,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_0429,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_042a = {
+	0x042a, pci_device_10de_042a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_042a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_042b = {
+	0x042b, pci_device_10de_042b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_042b,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10de_0440 = {
 	0x0440, pci_device_10de_0440,
 #ifdef INIT_SUBSYS_INFO
@@ -90192,6 +95310,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10de_055c = {
+	0x055c, pci_device_10de_055c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_055c,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_055d = {
+	0x055d, pci_device_10de_055d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_055d,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10de_c615 = {
+	0xc615, pci_device_10de_c615,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10de_c615,
+#else
+	NULL,
+#endif
+	0
+};
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_10df_1ae5 = {
 	0x1ae5, pci_device_10df_1ae5,
@@ -90202,6 +95347,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10df_f011 = {
+	0xf011, pci_device_10df_f011,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10df_f011,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10df_f015 = {
+	0xf015, pci_device_10df_f015,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10df_f015,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10df_f085 = {
 	0xf085, pci_device_10df_f085,
 #ifdef INIT_SUBSYS_INFO
@@ -90301,6 +95464,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10df_f100 = {
+	0xf100, pci_device_10df_f100,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10df_f100,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10df_f700 = {
 	0xf700, pci_device_10df_f700,
 #ifdef INIT_SUBSYS_INFO
@@ -90427,6 +95599,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10df_fc40 = {
+	0xfc40, pci_device_10df_fc40,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10df_fc40,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10df_fd00 = {
 	0xfd00, pci_device_10df_fd00,
 #ifdef INIT_SUBSYS_INFO
@@ -90741,6 +95922,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10e8_80fc = {
+	0x80fc, pci_device_10e8_80fc,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10e8_80fc,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10e8_811a = {
 	0x811a, pci_device_10e8_811a,
 #ifdef INIT_SUBSYS_INFO
@@ -90777,6 +95967,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10e8_828d = {
+	0x828d, pci_device_10e8_828d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10e8_828d,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10e8_8291 = {
 	0x8291, pci_device_10e8_8291,
 #ifdef INIT_SUBSYS_INFO
@@ -90849,6 +96048,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10e8_8406 = {
+	0x8406, pci_device_10e8_8406,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10e8_8406,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10e8_8407 = {
+	0x8407, pci_device_10e8_8407,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10e8_8407,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10e8_8851 = {
 	0x8851, pci_device_10e8_8851,
 #ifdef INIT_SUBSYS_INFO
@@ -90970,6 +96187,60 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10ec_0260 = {
+	0x0260, pci_device_10ec_0260,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ec_0260,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10ec_0261 = {
+	0x0261, pci_device_10ec_0261,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ec_0261,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10ec_0280 = {
+	0x0280, pci_device_10ec_0280,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ec_0280,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10ec_0861 = {
+	0x0861, pci_device_10ec_0861,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ec_0861,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10ec_0862 = {
+	0x0862, pci_device_10ec_0862,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ec_0862,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_10ec_0880 = {
+	0x0880, pci_device_10ec_0880,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ec_0880,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10ec_0883 = {
 	0x0883, pci_device_10ec_0883,
 #ifdef INIT_SUBSYS_INFO
@@ -90979,6 +96250,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10ec_0888 = {
+	0x0888, pci_device_10ec_0888,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ec_0888,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10ec_8029 = {
 	0x8029, pci_device_10ec_8029,
 #ifdef INIT_SUBSYS_INFO
@@ -91199,6 +96479,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_10ee_8380 = {
+	0x8380, pci_device_10ee_8380,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_10ee_8380,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_10ee_8381 = {
 	0x8381, pci_device_10ee_8381,
 #ifdef INIT_SUBSYS_INFO
@@ -91541,6 +96830,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1103_2340 = {
+	0x2340, pci_device_1103_2340,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1103_2340,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1105_1105 = {
@@ -91653,6 +96951,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_0198 = {
+	0x0198, pci_device_1106_0198,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_0198,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_0204 = {
 	0x0204, pci_device_1106_0204,
 #ifdef INIT_SUBSYS_INFO
@@ -92211,6 +97518,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_2106 = {
+	0x2106, pci_device_1106_2106,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_2106,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_2204 = {
 	0x2204, pci_device_1106_2204,
 #ifdef INIT_SUBSYS_INFO
@@ -92742,6 +98058,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_3157 = {
+	0x3157, pci_device_1106_3157,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_3157,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_3164 = {
 	0x3164, pci_device_1106_3164,
 #ifdef INIT_SUBSYS_INFO
@@ -92850,6 +98175,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_3230 = {
+	0x3230, pci_device_1106_3230,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_3230,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_3238 = {
 	0x3238, pci_device_1106_3238,
 #ifdef INIT_SUBSYS_INFO
@@ -92913,6 +98247,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_3260 = {
+	0x3260, pci_device_1106_3260,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_3260,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_3269 = {
 	0x3269, pci_device_1106_3269,
 #ifdef INIT_SUBSYS_INFO
@@ -93012,6 +98355,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_3343 = {
+	0x3343, pci_device_1106_3343,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_3343,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_3344 = {
 	0x3344, pci_device_1106_3344,
 #ifdef INIT_SUBSYS_INFO
@@ -93048,6 +98400,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_3371 = {
+	0x3371, pci_device_1106_3371,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_3371,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1106_3372 = {
+	0x3372, pci_device_1106_3372,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_3372,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_337a = {
 	0x337a, pci_device_1106_337a,
 #ifdef INIT_SUBSYS_INFO
@@ -93282,6 +98652,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_5324 = {
+	0x5324, pci_device_1106_5324,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_5324,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_5327 = {
 	0x5327, pci_device_1106_5327,
 #ifdef INIT_SUBSYS_INFO
@@ -93336,6 +98715,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_6287 = {
+	0x6287, pci_device_1106_6287,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_6287,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_6327 = {
 	0x6327, pci_device_1106_6327,
 #ifdef INIT_SUBSYS_INFO
@@ -93345,6 +98733,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1106_6364 = {
+	0x6364, pci_device_1106_6364,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1106_6364,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1106_7204 = {
 	0x7204, pci_device_1106_7204,
 #ifdef INIT_SUBSYS_INFO
@@ -94548,42 +99945,6 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_1119_0010 = {
-	0x0010, pci_device_1119_0010,
-#ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1119_0010,
-#else
-	NULL,
-#endif
-	0
-};
-static const pciDeviceInfo pci_dev_info_1119_0011 = {
-	0x0011, pci_device_1119_0011,
-#ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1119_0011,
-#else
-	NULL,
-#endif
-	0
-};
-static const pciDeviceInfo pci_dev_info_1119_0012 = {
-	0x0012, pci_device_1119_0012,
-#ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1119_0012,
-#else
-	NULL,
-#endif
-	0
-};
-static const pciDeviceInfo pci_dev_info_1119_0013 = {
-	0x0013, pci_device_1119_0013,
-#ifdef INIT_SUBSYS_INFO
-	pci_ss_list_1119_0013,
-#else
-	NULL,
-#endif
-	0
-};
 static const pciDeviceInfo pci_dev_info_1119_0100 = {
 	0x0100, pci_device_1119_0100,
 #ifdef INIT_SUBSYS_INFO
@@ -95088,6 +100449,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1119_0301 = {
+	0x0301, pci_device_1119_0301,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1119_0301,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_111a_0000 = {
@@ -95835,6 +101205,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1133_e032 = {
+	0xe032, pci_device_1133_e032,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1133_e032,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1134_0001 = {
@@ -96352,6 +101731,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_114f_0013 = {
+	0x0013, pci_device_114f_0013,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_114f_0013,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_114f_0014 = {
 	0x0014, pci_device_114f_0014,
 #ifdef INIT_SUBSYS_INFO
@@ -97181,6 +102569,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1166_0235 = {
+	0x0235, pci_device_1166_0235,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1166_0235,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1166_0238 = {
+	0x0238, pci_device_1166_0238,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1166_0238,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1166_0240 = {
 	0x0240, pci_device_1166_0240,
 #ifdef INIT_SUBSYS_INFO
@@ -97569,6 +102975,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1180_0832 = {
+	0x0832, pci_device_1180_0832,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1180_0832,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1180_0841 = {
 	0x0841, pci_device_1180_0841,
 #ifdef INIT_SUBSYS_INFO
@@ -98284,6 +103699,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_0f53 = {
+	0x0f53, pci_device_11ab_0f53,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_0f53,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_11ab = {
+	0x11ab, pci_device_11ab_11ab,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_11ab,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_138f = {
 	0x138f, pci_device_11ab_138f,
 #ifdef INIT_SUBSYS_INFO
@@ -98320,6 +103753,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_2a01 = {
+	0x2a01, pci_device_11ab_2a01,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_2a01,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_4320 = {
 	0x4320, pci_device_11ab_4320,
 #ifdef INIT_SUBSYS_INFO
@@ -98464,6 +103906,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_4364 = {
+	0x4364, pci_device_11ab_4364,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_4364,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_4611 = {
 	0x4611, pci_device_11ab_4611,
 #ifdef INIT_SUBSYS_INFO
@@ -98554,6 +104005,42 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11ab_6101 = {
+	0x6101, pci_device_11ab_6101,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_6101,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_6141 = {
+	0x6141, pci_device_11ab_6141,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_6141,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_6145 = {
+	0x6145, pci_device_11ab_6145,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_6145,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11ab_6450 = {
+	0x6450, pci_device_11ab_6450,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11ab_6450,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11ab_6460 = {
 	0x6460, pci_device_11ab_6460,
 #ifdef INIT_SUBSYS_INFO
@@ -98712,6 +104199,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11bd_0040 = {
+	0x0040, pci_device_11bd_0040,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11bd_0040,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11bd_0041 = {
+	0x0041, pci_device_11bd_0041,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11bd_0041,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11bd_0042 = {
+	0x0042, pci_device_11bd_0042,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11bd_0042,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11bd_bede = {
 	0xbede, pci_device_11bd_bede,
 #ifdef INIT_SUBSYS_INFO
@@ -99020,6 +104534,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11c1_1040 = {
+	0x1040, pci_device_11c1_1040,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11c1_1040,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11c1_2600 = {
+	0x2600, pci_device_11c1_2600,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11c1_2600,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11c1_5801 = {
 	0x5801, pci_device_11c1_5801,
 #ifdef INIT_SUBSYS_INFO
@@ -99219,6 +104751,15 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_11d4_0078 = {
+	0x0078, pci_device_11d4_0078,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11d4_0078,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11d4_1535 = {
 	0x1535, pci_device_11d4_1535,
 #ifdef INIT_SUBSYS_INFO
@@ -99246,6 +104787,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11d4_1981 = {
+	0x1981, pci_device_11d4_1981,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11d4_1981,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_11d4_1983 = {
+	0x1983, pci_device_11d4_1983,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11d4_1983,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11d4_1986 = {
 	0x1986, pci_device_11d4_1986,
 #ifdef INIT_SUBSYS_INFO
@@ -99255,6 +104814,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_11d4_198b = {
+	0x198b, pci_device_11d4_198b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_11d4_198b,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_11d4_5340 = {
 	0x5340, pci_device_11d4_5340,
 #ifdef INIT_SUBSYS_INFO
@@ -101440,6 +107008,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1283_8152 = {
+	0x8152, pci_device_1283_8152,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1283_8152,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1283_8211 = {
 	0x8211, pci_device_1283_8211,
 #ifdef INIT_SUBSYS_INFO
@@ -101593,6 +107170,15 @@ static const pciDeviceInfo pci_dev_info_
 	0
 };
 #endif
+static const pciDeviceInfo pci_dev_info_1292_fc02 = {
+	0xfc02, pci_device_1292_fc02,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1292_fc02,
+#else
+	NULL,
+#endif
+	0
+};
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_129a_0615 = {
 	0x0615, pci_device_129a_0615,
@@ -101616,6 +107202,15 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_12ab_0000 = {
+	0x0000, pci_device_12ab_0000,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12ab_0000,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_12ab_0002 = {
 	0x0002, pci_device_12ab_0002,
 #ifdef INIT_SUBSYS_INFO
@@ -101625,6 +107220,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_12ab_2300 = {
+	0x2300, pci_device_12ab_2300,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12ab_2300,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_12ab_3000 = {
 	0x3000, pci_device_12ab_3000,
 #ifdef INIT_SUBSYS_INFO
@@ -101634,6 +107238,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_12ab_fff3 = {
+	0xfff3, pci_device_12ab_fff3,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12ab_fff3,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_12ab_ffff = {
+	0xffff, pci_device_12ab_ffff,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12ab_ffff,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_12ae_0001 = {
@@ -102147,6 +107769,15 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_12d8_01a7 = {
+	0x01a7, pci_device_12d8_01a7,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_12d8_01a7,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_12d8_8150 = {
 	0x8150, pci_device_12d8_8150,
 #ifdef INIT_SUBSYS_INFO
@@ -104022,6 +109653,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1374_003b = {
+	0x003b, pci_device_1374_003b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1374_003b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1374_003c = {
+	0x003c, pci_device_1374_003c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1374_003c,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_137a_0001 = {
@@ -104145,6 +109794,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1385_006b = {
+	0x006b, pci_device_1385_006b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1385_006b,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1385_311a = {
 	0x311a, pci_device_1385_311a,
 #ifdef INIT_SUBSYS_INFO
@@ -104428,6 +110086,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1393_1681 = {
+	0x1681, pci_device_1393_1681,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1393_1681,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1393_2040 = {
 	0x2040, pci_device_1393_2040,
 #ifdef INIT_SUBSYS_INFO
@@ -104495,30 +110162,28 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
-#endif
-#ifdef VENDOR_INCLUDE_NONVIDEO
-static const pciDeviceInfo pci_dev_info_139a_0001 = {
-	0x0001, pci_device_139a_0001,
+static const pciDeviceInfo pci_dev_info_1397_30b1 = {
+	0x30b1, pci_device_1397_30b1,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_139a_0001,
+	pci_ss_list_1397_30b1,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_139a_0003 = {
-	0x0003, pci_device_139a_0003,
+static const pciDeviceInfo pci_dev_info_1397_b700 = {
+	0xb700, pci_device_1397_b700,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_139a_0003,
+	pci_ss_list_1397_b700,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_139a_0005 = {
-	0x0005, pci_device_139a_0005,
+static const pciDeviceInfo pci_dev_info_1397_f001 = {
+	0xf001, pci_device_1397_f001,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_139a_0005,
+	pci_ss_list_1397_f001,
 #else
 	NULL,
 #endif
@@ -104526,10 +110191,39 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
-static const pciDeviceInfo pci_dev_info_13a3_0005 = {
-	0x0005, pci_device_13a3_0005,
+static const pciDeviceInfo pci_dev_info_139a_0001 = {
+	0x0001, pci_device_139a_0001,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_13a3_0005,
+	pci_ss_list_139a_0001,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_139a_0003 = {
+	0x0003, pci_device_139a_0003,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_139a_0003,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_139a_0005 = {
+	0x0005, pci_device_139a_0005,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_139a_0005,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_13a3_0005 = {
+	0x0005, pci_device_13a3_0005,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_13a3_0005,
 #else
 	NULL,
 #endif
@@ -104625,6 +110319,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_13a3_002e = {
+	0x002e, pci_device_13a3_002e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_13a3_002e,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_13a8_0152 = {
@@ -104730,6 +110433,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_13c1_1004 = {
+	0x1004, pci_device_13c1_1004,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_13c1_1004,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_13c2_000e = {
@@ -104830,6 +110542,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_13d3_3219 = {
+	0x3219, pci_device_13d3_3219,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_13d3_3219,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_13df_0001 = {
 	0x0001, pci_device_13df_0001,
 #ifdef INIT_SUBSYS_INFO
@@ -104937,6 +110660,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_13f6_9880 = {
+	0x9880, pci_device_13f6_9880,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_13f6_9880,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_13fe_1240 = {
@@ -105367,6 +111099,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1425_000c = {
+	0x000c, pci_device_1425_000c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1425_000c,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_142e_4020 = {
@@ -105586,6 +111327,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1458_9001 = {
+	0x9001, pci_device_1458_9001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1458_9001,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1458_e911 = {
 	0xe911, pci_device_1458_e911,
 #ifdef INIT_SUBSYS_INFO
@@ -105608,6 +111358,33 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1461_a3ce = {
+	0xa3ce, pci_device_1461_a3ce,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1461_a3ce,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1461_a3cf = {
+	0xa3cf, pci_device_1461_a3cf,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1461_a3cf,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1461_a836 = {
+	0xa836, pci_device_1461_a836,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1461_a836,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1461_f436 = {
 	0xf436, pci_device_1461_f436,
 #ifdef INIT_SUBSYS_INFO
@@ -105664,6 +111441,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1462_7235 = {
+	0x7235, pci_device_1462_7235,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1462_7235,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1462_7242 = {
+	0x7242, pci_device_1462_7242,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1462_7242,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1462_8725 = {
 	0x8725, pci_device_1462_8725,
 #ifdef INIT_SUBSYS_INFO
@@ -105736,6 +111531,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1462_b834 = {
+	0xb834, pci_device_1462_b834,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1462_b834,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_146c_1430 = {
@@ -106436,6 +112240,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_1639 = {
+	0x1639, pci_device_14e4_1639,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_1639,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_14e4_163a = {
+	0x163a, pci_device_14e4_163a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_163a,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_1644 = {
 	0x1644, pci_device_14e4_1644,
 #ifdef INIT_SUBSYS_INFO
@@ -106535,6 +112357,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_165a = {
+	0x165a, pci_device_14e4_165a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_165a,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_165d = {
 	0x165d, pci_device_14e4_165d,
 #ifdef INIT_SUBSYS_INFO
@@ -106616,6 +112447,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_1674 = {
+	0x1674, pci_device_14e4_1674,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_1674,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_1677 = {
 	0x1677, pci_device_14e4_1677,
 #ifdef INIT_SUBSYS_INFO
@@ -106679,6 +112519,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_167f = {
+	0x167f, pci_device_14e4_167f,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_167f,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_1693 = {
 	0x1693, pci_device_14e4_1693,
 #ifdef INIT_SUBSYS_INFO
@@ -106859,6 +112708,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_1712 = {
+	0x1712, pci_device_14e4_1712,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_1712,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_14e4_1713 = {
+	0x1713, pci_device_14e4_1713,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_1713,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_3352 = {
 	0x3352, pci_device_14e4_3352,
 #ifdef INIT_SUBSYS_INFO
@@ -106904,6 +112771,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_4220 = {
+	0x4220, pci_device_14e4_4220,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_4220,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_4301 = {
 	0x4301, pci_device_14e4_4301,
 #ifdef INIT_SUBSYS_INFO
@@ -107066,6 +112942,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_4344 = {
+	0x4344, pci_device_14e4_4344,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_4344,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_4401 = {
 	0x4401, pci_device_14e4_4401,
 #ifdef INIT_SUBSYS_INFO
@@ -107435,6 +113320,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14e4_5695 = {
+	0x5695, pci_device_14e4_5695,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_5695,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_14e4_5698 = {
+	0x5698, pci_device_14e4_5698,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14e4_5698,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14e4_5820 = {
 	0x5820, pci_device_14e4_5820,
 #ifdef INIT_SUBSYS_INFO
@@ -107781,6 +113684,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14f1_10b6 = {
+	0x10b6, pci_device_14f1_10b6,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14f1_10b6,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14f1_1433 = {
 	0x1433, pci_device_14f1_1433,
 #ifdef INIT_SUBSYS_INFO
@@ -108339,6 +114251,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_14f1_2f30 = {
+	0x2f30, pci_device_14f1_2f30,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14f1_2f30,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_14f1_5045 = {
+	0x5045, pci_device_14f1_5045,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14f1_5045,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_14f1_5047 = {
+	0x5047, pci_device_14f1_5047,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_14f1_5047,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_14f1_8234 = {
 	0x8234, pci_device_14f1_8234,
 #ifdef INIT_SUBSYS_INFO
@@ -108741,6 +114680,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1524_0551 = {
+	0x0551, pci_device_1524_0551,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1524_0551,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1524_0610 = {
 	0x0610, pci_device_1524_0610,
 #ifdef INIT_SUBSYS_INFO
@@ -109112,6 +115060,35 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1590_0001 = {
+	0x0001, pci_device_1590_0001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1590_0001,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1590_0002 = {
+	0x0002, pci_device_1590_0002,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1590_0002,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1590_a01d = {
+	0xa01d, pci_device_1590_a01d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1590_a01d,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1592_0781 = {
 	0x0781, pci_device_1592_0781,
 #ifdef INIT_SUBSYS_INFO
@@ -109224,6 +115201,15 @@ static const pciDeviceInfo pci_dev_info_
 	0
 };
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_15b3_0191 = {
+	0x0191, pci_device_15b3_0191,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b3_0191,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_15b3_5274 = {
 	0x5274, pci_device_15b3_5274,
 #ifdef INIT_SUBSYS_INFO
@@ -109305,6 +115291,80 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_15b3_6340 = {
+	0x6340, pci_device_15b3_6340,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b3_6340,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_15b3_634a = {
+	0x634a, pci_device_15b3_634a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b3_634a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_15b3_6354 = {
+	0x6354, pci_device_15b3_6354,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b3_6354,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_15b3_6368 = {
+	0x6368, pci_device_15b3_6368,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b3_6368,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_15b8_1003 = {
+	0x1003, pci_device_15b8_1003,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b8_1003,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_15b8_1005 = {
+	0x1005, pci_device_15b8_1005,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b8_1005,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_15b8_100a = {
+	0x100a, pci_device_15b8_100a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b8_100a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_15b8_3001 = {
+	0x3001, pci_device_15b8_3001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15b8_3001,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_15bc_1100 = {
@@ -109378,6 +115438,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_15e2_0500 = {
+	0x0500, pci_device_15e2_0500,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_15e2_0500,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_15e8_0130 = {
 	0x0130, pci_device_15e8_0130,
 #ifdef INIT_SUBSYS_INFO
@@ -109505,6 +115576,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1629_1006 = {
+	0x1006, pci_device_1629_1006,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1629_1006,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1629_1007 = {
+	0x1007, pci_device_1629_1007,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1629_1007,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1629_2002 = {
 	0x2002, pci_device_1629_2002,
 #ifdef INIT_SUBSYS_INFO
@@ -109756,6 +115845,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_168c_001c = {
+	0x001c, pci_device_168c_001c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_168c_001c,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_168c_0020 = {
 	0x0020, pci_device_168c_0020,
 #ifdef INIT_SUBSYS_INFO
@@ -109765,6 +115863,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_168c_0023 = {
+	0x0023, pci_device_168c_0023,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_168c_0023,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_168c_0024 = {
+	0x0024, pci_device_168c_0024,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_168c_0024,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_168c_1014 = {
 	0x1014, pci_device_168c_1014,
 #ifdef INIT_SUBSYS_INFO
@@ -109774,6 +115890,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_168c_3b08 = {
+	0x3b08, pci_device_168c_3b08,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_168c_3b08,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_169c_0044 = {
@@ -109787,6 +115912,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_169d_3306 = {
+	0x3306, pci_device_169d_3306,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_169d_3306,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_16ab_1100 = {
 	0x1100, pci_device_16ab_1100,
 #ifdef INIT_SUBSYS_INFO
@@ -109825,6 +115961,24 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_16ae_0001 = {
+	0x0001, pci_device_16ae_0001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16ae_0001,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16ae_000a = {
+	0x000a, pci_device_16ae_000a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16ae_000a,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_16ae_1141 = {
 	0x1141, pci_device_16ae_1141,
 #ifdef INIT_SUBSYS_INFO
@@ -109834,6 +115988,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_16ae_1841 = {
+	0x1841, pci_device_16ae_1841,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16ae_1841,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_16c6_8695 = {
@@ -109858,6 +116021,285 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_16d5_0504 = {
+	0x0504, pci_device_16d5_0504,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_0504,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_0520 = {
+	0x0520, pci_device_16d5_0520,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_0520,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_0521 = {
+	0x0521, pci_device_16d5_0521,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_0521,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_1020 = {
+	0x1020, pci_device_16d5_1020,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_1020,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_1065 = {
+	0x1065, pci_device_16d5_1065,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_1065,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_2004 = {
+	0x2004, pci_device_16d5_2004,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_2004,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_2020 = {
+	0x2020, pci_device_16d5_2020,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_2020,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_2065 = {
+	0x2065, pci_device_16d5_2065,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_2065,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_3020 = {
+	0x3020, pci_device_16d5_3020,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_3020,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_3065 = {
+	0x3065, pci_device_16d5_3065,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_3065,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4243 = {
+	0x4243, pci_device_16d5_4243,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4243,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4248 = {
+	0x4248, pci_device_16d5_4248,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4248,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_424b = {
+	0x424b, pci_device_16d5_424b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_424b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4253 = {
+	0x4253, pci_device_16d5_4253,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4253,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4312 = {
+	0x4312, pci_device_16d5_4312,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4312,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4313 = {
+	0x4313, pci_device_16d5_4313,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4313,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4322 = {
+	0x4322, pci_device_16d5_4322,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4322,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4323 = {
+	0x4323, pci_device_16d5_4323,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4323,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4350 = {
+	0x4350, pci_device_16d5_4350,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4350,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4353 = {
+	0x4353, pci_device_16d5_4353,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4353,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4357 = {
+	0x4357, pci_device_16d5_4357,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4357,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4457 = {
+	0x4457, pci_device_16d5_4457,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4457,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_464d = {
+	0x464d, pci_device_16d5_464d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_464d,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4850 = {
+	0x4850, pci_device_16d5_4850,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4850,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4a42 = {
+	0x4a42, pci_device_16d5_4a42,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4a42,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4a50 = {
+	0x4a50, pci_device_16d5_4a50,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4a50,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4a56 = {
+	0x4a56, pci_device_16d5_4a56,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4a56,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4b47 = {
+	0x4b47, pci_device_16d5_4b47,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4b47,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4c40 = {
+	0x4c40, pci_device_16d5_4c40,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4c40,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4c60 = {
+	0x4c60, pci_device_16d5_4c60,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4c60,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_4d4d = {
+	0x4d4d, pci_device_16d5_4d4d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_4d4d,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_16d5_4d4e = {
 	0x4d4e, pci_device_16d5_4d4e,
 #ifdef INIT_SUBSYS_INFO
@@ -109867,6 +116309,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_16d5_524d = {
+	0x524d, pci_device_16d5_524d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_524d,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_5335 = {
+	0x5335, pci_device_16d5_5335,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_5335,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_16d5_5456 = {
+	0x5456, pci_device_16d5_5456,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16d5_5456,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_16e3_1e0f = {
@@ -109889,6 +116358,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_16e5_6300 = {
+	0x6300, pci_device_16e5_6300,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_16e5_6300,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_16ec_00ff = {
@@ -109993,6 +116471,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1734_1085 = {
+	0x1085, pci_device_1734_1085,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1734_1085,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1737_0013 = {
@@ -110013,6 +116500,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1737_0029 = {
+	0x0029, pci_device_1737_0029,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1737_0029,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1737_1032 = {
 	0x1032, pci_device_1737_1032,
 #ifdef INIT_SUBSYS_INFO
@@ -110435,6 +116931,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_17db_0101 = {
+	0x0101, pci_device_17db_0101,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_17db_0101,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_17e4_0001 = {
 	0x0001, pci_device_17e4_0001,
 #ifdef INIT_SUBSYS_INFO
@@ -110484,6 +116991,53 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_17f3_6020 = {
+	0x6020, pci_device_17f3_6020,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_17f3_6020,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_17f3_6030 = {
+	0x6030, pci_device_17f3_6030,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_17f3_6030,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_17f3_6040 = {
+	0x6040, pci_device_17f3_6040,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_17f3_6040,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_17f3_6060 = {
+	0x6060, pci_device_17f3_6060,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_17f3_6060,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_17f3_6061 = {
+	0x6061, pci_device_17f3_6061,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_17f3_6061,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_17fe_2120 = {
 	0x2120, pci_device_17fe_2120,
 #ifdef INIT_SUBSYS_INFO
@@ -110578,8 +117132,26 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1814_e932 = {
+	0xe932, pci_device_1814_e932,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1814_e932,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1822_0001 = {
+	0x0001, pci_device_1822_0001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1822_0001,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_1822_4e35 = {
 	0x4e35, pci_device_1822_4e35,
 #ifdef INIT_SUBSYS_INFO
@@ -110718,6 +117290,46 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_186c_0614 = {
+	0x0614, pci_device_186c_0614,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_186c_0614,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1876_a101 = {
+	0xa101, pci_device_1876_a101,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1876_a101,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1876_a102 = {
+	0xa102, pci_device_1876_a102,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1876_a102,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1876_a103 = {
+	0xa103, pci_device_1876_a103,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1876_a103,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_187e_3403 = {
 	0x3403, pci_device_187e_3403,
 #ifdef INIT_SUBSYS_INFO
@@ -110843,6 +117455,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_18ca_0047 = {
+	0x0047, pci_device_18ca_0047,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_18ca_0047,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_18d2_3069 = {
@@ -111213,6 +117834,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_1969_2048 = {
+	0x2048, pci_device_1969_2048,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1969_2048,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_196a_0101 = {
@@ -111233,6 +117863,26 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_196a_0105 = {
+	0x0105, pci_device_196a_0105,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_196a_0105,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1971_1011 = {
+	0x1011, pci_device_1971_1011,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1971_1011,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_197b_2360 = {
@@ -111280,6 +117930,35 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_197b_2368 = {
+	0x2368, pci_device_197b_2368,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_197b_2368,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1982_1600 = {
+	0x1600, pci_device_1982_1600,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1982_1600,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1982_16ff = {
+	0x16ff, pci_device_1982_16ff,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1982_16ff,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1989_0001 = {
@@ -111302,6 +117981,26 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_19a2_0200 = {
+	0x0200, pci_device_19a2_0200,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_19a2_0200,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_19a2_0201 = {
+	0x0201, pci_device_19a2_0201,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_19a2_0201,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_19ac_0001 = {
 	0x0001, pci_device_19ac_0001,
 #ifdef INIT_SUBSYS_INFO
@@ -111380,6 +118079,26 @@ static const pciDeviceInfo pci_dev_info_
 	0
 };
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1a07_0006 = {
+	0x0006, pci_device_1a07_0006,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1a07_0006,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_1a07_0007 = {
+	0x0007, pci_device_1a07_0007,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1a07_0007,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1a08_0000 = {
 	0x0000, pci_device_1a08_0000,
 #ifdef INIT_SUBSYS_INFO
@@ -111391,6 +118110,39 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1a1d_1a17 = {
+	0x1a17, pci_device_1a1d_1a17,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1a1d_1a17,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1a73_0001 = {
+	0x0001, pci_device_1a73_0001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1a73_0001,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_1a8c_1100 = {
+	0x1100, pci_device_1a8c_1100,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_1a8c_1100,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_1c1c_0001 = {
 	0x0001, pci_device_1c1c_0001,
 #ifdef INIT_SUBSYS_INFO
@@ -111978,6 +118730,44 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_4040_0001 = {
+	0x0001, pci_device_4040_0001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_4040_0001,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_4040_0002 = {
+	0x0002, pci_device_4040_0002,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_4040_0002,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_4040_0003 = {
+	0x0003, pci_device_4040_0003,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_4040_0003,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_4040_0004 = {
+	0x0004, pci_device_4040_0004,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_4040_0004,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_4144_0044 = {
 	0x0044, pci_device_4144_0044,
 #ifdef INIT_SUBSYS_INFO
@@ -112093,6 +118883,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_4d56_0000 = {
+	0x0000, pci_device_4d56_0000,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_4d56_0000,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_4ddc_0100 = {
 	0x0100, pci_device_4ddc_0100,
 #ifdef INIT_SUBSYS_INFO
@@ -113013,6 +119814,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_5333_8e48 = {
+	0x8e48, pci_device_5333_8e48,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_5333_8e48,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_5333_9102 = {
 	0x9102, pci_device_5333_9102,
 #ifdef INIT_SUBSYS_INFO
@@ -113087,6 +119897,17 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_5853_0001 = {
+	0x0001, pci_device_5853_0001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_5853_0001,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_6374_6773 = {
 	0x6773, pci_device_6374_6773,
 #ifdef INIT_SUBSYS_INFO
@@ -114687,6 +121508,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_10a5 = {
+	0x10a5, pci_device_8086_10a5,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10a5,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_10b0 = {
 	0x10b0, pci_device_8086_10b0,
 #ifdef INIT_SUBSYS_INFO
@@ -114732,6 +121562,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_10b6 = {
+	0x10b6, pci_device_8086_10b6,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10b6,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_10b9 = {
 	0x10b9, pci_device_8086_10b9,
 #ifdef INIT_SUBSYS_INFO
@@ -114768,6 +121607,42 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_10bd = {
+	0x10bd, pci_device_8086_10bd,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10bd,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_10c0 = {
+	0x10c0, pci_device_8086_10c0,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10c0,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_10c2 = {
+	0x10c2, pci_device_8086_10c2,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10c2,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_10c3 = {
+	0x10c3, pci_device_8086_10c3,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10c3,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_10c4 = {
 	0x10c4, pci_device_8086_10c4,
 #ifdef INIT_SUBSYS_INFO
@@ -114786,6 +121661,42 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_10c6 = {
+	0x10c6, pci_device_8086_10c6,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10c6,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_10c7 = {
+	0x10c7, pci_device_8086_10c7,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10c7,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_10d9 = {
+	0x10d9, pci_device_8086_10d9,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10d9,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_10da = {
+	0x10da, pci_device_8086_10da,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_10da,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_1107 = {
 	0x1107, pci_device_8086_1107,
 #ifdef INIT_SUBSYS_INFO
@@ -117882,10 +124793,64 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_8086_2910 = {
-	0x2910, pci_device_8086_2910,
+static const pciDeviceInfo pci_dev_info_8086_2911 = {
+	0x2911, pci_device_8086_2911,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2911,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2912 = {
+	0x2912, pci_device_8086_2912,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2912,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2914 = {
+	0x2914, pci_device_8086_2914,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_8086_2910,
+	pci_ss_list_8086_2914,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2916 = {
+	0x2916, pci_device_8086_2916,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2916,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2917 = {
+	0x2917, pci_device_8086_2917,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2917,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2918 = {
+	0x2918, pci_device_8086_2918,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2918,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_2919 = {
+	0x2919, pci_device_8086_2919,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2919,
 #else
 	NULL,
 #endif
@@ -117954,6 +124919,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_2929 = {
+	0x2929, pci_device_8086_2929,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_2929,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_292c = {
+	0x292c, pci_device_8086_292c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_292c,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_292d = {
 	0x292d, pci_device_8086_292d,
 #ifdef INIT_SUBSYS_INFO
@@ -118530,6 +125513,78 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_29d0 = {
+	0x29d0, pci_device_8086_29d0,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_29d0,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_29d1 = {
+	0x29d1, pci_device_8086_29d1,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_29d1,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_29d2 = {
+	0x29d2, pci_device_8086_29d2,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_29d2,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_29d3 = {
+	0x29d3, pci_device_8086_29d3,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_29d3,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_29d4 = {
+	0x29d4, pci_device_8086_29d4,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_29d4,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_29d5 = {
+	0x29d5, pci_device_8086_29d5,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_29d5,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_29d6 = {
+	0x29d6, pci_device_8086_29d6,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_29d6,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_29d7 = {
+	0x29d7, pci_device_8086_29d7,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_29d7,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_29e0 = {
 	0x29e0, pci_device_8086_29e0,
 #ifdef INIT_SUBSYS_INFO
@@ -118728,19 +125783,46 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_8086_3092 = {
-	0x3092, pci_device_8086_3092,
+static const pciDeviceInfo pci_dev_info_8086_3200 = {
+	0x3200, pci_device_8086_3200,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_3200,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_3313 = {
+	0x3313, pci_device_8086_3313,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_8086_3092,
+	pci_ss_list_8086_3313,
 #else
 	NULL,
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_8086_3200 = {
-	0x3200, pci_device_8086_3200,
+static const pciDeviceInfo pci_dev_info_8086_331b = {
+	0x331b, pci_device_8086_331b,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_8086_3200,
+	pci_ss_list_8086_331b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_3331 = {
+	0x3331, pci_device_8086_3331,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_3331,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_3339 = {
+	0x3339, pci_device_8086_3339,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_3339,
 #else
 	NULL,
 #endif
@@ -118764,6 +125846,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_3363 = {
+	0x3363, pci_device_8086_3363,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_3363,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_33c3 = {
+	0x33c3, pci_device_8086_33c3,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_33c3,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_33cb = {
+	0x33cb, pci_device_8086_33cb,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_33cb,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_3500 = {
 	0x3500, pci_device_8086_3500,
 #ifdef INIT_SUBSYS_INFO
@@ -119259,6 +126368,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_4001 = {
+	0x4001, pci_device_8086_4001,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_4001,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_4003 = {
+	0x4003, pci_device_8086_4003,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_4003,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_4008 = {
 	0x4008, pci_device_8086_4008,
 #ifdef INIT_SUBSYS_INFO
@@ -119466,6 +126593,33 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_4229 = {
+	0x4229, pci_device_8086_4229,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_4229,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_4230 = {
+	0x4230, pci_device_8086_4230,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_4230,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_444e = {
+	0x444e, pci_device_8086_444e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_444e,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_5001 = {
 	0x5001, pci_device_8086_5001,
 #ifdef INIT_SUBSYS_INFO
@@ -119475,6 +126629,294 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_5020 = {
+	0x5020, pci_device_8086_5020,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5020,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5021 = {
+	0x5021, pci_device_8086_5021,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5021,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5023 = {
+	0x5023, pci_device_8086_5023,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5023,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5024 = {
+	0x5024, pci_device_8086_5024,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5024,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5025 = {
+	0x5025, pci_device_8086_5025,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5025,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5028 = {
+	0x5028, pci_device_8086_5028,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5028,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5029 = {
+	0x5029, pci_device_8086_5029,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5029,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_502a = {
+	0x502a, pci_device_8086_502a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_502a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_502b = {
+	0x502b, pci_device_8086_502b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_502b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5031 = {
+	0x5031, pci_device_8086_5031,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5031,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5032 = {
+	0x5032, pci_device_8086_5032,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5032,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5033 = {
+	0x5033, pci_device_8086_5033,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5033,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5035 = {
+	0x5035, pci_device_8086_5035,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5035,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5037 = {
+	0x5037, pci_device_8086_5037,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5037,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5039 = {
+	0x5039, pci_device_8086_5039,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5039,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_503a = {
+	0x503a, pci_device_8086_503a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_503a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_503b = {
+	0x503b, pci_device_8086_503b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_503b,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_503c = {
+	0x503c, pci_device_8086_503c,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_503c,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_503d = {
+	0x503d, pci_device_8086_503d,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_503d,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_503e = {
+	0x503e, pci_device_8086_503e,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_503e,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5040 = {
+	0x5040, pci_device_8086_5040,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5040,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5041 = {
+	0x5041, pci_device_8086_5041,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5041,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5042 = {
+	0x5042, pci_device_8086_5042,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5042,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5043 = {
+	0x5043, pci_device_8086_5043,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5043,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5044 = {
+	0x5044, pci_device_8086_5044,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5044,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5045 = {
+	0x5045, pci_device_8086_5045,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5045,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5046 = {
+	0x5046, pci_device_8086_5046,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5046,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5047 = {
+	0x5047, pci_device_8086_5047,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5047,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5048 = {
+	0x5048, pci_device_8086_5048,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5048,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_5049 = {
+	0x5049, pci_device_8086_5049,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_5049,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_504a = {
+	0x504a, pci_device_8086_504a,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_504a,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8086_504b = {
+	0x504b, pci_device_8086_504b,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_504b,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_5200 = {
 	0x5200, pci_device_8086_5200,
 #ifdef INIT_SUBSYS_INFO
@@ -120015,6 +127457,15 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_8086_8002 = {
+	0x8002, pci_device_8086_8002,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8086_8002,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_8086_84c4 = {
 	0x84c4, pci_device_8086_84c4,
 #ifdef INIT_SUBSYS_INFO
@@ -120232,6 +127683,55 @@ static const pciDeviceInfo pci_dev_info_
 	0
 };
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_80ee_beef = {
+	0xbeef, pci_device_80ee_beef,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_80ee_beef,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_80ee_cafe = {
+	0xcafe, pci_device_80ee_cafe,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_80ee_cafe,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_8384_7618 = {
+	0x7618, pci_device_8384_7618,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8384_7618,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8384_7670 = {
+	0x7670, pci_device_8384_7670,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8384_7670,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_8384_7672 = {
+	0x7672, pci_device_8384_7672,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_8384_7672,
+#else
+	NULL,
+#endif
+	0
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_8686_1010 = {
 	0x1010, pci_device_8686_1010,
 #ifdef INIT_SUBSYS_INFO
@@ -121115,6 +128615,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_9005_0092 = {
+	0x0092, pci_device_9005_0092,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_9005_0092,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_9005_0093 = {
+	0x0093, pci_device_9005_0093,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_9005_0093,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_9005_00c0 = {
 	0x00c0, pci_device_9005_00c0,
 #ifdef INIT_SUBSYS_INFO
@@ -121776,6 +129294,15 @@ static const pciDeviceInfo pci_dev_info_
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo pci_dev_info_d161_0120 = {
+	0x0120, pci_device_d161_0120,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_d161_0120,
+#else
+	NULL,
+#endif
+	0
+};
 static const pciDeviceInfo pci_dev_info_d161_0205 = {
 	0x0205, pci_device_d161_0205,
 #ifdef INIT_SUBSYS_INFO
@@ -121803,15 +129330,6 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_d161_0406 = {
-	0x0406, pci_device_d161_0406,
-#ifdef INIT_SUBSYS_INFO
-	pci_ss_list_d161_0406,
-#else
-	NULL,
-#endif
-	0
-};
 static const pciDeviceInfo pci_dev_info_d161_0410 = {
 	0x0410, pci_device_d161_0410,
 #ifdef INIT_SUBSYS_INFO
@@ -121821,10 +129339,10 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
-static const pciDeviceInfo pci_dev_info_d161_0411 = {
-	0x0411, pci_device_d161_0411,
+static const pciDeviceInfo pci_dev_info_d161_0800 = {
+	0x0800, pci_device_d161_0800,
 #ifdef INIT_SUBSYS_INFO
-	pci_ss_list_d161_0411,
+	pci_ss_list_d161_0800,
 #else
 	NULL,
 #endif
@@ -121839,6 +129357,24 @@ static const pciDeviceInfo pci_dev_info_
 #endif
 	0
 };
+static const pciDeviceInfo pci_dev_info_d161_3400 = {
+	0x3400, pci_device_d161_3400,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_d161_3400,
+#else
+	NULL,
+#endif
+	0
+};
+static const pciDeviceInfo pci_dev_info_d161_b410 = {
+	0xb410, pci_device_d161_b410,
+#ifdef INIT_SUBSYS_INFO
+	pci_ss_list_d161_b410,
+#else
+	NULL,
+#endif
+	0
+};
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo pci_dev_info_d4d4_0601 = {
@@ -122376,6 +129912,7 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
+#define pci_dev_list_02e0 NULL
 #define pci_dev_list_0315 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_0357[] = {
@@ -122414,6 +129951,12 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_058f[] = {
+	&pci_dev_info_058f_9254,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_05a9[] = {
 	&pci_dev_info_05a9_8519,
 	NULL
@@ -122470,6 +130013,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_093a_010e,
 	&pci_dev_info_093a_010f,
 	&pci_dev_info_093a_2468,
+	&pci_dev_info_093a_2600,
 	&pci_dev_info_093a_2603,
 	&pci_dev_info_093a_2608,
 	NULL
@@ -122647,6 +130191,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1000_0054,
 	&pci_dev_info_1000_0055,
 	&pci_dev_info_1000_0056,
+	&pci_dev_info_1000_0057,
 	&pci_dev_info_1000_0058,
 	&pci_dev_info_1000_005a,
 	&pci_dev_info_1000_005c,
@@ -123064,6 +130609,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_715f,
 	&pci_dev_info_1002_7162,
 	&pci_dev_info_1002_7166,
+	&pci_dev_info_1002_716e,
 	&pci_dev_info_1002_7172,
 	&pci_dev_info_1002_7173,
 	&pci_dev_info_1002_7180,
@@ -123089,11 +130635,13 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_71c6,
 	&pci_dev_info_1002_71c7,
 	&pci_dev_info_1002_71ce,
+	&pci_dev_info_1002_71d4,
 	&pci_dev_info_1002_71d5,
 	&pci_dev_info_1002_71d6,
 	&pci_dev_info_1002_71de,
 	&pci_dev_info_1002_71e0,
 	&pci_dev_info_1002_71e2,
+	&pci_dev_info_1002_71e6,
 	&pci_dev_info_1002_71e7,
 	&pci_dev_info_1002_7210,
 	&pci_dev_info_1002_7211,
@@ -123127,6 +130675,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1002_7834,
 	&pci_dev_info_1002_7835,
 	&pci_dev_info_1002_7838,
+	&pci_dev_info_1002_7919,
 	&pci_dev_info_1002_791e,
 	&pci_dev_info_1002_791f,
 	&pci_dev_info_1002_793f,
@@ -123360,6 +130909,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1014_01bd,
 	&pci_dev_info_1014_01c1,
 	&pci_dev_info_1014_01e6,
+	&pci_dev_info_1014_01ef,
 	&pci_dev_info_1014_01ff,
 	&pci_dev_info_1014_0219,
 	&pci_dev_info_1014_021b,
@@ -123374,6 +130924,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1014_0302,
 	&pci_dev_info_1014_0308,
 	&pci_dev_info_1014_0314,
+	&pci_dev_info_1014_0339,
 	&pci_dev_info_1014_3022,
 	&pci_dev_info_1014_4022,
 	&pci_dev_info_1014_ffff,
@@ -123393,6 +130944,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_101a[] = {
 	&pci_dev_info_101a_0005,
+	&pci_dev_info_101a_1dc1,
 	NULL
 };
 #endif
@@ -123436,6 +130988,16 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1022_1101,
 	&pci_dev_info_1022_1102,
 	&pci_dev_info_1022_1103,
+	&pci_dev_info_1022_1200,
+	&pci_dev_info_1022_1201,
+	&pci_dev_info_1022_1202,
+	&pci_dev_info_1022_1203,
+	&pci_dev_info_1022_1204,
+	&pci_dev_info_1022_1300,
+	&pci_dev_info_1022_1301,
+	&pci_dev_info_1022_1302,
+	&pci_dev_info_1022_1303,
+	&pci_dev_info_1022_1304,
 	&pci_dev_info_1022_2000,
 	&pci_dev_info_1022_2001,
 	&pci_dev_info_1022_2003,
@@ -123624,7 +131186,6 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1028_0013,
 	&pci_dev_info_1028_0014,
 	&pci_dev_info_1028_0015,
-	&pci_dev_info_1028_1f03,
 	NULL
 };
 #define pci_dev_list_1029 NULL
@@ -123914,6 +131475,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_103c_12fa,
 	&pci_dev_info_103c_1302,
 	&pci_dev_info_103c_1303,
+	&pci_dev_info_103c_1361,
 	&pci_dev_info_103c_2910,
 	&pci_dev_info_103c_2925,
 	&pci_dev_info_103c_3080,
@@ -123921,6 +131483,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_103c_30b5,
 	&pci_dev_info_103c_3220,
 	&pci_dev_info_103c_3230,
+	&pci_dev_info_103c_3238,
 	&pci_dev_info_103c_4030,
 	&pci_dev_info_103c_4031,
 	&pci_dev_info_103c_4037,
@@ -124168,7 +131731,13 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_1051 NULL
 #define pci_dev_list_1052 NULL
 #define pci_dev_list_1053 NULL
-#define pci_dev_list_1054 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1054[] = {
+	&pci_dev_info_1054_3011,
+	&pci_dev_info_1054_3012,
+	NULL
+};
+#endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1055[] = {
 	&pci_dev_info_1055_9130,
@@ -124190,6 +131759,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1057_0012,
 	&pci_dev_info_1057_0100,
 	&pci_dev_info_1057_0431,
+	&pci_dev_info_1057_1073,
+	&pci_dev_info_1057_1219,
 	&pci_dev_info_1057_1801,
 	&pci_dev_info_1057_18c0,
 	&pci_dev_info_1057_18c1,
@@ -124258,7 +131829,12 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
-#define pci_dev_list_105b NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_105b[] = {
+	&pci_dev_info_105b_0c4d,
+	NULL
+};
+#endif
 #define pci_dev_list_105c NULL
 static const pciDeviceInfo *pci_dev_list_105d[] = {
 	&pci_dev_info_105d_2309,
@@ -124611,6 +132187,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_108e_2bad,
 	&pci_dev_info_108e_5000,
 	&pci_dev_info_108e_5043,
+	&pci_dev_info_108e_676e,
+	&pci_dev_info_108e_7063,
 	&pci_dev_info_108e_8000,
 	&pci_dev_info_108e_8001,
 	&pci_dev_info_108e_8002,
@@ -124861,6 +132439,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10b5_1147,
 	&pci_dev_info_10b5_2540,
 	&pci_dev_info_10b5_2724,
+	&pci_dev_info_10b5_6520,
 	&pci_dev_info_10b5_6540,
 	&pci_dev_info_10b5_6541,
 	&pci_dev_info_10b5_6542,
@@ -125264,6 +132843,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0091,
 	&pci_dev_info_10de_0092,
 	&pci_dev_info_10de_0093,
+	&pci_dev_info_10de_0095,
 	&pci_dev_info_10de_0098,
 	&pci_dev_info_10de_0099,
 	&pci_dev_info_10de_009d,
@@ -125327,6 +132907,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0140,
 	&pci_dev_info_10de_0141,
 	&pci_dev_info_10de_0142,
+	&pci_dev_info_10de_0143,
 	&pci_dev_info_10de_0144,
 	&pci_dev_info_10de_0145,
 	&pci_dev_info_10de_0146,
@@ -125352,6 +132933,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0167,
 	&pci_dev_info_10de_0168,
 	&pci_dev_info_10de_0169,
+	&pci_dev_info_10de_016a,
 	&pci_dev_info_10de_0170,
 	&pci_dev_info_10de_0171,
 	&pci_dev_info_10de_0172,
@@ -125369,6 +132951,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0181,
 	&pci_dev_info_10de_0182,
 	&pci_dev_info_10de_0183,
+	&pci_dev_info_10de_0184,
 	&pci_dev_info_10de_0185,
 	&pci_dev_info_10de_0186,
 	&pci_dev_info_10de_0187,
@@ -125377,6 +132960,11 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_018b,
 	&pci_dev_info_10de_018c,
 	&pci_dev_info_10de_018d,
+	&pci_dev_info_10de_0191,
+	&pci_dev_info_10de_0193,
+	&pci_dev_info_10de_0194,
+	&pci_dev_info_10de_019d,
+	&pci_dev_info_10de_019e,
 	&pci_dev_info_10de_01a0,
 	&pci_dev_info_10de_01a4,
 	&pci_dev_info_10de_01ab,
@@ -125393,10 +132981,13 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_01c2,
 	&pci_dev_info_10de_01c3,
 	&pci_dev_info_10de_01d1,
+	&pci_dev_info_10de_01d3,
 	&pci_dev_info_10de_01d6,
 	&pci_dev_info_10de_01d7,
 	&pci_dev_info_10de_01d8,
 	&pci_dev_info_10de_01da,
+	&pci_dev_info_10de_01dc,
+	&pci_dev_info_10de_01dd,
 	&pci_dev_info_10de_01de,
 	&pci_dev_info_10de_01df,
 	&pci_dev_info_10de_01e0,
@@ -125417,6 +133008,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0215,
 	&pci_dev_info_10de_0218,
 	&pci_dev_info_10de_0221,
+	&pci_dev_info_10de_0222,
 	&pci_dev_info_10de_0240,
 	&pci_dev_info_10de_0241,
 	&pci_dev_info_10de_0242,
@@ -125471,6 +133063,10 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0290,
 	&pci_dev_info_10de_0291,
 	&pci_dev_info_10de_0292,
+	&pci_dev_info_10de_0293,
+	&pci_dev_info_10de_0294,
+	&pci_dev_info_10de_0295,
+	&pci_dev_info_10de_0297,
 	&pci_dev_info_10de_0298,
 	&pci_dev_info_10de_0299,
 	&pci_dev_info_10de_029a,
@@ -125480,7 +133076,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_029e,
 	&pci_dev_info_10de_029f,
 	&pci_dev_info_10de_02a0,
+	&pci_dev_info_10de_02e0,
 	&pci_dev_info_10de_02e1,
+	&pci_dev_info_10de_02e2,
 	&pci_dev_info_10de_02f0,
 	&pci_dev_info_10de_02f1,
 	&pci_dev_info_10de_02f2,
@@ -125573,12 +133171,21 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_0377,
 	&pci_dev_info_10de_0378,
 	&pci_dev_info_10de_037a,
+	&pci_dev_info_10de_037c,
 	&pci_dev_info_10de_037e,
 	&pci_dev_info_10de_037f,
+	&pci_dev_info_10de_0390,
 	&pci_dev_info_10de_0391,
 	&pci_dev_info_10de_0392,
 	&pci_dev_info_10de_0393,
+	&pci_dev_info_10de_0394,
+	&pci_dev_info_10de_0395,
+	&pci_dev_info_10de_0397,
 	&pci_dev_info_10de_0398,
+	&pci_dev_info_10de_0399,
+	&pci_dev_info_10de_039a,
+	&pci_dev_info_10de_039b,
+	&pci_dev_info_10de_039c,
 	&pci_dev_info_10de_039e,
 	&pci_dev_info_10de_03a0,
 	&pci_dev_info_10de_03a1,
@@ -125635,6 +133242,20 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_03f5,
 	&pci_dev_info_10de_03f6,
 	&pci_dev_info_10de_03f7,
+	&pci_dev_info_10de_0400,
+	&pci_dev_info_10de_0402,
+	&pci_dev_info_10de_0407,
+	&pci_dev_info_10de_040b,
+	&pci_dev_info_10de_0421,
+	&pci_dev_info_10de_0422,
+	&pci_dev_info_10de_0423,
+	&pci_dev_info_10de_0425,
+	&pci_dev_info_10de_0426,
+	&pci_dev_info_10de_0427,
+	&pci_dev_info_10de_0428,
+	&pci_dev_info_10de_0429,
+	&pci_dev_info_10de_042a,
+	&pci_dev_info_10de_042b,
 	&pci_dev_info_10de_0440,
 	&pci_dev_info_10de_0441,
 	&pci_dev_info_10de_0442,
@@ -125666,11 +133287,16 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10de_045d,
 	&pci_dev_info_10de_045e,
 	&pci_dev_info_10de_045f,
+	&pci_dev_info_10de_055c,
+	&pci_dev_info_10de_055d,
+	&pci_dev_info_10de_c615,
 	NULL
 };
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_10df[] = {
 	&pci_dev_info_10df_1ae5,
+	&pci_dev_info_10df_f011,
+	&pci_dev_info_10df_f015,
 	&pci_dev_info_10df_f085,
 	&pci_dev_info_10df_f095,
 	&pci_dev_info_10df_f098,
@@ -125682,6 +133308,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10df_f0e1,
 	&pci_dev_info_10df_f0e5,
 	&pci_dev_info_10df_f0f5,
+	&pci_dev_info_10df_f100,
 	&pci_dev_info_10df_f700,
 	&pci_dev_info_10df_f701,
 	&pci_dev_info_10df_f800,
@@ -125696,6 +133323,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10df_fc00,
 	&pci_dev_info_10df_fc10,
 	&pci_dev_info_10df_fc20,
+	&pci_dev_info_10df_fc40,
 	&pci_dev_info_10df_fd00,
 	&pci_dev_info_10df_fe00,
 	&pci_dev_info_10df_ff00,
@@ -125757,10 +133385,12 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10e8_80d7,
 	&pci_dev_info_10e8_80d9,
 	&pci_dev_info_10e8_80da,
+	&pci_dev_info_10e8_80fc,
 	&pci_dev_info_10e8_811a,
 	&pci_dev_info_10e8_814c,
 	&pci_dev_info_10e8_8170,
 	&pci_dev_info_10e8_81e6,
+	&pci_dev_info_10e8_828d,
 	&pci_dev_info_10e8_8291,
 	&pci_dev_info_10e8_82c4,
 	&pci_dev_info_10e8_82c5,
@@ -125769,6 +133399,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10e8_82ca,
 	&pci_dev_info_10e8_82db,
 	&pci_dev_info_10e8_82e2,
+	&pci_dev_info_10e8_8406,
+	&pci_dev_info_10e8_8407,
 	&pci_dev_info_10e8_8851,
 	NULL
 };
@@ -125796,7 +133428,14 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_10ec[] = {
 	&pci_dev_info_10ec_0139,
+	&pci_dev_info_10ec_0260,
+	&pci_dev_info_10ec_0261,
+	&pci_dev_info_10ec_0280,
+	&pci_dev_info_10ec_0861,
+	&pci_dev_info_10ec_0862,
+	&pci_dev_info_10ec_0880,
 	&pci_dev_info_10ec_0883,
+	&pci_dev_info_10ec_0888,
 	&pci_dev_info_10ec_8029,
 	&pci_dev_info_10ec_8129,
 	&pci_dev_info_10ec_8136,
@@ -125831,6 +133470,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_10ee_3fc4,
 	&pci_dev_info_10ee_3fc5,
 	&pci_dev_info_10ee_3fc6,
+	&pci_dev_info_10ee_8380,
 	&pci_dev_info_10ee_8381,
 	&pci_dev_info_10ee_d154,
 	NULL
@@ -125924,6 +133564,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1103_0007,
 	&pci_dev_info_1103_0008,
 	&pci_dev_info_1103_0009,
+	&pci_dev_info_1103_2340,
 	NULL
 };
 #endif
@@ -125947,6 +133588,7 @@ static const pciDeviceInfo *pci_dev_list
 static const pciDeviceInfo *pci_dev_list_1106[] = {
 	&pci_dev_info_1106_0102,
 	&pci_dev_info_1106_0130,
+	&pci_dev_info_1106_0198,
 	&pci_dev_info_1106_0204,
 	&pci_dev_info_1106_0208,
 	&pci_dev_info_1106_0238,
@@ -126009,6 +133651,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1106_1364,
 	&pci_dev_info_1106_1571,
 	&pci_dev_info_1106_1595,
+	&pci_dev_info_1106_2106,
 	&pci_dev_info_1106_2204,
 	&pci_dev_info_1106_2208,
 	&pci_dev_info_1106_2238,
@@ -126068,6 +133711,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1106_3148,
 	&pci_dev_info_1106_3149,
 	&pci_dev_info_1106_3156,
+	&pci_dev_info_1106_3157,
 	&pci_dev_info_1106_3164,
 	&pci_dev_info_1106_3168,
 	&pci_dev_info_1106_3177,
@@ -126080,6 +133724,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1106_3213,
 	&pci_dev_info_1106_3218,
 	&pci_dev_info_1106_3227,
+	&pci_dev_info_1106_3230,
 	&pci_dev_info_1106_3238,
 	&pci_dev_info_1106_3249,
 	&pci_dev_info_1106_324a,
@@ -126087,6 +133732,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1106_324e,
 	&pci_dev_info_1106_3258,
 	&pci_dev_info_1106_3259,
+	&pci_dev_info_1106_3260,
 	&pci_dev_info_1106_3269,
 	&pci_dev_info_1106_3282,
 	&pci_dev_info_1106_3287,
@@ -126098,10 +133744,13 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1106_3336,
 	&pci_dev_info_1106_3337,
 	&pci_dev_info_1106_3340,
+	&pci_dev_info_1106_3343,
 	&pci_dev_info_1106_3344,
 	&pci_dev_info_1106_3349,
 	&pci_dev_info_1106_3351,
 	&pci_dev_info_1106_3364,
+	&pci_dev_info_1106_3371,
+	&pci_dev_info_1106_3372,
 	&pci_dev_info_1106_337a,
 	&pci_dev_info_1106_337b,
 	&pci_dev_info_1106_4149,
@@ -126128,13 +133777,16 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1106_5238,
 	&pci_dev_info_1106_5290,
 	&pci_dev_info_1106_5308,
+	&pci_dev_info_1106_5324,
 	&pci_dev_info_1106_5327,
 	&pci_dev_info_1106_5336,
 	&pci_dev_info_1106_5340,
 	&pci_dev_info_1106_5351,
 	&pci_dev_info_1106_5364,
 	&pci_dev_info_1106_6100,
+	&pci_dev_info_1106_6287,
 	&pci_dev_info_1106_6327,
+	&pci_dev_info_1106_6364,
 	&pci_dev_info_1106_7204,
 	&pci_dev_info_1106_7205,
 	&pci_dev_info_1106_7208,
@@ -126333,10 +133985,6 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1119_000b,
 	&pci_dev_info_1119_000c,
 	&pci_dev_info_1119_000d,
-	&pci_dev_info_1119_0010,
-	&pci_dev_info_1119_0011,
-	&pci_dev_info_1119_0012,
-	&pci_dev_info_1119_0013,
 	&pci_dev_info_1119_0100,
 	&pci_dev_info_1119_0101,
 	&pci_dev_info_1119_0102,
@@ -126393,6 +134041,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1119_0261,
 	&pci_dev_info_1119_02ff,
 	&pci_dev_info_1119_0300,
+	&pci_dev_info_1119_0301,
 	NULL
 };
 #endif
@@ -126535,6 +134184,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1133_e028,
 	&pci_dev_info_1133_e02a,
 	&pci_dev_info_1133_e02c,
+	&pci_dev_info_1133_e032,
 	NULL
 };
 #endif
@@ -126664,6 +134314,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_114f_000d,
 	&pci_dev_info_114f_0011,
 	&pci_dev_info_114f_0012,
+	&pci_dev_info_114f_0013,
 	&pci_dev_info_114f_0014,
 	&pci_dev_info_114f_0015,
 	&pci_dev_info_114f_0016,
@@ -126800,6 +134451,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1166_0227,
 	&pci_dev_info_1166_0230,
 	&pci_dev_info_1166_0234,
+	&pci_dev_info_1166_0235,
+	&pci_dev_info_1166_0238,
 	&pci_dev_info_1166_0240,
 	&pci_dev_info_1166_0241,
 	&pci_dev_info_1166_0242,
@@ -126888,6 +134541,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1180_0592,
 	&pci_dev_info_1180_0811,
 	&pci_dev_info_1180_0822,
+	&pci_dev_info_1180_0832,
 	&pci_dev_info_1180_0841,
 	&pci_dev_info_1180_0852,
 	NULL
@@ -127051,10 +134705,13 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_11ab[] = {
 	&pci_dev_info_11ab_0146,
+	&pci_dev_info_11ab_0f53,
+	&pci_dev_info_11ab_11ab,
 	&pci_dev_info_11ab_138f,
 	&pci_dev_info_11ab_1fa6,
 	&pci_dev_info_11ab_1fa7,
 	&pci_dev_info_11ab_1faa,
+	&pci_dev_info_11ab_2a01,
 	&pci_dev_info_11ab_4320,
 	&pci_dev_info_11ab_4340,
 	&pci_dev_info_11ab_4341,
@@ -127071,6 +134728,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_11ab_4361,
 	&pci_dev_info_11ab_4362,
 	&pci_dev_info_11ab_4363,
+	&pci_dev_info_11ab_4364,
 	&pci_dev_info_11ab_4611,
 	&pci_dev_info_11ab_4620,
 	&pci_dev_info_11ab_4801,
@@ -127081,6 +134739,10 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_11ab_5081,
 	&pci_dev_info_11ab_6041,
 	&pci_dev_info_11ab_6081,
+	&pci_dev_info_11ab_6101,
+	&pci_dev_info_11ab_6141,
+	&pci_dev_info_11ab_6145,
+	&pci_dev_info_11ab_6450,
 	&pci_dev_info_11ab_6460,
 	&pci_dev_info_11ab_6480,
 	&pci_dev_info_11ab_6485,
@@ -127143,6 +134805,9 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_11bd[] = {
 	&pci_dev_info_11bd_002e,
+	&pci_dev_info_11bd_0040,
+	&pci_dev_info_11bd_0041,
+	&pci_dev_info_11bd_0042,
 	&pci_dev_info_11bd_bede,
 	NULL
 };
@@ -127185,6 +134850,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_11c1_0480,
 	&pci_dev_info_11c1_048c,
 	&pci_dev_info_11c1_048f,
+	&pci_dev_info_11c1_1040,
+	&pci_dev_info_11c1_2600,
 	&pci_dev_info_11c1_5801,
 	&pci_dev_info_11c1_5802,
 	&pci_dev_info_11c1_5803,
@@ -127245,10 +134912,14 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_11d3 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_11d4[] = {
+	&pci_dev_info_11d4_0078,
 	&pci_dev_info_11d4_1535,
 	&pci_dev_info_11d4_1805,
 	&pci_dev_info_11d4_1889,
+	&pci_dev_info_11d4_1981,
+	&pci_dev_info_11d4_1983,
 	&pci_dev_info_11d4_1986,
+	&pci_dev_info_11d4_198b,
 	&pci_dev_info_11d4_5340,
 	NULL
 };
@@ -127834,6 +135505,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1283[] = {
 	&pci_dev_info_1283_673a,
+	&pci_dev_info_1283_8152,
 	&pci_dev_info_1283_8211,
 	&pci_dev_info_1283_8212,
 	&pci_dev_info_1283_8330,
@@ -127883,7 +135555,10 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_128f NULL
 #define pci_dev_list_1290 NULL
 #define pci_dev_list_1291 NULL
-#define pci_dev_list_1292 NULL
+static const pciDeviceInfo *pci_dev_list_1292[] = {
+	&pci_dev_info_1292_fc02,
+	NULL
+};
 #define pci_dev_list_1293 NULL
 #define pci_dev_list_1294 NULL
 #define pci_dev_list_1295 NULL
@@ -127920,8 +135595,12 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_12aa NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_12ab[] = {
+	&pci_dev_info_12ab_0000,
 	&pci_dev_info_12ab_0002,
+	&pci_dev_info_12ab_2300,
 	&pci_dev_info_12ab_3000,
+	&pci_dev_info_12ab_fff3,
+	&pci_dev_info_12ab_ffff,
 	NULL
 };
 #endif
@@ -128060,6 +135739,7 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_12d7 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_12d8[] = {
+	&pci_dev_info_12d8_01a7,
 	&pci_dev_info_12d8_8150,
 	NULL
 };
@@ -128498,6 +136178,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1374_0038,
 	&pci_dev_info_1374_0039,
 	&pci_dev_info_1374_003a,
+	&pci_dev_info_1374_003b,
+	&pci_dev_info_1374_003c,
 	NULL
 };
 #endif
@@ -128540,6 +136222,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1385[] = {
 	&pci_dev_info_1385_0013,
+	&pci_dev_info_1385_006b,
 	&pci_dev_info_1385_311a,
 	&pci_dev_info_1385_4100,
 	&pci_dev_info_1385_4105,
@@ -128593,6 +136276,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1393_1040,
 	&pci_dev_info_1393_1141,
 	&pci_dev_info_1393_1680,
+	&pci_dev_info_1393_1681,
 	&pci_dev_info_1393_2040,
 	&pci_dev_info_1393_2180,
 	&pci_dev_info_1393_3200,
@@ -128612,6 +136296,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1397_08b4,
 	&pci_dev_info_1397_16b8,
 	&pci_dev_info_1397_2bd0,
+	&pci_dev_info_1397_30b1,
+	&pci_dev_info_1397_b700,
+	&pci_dev_info_1397_f001,
 	NULL
 };
 #endif
@@ -128646,6 +136333,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_13a3_001d,
 	&pci_dev_info_13a3_0020,
 	&pci_dev_info_13a3_0026,
+	&pci_dev_info_13a3_002e,
 	NULL
 };
 #endif
@@ -128699,6 +136387,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_13c1_1001,
 	&pci_dev_info_13c1_1002,
 	&pci_dev_info_13c1_1003,
+	&pci_dev_info_13c1_1004,
 	NULL
 };
 #endif
@@ -128745,7 +136434,12 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #define pci_dev_list_13d2 NULL
-#define pci_dev_list_13d3 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_13d3[] = {
+	&pci_dev_info_13d3_3219,
+	NULL
+};
+#endif
 #define pci_dev_list_13d4 NULL
 #define pci_dev_list_13d5 NULL
 #define pci_dev_list_13d6 NULL
@@ -128809,6 +136503,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_13f6_0101,
 	&pci_dev_info_13f6_0111,
 	&pci_dev_info_13f6_0211,
+	&pci_dev_info_13f6_9880,
 	NULL
 };
 #endif
@@ -128933,6 +136628,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1425[] = {
 	&pci_dev_info_1425_000b,
+	&pci_dev_info_1425_000c,
 	NULL
 };
 #endif
@@ -129029,6 +136725,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1458[] = {
 	&pci_dev_info_1458_0c11,
+	&pci_dev_info_1458_9001,
 	&pci_dev_info_1458_e911,
 	NULL
 };
@@ -129048,6 +136745,9 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_1460 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1461[] = {
+	&pci_dev_info_1461_a3ce,
+	&pci_dev_info_1461_a3cf,
+	&pci_dev_info_1461_a836,
 	&pci_dev_info_1461_f436,
 	NULL
 };
@@ -129059,6 +136759,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1462_6825,
 	&pci_dev_info_1462_6834,
 	&pci_dev_info_1462_7125,
+	&pci_dev_info_1462_7235,
+	&pci_dev_info_1462_7242,
 	&pci_dev_info_1462_8725,
 	&pci_dev_info_1462_9000,
 	&pci_dev_info_1462_9110,
@@ -129067,6 +136769,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1462_9510,
 	&pci_dev_info_1462_9511,
 	&pci_dev_info_1462_9591,
+	&pci_dev_info_1462_b834,
 	NULL
 };
 #endif
@@ -129338,6 +137041,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_0816,
 	&pci_dev_info_14e4_1600,
 	&pci_dev_info_14e4_1601,
+	&pci_dev_info_14e4_1639,
+	&pci_dev_info_14e4_163a,
 	&pci_dev_info_14e4_1644,
 	&pci_dev_info_14e4_1645,
 	&pci_dev_info_14e4_1646,
@@ -129349,6 +137054,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_1653,
 	&pci_dev_info_14e4_1654,
 	&pci_dev_info_14e4_1659,
+	&pci_dev_info_14e4_165a,
 	&pci_dev_info_14e4_165d,
 	&pci_dev_info_14e4_165e,
 	&pci_dev_info_14e4_1668,
@@ -129358,6 +137064,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_166e,
 	&pci_dev_info_14e4_1672,
 	&pci_dev_info_14e4_1673,
+	&pci_dev_info_14e4_1674,
 	&pci_dev_info_14e4_1677,
 	&pci_dev_info_14e4_1678,
 	&pci_dev_info_14e4_1679,
@@ -129365,6 +137072,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_167b,
 	&pci_dev_info_14e4_167d,
 	&pci_dev_info_14e4_167e,
+	&pci_dev_info_14e4_167f,
 	&pci_dev_info_14e4_1693,
 	&pci_dev_info_14e4_1696,
 	&pci_dev_info_14e4_169a,
@@ -129385,11 +137093,14 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_170c,
 	&pci_dev_info_14e4_170d,
 	&pci_dev_info_14e4_170e,
+	&pci_dev_info_14e4_1712,
+	&pci_dev_info_14e4_1713,
 	&pci_dev_info_14e4_3352,
 	&pci_dev_info_14e4_3360,
 	&pci_dev_info_14e4_4210,
 	&pci_dev_info_14e4_4211,
 	&pci_dev_info_14e4_4212,
+	&pci_dev_info_14e4_4220,
 	&pci_dev_info_14e4_4301,
 	&pci_dev_info_14e4_4305,
 	&pci_dev_info_14e4_4306,
@@ -129408,6 +137119,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_4325,
 	&pci_dev_info_14e4_4326,
 	&pci_dev_info_14e4_4329,
+	&pci_dev_info_14e4_4344,
 	&pci_dev_info_14e4_4401,
 	&pci_dev_info_14e4_4402,
 	&pci_dev_info_14e4_4403,
@@ -129449,6 +137161,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14e4_5690,
 	&pci_dev_info_14e4_5691,
 	&pci_dev_info_14e4_5692,
+	&pci_dev_info_14e4_5695,
+	&pci_dev_info_14e4_5698,
 	&pci_dev_info_14e4_5820,
 	&pci_dev_info_14e4_5821,
 	&pci_dev_info_14e4_5822,
@@ -129508,6 +137222,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14f1_1065,
 	&pci_dev_info_14f1_1066,
 	&pci_dev_info_14f1_1085,
+	&pci_dev_info_14f1_10b6,
 	&pci_dev_info_14f1_1433,
 	&pci_dev_info_14f1_1434,
 	&pci_dev_info_14f1_1435,
@@ -129570,6 +137285,9 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_14f1_2f02,
 	&pci_dev_info_14f1_2f11,
 	&pci_dev_info_14f1_2f20,
+	&pci_dev_info_14f1_2f30,
+	&pci_dev_info_14f1_5045,
+	&pci_dev_info_14f1_5047,
 	&pci_dev_info_14f1_8234,
 	&pci_dev_info_14f1_8800,
 	&pci_dev_info_14f1_8801,
@@ -129711,6 +137429,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1524_0520,
 	&pci_dev_info_1524_0530,
 	&pci_dev_info_1524_0550,
+	&pci_dev_info_1524_0551,
 	&pci_dev_info_1524_0610,
 	&pci_dev_info_1524_1211,
 	&pci_dev_info_1524_1225,
@@ -129745,6 +137464,7 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_1533 NULL
 #define pci_dev_list_1534 NULL
 #define pci_dev_list_1535 NULL
+#define pci_dev_list_1536 NULL
 #define pci_dev_list_1537 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1538[] = {
@@ -129894,7 +137614,14 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_158d NULL
 #define pci_dev_list_158e NULL
 #define pci_dev_list_158f NULL
-#define pci_dev_list_1590 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1590[] = {
+	&pci_dev_info_1590_0001,
+	&pci_dev_info_1590_0002,
+	&pci_dev_info_1590_a01d,
+	NULL
+};
+#endif
 #define pci_dev_list_1591 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1592[] = {
@@ -129951,6 +137678,7 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_15b2 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_15b3[] = {
+	&pci_dev_info_15b3_0191,
 	&pci_dev_info_15b3_5274,
 	&pci_dev_info_15b3_5a44,
 	&pci_dev_info_15b3_5a45,
@@ -129960,6 +137688,10 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_15b3_6278,
 	&pci_dev_info_15b3_6279,
 	&pci_dev_info_15b3_6282,
+	&pci_dev_info_15b3_6340,
+	&pci_dev_info_15b3_634a,
+	&pci_dev_info_15b3_6354,
+	&pci_dev_info_15b3_6368,
 	NULL
 };
 #endif
@@ -129967,7 +137699,15 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_15b5 NULL
 #define pci_dev_list_15b6 NULL
 #define pci_dev_list_15b7 NULL
-#define pci_dev_list_15b8 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_15b8[] = {
+	&pci_dev_info_15b8_1003,
+	&pci_dev_info_15b8_1005,
+	&pci_dev_info_15b8_100a,
+	&pci_dev_info_15b8_3001,
+	NULL
+};
+#endif
 #define pci_dev_list_15b9 NULL
 #define pci_dev_list_15ba NULL
 #define pci_dev_list_15bb NULL
@@ -130031,7 +137771,12 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_15df NULL
 #define pci_dev_list_15e0 NULL
 #define pci_dev_list_15e1 NULL
-#define pci_dev_list_15e2 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_15e2[] = {
+	&pci_dev_info_15e2_0500,
+	NULL
+};
+#endif
 #define pci_dev_list_15e3 NULL
 #define pci_dev_list_15e4 NULL
 #define pci_dev_list_15e5 NULL
@@ -130110,6 +137855,8 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1629[] = {
 	&pci_dev_info_1629_1003,
+	&pci_dev_info_1629_1006,
+	&pci_dev_info_1629_1007,
 	&pci_dev_info_1629_2002,
 	NULL
 };
@@ -130204,8 +137951,12 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_168c_0013,
 	&pci_dev_info_168c_001a,
 	&pci_dev_info_168c_001b,
+	&pci_dev_info_168c_001c,
 	&pci_dev_info_168c_0020,
+	&pci_dev_info_168c_0023,
+	&pci_dev_info_168c_0024,
 	&pci_dev_info_168c_1014,
+	&pci_dev_info_168c_3b08,
 	NULL
 };
 #endif
@@ -130216,6 +137967,12 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_169d[] = {
+	&pci_dev_info_169d_3306,
+	NULL
+};
+#endif
 #define pci_dev_list_16a5 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_16ab[] = {
@@ -130228,7 +137985,10 @@ static const pciDeviceInfo *pci_dev_list
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_16ae[] = {
+	&pci_dev_info_16ae_0001,
+	&pci_dev_info_16ae_000a,
 	&pci_dev_info_16ae_1141,
+	&pci_dev_info_16ae_1841,
 	NULL
 };
 #endif
@@ -130254,7 +138014,41 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_16ce NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_16d5[] = {
+	&pci_dev_info_16d5_0504,
+	&pci_dev_info_16d5_0520,
+	&pci_dev_info_16d5_0521,
+	&pci_dev_info_16d5_1020,
+	&pci_dev_info_16d5_1065,
+	&pci_dev_info_16d5_2004,
+	&pci_dev_info_16d5_2020,
+	&pci_dev_info_16d5_2065,
+	&pci_dev_info_16d5_3020,
+	&pci_dev_info_16d5_3065,
+	&pci_dev_info_16d5_4243,
+	&pci_dev_info_16d5_4248,
+	&pci_dev_info_16d5_424b,
+	&pci_dev_info_16d5_4253,
+	&pci_dev_info_16d5_4312,
+	&pci_dev_info_16d5_4313,
+	&pci_dev_info_16d5_4322,
+	&pci_dev_info_16d5_4323,
+	&pci_dev_info_16d5_4350,
+	&pci_dev_info_16d5_4353,
+	&pci_dev_info_16d5_4357,
+	&pci_dev_info_16d5_4457,
+	&pci_dev_info_16d5_464d,
+	&pci_dev_info_16d5_4850,
+	&pci_dev_info_16d5_4a42,
+	&pci_dev_info_16d5_4a50,
+	&pci_dev_info_16d5_4a56,
+	&pci_dev_info_16d5_4b47,
+	&pci_dev_info_16d5_4c40,
+	&pci_dev_info_16d5_4c60,
+	&pci_dev_info_16d5_4d4d,
 	&pci_dev_info_16d5_4d4e,
+	&pci_dev_info_16d5_524d,
+	&pci_dev_info_16d5_5335,
+	&pci_dev_info_16d5_5456,
 	NULL
 };
 #endif
@@ -130268,6 +138062,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_16e5[] = {
 	&pci_dev_info_16e5_6000,
+	&pci_dev_info_16e5_6300,
 	NULL
 };
 #endif
@@ -130318,6 +138113,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1734[] = {
 	&pci_dev_info_1734_1078,
+	&pci_dev_info_1734_1085,
 	NULL
 };
 #endif
@@ -130325,6 +138121,7 @@ static const pciDeviceInfo *pci_dev_list
 static const pciDeviceInfo *pci_dev_list_1737[] = {
 	&pci_dev_info_1737_0013,
 	&pci_dev_info_1737_0015,
+	&pci_dev_info_1737_0029,
 	&pci_dev_info_1737_1032,
 	&pci_dev_info_1737_1064,
 	&pci_dev_info_1737_ab08,
@@ -130353,6 +138150,7 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_175c NULL
 #define pci_dev_list_175e NULL
 #define pci_dev_list_1775 NULL
+#define pci_dev_list_177d NULL
 #define pci_dev_list_1787 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1796[] = {
@@ -130445,7 +138243,12 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
-#define pci_dev_list_17db NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_17db[] = {
+	&pci_dev_info_17db_0101,
+	NULL
+};
+#endif
 #define pci_dev_list_17de NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_17e4[] = {
@@ -130465,6 +138268,16 @@ static const pciDeviceInfo *pci_dev_list
 #define pci_dev_list_17ee NULL
 #define pci_dev_list_17f2 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_17f3[] = {
+	&pci_dev_info_17f3_6020,
+	&pci_dev_info_17f3_6030,
+	&pci_dev_info_17f3_6040,
+	&pci_dev_info_17f3_6060,
+	&pci_dev_info_17f3_6061,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_17fe[] = {
 	&pci_dev_info_17fe_2120,
 	&pci_dev_info_17fe_2220,
@@ -130488,12 +138301,14 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_1814_0301,
 	&pci_dev_info_1814_0302,
 	&pci_dev_info_1814_0401,
+	&pci_dev_info_1814_e932,
 	NULL
 };
 #endif
 #define pci_dev_list_1820 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1822[] = {
+	&pci_dev_info_1822_0001,
 	&pci_dev_info_1822_4e35,
 	NULL
 };
@@ -130546,6 +138361,20 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_186c[] = {
+	&pci_dev_info_186c_0614,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1876[] = {
+	&pci_dev_info_1876_a101,
+	&pci_dev_info_1876_a102,
+	&pci_dev_info_1876_a103,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_187e[] = {
 	&pci_dev_info_187e_3403,
 	&pci_dev_info_187e_340e,
@@ -130590,6 +138419,7 @@ static const pciDeviceInfo *pci_dev_list
 static const pciDeviceInfo *pci_dev_list_18ca[] = {
 	&pci_dev_info_18ca_0020,
 	&pci_dev_info_18ca_0040,
+	&pci_dev_info_18ca_0047,
 	NULL
 };
 #endif
@@ -130693,6 +138523,7 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #define pci_dev_list_1958 NULL
+#define pci_dev_list_1959 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1966[] = {
 	&pci_dev_info_1966_1975,
@@ -130702,6 +138533,7 @@ static const pciDeviceInfo *pci_dev_list
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1969[] = {
 	&pci_dev_info_1969_1048,
+	&pci_dev_info_1969_2048,
 	NULL
 };
 #endif
@@ -130709,17 +138541,32 @@ static const pciDeviceInfo *pci_dev_list
 static const pciDeviceInfo *pci_dev_list_196a[] = {
 	&pci_dev_info_196a_0101,
 	&pci_dev_info_196a_0102,
+	&pci_dev_info_196a_0105,
 	NULL
 };
 #endif
 #define pci_dev_list_196d NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1971[] = {
+	&pci_dev_info_1971_1011,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_197b[] = {
 	&pci_dev_info_197b_2360,
 	&pci_dev_info_197b_2361,
 	&pci_dev_info_197b_2363,
 	&pci_dev_info_197b_2365,
 	&pci_dev_info_197b_2366,
+	&pci_dev_info_197b_2368,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1982[] = {
+	&pci_dev_info_1982_1600,
+	&pci_dev_info_1982_16ff,
 	NULL
 };
 #endif
@@ -130732,6 +138579,13 @@ static const pciDeviceInfo *pci_dev_list
 #endif
 #define pci_dev_list_1993 NULL
 #define pci_dev_list_199a NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_19a2[] = {
+	&pci_dev_info_19a2_0200,
+	&pci_dev_info_19a2_0201,
+	NULL
+};
+#endif
 #define pci_dev_list_19a8 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_19ac[] = {
@@ -130746,6 +138600,7 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #define pci_dev_list_19d4 NULL
+#define pci_dev_list_19de NULL
 #define pci_dev_list_19e2 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_19e7[] = {
@@ -130762,14 +138617,44 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1a07[] = {
+	&pci_dev_info_1a07_0006,
+	&pci_dev_info_1a07_0007,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1a08[] = {
 	&pci_dev_info_1a08_0000,
 	NULL
 };
 #endif
-#define pci_dev_list_1a1d NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1a1d[] = {
+	&pci_dev_info_1a1d_1a17,
+	NULL
+};
+#endif
+#define pci_dev_list_1a22 NULL
 #define pci_dev_list_1a29 NULL
 #define pci_dev_list_1a51 NULL
+#define pci_dev_list_1a5d NULL
+#define pci_dev_list_1a71 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1a73[] = {
+	&pci_dev_info_1a73_0001,
+	NULL
+};
+#endif
+#define pci_dev_list_1a77 NULL
+#define pci_dev_list_1a78 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_1a8c[] = {
+	&pci_dev_info_1a8c_1100,
+	NULL
+};
+#endif
+#define pci_dev_list_1ab9 NULL
 #define pci_dev_list_1b13 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_1c1c[] = {
@@ -130906,6 +138791,15 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_4040[] = {
+	&pci_dev_info_4040_0001,
+	&pci_dev_info_4040_0002,
+	&pci_dev_info_4040_0003,
+	&pci_dev_info_4040_0004,
+	NULL
+};
+#endif
 #define pci_dev_list_4143 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_4144[] = {
@@ -130921,6 +138815,7 @@ static const pciDeviceInfo *pci_dev_list
 };
 #endif
 #define pci_dev_list_4321 NULL
+#define pci_dev_list_434e NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_4444[] = {
 	&pci_dev_info_4444_0016,
@@ -130971,6 +138866,12 @@ static const pciDeviceInfo *pci_dev_list
 #endif
 #define pci_dev_list_4d54 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_4d56[] = {
+	&pci_dev_info_4d56_0000,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_4ddc[] = {
 	&pci_dev_info_4ddc_0100,
 	&pci_dev_info_4ddc_0801,
@@ -131104,6 +139005,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_5333_8d02,
 	&pci_dev_info_5333_8d03,
 	&pci_dev_info_5333_8d04,
+	&pci_dev_info_5333_8e48,
 	&pci_dev_info_5333_9102,
 	&pci_dev_info_5333_ca00,
 	NULL
@@ -131120,6 +139022,7 @@ static const pciDeviceInfo *pci_dev_list
 	NULL
 };
 #endif
+#define pci_dev_list_5456 NULL
 #define pci_dev_list_5519 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_5544[] = {
@@ -131141,6 +139044,12 @@ static const pciDeviceInfo *pci_dev_list
 #endif
 #define pci_dev_list_5700 NULL
 #define pci_dev_list_5851 NULL
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_5853[] = {
+	&pci_dev_info_5853_0001,
+	NULL
+};
+#endif
 #define pci_dev_list_6356 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_6374[] = {
@@ -131345,17 +139254,27 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_10a0,
 	&pci_dev_info_8086_10a1,
 	&pci_dev_info_8086_10a4,
+	&pci_dev_info_8086_10a5,
 	&pci_dev_info_8086_10b0,
 	&pci_dev_info_8086_10b2,
 	&pci_dev_info_8086_10b3,
 	&pci_dev_info_8086_10b4,
 	&pci_dev_info_8086_10b5,
+	&pci_dev_info_8086_10b6,
 	&pci_dev_info_8086_10b9,
 	&pci_dev_info_8086_10ba,
 	&pci_dev_info_8086_10bb,
 	&pci_dev_info_8086_10bc,
+	&pci_dev_info_8086_10bd,
+	&pci_dev_info_8086_10c0,
+	&pci_dev_info_8086_10c2,
+	&pci_dev_info_8086_10c3,
 	&pci_dev_info_8086_10c4,
 	&pci_dev_info_8086_10c5,
+	&pci_dev_info_8086_10c6,
+	&pci_dev_info_8086_10c7,
+	&pci_dev_info_8086_10d9,
+	&pci_dev_info_8086_10da,
 	&pci_dev_info_8086_1107,
 	&pci_dev_info_8086_1130,
 	&pci_dev_info_8086_1131,
@@ -131700,7 +139619,13 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_284b,
 	&pci_dev_info_8086_284f,
 	&pci_dev_info_8086_2850,
-	&pci_dev_info_8086_2910,
+	&pci_dev_info_8086_2911,
+	&pci_dev_info_8086_2912,
+	&pci_dev_info_8086_2914,
+	&pci_dev_info_8086_2916,
+	&pci_dev_info_8086_2917,
+	&pci_dev_info_8086_2918,
+	&pci_dev_info_8086_2919,
 	&pci_dev_info_8086_2920,
 	&pci_dev_info_8086_2921,
 	&pci_dev_info_8086_2922,
@@ -131708,6 +139633,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_2925,
 	&pci_dev_info_8086_2926,
 	&pci_dev_info_8086_2928,
+	&pci_dev_info_8086_2929,
+	&pci_dev_info_8086_292c,
 	&pci_dev_info_8086_292d,
 	&pci_dev_info_8086_292e,
 	&pci_dev_info_8086_2930,
@@ -131772,6 +139699,14 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_29c6,
 	&pci_dev_info_8086_29c7,
 	&pci_dev_info_8086_29cf,
+	&pci_dev_info_8086_29d0,
+	&pci_dev_info_8086_29d1,
+	&pci_dev_info_8086_29d2,
+	&pci_dev_info_8086_29d3,
+	&pci_dev_info_8086_29d4,
+	&pci_dev_info_8086_29d5,
+	&pci_dev_info_8086_29d6,
+	&pci_dev_info_8086_29d7,
 	&pci_dev_info_8086_29e0,
 	&pci_dev_info_8086_29e1,
 	&pci_dev_info_8086_29e4,
@@ -131794,10 +139729,16 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_2a05,
 	&pci_dev_info_8086_2a06,
 	&pci_dev_info_8086_2a07,
-	&pci_dev_info_8086_3092,
 	&pci_dev_info_8086_3200,
+	&pci_dev_info_8086_3313,
+	&pci_dev_info_8086_331b,
+	&pci_dev_info_8086_3331,
+	&pci_dev_info_8086_3339,
 	&pci_dev_info_8086_3340,
 	&pci_dev_info_8086_3341,
+	&pci_dev_info_8086_3363,
+	&pci_dev_info_8086_33c3,
+	&pci_dev_info_8086_33cb,
 	&pci_dev_info_8086_3500,
 	&pci_dev_info_8086_3501,
 	&pci_dev_info_8086_3504,
@@ -131853,6 +139794,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_360f,
 	&pci_dev_info_8086_3610,
 	&pci_dev_info_8086_4000,
+	&pci_dev_info_8086_4001,
+	&pci_dev_info_8086_4003,
 	&pci_dev_info_8086_4008,
 	&pci_dev_info_8086_4010,
 	&pci_dev_info_8086_4021,
@@ -131876,7 +139819,42 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_4223,
 	&pci_dev_info_8086_4224,
 	&pci_dev_info_8086_4227,
+	&pci_dev_info_8086_4229,
+	&pci_dev_info_8086_4230,
+	&pci_dev_info_8086_444e,
 	&pci_dev_info_8086_5001,
+	&pci_dev_info_8086_5020,
+	&pci_dev_info_8086_5021,
+	&pci_dev_info_8086_5023,
+	&pci_dev_info_8086_5024,
+	&pci_dev_info_8086_5025,
+	&pci_dev_info_8086_5028,
+	&pci_dev_info_8086_5029,
+	&pci_dev_info_8086_502a,
+	&pci_dev_info_8086_502b,
+	&pci_dev_info_8086_5031,
+	&pci_dev_info_8086_5032,
+	&pci_dev_info_8086_5033,
+	&pci_dev_info_8086_5035,
+	&pci_dev_info_8086_5037,
+	&pci_dev_info_8086_5039,
+	&pci_dev_info_8086_503a,
+	&pci_dev_info_8086_503b,
+	&pci_dev_info_8086_503c,
+	&pci_dev_info_8086_503d,
+	&pci_dev_info_8086_503e,
+	&pci_dev_info_8086_5040,
+	&pci_dev_info_8086_5041,
+	&pci_dev_info_8086_5042,
+	&pci_dev_info_8086_5043,
+	&pci_dev_info_8086_5044,
+	&pci_dev_info_8086_5045,
+	&pci_dev_info_8086_5046,
+	&pci_dev_info_8086_5047,
+	&pci_dev_info_8086_5048,
+	&pci_dev_info_8086_5049,
+	&pci_dev_info_8086_504a,
+	&pci_dev_info_8086_504b,
 	&pci_dev_info_8086_5200,
 	&pci_dev_info_8086_5201,
 	&pci_dev_info_8086_530d,
@@ -131937,6 +139915,7 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_7602,
 	&pci_dev_info_8086_7603,
 	&pci_dev_info_8086_7800,
+	&pci_dev_info_8086_8002,
 	&pci_dev_info_8086_84c4,
 	&pci_dev_info_8086_84c5,
 	&pci_dev_info_8086_84ca,
@@ -131963,6 +139942,21 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_8086_b555,
 	NULL
 };
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_80ee[] = {
+	&pci_dev_info_80ee_beef,
+	&pci_dev_info_80ee_cafe,
+	NULL
+};
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+static const pciDeviceInfo *pci_dev_list_8384[] = {
+	&pci_dev_info_8384_7618,
+	&pci_dev_info_8384_7670,
+	&pci_dev_info_8384_7672,
+	NULL
+};
+#endif
 #define pci_dev_list_8401 NULL
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_8686[] = {
@@ -132092,6 +140086,8 @@ static const pciDeviceInfo *pci_dev_list
 	&pci_dev_info_9005_0081,
 	&pci_dev_info_9005_0083,
 	&pci_dev_info_9005_008f,
+	&pci_dev_info_9005_0092,
+	&pci_dev_info_9005_0093,
 	&pci_dev_info_9005_00c0,
 	&pci_dev_info_9005_00c1,
 	&pci_dev_info_9005_00c3,
@@ -132238,13 +140234,15 @@ static const pciDeviceInfo *pci_dev_list
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 static const pciDeviceInfo *pci_dev_list_d161[] = {
+	&pci_dev_info_d161_0120,
 	&pci_dev_info_d161_0205,
 	&pci_dev_info_d161_0210,
 	&pci_dev_info_d161_0405,
-	&pci_dev_info_d161_0406,
 	&pci_dev_info_d161_0410,
-	&pci_dev_info_d161_0411,
+	&pci_dev_info_d161_0800,
 	&pci_dev_info_d161_2400,
+	&pci_dev_info_d161_3400,
+	&pci_dev_info_d161_b410,
 	NULL
 };
 #endif
@@ -132435,6 +140433,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x02ac, pci_vendor_02ac, pci_dev_list_02ac},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x02e0, pci_vendor_02e0, pci_dev_list_02e0},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x0315, pci_vendor_0315, pci_dev_list_0315},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -132459,6 +140460,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x050d, pci_vendor_050d, pci_dev_list_050d},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x058f, pci_vendor_058f, pci_dev_list_058f},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x05a9, pci_vendor_05a9, pci_dev_list_05a9},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -136350,6 +144354,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x1535, pci_vendor_1535, pci_dev_list_1535},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1536, pci_vendor_1536, pci_dev_list_1536},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1537, pci_vendor_1537, pci_dev_list_1537},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137041,6 +145048,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x169c, pci_vendor_169c, pci_dev_list_169c},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x169d, pci_vendor_169d, pci_dev_list_169d},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x16a5, pci_vendor_16a5, pci_dev_list_16a5},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137155,6 +145165,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x1775, pci_vendor_1775, pci_dev_list_1775},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x177d, pci_vendor_177d, pci_dev_list_177d},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1787, pci_vendor_1787, pci_dev_list_1787},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137224,6 +145237,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x17f2, pci_vendor_17f2, pci_dev_list_17f2},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x17f3, pci_vendor_17f3, pci_dev_list_17f3},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x17fe, pci_vendor_17fe, pci_dev_list_17fe},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137287,6 +145303,12 @@ static const pciVendorInfo pciVendorInfo
 	{0x1867, pci_vendor_1867, pci_dev_list_1867},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x186c, pci_vendor_186c, pci_dev_list_186c},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1876, pci_vendor_1876, pci_dev_list_1876},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x187e, pci_vendor_187e, pci_dev_list_187e},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137380,6 +145402,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x1958, pci_vendor_1958, pci_dev_list_1958},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1959, pci_vendor_1959, pci_dev_list_1959},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1966, pci_vendor_1966, pci_dev_list_1966},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137392,9 +145417,15 @@ static const pciVendorInfo pciVendorInfo
 	{0x196d, pci_vendor_196d, pci_dev_list_196d},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1971, pci_vendor_1971, pci_dev_list_1971},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x197b, pci_vendor_197b, pci_dev_list_197b},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1982, pci_vendor_1982, pci_dev_list_1982},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1989, pci_vendor_1989, pci_dev_list_1989},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137404,6 +145435,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x199a, pci_vendor_199a, pci_dev_list_199a},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x19a2, pci_vendor_19a2, pci_dev_list_19a2},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x19a8, pci_vendor_19a8, pci_dev_list_19a8},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137416,6 +145450,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x19d4, pci_vendor_19d4, pci_dev_list_19d4},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x19de, pci_vendor_19de, pci_dev_list_19de},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x19e2, pci_vendor_19e2, pci_dev_list_19e2},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137423,18 +145460,45 @@ static const pciVendorInfo pciVendorInfo
 #endif
 	{0x1a03, pci_vendor_1a03, pci_dev_list_1a03},
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a07, pci_vendor_1a07, pci_dev_list_1a07},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1a08, pci_vendor_1a08, pci_dev_list_1a08},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1a1d, pci_vendor_1a1d, pci_dev_list_1a1d},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a22, pci_vendor_1a22, pci_dev_list_1a22},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1a29, pci_vendor_1a29, pci_dev_list_1a29},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1a51, pci_vendor_1a51, pci_dev_list_1a51},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a5d, pci_vendor_1a5d, pci_dev_list_1a5d},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a71, pci_vendor_1a71, pci_dev_list_1a71},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a73, pci_vendor_1a73, pci_dev_list_1a73},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a77, pci_vendor_1a77, pci_dev_list_1a77},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a78, pci_vendor_1a78, pci_dev_list_1a78},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a8c, pci_vendor_1a8c, pci_dev_list_1a8c},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1ab9, pci_vendor_1ab9, pci_dev_list_1ab9},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1b13, pci_vendor_1b13, pci_dev_list_1b13},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137518,6 +145582,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x4033, pci_vendor_4033, pci_dev_list_4033},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x4040, pci_vendor_4040, pci_dev_list_4040},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x4143, pci_vendor_4143, pci_dev_list_4143},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137530,6 +145597,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x4321, pci_vendor_4321, pci_dev_list_4321},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x434e, pci_vendor_434e, pci_dev_list_434e},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x4444, pci_vendor_4444, pci_dev_list_4444},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137579,6 +145649,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x4d54, pci_vendor_4d54, pci_dev_list_4d54},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x4d56, pci_vendor_4d56, pci_dev_list_4d56},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x4ddc, pci_vendor_4ddc, pci_dev_list_4ddc},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137610,6 +145683,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x5455, pci_vendor_5455, pci_dev_list_5455},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x5456, pci_vendor_5456, pci_dev_list_5456},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x5519, pci_vendor_5519, pci_dev_list_5519},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137628,6 +145704,9 @@ static const pciVendorInfo pciVendorInfo
 	{0x5851, pci_vendor_5851, pci_dev_list_5851},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x5853, pci_vendor_5853, pci_dev_list_5853},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x6356, pci_vendor_6356, pci_dev_list_6356},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137659,6 +145738,12 @@ static const pciVendorInfo pciVendorInfo
 #endif
 	{0x8086, pci_vendor_8086, pci_dev_list_8086},
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x80ee, pci_vendor_80ee, pci_dev_list_80ee},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x8384, pci_vendor_8384, pci_dev_list_8384},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x8401, pci_vendor_8401, pci_dev_list_8401},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137915,6 +146000,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x02ac, pci_vendor_02ac, pci_ss_list_02ac},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x02e0, pci_vendor_02e0, pci_ss_list_02e0},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x0315, pci_vendor_0315, pci_ss_list_0315},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -137939,6 +146027,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x050d, pci_vendor_050d, pci_ss_list_050d},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x058f, pci_vendor_058f, pci_ss_list_058f},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x05a9, pci_vendor_05a9, pci_ss_list_05a9},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -141830,6 +149921,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x1535, pci_vendor_1535, pci_ss_list_1535},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1536, pci_vendor_1536, pci_ss_list_1536},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1537, pci_vendor_1537, pci_ss_list_1537},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142521,6 +150615,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x169c, pci_vendor_169c, pci_ss_list_169c},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x169d, pci_vendor_169d, pci_ss_list_169d},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x16a5, pci_vendor_16a5, pci_ss_list_16a5},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142635,6 +150732,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x1775, pci_vendor_1775, pci_ss_list_1775},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x177d, pci_vendor_177d, pci_ss_list_177d},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1787, pci_vendor_1787, pci_ss_list_1787},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142704,6 +150804,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x17f2, pci_vendor_17f2, pci_ss_list_17f2},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x17f3, pci_vendor_17f3, pci_ss_list_17f3},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x17fe, pci_vendor_17fe, pci_ss_list_17fe},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142767,6 +150870,12 @@ static const pciVendorSubsysInfo pciVend
 	{0x1867, pci_vendor_1867, pci_ss_list_1867},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x186c, pci_vendor_186c, pci_ss_list_186c},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1876, pci_vendor_1876, pci_ss_list_1876},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x187e, pci_vendor_187e, pci_ss_list_187e},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142860,6 +150969,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x1958, pci_vendor_1958, pci_ss_list_1958},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1959, pci_vendor_1959, pci_ss_list_1959},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1966, pci_vendor_1966, pci_ss_list_1966},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142872,9 +150984,15 @@ static const pciVendorSubsysInfo pciVend
 	{0x196d, pci_vendor_196d, pci_ss_list_196d},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1971, pci_vendor_1971, pci_ss_list_1971},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x197b, pci_vendor_197b, pci_ss_list_197b},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1982, pci_vendor_1982, pci_ss_list_1982},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1989, pci_vendor_1989, pci_ss_list_1989},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142884,6 +151002,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x199a, pci_vendor_199a, pci_ss_list_199a},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x19a2, pci_vendor_19a2, pci_ss_list_19a2},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x19a8, pci_vendor_19a8, pci_ss_list_19a8},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142896,6 +151017,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x19d4, pci_vendor_19d4, pci_ss_list_19d4},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x19de, pci_vendor_19de, pci_ss_list_19de},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x19e2, pci_vendor_19e2, pci_ss_list_19e2},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142903,18 +151027,45 @@ static const pciVendorSubsysInfo pciVend
 #endif
 	{0x1a03, pci_vendor_1a03, pci_ss_list_1a03},
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a07, pci_vendor_1a07, pci_ss_list_1a07},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1a08, pci_vendor_1a08, pci_ss_list_1a08},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1a1d, pci_vendor_1a1d, pci_ss_list_1a1d},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a22, pci_vendor_1a22, pci_ss_list_1a22},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1a29, pci_vendor_1a29, pci_ss_list_1a29},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1a51, pci_vendor_1a51, pci_ss_list_1a51},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a5d, pci_vendor_1a5d, pci_ss_list_1a5d},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a71, pci_vendor_1a71, pci_ss_list_1a71},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a73, pci_vendor_1a73, pci_ss_list_1a73},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a77, pci_vendor_1a77, pci_ss_list_1a77},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a78, pci_vendor_1a78, pci_ss_list_1a78},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1a8c, pci_vendor_1a8c, pci_ss_list_1a8c},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x1ab9, pci_vendor_1ab9, pci_ss_list_1ab9},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x1b13, pci_vendor_1b13, pci_ss_list_1b13},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -142998,6 +151149,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x4033, pci_vendor_4033, pci_ss_list_4033},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x4040, pci_vendor_4040, pci_ss_list_4040},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x4143, pci_vendor_4143, pci_ss_list_4143},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -143010,6 +151164,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x4321, pci_vendor_4321, pci_ss_list_4321},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x434e, pci_vendor_434e, pci_ss_list_434e},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x4444, pci_vendor_4444, pci_ss_list_4444},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -143059,6 +151216,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x4d54, pci_vendor_4d54, pci_ss_list_4d54},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x4d56, pci_vendor_4d56, pci_ss_list_4d56},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x4ddc, pci_vendor_4ddc, pci_ss_list_4ddc},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -143090,6 +151250,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x5455, pci_vendor_5455, pci_ss_list_5455},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x5456, pci_vendor_5456, pci_ss_list_5456},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x5519, pci_vendor_5519, pci_ss_list_5519},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -143108,6 +151271,9 @@ static const pciVendorSubsysInfo pciVend
 	{0x5851, pci_vendor_5851, pci_ss_list_5851},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x5853, pci_vendor_5853, pci_ss_list_5853},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x6356, pci_vendor_6356, pci_ss_list_6356},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
@@ -143139,6 +151305,12 @@ static const pciVendorSubsysInfo pciVend
 #endif
 	{0x8086, pci_vendor_8086, pci_ss_list_8086},
 #ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x80ee, pci_vendor_80ee, pci_ss_list_80ee},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
+	{0x8384, pci_vendor_8384, pci_ss_list_8384},
+#endif
+#ifdef VENDOR_INCLUDE_NONVIDEO
 	{0x8401, pci_vendor_8401, pci_ss_list_8401},
 #endif
 #ifdef VENDOR_INCLUDE_NONVIDEO
diff-tree ac979c165128704116cd40086320b6edc79018e2 (from 393171034c15d8a1b82232b8f9455a358035e932)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Sat Jul 14 12:13:17 2007 -0700

    MakeAtom needs length without trailing NUL. sizeof("string") includes NUL.
    
    I made a mistake in some new code using MakeAtom, passing the size of the
    string instead of the length of the string. Figuring there might be other
    such mistakes, I reviewed the server code and found four bugs of the same
    form.

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index d098e13..c0775d1 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -740,7 +740,7 @@ InitOutput(ScreenInfo *pScreenInfo, int 
       }
       *VT = xf86Info.vtno;
     
-      VTAtom = MakeAtom(VT_ATOM_NAME, sizeof(VT_ATOM_NAME), TRUE);
+      VTAtom = MakeAtom(VT_ATOM_NAME, sizeof(VT_ATOM_NAME) - 1, TRUE);
 
       for (i = 0, ret = Success; i < xf86NumScreens && ret == Success; i++) {
 	ret = xf86RegisterRootWindowProperty(xf86Screens[i]->scrnIndex,
diff --git a/hw/xfree86/ddc/ddcProperty.c b/hw/xfree86/ddc/ddcProperty.c
index 6ff0726..67351d3 100644
--- a/hw/xfree86/ddc/ddcProperty.c
+++ b/hw/xfree86/ddc/ddcProperty.c
@@ -87,7 +87,7 @@ addRootWindowProperties(ScrnInfoPtr pScr
 	if ((EDID1rawdata = xalloc(128*sizeof(CARD8)))==NULL)
 	    return;
 
-	EDID1Atom = MakeAtom(EDID1_ATOM_NAME, sizeof(EDID1_ATOM_NAME), TRUE);
+	EDID1Atom = MakeAtom(EDID1_ATOM_NAME, sizeof(EDID1_ATOM_NAME) - 1, TRUE);
 	memcpy(EDID1rawdata, DDC->rawData, 128);
 	xf86RegisterRootWindowProperty(scrnIndex, EDID1Atom, XA_INTEGER, 8,
 		128, (unsigned char *)EDID1rawdata);
@@ -98,7 +98,7 @@ addRootWindowProperties(ScrnInfoPtr pScr
 	    return;
 
 	memcpy(EDID2rawdata, DDC->rawData, 256);
-	EDID2Atom = MakeAtom(EDID2_ATOM_NAME, sizeof(EDID2_ATOM_NAME), TRUE);
+	EDID2Atom = MakeAtom(EDID2_ATOM_NAME, sizeof(EDID2_ATOM_NAME) - 1, TRUE);
 	xf86RegisterRootWindowProperty(scrnIndex, EDID2Atom, XA_INTEGER, 8,
 		256, (unsigned char *)EDID2rawdata);
     }
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 722b62b..ecdf620 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -2031,7 +2031,7 @@ xf86DisableUnusedFunctions(ScrnInfoPtr p
 static void
 xf86OutputSetEDIDProperty (xf86OutputPtr output, void *data, int data_len)
 {
-    Atom edid_atom = MakeAtom(EDID_ATOM_NAME, sizeof(EDID_ATOM_NAME), TRUE);
+    Atom edid_atom = MakeAtom(EDID_ATOM_NAME, sizeof(EDID_ATOM_NAME) - 1, TRUE);
 
     /* This may get called before the RandR resources have been created */
     if (output->randr_output == NULL)
diff-tree 393171034c15d8a1b82232b8f9455a358035e932 (from 8773ad023eb28950eb0f802d2ca31a67f84adddc)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Sat Jul 14 09:03:40 2007 -0700

    Add RandR reflection support.
    
    Replace the ad-hoc transformation mechanisms with matrices.
    Prepares for more general transformation as well.

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index d20a3a3..722b62b 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -676,7 +676,8 @@ xf86CrtcScreenInit (ScreenPtr screen)
     }
     if (c == config->num_crtc)
 	xf86RandR12SetRotations (screen, RR_Rotate_0 | RR_Rotate_90 |
-				 RR_Rotate_180 | RR_Rotate_270);
+				 RR_Rotate_180 | RR_Rotate_270 |
+				 RR_Reflect_X | RR_Reflect_Y);
     else
 	xf86RandR12SetRotations (screen, RR_Rotate_0);
     
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 2d62600..982a3d7 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -279,6 +279,17 @@ struct _xf86Crtc {
      * Track state of cursor associated with this CRTC
      */
     Bool	    cursor_shown;
+
+    /**
+     * Current transformation matrix
+     */
+    PictTransform   crtc_to_framebuffer;
+    PictTransform   framebuffer_to_crtc;
+    Bool	    transform_in_use;
+    /**
+     * Bounding box in screen space
+     */
+    BoxRec	    bounds;
 };
 
 typedef struct _xf86OutputFuncs {
diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 009cccf..396bf30 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -58,29 +58,73 @@ xf86_crtc_rotate_coord (Rotation    rota
 			int	    *x_src,
 			int	    *y_src)
 {
+    int t;
+    
+    switch (rotation & 0xf) {
+    case RR_Rotate_0:
+	break;
+    case RR_Rotate_90:
+	t = x_dst;
+	x_dst = height - y_dst - 1;
+	y_dst = t;
+	break;
+    case RR_Rotate_180:
+	x_dst = width - x_dst - 1;
+	y_dst = height - y_dst - 1;
+	break;
+    case RR_Rotate_270:
+	t = x_dst;
+	x_dst = y_dst;
+	y_dst = width - t - 1;
+	break;
+    }
     if (rotation & RR_Reflect_X)
 	x_dst = width - x_dst - 1;
     if (rotation & RR_Reflect_Y)
 	y_dst = height - y_dst - 1;
+    *x_src = x_dst;
+    *y_src = y_dst;
+}
+
+/*
+ * Given a cursor source  coordinate, rotate to a screen coordinate
+ */
+static void
+xf86_crtc_rotate_coord_back (Rotation    rotation,
+			     int	    width,
+			     int	    height,
+			     int	    x_dst,
+			     int	    y_dst,
+			     int	    *x_src,
+			     int	    *y_src)
+{
+    int t;
     
+    if (rotation & RR_Reflect_X)
+	x_dst = width - x_dst - 1;
+    if (rotation & RR_Reflect_Y)
+	y_dst = height - y_dst - 1;
+
     switch (rotation & 0xf) {
     case RR_Rotate_0:
-	*x_src = x_dst;
-	*y_src = y_dst;
 	break;
     case RR_Rotate_90:
-	*x_src = height - y_dst - 1;
-	*y_src = x_dst;
+	t = x_dst;
+	x_dst = y_dst;
+	y_dst = width - t - 1;
 	break;
     case RR_Rotate_180:
-	*x_src = width - x_dst - 1;
-	*y_src = height - y_dst - 1;
+	x_dst = width - x_dst - 1;
+	y_dst = height - y_dst - 1;
 	break;
     case RR_Rotate_270:
-	*x_src = y_dst;
-	*y_src = width - x_dst - 1;
+	t = x_dst;
+	x_dst = height - y_dst - 1;
+	y_dst = t;
 	break;
     }
+    *x_src = x_dst;
+    *y_src = y_dst;
 }
 
 /*
@@ -261,49 +305,33 @@ xf86_crtc_set_cursor_position (xf86CrtcP
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
     xf86CursorInfoPtr	cursor_info = xf86_config->cursor_info;
     DisplayModePtr	mode = &crtc->mode;
-    int			x_temp;
-    int			y_temp;
     Bool		in_range;
+    int			dx, dy;
 
-    /* 
-     * Move to crtc coordinate space
-     */
-    x -= crtc->x;
-    y -= crtc->y;
-    
     /*
-     * Rotate
+     * Transform position of cursor on screen
      */
-    switch ((crtc->rotation) & 0xf) {
-    case RR_Rotate_0:
-	break;
-    case RR_Rotate_90:
-	x_temp = y;
-	y_temp = mode->VDisplay - cursor_info->MaxWidth - x;
-	x = x_temp;
-	y = y_temp;
-	break;
-    case RR_Rotate_180:
-	x_temp = mode->HDisplay - cursor_info->MaxWidth - x;
-	y_temp = mode->VDisplay - cursor_info->MaxHeight - y;
-	x = x_temp;
-	y = y_temp;
-	break;
-    case RR_Rotate_270:
-	x_temp = mode->HDisplay - cursor_info->MaxHeight -  y;
-	y_temp = x;
-	x = x_temp;
-	y = y_temp;
-	break;
+    if (crtc->transform_in_use)
+    {
+	PictVector	v;
+	v.vector[0] = IntToxFixed (x); v.vector[1] = IntToxFixed (y); v.vector[2] = IntToxFixed(1);
+	PictureTransformPoint (&crtc->framebuffer_to_crtc, &v);
+	x = xFixedToInt (v.vector[0]); y = xFixedToInt (v.vector[1]);
+    }
+    else
+    {
+	x -= crtc->x;
+	y -= crtc->y;
     }
-    
     /*
-     * Reflect
+     * Transform position of cursor upper left corner
      */
-    if (crtc->rotation & RR_Reflect_X)
-	x = mode->HDisplay - cursor_info->MaxWidth - x;
-    if (crtc->rotation & RR_Reflect_Y)
-	y = mode->VDisplay - cursor_info->MaxHeight - y;
+    xf86_crtc_rotate_coord_back (crtc->rotation,
+				 cursor_info->MaxWidth,
+				 cursor_info->MaxHeight,
+				 0, 0, &dx, &dy);
+    x -= dx;
+    y -= dy;
 
     /*
      * Disable the cursor when it is outside the viewport
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index 1379939..4016b97 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -68,57 +68,204 @@ compWindowFormat (WindowPtr pWin)
 			       compGetWindowVisual (pWin));
 }
 
+#define F(x)	IntToxFixed(x)
+
+static void
+PictureTransformIdentity (PictTransformPtr matrix)
+{
+    int	i;
+    memset (matrix, '\0', sizeof (PictTransform));
+    for (i = 0; i < 3; i++)
+	matrix->matrix[i][i] = F(1);
+}
+
+static Bool
+PictureTransformMultiply (PictTransformPtr dst, PictTransformPtr l, PictTransformPtr r)
+{
+    PictTransform   d;
+    int		    dx, dy;
+    int		    o;
+
+    for (dy = 0; dy < 3; dy++)
+	for (dx = 0; dx < 3; dx++)
+	{
+	    xFixed_48_16    v;
+	    xFixed_32_32    partial;
+	    v = 0;
+	    for (o = 0; o < 3; o++)
+	    {
+		partial = (xFixed_32_32) l->matrix[dy][o] * (xFixed_32_32) r->matrix[o][dx];
+		v += partial >> 16;
+	    }
+	    if (v > MAX_FIXED_48_16 || v < MIN_FIXED_48_16)
+		return FALSE;
+	    d.matrix[dy][dx] = (xFixed) v;
+	}
+    *dst = d;
+    return TRUE;
+}
+
+static void
+PictureTransformInitScale (PictTransformPtr t, xFixed sx, xFixed sy)
+{
+    memset (t, '\0', sizeof (PictTransform));
+    t->matrix[0][0] = sx;
+    t->matrix[1][1] = sy;
+    t->matrix[2][2] = F (1);
+}
+
+static xFixed
+fixed_inverse (xFixed x)
+{
+    return (xFixed) ((((xFixed_48_16) F(1)) * F(1)) / x);
+}
+
+static Bool
+PictureTransformScale (PictTransformPtr forward,
+		       PictTransformPtr reverse,
+		       xFixed sx, xFixed sy)
+{
+    PictTransform   t;
+    
+    PictureTransformInitScale (&t, sx, sy);
+    if (!PictureTransformMultiply (forward, &t, forward))
+	return FALSE;
+    PictureTransformInitScale (&t, fixed_inverse (sx), fixed_inverse (sy));
+    if (!PictureTransformMultiply (reverse, reverse, &t))
+	return FALSE;
+    return TRUE;
+}
+
 static void
-xf86TranslateBox (BoxPtr b, int dx, int dy)
+PictureTransformInitRotate (PictTransformPtr t, xFixed c, xFixed s)
 {
-    b->x1 += dx;
-    b->y1 += dy;
-    b->x2 += dx;
-    b->y2 += dy;
+    memset (t, '\0', sizeof (PictTransform));
+    t->matrix[0][0] = c;
+    t->matrix[0][1] = -s;
+    t->matrix[1][0] = s;
+    t->matrix[1][1] = c;
+    t->matrix[2][2] = F (1);
+}
+
+static Bool
+PictureTransformRotate (PictTransformPtr forward,
+			PictTransformPtr reverse,
+			xFixed c, xFixed s)
+{
+    PictTransform   t;
+    PictureTransformInitRotate (&t, c, s);
+    if (!PictureTransformMultiply (forward, &t, forward))
+	return FALSE;
+    
+    PictureTransformInitRotate (&t, c, -s);
+    if (!PictureTransformMultiply (reverse, reverse, &t))
+	return FALSE;
+    return TRUE;
 }
 
 static void
-xf86TransformBox (BoxPtr dst, BoxPtr src, Rotation rotation,
-		  int xoff, int yoff,
-		  int dest_width, int dest_height)
+PictureTransformInitTranslate (PictTransformPtr t, xFixed tx, xFixed ty)
+{
+    memset (t, '\0', sizeof (PictTransform));
+    t->matrix[0][0] = F (1);
+    t->matrix[0][2] = tx;
+    t->matrix[1][1] = F (1);
+    t->matrix[1][2] = ty;
+    t->matrix[2][2] = F (1);
+}
+
+static Bool
+PictureTransformTranslate (PictTransformPtr forward,
+			   PictTransformPtr reverse,
+			   xFixed tx, xFixed ty)
 {
-    BoxRec  stmp = *src;
+    PictTransform   t;
+    PictureTransformInitTranslate (&t, tx, ty);
+    if (!PictureTransformMultiply (forward, &t, forward))
+	return FALSE;
     
-    xf86TranslateBox (&stmp, -xoff, -yoff);
-    switch (rotation & 0xf) {
-    default:
-    case RR_Rotate_0:
-	*dst = stmp;
-	break;
-    case RR_Rotate_90:
-	dst->x1 = stmp.y1;
-	dst->y1 = dest_height - stmp.x2;
-	dst->x2 = stmp.y2;
-	dst->y2 = dest_height - stmp.x1;
-	break;
-    case RR_Rotate_180:
-	dst->x1 = dest_width - stmp.x2;
-	dst->y1 = dest_height - stmp.y2;
-	dst->x2 = dest_width - stmp.x1;
-	dst->y2 = dest_height - stmp.y1;
-	break;
-    case RR_Rotate_270:
-	dst->x1 = dest_width - stmp.y2;
-	dst->y1 = stmp.x1;
-	dst->y2 = stmp.x2;
-	dst->x2 = dest_width - stmp.y1;
-	break;
-    }
-    if (rotation & RR_Reflect_X) {
-	int x1 = dst->x1;
-	dst->x1 = dest_width - dst->x2;
-	dst->x2 = dest_width - x1;
-    }
-    if (rotation & RR_Reflect_Y) {
-	int y1 = dst->y1;
-	dst->y1 = dest_height - dst->y2;
-	dst->y2 = dest_height - y1;
+    PictureTransformInitTranslate (&t, -tx, -ty);
+    if (!PictureTransformMultiply (reverse, reverse, &t))
+	return FALSE;
+    return TRUE;
+}
+
+static void
+PictureTransformBounds (BoxPtr b, PictTransformPtr matrix)
+{
+    PictVector	v[4];
+    int		i;
+    int		x1, y1, x2, y2;
+
+    v[0].vector[0] = F (b->x1);    v[0].vector[1] = F (b->y1);	v[0].vector[2] = F(1);
+    v[1].vector[0] = F (b->x2);    v[1].vector[1] = F (b->y1);	v[1].vector[2] = F(1);
+    v[2].vector[0] = F (b->x2);    v[2].vector[1] = F (b->y2);	v[2].vector[2] = F(1);
+    v[3].vector[0] = F (b->x1);    v[3].vector[1] = F (b->y2);	v[3].vector[2] = F(1);
+    for (i = 0; i < 4; i++)
+    {
+	PictureTransformPoint (matrix, &v[i]);
+	x1 = xFixedToInt (v[i].vector[0]);
+	y1 = xFixedToInt (v[i].vector[1]);
+	x2 = xFixedToInt (xFixedCeil (v[i].vector[0]));
+	y2 = xFixedToInt (xFixedCeil (v[i].vector[1]));
+	if (i == 0)
+	{
+	    b->x1 = x1; b->y1 = y1;
+	    b->x2 = x2; b->y2 = y2;
+	}
+	else
+	{
+	    if (x1 < b->x1) b->x1 = x1;
+	    if (y1 < b->y1) b->y1 = y1;
+	    if (x2 > b->x2) b->x2 = x2;
+	    if (y2 > b->y2) b->y2 = y2;
+	}
+    }
+}
+
+static Bool
+PictureTransformIsIdentity(PictTransform *t)
+{
+    return ((t->matrix[0][0] == t->matrix[1][1]) &&
+            (t->matrix[0][0] == t->matrix[2][2]) &&
+            (t->matrix[0][0] != 0) &&
+            (t->matrix[0][1] == 0) &&
+            (t->matrix[0][2] == 0) &&
+            (t->matrix[1][0] == 0) &&
+            (t->matrix[1][2] == 0) &&
+            (t->matrix[2][0] == 0) &&
+            (t->matrix[2][1] == 0));
+}
+
+#define toF(x)	((float) (x) / 65536.0f)
+
+static void
+PictureTransformErrorF (PictTransform *t)
+{
+    ErrorF ("{ { %f %f %f } { %f %f %f } { %f %f %f } }",
+	    toF(t->matrix[0][0]), toF(t->matrix[0][1]), toF(t->matrix[0][2]), 
+	    toF(t->matrix[1][0]), toF(t->matrix[1][1]), toF(t->matrix[1][2]), 
+	    toF(t->matrix[2][0]), toF(t->matrix[2][1]), toF(t->matrix[2][2]));
+}
+
+static Bool
+PictureTransformIsInverse (char *where, PictTransform *a, PictTransform *b)
+{
+    PictTransform   t;
+
+    PictureTransformMultiply (&t, a, b);
+    if (!PictureTransformIsIdentity (&t))
+    {
+	ErrorF ("%s: ", where);
+	PictureTransformErrorF (a);
+	ErrorF (" * ");
+	PictureTransformErrorF (b);
+	ErrorF (" = ");
+	PictureTransformErrorF (a);
+	ErrorF ("\n");
+	return FALSE;
     }
+    return TRUE;
 }
 
 static void
@@ -131,7 +278,6 @@ xf86RotateCrtcRedisplay (xf86CrtcPtr crt
     PictFormatPtr	format = compWindowFormat (WindowTable[screen->myNum]);
     int			error;
     PicturePtr		src, dst;
-    PictTransform	transform;
     int			n = REGION_NUM_RECTS(region);
     BoxPtr		b = REGION_RECTS(region);
     XID			include_inferiors = IncludeInferiors;
@@ -156,45 +302,7 @@ xf86RotateCrtcRedisplay (xf86CrtcPtr crt
     if (!dst)
 	return;
 
-    memset (&transform, '\0', sizeof (transform));
-    transform.matrix[2][2] = IntToxFixed(1);
-    transform.matrix[0][2] = IntToxFixed(crtc->x);
-    transform.matrix[1][2] = IntToxFixed(crtc->y);
-    switch (crtc->rotation & 0xf) {
-    default:
-    case RR_Rotate_0:
-	transform.matrix[0][0] = IntToxFixed(1);
-	transform.matrix[1][1] = IntToxFixed(1);
-	break;
-    case RR_Rotate_90:
-	transform.matrix[0][1] = IntToxFixed(-1);
-	transform.matrix[1][0] = IntToxFixed(1);
-	transform.matrix[0][2] += IntToxFixed(crtc->mode.VDisplay);
-	break;
-    case RR_Rotate_180:
-	transform.matrix[0][0] = IntToxFixed(-1);
-	transform.matrix[1][1] = IntToxFixed(-1);
-	transform.matrix[0][2] += IntToxFixed(crtc->mode.HDisplay);
-	transform.matrix[1][2] += IntToxFixed(crtc->mode.VDisplay);
-	break;
-    case RR_Rotate_270:
-	transform.matrix[0][1] = IntToxFixed(1);
-	transform.matrix[1][0] = IntToxFixed(-1);
-	transform.matrix[1][2] += IntToxFixed(crtc->mode.HDisplay);
-	break;
-    }
-
-    /* handle reflection */
-    if (crtc->rotation & RR_Reflect_X)
-    {
-	/* XXX figure this out */
-    }
-    if (crtc->rotation & RR_Reflect_Y)
-    {
-	/* XXX figure this out too */
-    }
-
-    error = SetPictureTransform (src, &transform);
+    error = SetPictureTransform (src, &crtc->crtc_to_framebuffer);
     if (error)
 	return;
 
@@ -202,9 +310,8 @@ xf86RotateCrtcRedisplay (xf86CrtcPtr crt
     {
 	BoxRec	dst_box;
 
-	xf86TransformBox (&dst_box, b, crtc->rotation,
-			  crtc->x, crtc->y,
-			  crtc->mode.HDisplay, crtc->mode.VDisplay);
+	dst_box = *b;
+	PictureTransformBounds (&dst_box, &crtc->framebuffer_to_crtc);
 	CompositePicture (PictOpSrc,
 			  src, NULL, dst,
 			  dst_box.x1, dst_box.y1, 0, 0, dst_box.x1, dst_box.y1,
@@ -296,15 +403,10 @@ xf86RotateRedisplay(ScreenPtr pScreen)
 
 	    if (crtc->rotation != RR_Rotate_0 && crtc->enabled)
 	    {
-		BoxRec	    box;
 		RegionRec   crtc_damage;
 
 		/* compute portion of damage that overlaps crtc */
-		box.x1 = crtc->x;
-		box.x2 = crtc->x + xf86ModeWidth (&crtc->mode, crtc->rotation);
-		box.y1 = crtc->y;
-		box.y2 = crtc->y + xf86ModeHeight (&crtc->mode, crtc->rotation);
-		REGION_INIT(pScreen, &crtc_damage, &box, 1);
+		REGION_INIT(pScreen, &crtc_damage, &crtc->bounds, 1);
 		REGION_INTERSECT (pScreen, &crtc_damage, &crtc_damage, region);
 		
 		/* update damaged region */
@@ -393,13 +495,93 @@ xf86CrtcRotate (xf86CrtcPtr crtc, Displa
     ScrnInfoPtr		pScrn = crtc->scrn;
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
     ScreenPtr		pScreen = pScrn->pScreen;
+    PictTransform	crtc_to_fb, fb_to_crtc;
+    
+    PictureTransformIdentity (&crtc_to_fb);
+    PictureTransformIdentity (&fb_to_crtc);
+    PictureTransformIsInverse ("identity", &crtc_to_fb, &fb_to_crtc);
+    if (rotation != RR_Rotate_0)
+    {
+	xFixed	rot_cos, rot_sin, rot_dx, rot_dy;
+	xFixed	scale_x, scale_y, scale_dx, scale_dy;
+	int	mode_w = crtc->mode.HDisplay;
+	int	mode_h = crtc->mode.VDisplay;
+	
+	/* rotation */
+	switch (rotation & 0xf) {
+	default:
+	case RR_Rotate_0:
+	    rot_cos = F ( 1);	    rot_sin = F ( 0);
+	    rot_dx  = F ( 0);	    rot_dy  = F ( 0);
+	    break;
+	case RR_Rotate_90:
+	    rot_cos = F ( 0);	    rot_sin = F ( 1);
+	    rot_dx =  F ( mode_h);  rot_dy  = F (0);
+	    break;
+	case RR_Rotate_180:
+	    rot_cos = F (-1);	    rot_sin = F ( 0);
+	    rot_dx  = F (mode_w);   rot_dy  = F ( mode_h);
+	    break;
+	case RR_Rotate_270:
+	    rot_cos = F ( 0);	    rot_sin = F (-1);
+	    rot_dx  = F ( 0);	    rot_dy  = F ( mode_w);
+	    break;
+	}
+	
+	PictureTransformRotate (&crtc_to_fb, &fb_to_crtc, rot_cos, rot_sin);
+	PictureTransformIsInverse ("rotate", &crtc_to_fb, &fb_to_crtc);
+
+	PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, rot_dx, rot_dy);
+	PictureTransformIsInverse ("rotate translate", &crtc_to_fb, &fb_to_crtc);
+
+	/* reflection */
+	scale_x = F (1);
+	scale_dx = 0;
+	scale_y = F (1);
+	scale_dy = 0;
+	if (rotation & RR_Reflect_X)
+	{
+	    scale_x = F(-1);
+	    if (rotation & (RR_Rotate_0|RR_Rotate_180))
+		scale_dx = F(mode_w);
+	    else
+		scale_dx = F(mode_h);
+	}
+	if (rotation & RR_Reflect_Y)
+	{
+	    scale_y = F(-1);
+	    if (rotation & (RR_Rotate_0|RR_Rotate_180))
+		scale_dy = F(mode_h);
+	    else
+		scale_dy = F(mode_w);
+	}
+	
+	PictureTransformScale (&crtc_to_fb, &fb_to_crtc, scale_x, scale_y);
+	PictureTransformIsInverse ("scale", &crtc_to_fb, &fb_to_crtc);
+
+	PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, scale_dx, scale_dy);
+	PictureTransformIsInverse ("scale translate", &crtc_to_fb, &fb_to_crtc);
+
+    }
     
-    if (rotation == RR_Rotate_0)
+    /*
+     * If the untranslated transformation is the identity,
+     * disable the shadow buffer
+     */
+    if (PictureTransformIsIdentity (&crtc_to_fb))
     {
+	crtc->transform_in_use = FALSE;
+	PictureTransformInitTranslate (&crtc->crtc_to_framebuffer, 
+				       F (-crtc->x), F (-crtc->y));
+	PictureTransformInitTranslate (&crtc->framebuffer_to_crtc,
+				       F ( crtc->x), F ( crtc->y));
 	xf86RotateDestroy (crtc);
     }
     else
     {
+	PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, crtc->x, crtc->y);
+	PictureTransformIsInverse ("offset", &crtc_to_fb, &fb_to_crtc);
+	
 	/* 
 	 * these are the size of the shadow pixmap, which
 	 * matches the mode, not the pre-rotated copy in the
@@ -448,14 +630,14 @@ xf86CrtcRotate (xf86CrtcPtr crtc, Displa
 	}
 	if (0)
 	{
-bail2:
+    bail2:
 	    if (shadow || shadowData)
 	    {
 		crtc->funcs->shadow_destroy (crtc, shadow, shadowData);
 		crtc->rotatedPixmap = NULL;
 		crtc->rotatedData = NULL;
 	    }
-bail1:
+    bail1:
 	    if (old_width && old_height)
 		crtc->rotatedPixmap = crtc->funcs->shadow_create (crtc,
 								  NULL,
@@ -463,6 +645,14 @@ bail1:
 								  old_height);
 	    return FALSE;
 	}
+	crtc->transform_in_use = TRUE;
+	crtc->crtc_to_framebuffer = crtc_to_fb;
+	crtc->framebuffer_to_crtc = fb_to_crtc;
+	crtc->bounds.x1 = 0;
+	crtc->bounds.x2 = crtc->mode.HDisplay;
+	crtc->bounds.y1 = 0;
+	crtc->bounds.y2 = crtc->mode.VDisplay;
+	PictureTransformBounds (&crtc->bounds, &crtc_to_fb);
     }
     
     /* All done */
diff-tree 8773ad023eb28950eb0f802d2ca31a67f84adddc (from 881a620b4d6ea7a54af14c8f8fbe6924c9aa9291)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Sat Jul 14 08:47:50 2007 -0700

    Screen size bounds check in ProcRRSetCrtcConfig not masking out reflections.
    
    When checking how to validate the selected mode and position against the
    current screen size, the test against 90/270 rotation did not mask out
    reflection, so that when reflection was specified, the 90/270 test would
    never succeed. This caused incorrect bounds checking and would return
    an error to the user instead of rotating the screen.

diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index c8c2be2..3ce9e21 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -794,7 +794,7 @@ ProcRRSetCrtcConfig (ClientPtr client)
 	    int source_width = mode->mode.width;
 	    int	source_height = mode->mode.height;
 
-	    if (rotation == RR_Rotate_90 || rotation == RR_Rotate_270)
+	    if ((rotation & 0xf) == RR_Rotate_90 || (rotation & 0xf) == RR_Rotate_270)
 	    {
 		source_width = mode->mode.height;
 		source_height = mode->mode.width;
diff-tree 881a620b4d6ea7a54af14c8f8fbe6924c9aa9291 (from 031b009ea678809bf1ddca883c2082b304c408c9)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Sat Jul 14 08:45:10 2007 -0700

    When sync'ing logfile, also flush it.
    
    When the logfile is set to sync, the actual sync occurs whenever the log
    file is flushed. If the log file is not also set to flush, no syncing
    occurs.

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index b5b4927..48c178b 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -988,6 +988,7 @@ configServerFlags(XF86ConfFlagsPtr flags
 	    } else if (!xf86NameCmp(s,"sync")) {
 		xf86Msg(X_CONFIG, "Syncing logfile enabled\n");
 		xf86Info.log = LogSync;
+		LogSetParameter(XLOG_FLUSH, TRUE);
 		LogSetParameter(XLOG_SYNC, TRUE);
 	    } else {
 		xf86Msg(X_WARNING,"Unknown Log option\n");
diff-tree 031b009ea678809bf1ddca883c2082b304c408c9 (from c0e91777a9874fe2cd9a7e9180263f512c1e8f8d)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Fri Jul 13 14:54:45 2007 -0700

    Use %S instead of %s for strftime seconds when printing build time

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index d20a271..d098e13 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -1731,7 +1731,7 @@ xf86PrintBanner()
     t.tm_sec = BUILD_TIME % 100;
     t.tm_min = (BUILD_TIME / 100) % 100;
     t.tm_hour = (BUILD_TIME / 10000) % 100;
-    if (strftime(buf, sizeof(buf), "%d %B %Y  %I:%M:%s%p", &t))
+    if (strftime(buf, sizeof(buf), "%d %B %Y  %I:%M:%S%p", &t))
        ErrorF("Build Date: %s\n", buf);
 #else
     if (strftime(buf, sizeof(buf), "%d %B %Y", &t))
diff-tree c0e91777a9874fe2cd9a7e9180263f512c1e8f8d (from 6b4231e3b5b49b731c9a00930ae465fff8539831)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Thu Jul 12 16:37:11 2007 -0700

    Add __SOL8__ to xorg-server.h.in since xf86-input-kbd needs it to build

diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in
index 7b2a4d1..3c2ff47 100644
--- a/include/xorg-server.h.in
+++ b/include/xorg-server.h.in
@@ -233,6 +233,9 @@
 /* System is BSD-like */
 #undef CSRG_BASED
 
+/* Solaris 8 or later? */
+#undef __SOL8__
+
 /* System has PC console */
 #undef PCCONS_SUPPORT
 
diff-tree 6b4231e3b5b49b731c9a00930ae465fff8539831 (from 9fcb30ebf7b7b2137955f759e95c1d58c4f27a11)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Thu Jul 12 16:36:27 2007 -0700

    Use kbd driver when xorg.conf specifies "keyboard" or "Keyboard" (bug #11301)
    
    X.Org Bug #11301 <https://bugs.freedesktop.org/show_bug.cgi?id=11301>
    Sun Bug #6560332 <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6560332>

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 8f3b23a..d20a271 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -979,6 +979,17 @@ InitInput(argc, argv)
     if (serverGeneration == 1) {
 	/* Call the PreInit function for each input device instance. */
 	for (pDev = xf86ConfigLayout.inputs; pDev && *pDev; pDev++) {
+	    /* Replace obsolete keyboard driver with kbd */
+	    if (!xf86NameCmp((*pDev)->driver, "keyboard")) {
+		xf86MsgVerb(X_WARNING, 0,
+			    "*** WARNING the legacy keyboard driver \"%s\" has been removed\n",
+			    (*pDev)->driver);
+		xf86MsgVerb(X_WARNING, 0,
+			    "*** Using the new \"kbd\" driver for \"%s\".\n",
+			    (*pDev)->identifier);
+		strcpy((*pDev)->driver, "kbd");
+            }
+
 	    if ((pDrv = xf86LookupInputDriver((*pDev)->driver)) == NULL) {
 		xf86Msg(X_ERROR, "No Input driver matching `%s'\n", (*pDev)->driver);
 		/* XXX For now, just continue. */
@@ -1834,6 +1845,11 @@ xf86LoadModules(char **list, pointer *op
 	if (name == NULL || *name == '\0')
 	    continue;
 
+	/* Replace obsolete keyboard driver with kbd */
+	if (!xf86NameCmp(name, "keyboard")) {
+	    strcpy(name, "kbd");
+	}
+
 	if (optlist)
 	    opt = optlist[i];
 	else
diff-tree 9fcb30ebf7b7b2137955f759e95c1d58c4f27a11 (from 7c0ca27f6dd0a800dc27429a33dbc8e133f9a9c1)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Thu Jul 12 13:00:32 2007 -0700

    Make SOLARIS_INOUT_ARCH substitutions work better with automake-1.10

diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
index 50aa673..cef6b5b 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
@@ -78,10 +78,10 @@ if SOLARIS_ASM_INLINE
 # Needs to be built before any files are compiled when using Sun compilers
 # so in*/out* inline definitions are properly processed.
 
-BUILT_SOURCES += os-support/solaris/solaris-$(SOLARIS_INOUT_ARCH).il
+BUILT_SOURCES += os-support/solaris/solaris- at SOLARIS_INOUT_ARCH@.il
 
-os-support/solaris/solaris-$(SOLARIS_INOUT_ARCH).il:
-	cd os-support/solaris ; make solaris-$(SOLARIS_INOUT_ARCH).il
+os-support/solaris/solaris- at SOLARIS_INOUT_ARCH@.il:
+	cd os-support/solaris ; make solaris- at SOLARIS_INOUT_ARCH@.il
 endif
 
 # do not use $(mkdir_p) if you want automake 1.7 to work
diff --git a/hw/xfree86/os-support/solaris/Makefile.am b/hw/xfree86/os-support/solaris/Makefile.am
index d01e2e6..c027d9a 100644
--- a/hw/xfree86/os-support/solaris/Makefile.am
+++ b/hw/xfree86/os-support/solaris/Makefile.am
@@ -11,11 +11,11 @@ AGP_SRC = sun_agp.c
 #AGP_SRC = $(srcdir)/../shared/agp_noop.c
 #endif
 
-SOLARIS_INOUT_SRC = solaris-$(SOLARIS_INOUT_ARCH).S
-DISTCLEANFILES = solaris-$(SOLARIS_INOUT_ARCH).il
+SOLARIS_INOUT_SRC = solaris- at SOLARIS_INOUT_ARCH@.S
+DISTCLEANFILES = solaris- at SOLARIS_INOUT_ARCH@.il
 
-solaris-$(SOLARIS_INOUT_ARCH).il: solaris-${SOLARIS_INOUT_ARCH}.S
-	$(CPP) -P -DINLINE_ASM solaris-${SOLARIS_INOUT_ARCH}.S > $@
+solaris- at SOLARIS_INOUT_ARCH@.il: solaris- at SOLARIS_INOUT_ARCH@.S
+	$(CPP) -P -DINLINE_ASM solaris- at SOLARIS_INOUT_ARCH@.S > $@
 
 noinst_LTLIBRARIES = libsolaris.la
 libsolaris_la_SOURCES = sun_bios.c sun_init.c \
@@ -28,7 +28,7 @@ libsolaris_la_SOURCES = sun_bios.c sun_i
 nodist_libsolaris_la_SOURCES = $(SOLARIS_INOUT_SRC)
 
 sdk_HEADERS = agpgart.h
-nodist_sdk_HEADERS = solaris-$(SOLARIS_INOUT_ARCH).il
+nodist_sdk_HEADERS = solaris- at SOLARIS_INOUT_ARCH@.il
 
 AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(XORG_CFLAGS) $(DIX_CFLAGS)
 
diff-tree 7c0ca27f6dd0a800dc27429a33dbc8e133f9a9c1 (from 0a4e9311158ed3ecda0722640f860ace2f87a97e)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Jul 11 17:15:29 2007 -0700

    "fbpict.c", line 215: void function cannot return value

diff --git a/fb/fbpict.c b/fb/fbpict.c
index ead84d7..9efa0e8 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -210,7 +210,7 @@ fbCompositeGeneral (CARD8	op,
 		    CARD16	width,
 		    CARD16	height)
 {
-    return fbComposite (op, pSrc, pMask, pDst,
+    fbComposite (op, pSrc, pMask, pDst,
 			xSrc, ySrc, xMask, yMask, xDst, yDst,
 			width, height);
 }
diff-tree 0a4e9311158ed3ecda0722640f860ace2f87a97e (from b2f9ca6ac400d426d7a1ef0162f7e7ce28288dd1)
Author: Hanno Boeck <hanno at gentoo.org>
Date:   Thu Jul 12 10:17:07 2007 +1000

    xnest: fix linking since dbus
    
    Fixes bug 8955

diff --git a/configure.ac b/configure.ac
index 760db87..be8878a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1164,7 +1164,7 @@ AC_MSG_RESULT([$XNEST])
 AM_CONDITIONAL(XNEST, [test "x$XNEST" = xyes])
 
 if test "x$XNEST" = xyes; then
-	XNEST_LIBS="$XSERVER_LIBS $FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB $LIBS"
+	XNEST_LIBS="$MI_LIB $CONFIG_LIB $XSERVER_LIBS $FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB $LIBS"
 	AC_SUBST([XNEST_LIBS])
 fi
 
diff-tree b2f9ca6ac400d426d7a1ef0162f7e7ce28288dd1 (from 561989f2f0fc31e3d3bf8df978a9cb3d4c85af59)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Tue Jul 10 21:33:34 2007 -0700

    Redirect fix: Manual + Automatic - Manual = Automatic
    
    A window with redirect manual *and* redirect automatic which loses the
    manual redirecting client becomes redirect automatic.

diff --git a/composite/compalloc.c b/composite/compalloc.c
index 1a7e4a0..f555411 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -220,6 +220,7 @@ compFreeClientWindow (WindowPtr pWin, XI
     {
 	DamageRegister (&pWin->drawable, cw->damage);
 	cw->damageRegistered = TRUE;
+	pWin->redirectDraw = RedirectDrawAutomatic;
 	DamageDamageRegion (&pWin->drawable, &pWin->borderSize);
     }
     if (wasMapped && !pWin->mapped)
diff-tree 561989f2f0fc31e3d3bf8df978a9cb3d4c85af59 (from e316fa59fea8b7b18cdf3a227890351a9567ec65)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Tue Jul 10 21:06:51 2007 -0700

    Generate ChangeLog file for make dist.
    
    Copy Makefile.am snippet which generates a complete git change history to
    the ChangeLog file during the distribution generation process.

diff --git a/Makefile.am b/Makefile.am
index f35539e..e382d58 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -64,7 +64,17 @@ aclocal_DATA = xorg-server.m4
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = xorg-server.pc
 
-EXTRA_DIST = xorg-server.pc.in xorg-server.m4
+EXTRA_DIST = xorg-server.pc.in xorg-server.m4 ChangeLog autogen.sh
+
+MAINTAINERCLEANFILES=ChangeLog
+
+.PHONY: ChangeLog
+
+ChangeLog:
+	(GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || \
+	(touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)
+
+dist-hook: ChangeLog
 
 DIST_SUBDIRS = \
 	doc \
diff-tree e316fa59fea8b7b18cdf3a227890351a9567ec65 (from 161624a5a45808fd56141dc2c64be729944f03ed)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Tue Jul 10 14:20:55 2007 -0400

    Add per-monitor config file option for maximum pixel clock.

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 4bd93b8..b5b4927 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -1,5 +1,3 @@
-
-
 /*
  * Loosely based on code bearing the following copyright:
  *
@@ -1947,12 +1945,15 @@ configScreen(confScreenPtr screenp, XF86
 }
 
 typedef enum {
-    MON_REDUCEDBLANKING
+    MON_REDUCEDBLANKING,
+    MON_MAX_PIX_CLOCK,
 } MonitorValues;
 
 static OptionInfoRec MonitorOptions[] = {
   { MON_REDUCEDBLANKING,      "ReducedBlanking",        OPTV_BOOLEAN,
        {0}, FALSE },
+  { MON_MAX_PIX_CLOCK,	      "MaxPixClock",		OPTV_FREQ,
+       {0}, FALSE },
   { -1,                                NULL,                   OPTV_NONE,
        {0}, FALSE },
 };
@@ -2099,11 +2100,11 @@ configMonitor(MonPtr monitorp, XF86ConfM
 	    return FALSE;
     }
 
-    /* Check wether this Monitor accepts Reduced Blanking modelines */
     xf86ProcessOptions(-1, monitorp->options, MonitorOptions);
-
     xf86GetOptValBool(MonitorOptions, MON_REDUCEDBLANKING,
                       &monitorp->reducedblanking);
+    xf86GetOptValFreq(MonitorOptions, MON_MAX_PIX_CLOCK, OPTUNITS_KHZ,
+		      &monitorp->maxPixClock);
     return TRUE;
 }
 
diff --git a/hw/xfree86/common/xf86Mode.c b/hw/xfree86/common/xf86Mode.c
index 0c25c96..7fcce10 100644
--- a/hw/xfree86/common/xf86Mode.c
+++ b/hw/xfree86/common/xf86Mode.c
@@ -1472,6 +1472,12 @@ xf86ValidateModes(ScrnInfoPtr scrp, Disp
 			 scrp->monitor->vrefresh[i].lo,
 			 scrp->monitor->vrefresh[i].hi);
 	}
+	if (scrp->monitor->maxPixClock) {
+	    xf86DrvMsg(scrp->scrnIndex, X_INFO,
+		       "%s: Using maximum pixel clock of %.2f MHz\n",
+		       scrp->monitor->id,
+		       (float)scrp->monitor->maxPixClock / 1000.0);
+	}
     }
 
     /*
diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index 2232992..3f67ef3 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -427,7 +427,7 @@ xf86DDCMonitorSet(int scrnIndex, MonPtr 
 {
     DisplayModePtr Modes = NULL, Mode;
     int i, clock;
-    Bool have_hsync = FALSE, have_vrefresh = FALSE;
+    Bool have_hsync = FALSE, have_vrefresh = FALSE, have_maxpixclock = FALSE;
 
     if (!Monitor || !DDC)
         return;
@@ -447,6 +447,7 @@ xf86DDCMonitorSet(int scrnIndex, MonPtr 
     /* Skip EDID ranges if they were specified in the config file */
     have_hsync = (Monitor->nHsync != 0);
     have_vrefresh = (Monitor->nVrefresh != 0);
+    have_maxpixclock = (Monitor->maxPixClock != 0);
 
     /* Go through the detailed monitor sections */
     for (i = 0; i < DET_TIMINGS; i++) {
@@ -481,7 +482,7 @@ xf86DDCMonitorSet(int scrnIndex, MonPtr 
 	    }
 
 	    clock = DDC->det_mon[i].section.ranges.max_clock * 1000;
-	    if (clock > Monitor->maxPixClock)
+	    if (!have_maxpixclock && clock > Monitor->maxPixClock)
 		Monitor->maxPixClock = clock;
 
             break;
diff-tree 161624a5a45808fd56141dc2c64be729944f03ed (from 4abd00dab7e648dab8172f6009371e4e63d0c521)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Tue Jul 10 09:02:40 2007 +0200

    GLX: Only build code dealing with GLXPixmap damage field when DRI is enabled.

diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index ed5c138..3038b13 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1285,7 +1285,9 @@ int DoCreateGLXPixmap(__GLXclientState *
     pGlxPixmap->pGlxScreen = __glXgetActiveScreen(screenNum);
     pGlxPixmap->pScreen = pDraw->pScreen;
     pGlxPixmap->idExists = True;
+#ifdef XF86DRI
     pGlxPixmap->pDamage = NULL;
+#endif
     pGlxPixmap->refcnt = 0;
 
     pGlxPixmap->modes = modes;
diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index b4f3105..b35175e 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -172,10 +172,12 @@ static int PixmapGone(__GLXpixmap *pGlxP
 
     pGlxPixmap->idExists = False;
     if (!pGlxPixmap->refcnt) {
+#ifdef XF86DRI
 	if (pGlxPixmap->pDamage) {
 	    DamageUnregister (pGlxPixmap->pDraw, pGlxPixmap->pDamage);
 	    DamageDestroy(pGlxPixmap->pDamage);
 	}
+#endif
 	/*
 	** The DestroyPixmap routine should decrement the refcount and free
 	** only if it's zero.
diff-tree 4abd00dab7e648dab8172f6009371e4e63d0c521 (from 5957aa6fdc580ccad4557eeefa0636ffad823f33)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Tue Jul 10 09:02:08 2007 +0200

    Make sure DRI drawables are cleaned up when client dies.
    
    The previous scheme didn't work when the client didn't create the core drawable,
    e.g. the root or composite overlay window. Use refcounting via special client
    resources to fix that.

diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index efa02f8..db564c0 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -758,9 +758,16 @@ static __DRIscreen *findScreen(__DRInati
 
 static GLboolean windowExists(__DRInativeDisplay *dpy, __DRIid draw)
 {
-    WindowPtr pWin = (WindowPtr) LookupIDByType(draw, RT_WINDOW);
-
-    return pWin == NULL ? GL_FALSE : GL_TRUE;
+    DrawablePtr pDrawable = (DrawablePtr) LookupIDByType(draw, RT_WINDOW);
+    int unused;
+    drm_clip_rect_t *pRects;
+
+    return pDrawable ? DRIGetDrawableInfo(pDrawable->pScreen, pDrawable,
+					  (unsigned*)&unused, (unsigned*)&unused,
+					  &unused, &unused, &unused, &unused,
+					  &unused, &pRects, &unused, &unused,
+					  &unused, &pRects)
+		     : GL_FALSE;
 }
 
 static GLboolean createContext(__DRInativeDisplay *dpy, int screen,
@@ -815,10 +822,8 @@ createDrawable(__DRInativeDisplay *dpy, 
 	return GL_FALSE;
 
     __glXDRIenterServer(GL_FALSE);
-    retval = DRICreateDrawable(screenInfo.screens[screen],
-			    drawable,
-			    pDrawable,
-			    hHWDrawable);
+    retval = DRICreateDrawable(screenInfo.screens[screen], __pGlxClient,
+			       pDrawable, hHWDrawable);
     __glXDRIleaveServer(GL_FALSE);
     return retval;
 }
@@ -834,9 +839,8 @@ destroyDrawable(__DRInativeDisplay *dpy,
 	return GL_FALSE;
 
     __glXDRIenterServer(GL_FALSE);
-    retval = DRIDestroyDrawable(screenInfo.screens[screen],
-			     drawable,
-			     pDrawable);
+    retval = DRIDestroyDrawable(screenInfo.screens[screen], __pGlxClient,
+				pDrawable);
     __glXDRIleaveServer(GL_FALSE);
     return retval;
 }
@@ -927,7 +931,7 @@ getDrawableInfo(__DRInativeDisplay *dpy,
       *ppBackClipRects = NULL;
     }
 
-    return GL_TRUE;
+    return retval;
 }
 
 static int
diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index c09120c..b4f3105 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -62,6 +62,11 @@ xGLXSingleReply __glXReply;
 static __GLXclientState *__glXClients[MAXCLIENTS + 1];
 
 /*
+** Client that called into GLX dispatch.
+*/
+ClientPtr __pGlxClient;
+
+/*
 ** Forward declarations.
 */
 static int __glXDispatch(ClientPtr);
@@ -549,6 +554,8 @@ static int __glXDispatch(ClientPtr clien
 	GLboolean rendering = opcode <= X_GLXRenderLarge;
 	__glXleaveServer(rendering);
 
+	__pGlxClient = client;
+
 	retval = (*proc)(cl, (GLbyte *) stuff);
 
 	__glXenterServer(rendering);
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index fa09c15..b6b5592 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -110,6 +110,8 @@ void __glXScreenInitVisuals(__GLXscreen 
 extern __GLXcontext *__glXLastContext;
 extern __GLXcontext *__glXForceCurrent(__GLXclientState*, GLXContextTag, int*);
 
+extern ClientPtr __pGlxClient;
+
 int __glXError(int error);
 
 /*
diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c
index 2a53eae..6c640d8 100644
--- a/hw/xfree86/dri/dri.c
+++ b/hw/xfree86/dri/dri.c
@@ -593,6 +593,10 @@ DRIFinishScreenInit(ScreenPtr pScreen)
 	pDRIPriv->wrap.WindowExposures  = pScreen->WindowExposures;
 	pScreen->WindowExposures        = pDRIInfo->wrap.WindowExposures;
     }
+
+    pDRIPriv->DestroyWindow             = pScreen->DestroyWindow;
+    pScreen->DestroyWindow              = DRIDestroyWindow;
+
     if (pDRIInfo->wrap.CopyWindow) {
 	pDRIPriv->wrap.CopyWindow       = pScreen->CopyWindow;
 	pScreen->CopyWindow             = pDRIInfo->wrap.CopyWindow;
@@ -642,6 +646,10 @@ DRICloseScreen(ScreenPtr pScreen)
 		pScreen->WindowExposures        = pDRIPriv->wrap.WindowExposures;
 		pDRIPriv->wrap.WindowExposures  = NULL;
 	    }
+	    if (pDRIPriv->DestroyWindow) {
+		pScreen->DestroyWindow          = pDRIPriv->DestroyWindow;
+		pDRIPriv->DestroyWindow         = NULL;
+	    }
 	    if (pDRIInfo->wrap.CopyWindow) {
 		pScreen->CopyWindow             = pDRIPriv->wrap.CopyWindow;
 		pDRIPriv->wrap.CopyWindow       = NULL;
@@ -1248,8 +1256,8 @@ DRIDecreaseNumberVisible(ScreenPtr pScre
 }
 
 Bool
-DRICreateDrawable(ScreenPtr pScreen, Drawable id,
-                  DrawablePtr pDrawable, drm_drawable_t * hHWDrawable)
+DRICreateDrawable(ScreenPtr pScreen, ClientPtr client, DrawablePtr pDrawable,
+		  drm_drawable_t * hHWDrawable)
 {
     DRIScreenPrivPtr	pDRIPriv = DRI_SCREEN_PRIV(pScreen);
     DRIDrawablePrivPtr	pDRIDrawablePriv;
@@ -1291,11 +1299,12 @@ DRICreateDrawable(ScreenPtr pScreen, Dra
 
 	    if (pDRIDrawablePriv->nrects)
 		DRIIncreaseNumberVisible(pScreen);
-
-	    /* track this in case this window is destroyed */
-	    AddResource(id, DRIDrawablePrivResType, (pointer)pWin);
 	}
 
+	/* track this in case the client dies */
+	AddResource(FakeClientID(client->index), DRIDrawablePrivResType,
+		    (pointer)pDrawable->id);
+
 	if (pDRIDrawablePriv->hwDrawable) {
 	    drmUpdateDrawableInfo(pDRIPriv->drmFD,
 				  pDRIDrawablePriv->hwDrawable,
@@ -1313,21 +1322,59 @@ DRICreateDrawable(ScreenPtr pScreen, Dra
     return TRUE;
 }
 
-Bool
-DRIDestroyDrawable(ScreenPtr pScreen, Drawable id, DrawablePtr pDrawable)
+static void
+DRIDrawablePrivDestroy(WindowPtr pWin)
 {
-    DRIDrawablePrivPtr	pDRIDrawablePriv;
-    WindowPtr		pWin;
+    DRIDrawablePrivPtr pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin);
+    ScreenPtr pScreen;
+    DRIScreenPrivPtr pDRIPriv;
 
+    if (!pDRIDrawablePriv)
+	return;
+
+    pScreen = pWin->drawable.pScreen;
+    pDRIPriv = DRI_SCREEN_PRIV(pScreen);
+
+    if (pDRIDrawablePriv->drawableIndex != -1) {
+	/* bump stamp to force outstanding 3D requests to resync */
+	pDRIPriv->pSAREA->drawableTable[pDRIDrawablePriv->drawableIndex].stamp
+	    = DRIDrawableValidationStamp++;
+
+	/* release drawable table entry */
+	pDRIPriv->DRIDrawables[pDRIDrawablePriv->drawableIndex] = NULL;
+    }
+
+    pDRIPriv->nrWindows--;
+
+    if (pDRIDrawablePriv->nrects)
+	DRIDecreaseNumberVisible(pScreen);
+
+    drmDestroyDrawable(pDRIPriv->drmFD, pDRIDrawablePriv->hwDrawable);
+
+    xfree(pDRIDrawablePriv);
+    pWin->devPrivates[DRIWindowPrivIndex].ptr = NULL;
+}
+
+static Bool
+DRIDestroyDrawableCB(pointer value, XID id, pointer data)
+{
+    if (value == data) {
+	/* This calls back DRIDrawablePrivDelete which frees private area */
+	FreeResourceByType(id, DRIDrawablePrivResType, FALSE);
+
+	return TRUE;
+    }
+
+    return FALSE;
+}
 
+Bool
+DRIDestroyDrawable(ScreenPtr pScreen, ClientPtr client, DrawablePtr pDrawable)
+{
     if (pDrawable->type == DRAWABLE_WINDOW) {
-	pWin = (WindowPtr)pDrawable;
-	pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin);
-	pDRIDrawablePriv->refCount--;
-	if (pDRIDrawablePriv->refCount <= 0) {
-	    /* This calls back DRIDrawablePrivDelete which frees private area */
-	    FreeResourceByType(id, DRIDrawablePrivResType, FALSE);
-	}
+	LookupClientResourceComplex(client, DRIDrawablePrivResType,
+				    DRIDestroyDrawableCB,
+				    (pointer)pDrawable->id);
     }
     else { /* pixmap (or for GLX 1.3, a PBuffer) */
 	/* NOT_DONE */
@@ -1340,43 +1387,26 @@ DRIDestroyDrawable(ScreenPtr pScreen, Dr
 Bool
 DRIDrawablePrivDelete(pointer pResource, XID id)
 {
-    DrawablePtr		pDrawable = (DrawablePtr)pResource;
-    DRIScreenPrivPtr	pDRIPriv = DRI_SCREEN_PRIV(pDrawable->pScreen);
-    DRIDrawablePrivPtr	pDRIDrawablePriv;
-    WindowPtr		pWin;
+    WindowPtr pWin;
 
-    if (pDrawable->type == DRAWABLE_WINDOW) {
-	pWin = (WindowPtr)pDrawable;
-	pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin);
+    id = (XID)pResource;
+    pWin = LookupIDByType(id, RT_WINDOW);
 
-	if (pDRIDrawablePriv->drawableIndex != -1) {
-	    /* bump stamp to force outstanding 3D requests to resync */
-	    pDRIPriv->pSAREA->drawableTable[pDRIDrawablePriv->drawableIndex].stamp
-		= DRIDrawableValidationStamp++;
+    if (pWin) {
+	DRIDrawablePrivPtr pDRIDrwPriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin);
 
-	    /* release drawable table entry */
-	    pDRIPriv->DRIDrawables[pDRIDrawablePriv->drawableIndex] = NULL;
-	}
-
-	if (drmDestroyDrawable(pDRIPriv->drmFD,
-			       pDRIDrawablePriv->hwDrawable)) {
+	if (!pDRIDrwPriv)
 	    return FALSE;
-	}
-
-	xfree(pDRIDrawablePriv);
-	pWin->devPrivates[DRIWindowPrivIndex].ptr = NULL;
 
-	pDRIPriv->nrWindows--;
+	if (--pDRIDrwPriv->refCount == 0)
+	    DRIDrawablePrivDestroy(pWin);
 
-	if (REGION_NUM_RECTS(&pWin->clipList))
-	    DRIDecreaseNumberVisible(pDrawable->pScreen);
+	return TRUE;
     }
     else { /* pixmap (or for GLX 1.3, a PBuffer) */
 	/* NOT_DONE */
 	return FALSE;
     }
-
-    return TRUE;
 }
 
 Bool
@@ -1884,6 +1914,31 @@ DRITreeTraversal(WindowPtr pWin, pointer
     return WT_WALKCHILDREN;
 }
 
+Bool
+DRIDestroyWindow(WindowPtr pWin)
+{
+    ScreenPtr pScreen = pWin->drawable.pScreen;
+    DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
+    Bool retval = TRUE;
+
+    DRIDrawablePrivDestroy(pWin);
+
+    /* call lower wrapped functions */
+    if(pDRIPriv->DestroyWindow) {
+	/* unwrap */
+	pScreen->DestroyWindow = pDRIPriv->DestroyWindow;
+
+	/* call lower layers */
+	retval = (*pScreen->DestroyWindow)(pWin);
+
+	/* rewrap */
+	pDRIPriv->DestroyWindow = pScreen->DestroyWindow;
+	pScreen->DestroyWindow = DRIDestroyWindow;
+    }
+
+    return retval;
+}
+
 void
 DRICopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
 {
diff --git a/hw/xfree86/dri/dri.h b/hw/xfree86/dri/dri.h
index e49bb6f..c0da700 100644
--- a/hw/xfree86/dri/dri.h
+++ b/hw/xfree86/dri/dri.h
@@ -231,12 +231,12 @@ extern Bool DRIDestroyContext(ScreenPtr 
 extern Bool DRIContextPrivDelete(pointer pResource, XID id);
 
 extern Bool DRICreateDrawable(ScreenPtr pScreen,
-                              Drawable id,
+                              ClientPtr client,
                               DrawablePtr pDrawable,
                               drm_drawable_t * hHWDrawable);
 
 extern Bool DRIDestroyDrawable(ScreenPtr pScreen, 
-                               Drawable id,
+			       ClientPtr client,
                                DrawablePtr pDrawable);
 
 extern Bool DRIDrawablePrivDelete(pointer pResource,
@@ -299,6 +299,8 @@ extern void DRIWindowExposures(WindowPtr
                               RegionPtr prgn,
                               RegionPtr bsreg);
 
+extern Bool DRIDestroyWindow(WindowPtr pWin);
+
 extern void DRICopyWindow(WindowPtr pWin,
                           DDXPointRec ptOldOrg,
                           RegionPtr prgnSrc);
diff --git a/hw/xfree86/dri/dristruct.h b/hw/xfree86/dri/dristruct.h
index a3bac85..5d981b8 100644
--- a/hw/xfree86/dri/dristruct.h
+++ b/hw/xfree86/dri/dristruct.h
@@ -99,6 +99,7 @@ typedef struct _DRIScreenPrivRec
     DrawablePtr         fullscreen; /* pointer to fullscreen drawable */
     drm_clip_rect_t  fullscreen_rect; /* fake rect for fullscreen mode */
     DRIWrappedFuncsRec	wrap;
+    DestroyWindowProcPtr DestroyWindow;
     DrawablePtr		DRIDrawables[SAREA_MAX_DRAWABLES];
     DRIContextPrivPtr   dummyCtxPriv; /* Pointer to dummy context */
     Bool		createDummyCtx;
diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c
index 9690e88..fdf0e99 100644
--- a/hw/xfree86/dri/xf86dri.c
+++ b/hw/xfree86/dri/xf86dri.c
@@ -404,10 +404,8 @@ ProcXF86DRICreateDrawable(
     if (rc != Success)
 	return rc;
 
-    if (!DRICreateDrawable( screenInfo.screens[stuff->screen],
-			    (Drawable)stuff->drawable,
-			    pDrawable,
-			    (drm_drawable_t *)&rep.hHWDrawable)) {
+    if (!DRICreateDrawable(screenInfo.screens[stuff->screen], client,
+			   pDrawable, (drm_drawable_t *)&rep.hHWDrawable)) {
 	return BadValue;
     }
 
@@ -435,9 +433,8 @@ ProcXF86DRIDestroyDrawable(
     if (rc != Success)
 	return rc;
 
-    if (!DRIDestroyDrawable( screenInfo.screens[stuff->screen], 
-			     (Drawable)stuff->drawable,
-			     pDrawable)) {
+    if (!DRIDestroyDrawable(screenInfo.screens[stuff->screen], client,
+			    pDrawable)) {
 	return BadValue;
     }
 
diff-tree 5957aa6fdc580ccad4557eeefa0636ffad823f33 (from bcb23527421578bd4c9397d4c2c19cbefa22fc59)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Jul 9 08:47:05 2007 +0200

    Fix regression from recent composite changes.
    
    One pWin->redirectDraw test was converted incorrectly, causing incorrect
    rendering in some cases.

diff --git a/composite/compwindow.c b/composite/compwindow.c
index 6633163..a4c4e6f 100644
--- a/composite/compwindow.c
+++ b/composite/compwindow.c
@@ -481,7 +481,7 @@ compReparentWindow (WindowPtr pWin, Wind
     /*
      * Reset pixmap pointers as appropriate
      */
-    if (pWin->parent && pWin->redirectDraw != RedirectDrawNone)
+    if (pWin->parent && pWin->redirectDraw == RedirectDrawNone)
 	compSetPixmap (pWin, (*pScreen->GetWindowPixmap) (pWin->parent));
     /*
      * Call down to next function
diff-tree bcb23527421578bd4c9397d4c2c19cbefa22fc59 (from 9ff7ff2fda30f334515b16ef0867c1500c41bc0f)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Thu Jul 5 15:56:25 2007 -0400

    Clean up unused #ifdefs from fb.

diff --git a/fb/fb.h b/fb/fb.h
index 1ecae47..3782fae 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -609,16 +609,6 @@ extern int	fbGetWinPrivateIndex(void);
 extern const GCOps	fbGCOps;
 extern const GCFuncs	fbGCFuncs;
 
-#ifdef TEKX11
-#define FB_OLD_GC
-#define FB_OLD_SCREEN
-#endif
-
-#ifdef FB_OLD_SCREEN
-# define FB_OLD_MISCREENINIT	/* miScreenInit requires 14 args, not 13 */
-extern WindowPtr    *WindowTable;
-#endif
-
 #ifdef FB_24_32BIT
 #define FB_SCREEN_PRIVATE
 #endif
@@ -669,15 +659,6 @@ typedef struct {
 
 /* private field of GC */
 typedef struct {
-#ifdef FB_OLD_GC
-    unsigned char       pad1;
-    unsigned char       pad2;
-    unsigned char       pad3;
-    unsigned		fExpose:1;
-    unsigned		freeCompClip:1;
-    PixmapPtr		pRotatedPixmap;
-    RegionPtr		pCompositeClip;
-#endif    
     FbBits		and, xor;	/* reduced rop values */
     FbBits		bgand, bgxor;	/* for stipples */
     FbBits		fg, bg, pm;	/* expanded and filled */
@@ -690,17 +671,10 @@ typedef struct {
 #define fbGetGCPrivate(pGC)	((FbGCPrivPtr)\
 	(pGC)->devPrivates[fbGetGCPrivateIndex()].ptr)
 
-#ifdef FB_OLD_GC
-#define fbGetCompositeClip(pGC) (fbGetGCPrivate(pGC)->pCompositeClip)
-#define fbGetExpose(pGC)	(fbGetGCPrivate(pGC)->fExpose)
-#define fbGetFreeCompClip(pGC)	(fbGetGCPrivate(pGC)->freeCompClip)
-#define fbGetRotatedPixmap(pGC)	(fbGetGCPrivate(pGC)->pRotatedPixmap)
-#else
 #define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
 #define fbGetExpose(pGC)	((pGC)->fExpose)
 #define fbGetFreeCompClip(pGC)	((pGC)->freeCompClip)
 #define fbGetRotatedPixmap(pGC)	((pGC)->pRotatedPixmap)
-#endif
 
 #define fbGetScreenPixmap(s)	((PixmapPtr) (s)->devPrivate)
 #ifdef FB_NO_WINDOW_PIXMAPS
@@ -775,12 +749,6 @@ typedef struct {
     ((pDrawable)->type == DRAWABLE_PIXMAP ? \
      TRUE : fbWindowEnabled((WindowPtr) pDrawable))
 
-#ifdef FB_OLD_SCREEN
-#define BitsPerPixel(d) (\
-    ((1 << PixmapWidthPaddingInfo[d].padBytesLog2) * 8 / \
-    (PixmapWidthPaddingInfo[d].padRoundUp+1)))
-#endif
-
 #define FbPowerOfTwo(w)	    (((w) & ((w) - 1)) == 0)
 /*
  * Accelerated tiles are power of 2 width <= FB_UNIT
@@ -1790,13 +1758,11 @@ fbQueryBestSize (int class, 
 		 unsigned short *width, unsigned short *height,
 		 ScreenPtr pScreen);
 
-#ifndef FB_OLD_SCREEN
 PixmapPtr
 _fbGetWindowPixmap (WindowPtr pWindow);
 
 void
 _fbSetWindowPixmap (WindowPtr pWindow, PixmapPtr pPixmap);
-#endif
 
 Bool
 fbSetupScreen(ScreenPtr	pScreen, 
diff --git a/fb/fballpriv.c b/fb/fballpriv.c
index 496c2d4..8efb8fa 100644
--- a/fb/fballpriv.c
+++ b/fb/fballpriv.c
@@ -47,10 +47,6 @@ int fbGetWinPrivateIndex(void)
 #endif
 int fbGeneration;
 
-#ifdef FB_OLD_SCREEN
-#define miAllocateGCPrivateIndex()  AllocateGCPrivateIndex()
-#endif
-
 Bool
 fbAllocatePrivates(ScreenPtr pScreen, int *pGCIndex)
 {
diff --git a/fb/fboverlay.c b/fb/fboverlay.c
index 1e3d756..5d7481e 100644
--- a/fb/fboverlay.c
+++ b/fb/fboverlay.c
@@ -413,11 +413,7 @@ fbOverlayFinishScreenInit(ScreenPtr	pScr
 	return FALSE;
     if (! miScreenInit(pScreen, 0, xsize, ysize, dpix, dpiy, 0,
 			depth1, ndepths, depths,
-			defaultVisual, nvisuals, visuals
-#ifdef FB_OLD_MISCREENINIT
-		       , (miBSFuncPtr) 0
-#endif
-		       ))
+			defaultVisual, nvisuals, visuals))
 	return FALSE;
     /* MI thinks there's no frame buffer */
 #ifdef MITSHM
diff --git a/fb/fbscreen.c b/fb/fbscreen.c
index 045ca8f..94033f1 100644
--- a/fb/fbscreen.c
+++ b/fb/fbscreen.c
@@ -81,7 +81,6 @@ fbQueryBestSize (int class, 
     }
 }
 
-#ifndef FB_OLD_SCREEN
 PixmapPtr
 _fbGetWindowPixmap (WindowPtr pWindow)
 {
@@ -97,7 +96,6 @@ _fbSetWindowPixmap (WindowPtr pWindow, P
     pWindow->devPrivates[fbWinPrivateIndex].ptr = (pointer) pPixmap;
 #endif
 }
-#endif
 
 Bool
 fbSetupScreen(ScreenPtr	pScreen, 
@@ -141,7 +139,6 @@ fbSetupScreen(ScreenPtr	pScreen, 
     pScreen->ResolveColor = fbResolveColor;
     pScreen->BitmapToRegion = fbPixmapToRegion;
     
-#ifndef FB_OLD_SCREEN
     pScreen->GetWindowPixmap = _fbGetWindowPixmap;
     pScreen->SetWindowPixmap = _fbSetWindowPixmap;
 
@@ -150,7 +147,6 @@ fbSetupScreen(ScreenPtr	pScreen, 
     pScreen->BackingStoreFuncs.SetClipmaskRgn = 0;
     pScreen->BackingStoreFuncs.GetImagePixmap = 0;
     pScreen->BackingStoreFuncs.GetSpansPixmap = 0;
-#endif
     
     return TRUE;
 }
@@ -247,11 +243,7 @@ fbFinishScreenInit(ScreenPtr	pScreen,
 	return FALSE;
     if (! miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width,
 			rootdepth, ndepths, depths,
-			defaultVisual, nvisuals, visuals
-#ifdef FB_OLD_MISCREENINIT
-		       , (miBSFuncPtr) 0
-#endif
-		       ))
+			defaultVisual, nvisuals, visuals))
 	return FALSE;
     /* overwrite miCloseScreen with our own */
     pScreen->CloseScreen = fbCloseScreen;
@@ -313,26 +305,3 @@ fbScreenInit(ScreenPtr	pScreen,
     return TRUE;
 }
 #endif
-
-
-#ifdef FB_OLD_SCREEN
-const miBSFuncRec fbBSFuncRec = {
-    fbSaveAreas,
-    fbRestoreAreas,
-    (void (*)(GCPtr, RegionPtr)) 0,
-    (PixmapPtr (*)(void)) 0,
-    (PixmapPtr (*)(void)) 0,
-};
-#endif
-
-#if 0
-void
-fbInitializeBackingStore (ScreenPtr pScreen)
-{
-#ifdef FB_OLD_SCREEN
-    miInitializeBackingStore (pScreen, (miBSFuncRec *) &fbBSFuncRec);
-#else
-    miInitializeBackingStore (pScreen);
-#endif
-}
-#endif
diff --git a/hw/kdrive/savage/s3curs.c b/hw/kdrive/savage/s3curs.c
index 95d4522..5928989 100644
--- a/hw/kdrive/savage/s3curs.c
+++ b/hw/kdrive/savage/s3curs.c
@@ -289,11 +289,7 @@ s3RealizeCursor (ScreenPtr pScreen, Curs
     {
 	if (pCursor)
 	{
-#ifdef FB_OLD_SCREEN
-	    short	x, y;
-#else
 	    int		x, y;
-#endif
 	    
 	    miPointerPosition (&x, &y);
 	    s3LoadCursor (pScreen, x, y);
@@ -390,11 +386,7 @@ s3CursorEnable (ScreenPtr pScreen)
     {
 	if (pCurPriv->pCursor)
 	{
-#ifdef FB_OLD_SCREEN
-	    short	x, y;
-#else
 	    int		x, y;
-#endif
 	    
 	    miPointerPosition (&x, &y);
 	    s3LoadCursor (pScreen, x, y);
diff --git a/hw/kdrive/src/kasync.c b/hw/kdrive/src/kasync.c
index 9da3406..cc75111 100644
--- a/hw/kdrive/src/kasync.c
+++ b/hw/kdrive/src/kasync.c
@@ -293,13 +293,8 @@ KdScreenInitAsync (ScreenPtr pScreen)
     pScreen->PaintWindowBorder = KdCheckPaintWindow;
     pScreen->CopyWindow = KdCheckCopyWindow;
     
-#ifndef FB_OLD_SCREEN
     pScreen->BackingStoreFuncs.SaveAreas = KdCheckSaveAreas;
     pScreen->BackingStoreFuncs.RestoreAreas = KdCheckRestoreAreas;
-#else
-    pScreenPriv->BackingStoreFuncs.SaveAreas = KdCheckSaveAreas;
-    pScreenPriv->BackingStoreFuncs.RestoreAreas = KdCheckRestoreAreas;
-#endif
 #ifdef RENDER
     KdPictureInitAsync (pScreen);
 #endif
diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c
index dfe264a..8653d72 100644
--- a/hw/kdrive/src/kdrive.c
+++ b/hw/kdrive/src/kdrive.c
@@ -95,7 +95,6 @@ extern WindowPtr *WindowTable;
 void
 KdSetRootClip (ScreenPtr pScreen, BOOL enable)
 {
-#ifndef FB_OLD_SCREEN
     WindowPtr	pWin = WindowTable[pScreen->myNum];
     WindowPtr	pChild;
     Bool	WasViewable;
@@ -222,7 +221,6 @@ KdSetRootClip (ScreenPtr pScreen, BOOL e
     }
     if (pWin->realized)
 	WindowsRestructured ();
-#endif	/* !FB_OLD_SCREEN */
 }
 
 void
@@ -1065,14 +1063,6 @@ KdScreenInit(int index, ScreenPtr pScree
     pScreen->SaveScreen		= KdSaveScreen;
     pScreen->CreateWindow	= KdCreateWindow;
 
-#ifdef FB_OLD_SCREEN
-    pScreenPriv->BackingStoreFuncs.SaveAreas = fbSaveAreas;
-    pScreenPriv->BackingStoreFuncs.RestoreAreas = fbSaveAreas;
-    pScreenPriv->BackingStoreFuncs.SetClipmaskRgn = 0;
-    pScreenPriv->BackingStoreFuncs.GetImagePixmap = 0;
-    pScreenPriv->BackingStoreFuncs.GetSpansPixmap = 0;
-#endif
-
 #if KD_MAX_FB > 1
     if (screen->fb[1].depth)
     {
@@ -1154,12 +1144,8 @@ KdScreenInit(int index, ScreenPtr pScree
     
 #if 0
     pScreen->backingStoreSupport = Always;
-#ifdef FB_OLD_SCREEN
-    miInitializeBackingStore (pScreen, &pScreenPriv->BackingStoreFuncs);
-#else
     miInitializeBackingStore (pScreen);
 #endif
-#endif
 
 
     /* 
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index 1397cf5..2ebde22 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -213,9 +213,6 @@ typedef struct {
 
     CreateScreenResourcesProcPtr    CreateScreenResources;
     CloseScreenProcPtr  CloseScreen;
-#ifdef FB_OLD_SCREEN
-    miBSFuncRec	    BackingStoreFuncs;
-#endif
 } KdPrivScreenRec, *KdPrivScreenPtr;
 
 typedef enum _kdPointerState {
diff --git a/hw/kdrive/trio/s3curs.c b/hw/kdrive/trio/s3curs.c
index 60e72c6..20afad7 100644
--- a/hw/kdrive/trio/s3curs.c
+++ b/hw/kdrive/trio/s3curs.c
@@ -277,11 +277,7 @@ s3RealizeCursor (ScreenPtr pScreen, Curs
     {
 	if (pCursor)
 	{
-#ifdef FB_OLD_SCREEN
-	    short	x, y;
-#else
 	    int		x, y;
-#endif
 	    
 	    miPointerPosition (&x, &y);
 	    s3LoadCursor (pScreen, x, y);
@@ -376,11 +372,7 @@ s3CursorEnable (ScreenPtr pScreen)
     {
 	if (pCurPriv->pCursor)
 	{
-#ifdef FB_OLD_SCREEN
-	    short	x, y;
-#else
 	    int		x, y;
-#endif
 	    
 	    miPointerPosition (&x, &y);
 	    s3LoadCursor (pScreen, x, y);
diff-tree 9ff7ff2fda30f334515b16ef0867c1500c41bc0f (from 9131d560a0d42067cc4e726e445e060216c9acdc)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Wed Jul 4 23:38:27 2007 -0700

    Fix MEMORY SMASH in XkbCopyKeymap.
    
    XkbCopyKeymap reallocates the destination keymap when it is not large enough
    to hold the source data. When reallocating the map->types data, it needs to
    zero out the new entries. The computation for where to start bzero'ing was
    accounting for the size of the data type twice, once implicitly in the
    pointer arithmetic, and once explicitly with '* sizeof (XkbKeyTypeRec)'.
    This would often lead to random memory corruption when the destination
    keymap had existing map->types data.

diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index bb6d8a0..c7f9a26 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -1003,9 +1003,8 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
                     if (!tmp)
                         return FALSE;
                     dst->map->types = tmp;
-                    bzero(dst->map->types +
-                            (dst->map->num_types * sizeof(XkbKeyTypeRec)),
-                          (src->map->num_types - dst->map->size_types) *
+                    bzero(dst->map->types + dst->map->num_types,
+                          (src->map->num_types - dst->map->num_types) *
                             sizeof(XkbKeyTypeRec));
                 }
                 else {
diff-tree 9131d560a0d42067cc4e726e445e060216c9acdc (from 41b485d5507821e41c3281c3c565647ae7582101)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Thu Jul 5 02:47:34 2007 -0300

    Postpone options variable assignment to fix segfault when we got a device but
    its driver is incorrect. Also if (!ki && !pi) can never be true.
    
    This one also adds the device option field.

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index efbf260..e3c3abc 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -2317,13 +2317,11 @@ NewInputDeviceRequest(InputOption *optio
                 pi = KdNewPointer();
                 if (!pi)
                     return BadAlloc;
-                pi->options = options;
             }
             else if (strcmp(option->value, "keyboard") == 0) {
                 ki = KdNewKeyboard();
                 if (!ki)
                     return BadAlloc;
-                ki->options = options;
             }
             else {
                 ErrorF("unrecognised device type!\n");
@@ -2332,8 +2330,19 @@ NewInputDeviceRequest(InputOption *optio
         }
     }
 
+    if (!ki && !pi) {
+        ErrorF("unrecognised device identifier!\n");
+        return BadValue;
+    }
+
     for (option = options; option; option = option->next) {
-        if (strcmp(option->key, "driver") == 0) {
+        if (strcmp(option->key, "device") == 0) {
+            if (pi && option->value)
+                pi->path = KdSaveString(option->value);
+            else if (ki && option->value)
+                ki->path = KdSaveString(option->value);
+        }
+        else if (strcmp(option->key, "driver") == 0) {
             if (pi) {
                 pi->driver = KdFindPointerDriver(option->value);
                 if (!pi->driver) {
@@ -2341,6 +2350,7 @@ NewInputDeviceRequest(InputOption *optio
                     KdFreePointer(pi);
                     return BadValue;
                 }
+                pi->options = options;
             }
             else if (ki) {
                 ki->driver = KdFindKeyboardDriver(option->value);
@@ -2349,6 +2359,7 @@ NewInputDeviceRequest(InputOption *optio
                     KdFreeKeyboard(ki);
                     return BadValue;
                 }
+                ki->options = options;
             }
         }
     }
diff-tree 41b485d5507821e41c3281c3c565647ae7582101 (from a92dc6b5295e4f352115fed2856169929819863f)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Thu Jul 5 02:40:07 2007 -0300

    kdrive must to know that devices are unplugged.

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 372ffc8..efbf260 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -2382,4 +2382,5 @@ NewInputDeviceRequest(InputOption *optio
 void
 DeleteInputDeviceRequest(DeviceIntPtr pDev)
 {
+    RemoveDevice(pDev);
 }
diff-tree a92dc6b5295e4f352115fed2856169929819863f (from 41b5155c8be75c4e171c0f64616cc09598b8ec54)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Thu Jul 5 02:28:14 2007 -0300

    Remove redundant linking in kdrive. Fix configure.ac variable name and clean
    it up a little.

diff --git a/configure.ac b/configure.ac
index 5ee9ad7..760db87 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1721,7 +1721,7 @@ _AM_DEPENDENCIES([OBJC])
 
 dnl kdrive DDX
 
-XEYPHR_LIBS=
+XEPHYR_LIBS=
 XEPHYR_INCS=
 XSDL_LIBS=
 XSDL_INCS=
@@ -1786,7 +1786,7 @@ if test "$KDRIVE" = yes; then
     # Xephyr needs nanosleep() which is in librt on Solaris
     AC_CHECK_FUNC([nanosleep], [],
         AC_CHECK_LIB([rt], [nanosleep], XEPHYR_LIBS="$XEPHYR_LIBS -lrt"))
-    XEPHYR_LIBS="$XEPHYR_LIBS $XSERVER_LIBS"
+    
     if test "x$TSLIB" = xyes; then
         PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
         if test "x$HAVE_TSLIB" = xno; then
@@ -1803,9 +1803,6 @@ if test "$KDRIVE" = yes; then
     
     KDRIVE_CFLAGS="$XSERVER_CFLAGS -DHAVE_KDRIVE_CONFIG_H $TSLIB_CFLAGS"
 
-    # dix os fb mi extension glx (NOTYET) damage shadow xpstubs
-    #KDRIVE_PURE_LIBS="$DIX_LIB $OS_LIB $FB_LIB $XEXT_LIB $MIEXT_DAMAGE_LIB \
-    #    $MIEXT_SHADOW_LIB $XPSTUBS_LIB"
     KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $OS_LIB"
     KDRIVE_LIB='$(top_builddir)/hw/kdrive/src/libkdrive.a'
     case $host_os in
diff-tree 41b5155c8be75c4e171c0f64616cc09598b8ec54 (from 16e429bcbf2f62cfc58162ab2857afb7376dda41)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Thu Jul 5 01:57:41 2007 -0300

    For each kdrive server put a dependencie on its own libraries.

diff --git a/hw/kdrive/ati/Makefile.am b/hw/kdrive/ati/Makefile.am
index d7996fc..9e1fc7f 100644
--- a/hw/kdrive/ati/Makefile.am
+++ b/hw/kdrive/ati/Makefile.am
@@ -63,7 +63,9 @@ Xati_LDADD = \
 	@KDRIVE_LIBS@			\
 	@XSERVER_LIBS@
 
-Xati_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xati_DEPENDENCIES =	\
+	libati.a 			\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/chips/Makefile.am b/hw/kdrive/chips/Makefile.am
index 4bb5713..8188a8e 100644
--- a/hw/kdrive/chips/Makefile.am
+++ b/hw/kdrive/chips/Makefile.am
@@ -25,7 +25,9 @@ Xchips_LDADD = \
 	@KDRIVE_LIBS@                           \
 	@XSERVER_LIBS@				
 
-Xchips_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xchips_DEPENDENCIES = 	\
+	libchips.a 				 \
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/ephyr/Makefile.am b/hw/kdrive/ephyr/Makefile.am
index 11fe454..cc3019f 100644
--- a/hw/kdrive/ephyr/Makefile.am
+++ b/hw/kdrive/ephyr/Makefile.am
@@ -30,7 +30,10 @@ Xephyr_LDADD = 						\
 	@KDRIVE_LIBS@					\
         @XEPHYR_LIBS@
 
-Xephyr_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xephyr_DEPENDENCIES =	\
+	libxephyr.a					\
+	libxephyr-hostx.a			        \
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/epson/Makefile.am b/hw/kdrive/epson/Makefile.am
index 0ef8e45..cd20571 100644
--- a/hw/kdrive/epson/Makefile.am
+++ b/hw/kdrive/epson/Makefile.am
@@ -25,7 +25,9 @@ Xepson_LDADD = \
 	@KDRIVE_LIBS@                          \
 	@XSERVER_LIBS@				
 
-Xepson_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xepson_DEPENDENCIES =	\
+	libepson.a 				\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/fake/Makefile.am b/hw/kdrive/fake/Makefile.am
index 69fdf59..09d179e 100644
--- a/hw/kdrive/fake/Makefile.am
+++ b/hw/kdrive/fake/Makefile.am
@@ -21,5 +21,9 @@ Xfake_LDADD = 						\
 	@KDRIVE_LIBS@					\
         @XSERVER_LIBS@
 
+Xfake_DEPENDENCIES =	\
+	libfake.a					\
+	@KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/fbdev/Makefile.am b/hw/kdrive/fbdev/Makefile.am
index f7a94e1..ea2aff3 100644
--- a/hw/kdrive/fbdev/Makefile.am
+++ b/hw/kdrive/fbdev/Makefile.am
@@ -19,7 +19,9 @@ Xfbdev_LDADD = 						\
 	@KDRIVE_LIBS@					\
 	@XSERVER_LIBS@
 
-Xfbdev_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xfbdev_DEPENDENCIES =	\
+	libfbdev.a					\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/i810/Makefile.am b/hw/kdrive/i810/Makefile.am
index b7aacd6..e3a702d 100644
--- a/hw/kdrive/i810/Makefile.am
+++ b/hw/kdrive/i810/Makefile.am
@@ -28,7 +28,9 @@ Xi810_LDADD = \
 	@KDRIVE_LIBS@                                  \
 	@XSERVER_LIBS@					
 
-Xi810_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xi810_DEPENDENCIES =	\
+	libi810.a 					\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/mach64/Makefile.am b/hw/kdrive/mach64/Makefile.am
index 1f8a3c3..5379390 100644
--- a/hw/kdrive/mach64/Makefile.am
+++ b/hw/kdrive/mach64/Makefile.am
@@ -32,7 +32,9 @@ Xmach64_LDADD = 					\
 	@KDRIVE_LIBS@					\
 	@XSERVER_LIBS@
 
-Xmach64_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xmach64_DEPENDENCIES =	\
+	libmach64.a 					\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/mga/Makefile.am b/hw/kdrive/mga/Makefile.am
index 72bd539..0598651 100644
--- a/hw/kdrive/mga/Makefile.am
+++ b/hw/kdrive/mga/Makefile.am
@@ -27,7 +27,9 @@ Xmga_LDADD = \
 	@KDRIVE_LIBS@                                  \
 	@XSERVER_LIBS@
 
-Xmga_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xmga_DEPENDENCIES =	\
+	libmga.a 					\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/neomagic/Makefile.am b/hw/kdrive/neomagic/Makefile.am
index 770ada2..4686547 100644
--- a/hw/kdrive/neomagic/Makefile.am
+++ b/hw/kdrive/neomagic/Makefile.am
@@ -39,7 +39,9 @@ Xneomagic_LDADD = \
 	@KDRIVE_LIBS@               \
 	@XSERVER_LIBS@		  
 
-Xneomagic_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xneomagic_DEPENDENCIES =	\
+	libneomagic.a               \
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/nvidia/Makefile.am b/hw/kdrive/nvidia/Makefile.am
index 3aec124..8ebfec9 100644
--- a/hw/kdrive/nvidia/Makefile.am
+++ b/hw/kdrive/nvidia/Makefile.am
@@ -28,7 +28,9 @@ Xnvidia_LDADD = \
 	@KDRIVE_LIBS@				\
 	@XSERVER_LIBS@			
 
-Xnvidia_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xnvidia_DEPENDENCIES =	\
+	libnvidia.a 				\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/pm2/Makefile.am b/hw/kdrive/pm2/Makefile.am
index 6223abb..b2b48ba 100644
--- a/hw/kdrive/pm2/Makefile.am
+++ b/hw/kdrive/pm2/Makefile.am
@@ -26,7 +26,9 @@ Xpm2_LDADD = \
 	@KDRIVE_LIBS@                          \
 	@XSERVER_LIBS@			
 
-Xpm2_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xpm2_DEPENDENCIES =	\
+	libpm2.a 				\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/r128/Makefile.am b/hw/kdrive/r128/Makefile.am
index 6b2ca85..609e0f5 100644
--- a/hw/kdrive/r128/Makefile.am
+++ b/hw/kdrive/r128/Makefile.am
@@ -25,7 +25,9 @@ Xr128_LDADD = \
 	@KDRIVE_LIBS@                          \
 	@XSERVER_LIBS@					
 
-Xr128_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xr128_DEPENDENCIES =	\
+	libr128.a 				\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/sdl/Makefile.am b/hw/kdrive/sdl/Makefile.am
index fa09640..e742499 100644
--- a/hw/kdrive/sdl/Makefile.am
+++ b/hw/kdrive/sdl/Makefile.am
@@ -12,5 +12,7 @@ Xsdl_LDADD = @KDRIVE_PURE_LIBS@				\
 	@XSERVER_LIBS@					\
 	@XSDL_LIBS@
 
+Xsdl_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/sis300/Makefile.am b/hw/kdrive/sis300/Makefile.am
index 62f3266..3e8ce90 100644
--- a/hw/kdrive/sis300/Makefile.am
+++ b/hw/kdrive/sis300/Makefile.am
@@ -39,5 +39,9 @@ Xsis_LDADD = \
 	@KDRIVE_LIBS@                          \
 	$(TSLIB_FLAG)
 
+Xsis_DEPENDENCIES =	\
+	libsis.a 			\
+	@KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/smi/Makefile.am b/hw/kdrive/smi/Makefile.am
index d6a143b..6cee316 100644
--- a/hw/kdrive/smi/Makefile.am
+++ b/hw/kdrive/smi/Makefile.am
@@ -30,7 +30,9 @@ Xsmi_LDADD = \
 	@KDRIVE_LIBS@                          \
 	@XSERVER_LIBS@					
 
-Xsmi_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xsmi_DEPENDENCIES =	\
+	libsmi.a 				\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/vesa/Makefile.am b/hw/kdrive/vesa/Makefile.am
index 934b995..d58f20f 100644
--- a/hw/kdrive/vesa/Makefile.am
+++ b/hw/kdrive/vesa/Makefile.am
@@ -24,7 +24,9 @@ Xvesa_LDADD = \
 	@KDRIVE_LIBS@				\
 	@XSERVER_LIBS@
 
-Xvesa_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xvesa_DEPENDENCIES =	\
+	libvesa.a 				\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/via/Makefile.am b/hw/kdrive/via/Makefile.am
index caf3f5f..8c8189d 100644
--- a/hw/kdrive/via/Makefile.am
+++ b/hw/kdrive/via/Makefile.am
@@ -26,7 +26,9 @@ Xvia_LDADD =						\
 	@KDRIVE_LIBS@					\
 	@XSERVER_LIBS@
 
-Xvia_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+Xvia_DEPENDENCIES =	\
+	libvia.a	\
+	@KDRIVE_LOCAL_LIBS@
 
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff-tree 16e429bcbf2f62cfc58162ab2857afb7376dda41 (from f106c04b627d9f57b38627971dc79c75129e66d6)
Author: Jonathan Lim <jlim at sgi.com>
Date:   Wed Jul 4 20:08:49 2007 +0200

    Bug 5000: Fix domain support for SGI Altix

diff --git a/hw/xfree86/os-support/bus/altixPCI.c b/hw/xfree86/os-support/bus/altixPCI.c
index 7a72ec6..bab255e 100644
--- a/hw/xfree86/os-support/bus/altixPCI.c
+++ b/hw/xfree86/os-support/bus/altixPCI.c
@@ -11,75 +11,6 @@
 #include "xf86.h"
 #include "Pci.h"
 
-/*
- * get_dev_on_bus - Return the first device we find on segnum, busnum
- *
- * Walk all the PCI devices and return the first one found on segnum, busnum.
- * There may be a better way to do this in some xf86* function I don't know
- * about.
- */
-static pciDevice *get_dev_on_bus(unsigned int segnum, unsigned int busnum)
-{
-	pciDevice **pdev = xf86scanpci(0);
-	int i;
-
-	for (i = 0; pdev[i] != NULL; i++)
-		if (PCI_DOM_FROM_TAG(pdev[i]->tag) == segnum &&
-		    pdev[i]->busnum == busnum)
-			return pdev[i];
-	/* Should never get here... */
-	ErrorF("No PCI device found on %04x:%02x??", segnum, busnum);
-	return NULL;
-}
-
-/*
- * get_bridge_info - fill in the bridge info for bus_info based on pdev
- *
- * Find the parent bus for pdev if it exists, otherwise assume pdev *is*
- * the parent bus.  We need this on Altix because our bridges are transparent.
- */
-static void get_bridge_info(pciBusInfo_t *bus_info, pciDevice *pdev)
-{
-	unsigned int parent_segnum, segnum = PCI_DOM_FROM_TAG(pdev->tag);
-	unsigned int parent_busnum, parent_nodombus, busnum = pdev->busnum;
-	unsigned int nodombus = PCI_BUS_NO_DOMAIN(PCI_BUS_FROM_TAG(pdev->tag));
-	char bridge_path[] = "/sys/class/pci_bus/0000:00/bridge";
-	char bridge_target[] = "../../../devices/pci0000:00";
-
-	/* Path to this device's bridge */
-	sprintf(bridge_path, "/sys/class/pci_bus/%04x:%02x/bridge", segnum,
-		nodombus);
-
-	if (readlink(bridge_path, bridge_target, strlen(bridge_target)) < 0) {
-		perror("failed to dereference bridge link");
- 		ErrorF("failed to dereference bridge link, aborting\n");
-		exit(-1);
-	}
-
-	sscanf(bridge_target, "../../../devices/pci%04x:%02x", &parent_segnum,
-	       &parent_nodombus);
-
-	parent_busnum = PCI_MAKE_BUS(parent_segnum, parent_nodombus);
-
-	/*
-	 * If there's no bridge or the bridge points to the device, use
-	 * pdev as the bridge
-	 */
-	if (segnum == parent_segnum && busnum == parent_busnum) {
-		bus_info->bridge = pdev;
-		bus_info->secondary = FALSE;
-		bus_info->primary_bus = busnum;
-	} else {
-		bus_info->bridge = get_dev_on_bus(parent_segnum,
-						  parent_busnum);
-		bus_info->secondary = TRUE;
-		bus_info->primary_bus = parent_busnum;
-	}
-	pdev->businfo = bus_info;
-	pdev->pci_base_class = PCI_CLASS_DISPLAY;
-	pdev->pci_sub_class = PCI_SUBCLASS_PREHISTORIC_VGA;
-}
-
 void xf86PreScanAltix(void)
 {
 	/* Nothing to see here... */
@@ -88,36 +19,65 @@ void xf86PreScanAltix(void)
 void xf86PostScanAltix(void)
 {
 	pciConfigPtr *pdev;
-	pciBusInfo_t *bus_info;
-	int prevBusNum, curBusNum, idx;
+	int idx, free_idx;
 
 	/*
-	 * Altix PCI bridges are invisible to userspace, so we make each device
-	 * look like it's its own bridge unless it actually has a parent (as in
-	 * the case of PCI to PCI bridges).
+	 * Some altix pci chipsets do not expose themselves as host
+	 * bridges.
+	 *
+	 * Walk the devices looking for buses for which there is not a
+	 * corresponding pciDevice entry (ie. pciBusInfo[]->bridge is NULL).
+	 *
+	 * It is assumed that this indicates a root bridge for which we will
+	 * construct a fake pci host bridge device.
 	 */
-	bus_info = pciBusInfo[0];
+
 	pdev = xf86scanpci(0);
-	prevBusNum = curBusNum = pdev[0]->busnum;
-	bus_info = pciBusInfo[curBusNum];
-	bus_info->bridge = pdev[0];
-	bus_info->secondary = FALSE;
-	bus_info->primary_bus = curBusNum;
-
-	/* Walk all the PCI devices, assigning their bridge info */
-	for (idx = 0; pdev[idx] != NULL; idx++) {
-		if (pdev[idx]->busnum == prevBusNum)
-			continue; /* Already fixed up this bus */
+	for (idx = 0; pdev[idx] != NULL; idx++)
+		;
 
-		curBusNum = pdev[idx]->busnum;
-		bus_info = pciBusInfo[curBusNum];
+	free_idx = idx;
+
+	for (idx = 0; idx < free_idx; idx++) {
+		pciConfigPtr dev, fakedev;
+		pciBusInfo_t *businfo;
+
+		dev = pdev[idx];
+		businfo = pciBusInfo[dev->busnum];
+
+		if (! businfo) {
+			/* device has no bus ... should this be an error? */
+			continue;
+		}
+
+		if (businfo->bridge) {
+			/* bus has a device ... no need for fixup */
+			continue;
+		}
+
+		if (free_idx >= MAX_PCI_DEVICES)
+			FatalError("SN: No room for fake root bridge device\n");
 
 		/*
-		 * Fill in bus_info for pdev.  The bridge field will either
-		 * be pdev[idx] or a device on the parent bus.
+		 * Construct a fake device and stick it at the end of the
+		 * pdev array.  Make it look like a host bridge.
 		 */
-		get_bridge_info(bus_info, pdev[idx]);
-		prevBusNum = curBusNum;
+		fakedev = xnfcalloc(1, sizeof(pciDevice));
+		fakedev->tag = PCI_MAKE_TAG(dev->busnum, 0, 0);;
+		fakedev->busnum = dev->busnum;
+		fakedev->devnum = 0;
+		fakedev->funcnum = 0;
+		fakedev->fakeDevice = 1;
+		/* should figure out a better DEVID */
+		fakedev->pci_device_vendor = DEVID(VENDOR_GENERIC, CHIP_VGA);
+		fakedev->pci_base_class = PCI_CLASS_BRIDGE;
+
+		businfo->secondary = 0;
+		businfo->primary_bus = dev->busnum;
+		businfo->bridge = fakedev;
+
+		fakedev->businfo = businfo;
+
+		pdev[free_idx++] = fakedev;
 	}
-	return;
 }
diff --git a/hw/xfree86/os-support/bus/linuxPci.c b/hw/xfree86/os-support/bus/linuxPci.c
index 3d8266e..9a9a99d 100644
--- a/hw/xfree86/os-support/bus/linuxPci.c
+++ b/hw/xfree86/os-support/bus/linuxPci.c
@@ -658,7 +658,7 @@ linuxOpenLegacy(PCITAG Tag, char *name)
 	    return fd;
 	}
 
-	pBusInfo = pciBusInfo[bus];
+	pBusInfo = pciBusInfo[PCI_BUS_FROM_TAG(Tag)];
 	if (!pBusInfo || (bridge == pBusInfo->bridge) ||
 		!(bridge = pBusInfo->bridge)) {
 	    xfree(path);
@@ -1074,7 +1074,63 @@ ia64linuxPciFindNext(void)
 	}
 
 	if (sscanf(entry->d_name, "%02x . %01x", &dev, &func) == 2) {
-	    pciDeviceTag = PCI_MAKE_TAG(PCI_MAKE_BUS(domain, bus), dev, func);
+	    CARD32 tmp;
+	    int sec_bus, pri_bus;
+	    unsigned char base_class, sub_class;
+
+	    int pciBusNum = PCI_MAKE_BUS(domain, bus);
+	    pciDeviceTag = PCI_MAKE_TAG(pciBusNum, dev, func);
+
+	    /*
+	     * Before checking for a specific devid, look for enabled
+	     * PCI to PCI bridge devices.  If one is found, create and
+	     * initialize a bus info record (if one does not already exist).
+	     */
+	    tmp = pciReadLong(pciDeviceTag, PCI_CLASS_REG);
+	    base_class = PCI_CLASS_EXTRACT(tmp);
+	    sub_class = PCI_SUBCLASS_EXTRACT(tmp);
+	    if ((base_class == PCI_CLASS_BRIDGE) &&
+		((sub_class == PCI_SUBCLASS_BRIDGE_PCI) ||
+		 (sub_class == PCI_SUBCLASS_BRIDGE_CARDBUS))) {
+		tmp = pciReadLong(pciDeviceTag, PCI_PCI_BRIDGE_BUS_REG);
+		sec_bus = PCI_SECONDARY_BUS_EXTRACT(tmp, pciDeviceTag);
+		pri_bus = PCI_PRIMARY_BUS_EXTRACT(tmp, pciDeviceTag);
+#ifdef DEBUGPCI
+		ErrorF("ia64linuxPciFindNext: pri_bus %d sec_bus %d\n",
+		       pri_bus, sec_bus);
+#endif
+		if (pciBusNum != pri_bus) {
+		    /* Some bridges do not implement the primary bus register */
+		    if ((PCI_BUS_NO_DOMAIN(pri_bus) != 0) ||
+			(sub_class != PCI_SUBCLASS_BRIDGE_CARDBUS))
+			xf86Msg(X_WARNING,
+				"ia64linuxPciFindNext:  primary bus mismatch on PCI"
+				" bridge 0x%08lx (0x%02x, 0x%02x)\n",
+				pciDeviceTag, pciBusNum, pri_bus);
+		    pri_bus = pciBusNum;
+	        }
+		if ((pri_bus < sec_bus) && (sec_bus < pciMaxBusNum) &&
+		    pciBusInfo[pri_bus]) {
+		    /*
+		     * Found a secondary PCI bus
+		     */
+		    if (!pciBusInfo[sec_bus]) {
+			pciBusInfo[sec_bus] = xnfalloc(sizeof(pciBusInfo_t));
+
+			/* Copy parents settings... */
+			*pciBusInfo[sec_bus] = *pciBusInfo[pri_bus];
+		    }
+
+		    /* ...but not everything same as parent */
+		    pciBusInfo[sec_bus]->primary_bus = pri_bus;
+		    pciBusInfo[sec_bus]->secondary = TRUE;
+		    pciBusInfo[sec_bus]->numDevices = 32;
+
+		    if (pciNumBuses <= sec_bus)
+			pciNumBuses = sec_bus + 1;
+		}
+	    }
+
 	    devid = pciReadLong(pciDeviceTag, PCI_ID_REG);
 	    if ((devid & pciDevidMask) == pciDevid)
 		/* Yes - Return it.  Otherwise, next device */
diff-tree f106c04b627d9f57b38627971dc79c75129e66d6 (from 4f88d68bdb90cc7d12170355105b4fd020acd306)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Tue Jul 3 14:47:19 2007 -0700

    Have Composite always report server version.
    
    It was reporting the lessor of the server and client versions, which doesn't
    make sense with the 0.4 semantic change in clipping.

diff --git a/composite/compext.c b/composite/compext.c
index 9cf6bfe..944f8d8 100644
--- a/composite/compext.c
+++ b/composite/compext.c
@@ -138,11 +138,7 @@ ProcCompositeQueryVersion (ClientPtr cli
 	rep.minorVersion = stuff->minorVersion;
     } else {
 	rep.majorVersion = SERVER_COMPOSITE_MAJOR;
-	if (stuff->majorVersion == SERVER_COMPOSITE_MAJOR && 
-	    stuff->minorVersion < SERVER_COMPOSITE_MINOR)
-	    rep.minorVersion = stuff->minorVersion;
-	else
-	    rep.minorVersion = SERVER_COMPOSITE_MINOR;
+        rep.minorVersion = SERVER_COMPOSITE_MINOR;
     }
     pCompositeClient->major_version = rep.majorVersion;
     pCompositeClient->minor_version = rep.minorVersion;
diff-tree 4f88d68bdb90cc7d12170355105b4fd020acd306 (from 866f092ca0160a366add01b48ad03438926c4d16)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Tue Jul 3 14:43:17 2007 -0700

    Force advertised Composite version to 0.4 instead of using header version.
    
    Installed protocol header version may be newer than the server code base.
    Use internal version number for Composite extension to make sure the server
    doesn't advertise capabilities it doesn't support.

diff --git a/composite/compext.c b/composite/compext.c
index 3a43be3..9cf6bfe 100644
--- a/composite/compext.c
+++ b/composite/compext.c
@@ -46,6 +46,9 @@
 
 #include "compint.h"
 
+#define SERVER_COMPOSITE_MAJOR	0
+#define SERVER_COMPOSITE_MINOR	4
+
 static CARD8	CompositeReqCode;
 static int	CompositeClientPrivateIndex;
 RESTYPE		CompositeClientWindowType;
@@ -130,16 +133,16 @@ ProcCompositeQueryVersion (ClientPtr cli
     rep.type = X_Reply;
     rep.length = 0;
     rep.sequenceNumber = client->sequence;
-    if (stuff->majorVersion < COMPOSITE_MAJOR) {
+    if (stuff->majorVersion < SERVER_COMPOSITE_MAJOR) {
 	rep.majorVersion = stuff->majorVersion;
 	rep.minorVersion = stuff->minorVersion;
     } else {
-	rep.majorVersion = COMPOSITE_MAJOR;
-	if (stuff->majorVersion == COMPOSITE_MAJOR && 
-	    stuff->minorVersion < COMPOSITE_MINOR)
+	rep.majorVersion = SERVER_COMPOSITE_MAJOR;
+	if (stuff->majorVersion == SERVER_COMPOSITE_MAJOR && 
+	    stuff->minorVersion < SERVER_COMPOSITE_MINOR)
 	    rep.minorVersion = stuff->minorVersion;
 	else
-	    rep.minorVersion = COMPOSITE_MINOR;
+	    rep.minorVersion = SERVER_COMPOSITE_MINOR;
     }
     pCompositeClient->major_version = rep.majorVersion;
     pCompositeClient->minor_version = rep.minorVersion;
diff-tree 866f092ca0160a366add01b48ad03438926c4d16 (from 2a75c774975b50dd4e71b7dbea7bd65ca2984a43)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Tue Jul 3 14:29:11 2007 -0700

    Make Composite manual redirect windows not clip their parent.
    
    This patch changes the semantics of manual redirect windows so that they no
    longer affect the clip list of their parent. Doing this means the parent can
    draw to the area covered by the child without using IncludeInferiors. More
    importantly, this also means that the parent receives expose events when
    that region is damaged by other actions.

diff --git a/composite/compalloc.c b/composite/compalloc.c
index 5ea015b..1a7e4a0 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -204,7 +204,7 @@ compFreeClientWindow (WindowPtr pWin, XI
 	    EnableMapUnmapEvents (pWin);
 	}
     
-	if (pWin->redirectDraw)
+	if (pWin->redirectDraw != RedirectDrawNone)
 	    compFreePixmap (pWin);
 
 	if (cw->damage)
@@ -216,7 +216,7 @@ compFreeClientWindow (WindowPtr pWin, XI
 	xfree (cw);
     }
     else if (cw->update == CompositeRedirectAutomatic &&
-	     !cw->damageRegistered && pWin->redirectDraw)
+	     !cw->damageRegistered && pWin->redirectDraw != RedirectDrawNone)
     {
 	DamageRegister (&pWin->drawable, cw->damage);
 	cw->damageRegistered = TRUE;
@@ -506,7 +506,11 @@ compAllocPixmap (WindowPtr pWin)
 
     if (!pPixmap)
 	return FALSE;
-    pWin->redirectDraw = TRUE;
+    if (cw->update == CompositeRedirectAutomatic)
+	pWin->redirectDraw = RedirectDrawAutomatic;
+    else
+	pWin->redirectDraw = RedirectDrawManual;
+
     compSetPixmap (pWin, pPixmap);
     cw->oldx = COMP_ORIGIN_INVALID;
     cw->oldy = COMP_ORIGIN_INVALID;
@@ -541,7 +545,7 @@ compFreePixmap (WindowPtr pWin)
     REGION_COPY (pScreen, &pWin->borderClip, &cw->borderClip);
     pRedirectPixmap = (*pScreen->GetWindowPixmap) (pWin);
     pParentPixmap = (*pScreen->GetWindowPixmap) (pWin->parent);
-    pWin->redirectDraw = FALSE;
+    pWin->redirectDraw = RedirectDrawNone;
     compSetPixmap (pWin, pParentPixmap);
     (*pScreen->DestroyPixmap) (pRedirectPixmap);
 }
@@ -562,7 +566,7 @@ compReallocPixmap (WindowPtr pWin, int d
     int		    pix_x, pix_y;
     int		    pix_w, pix_h;
 
-    assert (cw && pWin->redirectDraw);
+    assert (cw && pWin->redirectDraw != RedirectDrawNone);
     cw->oldx = pOld->screen_x;
     cw->oldy = pOld->screen_y;
     pix_x = draw_x - bw;
diff --git a/composite/compwindow.c b/composite/compwindow.c
index 9114fff..6633163 100644
--- a/composite/compwindow.c
+++ b/composite/compwindow.c
@@ -57,10 +57,10 @@ compCheckWindow (WindowPtr pWin, pointer
     
     if (!pWin->parent)
     {
-	assert (!pWin->redirectDraw);
+	assert (pWin->redirectDraw == RedirectDrawNone);
 	assert (pWinPixmap == pScreenPixmap);
     }
-    else if (pWin->redirectDraw)
+    else if (pWin->redirectDraw != RedirectDrawNone)
     {
 	assert (pWinPixmap != pParentPixmap);
 	assert (pWinPixmap != pScreenPixmap);
@@ -111,7 +111,7 @@ compSetPixmapVisitWindow (WindowPtr pWin
     CompPixmapVisitPtr	pVisit = (CompPixmapVisitPtr) data;
     ScreenPtr		pScreen = pWindow->drawable.pScreen;
 
-    if (pWindow != pVisit->pWindow && pWindow->redirectDraw)
+    if (pWindow != pVisit->pWindow && pWindow->redirectDraw != RedirectDrawNone)
 	return WT_DONTWALKCHILDREN;
     (*pScreen->SetWindowPixmap) (pWindow, pVisit->pPixmap);
     /*
@@ -155,7 +155,7 @@ compCheckRedirect (WindowPtr pWin)
 	}
     }	
     
-    if (should != pWin->redirectDraw)
+    if (should != (pWin->redirectDraw != RedirectDrawNone))
     {
 	if (should)
 	    return compAllocPixmap (pWin);
@@ -179,10 +179,11 @@ compPositionWindow (WindowPtr pWin, int 
     compCheckRedirect (pWin);
      */
 #ifdef COMPOSITE_DEBUG
-    if (pWin->redirectDraw != (pWin->viewable && (GetCompWindow(pWin) != NULL)))
+    if ((pWin->redirectDraw != RedirectDrawNone) !=
+	(pWin->viewable && (GetCompWindow(pWin) != NULL)))
 	abort ();
 #endif
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	PixmapPtr   pPixmap = (*pScreen->GetWindowPixmap) (pWin);
 	int	    bw = wBorderWidth (pWin);
@@ -329,7 +330,7 @@ compMoveWindow (WindowPtr pWin, int x, i
     CompScreenPtr	cs = GetCompScreen (pScreen);
 
     compCheckTree (pScreen);
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	WindowPtr		pParent;
 	int			draw_x, draw_y;
@@ -353,7 +354,7 @@ compMoveWindow (WindowPtr pWin, int x, i
     cs->MoveWindow = pScreen->MoveWindow;
     pScreen->MoveWindow = compMoveWindow;
 
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	CompWindowPtr	cw = GetCompWindow (pWin);
 	if (cw->pOldPixmap)
@@ -374,7 +375,7 @@ compResizeWindow (WindowPtr pWin, int x,
     CompScreenPtr	cs = GetCompScreen (pScreen);
 
     compCheckTree (pScreen);
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	WindowPtr		pParent;
 	int			draw_x, draw_y;
@@ -395,7 +396,7 @@ compResizeWindow (WindowPtr pWin, int x,
     (*pScreen->ResizeWindow) (pWin, x, y, w, h, pSib);
     cs->ResizeWindow = pScreen->ResizeWindow;
     pScreen->ResizeWindow = compResizeWindow;
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	CompWindowPtr	cw = GetCompWindow (pWin);
 	if (cw->pOldPixmap)
@@ -414,7 +415,7 @@ compChangeBorderWidth (WindowPtr pWin, u
     CompScreenPtr	cs = GetCompScreen (pScreen);
 
     compCheckTree (pScreen);
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	WindowPtr		pParent;
 	int			draw_x, draw_y;
@@ -436,7 +437,7 @@ compChangeBorderWidth (WindowPtr pWin, u
     (*pScreen->ChangeBorderWidth) (pWin, bw);
     cs->ChangeBorderWidth = pScreen->ChangeBorderWidth;
     pScreen->ChangeBorderWidth = compChangeBorderWidth;
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	CompWindowPtr	cw = GetCompWindow (pWin);
 	if (cw->pOldPixmap)
@@ -480,7 +481,7 @@ compReparentWindow (WindowPtr pWin, Wind
     /*
      * Reset pixmap pointers as appropriate
      */
-    if (pWin->parent && !pWin->redirectDraw)
+    if (pWin->parent && pWin->redirectDraw != RedirectDrawNone)
 	compSetPixmap (pWin, (*pScreen->GetWindowPixmap) (pWin->parent));
     /*
      * Call down to next function
@@ -499,7 +500,7 @@ compCopyWindow (WindowPtr pWin, DDXPoint
     CompScreenPtr   cs = GetCompScreen (pScreen);
     int		    dx = 0, dy = 0;
 
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	PixmapPtr	pPixmap = (*pScreen->GetWindowPixmap) (pWin);
 	CompWindowPtr	cw = GetCompWindow (pWin);
@@ -624,7 +625,7 @@ compDestroyWindow (WindowPtr pWin)
     while ((csw = GetCompSubwindows (pWin)))
 	FreeResource (csw->clients->id, RT_NONE);
     
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
 	compFreePixmap (pWin);
     ret = (*pScreen->DestroyWindow) (pWin);
     cs->DestroyWindow = pScreen->DestroyWindow;
@@ -768,7 +769,7 @@ compWindowUpdate (WindowPtr pWin)
 
     for (pChild = pWin->lastChild; pChild; pChild = pChild->prevSib)
 	compWindowUpdate (pChild);
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	CompWindowPtr	cw = GetCompWindow(pWin);
 
diff --git a/configure.ac b/configure.ac
index 06473ef..5ee9ad7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -649,7 +649,7 @@ fi
 AM_CONDITIONAL(COMPOSITE, [test "x$COMPOSITE" = xyes])
 if test "x$COMPOSITE" = xyes; then
 	AC_DEFINE(COMPOSITE, 1, [Support Composite Extension])
-	REQUIRED_MODULES="$REQUIRED_MODULES [compositeproto >= 0.3]"
+	REQUIRED_MODULES="$REQUIRED_MODULES [compositeproto >= 0.4]"
 	COMPOSITE_LIB='$(top_builddir)/composite/libcomposite.la'
 	COMPOSITE_INC='-I$(top_srcdir)/composite'
 fi
diff --git a/dix/window.c b/dix/window.c
index 96002eb..be4ea2c 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -298,7 +298,7 @@ SetWindowToDefaults(WindowPtr pWin)
     pWin->dontPropagate = 0;
     pWin->forcedBS = FALSE;
 #ifdef COMPOSITE
-    pWin->redirectDraw = 0;
+    pWin->redirectDraw = RedirectDrawNone;
 #endif
 }
 
@@ -1687,10 +1687,14 @@ _X_EXPORT void
 SetWinSize (WindowPtr pWin)
 {
 #ifdef COMPOSITE
-    if (pWin->redirectDraw)
+    if (pWin->redirectDraw != RedirectDrawNone)
     {
 	BoxRec	box;
 
+	/*
+	 * Redirected clients get clip list equal to their
+	 * own geometry, not clipped to their parent
+	 */
 	box.x1 = pWin->drawable.x;
 	box.y1 = pWin->drawable.y;
 	box.x2 = pWin->drawable.x + pWin->drawable.width;
@@ -1730,10 +1734,14 @@ SetBorderSize (WindowPtr pWin)
     if (HasBorder (pWin)) {
 	bw = wBorderWidth (pWin);
 #ifdef COMPOSITE
-	if (pWin->redirectDraw)
+	if (pWin->redirectDraw != RedirectDrawNone)
 	{
 	    BoxRec	box;
 
+	    /*
+	     * Redirected clients get clip list equal to their
+	     * own geometry, not clipped to their parent
+	     */
 	    box.x1 = pWin->drawable.x - bw;
 	    box.y1 = pWin->drawable.y - bw;
 	    box.x2 = pWin->drawable.x + pWin->drawable.width + bw;
diff --git a/include/windowstr.h b/include/windowstr.h
index 9fd6d76..6d874ae 100644
--- a/include/windowstr.h
+++ b/include/windowstr.h
@@ -94,6 +94,33 @@ typedef struct _WindowOpt {
 #define BackgroundPixel	    2L
 #define BackgroundPixmap    3L
 
+/*
+ * The redirectDraw field can have one of three values:
+ *
+ *  RedirectDrawNone
+ *	A normal window; painted into the same pixmap as the parent
+ *	and clipping parent and siblings to its geometry. These
+ *	windows get a clip list equal to the intersection of their
+ *	geometry with the parent geometry, minus the geometry
+ *	of overlapping None and Clipped siblings.
+ *  RedirectDrawAutomatic
+ *	A redirected window which clips parent and sibling drawing.
+ *	Contents for these windows are manage inside the server.
+ *	These windows get an internal clip list equal to their
+ *	geometry.
+ *  RedirectDrawManual
+ *	A redirected window which does not clip parent and sibling
+ *	drawing; the window must be represented within the parent
+ *	geometry by the client performing the redirection management.
+ *	Contents for these windows are managed outside the server.
+ *	These windows get an internal clip list equal to their
+ *	geometry.
+ */
+
+#define RedirectDrawNone	0
+#define RedirectDrawAutomatic	1
+#define RedirectDrawManual	2
+
 typedef struct _Window {
     DrawableRec		drawable;
     WindowPtr		parent;		/* ancestor chain */
@@ -130,7 +157,7 @@ typedef struct _Window {
     unsigned		dontPropagate:3;/* index into DontPropagateMasks */
     unsigned		forcedBS:1;	/* system-supplied backingStore */
 #ifdef COMPOSITE
-    unsigned		redirectDraw:1;	/* rendering is redirected from here */
+    unsigned		redirectDraw:2;	/* rendering is redirected from here */
 #endif
     DevUnion		*devPrivates;
 } WindowRec;
diff --git a/mi/mivaltree.c b/mi/mivaltree.c
index 92ea0a8..c999267 100644
--- a/mi/mivaltree.c
+++ b/mi/mivaltree.c
@@ -179,6 +179,17 @@ miRegisterRedirectBorderClipProc (SetRed
     miGetRedirectBorderClipProc = getBorderClip;
 }
 
+/*
+ * Manual redirected windows are treated as transparent; they do not obscure
+ * siblings or parent windows
+ */
+
+#ifdef COMPOSITE
+#define TreatAsTransparent(w)	((w)->redirectDraw == RedirectDrawManual)
+#else
+#define TreatAsTransparent(w)	FALSE
+#endif
+
 #define HasParentRelativeBorder(w) (!(w)->borderIsPixel && \
 				    HasBorder(w) && \
 				    (w)->backgroundState == ParentRelative)
@@ -241,7 +252,7 @@ miComputeClips (
     /*
      * In redirected drawing case, reset universe to borderSize
      */
-    if (pParent->redirectDraw)
+    if (pParent->redirectDraw != RedirectDrawNone)
     {
 	if (miSetRedirectBorderClipProc)
 	    (*miSetRedirectBorderClipProc) (pParent, universe);
@@ -432,7 +443,7 @@ miComputeClips (
 	{
 	    for (; pChild; pChild = pChild->nextSib)
 	    {
-		if (pChild->viewable)
+		if (pChild->viewable && !TreatAsTransparent(pChild))
 		    REGION_APPEND( pScreen, &childUnion, &pChild->borderSize);
 	    }
 	}
@@ -440,7 +451,7 @@ miComputeClips (
 	{
 	    for (pChild = pParent->lastChild; pChild; pChild = pChild->prevSib)
 	    {
-		if (pChild->viewable)
+		if (pChild->viewable && !TreatAsTransparent(pChild))
 		    REGION_APPEND( pScreen, &childUnion, &pChild->borderSize);
 	    }
 	}
@@ -472,7 +483,7 @@ miComputeClips (
 		 * from the current universe, thus denying its space to any
 		 * other sibling.
 		 */
-		if (overlap)
+		if (overlap && !TreatAsTransparent (pChild))
 		    REGION_SUBTRACT( pScreen, universe, universe,
 					  &pChild->borderSize);
 	    }
@@ -644,7 +655,7 @@ miValidateTree (pParent, pChild, kind)
 	
 	for (pWin = pParent->firstChild; pWin != pChild; pWin = pWin->nextSib)
 	{
-	    if (pWin->viewable)
+	    if (pWin->viewable && !TreatAsTransparent (pWin))
 		REGION_SUBTRACT (pScreen, &totalClip, &totalClip, &pWin->borderSize);
 	}
 	for (pWin = pChild; pWin; pWin = pWin->nextSib)
@@ -666,7 +677,7 @@ miValidateTree (pParent, pChild, kind)
 		{
 		    RegionPtr	pBorderClip = &pWin->borderClip;
 #ifdef COMPOSITE
-		    if (pWin->redirectDraw && miGetRedirectBorderClipProc)
+		    if (pWin->redirectDraw != RedirectDrawNone && miGetRedirectBorderClipProc)
 			pBorderClip = (*miGetRedirectBorderClipProc)(pWin);
 #endif
 		    REGION_APPEND( pScreen, &totalClip, pBorderClip );
@@ -685,7 +696,7 @@ miValidateTree (pParent, pChild, kind)
 		{
 		    RegionPtr	pBorderClip = &pWin->borderClip;
 #ifdef COMPOSITE
-		    if (pWin->redirectDraw && miGetRedirectBorderClipProc)
+		    if (pWin->redirectDraw != RedirectDrawNone && miGetRedirectBorderClipProc)
 			pBorderClip = (*miGetRedirectBorderClipProc)(pWin);
 #endif
 		    REGION_APPEND( pScreen, &totalClip, pBorderClip );
@@ -724,7 +735,7 @@ miValidateTree (pParent, pChild, kind)
 	    if (forward)
 	    {
 		for (pWin = pChild; pWin; pWin = pWin->nextSib)
-		    if (pWin->valdata && pWin->viewable)
+		    if (pWin->valdata && pWin->viewable && !TreatAsTransparent (pWin))
 			REGION_APPEND( pScreen, &childUnion,
 						   &pWin->borderSize);
 	    }
@@ -733,7 +744,7 @@ miValidateTree (pParent, pChild, kind)
 		pWin = pParent->lastChild;
 		while (1)
 		{
-		    if (pWin->valdata && pWin->viewable)
+		    if (pWin->valdata && pWin->viewable && !TreatAsTransparent (pWin))
 			REGION_APPEND( pScreen, &childUnion,
 						   &pWin->borderSize);
 		    if (pWin == pChild)
@@ -757,7 +768,7 @@ miValidateTree (pParent, pChild, kind)
 					&totalClip,
  					&pWin->borderSize);
 		miComputeClips (pWin, pScreen, &childClip, kind, &exposed);
-		if (overlap)
+		if (overlap && !TreatAsTransparent (pWin))
 		{
 		    REGION_SUBTRACT( pScreen, &totalClip,
 				       	   &totalClip,
diff-tree 2a75c774975b50dd4e71b7dbea7bd65ca2984a43 (from 0ede39a25cf5b0b6c2c89677f810c21ce42b95df)
Author: Dodji Seketeli <dodji at seketeli.org>
Date:   Tue Jul 3 11:00:29 2007 +0200

    ExaOffscreenMarkUsed: Don't crash when there's no offscreen memory.

diff --git a/exa/exa_offscreen.c b/exa/exa_offscreen.c
index 6fe646a..c666b00 100644
--- a/exa/exa_offscreen.c
+++ b/exa/exa_offscreen.c
@@ -429,7 +429,7 @@ ExaOffscreenMarkUsed (PixmapPtr pPixmap)
     ExaScreenPriv (pPixmap->drawable.pScreen);
     static int iter = 0;
 
-    if (!pExaPixmap->area)
+    if (!pExaPixmap || !pExaPixmap->area)
 	return;
 
     /* The numbers here are arbitrary.  We may want to tune these. */
diff-tree 0ede39a25cf5b0b6c2c89677f810c21ce42b95df (from 028a00bc518dc6908839e8ce7c50ab1837100945)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Tue Jul 3 10:55:13 2007 +0200

    Fix build when int10 doesn't use x86emu.

diff --git a/hw/xfree86/int10/helper_exec.c b/hw/xfree86/int10/helper_exec.c
index 6e5cff9..a41965d 100644
--- a/hw/xfree86/int10/helper_exec.c
+++ b/hw/xfree86/int10/helper_exec.c
@@ -29,7 +29,9 @@
 #define _INT10_PRIVATE
 #include "int10Defines.h"
 #include "xf86int10.h"
+#ifdef _X86EMU
 #include "x86emu/x86emui.h"
+#endif
 
 static int pciCfg1in(CARD16 addr, CARD32 *val);
 static int pciCfg1out(CARD16 addr, CARD32 val);
diff-tree 028a00bc518dc6908839e8ce7c50ab1837100945 (from 00e8295b7e0c7c0ba97707903004272818e3d87d)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Mon Jul 2 18:41:55 2007 -0400

    Make x86emu's I/O cycle tracing more useful.
    
    Print debug messages only when the appropriate debug bit is set in the
    8086 state vector, so you can focus in on the call you're actually
    interested in.

diff --git a/hw/xfree86/int10/helper_exec.c b/hw/xfree86/int10/helper_exec.c
index d80de89..6e5cff9 100644
--- a/hw/xfree86/int10/helper_exec.c
+++ b/hw/xfree86/int10/helper_exec.c
@@ -8,7 +8,7 @@
  */
 
 /*
- * To debug port accesses define PRINT_PORT.
+ * To debug port accesses define PRINT_PORT to 1.
  * Note! You also have to comment out ioperm()
  * in xf86EnableIO(). Otherwise we won't trap
  * on PIO.
@@ -18,6 +18,8 @@
 #include <xorg-config.h>
 #endif
 
+#define PRINT_PORT 0
+
 #include <unistd.h>
 
 #include <X11/Xos.h>
@@ -27,6 +29,7 @@
 #define _INT10_PRIVATE
 #include "int10Defines.h"
 #include "xf86int10.h"
+#include "x86emu/x86emui.h"
 
 static int pciCfg1in(CARD16 addr, CARD32 *val);
 static int pciCfg1out(CARD16 addr, CARD32 val);
@@ -40,6 +43,8 @@ static void SetResetBIOSVars(xf86Int10In
 
 #define REG pInt
 
+static int pci_config_cycle = 0;
+
 int
 setup_int(xf86Int10InfoPtr pInt)
 {
@@ -209,10 +214,9 @@ port_rep_inb(xf86Int10InfoPtr pInt,
 {
     register int inc = d_f ? -1 : 1;
     CARD32 dst = base;
-#ifdef PRINT_PORT
-    ErrorF(" rep_insb(%#x) %d bytes at %p %s\n",
-	     port, count, base, d_f ? "up" : "down");
-#endif
+    if (PRINT_PORT && DEBUG_IO_TRACE())
+	ErrorF(" rep_insb(%#x) %d bytes at %8.8x %s\n",
+		port, count, base, d_f ? "up" : "down");
     while (count--) {
 	MEM_WB(pInt, dst, x_inb(port));
 	dst += inc;
@@ -226,10 +230,9 @@ port_rep_inw(xf86Int10InfoPtr pInt,
 {
     register int inc = d_f ? -2 : 2;
     CARD32 dst = base;
-#ifdef PRINT_PORT
-    ErrorF(" rep_insw(%#x) %d bytes at %p %s\n",
+    if (PRINT_PORT && DEBUG_IO_TRACE())
+	ErrorF(" rep_insw(%#x) %d bytes at %8.8x %s\n",
 	     port, count, base, d_f ? "up" : "down");
-#endif
     while (count--) {
 	MEM_WW(pInt, dst, x_inw(port));
 	dst += inc;
@@ -243,10 +246,9 @@ port_rep_inl(xf86Int10InfoPtr pInt,
 {
     register int inc = d_f ? -4 : 4;
     CARD32 dst = base;
-#ifdef PRINT_PORT
-    ErrorF(" rep_insl(%#x) %d bytes at %p %s\n",
+    if (PRINT_PORT && DEBUG_IO_TRACE())
+	ErrorF(" rep_insl(%#x) %d bytes at %8.8x %s\n",
 	     port, count, base, d_f ? "up" : "down");
-#endif
     while (count--) {
 	MEM_WL(pInt, dst, x_inl(port));
 	dst += inc;
@@ -260,10 +262,9 @@ port_rep_outb(xf86Int10InfoPtr pInt,
 {
     register int inc = d_f ? -1 : 1;
     CARD32 dst = base;
-#ifdef PRINT_PORT
-    ErrorF(" rep_outb(%#x) %d bytes at %p %s\n",
+    if (PRINT_PORT && DEBUG_IO_TRACE())
+	ErrorF(" rep_outb(%#x) %d bytes at %8.8x %s\n",
 	     port, count, base, d_f ? "up" : "down");
-#endif
     while (count--) {
 	x_outb(port, MEM_RB(pInt, dst));
 	dst += inc;
@@ -277,10 +278,9 @@ port_rep_outw(xf86Int10InfoPtr pInt,
 {
     register int inc = d_f ? -2 : 2;
     CARD32 dst = base;
-#ifdef PRINT_PORT
-    ErrorF(" rep_outw(%#x) %d bytes at %p %s\n",
+    if (PRINT_PORT && DEBUG_IO_TRACE())
+	ErrorF(" rep_outw(%#x) %d bytes at %8.8x %s\n",
 	     port, count, base, d_f ? "up" : "down");
-#endif
     while (count--) {
 	x_outw(port, MEM_RW(pInt, dst));
 	dst += inc;
@@ -294,10 +294,9 @@ port_rep_outl(xf86Int10InfoPtr pInt,
 {
     register int inc = d_f ? -4 : 4;
     CARD32 dst = base;
-#ifdef PRINT_PORT
-    ErrorF(" rep_outl(%#x) %d bytes at %p %s\n",
+    if (PRINT_PORT && DEBUG_IO_TRACE())
+	ErrorF(" rep_outl(%#x) %d bytes at %8.8x %s\n",
 	     port, count, base, d_f ? "up" : "down");
-#endif
     while (count--) {
 	x_outl(port, MEM_RL(pInt, dst));
 	dst += inc;
@@ -314,9 +313,8 @@ x_inb(CARD16 port)
 	Int10Current->inb40time++;
 	val = (CARD8)(Int10Current->inb40time >>
 		      ((Int10Current->inb40time & 1) << 3));
-#ifdef PRINT_PORT
-	ErrorF(" inb(%#x) = %2.2x\n", port, val);
-#endif
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" inb(%#x) = %2.2x\n", port, val);
 #ifdef __NOT_YET__
     } else if (port < 0x0100) {		/* Don't interfere with mainboard */
 	val = 0;
@@ -327,12 +325,10 @@ x_inb(CARD16 port)
 	    stack_trace(Int10Current);
 	}
 #endif /* __NOT_YET__ */
-    } else {
-	if (!pciCfg1inb(port, &val))
-	    val = inb(Int10Current->ioBase + port);
-#ifdef PRINT_PORT
-	ErrorF(" inb(%#x) = %2.2x\n", port, val);
-#endif
+    } else if (!pciCfg1inb(port, &val)) {
+	val = inb(Int10Current->ioBase + port);
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" inb(%#x) = %2.2x\n", port, val);
     }
     return val;
 }
@@ -351,13 +347,11 @@ x_inw(CARD16 port)
 	 */
 	X_GETTIMEOFDAY(&tv);
 	val = (CARD16)(tv.tv_usec / 3);
-    } else {
-	if (!pciCfg1inw(port, &val))
-	    val = inw(Int10Current->ioBase + port);
+    } else if (!pciCfg1inw(port, &val)) {
+	val = inw(Int10Current->ioBase + port);
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" inw(%#x) = %4.4x\n", port, val);
     }
-#ifdef PRINT_PORT
-    ErrorF(" inw(%#x) = %4.4x\n", port, val);
-#endif
     return val;
 }
 
@@ -374,9 +368,8 @@ x_outb(CARD16 port, CARD8 val)
 	 */
 	X_GETTIMEOFDAY(&tv);
 	Int10Current->inb40time = (CARD16)(tv.tv_usec | 1);
-#ifdef PRINT_PORT
-	ErrorF(" outb(%#x, %2.2x)\n", port, val);
-#endif
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" outb(%#x, %2.2x)\n", port, val);
 #ifdef __NOT_YET__
     } else if (port < 0x0100) {		/* Don't interfere with mainboard */
 	xf86DrvMsgVerb(Int10Current->scrnIndex, X_NOT_IMPLEMENTED, 2,
@@ -386,24 +379,22 @@ x_outb(CARD16 port, CARD8 val)
 	    stack_trace(Int10Current);
 	}
 #endif /* __NOT_YET__ */
-    } else {
-#ifdef PRINT_PORT
-	ErrorF(" outb(%#x, %2.2x)\n", port, val);
-#endif
-	if (!pciCfg1outb(port, val))
-	    outb(Int10Current->ioBase + port, val);
+    } else if (!pciCfg1outb(port, val)) {
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" outb(%#x, %2.2x)\n", port, val);
+	outb(Int10Current->ioBase + port, val);
     }
 }
 
 void
 x_outw(CARD16 port, CARD16 val)
 {
-#ifdef PRINT_PORT
-    ErrorF(" outw(%#x, %4.4x)\n", port, val);
-#endif
 
-    if (!pciCfg1outw(port, val))
+    if (!pciCfg1outw(port, val)) {
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" outw(%#x, %4.4x)\n", port, val);
 	outw(Int10Current->ioBase + port, val);
+    }
 }
 
 CARD32
@@ -411,24 +402,22 @@ x_inl(CARD16 port)
 {
     CARD32 val;
 
-    if (!pciCfg1in(port, &val))
+    if (!pciCfg1in(port, &val)) {
 	val = inl(Int10Current->ioBase + port);
-
-#ifdef PRINT_PORT
-    ErrorF(" inl(%#x) = %8.8x\n", port, val);
-#endif
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" inl(%#x) = %8.8x\n", port, val);
+    }
     return val;
 }
 
 void
 x_outl(CARD16 port, CARD32 val)
 {
-#ifdef PRINT_PORT
-    ErrorF(" outl(%#x, %8.8x)\n", port, val);
-#endif
-
-    if (!pciCfg1out(port, val))
+    if (!pciCfg1out(port, val)) {
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" outl(%#x, %8.8x)\n", port, val);
 	outl(Int10Current->ioBase + port, val);
+    }
 }
 
 CARD8
@@ -480,6 +469,8 @@ pciCfg1in(CARD16 addr, CARD32 *val)
     }
     if (addr == 0xCFC) {
 	*val = pciReadLong(Int10Current->Tag, OFFSET(PciCfg1Addr));
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" cfg_inl(%#x) = %8.8x\n", PciCfg1Addr, *val);
 	return 1;
     }
     return 0;
@@ -493,6 +484,8 @@ pciCfg1out(CARD16 addr, CARD32 val)
 	return 1;
     }
     if (addr == 0xCFC) {
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" cfg_outl(%#x, %8.8x)\n", PciCfg1Addr, val);
 	pciWriteLong(Int10Current->Tag, OFFSET(PciCfg1Addr), val);
 	return 1;
     }
@@ -512,6 +505,8 @@ pciCfg1inw(CARD16 addr, CARD16 *val)
     if ((addr >= 0xCFC) && (addr <= 0xCFF)) {
 	offset = addr - 0xCFC;
 	*val = pciReadWord(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset);
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" cfg_inw(%#x) = %4.4x\n", PciCfg1Addr + offset, *val);
 	return 1;
     }
     return 0;
@@ -530,6 +525,8 @@ pciCfg1outw(CARD16 addr, CARD16 val)
     }
     if ((addr >= 0xCFC) && (addr <= 0xCFF)) {
 	offset = addr - 0xCFC;
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" cfg_outw(%#x, %4.4x)\n", PciCfg1Addr + offset, val);
 	pciWriteWord(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset, val);
 	return 1;
     }
@@ -549,6 +546,8 @@ pciCfg1inb(CARD16 addr, CARD8 *val)
     if ((addr >= 0xCFC) && (addr <= 0xCFF)) {
 	offset = addr - 0xCFC;
 	*val = pciReadByte(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset);
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" cfg_inb(%#x) = %2.2x\n", PciCfg1Addr + offset, *val);
 	return 1;
     }
     return 0;
@@ -567,6 +566,8 @@ pciCfg1outb(CARD16 addr, CARD8 val)
     }
     if ((addr >= 0xCFC) && (addr <= 0xCFF)) {
 	offset = addr - 0xCFC;
+	if (PRINT_PORT && DEBUG_IO_TRACE())
+	    ErrorF(" cfg_outb(%#x, %2.2x)\n", PciCfg1Addr + offset, val);
 	pciWriteByte(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset, val);
 	return 1;
     }
diff --git a/hw/xfree86/x86emu/debug.c b/hw/xfree86/x86emu/debug.c
index 6fd7f11..5eda908 100644
--- a/hw/xfree86/x86emu/debug.c
+++ b/hw/xfree86/x86emu/debug.c
@@ -38,6 +38,8 @@
 ****************************************************************************/
 
 #include "x86emu/x86emui.h"
+#include <stdio.h>
+#include <string.h>
 #ifndef NO_SYS_HEADERS
 #include <stdarg.h>
 #include <stdlib.h>
diff-tree 00e8295b7e0c7c0ba97707903004272818e3d87d (from 667e95f2e8389d9f23c50446d6d664eddd16d260)
Author: Gero Mudersbach <geroxp at web.de>
Date:   Mon Jul 2 11:40:11 2007 -0700

    Bug #10814: Add needed quirk for Samsung 225BW like the 226BW.

diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index 5a6faa2..2232992 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -92,11 +92,16 @@ static Bool quirk_prefer_large_60 (int s
 	DDC->vendor.prod_id == 44358)
 	return TRUE;
 
-    /* Samsung SyncMaster 226BW */
+    /* Bug #10814: Samsung SyncMaster 225BW */
+    if (memcmp (DDC->vendor.name, "SAM", 4) == 0 &&
+	DDC->vendor.prod_id == 596)
+	return TRUE;
+
+    /* Bug #10545: Samsung SyncMaster 226BW */
     if (memcmp (DDC->vendor.name, "SAM", 4) == 0 &&
 	DDC->vendor.prod_id == 638)
 	return TRUE;
-    
+
     return FALSE;
 }
 
diff-tree 667e95f2e8389d9f23c50446d6d664eddd16d260 (from 3de1f0d03b329b01856f664651db23ffefb58646)
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 2 11:36:11 2007 -0700

    Correct the xf86EdidModes.c file description.

diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index a9f9ddc..5a6faa2 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -22,8 +22,9 @@
  */
 
 /**
- * @file This is a copy of edid_modes.c from the X Server, for compatibility
- * with old X Servers.
+ * @file This file covers code to convert a xf86MonPtr containing EDID-probed
+ * information into a list of modes, including applying monitor-specific
+ * quirks to fix broken EDID data.
  */
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff-tree 3de1f0d03b329b01856f664651db23ffefb58646 (from 4d76075dbb618a47ff9fc15c4be2e2d34210fa8d)
Author: Eric Anholt <eric at anholt.net>
Date:   Tue May 29 10:08:58 2007 -0700

    Fix documentation of association of outputs to monitor sections in xorg.conf(5)

diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 4103974..504e0c2 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -1131,14 +1131,22 @@ monitor, monitor-specific
 .BR Options ,
 and information about the video modes to use with the monitor.
 .PP
-With RandR 1.2-enabled drivers, monitor sections are tied to specific outputs 
-of the video card.
-Each output has a name, and the server will look for a Monitor named
-.B \*qMonitor-outputname\*q
-for configuration of that output (for example, 
-.B \*qMonitor-VGA\*q
+With RandR 1.2-enabled drivers, monitor sections may be tied to specific
+outputs of the video card.  Using the name of the output defined by the video
+driver plus the identifier of a monitor section, one associates a monitor
+section with an output by adding an option to the Device section in the
+following format:
+
+.B Option \*qMonitor-outputname\*q \*qmonitorsection\*q
+
+(for example, 
+.B Option \*qMonitor-VGA\*q \*qVGA monitor\*q
 for a VGA output)
 .PP
+In the absence of specific association of monitor sections to outputs, if a
+monitor section is present the server will associate it with an output to
+preserve compatibility for previous single-head configurations.
+.PP
 Specifying video modes is optional because the server will use the DDC or other
 information provided by the monitor to automatically configure the list of
 modes available.
diff-tree 4d76075dbb618a47ff9fc15c4be2e2d34210fa8d (from 2691c05fd647d9fa10f791ac397ecb9c423a076f)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Fri Jun 29 14:06:52 2007 -0400

    Death to RCS tags.

diff --git a/GL/glx/renderpix.c b/GL/glx/renderpix.c
index cd2a78d..2fe6301 100644
--- a/GL/glx/renderpix.c
+++ b/GL/glx/renderpix.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
 ** License Applicability. Except to the extent portions of this file are
 ** made subject to an alternative license as permitted in the SGI Free
diff --git a/GL/glx/renderpixswap.c b/GL/glx/renderpixswap.c
index 0a9f60f..8455807 100644
--- a/GL/glx/renderpixswap.c
+++ b/GL/glx/renderpixswap.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
 ** License Applicability. Except to the extent portions of this file are
 ** made subject to an alternative license as permitted in the SGI Free
diff --git a/GL/glx/singlepix.c b/GL/glx/singlepix.c
index 98898aa..d6b96de 100644
--- a/GL/glx/singlepix.c
+++ b/GL/glx/singlepix.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
 ** License Applicability. Except to the extent portions of this file are
 ** made subject to an alternative license as permitted in the SGI Free
diff --git a/GL/glx/singlesize.h b/GL/glx/singlesize.h
index 5d25b24..1cce1bc 100644
--- a/GL/glx/singlesize.h
+++ b/GL/glx/singlesize.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff --git a/GL/glx/xfont.c b/GL/glx/xfont.c
index b24c77d..9629cf1 100644
--- a/GL/glx/xfont.c
+++ b/GL/glx/xfont.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
 ** License Applicability. Except to the extent portions of this file are
 ** made subject to an alternative license as permitted in the SGI Free
diff --git a/XTrap/xtrapdiswp.c b/XTrap/xtrapdiswp.c
index dc2a338..86c2403 100644
--- a/XTrap/xtrapdiswp.c
+++ b/XTrap/xtrapdiswp.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /****************************************************************************
 Copyright 1987, 1988, 1989, 1990, 1991, 1992 by 
 
diff --git a/XTrap/xtrapditbl.c b/XTrap/xtrapditbl.c
index 27cfc36..db78c26 100644
--- a/XTrap/xtrapditbl.c
+++ b/XTrap/xtrapditbl.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /****************************************************************************
 Copyright 1987, 1988, 1989, 1990, 1991 by Digital Equipment Corp., Maynard, MA
 
diff --git a/Xext/fontcache.c b/Xext/fontcache.c
index db03481..c54340b 100644
--- a/Xext/fontcache.c
+++ b/Xext/fontcache.c
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	Id: fontcache.c,v 1.12 1999/01/31 13:47:45 akiyama Exp $
  */
 
 /* THIS IS NOT AN X CONSORTIUM STANDARD */
diff --git a/Xext/panoramiX.h b/Xext/panoramiX.h
index 3ad90fa..89c7547 100644
--- a/Xext/panoramiX.h
+++ b/Xext/panoramiX.h
@@ -1,4 +1,3 @@
-/* $TOG: panoramiX.h /main/4 1998/03/17 06:51:02 kaleb $ */
 /*****************************************************************
 
 Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
diff --git a/Xext/sampleEVI.c b/Xext/sampleEVI.c
index d9c5696..7508aa7 100644
--- a/Xext/sampleEVI.c
+++ b/Xext/sampleEVI.c
@@ -20,7 +20,6 @@ DATA OR PROFITS, WHETHER IN AN ACTION OF
 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
 THE USE OR PERFORMANCE OF THIS SOFTWARE.
 ********************************************************/
-/* $XFree86$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/Xext/shmint.h b/Xext/shmint.h
index 5135d17..fc056bc 100644
--- a/Xext/shmint.h
+++ b/Xext/shmint.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/Xext/xcalibrate.c b/Xext/xcalibrate.c
index e273c53..97ef3dc 100644
--- a/Xext/xcalibrate.c
+++ b/Xext/xcalibrate.c
@@ -1,6 +1,4 @@
 /*
- * $Id: xcalibrate.c,v 3.1 2004/06/02 20:49:50 pb Exp $
- *
  * Copyright © 2003 Philip Blundell
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/Xext/xvdisp.h b/Xext/xvdisp.h
index 00af985..75cacdd 100644
--- a/Xext/xvdisp.h
+++ b/Xext/xvdisp.h
@@ -1,3 +1 @@
-/* $XFree86$ */
-
 extern void XineramifyXv(void);
diff --git a/afb/afbbres.c b/afb/afbbres.c
index e8f1b3b..dae4746 100644
--- a/afb/afbbres.c
+++ b/afb/afbbres.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /* Combined Purdue/PurduePlus patches, level 2.0, 1/17/89 */
 /***********************************************************
 
diff --git a/afb/afbbresd.c b/afb/afbbresd.c
index 4495c8c..4f07ede 100644
--- a/afb/afbbresd.c
+++ b/afb/afbbresd.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /***********************************************************
 
 Copyright (c) 1987  X Consortium
diff --git a/afb/afbbstore.c b/afb/afbbstore.c
index f7f1062..32d64ec 100644
--- a/afb/afbbstore.c
+++ b/afb/afbbstore.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /* Combined Purdue/PurduePlus patches, level 2.0, 1/17/89 */
 /*
 
diff --git a/afb/afbfont.c b/afb/afbfont.c
index 940bdb0..11a4494 100644
--- a/afb/afbfont.c
+++ b/afb/afbfont.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
 
 Copyright (c) 1987  X Consortium
diff --git a/afb/afbmisc.c b/afb/afbmisc.c
index 023c43f..8e9c9e8 100644
--- a/afb/afbmisc.c
+++ b/afb/afbmisc.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /***********************************************************
 
 Copyright (c) 1987  X Consortium
diff --git a/afb/afbpntwin.c b/afb/afbpntwin.c
index 94c96e4..6082f7c 100644
--- a/afb/afbpntwin.c
+++ b/afb/afbpntwin.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /* Combined Purdue/PurduePlus patches, level 2.0, 1/17/89 */
 /***********************************************************
 
diff --git a/cfb/cfbcppl.c b/cfb/cfbcppl.c
index 91b61a7..c13baf1 100644
--- a/cfb/cfbcppl.c
+++ b/cfb/cfbcppl.c
@@ -1,6 +1,4 @@
 /*
- * $TOG: cfb8cppl.c /main/16 1998/02/09 14:04:13 kaleb $
- *
 Copyright 1990, 1998  The Open Group
 
 Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/cfb/cfbtab.h b/cfb/cfbtab.h
index d95efd6..60d203f 100644
--- a/cfb/cfbtab.h
+++ b/cfb/cfbtab.h
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff --git a/composite/compalloc.c b/composite/compalloc.c
index ce1ef7d..5ea015b 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2006 Sun Microsystems
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/composite/compext.c b/composite/compext.c
index bea8bcf..3a43be3 100644
--- a/composite/compext.c
+++ b/composite/compext.c
@@ -1,7 +1,4 @@
 /*
- * $Id$
- *
- *
  * Copyright © 2006 Sun Microsystems
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/composite/compinit.c b/composite/compinit.c
index 27261dc..9c715aa 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2006 Sun Microsystems
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/composite/compint.h b/composite/compint.h
index 0bd55a9..2c4d5c0 100644
--- a/composite/compint.h
+++ b/composite/compint.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2006 Sun Microsystems
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/composite/compwindow.c b/composite/compwindow.c
index fed642e..9114fff 100644
--- a/composite/compwindow.c
+++ b/composite/compwindow.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2006 Sun Microsystems
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/damageext/damageext.c b/damageext/damageext.c
index 57a7bce..e1724ec 100755
--- a/damageext/damageext.c
+++ b/damageext/damageext.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/damageext/damageext.h b/damageext/damageext.h
index fb58483..642800b 100644
--- a/damageext/damageext.h
+++ b/damageext/damageext.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/damageext/damageextint.h b/damageext/damageextint.h
index 1ed07de..dfafc93 100644
--- a/damageext/damageextint.h
+++ b/damageext/damageextint.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/dbe/dbestruct.h b/dbe/dbestruct.h
index 835074c..90f1342 100644
--- a/dbe/dbestruct.h
+++ b/dbe/dbestruct.h
@@ -29,7 +29,6 @@
  *     Header file for DIX-related DBE
  *
  *****************************************************************************/
-/* $XFree86$ */
 
 #ifndef DBE_STRUCT_H
 #define DBE_STRUCT_H
diff --git a/dbe/midbe.h b/dbe/midbe.h
index 1780c3f..007f2e3 100644
--- a/dbe/midbe.h
+++ b/dbe/midbe.h
@@ -1,5 +1,4 @@
 /******************************************************************************
- * 
  * Copyright (c) 1994, 1995  Hewlett-Packard Company
  *
  * Permission is hereby granted, free of charge, to any person obtaining
@@ -29,8 +28,6 @@
  *     Header file for users of machine-independent DBE code
  *
  *****************************************************************************/
-/* $XFree86$ */
-
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/dix/main.c b/dix/main.c
index 623ce9c..7984137 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -74,8 +74,6 @@ Equipment Corporation.
 
 ******************************************************************/
 
-/* $TOG: main.c /main/86 1998/02/09 14:20:03 kaleb $ */
-
 #define NEED_EVENTS
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/dix/resource.c b/dix/resource.c
index f4bf1fc..e83c529 100644
--- a/dix/resource.c
+++ b/dix/resource.c
@@ -101,8 +101,6 @@ Equipment Corporation.
  * of the copyright holder.
  */
 
-/* $TOG: resource.c /main/41 1998/02/09 14:20:31 kaleb $ */
-
 /*	Routines to manage various kinds of resources:
  *
  *	CreateNewResourceType, CreateNewResourceClass, InitClientResources,
diff --git a/dix/xpstubs.c b/dix/xpstubs.c
index 3276d9d..59340ad 100644
--- a/dix/xpstubs.c
+++ b/dix/xpstubs.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
 Copyright 1996, 1998  The Open Group
 
diff --git a/fb/fb24_32.h b/fb/fb24_32.h
index 3c83f34..7c9819e 100644
--- a/fb/fb24_32.h
+++ b/fb/fb24_32.h
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fballpriv.c b/fb/fballpriv.c
index 4f807ed..496c2d4 100644
--- a/fb/fballpriv.c
+++ b/fb/fballpriv.c
@@ -1,6 +1,4 @@
 /*
- * Id: fballpriv.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbarc.c b/fb/fbarc.c
index d2c1a76..3f46bd4 100644
--- a/fb/fbarc.c
+++ b/fb/fbarc.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbarc.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbbits.c b/fb/fbbits.c
index cefe943..8083743 100644
--- a/fb/fbbits.c
+++ b/fb/fbbits.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbbits.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbbits.h b/fb/fbbits.h
index 603c029..44991f1 100644
--- a/fb/fbbits.h
+++ b/fb/fbbits.h
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbblt.c b/fb/fbblt.c
index e18981a..837c3a2 100644
--- a/fb/fbblt.c
+++ b/fb/fbblt.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbblt.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbbltone.c b/fb/fbbltone.c
index d2c180f..ffe6977 100644
--- a/fb/fbbltone.c
+++ b/fb/fbbltone.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbbltone.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbbstore.c b/fb/fbbstore.c
index 78174b6..3ee5f5e 100644
--- a/fb/fbbstore.c
+++ b/fb/fbbstore.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbbstore.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbcopy.c b/fb/fbcopy.c
index 84053e7..3ad01bf 100644
--- a/fb/fbcopy.c
+++ b/fb/fbcopy.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbcopy.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbfill.c b/fb/fbfill.c
index 4957bed..831b1ce 100644
--- a/fb/fbfill.c
+++ b/fb/fbfill.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbfill.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbfillrect.c b/fb/fbfillrect.c
index f404044..4e4edb3 100644
--- a/fb/fbfillrect.c
+++ b/fb/fbfillrect.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbfillrect.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbfillsp.c b/fb/fbfillsp.c
index 77e4772..5d21472 100644
--- a/fb/fbfillsp.c
+++ b/fb/fbfillsp.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbfillsp.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbgc.c b/fb/fbgc.c
index 3f8bf25..fda391b 100644
--- a/fb/fbgc.c
+++ b/fb/fbgc.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbgc.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbgetsp.c b/fb/fbgetsp.c
index ffd8a1d..6402c6c 100644
--- a/fb/fbgetsp.c
+++ b/fb/fbgetsp.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbgetsp.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbimage.c b/fb/fbimage.c
index 06a3c84..2b9ac27 100644
--- a/fb/fbimage.c
+++ b/fb/fbimage.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbimage.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbline.c b/fb/fbline.c
index 8e99dd9..2cee123 100644
--- a/fb/fbline.c
+++ b/fb/fbline.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbpixmap.c b/fb/fbpixmap.c
index 18c1204..88f693e 100644
--- a/fb/fbpixmap.c
+++ b/fb/fbpixmap.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbpixmap.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbpoint.c b/fb/fbpoint.c
index c03ea18..c0ea8ba 100644
--- a/fb/fbpoint.c
+++ b/fb/fbpoint.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbpoint.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbpush.c b/fb/fbpush.c
index bb7bcef..891572f 100644
--- a/fb/fbpush.c
+++ b/fb/fbpush.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbpush.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbrop.h b/fb/fbrop.h
index f3768a2..1685ee8 100644
--- a/fb/fbrop.h
+++ b/fb/fbrop.h
@@ -1,6 +1,4 @@
 /*
- * Id: fbrop.h,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbseg.c b/fb/fbseg.c
index 3107637..80ce740 100644
--- a/fb/fbseg.c
+++ b/fb/fbseg.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbseg.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbsetsp.c b/fb/fbsetsp.c
index 0633256..227ba4c 100644
--- a/fb/fbsetsp.c
+++ b/fb/fbsetsp.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbsetsp.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbsolid.c b/fb/fbsolid.c
index 6b5ed0f..53fcae0 100644
--- a/fb/fbsolid.c
+++ b/fb/fbsolid.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbstipple.c b/fb/fbstipple.c
index de8d1f8..7d13263 100644
--- a/fb/fbstipple.c
+++ b/fb/fbstipple.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbstipple.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbtile.c b/fb/fbtile.c
index a9ffa97..05a27a1 100644
--- a/fb/fbtile.c
+++ b/fb/fbtile.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbtile.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbtrap.c b/fb/fbtrap.c
index 8313068..e70336c 100644
--- a/fb/fbtrap.c
+++ b/fb/fbtrap.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbutil.c b/fb/fbutil.c
index 4be0f23..5e23297 100644
--- a/fb/fbutil.c
+++ b/fb/fbutil.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbutil.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/fb/fbwindow.c b/fb/fbwindow.c
index fc036d3..144f083 100644
--- a/fb/fbwindow.c
+++ b/fb/fbwindow.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbwindow.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
- *
  * Copyright © 1998 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/darwin/apple/X11Application.h b/hw/darwin/apple/X11Application.h
index b9d2af8..6b1d726 100644
--- a/hw/darwin/apple/X11Application.h
+++ b/hw/darwin/apple/X11Application.h
@@ -1,5 +1,4 @@
 /* X11Application.h -- subclass of NSApplication to multiplex events
-   $Id: X11Application.h,v 1.26 2003/08/08 19:16:13 jharper Exp $
 
    Copyright (c) 2002-2007 Apple Inc. All rights reserved.
 
diff --git a/hw/darwin/apple/X11Controller.h b/hw/darwin/apple/X11Controller.h
index 954d0ab..8d17fd9 100644
--- a/hw/darwin/apple/X11Controller.h
+++ b/hw/darwin/apple/X11Controller.h
@@ -1,5 +1,4 @@
 /* X11Controller.h -- connect the IB ui
-   $Id: X11Controller.h,v 1.21 2003/07/24 17:52:29 jharper Exp $
 
    Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
 
diff --git a/hw/darwin/apple/bundle-main.c b/hw/darwin/apple/bundle-main.c
index a35e1e3..ec7820d 100644
--- a/hw/darwin/apple/bundle-main.c
+++ b/hw/darwin/apple/bundle-main.c
@@ -1,5 +1,4 @@
 /* bundle-main.c -- X server launcher
- $Id: bundle-main.c,v 1.17 2003/09/11 00:17:10 jharper Exp $
  
  Copyright (c) 2002-2007 Apple Inc. All rights reserved.
  
diff --git a/hw/darwin/quartz/XApplication.h b/hw/darwin/quartz/XApplication.h
index a2622e0..2f2b223 100644
--- a/hw/darwin/quartz/XApplication.h
+++ b/hw/darwin/quartz/XApplication.h
@@ -30,7 +30,6 @@
  * sale, use or other dealings in this Software without prior written
  * authorization.
  */
-/* $XFree86: $ */
 
 #import <Cocoa/Cocoa.h>
 
diff --git a/hw/darwin/quartz/cr/cr.h b/hw/darwin/quartz/cr/cr.h
index 94133e4..d6779ae 100644
--- a/hw/darwin/quartz/cr/cr.h
+++ b/hw/darwin/quartz/cr/cr.h
@@ -26,7 +26,6 @@
  * holders shall not be used in advertising or otherwise to promote the sale,
  * use or other dealings in this Software without prior written authorization.
  */
-/* $XFree86$ */
 
 #ifndef _CR_H
 #define _CR_H
diff --git a/hw/darwin/quartz/keysym2ucs.c b/hw/darwin/quartz/keysym2ucs.c
index 98b8b6f..3be59df 100644
--- a/hw/darwin/quartz/keysym2ucs.c
+++ b/hw/darwin/quartz/keysym2ucs.c
@@ -1,5 +1,4 @@
-/* $XFree86: $
- *
+/*
  * This module converts keysym values into the corresponding ISO 10646
  * (UCS, Unicode) values.
  *
diff --git a/hw/darwin/quartz/keysym2ucs.h b/hw/darwin/quartz/keysym2ucs.h
index c7ff6f3..f5b7a18 100644
--- a/hw/darwin/quartz/keysym2ucs.h
+++ b/hw/darwin/quartz/keysym2ucs.h
@@ -1,5 +1,4 @@
-/* $XFree86: $
- *
+/*
  * This module converts keysym values into the corresponding ISO 10646
  * (UCS, Unicode) values.
  *
diff --git a/hw/darwin/quartz/quartzKeyboard.c b/hw/darwin/quartz/quartzKeyboard.c
index bd2cc25..bdd5416 100644
--- a/hw/darwin/quartz/quartzKeyboard.c
+++ b/hw/darwin/quartz/quartzKeyboard.c
@@ -1,6 +1,5 @@
 /*
    quartzKeyboard.c
-   $Id$
 
    Code to build a keymap using the Carbon Keyboard Layout API,
    which is supported on Mac OS X 10.2 and newer.
diff --git a/hw/darwin/quartz/xpr/Xplugin.h b/hw/darwin/quartz/xpr/Xplugin.h
index fb6842c..a10b1b8 100644
--- a/hw/darwin/quartz/xpr/Xplugin.h
+++ b/hw/darwin/quartz/xpr/Xplugin.h
@@ -1,5 +1,4 @@
 /* Xplugin.h -- windowing API for rootless X11 server
-   $Id$
 
    Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
 
diff --git a/hw/darwin/quartz/xpr/appledri.h b/hw/darwin/quartz/xpr/appledri.h
index 9c63037..c4e43be 100644
--- a/hw/darwin/quartz/xpr/appledri.h
+++ b/hw/darwin/quartz/xpr/appledri.h
@@ -1,4 +1,3 @@
-/* $XFree86: xc/lib/GL/dri/xf86dri.h,v 1.7 2000/12/07 20:26:02 dawes Exp $ */
 /**************************************************************************
 
 Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
diff --git a/hw/darwin/quartz/xpr/appledristr.h b/hw/darwin/quartz/xpr/appledristr.h
index 36a2e89..8649fd3 100644
--- a/hw/darwin/quartz/xpr/appledristr.h
+++ b/hw/darwin/quartz/xpr/appledristr.h
@@ -1,4 +1,3 @@
-/* $XFree86: xc/lib/GL/dri/xf86dristr.h,v 1.9 2001/03/21 16:01:08 dawes Exp $ */
 /**************************************************************************
 
 Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
diff --git a/hw/darwin/quartz/xpr/x-hash.c b/hw/darwin/quartz/xpr/x-hash.c
index 40e530f..6bbeacf 100644
--- a/hw/darwin/quartz/xpr/x-hash.c
+++ b/hw/darwin/quartz/xpr/x-hash.c
@@ -1,5 +1,4 @@
 /* x-hash.c - basic hash tables
-   $Id$
 
    Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
 
diff --git a/hw/darwin/quartz/xpr/x-hash.h b/hw/darwin/quartz/xpr/x-hash.h
index 5d4f7f9..3456dbe 100644
--- a/hw/darwin/quartz/xpr/x-hash.h
+++ b/hw/darwin/quartz/xpr/x-hash.h
@@ -1,5 +1,4 @@
 /* x-hash.h -- basic hash table class
-   $Id$
 
    Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
 
diff --git a/hw/darwin/quartz/xpr/x-hook.c b/hw/darwin/quartz/xpr/x-hook.c
index 7a04967..42915db 100644
--- a/hw/darwin/quartz/xpr/x-hook.c
+++ b/hw/darwin/quartz/xpr/x-hook.c
@@ -1,5 +1,4 @@
 /* x-hook.c
-   $Id$
 
    Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
 
@@ -27,7 +26,6 @@
    copyright holders shall not be used in advertising or otherwise to
    promote the sale, use or other dealings in this Software without
    prior written authorization. */
-/* $XFree86: $ */
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/darwin/quartz/xpr/x-hook.h b/hw/darwin/quartz/xpr/x-hook.h
index 0b5e038..392352d 100644
--- a/hw/darwin/quartz/xpr/x-hook.h
+++ b/hw/darwin/quartz/xpr/x-hook.h
@@ -1,5 +1,4 @@
 /* x-hook.h -- lists of function,data pairs to call.
-   $Id$
 
    Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
 
@@ -27,7 +26,6 @@
    copyright holders shall not be used in advertising or otherwise to
    promote the sale, use or other dealings in this Software without
    prior written authorization. */
-/* $XFree86: $ */
 
 #ifndef X_HOOK_H
 #define X_HOOK_H 1
diff --git a/hw/darwin/quartz/xpr/x-list.c b/hw/darwin/quartz/xpr/x-list.c
index a973e03..a5f835d 100644
--- a/hw/darwin/quartz/xpr/x-list.c
+++ b/hw/darwin/quartz/xpr/x-list.c
@@ -1,5 +1,4 @@
 /* x-list.c
-   $Id$
 
    Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
 
diff --git a/hw/darwin/quartz/xpr/x-list.h b/hw/darwin/quartz/xpr/x-list.h
index bd55a53..04af024 100644
--- a/hw/darwin/quartz/xpr/x-list.h
+++ b/hw/darwin/quartz/xpr/x-list.h
@@ -1,5 +1,4 @@
 /* x-list.h -- simple list type
-   $Id$
 
    Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
 
diff --git a/hw/dmx/config/Canvas.c b/hw/dmx/config/Canvas.c
index 4dccd73..c2eba87 100644
--- a/hw/dmx/config/Canvas.c
+++ b/hw/dmx/config/Canvas.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 1987, 1998  The Open Group
  *
diff --git a/hw/dmx/config/Canvas.h b/hw/dmx/config/Canvas.h
index a36851a..fe9a57f 100644
--- a/hw/dmx/config/Canvas.h
+++ b/hw/dmx/config/Canvas.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
 
 Copyright 1987, 1998  The Open Group
diff --git a/hw/dmx/config/CanvasP.h b/hw/dmx/config/CanvasP.h
index 98f95b9..cf43710 100644
--- a/hw/dmx/config/CanvasP.h
+++ b/hw/dmx/config/CanvasP.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
 
 Copyright 1987, 1998  The Open Group
diff --git a/hw/dmx/config/dmxcompat.c b/hw/dmx/config/dmxcompat.c
index 3681e8a..b4190ff 100644
--- a/hw/dmx/config/dmxcompat.c
+++ b/hw/dmx/config/dmxcompat.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/dmxcompat.h b/hw/dmx/config/dmxcompat.h
index 416ec78..7188920 100644
--- a/hw/dmx/config/dmxcompat.h
+++ b/hw/dmx/config/dmxcompat.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/dmxconfig.c b/hw/dmx/config/dmxconfig.c
index 353ce11..225d892 100644
--- a/hw/dmx/config/dmxconfig.c
+++ b/hw/dmx/config/dmxconfig.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/dmxconfig.h b/hw/dmx/config/dmxconfig.h
index b5c0c1f..7c9dbc7 100644
--- a/hw/dmx/config/dmxconfig.h
+++ b/hw/dmx/config/dmxconfig.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/dmxparse.c b/hw/dmx/config/dmxparse.c
index 1acb6d1..0bf9470 100644
--- a/hw/dmx/config/dmxparse.c
+++ b/hw/dmx/config/dmxparse.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/dmxparse.h b/hw/dmx/config/dmxparse.h
index 8ea84f4..de81d23 100644
--- a/hw/dmx/config/dmxparse.h
+++ b/hw/dmx/config/dmxparse.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/dmxprint.c b/hw/dmx/config/dmxprint.c
index ed3fc21..599ebf5 100644
--- a/hw/dmx/config/dmxprint.c
+++ b/hw/dmx/config/dmxprint.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/dmxprint.h b/hw/dmx/config/dmxprint.h
index b68c296..d162dea 100644
--- a/hw/dmx/config/dmxprint.h
+++ b/hw/dmx/config/dmxprint.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/dmxtodmx.c b/hw/dmx/config/dmxtodmx.c
index 706c499..0d4ee4c 100644
--- a/hw/dmx/config/dmxtodmx.c
+++ b/hw/dmx/config/dmxtodmx.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/vdltodmx.c b/hw/dmx/config/vdltodmx.c
index 33cd8fe..69563f1 100644
--- a/hw/dmx/config/vdltodmx.c
+++ b/hw/dmx/config/vdltodmx.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/config/xdmxconfig.c b/hw/dmx/config/xdmxconfig.c
index 9a350a8..033b525 100644
--- a/hw/dmx/config/xdmxconfig.c
+++ b/hw/dmx/config/xdmxconfig.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
@@ -60,7 +59,7 @@
 extern int                 yyparse(void);
 extern FILE                *yyin;
 
-#define DMX_INFO "xdmxconfig v0.9\nCopyright 2002 Red Hat Inc.\n$Id$"
+#define DMX_INFO "xdmxconfig v0.9\nCopyright 2002 Red Hat Inc.\n"
 
 #define DMX_MAIN_WIDTH    800
 #define DMX_MAIN_HEIGHT   600
diff --git a/hw/dmx/dmx.c b/hw/dmx/dmx.c
index b7c81ee..24d1620 100644
--- a/hw/dmx/dmx.c
+++ b/hw/dmx/dmx.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmx.h b/hw/dmx/dmx.h
index becb2da..37f42a7 100644
--- a/hw/dmx/dmx.h
+++ b/hw/dmx/dmx.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxcb.c b/hw/dmx/dmxcb.c
index b1f47bd..2ecfe22 100644
--- a/hw/dmx/dmxcb.c
+++ b/hw/dmx/dmxcb.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxcb.h b/hw/dmx/dmxcb.h
index 38ffa56..fa334db 100644
--- a/hw/dmx/dmxcb.h
+++ b/hw/dmx/dmxcb.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxclient.h b/hw/dmx/dmxclient.h
index 657a127..8f018d1 100644
--- a/hw/dmx/dmxclient.h
+++ b/hw/dmx/dmxclient.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright (c) 1995  X Consortium
  * Copyright 2004 Red Hat Inc., Durham, North Carolina.
diff --git a/hw/dmx/dmxcmap.c b/hw/dmx/dmxcmap.c
index 9a9781f..949d7d6 100644
--- a/hw/dmx/dmxcmap.c
+++ b/hw/dmx/dmxcmap.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxcmap.h b/hw/dmx/dmxcmap.h
index 09039e7..228f866 100644
--- a/hw/dmx/dmxcmap.h
+++ b/hw/dmx/dmxcmap.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxcursor.c b/hw/dmx/dmxcursor.c
index a7d9378..1ad199d 100644
--- a/hw/dmx/dmxcursor.c
+++ b/hw/dmx/dmxcursor.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxcursor.h b/hw/dmx/dmxcursor.h
index af076bd..7b70c62 100644
--- a/hw/dmx/dmxcursor.h
+++ b/hw/dmx/dmxcursor.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxdpms.c b/hw/dmx/dmxdpms.c
index 5bcce18..5c176df 100644
--- a/hw/dmx/dmxdpms.c
+++ b/hw/dmx/dmxdpms.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxdpms.h b/hw/dmx/dmxdpms.h
index d3fa57d..e3eee98 100644
--- a/hw/dmx/dmxdpms.h
+++ b/hw/dmx/dmxdpms.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxextension.c b/hw/dmx/dmxextension.c
index c12973b..1033644 100644
--- a/hw/dmx/dmxextension.c
+++ b/hw/dmx/dmxextension.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxextension.h b/hw/dmx/dmxextension.h
index 3ea0b83..342d8c5 100644
--- a/hw/dmx/dmxextension.h
+++ b/hw/dmx/dmxextension.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxfont.c b/hw/dmx/dmxfont.c
index 3dba61d..500b568 100644
--- a/hw/dmx/dmxfont.c
+++ b/hw/dmx/dmxfont.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxfont.h b/hw/dmx/dmxfont.h
index f69aac1..086e71b 100644
--- a/hw/dmx/dmxfont.h
+++ b/hw/dmx/dmxfont.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxgc.c b/hw/dmx/dmxgc.c
index d17b051..981f64d 100644
--- a/hw/dmx/dmxgc.c
+++ b/hw/dmx/dmxgc.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxgc.h b/hw/dmx/dmxgc.h
index 5f54d7d..3d49f67 100644
--- a/hw/dmx/dmxgc.h
+++ b/hw/dmx/dmxgc.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxgcops.c b/hw/dmx/dmxgcops.c
index 75d9dfb..eaabf16 100644
--- a/hw/dmx/dmxgcops.c
+++ b/hw/dmx/dmxgcops.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxgcops.h b/hw/dmx/dmxgcops.h
index 0754c44..da14d4d 100644
--- a/hw/dmx/dmxgcops.h
+++ b/hw/dmx/dmxgcops.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c
index 1d3689c..29dc005 100644
--- a/hw/dmx/dmxinit.c
+++ b/hw/dmx/dmxinit.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxinit.h b/hw/dmx/dmxinit.h
index e5bdb99..7d166fd 100644
--- a/hw/dmx/dmxinit.h
+++ b/hw/dmx/dmxinit.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2004 Red Hat Inc., Raleigh, North Carolina.
  *
diff --git a/hw/dmx/dmxinput.c b/hw/dmx/dmxinput.c
index f47899c..d644b5d 100644
--- a/hw/dmx/dmxinput.c
+++ b/hw/dmx/dmxinput.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxinput.h b/hw/dmx/dmxinput.h
index 3fb5870..8a3ccdc 100644
--- a/hw/dmx/dmxinput.h
+++ b/hw/dmx/dmxinput.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxlog.c b/hw/dmx/dmxlog.c
index 16d082d..31a74cd 100644
--- a/hw/dmx/dmxlog.c
+++ b/hw/dmx/dmxlog.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxlog.h b/hw/dmx/dmxlog.h
index 6b9ec60..8a5f725 100644
--- a/hw/dmx/dmxlog.h
+++ b/hw/dmx/dmxlog.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxpict.c b/hw/dmx/dmxpict.c
index 0f1782e..478542a 100644
--- a/hw/dmx/dmxpict.c
+++ b/hw/dmx/dmxpict.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxpict.h b/hw/dmx/dmxpict.h
index fe2a659..c178ef3 100644
--- a/hw/dmx/dmxpict.h
+++ b/hw/dmx/dmxpict.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxpixmap.c b/hw/dmx/dmxpixmap.c
index 9340606..40d2d8e 100644
--- a/hw/dmx/dmxpixmap.c
+++ b/hw/dmx/dmxpixmap.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxpixmap.h b/hw/dmx/dmxpixmap.h
index 908d2cb..4ecd10f 100644
--- a/hw/dmx/dmxpixmap.h
+++ b/hw/dmx/dmxpixmap.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxprop.c b/hw/dmx/dmxprop.c
index 8d9e22a..376313d 100644
--- a/hw/dmx/dmxprop.c
+++ b/hw/dmx/dmxprop.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxprop.h b/hw/dmx/dmxprop.h
index f0c5afb..50135cd 100644
--- a/hw/dmx/dmxprop.h
+++ b/hw/dmx/dmxprop.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002,2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxscrinit.c b/hw/dmx/dmxscrinit.c
index 7c315d8..8ae448a 100644
--- a/hw/dmx/dmxscrinit.c
+++ b/hw/dmx/dmxscrinit.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxscrinit.h b/hw/dmx/dmxscrinit.h
index 91be094..46a0a00 100644
--- a/hw/dmx/dmxscrinit.h
+++ b/hw/dmx/dmxscrinit.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxshadow.c b/hw/dmx/dmxshadow.c
index 8d1e147..461fd08 100644
--- a/hw/dmx/dmxshadow.c
+++ b/hw/dmx/dmxshadow.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxshadow.h b/hw/dmx/dmxshadow.h
index 4ba084c..cafe879 100644
--- a/hw/dmx/dmxshadow.h
+++ b/hw/dmx/dmxshadow.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxstat.c b/hw/dmx/dmxstat.c
index 3b092b2..a89c69e 100644
--- a/hw/dmx/dmxstat.c
+++ b/hw/dmx/dmxstat.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002, 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxstat.h b/hw/dmx/dmxstat.h
index 5411272..04c88d3 100644
--- a/hw/dmx/dmxstat.h
+++ b/hw/dmx/dmxstat.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxsync.c b/hw/dmx/dmxsync.c
index 02e2446..c1aa431 100644
--- a/hw/dmx/dmxsync.c
+++ b/hw/dmx/dmxsync.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxsync.h b/hw/dmx/dmxsync.h
index 85fd36c..b80f54a 100644
--- a/hw/dmx/dmxsync.h
+++ b/hw/dmx/dmxsync.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxvisual.c b/hw/dmx/dmxvisual.c
index 23ff0ac..7b8771f 100644
--- a/hw/dmx/dmxvisual.c
+++ b/hw/dmx/dmxvisual.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxvisual.h b/hw/dmx/dmxvisual.h
index 8701bf0..bcb54cd 100644
--- a/hw/dmx/dmxvisual.h
+++ b/hw/dmx/dmxvisual.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxwindow.c b/hw/dmx/dmxwindow.c
index 25456e2..b66f2a3 100644
--- a/hw/dmx/dmxwindow.c
+++ b/hw/dmx/dmxwindow.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/dmxwindow.h b/hw/dmx/dmxwindow.h
index e6302fe..f976c79 100644
--- a/hw/dmx/dmxwindow.h
+++ b/hw/dmx/dmxwindow.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/dmxaddinput.c b/hw/dmx/examples/dmxaddinput.c
index c391385..dcfd4f5 100644
--- a/hw/dmx/examples/dmxaddinput.c
+++ b/hw/dmx/examples/dmxaddinput.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003,2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/dmxaddscreen.c b/hw/dmx/examples/dmxaddscreen.c
index 5fa008c..8e60872 100644
--- a/hw/dmx/examples/dmxaddscreen.c
+++ b/hw/dmx/examples/dmxaddscreen.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/dmxreconfig.c b/hw/dmx/examples/dmxreconfig.c
index efcead8..042f8a1 100644
--- a/hw/dmx/examples/dmxreconfig.c
+++ b/hw/dmx/examples/dmxreconfig.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/dmxresize.c b/hw/dmx/examples/dmxresize.c
index f6fadf7..caed91d 100644
--- a/hw/dmx/examples/dmxresize.c
+++ b/hw/dmx/examples/dmxresize.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/dmxrminput.c b/hw/dmx/examples/dmxrminput.c
index 3860cc9..ef62cab 100644
--- a/hw/dmx/examples/dmxrminput.c
+++ b/hw/dmx/examples/dmxrminput.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003,2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/dmxrmscreen.c b/hw/dmx/examples/dmxrmscreen.c
index ab3653d..fecf0f6 100644
--- a/hw/dmx/examples/dmxrmscreen.c
+++ b/hw/dmx/examples/dmxrmscreen.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/dmxwininfo.c b/hw/dmx/examples/dmxwininfo.c
index bbf7f74..6cf1d41 100644
--- a/hw/dmx/examples/dmxwininfo.c
+++ b/hw/dmx/examples/dmxwininfo.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright (c) 2003 by the XFree86 Project, Inc.
  *
diff --git a/hw/dmx/examples/ev.c b/hw/dmx/examples/ev.c
index 04c47eb..1091226 100644
--- a/hw/dmx/examples/ev.c
+++ b/hw/dmx/examples/ev.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/evi.c b/hw/dmx/examples/evi.c
index 14af95d..644ea8f 100644
--- a/hw/dmx/examples/evi.c
+++ b/hw/dmx/examples/evi.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/res.c b/hw/dmx/examples/res.c
index 3af5541..901a195 100644
--- a/hw/dmx/examples/res.c
+++ b/hw/dmx/examples/res.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/xbell.c b/hw/dmx/examples/xbell.c
index 4d55740..f3e3be1 100644
--- a/hw/dmx/examples/xbell.c
+++ b/hw/dmx/examples/xbell.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/xdmx.c b/hw/dmx/examples/xdmx.c
index 3fec7dd..dedce6e 100644
--- a/hw/dmx/examples/xdmx.c
+++ b/hw/dmx/examples/xdmx.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/xinput.c b/hw/dmx/examples/xinput.c
index c2b9bc0..74353a9 100644
--- a/hw/dmx/examples/xinput.c
+++ b/hw/dmx/examples/xinput.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/xled.c b/hw/dmx/examples/xled.c
index cb4bcb1..270f805 100644
--- a/hw/dmx/examples/xled.c
+++ b/hw/dmx/examples/xled.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/examples/xtest.c b/hw/dmx/examples/xtest.c
index b6f223d..1e2d1cf 100644
--- a/hw/dmx/examples/xtest.c
+++ b/hw/dmx/examples/xtest.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/glxProxy/glxswap.c b/hw/dmx/glxProxy/glxswap.c
index f7fcc37..8fa04f8 100644
--- a/hw/dmx/glxProxy/glxswap.c
+++ b/hw/dmx/glxProxy/glxswap.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Raleigh, North Carolina.
  *
diff --git a/hw/dmx/glxProxy/glxswap.h b/hw/dmx/glxProxy/glxswap.h
index 95c4333..08e38df 100644
--- a/hw/dmx/glxProxy/glxswap.h
+++ b/hw/dmx/glxProxy/glxswap.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Raleigh, North Carolina.
  *
diff --git a/hw/dmx/input/ChkNotMaskEv.c b/hw/dmx/input/ChkNotMaskEv.c
index 220e1de..fdc67a8 100644
--- a/hw/dmx/input/ChkNotMaskEv.c
+++ b/hw/dmx/input/ChkNotMaskEv.c
@@ -1,4 +1,3 @@
-/* Derived from Xorg: ChkMaskEv.c,v 1.4 2001/02/09 02:03:31 xorgcvs Exp */
 /*
  * Copyright 1985, 1987, 1998  The Open Group
  *
diff --git a/hw/dmx/input/ChkNotMaskEv.h b/hw/dmx/input/ChkNotMaskEv.h
index 777d3a2..f79075e 100644
--- a/hw/dmx/input/ChkNotMaskEv.h
+++ b/hw/dmx/input/ChkNotMaskEv.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxarg.c b/hw/dmx/input/dmxarg.c
index 8708fa0..49a1da9 100644
--- a/hw/dmx/input/dmxarg.c
+++ b/hw/dmx/input/dmxarg.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxarg.h b/hw/dmx/input/dmxarg.h
index b377aca..ca76f92 100644
--- a/hw/dmx/input/dmxarg.h
+++ b/hw/dmx/input/dmxarg.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxbackend.c b/hw/dmx/input/dmxbackend.c
index 7aa8510..b179109 100644
--- a/hw/dmx/input/dmxbackend.c
+++ b/hw/dmx/input/dmxbackend.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxbackend.h b/hw/dmx/input/dmxbackend.h
index 64a65f4..ee78f00 100644
--- a/hw/dmx/input/dmxbackend.h
+++ b/hw/dmx/input/dmxbackend.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxcommon.c b/hw/dmx/input/dmxcommon.c
index 1dcc1e9..e77bb79 100644
--- a/hw/dmx/input/dmxcommon.c
+++ b/hw/dmx/input/dmxcommon.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxcommon.h b/hw/dmx/input/dmxcommon.h
index 4b8b07d..1cc935d 100644
--- a/hw/dmx/input/dmxcommon.h
+++ b/hw/dmx/input/dmxcommon.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002,2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxconsole.c b/hw/dmx/input/dmxconsole.c
index aac5e08..cc820a2 100644
--- a/hw/dmx/input/dmxconsole.c
+++ b/hw/dmx/input/dmxconsole.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxconsole.h b/hw/dmx/input/dmxconsole.h
index 85516fb..cd545d3 100644
--- a/hw/dmx/input/dmxconsole.h
+++ b/hw/dmx/input/dmxconsole.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxdetach.c b/hw/dmx/input/dmxdetach.c
index d2e6b65..cc22506 100644
--- a/hw/dmx/input/dmxdetach.c
+++ b/hw/dmx/input/dmxdetach.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2004 Red Hat Inc., Raleigh, North Carolina.
  *
diff --git a/hw/dmx/input/dmxdummy.c b/hw/dmx/input/dmxdummy.c
index b9c72b0..2afe258 100644
--- a/hw/dmx/input/dmxdummy.c
+++ b/hw/dmx/input/dmxdummy.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxdummy.h b/hw/dmx/input/dmxdummy.h
index 1f20a38..e3a85be 100644
--- a/hw/dmx/input/dmxdummy.h
+++ b/hw/dmx/input/dmxdummy.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxeq.c b/hw/dmx/input/dmxeq.c
index a2fb07f..3e98fb7 100644
--- a/hw/dmx/input/dmxeq.c
+++ b/hw/dmx/input/dmxeq.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  *
  * Copyright 1990, 1998  The Open Group
diff --git a/hw/dmx/input/dmxeq.h b/hw/dmx/input/dmxeq.h
index 64d15f7..b38c519 100644
--- a/hw/dmx/input/dmxeq.h
+++ b/hw/dmx/input/dmxeq.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxevents.c b/hw/dmx/input/dmxevents.c
index 4810b17..26dc067 100644
--- a/hw/dmx/input/dmxevents.c
+++ b/hw/dmx/input/dmxevents.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxevents.h b/hw/dmx/input/dmxevents.h
index f8d29d4..fe8712e 100644
--- a/hw/dmx/input/dmxevents.h
+++ b/hw/dmx/input/dmxevents.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxinputinit.c b/hw/dmx/input/dmxinputinit.c
index a9d902e..fd4eeaa 100644
--- a/hw/dmx/input/dmxinputinit.c
+++ b/hw/dmx/input/dmxinputinit.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxinputinit.h b/hw/dmx/input/dmxinputinit.h
index c593e26..6f491ed 100644
--- a/hw/dmx/input/dmxinputinit.h
+++ b/hw/dmx/input/dmxinputinit.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxmap.c b/hw/dmx/input/dmxmap.c
index cf1be58..1eccd3d 100644
--- a/hw/dmx/input/dmxmap.c
+++ b/hw/dmx/input/dmxmap.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxmap.h b/hw/dmx/input/dmxmap.h
index 6629556..aad30d1 100644
--- a/hw/dmx/input/dmxmap.h
+++ b/hw/dmx/input/dmxmap.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxmotion.c b/hw/dmx/input/dmxmotion.c
index 7b47c45..cc55eed 100644
--- a/hw/dmx/input/dmxmotion.c
+++ b/hw/dmx/input/dmxmotion.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxmotion.h b/hw/dmx/input/dmxmotion.h
index 2928f5f..88aeb3d 100644
--- a/hw/dmx/input/dmxmotion.h
+++ b/hw/dmx/input/dmxmotion.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxsigio.c b/hw/dmx/input/dmxsigio.c
index 840b566..03c3070 100644
--- a/hw/dmx/input/dmxsigio.c
+++ b/hw/dmx/input/dmxsigio.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxsigio.h b/hw/dmx/input/dmxsigio.h
index 869dd6b..83f8060 100644
--- a/hw/dmx/input/dmxsigio.h
+++ b/hw/dmx/input/dmxsigio.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/dmxxinput.c b/hw/dmx/input/dmxxinput.c
index ad2a77c..97bea75 100644
--- a/hw/dmx/input/dmxxinput.c
+++ b/hw/dmx/input/dmxxinput.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/lnx-keyboard.c b/hw/dmx/input/lnx-keyboard.c
index b09492b..42a807b 100644
--- a/hw/dmx/input/lnx-keyboard.c
+++ b/hw/dmx/input/lnx-keyboard.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /* Portions of this file were derived from the following files:
  *
  **********************************************************************
diff --git a/hw/dmx/input/lnx-keyboard.h b/hw/dmx/input/lnx-keyboard.h
index 8f71290..e36a504 100644
--- a/hw/dmx/input/lnx-keyboard.h
+++ b/hw/dmx/input/lnx-keyboard.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/lnx-ms.c b/hw/dmx/input/lnx-ms.c
index 6df4e80..b3692a0 100644
--- a/hw/dmx/input/lnx-ms.c
+++ b/hw/dmx/input/lnx-ms.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /* Portions of this file were derived from the following files:
  *
  **********************************************************************
diff --git a/hw/dmx/input/lnx-ms.h b/hw/dmx/input/lnx-ms.h
index bc74443..9042fc2 100644
--- a/hw/dmx/input/lnx-ms.h
+++ b/hw/dmx/input/lnx-ms.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/lnx-ps2.c b/hw/dmx/input/lnx-ps2.c
index 0c5b870..8b906df 100644
--- a/hw/dmx/input/lnx-ps2.c
+++ b/hw/dmx/input/lnx-ps2.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /* Portions of this file were derived from the following files:
  *
  **********************************************************************
diff --git a/hw/dmx/input/lnx-ps2.h b/hw/dmx/input/lnx-ps2.h
index e3d751e..5772e03 100644
--- a/hw/dmx/input/lnx-ps2.h
+++ b/hw/dmx/input/lnx-ps2.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/usb-common.c b/hw/dmx/input/usb-common.c
index a6fe7ad..70695d0 100644
--- a/hw/dmx/input/usb-common.c
+++ b/hw/dmx/input/usb-common.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/usb-common.h b/hw/dmx/input/usb-common.h
index 7683129..5ebfd1e 100644
--- a/hw/dmx/input/usb-common.h
+++ b/hw/dmx/input/usb-common.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/usb-keyboard.c b/hw/dmx/input/usb-keyboard.c
index 4b94396..efec270 100644
--- a/hw/dmx/input/usb-keyboard.c
+++ b/hw/dmx/input/usb-keyboard.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /* Portions of this file were derived from the following files:
  *
  **********************************************************************
diff --git a/hw/dmx/input/usb-keyboard.h b/hw/dmx/input/usb-keyboard.h
index 5a4768a..1f9614e 100644
--- a/hw/dmx/input/usb-keyboard.h
+++ b/hw/dmx/input/usb-keyboard.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/usb-mouse.c b/hw/dmx/input/usb-mouse.c
index eb1a3d1..efa9d00 100644
--- a/hw/dmx/input/usb-mouse.c
+++ b/hw/dmx/input/usb-mouse.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/usb-mouse.h b/hw/dmx/input/usb-mouse.h
index 2439013..918bf64 100644
--- a/hw/dmx/input/usb-mouse.h
+++ b/hw/dmx/input/usb-mouse.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/usb-other.c b/hw/dmx/input/usb-other.c
index 9bb2842..d1074b8 100644
--- a/hw/dmx/input/usb-other.c
+++ b/hw/dmx/input/usb-other.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/usb-other.h b/hw/dmx/input/usb-other.h
index b2279fd..b69e659 100644
--- a/hw/dmx/input/usb-other.h
+++ b/hw/dmx/input/usb-other.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/dmx/input/usb-private.h b/hw/dmx/input/usb-private.h
index eae9c8b..c70668c 100644
--- a/hw/dmx/input/usb-private.h
+++ b/hw/dmx/input/usb-private.h
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2002 Red Hat Inc., Durham, North Carolina.
  *
diff --git a/hw/kdrive/ati/ati.c b/hw/kdrive/ati/ati.c
index 5b4e80f..c4f67e1 100644
--- a/hw/kdrive/ati/ati.c
+++ b/hw/kdrive/ati/ati.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/ati/ati.h b/hw/kdrive/ati/ati.h
index 188d0b0..3ff3e3f 100644
--- a/hw/kdrive/ati/ati.h
+++ b/hw/kdrive/ati/ati.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef _ATI_H_
 #define _ATI_H_
diff --git a/hw/kdrive/ati/ati_cursor.c b/hw/kdrive/ati/ati_cursor.c
index e8c7117..d2ce686 100644
--- a/hw/kdrive/ati/ati_cursor.c
+++ b/hw/kdrive/ati/ati_cursor.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/ati/ati_dma.c b/hw/kdrive/ati/ati_dma.c
index 2caabdb..b97d79b 100644
--- a/hw/kdrive/ati/ati_dma.c
+++ b/hw/kdrive/ati/ati_dma.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #include <sys/time.h>
 
diff --git a/hw/kdrive/ati/ati_dma.h b/hw/kdrive/ati/ati_dma.h
index ad2f3e1..4c2092b 100644
--- a/hw/kdrive/ati/ati_dma.h
+++ b/hw/kdrive/ati/ati_dma.h
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef _ATI_DMA_H_
 #define _ATI_DMA_H_
diff --git a/hw/kdrive/ati/ati_draw.c b/hw/kdrive/ati/ati_draw.c
index f71dac5..c10fea4 100644
--- a/hw/kdrive/ati/ati_draw.c
+++ b/hw/kdrive/ati/ati_draw.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/ati/ati_draw.h b/hw/kdrive/ati/ati_draw.h
index addaa0e..98a130a 100644
--- a/hw/kdrive/ati/ati_draw.h
+++ b/hw/kdrive/ati/ati_draw.h
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef _ATI_DRAW_H_
 #define _ATI_DRAW_H_
diff --git a/hw/kdrive/ati/ati_drawtmp.h b/hw/kdrive/ati/ati_drawtmp.h
index a005722..82c99ac 100644
--- a/hw/kdrive/ati/ati_drawtmp.h
+++ b/hw/kdrive/ati/ati_drawtmp.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef USE_DMA
 #define TAG(x)		x##DMA
diff --git a/hw/kdrive/ati/ati_dri.c b/hw/kdrive/ati/ati_dri.c
index f2830e1..edef720 100644
--- a/hw/kdrive/ati/ati_dri.c
+++ b/hw/kdrive/ati/ati_dri.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #include <sys/time.h>
 
diff --git a/hw/kdrive/ati/ati_dri.h b/hw/kdrive/ati/ati_dri.h
index 2e2b950..985f7eb 100644
--- a/hw/kdrive/ati/ati_dri.h
+++ b/hw/kdrive/ati/ati_dri.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef _ATI_DRI_H_
 #define _ATI_DRI_H_
diff --git a/hw/kdrive/ati/ati_reg.h b/hw/kdrive/ati/ati_reg.h
index 32291d8..3089cba 100644
--- a/hw/kdrive/ati/ati_reg.h
+++ b/hw/kdrive/ati/ati_reg.h
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 /* Many of the Radeon and Rage 128 registers are the same.
  * ATI_ should denote registers and values that are common for R128 and Radeon.
diff --git a/hw/kdrive/ati/ati_sarea.h b/hw/kdrive/ati/ati_sarea.h
index 67da24a..2f04c7b 100644
--- a/hw/kdrive/ati/ati_sarea.h
+++ b/hw/kdrive/ati/ati_sarea.h
@@ -1,7 +1,4 @@
-
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef _ATI_SAREA_H_
 #define _ATI_SAREA_H_
diff --git a/hw/kdrive/ati/ati_stub.c b/hw/kdrive/ati/ati_stub.c
index d0bc4ca..3669fd7 100644
--- a/hw/kdrive/ati/ati_stub.c
+++ b/hw/kdrive/ati/ati_stub.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/ati/ati_video.c b/hw/kdrive/ati/ati_video.c
index 173fb64..ca0ab46 100644
--- a/hw/kdrive/ati/ati_video.c
+++ b/hw/kdrive/ati/ati_video.c
@@ -22,7 +22,6 @@
  *
  * Based on mach64video.c by Keith Packard.
  */
-/* $RCSId$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/ati/r128_blendtmp.h b/hw/kdrive/ati/r128_blendtmp.h
index d31cdb3..b663eac 100644
--- a/hw/kdrive/ati/r128_blendtmp.h
+++ b/hw/kdrive/ati/r128_blendtmp.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt, Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef USE_DMA
 #define TAG(x)		x##DMA
diff --git a/hw/kdrive/ati/r128_composite.c b/hw/kdrive/ati/r128_composite.c
index 46d4edb..0d18ebf 100644
--- a/hw/kdrive/ati/r128_composite.c
+++ b/hw/kdrive/ati/r128_composite.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #include "ati.h"
 #include "ati_reg.h"
diff --git a/hw/kdrive/ati/radeon_composite.c b/hw/kdrive/ati/radeon_composite.c
index 18ada4f..ddad343 100644
--- a/hw/kdrive/ati/radeon_composite.c
+++ b/hw/kdrive/ati/radeon_composite.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/chips/chips.c b/hw/kdrive/chips/chips.c
index 10bd24c..b419863 100644
--- a/hw/kdrive/chips/chips.c
+++ b/hw/kdrive/chips/chips.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/trident.c,v 1.18 2001/06/04 09:45:42 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/chips/chips.h b/hw/kdrive/chips/chips.h
index f7b9784..6ad17fe 100644
--- a/hw/kdrive/chips/chips.h
+++ b/hw/kdrive/chips/chips.h
@@ -1,6 +1,4 @@
 /*
- * Id: chips.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/chips/chips.h,v 1.9 2000/11/29 08:42:25 keithp Exp $ */
 
 #ifndef _CHIPS_H_
 #define _CHIPS_H_
diff --git a/hw/kdrive/chips/chipsdraw.c b/hw/kdrive/chips/chipsdraw.c
index 7b1b560..b1c35f9 100644
--- a/hw/kdrive/chips/chipsdraw.c
+++ b/hw/kdrive/chips/chipsdraw.c
@@ -1,6 +1,4 @@
 /*
- * Id: tridentdraw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c,v 1.10 2001/06/03 18:48:19 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/chips/chipsstub.c b/hw/kdrive/chips/chipsstub.c
index 7fec1c7..9024a7d 100644
--- a/hw/kdrive/chips/chipsstub.c
+++ b/hw/kdrive/chips/chipsstub.c
@@ -1,6 +1,4 @@
 /*
- * Id: chipsstub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/chips/chipsstub.c,v 1.1 2001/09/05 07:12:42 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/epson/epson13806.c b/hw/kdrive/epson/epson13806.c
index 43a9b58..cb00890 100644
--- a/hw/kdrive/epson/epson13806.c
+++ b/hw/kdrive/epson/epson13806.c
@@ -1,4 +1,3 @@
-/* $Header$ */
 /*
  * Copyright 2004 by Costas Stylianou <costas.stylianou at psion.com> +44(0)7850 394095
  *
diff --git a/hw/kdrive/epson/epson13806.h b/hw/kdrive/epson/epson13806.h
index b80fe19..b28d7c0 100644
--- a/hw/kdrive/epson/epson13806.h
+++ b/hw/kdrive/epson/epson13806.h
@@ -1,4 +1,3 @@
-/* $Header$ */
 /*
  * Copyright 2004 by Costas Stylianou <costas.stylianou at psion.com> +44(0)7850 394095
  *
diff --git a/hw/kdrive/epson/epson13806draw.c b/hw/kdrive/epson/epson13806draw.c
index e16e0d6..3222353 100644
--- a/hw/kdrive/epson/epson13806draw.c
+++ b/hw/kdrive/epson/epson13806draw.c
@@ -1,4 +1,3 @@
-/* $Header$ */
 /*
  * Copyright 2004 by Costas Stylianou <costas.stylianou at psion.com> +44(0)7850 394095
  *
diff --git a/hw/kdrive/epson/epson13806draw.h b/hw/kdrive/epson/epson13806draw.h
index ff1264d..b5f1bf5 100644
--- a/hw/kdrive/epson/epson13806draw.h
+++ b/hw/kdrive/epson/epson13806draw.h
@@ -1,4 +1,3 @@
-/* $Header$ */
 /*
  * Copyright 2004 by Costas Stylianou <costas.stylianou at psion.com> +44(0)7850 394095
  *
diff --git a/hw/kdrive/epson/epson13806reg.h b/hw/kdrive/epson/epson13806reg.h
index 6156382..ee745a0 100644
--- a/hw/kdrive/epson/epson13806reg.h
+++ b/hw/kdrive/epson/epson13806reg.h
@@ -1,4 +1,3 @@
-/* $Header$ */
 /*
  * Copyright 2004 by Costas Stylianou <costas.stylianou at psion.com> +44(0)7850 394095
  *
diff --git a/hw/kdrive/epson/epson13806stub.c b/hw/kdrive/epson/epson13806stub.c
index 7981782..087a30f 100644
--- a/hw/kdrive/epson/epson13806stub.c
+++ b/hw/kdrive/epson/epson13806stub.c
@@ -1,4 +1,3 @@
-/* $Header$ */
 /*
  * Copyright 2004 by Costas Stylianou <costas.stylianou at psion.com> +44(0)7850 394095
  *
diff --git a/hw/kdrive/fake/fake.c b/hw/kdrive/fake/fake.c
index ca515f9..6211ab8 100644
--- a/hw/kdrive/fake/fake.c
+++ b/hw/kdrive/fake/fake.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/fake/fake.h b/hw/kdrive/fake/fake.h
index f7c8c34..88d2096 100644
--- a/hw/kdrive/fake/fake.h
+++ b/hw/kdrive/fake/fake.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/fake/fakeinit.c b/hw/kdrive/fake/fakeinit.c
index dd88bc5..2cfcbed 100644
--- a/hw/kdrive/fake/fakeinit.c
+++ b/hw/kdrive/fake/fakeinit.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/fake/kbd.c b/hw/kdrive/fake/kbd.c
index db224c9..83c1b3b 100644
--- a/hw/kdrive/fake/kbd.c
+++ b/hw/kdrive/fake/kbd.c
@@ -1,6 +1,4 @@
 /*
- * Id: kbd.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/fake/kbd.c,v 1.1 1999/11/19 13:53:53 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/fake/mouse.c b/hw/kdrive/fake/mouse.c
index beb6ff5..4b8d2b0 100644
--- a/hw/kdrive/fake/mouse.c
+++ b/hw/kdrive/fake/mouse.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/fake/os.c b/hw/kdrive/fake/os.c
index 32cb139..76cd9e7 100644
--- a/hw/kdrive/fake/os.c
+++ b/hw/kdrive/fake/os.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/fbdev/fbdev.c b/hw/kdrive/fbdev/fbdev.c
index 598d0ce..6e8b3ff 100644
--- a/hw/kdrive/fbdev/fbdev.c
+++ b/hw/kdrive/fbdev/fbdev.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbdev.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.31 2002/10/14 18:01:40 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/fbdev/fbdev.h b/hw/kdrive/fbdev/fbdev.h
index b7951db..9e322da 100644
--- a/hw/kdrive/fbdev/fbdev.h
+++ b/hw/kdrive/fbdev/fbdev.h
@@ -1,6 +1,4 @@
 /*
- * Id: fbdev.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h,v 1.11 2001/06/03 21:52:45 keithp Exp $ */
 
 #ifndef _FBDEV_H_
 #define _FBDEV_H_
diff --git a/hw/kdrive/fbdev/fbinit.c b/hw/kdrive/fbdev/fbinit.c
index 3b78c97..5e1c88b 100644
--- a/hw/kdrive/fbdev/fbinit.c
+++ b/hw/kdrive/fbdev/fbinit.c
@@ -1,6 +1,4 @@
 /*
- * Id: fbinit.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c,v 1.8 2001/05/29 17:47:55 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/i810/i810.c b/hw/kdrive/i810/i810.c
index d2318d7..49090f9 100644
--- a/hw/kdrive/i810/i810.c
+++ b/hw/kdrive/i810/i810.c
@@ -31,9 +31,6 @@ of the copyright holder.
 
 X Window System is a trademark of The Open Group */
 
-
-/* $RCSId: xc/programs/Xserver/hw/kdrive/i810/i810.c,v 1.1 2001/03/30 02:18:41 keithp Exp $ */
-
 /*
  * i810.c - KDrive driver for the i810 chipset
  *
diff --git a/hw/kdrive/i810/i810.h b/hw/kdrive/i810/i810.h
index e0f6f81..8fc2d56 100644
--- a/hw/kdrive/i810/i810.h
+++ b/hw/kdrive/i810/i810.h
@@ -31,8 +31,6 @@ of the copyright holder.
 
 X Window System is a trademark of The Open Group */
 
-/* $RCSId: $ */
-
 /*
  * Author:
  *   Pontus Lidman <pontus.lidman at nokia.com>
diff --git a/hw/kdrive/i810/i810_cursor.c b/hw/kdrive/i810/i810_cursor.c
index cf4f717..434fc40 100644
--- a/hw/kdrive/i810/i810_cursor.c
+++ b/hw/kdrive/i810/i810_cursor.c
@@ -58,10 +58,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
 
 **************************************************************************/
 
-
-
-/* $RCSId: xc/programs/Xserver/hw/kdrive/i810/i810_cursor.c,v 1.2 2001/12/10 16:34:20 keithp Exp $ */
-
 /* i810_cursor.c: KDrive hardware cursor routines for the i810 chipset */
 
 /*
diff --git a/hw/kdrive/i810/i810_reg.h b/hw/kdrive/i810/i810_reg.h
index e6648a1..d9f4c8f 100644
--- a/hw/kdrive/i810/i810_reg.h
+++ b/hw/kdrive/i810/i810_reg.h
@@ -57,7 +57,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF 
 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 **************************************************************************/
-/* $RCSId: xc/programs/Xserver/hw/kdrive/i810/i810_reg.h,v 1.1 2001/03/30 02:18:41 keithp Exp $ */
 
 /*
  * Authors:
diff --git a/hw/kdrive/i810/i810stub.c b/hw/kdrive/i810/i810stub.c
index 364d16b..3109984 100644
--- a/hw/kdrive/i810/i810stub.c
+++ b/hw/kdrive/i810/i810stub.c
@@ -1,4 +1,3 @@
-/* $RCSId: $ */
 /* COPYRIGHT AND PERMISSION NOTICE
 
 Copyright (c) 2000, 2001 Nokia Home Communications
diff --git a/hw/kdrive/igs/igs.c b/hw/kdrive/igs/igs.c
index a0b139a..1c446f7 100644
--- a/hw/kdrive/igs/igs.c
+++ b/hw/kdrive/igs/igs.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/igs/igs.c,v 1.2 2000/05/24 23:52:47 keithp Exp $
- *
  * Copyright © 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/igs/igs.h b/hw/kdrive/igs/igs.h
index 2644250..9f0336b 100644
--- a/hw/kdrive/igs/igs.h
+++ b/hw/kdrive/igs/igs.h
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/igs/igs.h,v 1.1 2000/05/06 22:17:43 keithp Exp $
- *
  * Copyright © 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/igs/igscmap.c b/hw/kdrive/igs/igscmap.c
index 06ab7a4..dff028e 100644
--- a/hw/kdrive/igs/igscmap.c
+++ b/hw/kdrive/igs/igscmap.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/igs/igscurs.c b/hw/kdrive/igs/igscurs.c
index 6d62676..b8bd509 100644
--- a/hw/kdrive/igs/igscurs.c
+++ b/hw/kdrive/igs/igscurs.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/igs/igsdraw.c b/hw/kdrive/igs/igsdraw.c
index 1ae11a5..d2ae098 100644
--- a/hw/kdrive/igs/igsdraw.c
+++ b/hw/kdrive/igs/igsdraw.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/igs/igsdraw.c,v 1.1 2000/05/06 22:17:43 keithp Exp $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/igs/igsdraw.h b/hw/kdrive/igs/igsdraw.h
index c969826..ab80f9a 100644
--- a/hw/kdrive/igs/igsdraw.h
+++ b/hw/kdrive/igs/igsdraw.h
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/igs/igsdraw.h,v 1.1 2000/05/06 22:17:43 keithp Exp $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/igs/igsreg.c b/hw/kdrive/igs/igsreg.c
index 831d985..6d6f28b 100644
--- a/hw/kdrive/igs/igsreg.c
+++ b/hw/kdrive/igs/igsreg.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/igs/igsreg.h b/hw/kdrive/igs/igsreg.h
index ddccd89..2230ff0 100644
--- a/hw/kdrive/igs/igsreg.h
+++ b/hw/kdrive/igs/igsreg.h
@@ -1,6 +1,4 @@
 /*
- * $RCSId: $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/igs/igsstub.c b/hw/kdrive/igs/igsstub.c
index 39c6fd4..1c58827 100644
--- a/hw/kdrive/igs/igsstub.c
+++ b/hw/kdrive/igs/igsstub.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/igs/igsstub.c,v 1.2 2000/05/24 23:52:48 keithp Exp $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/ipaq/ipaq.c b/hw/kdrive/ipaq/ipaq.c
index f1432a6..057b799 100644
--- a/hw/kdrive/ipaq/ipaq.c
+++ b/hw/kdrive/ipaq/ipaq.c
@@ -22,7 +22,6 @@
  * Adapted from ts300.c by Alan Hourihane <alanh at fairlite.demon.co.uk>
  * For the Compaq IPAQ handheld, with the HP VGA Out Card (F1252A).
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/ipaq/ipaq.c,v 1.2 2001/05/29 17:47:55 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/itsy/itsy.c b/hw/kdrive/itsy/itsy.c
index 0524b98..47cc050 100644
--- a/hw/kdrive/itsy/itsy.c
+++ b/hw/kdrive/itsy/itsy.c
@@ -1,6 +1,4 @@
 /*
- * Id: itsy.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/itsy/itsy.c,v 1.2 1999/12/30 03:03:09 robin Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/itsy/itsy.h b/hw/kdrive/itsy/itsy.h
index 3c1fdd7..fc8fb8f 100644
--- a/hw/kdrive/itsy/itsy.h
+++ b/hw/kdrive/itsy/itsy.h
@@ -1,6 +1,4 @@
 /*
- * Id: itsy.h,v 1.1 1999/11/02 18:39:28 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/itsy/itsy.h,v 1.1 1999/11/19 13:53:53 hohndel Exp $ */
 
 #include "kdrive.h"
 #include <stdio.h>
diff --git a/hw/kdrive/itsy/kbd.c b/hw/kdrive/itsy/kbd.c
index beb4685..83ed49e 100644
--- a/hw/kdrive/itsy/kbd.c
+++ b/hw/kdrive/itsy/kbd.c
@@ -1,6 +1,4 @@
 /*
- * Id: kbd.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/itsy/kbd.c,v 1.1 1999/11/19 13:53:53 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/itsy/ts.c b/hw/kdrive/itsy/ts.c
index 180d1fd..34ff6a8 100644
--- a/hw/kdrive/itsy/ts.c
+++ b/hw/kdrive/itsy/ts.c
@@ -1,6 +1,4 @@
 /*
- * Id: ts.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/itsy/ts.c,v 1.1 1999/11/19 13:53:54 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/linux/agp.c b/hw/kdrive/linux/agp.c
index 4fb0cb3..80fb725 100644
--- a/hw/kdrive/linux/agp.c
+++ b/hw/kdrive/linux/agp.c
@@ -35,8 +35,6 @@ of the copyright holder.
 
  */
 
-/* $RCSId: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_agp.c,v 3.4 2000/08/28 18:12:56 dawes Exp $ */
-
 /*
  * Author: Pontus Lidman <pontus.lidman at nokia.com> (adaption to KDrive) and others
  */
diff --git a/hw/kdrive/linux/bus.c b/hw/kdrive/linux/bus.c
index 8cf5f90..2d7a157 100644
--- a/hw/kdrive/linux/bus.c
+++ b/hw/kdrive/linux/bus.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/linux/bus.c,v 1.2 2001/06/29 14:00:41 keithp Exp $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/linux/evdev.c b/hw/kdrive/linux/evdev.c
index deefcf9..79527c7 100644
--- a/hw/kdrive/linux/evdev.c
+++ b/hw/kdrive/linux/evdev.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/linux/keyboard.c b/hw/kdrive/linux/keyboard.c
index ad9907a..3193ab7 100644
--- a/hw/kdrive/linux/keyboard.c
+++ b/hw/kdrive/linux/keyboard.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/linux/keyboard.c,v 1.10 2001/11/08 10:26:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  * XKB integration © 2006 Nokia Corporation, author: Tomas Frydrych <tf at o-hand.com>
  *
diff --git a/hw/kdrive/linux/klinux.h b/hw/kdrive/linux/klinux.h
index 29ebe3a..3496852 100644
--- a/hw/kdrive/linux/klinux.h
+++ b/hw/kdrive/linux/klinux.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/linux/linux.c b/hw/kdrive/linux/linux.c
index c1fe185..0e4a77c 100644
--- a/hw/kdrive/linux/linux.c
+++ b/hw/kdrive/linux/linux.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/linux/linux.c,v 1.6 2001/07/24 21:26:17 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/linux/mouse.c b/hw/kdrive/linux/mouse.c
index 77ec3b3..1965342 100644
--- a/hw/kdrive/linux/mouse.c
+++ b/hw/kdrive/linux/mouse.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/linux/mouse.c,v 1.6 2002/08/02 16:11:35 keithp Exp $
- *
  * Copyright © 2001 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/linux/ms.c b/hw/kdrive/linux/ms.c
index e62cebc..d0b47a3 100644
--- a/hw/kdrive/linux/ms.c
+++ b/hw/kdrive/linux/ms.c
@@ -20,7 +20,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTR
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/linux/ms.c,v 1.1 2001/08/09 20:45:15 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/linux/ps2.c b/hw/kdrive/linux/ps2.c
index 5d523a2..d361e82 100644
--- a/hw/kdrive/linux/ps2.c
+++ b/hw/kdrive/linux/ps2.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/linux/ps2.c,v 1.6 2001/10/12 06:33:10 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/linux/ts.c b/hw/kdrive/linux/ts.c
index 701fdc8..831953f 100644
--- a/hw/kdrive/linux/ts.c
+++ b/hw/kdrive/linux/ts.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/linux/ts.c,v 1.9 2002/08/15 18:07:48 keithp Exp $
- *
  * Derived from ps2.c by Jim Gettys
  *
  * Copyright © 1999 Keith Packard
diff --git a/hw/kdrive/mach64/mach64.c b/hw/kdrive/mach64/mach64.c
index 1d4186d..3c513ba 100644
--- a/hw/kdrive/mach64/mach64.c
+++ b/hw/kdrive/mach64/mach64.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/mach64/mach64.c,v 1.10 2002/10/14 18:01:41 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/mach64/mach64.h b/hw/kdrive/mach64/mach64.h
index 5757cf7..fbb10b2 100644
--- a/hw/kdrive/mach64/mach64.h
+++ b/hw/kdrive/mach64/mach64.h
@@ -1,6 +1,4 @@
 /*
- * Id: mach64.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 2001 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/mach64/mach64.h,v 1.5 2001/06/23 03:41:24 keithp Exp $ */
 
 #ifndef _MACH64_H_
 #define _MACH64_H_
diff --git a/hw/kdrive/mach64/mach64curs.c b/hw/kdrive/mach64/mach64curs.c
index 9ac1efd..4a59381 100644
--- a/hw/kdrive/mach64/mach64curs.c
+++ b/hw/kdrive/mach64/mach64curs.c
@@ -1,6 +1,4 @@
 /*
- * Id: tridentcurs.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c,v 1.6 2000/09/03 05:11:20 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/mach64/mach64draw.c b/hw/kdrive/mach64/mach64draw.c
index f917984..15d4d41 100644
--- a/hw/kdrive/mach64/mach64draw.c
+++ b/hw/kdrive/mach64/mach64draw.c
@@ -1,6 +1,4 @@
 /*
- * Id: mach64draw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/mach64/mach64draw.c,v 1.6 2001/07/23 03:44:17 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/mach64/mach64draw.h b/hw/kdrive/mach64/mach64draw.h
index b7053ae..bac11c2 100644
--- a/hw/kdrive/mach64/mach64draw.h
+++ b/hw/kdrive/mach64/mach64draw.h
@@ -1,6 +1,4 @@
 /*
- * Id: tridentdraw.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h,v 1.4 2000/10/11 06:04:40 keithp Exp $ */
 
 #ifndef _TRIDENTDRAW_H_
 #define _TRIDENTDRAW_H_
diff --git a/hw/kdrive/mach64/mach64stub.c b/hw/kdrive/mach64/mach64stub.c
index f3fef3c..5895a3c 100644
--- a/hw/kdrive/mach64/mach64stub.c
+++ b/hw/kdrive/mach64/mach64stub.c
@@ -1,6 +1,4 @@
 /*
- * Id: mach64stub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/mach64/mach64stub.c,v 1.2 2001/10/12 06:33:10 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/mach64/mach64video.c b/hw/kdrive/mach64/mach64video.c
index 7d42807..38fcef7 100644
--- a/hw/kdrive/mach64/mach64video.c
+++ b/hw/kdrive/mach64/mach64video.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/mach64/mach64video.c,v 1.9tsi Exp $ */
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
 #endif
diff --git a/hw/kdrive/mga/g400_common.h b/hw/kdrive/mga/g400_common.h
index c4093d9..9f16d24 100644
--- a/hw/kdrive/mga/g400_common.h
+++ b/hw/kdrive/mga/g400_common.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Damien Ciabrini
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef __G400_COMMON_H__
 #define __G400_COMMON_H__
diff --git a/hw/kdrive/mga/g400_composite.c b/hw/kdrive/mga/g400_composite.c
index da2e8b8..dda9d93 100644
--- a/hw/kdrive/mga/g400_composite.c
+++ b/hw/kdrive/mga/g400_composite.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Damien Ciabrini
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/mga/mga.c b/hw/kdrive/mga/mga.c
index 990d646..2ae35d1 100644
--- a/hw/kdrive/mga/mga.c
+++ b/hw/kdrive/mga/mga.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
 #endif
diff --git a/hw/kdrive/mga/mga.h b/hw/kdrive/mga/mga.h
index 2c6b809..8fa9560 100644
--- a/hw/kdrive/mga/mga.h
+++ b/hw/kdrive/mga/mga.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003-2004 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef _MGA_H_
 #define _MGA_H_
diff --git a/hw/kdrive/mga/mgadraw.c b/hw/kdrive/mga/mgadraw.c
index 71d506c..d27e8c9 100644
--- a/hw/kdrive/mga/mgadraw.c
+++ b/hw/kdrive/mga/mgadraw.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003-2004 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
 #endif
diff --git a/hw/kdrive/mga/mgastub.c b/hw/kdrive/mga/mgastub.c
index 5afbf7f..61e6963 100644
--- a/hw/kdrive/mga/mgastub.c
+++ b/hw/kdrive/mga/mgastub.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
 #endif
diff --git a/hw/kdrive/nvidia/nvidia.c b/hw/kdrive/nvidia/nvidia.c
index 1703a30..be42e56 100644
--- a/hw/kdrive/nvidia/nvidia.c
+++ b/hw/kdrive/nvidia/nvidia.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/nvidia/nvidia.h b/hw/kdrive/nvidia/nvidia.h
index 3a36b43..026233c 100644
--- a/hw/kdrive/nvidia/nvidia.h
+++ b/hw/kdrive/nvidia/nvidia.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/nvidia/nvidiacurs.c b/hw/kdrive/nvidia/nvidiacurs.c
index 9ac1efd..4a59381 100644
--- a/hw/kdrive/nvidia/nvidiacurs.c
+++ b/hw/kdrive/nvidia/nvidiacurs.c
@@ -1,6 +1,4 @@
 /*
- * Id: tridentcurs.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c,v 1.6 2000/09/03 05:11:20 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/nvidia/nvidiadraw.c b/hw/kdrive/nvidia/nvidiadraw.c
index dda3ea3..a39f798 100644
--- a/hw/kdrive/nvidia/nvidiadraw.c
+++ b/hw/kdrive/nvidia/nvidiadraw.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/nvidia/nvidiadraw.h b/hw/kdrive/nvidia/nvidiadraw.h
index b7053ae..bac11c2 100644
--- a/hw/kdrive/nvidia/nvidiadraw.h
+++ b/hw/kdrive/nvidia/nvidiadraw.h
@@ -1,6 +1,4 @@
 /*
- * Id: tridentdraw.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h,v 1.4 2000/10/11 06:04:40 keithp Exp $ */
 
 #ifndef _TRIDENTDRAW_H_
 #define _TRIDENTDRAW_H_
diff --git a/hw/kdrive/nvidia/nvidiastub.c b/hw/kdrive/nvidia/nvidiastub.c
index 2309419..0e8250e 100644
--- a/hw/kdrive/nvidia/nvidiastub.c
+++ b/hw/kdrive/nvidia/nvidiastub.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/nvidia/nvidiavideo.c b/hw/kdrive/nvidia/nvidiavideo.c
index 1dd5a1c..ad7147d 100644
--- a/hw/kdrive/nvidia/nvidiavideo.c
+++ b/hw/kdrive/nvidia/nvidiavideo.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/pcmcia/modes.h b/hw/kdrive/pcmcia/modes.h
index 9087e9e..0a07873 100644
--- a/hw/kdrive/pcmcia/modes.h
+++ b/hw/kdrive/pcmcia/modes.h
@@ -21,7 +21,6 @@
  *
  * Authors:  Alan Hourihane, <alanh at fairlite.demon.co.uk>
  */
-/* $RCSId: $ */
 
 #define V_NHSYNC 0x01
 #define V_NVSYNC 0x02
diff --git a/hw/kdrive/pcmcia/pcmcia.c b/hw/kdrive/pcmcia/pcmcia.c
index dfdd2f6..a1728c7 100644
--- a/hw/kdrive/pcmcia/pcmcia.c
+++ b/hw/kdrive/pcmcia/pcmcia.c
@@ -27,7 +27,6 @@
  *
  * Tested running under a Compaq IPAQ Pocket PC running Linux
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/pcmcia/pcmcia.c,v 1.6 2002/10/14 18:01:41 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/pcmcia/pcmcia.h b/hw/kdrive/pcmcia/pcmcia.h
index cb4d13a..245e51b 100644
--- a/hw/kdrive/pcmcia/pcmcia.h
+++ b/hw/kdrive/pcmcia/pcmcia.h
@@ -21,7 +21,6 @@
  *
  * Authors:  Alan Hourihane, <alanh at fairlite.demon.co.uk>
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/pcmcia/pcmcia.h,v 1.1 2001/05/23 08:56:09 alanh Exp $ */
 
 #ifndef _PCMCIA_H_
 #define _PCMCIA_H_
diff --git a/hw/kdrive/pcmcia/pcmciacurs.c b/hw/kdrive/pcmcia/pcmciacurs.c
index 89770bc..21d2d4a 100644
--- a/hw/kdrive/pcmcia/pcmciacurs.c
+++ b/hw/kdrive/pcmcia/pcmciacurs.c
@@ -21,7 +21,6 @@
  *
  * Authors:  Alan Hourihane, <alanh at fairlite.demon.co.uk>
  */
-/* $RCSId: $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/pcmcia/pcmciarotate.c b/hw/kdrive/pcmcia/pcmciarotate.c
index ac3ec9d..e5dc1cb 100644
--- a/hw/kdrive/pcmcia/pcmciarotate.c
+++ b/hw/kdrive/pcmcia/pcmciarotate.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/miext/shadow/shrotate.c,v 1.3 2001/07/21 04:13:26 keithp Exp $
- *
  * Copyright © 2001 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/pcmcia/pcmciashadow.c b/hw/kdrive/pcmcia/pcmciashadow.c
index c32333f..f578f1b 100644
--- a/hw/kdrive/pcmcia/pcmciashadow.c
+++ b/hw/kdrive/pcmcia/pcmciashadow.c
@@ -21,7 +21,6 @@
  *
  * Authors:  Alan Hourihane, <alanh at fairlite.demon.co.uk>
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/pcmcia/pcmciashadow.c,v 1.1 2001/05/23 08:56:09 alanh Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/pcmcia/pcmciastub.c b/hw/kdrive/pcmcia/pcmciastub.c
index a56d2cb..779ad7f 100644
--- a/hw/kdrive/pcmcia/pcmciastub.c
+++ b/hw/kdrive/pcmcia/pcmciastub.c
@@ -21,7 +21,6 @@
  *
  * Authors:  Alan Hourihane, <alanh at fairlite.demon.co.uk>
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/pcmcia/pcmciastub.c,v 1.1 2001/05/23 08:56:09 alanh Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/r128/r128.c b/hw/kdrive/r128/r128.c
index 6758d64..9e7f312 100644
--- a/hw/kdrive/r128/r128.c
+++ b/hw/kdrive/r128/r128.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
 #endif
diff --git a/hw/kdrive/r128/r128.h b/hw/kdrive/r128/r128.h
index 02e3c10..ae9ae03 100644
--- a/hw/kdrive/r128/r128.h
+++ b/hw/kdrive/r128/r128.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef _R128_H_
 #define _R128_H_
diff --git a/hw/kdrive/r128/r128draw.c b/hw/kdrive/r128/r128draw.c
index bdc55bb..142cc8b 100644
--- a/hw/kdrive/r128/r128draw.c
+++ b/hw/kdrive/r128/r128draw.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
 #endif
diff --git a/hw/kdrive/r128/r128stub.c b/hw/kdrive/r128/r128stub.c
index dbf3c0e..b5ffd9d 100644
--- a/hw/kdrive/r128/r128stub.c
+++ b/hw/kdrive/r128/r128stub.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
 #endif
diff --git a/hw/kdrive/savage/s3.c b/hw/kdrive/savage/s3.c
index 95051f2..c1b01e7 100644
--- a/hw/kdrive/savage/s3.c
+++ b/hw/kdrive/savage/s3.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3.c,v 1.3 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3.c,v 1.4 2000/05/06 22:17:44 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/savage/s3.h b/hw/kdrive/savage/s3.h
index 86e1863..628abc8 100644
--- a/hw/kdrive/savage/s3.h
+++ b/hw/kdrive/savage/s3.h
@@ -1,6 +1,4 @@
 /*
- * Id: s3.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3.h,v 1.4 2000/05/06 22:17:45 keithp Exp $ */
 
 #ifndef _S3_H_
 #define _S3_H_
diff --git a/hw/kdrive/savage/s3clock.c b/hw/kdrive/savage/s3clock.c
index 40b6ed6..9e3f8b3 100644
--- a/hw/kdrive/savage/s3clock.c
+++ b/hw/kdrive/savage/s3clock.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3clock.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3clock.c,v 1.3 2000/02/23 20:30:02 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/savage/s3cmap.c b/hw/kdrive/savage/s3cmap.c
index 57f19f4..094a247 100644
--- a/hw/kdrive/savage/s3cmap.c
+++ b/hw/kdrive/savage/s3cmap.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3cmap.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3cmap.c,v 1.4 2000/05/06 22:17:45 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/savage/s3curs.c b/hw/kdrive/savage/s3curs.c
index 0440205..95d4522 100644
--- a/hw/kdrive/savage/s3curs.c
+++ b/hw/kdrive/savage/s3curs.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3curs.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3curs.c,v 1.3 2000/02/23 20:30:03 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/savage/s3draw.c b/hw/kdrive/savage/s3draw.c
index cda9be7..258dbcf 100644
--- a/hw/kdrive/savage/s3draw.c
+++ b/hw/kdrive/savage/s3draw.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3draw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3draw.c,v 1.6 2001/05/29 04:54:11 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/savage/s3draw.h b/hw/kdrive/savage/s3draw.h
index a95b53b..0689043 100644
--- a/hw/kdrive/savage/s3draw.h
+++ b/hw/kdrive/savage/s3draw.h
@@ -1,6 +1,4 @@
 /*
- * Id: s3draw.h,v 1.2 1999/11/02 06:16:29 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3draw.h,v 1.4 2000/05/06 22:17:47 keithp Exp $ */
 
 #ifndef _S3DRAW_H_
 #define _S3DRAW_H_
diff --git a/hw/kdrive/savage/s3gc.c b/hw/kdrive/savage/s3gc.c
index a87a2f5..ade14fa 100644
--- a/hw/kdrive/savage/s3gc.c
+++ b/hw/kdrive/savage/s3gc.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3gc.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3gc.c,v 1.3 2000/01/21 01:12:02 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/savage/s3reg.c b/hw/kdrive/savage/s3reg.c
index df2534b..673a2ac 100644
--- a/hw/kdrive/savage/s3reg.c
+++ b/hw/kdrive/savage/s3reg.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3reg.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3reg.c,v 1.3 2000/02/23 20:30:04 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/savage/s3reg.h b/hw/kdrive/savage/s3reg.h
index 9b3c544..5c5b09f 100644
--- a/hw/kdrive/savage/s3reg.h
+++ b/hw/kdrive/savage/s3reg.h
@@ -1,6 +1,4 @@
 /*
- * Id: s3reg.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3reg.h,v 1.3 2000/02/23 20:30:05 dawes Exp $ */
 
 #ifndef _S3REG_H_
 #define _S3REG_H_
diff --git a/hw/kdrive/savage/s3rtst.c b/hw/kdrive/savage/s3rtst.c
index 6bcd2a4..c24b860 100644
--- a/hw/kdrive/savage/s3rtst.c
+++ b/hw/kdrive/savage/s3rtst.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3rtst.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3rtst.c,v 1.1 1999/11/19 13:53:57 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/savage/s3stub.c b/hw/kdrive/savage/s3stub.c
index 776f8da..145c5c1 100644
--- a/hw/kdrive/savage/s3stub.c
+++ b/hw/kdrive/savage/s3stub.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3stub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/savage/s3stub.c,v 1.3 2000/02/23 20:30:05 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sdl/sdl.c b/hw/kdrive/sdl/sdl.c
index d7448ff..411b5d4 100644
--- a/hw/kdrive/sdl/sdl.c
+++ b/hw/kdrive/sdl/sdl.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 PillowElephantBadgerBankPond 
  
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -25,7 +23,6 @@
  * 	- jaymz
  *
  */
-/* $Header$ */
 #ifdef HAVE_CONFIG_H
 #include "kdrive-config.h"
 #endif
diff --git a/hw/kdrive/sis300/sis.c b/hw/kdrive/sis300/sis.c
index 61fa997..30b7ac2 100644
--- a/hw/kdrive/sis300/sis.c
+++ b/hw/kdrive/sis300/sis.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sis300/sis.h b/hw/kdrive/sis300/sis.h
index 21cbdfc..25d55be 100644
--- a/hw/kdrive/sis300/sis.h
+++ b/hw/kdrive/sis300/sis.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifndef _SIS_H_
 #define _SIS_H_
diff --git a/hw/kdrive/sis300/sis_draw.c b/hw/kdrive/sis300/sis_draw.c
index 77e5829..bbc905e 100644
--- a/hw/kdrive/sis300/sis_draw.c
+++ b/hw/kdrive/sis300/sis_draw.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #include <sys/io.h>
 
diff --git a/hw/kdrive/sis300/sis_stub.c b/hw/kdrive/sis300/sis_stub.c
index 8a4c06c..bce7d02 100644
--- a/hw/kdrive/sis300/sis_stub.c
+++ b/hw/kdrive/sis300/sis_stub.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sis530/sis.c b/hw/kdrive/sis530/sis.c
index 023711a..e1deb3b 100644
--- a/hw/kdrive/sis530/sis.c
+++ b/hw/kdrive/sis530/sis.c
@@ -1,6 +1,4 @@
 /*
- * Id: sis.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/sis.c,v 1.4 2000/05/06 22:17:49 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sis530/sis.h b/hw/kdrive/sis530/sis.h
index 2a39d0b..194c33c 100644
--- a/hw/kdrive/sis530/sis.h
+++ b/hw/kdrive/sis530/sis.h
@@ -1,6 +1,4 @@
 /*
- * Id: sis.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/sis.h,v 1.4 2000/05/06 22:17:49 keithp Exp $ */
 
 #ifndef _SIS_H_
 #define _SIS_H_
diff --git a/hw/kdrive/sis530/sisclock.c b/hw/kdrive/sis530/sisclock.c
index 06379e5..f73cdac 100644
--- a/hw/kdrive/sis530/sisclock.c
+++ b/hw/kdrive/sis530/sisclock.c
@@ -1,6 +1,4 @@
 /*
- * Id: sisclock.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/sisclock.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sis530/siscmap.c b/hw/kdrive/sis530/siscmap.c
index 42a0081..2a28420 100644
--- a/hw/kdrive/sis530/siscmap.c
+++ b/hw/kdrive/sis530/siscmap.c
@@ -1,6 +1,4 @@
 /*
- * Id: siscmap.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/siscmap.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sis530/siscurs.c b/hw/kdrive/sis530/siscurs.c
index 94dfffe..dad4447 100644
--- a/hw/kdrive/sis530/siscurs.c
+++ b/hw/kdrive/sis530/siscurs.c
@@ -1,6 +1,4 @@
 /*
- * Id: siscurs.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/siscurs.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sis530/sisdraw.c b/hw/kdrive/sis530/sisdraw.c
index 20671c0..fd80fa7 100644
--- a/hw/kdrive/sis530/sisdraw.c
+++ b/hw/kdrive/sis530/sisdraw.c
@@ -1,6 +1,4 @@
 /*
- * Id: sisdraw.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c,v 1.5 2000/08/09 17:52:44 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sis530/sisdraw.h b/hw/kdrive/sis530/sisdraw.h
index 4bf67b2..971ad64 100644
--- a/hw/kdrive/sis530/sisdraw.h
+++ b/hw/kdrive/sis530/sisdraw.h
@@ -1,6 +1,4 @@
 /*
- * Id: sisdraw.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
 
 #ifndef _SISDRAW_H_
 #define _SISDRAW_H_
diff --git a/hw/kdrive/sis530/sisio.c b/hw/kdrive/sis530/sisio.c
index 7b4765f..4741937 100644
--- a/hw/kdrive/sis530/sisio.c
+++ b/hw/kdrive/sis530/sisio.c
@@ -1,6 +1,4 @@
 /*
- * Id: sisio.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/sisio.c,v 1.1 1999/11/19 13:54:00 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/sis530/sisstub.c b/hw/kdrive/sis530/sisstub.c
index 2375f65..960510b 100644
--- a/hw/kdrive/sis530/sisstub.c
+++ b/hw/kdrive/sis530/sisstub.c
@@ -1,6 +1,4 @@
 /*
- * Id: sisstub.c,v 1.1 1999/11/02 08:20:07 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/sis530/sisstub.c,v 1.4 2000/08/09 17:52:44 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/smi/smi.h b/hw/kdrive/smi/smi.h
index 19fdcba..ef0fd11 100644
--- a/hw/kdrive/smi/smi.h
+++ b/hw/kdrive/smi/smi.h
@@ -1,6 +1,4 @@
 /*
- * Id: smi.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 2001 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/smi/smidraw.c b/hw/kdrive/smi/smidraw.c
index 06606ad..ba4e390 100644
--- a/hw/kdrive/smi/smidraw.c
+++ b/hw/kdrive/smi/smidraw.c
@@ -1,6 +1,4 @@
 /*
- * Id: smidraw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/smi/smidraw.h b/hw/kdrive/smi/smidraw.h
index f91b68c..4165c74 100644
--- a/hw/kdrive/smi/smidraw.h
+++ b/hw/kdrive/smi/smidraw.h
@@ -1,6 +1,4 @@
 /*
- * Id: smidraw.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/smi/smistub.c b/hw/kdrive/smi/smistub.c
index 1db6708..59faf28 100644
--- a/hw/kdrive/smi/smistub.c
+++ b/hw/kdrive/smi/smistub.c
@@ -1,6 +1,4 @@
 /*
- * Id: smistub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/src/kaa.c b/hw/kdrive/src/kaa.c
index c29e9e9..c9805dd 100644
--- a/hw/kdrive/src/kaa.c
+++ b/hw/kdrive/src/kaa.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/kaa.c,v 1.4 2001/06/04 09:45:41 keithp Exp $
- *
  * Copyright © 2001 Keith Packard
  *
  * Partly based on code that is Copyright © The XFree86 Project Inc.
diff --git a/hw/kdrive/src/kaa.h b/hw/kdrive/src/kaa.h
index 15f2faa..db890a7 100644
--- a/hw/kdrive/src/kaa.h
+++ b/hw/kdrive/src/kaa.h
@@ -1,6 +1,4 @@
 /*
- * $RCSId: $
- *
  * Copyright © 2001 Keith Packard
  *
  * Partly based on code that is Copyright © The XFree86 Project Inc.
diff --git a/hw/kdrive/src/kaapict.c b/hw/kdrive/src/kaapict.c
index 6d44b72..501b6b9 100644
--- a/hw/kdrive/src/kaapict.c
+++ b/hw/kdrive/src/kaapict.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId$
- *
  * Copyright © 2001 Keith Packard
  *
  * Partly based on code that is Copyright © The XFree86 Project Inc.
diff --git a/hw/kdrive/src/kasync.c b/hw/kdrive/src/kasync.c
index 00d756f..9da3406 100644
--- a/hw/kdrive/src/kasync.c
+++ b/hw/kdrive/src/kasync.c
@@ -1,6 +1,4 @@
 /*
- * Id: kasync.c,v 1.3 1999/11/24 04:29:28 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kasync.c,v 1.8 2001/03/30 02:15:19 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/kcmap.c b/hw/kdrive/src/kcmap.c
index 92ce5b9..4941ad1 100644
--- a/hw/kdrive/src/kcmap.c
+++ b/hw/kdrive/src/kcmap.c
@@ -1,6 +1,4 @@
 /*
- * Id: kcmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kcmap.c,v 1.4 2000/05/24 23:57:56 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/kcolor.c b/hw/kdrive/src/kcolor.c
index c3669ab..31af5c3 100644
--- a/hw/kdrive/src/kcolor.c
+++ b/hw/kdrive/src/kcolor.c
@@ -1,6 +1,4 @@
 /*
- * Id: kcolor.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kcolor.c,v 1.2 1999/12/30 03:03:05 robin Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/kcurscol.c b/hw/kdrive/src/kcurscol.c
index 943417e..6a17df3 100644
--- a/hw/kdrive/src/kcurscol.c
+++ b/hw/kdrive/src/kcurscol.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/kcurscol.c,v 1.4 2000/05/11 18:14:13 tsi Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c
index b6ac0b0..dfe264a 100644
--- a/hw/kdrive/src/kdrive.c
+++ b/hw/kdrive/src/kdrive.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/kdrive.c,v 1.29 2002/10/31 18:29:50 keithp Exp $ 
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index ced48d7..1397cf5 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -1,6 +1,4 @@
 /*
- * Id: kdrive.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.29 2002/11/13 16:37:39 keithp Exp $ */
 
 #ifndef _KDRIVE_H_
 #define _KDRIVE_H_
diff --git a/hw/kdrive/src/kinfo.c b/hw/kdrive/src/kinfo.c
index 1e03ac8..2621f10 100644
--- a/hw/kdrive/src/kinfo.c
+++ b/hw/kdrive/src/kinfo.c
@@ -1,6 +1,4 @@
 /*
- * Id: kinfo.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kinfo.c,v 1.2 2000/02/23 20:29:53 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 7b22d17..372ffc8 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -1,6 +1,4 @@
 /*
- * Id: kinput.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  * Copyright © 2006 Nokia Corporation
  *
@@ -22,7 +20,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.30 2002/11/13 16:37:39 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/kkeymap.c b/hw/kdrive/src/kkeymap.c
index ce4596f..ae90a34 100644
--- a/hw/kdrive/src/kkeymap.c
+++ b/hw/kdrive/src/kkeymap.c
@@ -1,6 +1,4 @@
 /*
- * Id: kkeymap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kkeymap.c,v 1.1 1999/11/19 13:53:49 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/kkeymap.h b/hw/kdrive/src/kkeymap.h
index ccc5e86..f66cfa4 100644
--- a/hw/kdrive/src/kkeymap.h
+++ b/hw/kdrive/src/kkeymap.h
@@ -1,6 +1,4 @@
 /*
- * Id: kkeymap.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kkeymap.h,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
 /*
  *  All global variables and functions pertaining to keyboard key mapping
  *  live in this header file.
diff --git a/hw/kdrive/src/kloadmap.c b/hw/kdrive/src/kloadmap.c
index b62b2de..21440a4 100644
--- a/hw/kdrive/src/kloadmap.c
+++ b/hw/kdrive/src/kloadmap.c
@@ -1,6 +1,4 @@
 /*
- * Id: kloadmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kloadmap.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/kmap.c b/hw/kdrive/src/kmap.c
index 73ff427..b92c1a8 100644
--- a/hw/kdrive/src/kmap.c
+++ b/hw/kdrive/src/kmap.c
@@ -1,6 +1,4 @@
 /*
- * Id: kmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.10 2001/07/24 21:26:17 keithp Exp $ */
 
 #include <kdrive-config.h>
 #include "kdrive.h"
diff --git a/hw/kdrive/src/kmode.c b/hw/kdrive/src/kmode.c
index 5a0c090..d02cb55 100644
--- a/hw/kdrive/src/kmode.c
+++ b/hw/kdrive/src/kmode.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/kmode.c,v 1.7 2002/10/14 18:01:40 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/src/knoop.c b/hw/kdrive/src/knoop.c
index 416e23e..a3e9468 100644
--- a/hw/kdrive/src/knoop.c
+++ b/hw/kdrive/src/knoop.c
@@ -1,6 +1,4 @@
 /*
- * Id: knoop.c,v 1.2 1999/11/02 06:16:28 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/knoop.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
 
 /*
  * GC ops that don't do anything
diff --git a/hw/kdrive/src/koffscreen.c b/hw/kdrive/src/koffscreen.c
index eeb35fa..efe0364 100644
--- a/hw/kdrive/src/koffscreen.c
+++ b/hw/kdrive/src/koffscreen.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Anders Carlsson
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/src/kshadow.c b/hw/kdrive/src/kshadow.c
index 34e1d5d..ea44812 100644
--- a/hw/kdrive/src/kshadow.c
+++ b/hw/kdrive/src/kshadow.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/src/ktest.c b/hw/kdrive/src/ktest.c
index 935c00e..150af56 100644
--- a/hw/kdrive/src/ktest.c
+++ b/hw/kdrive/src/ktest.c
@@ -1,6 +1,4 @@
 /*
- * Id: ktest.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/ktest.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/kxv.c b/hw/kdrive/src/kxv.c
index 4e672f1..b8fbd73 100644
--- a/hw/kdrive/src/kxv.c
+++ b/hw/kdrive/src/kxv.c
@@ -35,8 +35,6 @@ of the copyright holder.
 
 */
 
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kxv.c,v 1.3 2001/08/09 09:08:54 keithp Exp $ */
-
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
 #endif
diff --git a/hw/kdrive/src/kxv.h b/hw/kdrive/src/kxv.h
index b9eca8b..5d14416 100644
--- a/hw/kdrive/src/kxv.h
+++ b/hw/kdrive/src/kxv.h
@@ -35,8 +35,6 @@ of the copyright holder.
 
 */
 
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kxv.h,v 1.1 2001/03/30 02:18:41 keithp Exp $ */
-
 #ifndef _XVDIX_H_
 #define _XVDIX_H_
 
diff --git a/hw/kdrive/src/vga.c b/hw/kdrive/src/vga.c
index 9b8a7da..862f074 100644
--- a/hw/kdrive/src/vga.c
+++ b/hw/kdrive/src/vga.c
@@ -1,6 +1,4 @@
 /*
- * Id: vga.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/vga.c,v 1.2 1999/12/30 03:03:07 robin Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/src/vga.h b/hw/kdrive/src/vga.h
index 5d7e773..0615d52 100644
--- a/hw/kdrive/src/vga.h
+++ b/hw/kdrive/src/vga.h
@@ -1,6 +1,4 @@
 /*
- * Id: vga.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/vga.h,v 1.2 1999/12/30 03:03:07 robin Exp $ */
 
 #ifndef _VGA_H_
 #define _VGA_H_
diff --git a/hw/kdrive/trident/trident.c b/hw/kdrive/trident/trident.c
index 59f0448..694a708 100644
--- a/hw/kdrive/trident/trident.c
+++ b/hw/kdrive/trident/trident.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/trident.c,v 1.17 2001/06/03 18:48:19 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/trident/trident.h b/hw/kdrive/trident/trident.h
index 0b0d8cb..feb939d 100644
--- a/hw/kdrive/trident/trident.h
+++ b/hw/kdrive/trident/trident.h
@@ -1,6 +1,4 @@
 /*
- * Id: trident.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/trident.h,v 1.8 2000/10/20 00:19:51 keithp Exp $ */
 
 #ifndef _TRIDENT_H_
 #define _TRIDENT_H_
diff --git a/hw/kdrive/trident/tridentcurs.c b/hw/kdrive/trident/tridentcurs.c
index 521cf98..4a59381 100644
--- a/hw/kdrive/trident/tridentcurs.c
+++ b/hw/kdrive/trident/tridentcurs.c
@@ -1,6 +1,4 @@
 /*
- * Id: tridentcurs.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c,v 1.5 2000/08/29 17:20:15 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/trident/tridentdraw.c b/hw/kdrive/trident/tridentdraw.c
index 3ebba88..c26d0be 100644
--- a/hw/kdrive/trident/tridentdraw.c
+++ b/hw/kdrive/trident/tridentdraw.c
@@ -1,6 +1,4 @@
 /*
- * Id: tridentdraw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c,v 1.10 2001/06/03 18:48:19 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/trident/tridentdraw.h b/hw/kdrive/trident/tridentdraw.h
index ec09167..bac11c2 100644
--- a/hw/kdrive/trident/tridentdraw.h
+++ b/hw/kdrive/trident/tridentdraw.h
@@ -1,6 +1,4 @@
 /*
- * Id: tridentdraw.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h,v 1.2 1999/12/30 03:03:18 robin Exp $ */
 
 #ifndef _TRIDENTDRAW_H_
 #define _TRIDENTDRAW_H_
diff --git a/hw/kdrive/trident/tridentstub.c b/hw/kdrive/trident/tridentstub.c
index 650206a..0792a50 100644
--- a/hw/kdrive/trident/tridentstub.c
+++ b/hw/kdrive/trident/tridentstub.c
@@ -1,6 +1,4 @@
 /*
- * Id: tridentstub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/tridentstub.c,v 1.5 2000/11/29 08:42:25 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/trio/s3.c b/hw/kdrive/trio/s3.c
index 6fb8c96..cb51049 100644
--- a/hw/kdrive/trio/s3.c
+++ b/hw/kdrive/trio/s3.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trio/s3.c,v 1.4 2000/05/06 22:17:52 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/trio/s3.h b/hw/kdrive/trio/s3.h
index 6f443ea..b45a8ba 100644
--- a/hw/kdrive/trio/s3.h
+++ b/hw/kdrive/trio/s3.h
@@ -1,6 +1,4 @@
 /*
- * Id: s3.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trio/s3.h,v 1.4 2000/05/06 22:17:53 keithp Exp $ */
 
 #ifndef _S3_H_
 #define _S3_H_
diff --git a/hw/kdrive/trio/s3clock.c b/hw/kdrive/trio/s3clock.c
index 9fdd35e..9f2d313 100644
--- a/hw/kdrive/trio/s3clock.c
+++ b/hw/kdrive/trio/s3clock.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3clock.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trio/s3clock.c,v 1.2 1999/12/30 03:03:19 robin Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/trio/s3cmap.c b/hw/kdrive/trio/s3cmap.c
index d59f296..cc32da3 100644
--- a/hw/kdrive/trio/s3cmap.c
+++ b/hw/kdrive/trio/s3cmap.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3cmap.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trio/s3cmap.c,v 1.1 1999/11/19 13:54:05 hohndel Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/trio/s3curs.c b/hw/kdrive/trio/s3curs.c
index 4d802c5..60e72c6 100644
--- a/hw/kdrive/trio/s3curs.c
+++ b/hw/kdrive/trio/s3curs.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3curs.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trio/s3curs.c,v 1.2 1999/12/30 03:03:19 robin Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/trio/s3stub.c b/hw/kdrive/trio/s3stub.c
index 7531858..f44ad84 100644
--- a/hw/kdrive/trio/s3stub.c
+++ b/hw/kdrive/trio/s3stub.c
@@ -1,6 +1,4 @@
 /*
- * Id: s3stub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
- *
  * Copyright 1999 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,7 +20,6 @@
  *
  * Author:  Keith Packard, SuSE, Inc.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/trio/s3stub.c,v 1.3 2000/02/23 20:30:13 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/ts300/ts300.c b/hw/kdrive/ts300/ts300.c
index 620ee7f..e9ff3a3 100644
--- a/hw/kdrive/ts300/ts300.c
+++ b/hw/kdrive/ts300/ts300.c
@@ -1,6 +1,4 @@
 /*
- * Id: ts300.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
- *
  * Copyright © 1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/ts300/ts300.c,v 1.3 2000/02/23 20:30:14 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/vesa/vbe.c b/hw/kdrive/vesa/vbe.c
index 08f0b03..cedefe9 100644
--- a/hw/kdrive/vesa/vbe.c
+++ b/hw/kdrive/vesa/vbe.c
@@ -19,7 +19,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTR
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/vesa/vbe.c,v 1.9 2001/05/29 04:54:12 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/vesa/vbe.h b/hw/kdrive/vesa/vbe.h
index 5d0ff51..f67fbbe 100644
--- a/hw/kdrive/vesa/vbe.h
+++ b/hw/kdrive/vesa/vbe.h
@@ -19,7 +19,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTR
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/vesa/vbe.h,v 1.6 2001/05/29 04:54:12 keithp Exp $ */
 
 #ifndef _VBE_H
 #define _VBE_H
diff --git a/hw/kdrive/vesa/vesa.c b/hw/kdrive/vesa/vesa.c
index 766cacd..d6fa5eb 100644
--- a/hw/kdrive/vesa/vesa.c
+++ b/hw/kdrive/vesa/vesa.c
@@ -19,7 +19,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTR
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 */
-/* $Id$ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/vesa/vesa.h b/hw/kdrive/vesa/vesa.h
index 83be725..f6b21e9 100644
--- a/hw/kdrive/vesa/vesa.h
+++ b/hw/kdrive/vesa/vesa.h
@@ -19,7 +19,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTR
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/vesa/vesa.h,v 1.13 2002/09/29 23:39:47 keithp Exp $ */
 
 #ifndef _VESA_H_
 #define _VESA_H_
diff --git a/hw/kdrive/vesa/vesainit.c b/hw/kdrive/vesa/vesainit.c
index 4f552d1..90b1681 100644
--- a/hw/kdrive/vesa/vesainit.c
+++ b/hw/kdrive/vesa/vesainit.c
@@ -19,7 +19,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTR
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/vesa/vesainit.c,v 1.7 2001/09/05 07:12:43 keithp Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <kdrive-config.h>
diff --git a/hw/kdrive/vesa/vga.c b/hw/kdrive/vesa/vga.c
index 3050eac..0367a5f 100644
--- a/hw/kdrive/vesa/vga.c
+++ b/hw/kdrive/vesa/vga.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/vesa/vga.c,v 1.1 2000/10/20 00:19:51 keithp Exp $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/vesa/vga.h b/hw/kdrive/vesa/vga.h
index ca00090..9a368ce 100644
--- a/hw/kdrive/vesa/vga.h
+++ b/hw/kdrive/vesa/vga.h
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/vesa/vga.h,v 1.1 2000/10/20 00:19:51 keithp Exp $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/vesa/vm86.c b/hw/kdrive/vesa/vm86.c
index d09a36d..78fc593 100644
--- a/hw/kdrive/vesa/vm86.c
+++ b/hw/kdrive/vesa/vm86.c
@@ -1,6 +1,4 @@
 /*
- * $RCSId: xc/programs/Xserver/hw/kdrive/vesa/vm86.c,v 1.2 2002/02/19 00:18:05 keithp Exp $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/vesa/vm86.h b/hw/kdrive/vesa/vm86.h
index bd1ad43..3b48814 100644
--- a/hw/kdrive/vesa/vm86.h
+++ b/hw/kdrive/vesa/vm86.h
@@ -1,6 +1,4 @@
 /*
- * $RCSId: $
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/kdrive/vxworks/vxkbd.c b/hw/kdrive/vxworks/vxkbd.c
index b421e92..be528c7 100644
--- a/hw/kdrive/vxworks/vxkbd.c
+++ b/hw/kdrive/vxworks/vxkbd.c
@@ -1,6 +1,4 @@
 /*
- * Id: vxkbd.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
- *
  * Copyright © 1999 Network Computing Devices, Inc.  All rights reserved.
  *
  * Author: Keith Packard
diff --git a/hw/kdrive/vxworks/vxmouse.c b/hw/kdrive/vxworks/vxmouse.c
index 97e24af..8192d7e 100644
--- a/hw/kdrive/vxworks/vxmouse.c
+++ b/hw/kdrive/vxworks/vxmouse.c
@@ -1,6 +1,4 @@
 /*
- * Id: vxmouse.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
- *
  * Copyright © 1999 Network Computing Devices, Inc.  All rights reserved.
  *
  * Author: Keith Packard
diff --git a/hw/kdrive/vxworks/vxworks.c b/hw/kdrive/vxworks/vxworks.c
index 688de62..c9e2be7 100644
--- a/hw/kdrive/vxworks/vxworks.c
+++ b/hw/kdrive/vxworks/vxworks.c
@@ -1,6 +1,4 @@
 /*
- * Id: vxworks.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
- *
  * Copyright © 1999 Network Computing Devices, Inc.  All rights reserved.
  *
  * Author: Keith Packard
diff --git a/hw/xfree86/common/atKeynames.h b/hw/xfree86/common/atKeynames.h
index 1415fce..f31f533 100644
--- a/hw/xfree86/common/atKeynames.h
+++ b/hw/xfree86/common/atKeynames.h
@@ -47,8 +47,6 @@
  * authorization from the copyright holder(s) and author(s).
  */
 
-/* $XConsortium: atKeynames.h /main/11 1996/03/09 11:17:41 kaleb $ */
-
 #ifndef _ATKEYNAMES_H
 #define _ATKEYNAMES_H
 
diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index becd3da..73ca3d0 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -47,8 +47,6 @@
  * authorization from the copyright holder(s) and author(s).
  */
 
-/* $XConsortium: compiler.h /main/16 1996/10/25 15:38:34 kaleb $ */
-
 #ifndef _COMPILER_H
 
 # define _COMPILER_H
diff --git a/hw/xfree86/common/xf86Cursor.c b/hw/xfree86/common/xf86Cursor.c
index 46d8128..44c1a77 100644
--- a/hw/xfree86/common/xf86Cursor.c
+++ b/hw/xfree86/common/xf86Cursor.c
@@ -25,8 +25,6 @@
  * authorization from the copyright holder(s) and author(s).
  */
 
-/* $XConsortium: xf86Cursor.c /main/10 1996/10/19 17:58:23 kaleb $ */
-
 #define NEED_EVENTS
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/common/xf86Version.h b/hw/xfree86/common/xf86Version.h
index f7ac89b..b93ac7d 100644
--- a/hw/xfree86/common/xf86Version.h
+++ b/hw/xfree86/common/xf86Version.h
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (c) 1994-2003 by The XFree86 Project, Inc.
  *
@@ -55,5 +54,3 @@
 			0)
 
 #endif
-
-/* $XConsortium: xf86Version.h /main/78 1996/10/28 05:42:10 kaleb $ */
diff --git a/hw/xfree86/common/xf86XKB.c b/hw/xfree86/common/xf86XKB.c
index b805885..1169454 100644
--- a/hw/xfree86/common/xf86XKB.c
+++ b/hw/xfree86/common/xf86XKB.c
@@ -1,4 +1,3 @@
-/* $XConsortium: xf86XKB.c /main/4 1996/02/04 09:28:04 kaleb $ */
 /************************************************************
 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
 
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index f3d2f21..b9f7aed 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -45,7 +45,6 @@
  * the sale, use or other dealings in this Software without prior written
  * authorization from the copyright holder(s) and author(s).
  */
-/* $XConsortium: xf86Xinput.c /main/14 1996/10/27 11:05:25 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/common/xf86Xinput.h b/hw/xfree86/common/xf86Xinput.h
index f882b26..d88bbbe 100644
--- a/hw/xfree86/common/xf86Xinput.h
+++ b/hw/xfree86/common/xf86Xinput.h
@@ -1,4 +1,3 @@
-/* $XConsortium: xf86Xinput.h /main/11 1996/10/27 11:05:29 kaleb $ */
 /*
  * Copyright 1995-1999 by Frederic Lepied, France. <Lepied at XFree86.org>
  *                                                                            
diff --git a/hw/xfree86/common/xisb.h b/hw/xfree86/common/xisb.h
index 01ae675..b7bdd56 100644
--- a/hw/xfree86/common/xisb.h
+++ b/hw/xfree86/common/xisb.h
@@ -24,7 +24,6 @@
  * in this Software without prior written authorization from Metro Link.
  *
  */
-/* $XFree86$ */
 
 #ifndef	_xisb_H_
 #define _xisb_H_
diff --git a/hw/xfree86/dixmods/extmod/xf86dgaext.h b/hw/xfree86/dixmods/extmod/xf86dgaext.h
index 16fc4c8..2b17373 100644
--- a/hw/xfree86/dixmods/extmod/xf86dgaext.h
+++ b/hw/xfree86/dixmods/extmod/xf86dgaext.h
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/fatalerror.c b/hw/xfree86/dummylib/fatalerror.c
index c66ee33..e147c73 100644
--- a/hw/xfree86/dummylib/fatalerror.c
+++ b/hw/xfree86/dummylib/fatalerror.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/pcitestmulti.c b/hw/xfree86/dummylib/pcitestmulti.c
index 43e4175..65288d8 100644
--- a/hw/xfree86/dummylib/pcitestmulti.c
+++ b/hw/xfree86/dummylib/pcitestmulti.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/verrorf.c b/hw/xfree86/dummylib/verrorf.c
index ae692bd..c75d1bc 100644
--- a/hw/xfree86/dummylib/verrorf.c
+++ b/hw/xfree86/dummylib/verrorf.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/xf86allocscripi.c b/hw/xfree86/dummylib/xf86allocscripi.c
index 8abad9f..9268848 100644
--- a/hw/xfree86/dummylib/xf86allocscripi.c
+++ b/hw/xfree86/dummylib/xf86allocscripi.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/xf86getpagesize.c b/hw/xfree86/dummylib/xf86getpagesize.c
index ec13c9b..8859c76 100644
--- a/hw/xfree86/dummylib/xf86getpagesize.c
+++ b/hw/xfree86/dummylib/xf86getpagesize.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/xf86getverb.c b/hw/xfree86/dummylib/xf86getverb.c
index dae6c68..a489e9c 100644
--- a/hw/xfree86/dummylib/xf86getverb.c
+++ b/hw/xfree86/dummylib/xf86getverb.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/xf86info.c b/hw/xfree86/dummylib/xf86info.c
index bfbda9e..221a9d2 100644
--- a/hw/xfree86/dummylib/xf86info.c
+++ b/hw/xfree86/dummylib/xf86info.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/xf86screens.c b/hw/xfree86/dummylib/xf86screens.c
index 32a35ef..6288c60 100644
--- a/hw/xfree86/dummylib/xf86screens.c
+++ b/hw/xfree86/dummylib/xf86screens.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/xf86servisinit.c b/hw/xfree86/dummylib/xf86servisinit.c
index f65bf1e..c356a2b 100644
--- a/hw/xfree86/dummylib/xf86servisinit.c
+++ b/hw/xfree86/dummylib/xf86servisinit.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/dummylib/xf86verbose.c b/hw/xfree86/dummylib/xf86verbose.c
index 0d31cb1..c4a45d6 100644
--- a/hw/xfree86/dummylib/xf86verbose.c
+++ b/hw/xfree86/dummylib/xf86verbose.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/i2c/uda1380.c b/hw/xfree86/i2c/uda1380.c
index a306750..defda3c 100644
--- a/hw/xfree86/i2c/uda1380.c
+++ b/hw/xfree86/i2c/uda1380.c
@@ -1,6 +1,4 @@
 /*************************************************************************************
- * $Id$
- * 
  * Copyright (C) 2005 Bogdan D. bogdand at users.sourceforge.net
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy of this 
diff --git a/hw/xfree86/i2c/uda1380.h b/hw/xfree86/i2c/uda1380.h
index 95ad92b..e671d66 100644
--- a/hw/xfree86/i2c/uda1380.h
+++ b/hw/xfree86/i2c/uda1380.h
@@ -1,6 +1,4 @@
 /*************************************************************************************
- * $Id$
- * 
  * Copyright (C) 2005 Bogdan D. bogdand at users.sourceforge.net
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy of this 
@@ -22,7 +20,6 @@
  * otherwise to promote the sale, use or other dealings in this Software without prior written 
  * authorization from the author.
  *
- * $Log$
  * Revision 1.3  2005/09/24 21:56:00  bogdand
  * Changed the license to a X/MIT one
  *
diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c
index 5b52bd7..ea9f85b 100644
--- a/hw/xfree86/modes/xf86Modes.c
+++ b/hw/xfree86/modes/xf86Modes.c
@@ -1,6 +1,3 @@
-/* -*- c-basic-offset: 4 -*- */
-/* $XdotOrg: xserver/xorg/hw/xfree86/common/xf86Mode.c,v 1.10 2006/03/07 16:00:57 libv Exp $ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.69 2003/10/08 14:58:28 dawes Exp $ */
 /*
  * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
  *
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 9fa0f36..f5215ef 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -1,7 +1,4 @@
-/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86RandR.c,v 1.3 2004/07/30 21:53:09 eich Exp $ */
 /*
- * $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86RandR.c,v 1.7tsi Exp $
- *
  * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/xfree86/os-support/assyntax.h b/hw/xfree86/os-support/assyntax.h
index b503136..718312c 100644
--- a/hw/xfree86/os-support/assyntax.h
+++ b/hw/xfree86/os-support/assyntax.h
@@ -1,4 +1,3 @@
-
 #ifndef __ASSYNTAX_H__
 #define	__ASSYNTAX_H__
 
@@ -50,8 +49,6 @@
  * authorization from the copyright holder(s) and author(s).
  */
 
-/* $XConsortium: assyntax.h /main/5 1996/02/21 17:50:49 kaleb $ */
-
  /*
  * assyntax.h
  *
diff --git a/hw/xfree86/os-support/bsd/alpha_video.c b/hw/xfree86/os-support/bsd/alpha_video.c
index 5052b78..a1b19d0 100644
--- a/hw/xfree86/os-support/bsd/alpha_video.c
+++ b/hw/xfree86/os-support/bsd/alpha_video.c
@@ -23,8 +23,6 @@
  *
  */
 
-/* $XConsortium: bsd_video.c /main/10 1996/10/25 11:37:57 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/bsd/arm_video.c b/hw/xfree86/os-support/bsd/arm_video.c
index 4a3d5ca..b556563 100644
--- a/hw/xfree86/os-support/bsd/arm_video.c
+++ b/hw/xfree86/os-support/bsd/arm_video.c
@@ -56,8 +56,6 @@
  *
  */
 
-/* $XConsortium: bsd_video.c /main/10 1996/10/25 11:37:57 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/bsd/bsd_VTsw.c b/hw/xfree86/os-support/bsd/bsd_VTsw.c
index 00591d1..476a0e9 100644
--- a/hw/xfree86/os-support/bsd/bsd_VTsw.c
+++ b/hw/xfree86/os-support/bsd/bsd_VTsw.c
@@ -22,7 +22,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: bsd_VTsw.c /main/4 1996/02/21 17:50:57 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/bsd/bsd_apm.c b/hw/xfree86/os-support/bsd/bsd_apm.c
index c8e2043..6177987 100644
--- a/hw/xfree86/os-support/bsd/bsd_apm.c
+++ b/hw/xfree86/os-support/bsd/bsd_apm.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/bsd/bsd_init.c b/hw/xfree86/os-support/bsd/bsd_init.c
index eb6d850..07f031f 100644
--- a/hw/xfree86/os-support/bsd/bsd_init.c
+++ b/hw/xfree86/os-support/bsd/bsd_init.c
@@ -22,7 +22,6 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: bsd_init.c /main/8 1996/10/23 13:13:05 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/bsd/bsd_kmod.c b/hw/xfree86/os-support/bsd/bsd_kmod.c
index 0818010..b6c7558 100644
--- a/hw/xfree86/os-support/bsd/bsd_kmod.c
+++ b/hw/xfree86/os-support/bsd/bsd_kmod.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c b/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c
index 0a0434f..b0171e2 100644
--- a/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c
+++ b/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c
@@ -25,7 +25,6 @@
  * or other dealings in this Software without prior written authorization
  * from the XFree86 Project.
  */
-/* $OpenBSD: bsd_kqueue_apm.c,v 1.5 2002/07/30 23:07:42 matthieu Exp $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/bsd/i386_video.c b/hw/xfree86/os-support/bsd/i386_video.c
index ae16b78..e7db6c1 100644
--- a/hw/xfree86/os-support/bsd/i386_video.c
+++ b/hw/xfree86/os-support/bsd/i386_video.c
@@ -23,8 +23,6 @@
  *
  */
 
-/* $XConsortium: bsd_video.c /main/10 1996/10/25 11:37:57 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/bsd/libusb/data.c b/hw/xfree86/os-support/bsd/libusb/data.c
index df5a9d2..292e5d8 100644
--- a/hw/xfree86/os-support/bsd/libusb/data.c
+++ b/hw/xfree86/os-support/bsd/libusb/data.c
@@ -1,5 +1,3 @@
-/*	$NetBSD: data.c,v 1.6 1999/09/20 04:48:12 lukem Exp $	*/
-
 /*
  * Copyright (c) 1999 Lennart Augustsson <augustss at netbsd.org>
  * All rights reserved.
diff --git a/hw/xfree86/os-support/bsd/libusb/descr.c b/hw/xfree86/os-support/bsd/libusb/descr.c
index bbcb558..4dc3524 100644
--- a/hw/xfree86/os-support/bsd/libusb/descr.c
+++ b/hw/xfree86/os-support/bsd/libusb/descr.c
@@ -1,5 +1,3 @@
-/*	$NetBSD: descr.c,v 1.7 1999/10/13 17:48:04 drochner Exp $	*/
-
 /*
  * Copyright (c) 1999 Lennart Augustsson <augustss at netbsd.org>
  * All rights reserved.
diff --git a/hw/xfree86/os-support/bsd/libusb/parse.c b/hw/xfree86/os-support/bsd/libusb/parse.c
index c68ccb5..0a846e4 100644
--- a/hw/xfree86/os-support/bsd/libusb/parse.c
+++ b/hw/xfree86/os-support/bsd/libusb/parse.c
@@ -1,5 +1,3 @@
-/*	$NetBSD: parse.c,v 1.7 1999/10/13 17:48:04 drochner Exp $	*/
-
 /*
  * Copyright (c) 1999 Lennart Augustsson <augustss at netbsd.org>
  * All rights reserved.
diff --git a/hw/xfree86/os-support/bsd/libusb/usage.c b/hw/xfree86/os-support/bsd/libusb/usage.c
index a8a5f65..9b491c5 100644
--- a/hw/xfree86/os-support/bsd/libusb/usage.c
+++ b/hw/xfree86/os-support/bsd/libusb/usage.c
@@ -1,5 +1,3 @@
-/*	$NetBSD: usage.c,v 1.4 1999/07/02 15:46:53 simonb Exp $	*/
-
 /*
  * Copyright (c) 1999 Lennart Augustsson <augustss at netbsd.org>
  * All rights reserved.
diff --git a/hw/xfree86/os-support/bsd/libusb/usb.h b/hw/xfree86/os-support/bsd/libusb/usb.h
index fedd3e5..c39dc06 100644
--- a/hw/xfree86/os-support/bsd/libusb/usb.h
+++ b/hw/xfree86/os-support/bsd/libusb/usb.h
@@ -1,5 +1,3 @@
-/*	$NetBSD: usb.h,v 1.5 1999/07/02 15:46:53 simonb Exp $	*/
-
 /*
  * Copyright (c) 1999 Lennart Augustsson <augustss at netbsd.org>
  * All rights reserved.
diff --git a/hw/xfree86/os-support/bsd/libusb/usbvar.h b/hw/xfree86/os-support/bsd/libusb/usbvar.h
index db2cae1..ce38a07 100644
--- a/hw/xfree86/os-support/bsd/libusb/usbvar.h
+++ b/hw/xfree86/os-support/bsd/libusb/usbvar.h
@@ -1,5 +1,3 @@
-/*	$NetBSD: usbvar.h,v 1.2 1999/05/11 21:15:46 augustss Exp $	*/
-
 /*
  * Copyright (c) 1999 Lennart Augustsson <augustss at netbsd.org>
  * All rights reserved.
diff --git a/hw/xfree86/os-support/bsd/memrange.h b/hw/xfree86/os-support/bsd/memrange.h
index 0f4b270..03c4791 100644
--- a/hw/xfree86/os-support/bsd/memrange.h
+++ b/hw/xfree86/os-support/bsd/memrange.h
@@ -1,9 +1,6 @@
 /*
  * Memory range attribute operations, peformed on /dev/mem
- *
- * $FreeBSD: src/sys/sys/memrange.h,v 1.4 1999/12/29 04:24:44 peter Exp $
  */
-/* $XFree86$ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/bsd/ppc_video.c b/hw/xfree86/os-support/bsd/ppc_video.c
index 6a23b4e..06be654 100644
--- a/hw/xfree86/os-support/bsd/ppc_video.c
+++ b/hw/xfree86/os-support/bsd/ppc_video.c
@@ -23,8 +23,6 @@
  *
  */
 
-/* $XConsortium: bsd_video.c /main/10 1996/10/25 11:37:57 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/bsd/sparc64_video.c b/hw/xfree86/os-support/bsd/sparc64_video.c
index 0cb9d4d..fb5e852 100644
--- a/hw/xfree86/os-support/bsd/sparc64_video.c
+++ b/hw/xfree86/os-support/bsd/sparc64_video.c
@@ -23,9 +23,6 @@
  *
  */
 
-
-/* $XConsortium: bsd_video.c /main/10 1996/10/25 11:37:57 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/hurd/hurd_init.c b/hw/xfree86/os-support/hurd/hurd_init.c
index aec5b3d..8cd8f54 100644
--- a/hw/xfree86/os-support/hurd/hurd_init.c
+++ b/hw/xfree86/os-support/hurd/hurd_init.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/hurd_init.c,v 1.1 1998/08/16 10:25:48 dawes Exp $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/hurd/hurd_mmap.c b/hw/xfree86/os-support/hurd/hurd_mmap.c
index 5e800d2..ccef5f2 100644
--- a/hw/xfree86/os-support/hurd/hurd_mmap.c
+++ b/hw/xfree86/os-support/hurd/hurd_mmap.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XFree86$ */
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/hurd/hurd_mouse.c b/hw/xfree86/os-support/hurd/hurd_mouse.c
index ccc08a2..5f6d943 100644
--- a/hw/xfree86/os-support/hurd/hurd_mouse.c
+++ b/hw/xfree86/os-support/hurd/hurd_mouse.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/hurd_mouse.c,v 1.7 2000/02/10 22:33:44 dawes Exp $ */
 
 #define NEED_EVENTS
 #ifdef HAVE_XORG_CONFIG_H
diff --git a/hw/xfree86/os-support/hurd/hurd_video.c b/hw/xfree86/os-support/hurd/hurd_video.c
index b889283..8e6ae8d 100644
--- a/hw/xfree86/os-support/hurd/hurd_video.c
+++ b/hw/xfree86/os-support/hurd/hurd_video.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/hurd_video.c,v 1.3 1999/04/29 12:24:52 dawes Exp $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c b/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c
index 48500db..9412b07 100644
--- a/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c
+++ b/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
index 9775180..4c36b7c 100644
--- a/hw/xfree86/os-support/linux/lnx_init.c
+++ b/hw/xfree86/os-support/linux/lnx_init.c
@@ -22,7 +22,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: lnx_init.c /main/7 1996/10/23 18:46:30 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/linux/lnx_jstk.c b/hw/xfree86/os-support/linux/lnx_jstk.c
index 6ed0e44..d77631b 100644
--- a/hw/xfree86/os-support/linux/lnx_jstk.c
+++ b/hw/xfree86/os-support/linux/lnx_jstk.c
@@ -1,5 +1,3 @@
-/* $XConsortium: lnx_jstk.c /main/7 1996/02/21 17:51:36 kaleb $ */
-/* Id: lnx_jstk.c,v 1.1 1995/12/20 14:06:09 lepied Exp */
 /*
  * Copyright 1995 by Frederic Lepied, France. <fred at sugix.frmug.fr.net>       
  *                                                                            
diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
index 0bc99b0..b3494a7 100644
--- a/hw/xfree86/os-support/linux/lnx_video.c
+++ b/hw/xfree86/os-support/linux/lnx_video.c
@@ -22,7 +22,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: lnx_video.c /main/9 1996/10/19 18:06:34 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/misc/IODelay.c b/hw/xfree86/os-support/misc/IODelay.c
index 54b7c18..e4422f2 100644
--- a/hw/xfree86/os-support/misc/IODelay.c
+++ b/hw/xfree86/os-support/misc/IODelay.c
@@ -1,9 +1,6 @@
-
-/* $XConsortium: IODelay.c /main/1 1996/05/07 17:13:43 kaleb $ */
 /*******************************************************************************
   Stub for Alpha Linux
 *******************************************************************************/
-
  
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/misc/SlowBcopy.c b/hw/xfree86/os-support/misc/SlowBcopy.c
index f0ad611..7694eaa 100644
--- a/hw/xfree86/os-support/misc/SlowBcopy.c
+++ b/hw/xfree86/os-support/misc/SlowBcopy.c
@@ -1,9 +1,6 @@
-
-/* $XConsortium: SlowBcopy.c /main/1 1996/05/07 17:14:10 kaleb $ */
 /*******************************************************************************
   for Alpha Linux
 *******************************************************************************/
-
  
 /* 
  *   Create a dependency that should be immune from the effect of register
diff --git a/hw/xfree86/os-support/misc/xf86_IlHack.c b/hw/xfree86/os-support/misc/xf86_IlHack.c
index 1ec0f56..6c9871d 100644
--- a/hw/xfree86/os-support/misc/xf86_IlHack.c
+++ b/hw/xfree86/os-support/misc/xf86_IlHack.c
@@ -4,8 +4,6 @@
  *
  * Note: this doesn't work when using a compiler other than GCC.
  */
-/* $XConsortium: xf86_IlHack.c /main/4 1996/02/21 17:52:26 kaleb $ */
-
 
 #define static /**/
 #define __inline__ /**/
diff --git a/hw/xfree86/os-support/misc/xf86_Util.c b/hw/xfree86/os-support/misc/xf86_Util.c
index 77df1e2..9e69059 100644
--- a/hw/xfree86/os-support/misc/xf86_Util.c
+++ b/hw/xfree86/os-support/misc/xf86_Util.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: xf86_Util.c /main/5 1996/10/23 13:13:10 kaleb $ */
 
 /*
  * This file is for utility functions that will be shared by other pieces
diff --git a/hw/xfree86/os-support/sco/VTsw_sco.c b/hw/xfree86/os-support/sco/VTsw_sco.c
index ba2f7ad..d126e78 100644
--- a/hw/xfree86/os-support/sco/VTsw_sco.c
+++ b/hw/xfree86/os-support/sco/VTsw_sco.c
@@ -21,7 +21,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: VTsw_sco.c /main/2 1995/11/13 06:08:36 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/sco/sco_init.c b/hw/xfree86/os-support/sco/sco_init.c
index 07f30f0..5f7db34 100644
--- a/hw/xfree86/os-support/sco/sco_init.c
+++ b/hw/xfree86/os-support/sco/sco_init.c
@@ -19,7 +19,6 @@
  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $XConsortium$ */
 
 /* Re-written May 2001 to represent the current state of reality */
 
diff --git a/hw/xfree86/os-support/sco/sco_iop.c b/hw/xfree86/os-support/sco/sco_iop.c
index 4870266..bb8d06d 100644
--- a/hw/xfree86/os-support/sco/sco_iop.c
+++ b/hw/xfree86/os-support/sco/sco_iop.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /*
  * Copyright 2001 by J. Kean Johnston <jkj at caldera.com>
  *
@@ -20,7 +19,6 @@
  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $XConsortium$ */
 
 
 #ifdef HAVE_XORG_CONFIG_H
diff --git a/hw/xfree86/os-support/sco/sco_mouse.c b/hw/xfree86/os-support/sco/sco_mouse.c
index 29e1f6f..af57cde 100644
--- a/hw/xfree86/os-support/sco/sco_mouse.c
+++ b/hw/xfree86/os-support/sco/sco_mouse.c
@@ -20,8 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $XConsortium$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/sco/sco_video.c b/hw/xfree86/os-support/sco/sco_video.c
index 807028f..7edf71d 100644
--- a/hw/xfree86/os-support/sco/sco_video.c
+++ b/hw/xfree86/os-support/sco/sco_video.c
@@ -19,7 +19,6 @@
  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $XConsortium$ */
 
 /* Re-written May 2001 to represent the current state of reality */
 
diff --git a/hw/xfree86/os-support/shared/VTsw_noop.c b/hw/xfree86/os-support/shared/VTsw_noop.c
index fd05f39..a3cfe40 100644
--- a/hw/xfree86/os-support/shared/VTsw_noop.c
+++ b/hw/xfree86/os-support/shared/VTsw_noop.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: VTsw_noop.c /main/3 1996/02/21 17:53:25 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/shared/VTsw_usl.c b/hw/xfree86/os-support/shared/VTsw_usl.c
index 0100ae9..4d47314 100644
--- a/hw/xfree86/os-support/shared/VTsw_usl.c
+++ b/hw/xfree86/os-support/shared/VTsw_usl.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: VTsw_usl.c /main/3 1996/02/21 17:53:28 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/shared/bios_devmem.c b/hw/xfree86/os-support/shared/bios_devmem.c
index 86d3829..7288239 100644
--- a/hw/xfree86/os-support/shared/bios_devmem.c
+++ b/hw/xfree86/os-support/shared/bios_devmem.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: bios_devmem.c /main/5 1996/10/19 18:07:41 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/shared/bios_mmap.c b/hw/xfree86/os-support/shared/bios_mmap.c
index 40d37e0..cccf86a 100644
--- a/hw/xfree86/os-support/shared/bios_mmap.c
+++ b/hw/xfree86/os-support/shared/bios_mmap.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: bios_V4mmap.c /main/4 1996/02/21 17:54:27 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/shared/ioperm_noop.c b/hw/xfree86/os-support/shared/ioperm_noop.c
index 2427d19..1d7851a 100644
--- a/hw/xfree86/os-support/shared/ioperm_noop.c
+++ b/hw/xfree86/os-support/shared/ioperm_noop.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: ioperm_noop.c /main/3 1996/02/21 17:53:39 kaleb $ */
 
 /*
  * Some platforms don't bother with I/O permissions, 
diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
index 6e1b543..002e3a2 100644
--- a/hw/xfree86/os-support/shared/posix_tty.c
+++ b/hw/xfree86/os-support/shared/posix_tty.c
@@ -52,8 +52,6 @@
  *
  */
 
-/* $XConsortium: posix_tty.c /main/7 1996/10/19 18:07:47 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/shared/xf86Axp.h b/hw/xfree86/os-support/shared/xf86Axp.h
index 4b8b083..5e9d628 100644
--- a/hw/xfree86/os-support/shared/xf86Axp.h
+++ b/hw/xfree86/os-support/shared/xf86Axp.h
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/os-support/sysv/sysv_init.c b/hw/xfree86/os-support/sysv/sysv_init.c
index 6d0045f..170bb89 100644
--- a/hw/xfree86/os-support/sysv/sysv_init.c
+++ b/hw/xfree86/os-support/sysv/sysv_init.c
@@ -22,7 +22,6 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: sysv_init.c /main/4 1996/02/21 17:54:31 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/sysv/sysv_video.c b/hw/xfree86/os-support/sysv/sysv_video.c
index fd6d613..5811947 100644
--- a/hw/xfree86/os-support/sysv/sysv_video.c
+++ b/hw/xfree86/os-support/sysv/sysv_video.c
@@ -22,7 +22,6 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: sysv_video.c /main/8 1996/10/25 11:38:09 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/os-support/usl/usl_init.c b/hw/xfree86/os-support/usl/usl_init.c
index 120ce1b..d27b206 100644
--- a/hw/xfree86/os-support/usl/usl_init.c
+++ b/hw/xfree86/os-support/usl/usl_init.c
@@ -1,4 +1,3 @@
-/* $XdotOrg$ */
 /*
  * Copyright 2001-2005 by Kean Johnston <jkj at sco.com>
  * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
@@ -25,7 +24,6 @@
  * THIS SOFTWARE.
  *
  */
-/* $XConsortium$ */
 
 #include "X.h"
 #include "Xmd.h"
diff --git a/hw/xfree86/os-support/usl/usl_iop.c b/hw/xfree86/os-support/usl/usl_iop.c
index 23c36fb..c6382fc 100644
--- a/hw/xfree86/os-support/usl/usl_iop.c
+++ b/hw/xfree86/os-support/usl/usl_iop.c
@@ -19,7 +19,6 @@
  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $XConsortium$ */
 
 
 #include "X.h"
diff --git a/hw/xfree86/os-support/usl/usl_video.c b/hw/xfree86/os-support/usl/usl_video.c
index 160282a..41abd22 100644
--- a/hw/xfree86/os-support/usl/usl_video.c
+++ b/hw/xfree86/os-support/usl/usl_video.c
@@ -1,4 +1,3 @@
-/* $XdotOrg$ */
 /*
  * Copyrught 2005 Kean Johnston <jkj at sco.com>
  * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany
@@ -25,7 +24,6 @@
  * THIS SOFTWARE.
  *
  */
-/* $XConsortium$ */
 
 #include "X.h"
 
diff --git a/hw/xfree86/os-support/usl/usl_vtsw.c b/hw/xfree86/os-support/usl/usl_vtsw.c
index 5c6673f..812e5bd 100644
--- a/hw/xfree86/os-support/usl/usl_vtsw.c
+++ b/hw/xfree86/os-support/usl/usl_vtsw.c
@@ -1,4 +1,3 @@
-/* $XdotOrg$ */
 /*
  * Copyright 2005 by Kean Johnston <jkj at sco.com>
  * Copyright 1993 by David Wexelblat <dwex at goblin.org>
@@ -23,7 +22,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium$ */
 
 #include "X.h"
 
diff --git a/hw/xfree86/os-support/xf86_OSlib.h b/hw/xfree86/os-support/xf86_OSlib.h
index 216e2ec..fcc79be 100644
--- a/hw/xfree86/os-support/xf86_OSlib.h
+++ b/hw/xfree86/os-support/xf86_OSlib.h
@@ -65,8 +65,6 @@
  *
  */
 
-/* $XConsortium: xf86_OSlib.h /main/22 1996/10/27 11:06:31 kaleb $ */
-
 /*
  * This is private, and should not be included by any drivers.  Drivers
  * may include xf86_OSproc.h to get prototypes for public interfaces.
diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
index 75a562b..55c7eb5 100644
--- a/hw/xfree86/parser/scan.c
+++ b/hw/xfree86/parser/scan.c
@@ -1,5 +1,4 @@
 /* 
- * 
  * Copyright (c) 1997  Metro Link Incorporated
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a
diff --git a/hw/xfree86/utils/kbd_mode/bsd-kbd_mode.c b/hw/xfree86/utils/kbd_mode/bsd-kbd_mode.c
index afa8510..5f8bdbd 100644
--- a/hw/xfree86/utils/kbd_mode/bsd-kbd_mode.c
+++ b/hw/xfree86/utils/kbd_mode/bsd-kbd_mode.c
@@ -1,10 +1,5 @@
-
-
 /* Keyboard mode control program for 386BSD */
 
-
-/* $XConsortium: kbd_mode.c /main/7 1996/03/11 10:46:12 kaleb $ */
-
 #include <sys/types.h>
 #include <fcntl.h>
 #include <errno.h>
diff --git a/hw/xfree86/utils/kbd_mode/sun-kbd_mode.c b/hw/xfree86/utils/kbd_mode/sun-kbd_mode.c
index 96a4644..f2802a6 100644
--- a/hw/xfree86/utils/kbd_mode/sun-kbd_mode.c
+++ b/hw/xfree86/utils/kbd_mode/sun-kbd_mode.c
@@ -1,4 +1,3 @@
-/* $XdotOrg: $ */
 /************************************************************
 Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
 
diff --git a/hw/xfree86/utils/xorgcfg/card-cfg.h b/hw/xfree86/utils/xorgcfg/card-cfg.h
index 2c71218..fbb02a7 100644
--- a/hw/xfree86/utils/xorgcfg/card-cfg.h
+++ b/hw/xfree86/utils/xorgcfg/card-cfg.h
@@ -26,7 +26,6 @@
  *
  * Author: Paulo César Pereira de Andrade <pcpa at conectiva.com.br>
  *
- * $XFree86$
  */
 
 #include "config.h"
diff --git a/hw/xfree86/utils/xorgcfg/help.h b/hw/xfree86/utils/xorgcfg/help.h
index d582a81..141f504 100644
--- a/hw/xfree86/utils/xorgcfg/help.h
+++ b/hw/xfree86/utils/xorgcfg/help.h
@@ -25,8 +25,6 @@
  * Conectiva Linux.
  *
  * Author: Paulo César Pereira de Andrade <pcpa at conectiva.com.br>
- *
- * $XFree86$
  */
 
 /* help string definitions */
diff --git a/hw/xfree86/utils/xorgcfg/mouse-cfg.h b/hw/xfree86/utils/xorgcfg/mouse-cfg.h
index ebd7ee6..90e5980 100644
--- a/hw/xfree86/utils/xorgcfg/mouse-cfg.h
+++ b/hw/xfree86/utils/xorgcfg/mouse-cfg.h
@@ -25,8 +25,6 @@
  * Conectiva Linux.
  *
  * Author: Paulo César Pereira de Andrade <pcpa at conectiva.com.br>
- *
- * $XFree86$
  */
 
 #include "config.h"
diff --git a/hw/xfree86/utils/xorgconfig/cards.h b/hw/xfree86/utils/xorgconfig/cards.h
index b667ec6..7e1438d 100644
--- a/hw/xfree86/utils/xorgconfig/cards.h
+++ b/hw/xfree86/utils/xorgconfig/cards.h
@@ -1,10 +1,3 @@
-
-
-
-
-
-/* $XConsortium: cards.h /main/3 1996/02/21 18:12:53 kaleb $ */
-
 #ifndef CARD_DATABASE_FILE
 #define CARD_DATABASE_FILE "Cards"
 #endif
diff --git a/hw/xfree86/utils/xorgconfig/xorgconfig.c b/hw/xfree86/utils/xorgconfig/xorgconfig.c
index 5689789..736b011 100644
--- a/hw/xfree86/utils/xorgconfig/xorgconfig.c
+++ b/hw/xfree86/utils/xorgconfig/xorgconfig.c
@@ -90,7 +90,6 @@
  *  - Add font path "/TrueType/" and "/freefont/".
  *  Chisato Yamauchi(cyamauch at phyas.aichi-edu.ac.jp)
  */
-/* $XConsortium: xf86config.c /main/21 1996/10/28 05:43:57 kaleb $ */
 
 #ifdef HAVE_CONFIG_H
 # include "xorg-server.h"
diff --git a/hw/xfree86/vgahw/vgaCmap.c b/hw/xfree86/vgahw/vgaCmap.c
index c7c58d5..609376a 100644
--- a/hw/xfree86/vgahw/vgaCmap.c
+++ b/hw/xfree86/vgahw/vgaCmap.c
@@ -20,7 +20,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: vgaCmap.c /main/15 1996/10/28 05:13:44 kaleb $ */
 
 
 #ifdef HAVE_XORG_CONFIG_H
diff --git a/hw/xfree86/xaa/xaaROP.c b/hw/xfree86/xaa/xaaROP.c
index f6aacb8..155daa4 100644
--- a/hw/xfree86/xaa/xaaROP.c
+++ b/hw/xfree86/xaa/xaaROP.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xaa/xaarop.h b/hw/xfree86/xaa/xaarop.h
index 1c95727..548993c 100644
--- a/hw/xfree86/xaa/xaarop.h
+++ b/hw/xfree86/xaa/xaarop.h
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 /*
 
    int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop)
diff --git a/hw/xfree86/xf4bpp/OScompiler.h b/hw/xfree86/xf4bpp/OScompiler.h
index 65f0020..8a8bbb5 100644
--- a/hw/xfree86/xf4bpp/OScompiler.h
+++ b/hw/xfree86/xf4bpp/OScompiler.h
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: OScompiler.h /main/4 1996/02/21 17:56:09 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/emulOpStip.c b/hw/xfree86/xf4bpp/emulOpStip.c
index 22ba90c..542e9d3 100644
--- a/hw/xfree86/xf4bpp/emulOpStip.c
+++ b/hw/xfree86/xf4bpp/emulOpStip.c
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: emulOpStip.c /main/4 1996/02/21 17:56:12 kaleb $ */
 
 /* ppc OpaqueStipple
  *
diff --git a/hw/xfree86/xf4bpp/emulRepAre.c b/hw/xfree86/xf4bpp/emulRepAre.c
index 235bf9b..20fff1e 100644
--- a/hw/xfree86/xf4bpp/emulRepAre.c
+++ b/hw/xfree86/xf4bpp/emulRepAre.c
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: emulRepAre.c /main/5 1996/02/21 17:56:16 kaleb $ */
 
 /* ppc Replicate Area -- A Divide & Conquer Algorithm
  * a "ppc" Helper Function For Stipples And Tiling
diff --git a/hw/xfree86/xf4bpp/emulTile.c b/hw/xfree86/xf4bpp/emulTile.c
index ddce1da..2f2a758 100644
--- a/hw/xfree86/xf4bpp/emulTile.c
+++ b/hw/xfree86/xf4bpp/emulTile.c
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: emulTile.c /main/4 1996/02/21 17:56:23 kaleb $ */
 
 /* ppc Tile
  * P. Shupak 11/87
diff --git a/hw/xfree86/xf4bpp/ibmTrace.h b/hw/xfree86/xf4bpp/ibmTrace.h
index 1bed675..f1d8840 100644
--- a/hw/xfree86/xf4bpp/ibmTrace.h
+++ b/hw/xfree86/xf4bpp/ibmTrace.h
@@ -1,9 +1 @@
-
-
-
-
-
-/* $XConsortium: ibmTrace.h /main/3 1996/02/21 17:56:27 kaleb $ */
-
 #define TRACE(x) /* empty */
-
diff --git a/hw/xfree86/xf4bpp/mfbbres.c b/hw/xfree86/xf4bpp/mfbbres.c
index f0c3f7e..09d7ee2 100644
--- a/hw/xfree86/xf4bpp/mfbbres.c
+++ b/hw/xfree86/xf4bpp/mfbbres.c
@@ -47,7 +47,6 @@ SOFTWARE.
 
 ******************************************************************/
 /* GJA -- modified this file for vga16 */
-/* $XConsortium: mfbbres.c /main/5 1996/02/21 17:56:30 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/mfbbresd.c b/hw/xfree86/xf4bpp/mfbbresd.c
index ef80087..318d4f5 100644
--- a/hw/xfree86/xf4bpp/mfbbresd.c
+++ b/hw/xfree86/xf4bpp/mfbbresd.c
@@ -46,7 +46,6 @@ SOFTWARE.
 
 ******************************************************************/
 /* GJA -- modified this file for vga16 */
-/* $XConsortium: mfbbresd.c /main/5 1996/02/21 17:56:34 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/mfbfillarc.c b/hw/xfree86/xf4bpp/mfbfillarc.c
index 88d4f72..d5b5372 100644
--- a/hw/xfree86/xf4bpp/mfbfillarc.c
+++ b/hw/xfree86/xf4bpp/mfbfillarc.c
@@ -27,8 +27,6 @@ in this Software without prior written a
 
 /* GJA -- Took mfb code and modified it. */
 
-/* $XConsortium: mfbfillarc.c /main/4 1996/02/21 17:56:37 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/mfbhrzvert.c b/hw/xfree86/xf4bpp/mfbhrzvert.c
index 82a205e..3444f48 100644
--- a/hw/xfree86/xf4bpp/mfbhrzvert.c
+++ b/hw/xfree86/xf4bpp/mfbhrzvert.c
@@ -47,7 +47,6 @@ SOFTWARE.
 
 ******************************************************************/
 /* GJA -- modified this file for vga16 */
-/* $XConsortium: mfbhrzvert.c /main/3 1996/02/21 17:56:41 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/mfbimggblt.c b/hw/xfree86/xf4bpp/mfbimggblt.c
index b1f0b9f..bf53f4c 100644
--- a/hw/xfree86/xf4bpp/mfbimggblt.c
+++ b/hw/xfree86/xf4bpp/mfbimggblt.c
@@ -1,4 +1,3 @@
-
 /* Combined Purdue/PurduePlus patches, level 2.0, 1/17/89 */
 /***********************************************************
 
@@ -47,7 +46,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XConsortium: mfbimggblt.c /main/5 1996/02/21 17:56:44 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/mfbline.c b/hw/xfree86/xf4bpp/mfbline.c
index 82d8bd1..d2d4e0b 100644
--- a/hw/xfree86/xf4bpp/mfbline.c
+++ b/hw/xfree86/xf4bpp/mfbline.c
@@ -46,7 +46,6 @@ SOFTWARE.
 
 ******************************************************************/
 /* GJA -- modified this file for vga16 */
-/* $XConsortium: mfbline.c /main/4 1996/02/21 17:56:48 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/mfbzerarc.c b/hw/xfree86/xf4bpp/mfbzerarc.c
index 9219931..c7a8c4d 100644
--- a/hw/xfree86/xf4bpp/mfbzerarc.c
+++ b/hw/xfree86/xf4bpp/mfbzerarc.c
@@ -1,4 +1,3 @@
-
 /************************************************************
 
 Copyright (c) 1989  X Consortium
@@ -27,8 +26,6 @@ in this Software without prior written a
 ********************************************************/
 /* GJA -- Took mfb code and modified it. */
 
-/* $XConsortium: mfbzerarc.c /main/4 1996/02/21 17:56:52 kaleb $ */
-
 /* Derived from:
  * "Algorithm for drawing ellipses or hyperbolae with a digital plotter"
  * by M. L. V. Pitteway
diff --git a/hw/xfree86/xf4bpp/offscreen.c b/hw/xfree86/xf4bpp/offscreen.c
index 654be82..3160e7e 100644
--- a/hw/xfree86/xf4bpp/offscreen.c
+++ b/hw/xfree86/xf4bpp/offscreen.c
@@ -40,7 +40,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: offscreen.c /main/4 1996/02/21 17:56:55 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcArea.c b/hw/xfree86/xf4bpp/ppcArea.c
index 9c693e8..e956962 100644
--- a/hw/xfree86/xf4bpp/ppcArea.c
+++ b/hw/xfree86/xf4bpp/ppcArea.c
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: ppcArea.c /main/4 1996/02/21 17:57:02 kaleb $ */
 
 /* 
  * ppc solid area fill
diff --git a/hw/xfree86/xf4bpp/ppcBStore.c b/hw/xfree86/xf4bpp/ppcBStore.c
index 947602e..00c9446 100644
--- a/hw/xfree86/xf4bpp/ppcBStore.c
+++ b/hw/xfree86/xf4bpp/ppcBStore.c
@@ -59,7 +59,6 @@ used in advertising or publicity pertain
 software without specific, written prior permission.
 
 */
-/* $XConsortium: ppcBStore.c /main/5 1996/02/21 17:57:06 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcCReduce.c b/hw/xfree86/xf4bpp/ppcCReduce.c
index ab46f85..c567e6f 100644
--- a/hw/xfree86/xf4bpp/ppcCReduce.c
+++ b/hw/xfree86/xf4bpp/ppcCReduce.c
@@ -21,8 +21,6 @@
  *
 */
 
-/* $XConsortium: ppcCReduce.c /main/3 1996/02/21 17:57:17 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/ppcClip.c b/hw/xfree86/xf4bpp/ppcClip.c
index acfd5bd..899dba6 100644
--- a/hw/xfree86/xf4bpp/ppcClip.c
+++ b/hw/xfree86/xf4bpp/ppcClip.c
@@ -67,7 +67,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 */
-/* $XConsortium: ppcClip.c /main/4 1996/02/21 17:57:21 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcCpArea.c b/hw/xfree86/xf4bpp/ppcCpArea.c
index 2242074..891ba4b 100644
--- a/hw/xfree86/xf4bpp/ppcCpArea.c
+++ b/hw/xfree86/xf4bpp/ppcCpArea.c
@@ -21,8 +21,6 @@
  *
 */
 
-/* $XConsortium: ppcCpArea.c /main/6 1996/02/21 17:57:24 kaleb $ */
-
 /***********************************************************
 Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
 
diff --git a/hw/xfree86/xf4bpp/ppcDepth.c b/hw/xfree86/xf4bpp/ppcDepth.c
index 26a53de..2fa19ff 100644
--- a/hw/xfree86/xf4bpp/ppcDepth.c
+++ b/hw/xfree86/xf4bpp/ppcDepth.c
@@ -21,8 +21,6 @@
  *
 */
 
-/* $XConsortium: ppcDepth.c /main/3 1996/02/21 17:57:31 kaleb $ */
-
 /* Check to see if the alleged depth is acceptable for the Screen  
  *
  * T. Paquin 9/87
diff --git a/hw/xfree86/xf4bpp/ppcFillRct.c b/hw/xfree86/xf4bpp/ppcFillRct.c
index e501f65..4be732f 100644
--- a/hw/xfree86/xf4bpp/ppcFillRct.c
+++ b/hw/xfree86/xf4bpp/ppcFillRct.c
@@ -46,7 +46,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XConsortium: ppcFillRct.c /main/5 1996/02/21 17:57:35 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcGC.c b/hw/xfree86/xf4bpp/ppcGC.c
index 81441ef..b59dab3 100644
--- a/hw/xfree86/xf4bpp/ppcGC.c
+++ b/hw/xfree86/xf4bpp/ppcGC.c
@@ -68,8 +68,6 @@ SOFTWARE.
 
 */
 
-/* $XConsortium: ppcGC.c /main/6 1996/02/21 17:57:38 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/ppcGCstr.h b/hw/xfree86/xf4bpp/ppcGCstr.h
index fd064d1..c55a5f9 100644
--- a/hw/xfree86/xf4bpp/ppcGCstr.h
+++ b/hw/xfree86/xf4bpp/ppcGCstr.h
@@ -42,7 +42,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XConsortium: ppcGCstr.h /main/3 1996/02/21 17:57:42 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcGetSp.c b/hw/xfree86/xf4bpp/ppcGetSp.c
index dc31741..d88abe0 100644
--- a/hw/xfree86/xf4bpp/ppcGetSp.c
+++ b/hw/xfree86/xf4bpp/ppcGetSp.c
@@ -69,8 +69,6 @@ SOFTWARE.
 
 ******************************************************************/
 
-/* $XConsortium: ppcGetSp.c /main/5 1996/02/21 17:57:45 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/ppcIO.c b/hw/xfree86/xf4bpp/ppcIO.c
index 0d5afaf..72793cc 100644
--- a/hw/xfree86/xf4bpp/ppcIO.c
+++ b/hw/xfree86/xf4bpp/ppcIO.c
@@ -47,7 +47,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 */
-/* $XConsortium: ppcIO.c /main/8 1996/02/21 17:57:49 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcImg.c b/hw/xfree86/xf4bpp/ppcImg.c
index 6ff7e8f..3691587 100644
--- a/hw/xfree86/xf4bpp/ppcImg.c
+++ b/hw/xfree86/xf4bpp/ppcImg.c
@@ -21,8 +21,6 @@
  *
 */
 
-/* $XConsortium: ppcImg.c /main/4 1996/02/21 17:57:53 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/ppcPixFS.c b/hw/xfree86/xf4bpp/ppcPixFS.c
index 08b09e9..f24168b 100644
--- a/hw/xfree86/xf4bpp/ppcPixFS.c
+++ b/hw/xfree86/xf4bpp/ppcPixFS.c
@@ -43,7 +43,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XConsortium: ppcPixFS.c /main/3 1996/02/21 17:57:57 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcPixmap.c b/hw/xfree86/xf4bpp/ppcPixmap.c
index 9b2defd..ec181cf 100644
--- a/hw/xfree86/xf4bpp/ppcPixmap.c
+++ b/hw/xfree86/xf4bpp/ppcPixmap.c
@@ -68,7 +68,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XConsortium: ppcPixmap.c /main/5 1996/02/21 17:58:00 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcPntWin.c b/hw/xfree86/xf4bpp/ppcPntWin.c
index 85ac22e..5d7a07e 100644
--- a/hw/xfree86/xf4bpp/ppcPntWin.c
+++ b/hw/xfree86/xf4bpp/ppcPntWin.c
@@ -68,7 +68,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XConsortium: ppcPntWin.c /main/5 1996/02/21 17:58:04 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcPolyPnt.c b/hw/xfree86/xf4bpp/ppcPolyPnt.c
index 399ba3b..1d69055 100644
--- a/hw/xfree86/xf4bpp/ppcPolyPnt.c
+++ b/hw/xfree86/xf4bpp/ppcPolyPnt.c
@@ -67,7 +67,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 */
-/* $XConsortium: ppcPolyPnt.c /main/5 1996/02/21 17:58:07 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcQuery.c b/hw/xfree86/xf4bpp/ppcQuery.c
index 810b81f..d42360d 100644
--- a/hw/xfree86/xf4bpp/ppcQuery.c
+++ b/hw/xfree86/xf4bpp/ppcQuery.c
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: ppcQuery.c /main/3 1996/02/21 17:58:18 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcRslvC.c b/hw/xfree86/xf4bpp/ppcRslvC.c
index e4601e2..0337feb 100644
--- a/hw/xfree86/xf4bpp/ppcRslvC.c
+++ b/hw/xfree86/xf4bpp/ppcRslvC.c
@@ -50,8 +50,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
 */
 
-/* $XConsortium: ppcRslvC.c /main/7 1996/02/21 17:58:25 kaleb $ */
-
 /* Generic Color Resolution Scheme
  * P. Shupak 12/31/87
  */
diff --git a/hw/xfree86/xf4bpp/ppcSetSp.c b/hw/xfree86/xf4bpp/ppcSetSp.c
index 350cb9b..7659384 100644
--- a/hw/xfree86/xf4bpp/ppcSetSp.c
+++ b/hw/xfree86/xf4bpp/ppcSetSp.c
@@ -68,7 +68,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XConsortium: ppcSetSp.c /main/5 1996/02/21 17:58:32 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcSpMcro.h b/hw/xfree86/xf4bpp/ppcSpMcro.h
index 41245ce..2b7f951 100644
--- a/hw/xfree86/xf4bpp/ppcSpMcro.h
+++ b/hw/xfree86/xf4bpp/ppcSpMcro.h
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: ppcSpMcro.h /main/3 1996/02/21 17:58:36 kaleb $ */
 
 /* This screwy macro is used in all the spans routines and you find
    it all over the place, so it is a macro just to tidy things up.
diff --git a/hw/xfree86/xf4bpp/ppcWinFS.c b/hw/xfree86/xf4bpp/ppcWinFS.c
index bd9b128..e19ce0d 100644
--- a/hw/xfree86/xf4bpp/ppcWinFS.c
+++ b/hw/xfree86/xf4bpp/ppcWinFS.c
@@ -43,7 +43,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XConsortium: ppcWinFS.c /main/3 1996/02/21 17:58:39 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/ppcWindow.c b/hw/xfree86/xf4bpp/ppcWindow.c
index 11c5e34..01768d9 100644
--- a/hw/xfree86/xf4bpp/ppcWindow.c
+++ b/hw/xfree86/xf4bpp/ppcWindow.c
@@ -67,7 +67,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 */
-/* $XConsortium: ppcWindow.c /main/5 1996/02/21 17:58:43 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/vgaBitBlt.c b/hw/xfree86/xf4bpp/vgaBitBlt.c
index e51e0dc..2e89f43 100644
--- a/hw/xfree86/xf4bpp/vgaBitBlt.c
+++ b/hw/xfree86/xf4bpp/vgaBitBlt.c
@@ -1,9 +1,5 @@
 /* GJA -- span move routines */
 
-
-
-/* $XConsortium: vgaBitBlt.c /main/8 1996/10/27 11:06:39 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/vgaGC.c b/hw/xfree86/xf4bpp/vgaGC.c
index fd33727..5a86040 100644
--- a/hw/xfree86/xf4bpp/vgaGC.c
+++ b/hw/xfree86/xf4bpp/vgaGC.c
@@ -68,8 +68,6 @@ SOFTWARE.
 
 */
 
-/* $XConsortium: vgaGC.c /main/6 1996/02/21 17:58:54 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/vgaImages.c b/hw/xfree86/xf4bpp/vgaImages.c
index 22f8d8f..bea2d0a 100644
--- a/hw/xfree86/xf4bpp/vgaImages.c
+++ b/hw/xfree86/xf4bpp/vgaImages.c
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: vgaImages.c /main/5 1996/02/21 17:58:58 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/vgaReg.h b/hw/xfree86/xf4bpp/vgaReg.h
index c516525..32ec0da 100644
--- a/hw/xfree86/xf4bpp/vgaReg.h
+++ b/hw/xfree86/xf4bpp/vgaReg.h
@@ -21,8 +21,6 @@
  *
 */
 
-/* $XConsortium: vgaReg.h /main/4 1996/02/21 17:59:02 kaleb $ */
-
 #define SET_BYTE_REGISTER( ioport, value )	outb( ioport, value )
 #define SET_INDEX_REGISTER( ioport, value ) SET_BYTE_REGISTER( ioport, value )
 #define SET_DATA_REGISTER( ioport, value ) SET_BYTE_REGISTER( ioport, value )
diff --git a/hw/xfree86/xf4bpp/vgaSolid.c b/hw/xfree86/xf4bpp/vgaSolid.c
index 562b1eb..501bd3d 100644
--- a/hw/xfree86/xf4bpp/vgaSolid.c
+++ b/hw/xfree86/xf4bpp/vgaSolid.c
@@ -21,8 +21,6 @@
  *
 */
 
-/* $XConsortium: vgaSolid.c /main/5 1996/02/21 17:59:06 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/vgaStipple.c b/hw/xfree86/xf4bpp/vgaStipple.c
index b81305b..5ad5302 100644
--- a/hw/xfree86/xf4bpp/vgaStipple.c
+++ b/hw/xfree86/xf4bpp/vgaStipple.c
@@ -20,7 +20,6 @@
  * SOFTWARE.
  *
 */
-/* $XConsortium: vgaStipple.c /main/5 1996/02/21 17:59:10 kaleb $ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/hw/xfree86/xf4bpp/vgaVideo.h b/hw/xfree86/xf4bpp/vgaVideo.h
index 14e85ef..60afa5b 100644
--- a/hw/xfree86/xf4bpp/vgaVideo.h
+++ b/hw/xfree86/xf4bpp/vgaVideo.h
@@ -21,8 +21,6 @@
  *
 */
 
-/* $XConsortium: vgaVideo.h /main/4 1996/02/21 17:59:14 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/wm3.c b/hw/xfree86/xf4bpp/wm3.c
index 24ecf3d..3a57221 100644
--- a/hw/xfree86/xf4bpp/wm3.c
+++ b/hw/xfree86/xf4bpp/wm3.c
@@ -1,10 +1,3 @@
-
-
-
-
-
-/* $XConsortium: wm3.c /main/5 1996/02/21 17:59:21 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf4bpp/wm3.h b/hw/xfree86/xf4bpp/wm3.h
index 2d66557..1137232 100644
--- a/hw/xfree86/xf4bpp/wm3.h
+++ b/hw/xfree86/xf4bpp/wm3.h
@@ -1,10 +1,3 @@
-
-
-
-
-
-/* $XConsortium: wm3.h /main/4 1996/02/21 17:59:24 kaleb $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf8_32bpp/cfbcpyplane.c b/hw/xfree86/xf8_32bpp/cfbcpyplane.c
index 011b9e7..e10b525 100644
--- a/hw/xfree86/xf8_32bpp/cfbcpyplane.c
+++ b/hw/xfree86/xf8_32bpp/cfbcpyplane.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xfree86/xf8_32bpp/cfbgcmisc.c b/hw/xfree86/xf8_32bpp/cfbgcmisc.c
index 3d1af09..f009afc 100644
--- a/hw/xfree86/xf8_32bpp/cfbgcmisc.c
+++ b/hw/xfree86/xf8_32bpp/cfbgcmisc.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
diff --git a/hw/xgl/egl/evdev.c b/hw/xgl/egl/evdev.c
index ebfe265..fff4524 100644
--- a/hw/xgl/egl/evdev.c
+++ b/hw/xgl/egl/evdev.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/hw/xgl/egl/kinput.c b/hw/xgl/egl/kinput.c
index 5fd23f5..981cffc 100644
--- a/hw/xgl/egl/kinput.c
+++ b/hw/xgl/egl/kinput.c
@@ -1,6 +1,4 @@
 /*
- * Id: kinput.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright  1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.30 2002/11/13 16:37:39 keithp Exp $ */
 
 #include <xgl-config.h>
 
diff --git a/hw/xgl/egl/kkeymap.h b/hw/xgl/egl/kkeymap.h
index 9a21d35..920e807 100644
--- a/hw/xgl/egl/kkeymap.h
+++ b/hw/xgl/egl/kkeymap.h
@@ -1,6 +1,4 @@
 /*
- * Id: kkeymap.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
- *
  * Copyright  1999 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -21,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $RCSId: xc/programs/Xserver/hw/kdrive/kkeymap.h,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
 /*
  *  All global variables and functions pertaining to keyboard key mapping
  *  live in this header file.
diff --git a/hw/xnest/Args.c b/hw/xnest/Args.c
index c2e8b0d..f061f9e 100644
--- a/hw/xnest/Args.c
+++ b/hw/xnest/Args.c
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifdef HAVE_XNEST_CONFIG_H
 #include <xnest-config.h>
diff --git a/hw/xnest/Args.h b/hw/xnest/Args.h
index 38090fd..c3002bf 100644
--- a/hw/xnest/Args.h
+++ b/hw/xnest/Args.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTARGC_H
 #define XNESTARGS_H
diff --git a/hw/xnest/Color.c b/hw/xnest/Color.c
index 2dd6097..5ba0bdb 100644
--- a/hw/xnest/Color.c
+++ b/hw/xnest/Color.c
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifdef HAVE_XNEST_CONFIG_H
 #include <xnest-config.h>
diff --git a/hw/xnest/Color.h b/hw/xnest/Color.h
index aec0a24..f00bde4 100644
--- a/hw/xnest/Color.h
+++ b/hw/xnest/Color.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTCOLOR_H
 #define XNESTCOLOR_H
diff --git a/hw/xnest/Drawable.h b/hw/xnest/Drawable.h
index 61159c9..d94916e 100644
--- a/hw/xnest/Drawable.h
+++ b/hw/xnest/Drawable.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTDRAWABLE_H
 #define XNESTDRAWABLE_H
diff --git a/hw/xnest/Events.h b/hw/xnest/Events.h
index cdad9f3..2441acc 100644
--- a/hw/xnest/Events.h
+++ b/hw/xnest/Events.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTEVENTS_H
 #define XNESTEVENTS_H
diff --git a/hw/xnest/GCOps.h b/hw/xnest/GCOps.h
index fce9d6c..ca4cf33 100644
--- a/hw/xnest/GCOps.h
+++ b/hw/xnest/GCOps.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTGCOPS_H
 #define XNESTGCOPS_H
diff --git a/hw/xnest/Handlers.h b/hw/xnest/Handlers.h
index fe06421..16228a0 100644
--- a/hw/xnest/Handlers.h
+++ b/hw/xnest/Handlers.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTHANDLERS_H
 #define XNESTHANDLERS_H
diff --git a/hw/xnest/Keyboard.h b/hw/xnest/Keyboard.h
index d87866c..546a1cb 100644
--- a/hw/xnest/Keyboard.h
+++ b/hw/xnest/Keyboard.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTKEYBOARD_H
 #define XNESTKEYBOARD_H
diff --git a/hw/xnest/Pointer.c b/hw/xnest/Pointer.c
index 912b6fa..b0de13b 100644
--- a/hw/xnest/Pointer.c
+++ b/hw/xnest/Pointer.c
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifdef HAVE_XNEST_CONFIG_H
 #include <xnest-config.h>
diff --git a/hw/xnest/Pointer.h b/hw/xnest/Pointer.h
index 2012db4..890726f 100644
--- a/hw/xnest/Pointer.h
+++ b/hw/xnest/Pointer.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTPOINTER_H
 #define XNESTPOINTER_H
diff --git a/hw/xnest/Screen.h b/hw/xnest/Screen.h
index db298e3..b113c64 100644
--- a/hw/xnest/Screen.h
+++ b/hw/xnest/Screen.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTSCREEN_H
 #define XNESTSCREEN_H
diff --git a/hw/xnest/Visual.c b/hw/xnest/Visual.c
index 628e22a..da1d63c 100644
--- a/hw/xnest/Visual.c
+++ b/hw/xnest/Visual.c
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifdef HAVE_XNEST_CONFIG_H
 #include <xnest-config.h>
diff --git a/hw/xnest/Visual.h b/hw/xnest/Visual.h
index c2d715a..1bd2037 100644
--- a/hw/xnest/Visual.h
+++ b/hw/xnest/Visual.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTVISUAL_H
 #define XNESTVISUAL_H
diff --git a/hw/xnest/XNFont.h b/hw/xnest/XNFont.h
index f7b9e38..92c112f 100644
--- a/hw/xnest/XNFont.h
+++ b/hw/xnest/XNFont.h
@@ -11,8 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
-
 
 #ifndef XNESTFONT_H
 #define XNESTFONT_H
diff --git a/hw/xnest/XNGC.h b/hw/xnest/XNGC.h
index a595087..d3ac3df 100644
--- a/hw/xnest/XNGC.h
+++ b/hw/xnest/XNGC.h
@@ -11,7 +11,6 @@ the suitability of this software for any
 is" without express or implied warranty.
 
 */
-/* $XFree86$ */
 
 #ifndef XNESTGC_H
 #define XNESTGC_H
diff --git a/hw/xnest/Xnest.h b/hw/xnest/Xnest.h
index 8ed3f89..827030c 100644
--- a/hw/xnest/Xnest.h
+++ b/hw/xnest/Xnest.h
@@ -27,7 +27,6 @@ other dealings in this Software without 
 from the X Consortium.
 
 */
-/* $XFree86$ */
 
 /* 
 ** Machines with a 64 bit library interface and a 32 bit server require
diff --git a/hw/xprint/ValTree.c b/hw/xprint/ValTree.c
index 60e340d..5f58de7 100644
--- a/hw/xprint/ValTree.c
+++ b/hw/xprint/ValTree.c
@@ -29,7 +29,6 @@ not be used in advertising or otherwise 
 dealings in this Software without prior written authorization from said
 copyright holders.
 */
-/* $XFree86$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/hw/xprint/pcl/PclFonts.c b/hw/xprint/pcl/PclFonts.c
index 716c48d..9e993f7 100644
--- a/hw/xprint/pcl/PclFonts.c
+++ b/hw/xprint/pcl/PclFonts.c
@@ -12,7 +12,6 @@
 **    *********************************************************
 ** 
 ********************************************************************/
-/* $XFree86$ */
 /*
 (c) Copyright 1996 Hewlett-Packard Company
 (c) Copyright 1996 International Business Machines Corp.
diff --git a/hw/xprint/spooler.c b/hw/xprint/spooler.c
index e3022b0..69b5eed 100644
--- a/hw/xprint/spooler.c
+++ b/hw/xprint/spooler.c
@@ -1,4 +1,3 @@
-
 /*
 Copyright (c) 2003-2004 Roland Mainz <roland.mainz at nrubsig.org>
 Copyright (c) 2004      Sun Microsystems, Inc.
diff --git a/hw/xwin/InitInput.c b/hw/xwin/InitInput.c
index 52f837e..6a850cd 100644
--- a/hw/xwin/InitInput.c
+++ b/hw/xwin/InitInput.c
@@ -1,4 +1,3 @@
-/* $TOG: InitInput.c /main/12 1998/02/10 13:23:52 kaleb $ */
 /*
 
   Copyright 1993, 1998  The Open Group
diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
index 9457c9c..f966d40 100644
--- a/hw/xwin/InitOutput.c
+++ b/hw/xwin/InitOutput.c
@@ -1,4 +1,3 @@
-/* $TOG: InitOutput.c /main/20 1998/02/10 13:23:56 kaleb $ */
 /*
 
 Copyright 1993, 1998  The Open Group
diff --git a/hw/xwin/ddraw.h b/hw/xwin/ddraw.h
index 0bb7aef..2eb7c26 100644
--- a/hw/xwin/ddraw.h
+++ b/hw/xwin/ddraw.h
@@ -1,5 +1,3 @@
-/* $Id$ */
-
 #ifndef __XWIN_DDRAW_H
 #define __XWIN_DDRAW_H
 
diff --git a/hw/xwin/winconfig.h b/hw/xwin/winconfig.h
index 8b77025..8fd9841 100644
--- a/hw/xwin/winconfig.h
+++ b/hw/xwin/winconfig.h
@@ -29,7 +29,6 @@
  *
  * Authors: Alexander Gottwald	
  */
-/* $Id$ */
 
 #include "win.h"
 #ifdef XWIN_XF86CONFIG
diff --git a/hw/xwin/winkeymap.h b/hw/xwin/winkeymap.h
index 0c633cd..3862f03 100644
--- a/hw/xwin/winkeymap.h
+++ b/hw/xwin/winkeymap.h
@@ -3,7 +3,6 @@
  * For Scancodes see notes in winkeynames.h  !!!!
  *
  */
-/* $XConsortium: xf86Keymap.h /main/14 1996/02/21 17:38:47 kaleb $ */
 
 static KeySym map[NUM_KEYCODES * GLYPHS_PER_KEY] = {
     /* 0x00 */  NoSymbol,       NoSymbol,	NoSymbol,	NoSymbol,
diff --git a/hw/xwin/winkeynames.h b/hw/xwin/winkeynames.h
index 6d480a3..7c16337 100644
--- a/hw/xwin/winkeynames.h
+++ b/hw/xwin/winkeynames.h
@@ -22,7 +22,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  *
  */
-/* $XConsortium: atKeynames.h /main/11 1996/03/09 11:17:41 kaleb $ */
 
 #define XK_TECHNICAL
 #define	XK_KATAKANA
diff --git a/hw/xwin/winmsg.c b/hw/xwin/winmsg.c
index 5397410..d0464f7 100644
--- a/hw/xwin/winmsg.c
+++ b/hw/xwin/winmsg.c
@@ -27,7 +27,6 @@
  *
  * Authors: Alexander Gottwald	
  */
-/* $XFree86$ */
 
 #ifdef HAVE_XWIN_CONFIG_H
 #include <xwin-config.h>
diff --git a/hw/xwin/winmsg.h b/hw/xwin/winmsg.h
index 367086c..611dd69 100644
--- a/hw/xwin/winmsg.h
+++ b/hw/xwin/winmsg.h
@@ -29,8 +29,6 @@
  *
  * Authors: Alexander Gottwald	
  */
-/* $XFree86$ */
-
 
 /*
  * Function prototypes
diff --git a/hw/xwin/winmultiwindowclass.c b/hw/xwin/winmultiwindowclass.c
index 57c4346..5b47c39 100755
--- a/hw/xwin/winmultiwindowclass.c
+++ b/hw/xwin/winmultiwindowclass.c
@@ -27,7 +27,6 @@
  *
  * Authors:     Earle F. Philhower, III
  */
-/* $XFree86$ */
 
 #ifdef HAVE_XWIN_CONFIG_H
 #include <xwin-config.h>
diff --git a/hw/xwin/winmultiwindowclass.h b/hw/xwin/winmultiwindowclass.h
index 0b430f2..c635ab2 100755
--- a/hw/xwin/winmultiwindowclass.h
+++ b/hw/xwin/winmultiwindowclass.h
@@ -29,8 +29,6 @@
  *
  * Authors:     Earle F. Philhower, III
  */
-/* $XFree86$ */
-
 
 /*
  * Structures
diff --git a/hw/xwin/winprefs.c b/hw/xwin/winprefs.c
index 0541f78..30e587d 100644
--- a/hw/xwin/winprefs.c
+++ b/hw/xwin/winprefs.c
@@ -27,7 +27,6 @@
  *
  * Authors:     Earle F. Philhower, III
  */
-/* $XFree86: $ */
 
 #ifdef HAVE_XWIN_CONFIG_H
 #include <xwin-config.h>
diff --git a/hw/xwin/winprefs.h b/hw/xwin/winprefs.h
index 2e58e5e..d9e09de 100644
--- a/hw/xwin/winprefs.h
+++ b/hw/xwin/winprefs.h
@@ -29,7 +29,6 @@
  *
  * Authors:     Earle F. Philhower, III
  */
-/* $XFree86: $ */
 
 /* Need Bool */
 #include <X11/Xdefs.h>
diff --git a/hw/xwin/winrop.c b/hw/xwin/winrop.c
index 1102929..f481892 100644
--- a/hw/xwin/winrop.c
+++ b/hw/xwin/winrop.c
@@ -27,7 +27,6 @@
  *
  * 	Authors:	Alan Hourihane <alanh at fairlite.demon.co.uk>
  */
-/* $XFree86$ */
 
 /*
  * Raster operations used by Windows translated to X's 16 rop codes...
diff --git a/hw/xwin/wintrayicon.c b/hw/xwin/wintrayicon.c
index bf7305c..054a8e9 100755
--- a/hw/xwin/wintrayicon.c
+++ b/hw/xwin/wintrayicon.c
@@ -28,7 +28,6 @@
  * Authors:	Early Ehlinger
  *		Harold L Hunt II
  */
-/* $XFree86: $ */
 
 #ifdef HAVE_XWIN_CONFIG_H
 #include <xwin-config.h>
diff --git a/include/pixmap.h b/include/pixmap.h
index 19e682a..5ff0b8c 100644
--- a/include/pixmap.h
+++ b/include/pixmap.h
@@ -44,7 +44,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XFree86$ */
 
 #ifndef PIXMAP_H
 #define PIXMAP_H
diff --git a/include/pixmapstr.h b/include/pixmapstr.h
index 93bd45d..4594882 100644
--- a/include/pixmapstr.h
+++ b/include/pixmapstr.h
@@ -44,7 +44,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XFree86$ */
 
 #ifndef PIXMAPSTRUCT_H
 #define PIXMAPSTRUCT_H
diff --git a/include/window.h b/include/window.h
index cd8c5b2..312b75e 100644
--- a/include/window.h
+++ b/include/window.h
@@ -44,7 +44,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XFree86$ */
 
 #ifndef WINDOW_H
 #define WINDOW_H
diff --git a/mfb/mfbwindow.c b/mfb/mfbwindow.c
index f65f45e..b138d58 100644
--- a/mfb/mfbwindow.c
+++ b/mfb/mfbwindow.c
@@ -45,7 +45,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XFree86$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/mi/mipoly.c b/mi/mipoly.c
index ea0406f..4c77fc2 100644
--- a/mi/mipoly.c
+++ b/mi/mipoly.c
@@ -1,4 +1,3 @@
-/* $XFree86$ */
 /***********************************************************
 
 Copyright 1987, 1998  The Open Group
diff --git a/mi/mistruct.h b/mi/mistruct.h
index 9b9de86..e9cfed5 100644
--- a/mi/mistruct.h
+++ b/mi/mistruct.h
@@ -44,7 +44,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 SOFTWARE.
 
 ******************************************************************/
-/* $XFree86$ */
 
 #ifndef MISTRUCT_H
 #define MISTRUCT_H
diff --git a/mi/mivalidate.h b/mi/mivalidate.h
index 9185832..ef258c0 100644
--- a/mi/mivalidate.h
+++ b/mi/mivalidate.h
@@ -25,8 +25,6 @@ other dealings in this Software without 
 from The Open Group.
 
 */
-/* $XFree86$ */
-
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/miext/cw/cw.c b/miext/cw/cw.c
index 6950271..7ee013b 100644
--- a/miext/cw/cw.c
+++ b/miext/cw/cw.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/miext/cw/cw.h b/miext/cw/cw.h
index 69abbbf..0d57b9b 100644
--- a/miext/cw/cw.h
+++ b/miext/cw/cw.h
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/miext/cw/cw_ops.c b/miext/cw/cw_ops.c
index 82ec999..9ae56cb 100644
--- a/miext/cw/cw_ops.c
+++ b/miext/cw/cw_ops.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/miext/cw/cw_render.c b/miext/cw/cw_render.c
index beb9060..35416be 100644
--- a/miext/cw/cw_render.c
+++ b/miext/cw/cw_render.c
@@ -19,7 +19,6 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-/* $Header$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/miext/damage/damage.c b/miext/damage/damage.c
index d930747..2acff11 100755
--- a/miext/damage/damage.c
+++ b/miext/damage/damage.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/damage/damage.h b/miext/damage/damage.h
index 36a0654..4cfc812 100755
--- a/miext/damage/damage.h
+++ b/miext/damage/damage.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/damage/damagestr.h b/miext/damage/damagestr.h
index 83a202b..58ee2bb 100755
--- a/miext/damage/damagestr.h
+++ b/miext/damage/damagestr.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shadow.c b/miext/shadow/shadow.c
index b4a739b..f624216 100644
--- a/miext/shadow/shadow.c
+++ b/miext/shadow/shadow.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shalloc.c b/miext/shadow/shalloc.c
index 5c01f2a..72aa28b 100644
--- a/miext/shadow/shalloc.c
+++ b/miext/shadow/shalloc.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot16pack.c b/miext/shadow/shrot16pack.c
index 2ec41bb..0b7faca 100644
--- a/miext/shadow/shrot16pack.c
+++ b/miext/shadow/shrot16pack.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot16pack_180.c b/miext/shadow/shrot16pack_180.c
index 06b1603..d8f2633 100644
--- a/miext/shadow/shrot16pack_180.c
+++ b/miext/shadow/shrot16pack_180.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot16pack_270.c b/miext/shadow/shrot16pack_270.c
index 1ad952e..4aa4713 100644
--- a/miext/shadow/shrot16pack_270.c
+++ b/miext/shadow/shrot16pack_270.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot16pack_270YX.c b/miext/shadow/shrot16pack_270YX.c
index 3a3dfa8..0df1fd5 100644
--- a/miext/shadow/shrot16pack_270YX.c
+++ b/miext/shadow/shrot16pack_270YX.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright  2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot16pack_90.c b/miext/shadow/shrot16pack_90.c
index cfef778..81e4915 100644
--- a/miext/shadow/shrot16pack_90.c
+++ b/miext/shadow/shrot16pack_90.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot16pack_90YX.c b/miext/shadow/shrot16pack_90YX.c
index 2eb7215..5fc3b23 100644
--- a/miext/shadow/shrot16pack_90YX.c
+++ b/miext/shadow/shrot16pack_90YX.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright  2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot32pack.c b/miext/shadow/shrot32pack.c
index 95c7c29..4a9cbc0 100644
--- a/miext/shadow/shrot32pack.c
+++ b/miext/shadow/shrot32pack.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot32pack_180.c b/miext/shadow/shrot32pack_180.c
index cbadba5..8f5fb57 100644
--- a/miext/shadow/shrot32pack_180.c
+++ b/miext/shadow/shrot32pack_180.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot32pack_270.c b/miext/shadow/shrot32pack_270.c
index 8f434b0..7d52fd2 100644
--- a/miext/shadow/shrot32pack_270.c
+++ b/miext/shadow/shrot32pack_270.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot32pack_90.c b/miext/shadow/shrot32pack_90.c
index 98c22c3..0abeb5c 100644
--- a/miext/shadow/shrot32pack_90.c
+++ b/miext/shadow/shrot32pack_90.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot8pack.c b/miext/shadow/shrot8pack.c
index 9e77f43..552d838 100644
--- a/miext/shadow/shrot8pack.c
+++ b/miext/shadow/shrot8pack.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot8pack_180.c b/miext/shadow/shrot8pack_180.c
index 6f4eca9..526d8f1 100644
--- a/miext/shadow/shrot8pack_180.c
+++ b/miext/shadow/shrot8pack_180.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot8pack_270.c b/miext/shadow/shrot8pack_270.c
index d56a336..73f82a7 100644
--- a/miext/shadow/shrot8pack_270.c
+++ b/miext/shadow/shrot8pack_270.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrot8pack_90.c b/miext/shadow/shrot8pack_90.c
index 2fed812..73060ca 100644
--- a/miext/shadow/shrot8pack_90.c
+++ b/miext/shadow/shrot8pack_90.c
@@ -1,6 +1,4 @@
 /*
- * $XFree86$
- *
  * Copyright © 2000 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/miext/shadow/shrotpackYX.h b/miext/shadow/shrotpackYX.h
index f51da2f..8ef70f1 100644
--- a/miext/shadow/shrotpackYX.h
+++ b/miext/shadow/shrotpackYX.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Philip Blundell
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/os/strlcat.c b/os/strlcat.c
index 28e2338..b57fcc5 100644
--- a/os/strlcat.c
+++ b/os/strlcat.c
@@ -1,5 +1,3 @@
-/*	$OpenBSD: strlcat.c,v 1.10 2003/04/12 21:56:39 millert Exp $	*/
-
 /*
  * Copyright (c) 1998 Todd C. Miller <Todd.Miller at courtesan.com>
  *
@@ -15,7 +13,6 @@
  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-/* $XFree86$ */
 
 
 #ifdef HAVE_XORG_CONFIG_H
diff --git a/os/strlcpy.c b/os/strlcpy.c
index 42442cc..989d038 100644
--- a/os/strlcpy.c
+++ b/os/strlcpy.c
@@ -1,5 +1,3 @@
-/*	$OpenBSD: strlcpy.c,v 1.7 2003/04/12 21:56:39 millert Exp $	*/
-
 /*
  * Copyright (c) 1998 Todd C. Miller <Todd.Miller at courtesan.com>
  *
@@ -15,7 +13,6 @@
  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-/* $XFree86$ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
diff --git a/record/set.h b/record/set.h
index f156bf8..3246a16 100644
--- a/record/set.h
+++ b/record/set.h
@@ -1,4 +1,3 @@
-
 /*
 
 Copyright 1995, 1998  The Open Group
@@ -26,7 +25,6 @@ other dealings in this Software without 
 from The Open Group.
 
 */
-/* $XFree86$ */
 
 /*
 	  A Set Abstract Data Type (ADT) for the RECORD Extension
diff --git a/render/filter.c b/render/filter.c
index 71375da..092313f 100644
--- a/render/filter.c
+++ b/render/filter.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/render/picturestr.h b/render/picturestr.h
index 06530e2..01572ec 100644
--- a/render/picturestr.h
+++ b/render/picturestr.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2000 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/render/renderedge.c b/render/renderedge.c
index e92174f..d0ee307 100644
--- a/render/renderedge.c
+++ b/render/renderedge.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/render/renderedge.h b/render/renderedge.h
index 38f9f09..644d9d9 100644
--- a/render/renderedge.h
+++ b/render/renderedge.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2004 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
index 3cdacc0..401c403 100755
--- a/xfixes/cursor.c
+++ b/xfixes/cursor.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2006 Sun Microsystems
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/xfixes/region.c b/xfixes/region.c
index 91e9fc9..d4316be 100755
--- a/xfixes/region.c
+++ b/xfixes/region.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2003 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/xfixes/saveset.c b/xfixes/saveset.c
index ab75619..8d66843 100755
--- a/xfixes/saveset.c
+++ b/xfixes/saveset.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/xfixes/select.c b/xfixes/select.c
index f0a9f2f..c007680 100755
--- a/xfixes/select.c
+++ b/xfixes/select.c
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/xfixes/xfixes.h b/xfixes/xfixes.h
index 0f1e3b0..81dd83d 100755
--- a/xfixes/xfixes.h
+++ b/xfixes/xfixes.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/xfixes/xfixesint.h b/xfixes/xfixesint.h
index 7f3b119..48927ae 100755
--- a/xfixes/xfixesint.h
+++ b/xfixes/xfixesint.h
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * Copyright © 2006 Sun Microsystems
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/xkb/ddxFakeBtn.c b/xkb/ddxFakeBtn.c
index 7722223..8144fd2 100644
--- a/xkb/ddxFakeBtn.c
+++ b/xkb/ddxFakeBtn.c
@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF
 THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 ********************************************************/
-/* $XFree86$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/xkb/ddxInit.c b/xkb/ddxInit.c
index 3bcf9d6..4c78a62 100644
--- a/xkb/ddxInit.c
+++ b/xkb/ddxInit.c
@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF
 THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 ********************************************************/
-/* $XFree86$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/xkb/ddxKeyClick.c b/xkb/ddxKeyClick.c
index 685ae1b..f48296d 100644
--- a/xkb/ddxKeyClick.c
+++ b/xkb/ddxKeyClick.c
@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF
 THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 ********************************************************/
-/* $XFree86$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/xkb/ddxLEDs.c b/xkb/ddxLEDs.c
index 22899d7..b4c8086 100644
--- a/xkb/ddxLEDs.c
+++ b/xkb/ddxLEDs.c
@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF
 THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 ********************************************************/
-/* $XFree86$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/xkb/xkbPrOtherEv.c b/xkb/xkbPrOtherEv.c
index f84e709..a2ea090 100644
--- a/xkb/xkbPrOtherEv.c
+++ b/xkb/xkbPrOtherEv.c
@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF
 THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 ********************************************************/
-/* $XFree86$ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/xkb/xkbout.c b/xkb/xkbout.c
index bdec8e7..8905ef4 100644
--- a/xkb/xkbout.c
+++ b/xkb/xkbout.c
@@ -1,4 +1,3 @@
-/* $Xorg: xkbout.c,v 1.3 2000/08/17 19:46:44 cpqbld Exp $ */
 /************************************************************
  Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
 
@@ -24,7 +23,6 @@
  THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
  ********************************************************/
-/* $XFree86: xc/lib/xkbfile/xkbout.c,v 3.9 2001/10/28 03:32:47 tsi Exp $ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff --git a/xkb/xkbtext.c b/xkb/xkbtext.c
index 3a50371..4983e2b 100644
--- a/xkb/xkbtext.c
+++ b/xkb/xkbtext.c
@@ -1,4 +1,3 @@
-/* $Xorg: xkbtext.c,v 1.3 2000/08/17 19:46:44 cpqbld Exp $ */
 /************************************************************
  Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
 
@@ -24,7 +23,6 @@
  THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
  ********************************************************/
-/* $XFree86: xc/lib/xkbfile/xkbtext.c,v 3.11 2002/12/21 18:49:02 paulo Exp $ */
 
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
diff-tree 2691c05fd647d9fa10f791ac397ecb9c423a076f (from f7f3fe7fe7233a2ffc43106c48f44cbbd82b7c19)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Fri Jun 29 11:56:18 2007 +0930

    Make sure window->optional is allocated before assigning it.
    
    DeletePassiveGrabFromList() may remove the window optional, so we need to
    re-alloc it if it isn't there anymore.
    
    Thanks to Colin Harrison for spotting the bug.

diff --git a/dix/grabs.c b/dix/grabs.c
index cecd7ec..2210cd0 100644
--- a/dix/grabs.c
+++ b/dix/grabs.c
@@ -322,12 +322,6 @@ AddPassiveGrabToList(GrabPtr pGrab)
 	}
     }
 
-    if (!pGrab->window->optional && !MakeWindowOptional (pGrab->window))
-    {
-	FreeGrab(pGrab);
-	return BadAlloc;
-    }
-
     /* Remove all grabs that match the new one exactly */
     for (grab = wPassiveGrabs(pGrab->window); grab; grab = grab->next)
     {
@@ -338,6 +332,12 @@ AddPassiveGrabToList(GrabPtr pGrab)
 	} 
     }
 
+    if (!pGrab->window->optional && !MakeWindowOptional (pGrab->window))
+    {
+	FreeGrab(pGrab);
+	return BadAlloc;
+    }
+
     pGrab->next = pGrab->window->optional->passiveGrabs;
     pGrab->window->optional->passiveGrabs = pGrab;
     if (AddResource(pGrab->resource, RT_PASSIVEGRAB, (pointer)pGrab))
diff-tree f7f3fe7fe7233a2ffc43106c48f44cbbd82b7c19 (from 8a06ff9ffa4816d192e58e43e7fe569b97b4dd7c)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Thu Jun 28 18:59:05 2007 -0400

    Remove the remnants of OS/2 support.
    
    This has never worked in any modular server release, and as far as I know
    was never tested in 6.7 through 6.9.

diff --git a/Xext/security.c b/Xext/security.c
index c17a438..ba057de 100644
--- a/Xext/security.c
+++ b/Xext/security.c
@@ -1285,11 +1285,7 @@ SecurityFreePropertyAccessList(void)
     }
 } /* SecurityFreePropertyAccessList */
 
-#ifndef __UNIXOS2__
 #define SecurityIsWhitespace(c) ( (c == ' ') || (c == '\t') || (c == '\n') )
-#else
-#define SecurityIsWhitespace(c) ( (c == ' ') || (c == '\t') || (c == '\n') || (c == '\r') )
-#endif
 
 static char *
 SecuritySkipWhitespace(
@@ -1567,11 +1563,7 @@ SecurityLoadPropertyAccessList(void)
     if (!SecurityPolicyFile)
 	return;
 
-#ifndef __UNIXOS2__
     f = fopen(SecurityPolicyFile, "r");
-#else
-    f = fopen((char*)__XOS2RedirRoot(SecurityPolicyFile), "r");
-#endif    
     if (!f)
     {
 	ErrorF("error opening security policy file %s\n",
diff --git a/hw/xfree86/common/modeline2c.pl b/hw/xfree86/common/modeline2c.pl
index cc6c692..88e380d 100644
--- a/hw/xfree86/common/modeline2c.pl
+++ b/hw/xfree86/common/modeline2c.pl
@@ -71,9 +71,6 @@ printf("/* \$$proj\$ */
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
 #include \"xf86.h\"
 #include \"xf86Config.h\"
 #include \"xf86Priv.h\"
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index bf22720..4bd93b8 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -53,10 +53,6 @@
 #include <grp.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
-
 #include "xf86.h"
 #include "xf86Parser.h"
 #include "xf86tokens.h"
@@ -181,15 +177,8 @@ xf86ValidateFontPath(char *path)
   while (next != NULL) {
     path_elem = xf86GetPathElem(&next);
     if (*path_elem == '/') {
-#ifndef __UNIXOS2__
       dir_elem = xnfcalloc(1, strlen(path_elem) + 1);
       if ((p1 = strchr(path_elem, ':')) != 0)
-#else
-    /* OS/2 must prepend X11ROOT */
-      path_elem = (char*)__XOS2RedirRoot(path_elem);
-      dir_elem = xnfcalloc(1, strlen(path_elem) + 1);
-      if (p1 = strchr(path_elem+2, ':'))
-#endif
 	dirlen = p1 - path_elem;
       else
 	dirlen = strlen(path_elem);
@@ -213,9 +202,7 @@ xf86ValidateFontPath(char *path)
 	if (flag == 0)
 	  if (!S_ISREG(stat_buf.st_mode))
 	    flag = -1;
-#ifndef __UNIXOS2__
 	xfree(p1);
-#endif
 	if (flag != 0) {
 	  xf86Msg(X_WARNING,
 		  "`fonts.dir' not found (or not valid) in \"%s\".\n", 
diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c
index 7b04bd6..abe986e 100644
--- a/hw/xfree86/common/xf86Configure.c
+++ b/hw/xfree86/common/xf86Configure.c
@@ -70,10 +70,7 @@ _X_EXPORT xf86MonPtr ConfiguredMonitor;
 Bool xf86DoConfigurePass1 = TRUE;
 static Bool foundMouse = FALSE;
 
-#if defined(__UNIXOS2__)
-#define DFLT_MOUSE_DEV "mouse$"
-#define DFLT_MOUSE_PROTO "OS2Mouse"
-#elif defined(__SCO__)
+#if defined(__SCO__)
 static char *DFLT_MOUSE_PROTO = "OSMouse";
 #elif defined(__UNIXWARE__)
 static char *DFLT_MOUSE_PROTO = "OSMouse";
@@ -872,9 +869,6 @@ DoConfigure()
     if (!(home = getenv("HOME")))
     	home = "/";
     {
-#ifdef __UNIXOS2__
-#define PATH_MAX 2048
-#endif
 #if !defined(PATH_MAX)
 #define PATH_MAX 1024
 #endif
@@ -1010,13 +1004,11 @@ DoConfigure()
 	ErrorF("\n"__XSERVERNAME__" is not able to detect your mouse.\n"
 		"Edit the file and correct the Device.\n");
     } else {
-#ifndef __UNIXOS2__  /* OS/2 definitely has a mouse */
 	ErrorF("\n"__XSERVERNAME__" detected your mouse at device %s.\n"
 		"Please check your config if the mouse is still not\n"
 		"operational, as by default "__XSERVERNAME__
 	       " tries to autodetect\n"
 		"the protocol.\n",DFLT_MOUSE_DEV);
-#endif
     }
 #endif /* !__SCO__ */
 
diff --git a/hw/xfree86/common/xf86Debug.c b/hw/xfree86/common/xf86Debug.c
index cb57934..781c0e5 100644
--- a/hw/xfree86/common/xf86Debug.c
+++ b/hw/xfree86/common/xf86Debug.c
@@ -30,10 +30,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
-
 #include <sys/time.h>
 #include <unistd.h> 
 #include <X11/X.h>
diff --git a/hw/xfree86/common/xf86DefModes.c b/hw/xfree86/common/xf86DefModes.c
index a39d0a2..bdb64fe 100644
--- a/hw/xfree86/common/xf86DefModes.c
+++ b/hw/xfree86/common/xf86DefModes.c
@@ -1,5 +1,3 @@
-/* $XFree86$ */
-
 /* THIS FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT -- LOOK at
  * modeline2c.pl */
 
@@ -13,9 +11,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
 #include "xf86.h"
 #include "xf86Config.h"
 #include "xf86Priv.h"
diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index daf53de..bbb5855 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -53,10 +53,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
-
 #include <X11/X.h>
 #include <X11/Xpoll.h>
 #include <X11/Xproto.h>
@@ -320,7 +316,7 @@ xf86ProcessActionEvent(ActionEvent actio
 	    CloseDownClient(server);
 	}
 	break;
-#if !defined(__SOL8__) && !defined(__UNIXOS2__) && !defined(sgi) && \
+#if !defined(__SOL8__) && !defined(sgi) && \
     (!defined(sun) || defined(i386)) && defined(VT_ACTIVATE)
     case ACTION_SWITCHSCREEN:
 	if (VTSwitchEnabled && !xf86Info.dontVTSwitch && arg) {
@@ -440,7 +436,7 @@ xf86CommonSpecialKey(int key, Bool down,
 void
 xf86Wakeup(pointer blockData, int err, pointer pReadmask)
 {
-#if !defined(__UNIXOS2__) && !defined(__QNX__)
+#if !defined(__QNX__)
     fd_set* LastSelectMask = (fd_set*)pReadmask;
     fd_set devicesWithInput;
     InputInfoPtr pInfo;
@@ -467,7 +463,7 @@ xf86Wakeup(pointer blockData, int err, p
 	    }
 	}
     }
-#else   /* __UNIXOS2__ and __QNX__ */
+#else   /* __QNX__ */
 
     InputInfoPtr pInfo;
 
@@ -487,7 +483,7 @@ xf86Wakeup(pointer blockData, int err, p
 		pInfo = pInfo->next;
     }
 
-#endif  /* __UNIXOS2__ and __QNX__ */
+#endif  /* __QNX__ */
 
     if (err >= 0) { /* we don't want the handlers called if select() */
 	IHPtr ih;   /* returned with an error condition, do we?      */
@@ -874,7 +870,6 @@ xf86VTSwitch()
 	if (xf86Screens[i]->EnableDisableFBAccess)
 	  (*xf86Screens[i]->EnableDisableFBAccess) (i, FALSE);
     }
-#if !defined(__UNIXOS2__)
 
     /*
      * Keep the order: Disable Device > LeaveVT
@@ -886,7 +881,6 @@ xf86VTSwitch()
           DisableDevice(pInfo->dev);
       pInfo = pInfo->next;
     }
-#endif /* !__UNIXOS2__ */
     xf86EnterServerState(SETUP);
     for (i = 0; i < xf86NumScreens; i++)
 	xf86Screens[i]->LeaveVT(i, 0);
@@ -920,7 +914,6 @@ xf86VTSwitch()
       }
       SaveScreens(SCREEN_SAVER_FORCER, ScreenSaverReset);
 
-#if !defined(__UNIXOS2__)
       pInfo = xf86InputDevs;
       while (pInfo) {
         if (pInfo->dev) {
@@ -931,7 +924,6 @@ xf86VTSwitch()
       }
       /* XXX HACK */
       xf86ReleaseKeys(inputInfo.keyboard);
-#endif /* !__UNIXOS2__ */
       for (ih = InputHandlers; ih; ih = ih->next)
         xf86EnableInputHandler(ih);
 
@@ -986,7 +978,6 @@ xf86VTSwitch()
     /* Turn screen saver off when switching back */
     SaveScreens(SCREEN_SAVER_FORCER,ScreenSaverReset);
 
-#if !defined(__UNIXOS2__)
     pInfo = xf86InputDevs;
     while (pInfo) {
       if (pInfo->dev) {
@@ -997,7 +988,6 @@ xf86VTSwitch()
     }
     /* XXX HACK */
     xf86ReleaseKeys(inputInfo.keyboard);
-#endif /* !__UNIXOS2__ */
 
     for (ih = InputHandlers; ih; ih = ih->next)
       xf86EnableInputHandler(ih);
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index f3670c4..8f3b23a 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -1,4 +1,3 @@
-
 /*
  * Loosely based on code bearing the following copyright:
  *
@@ -39,15 +38,12 @@
 #include <errno.h>
 
 #undef HAS_UTSNAME
-#if !defined(WIN32) && !defined(__UNIXOS2__)
+#if !defined(WIN32)
 #define HAS_UTSNAME 1
 #include <sys/utsname.h>
 #endif
 
 #define NEED_EVENTS
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
 #include <X11/X.h>
 #include <X11/Xmd.h>
 #include <X11/Xproto.h>
@@ -105,10 +101,6 @@ static void xf86PrintDefaultModulePath(v
 static void xf86PrintDefaultLibraryPath(void);
 static void xf86RunVtInit(void);
 
-#ifdef __UNIXOS2__
-extern void os2ServerVideoAccess();
-#endif
-
 #ifdef XF86PM
 void (*xf86OSPMClose)(void) = NULL;
 #endif
@@ -267,10 +259,6 @@ InitOutput(ScreenInfo *pScreenInfo, int 
   Bool			 pix24Fail = FALSE;
   Bool			 autoconfig = FALSE;
   
-#ifdef __UNIXOS2__
-  os2ServerVideoAccess();  /* See if we have access to the screen before doing anything */
-#endif
-
   xf86Initialising = TRUE;
 
   /* Do this early? */
@@ -1065,9 +1053,7 @@ OsVendorInit()
 
 #ifdef O_NONBLOCK
   if (!beenHere) {
-#if !defined(__EMX__)
     if (geteuid() == 0 && getuid() != geteuid())
-#endif
     {
       int status;
 
diff --git a/hw/xfree86/common/xf86MiscExt.c b/hw/xfree86/common/xf86MiscExt.c
index 6524284..655304e 100644
--- a/hw/xfree86/common/xf86MiscExt.c
+++ b/hw/xfree86/common/xf86MiscExt.c
@@ -34,10 +34,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
-
 #include <X11/X.h>
 #include "os.h"
 #include "xf86.h"
diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
index cdf3d1b..4f9c0ca 100644
--- a/hw/xfree86/common/xf86Module.h
+++ b/hw/xfree86/common/xf86Module.h
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
  *
@@ -93,11 +92,7 @@ typedef enum {
 #define MODINFOSTRING2	0x10dc023a
 
 #ifndef MODULEVENDORSTRING
-#ifndef __OS2ELF__
 #define MODULEVENDORSTRING	"X.Org Foundation"
-#else
-#define MODULEVENDORSTRING	"X.Org Foundation - OS2"
-#endif
 #endif
 
 /* Error return codes for errmaj.  New codes must only be added at the end. */
diff --git a/hw/xfree86/common/xf86PM.c b/hw/xfree86/common/xf86PM.c
index ac88968..a6bcc34 100644
--- a/hw/xfree86/common/xf86PM.c
+++ b/hw/xfree86/common/xf86PM.c
@@ -74,13 +74,11 @@ suspend (pmEvent event, Bool undo)
 	if (xf86Screens[i]->EnableDisableFBAccess)
 	    (*xf86Screens[i]->EnableDisableFBAccess) (i, FALSE);
     }
-#if !defined(__EMX__)
     pInfo = xf86InputDevs;
     while (pInfo) {
 	DisableDevice(pInfo->dev);
 	pInfo = pInfo->next;
     }
-#endif
     xf86EnterServerState(SETUP);
     for (i = 0; i < xf86NumScreens; i++) {
         xf86EnableAccess(xf86Screens[i]);
@@ -119,13 +117,11 @@ resume(pmEvent event, Bool undo)
 	    (*xf86Screens[i]->EnableDisableFBAccess) (i, TRUE);
     }
     SaveScreens(SCREEN_SAVER_FORCER, ScreenSaverReset);
-#if !defined(__EMX__)
     pInfo = xf86InputDevs;
     while (pInfo) {
 	EnableDevice(pInfo->dev);
 	pInfo = pInfo->next;
     }
-#endif
     xf86inSuspend = FALSE;
 }
 
diff --git a/hw/xfree86/common/xisb.c b/hw/xfree86/common/xisb.c
index 88506f6..d021ec1 100644
--- a/hw/xfree86/common/xisb.c
+++ b/hw/xfree86/common/xisb.c
@@ -39,10 +39,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
-
 #include <misc.h>
 #include <xf86.h>
 #include <xf86Version.h>
diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index ea559aa..1b5c717 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -118,12 +118,7 @@ static char **defaultPathList = NULL;
 static Bool
 PathIsAbsolute(const char *path)
 {
-#ifdef __UNIXOS2__
-    return (*path == '/' || (strlen(path) > 2 && isalpha(elem[0]) &&
-		elem[1] == ':' && elem[2] == '/'));
-#else
     return (*path == '/');
-#endif
 }	
 
 /*
diff --git a/hw/xfree86/loader/os.c b/hw/xfree86/loader/os.c
index 83fd247..fdddce8 100644
--- a/hw/xfree86/loader/os.c
+++ b/hw/xfree86/loader/os.c
@@ -62,8 +62,6 @@
 #define OSNAME "svr5"
 #elif defined(SVR4)
 #define OSNAME "svr4"
-#elif defined(__UNIXOS2__)
-#define OSNAME "os2"
 #else
 #define OSNAME "unknown"
 #endif
diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
index b4ae42f..aae3629 100644
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -150,9 +150,7 @@ extern void _Qp_uitoq(unsigned int *, un
 #endif
 
 #if defined(__GNUC__)
-#ifndef __UNIXOS2__
 extern long __div64(long, long);
-#endif
 extern long __divdf3(long, long);
 extern long __divdi3(long, long);
 extern long __divsf3(long, long);
@@ -160,9 +158,7 @@ extern long __divsi3(long, long);
 extern long __moddi3(long, long);
 extern long __modsi3(long, long);
 
-#ifndef __UNIXOS2__
 extern long __mul64(long, long);
-#endif
 extern long __muldf3(long, long);
 extern long __muldi3(long, long);
 extern long __mulsf3(long, long);
@@ -172,18 +168,14 @@ extern long __udivsi3(long, long);
 extern long __umoddi3(long, long);
 extern long __umodsi3(long, long);
 
-#ifndef __UNIXOS2__
 #pragma weak __div64
-#endif
 #pragma weak __divdf3
 #pragma weak __divdi3
 #pragma weak __divsf3
 #pragma weak __divsi3
 #pragma weak __moddi3
 #pragma weak __modsi3
-#ifndef __UNIXOS2__
 #pragma weak __mul64
-#endif
 #pragma weak __muldf3
 #pragma weak __muldi3
 #pragma weak __mulsf3
@@ -1066,7 +1058,7 @@ _X_HIDDEN void *xfree86LookupTab[] = {
 # endif
 #endif
 #if defined(__GNUC__)
-#if !defined(__UNIXOS2__) && !defined(Lynx)
+#if !defined(Lynx)
     SYMFUNC(__div64)
 #endif
 #if !defined(Lynx)	/* FIXME: test on others than x86 and !3.1.0a/x86 */
@@ -1081,7 +1073,7 @@ _X_HIDDEN void *xfree86LookupTab[] = {
 #if !defined(Lynx)
     SYMFUNC(__modsi3)
 #endif
-#if !defined(__UNIXOS2__) && !defined(Lynx)
+#if !defined(Lynx)
     SYMFUNC(__mul64)
 #endif
 #if !defined(Lynx)
diff --git a/hw/xfree86/os-support/README.OS-lib b/hw/xfree86/os-support/README.OS-lib
index 27af6b3..e410906 100644
--- a/hw/xfree86/os-support/README.OS-lib
+++ b/hw/xfree86/os-support/README.OS-lib
@@ -38,7 +38,6 @@ have been made in implementation.
 			systems.
 		bsdi/	OS support for the BSD/386 operating system.
 		linux/	OS support for the Linux operating system.
-		os2/	OS support for OS/2 2.11 and OS/2 Warp
 		sco/	OS support for the SCO SVR3.x operating system.
 		solx86/	OS support for the Solaris x86 operating system.
 		sysv/	OS support for all SVR4.0 and SVR4.2, and for
diff --git a/hw/xfree86/os-support/misc/Delay.c b/hw/xfree86/os-support/misc/Delay.c
index b565953..e3e93fa 100644
--- a/hw/xfree86/os-support/misc/Delay.c
+++ b/hw/xfree86/os-support/misc/Delay.c
@@ -1,11 +1,7 @@
- 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
 #include <X11/X.h>
 #include "xf86.h"
 #include "xf86Priv.h"
diff --git a/hw/xfree86/os-support/shared/agp_noop.c b/hw/xfree86/os-support/shared/agp_noop.c
index 0a78448..5774bc2 100644
--- a/hw/xfree86/os-support/shared/agp_noop.c
+++ b/hw/xfree86/os-support/shared/agp_noop.c
@@ -34,9 +34,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-# define I_NEED_OS2_H
-#endif
 #include <X11/X.h>
 #include "xf86.h"
 #include "xf86Priv.h"
diff --git a/hw/xfree86/os-support/shared/libc_wrapper.c b/hw/xfree86/os-support/shared/libc_wrapper.c
index a459d5d..9594241 100644
--- a/hw/xfree86/os-support/shared/libc_wrapper.c
+++ b/hw/xfree86/os-support/shared/libc_wrapper.c
@@ -30,9 +30,6 @@
 #undef __STRICT_ANSI__
 #endif
 #include <X11/X.h>
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
 #include <X11/Xmd.h>
 #include <X11/Xos.h>
 #include <sys/types.h>
@@ -56,10 +53,6 @@
 #include <errno.h>
 #include <stdio.h>
 #include <sys/ioctl.h>
-#ifdef __UNIXOS2__
-#define NO_MMAP
-#include <sys/param.h>
-#endif
 #ifdef HAS_SVR3_MMAPDRV
 #define NO_MMAP
 #ifdef SELF_CONTAINED_WRAPPER
@@ -123,9 +116,6 @@ void xf86WrapperInit(void);
 #endif
 typedef struct dirent DIRENTRY;
 
-#ifdef __UNIXOS2__
-#define _POSIX_SOURCE
-#endif
 #ifdef ISC202
 #include <sys/types.h>
 #define WIFEXITED(a)  ((a & 0x00ff) == 0)  /* LSB will be 0 */
@@ -917,9 +907,7 @@ xf86strerror(int n)
 		mapnum (ENOTDIR);
 		mapnum (EPIPE);
 		mapnum (EROFS);
-#ifndef __UNIXOS2__
 		mapnum (ETXTBSY);	/* not POSIX 1 */
-#endif
 		mapnum (ENOTTY);
 #ifdef ENOSYS
 		mapnum (ENOSYS);
@@ -1243,7 +1231,6 @@ xf86bsearch(const void *key, const void 
 _X_EXPORT int
 xf86execl(const char *pathname, const char *arg, ...)
 {
-#ifndef __UNIXOS2__
     int i;
     pid_t pid;
     int exit_status;
@@ -1327,9 +1314,6 @@ xf86execl(const char *pathname, const ch
 	       pathname);
 	return(1);
     }
-#else
-    return(1);
-#endif /* __UNIXOS2__ Disable this crazy business for now */
 }
 
 _X_EXPORT void
@@ -1435,9 +1419,7 @@ xfToOsChmodMode(xf86mode_t xfmode)
 
     if (xfmode & XF86_S_ISUID) mode |= S_ISUID;
     if (xfmode & XF86_S_ISGID) mode |= S_ISGID;
-#ifndef __UNIXOS2__
     if (xfmode & XF86_S_ISVTX) mode |= S_ISVTX;
-#endif
     if (xfmode & XF86_S_IRUSR) mode |= S_IRUSR;
     if (xfmode & XF86_S_IWUSR) mode |= S_IWUSR;
     if (xfmode & XF86_S_IXUSR) mode |= S_IXUSR;
@@ -1464,11 +1446,7 @@ xf86chmod(const char *path, xf86mode_t x
 _X_EXPORT int
 xf86chown(const char *path, xf86uid_t owner, xf86gid_t group)
 {
-#ifndef __UNIXOS2__
     int rc = chown(path, owner, group);
-#else
-    int rc = 0;
-#endif
     xf86errno = xf86GetErrno();
     return rc;
 }
@@ -1498,9 +1476,7 @@ xfToOsMknodMode(xf86mode_t xfmode)
 
     if (xfmode & XF86_S_IFREG) mode |= S_IFREG;
     if (xfmode & XF86_S_IFCHR) mode |= S_IFCHR;
-#ifndef __UNIXOS2__
     if (xfmode & XF86_S_IFBLK) mode |= S_IFBLK;
-#endif
     if (xfmode & XF86_S_IFIFO) mode |= S_IFIFO;
 
     return mode;
@@ -1509,11 +1485,7 @@ xfToOsMknodMode(xf86mode_t xfmode)
 _X_EXPORT int xf86mknod(const char *pathname, xf86mode_t xfmode, xf86dev_t dev)
 {
     mode_t mode = xfToOsMknodMode(xfmode);
-#ifndef __UNIXOS2__
     int rc      = mknod(pathname, mode, dev);
-#else
-    int rc = 0;
-#endif    
     xf86errno   = xf86GetErrno();
     return rc;
 }
@@ -1611,12 +1583,8 @@ _X_EXPORT int 
 xf86finite(double x)
 {
 #ifndef QNX4
-#ifndef __UNIXOS2__
 	return(finite(x));
 #else
-	return(isfinite(x));
-#endif	/* __UNIXOS2__ */
-#else
 	/* XXX Replace this with something that really works. */
 	return 1;
 #endif
@@ -1907,9 +1875,7 @@ xf86GetErrno ()
 		mapnum (ENOTDIR);
 		mapnum (EPIPE);
 		mapnum (EROFS);
-#ifndef __UNIXOS2__
 		mapnum (ETXTBSY);	/* not POSIX 1 */
-#endif
 		mapnum (ENOTTY);
 #ifdef ENOSYS
 		mapnum (ENOSYS);
diff --git a/hw/xfree86/os-support/shared/sigiostubs.c b/hw/xfree86/os-support/shared/sigiostubs.c
index 1a196cb..7113968 100644
--- a/hw/xfree86/os-support/shared/sigiostubs.c
+++ b/hw/xfree86/os-support/shared/sigiostubs.c
@@ -29,9 +29,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-# define I_NEED_OS2_H
-#endif
 # include <X11/X.h>
 # include "xf86.h"
 # include "xf86Priv.h"
diff --git a/hw/xfree86/os-support/shared/stdPci.c b/hw/xfree86/os-support/shared/stdPci.c
index e55ac77..6777c6a 100644
--- a/hw/xfree86/os-support/shared/stdPci.c
+++ b/hw/xfree86/os-support/shared/stdPci.c
@@ -29,9 +29,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-# define I_NEED_OS2_H
-#endif
 #include <X11/X.h>
 #include "xf86.h"
 #include "xf86Priv.h"
diff --git a/hw/xfree86/os-support/shared/stdResource.c b/hw/xfree86/os-support/shared/stdResource.c
index ad46856..555f805 100644
--- a/hw/xfree86/os-support/shared/stdResource.c
+++ b/hw/xfree86/os-support/shared/stdResource.c
@@ -31,9 +31,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-# define I_NEED_OS2_H
-#endif
 #include <X11/X.h>
 #include "xf86.h"
 #include "xf86Priv.h"
@@ -43,9 +40,6 @@
 #include "xf86_OSlib.h"
 #include "xf86Resources.h"
 
-#ifdef __UNIXOS2__
-# undef ADDRESS
-#endif
 /* Avoid Imakefile changes */
 #include "bus/Pci.h"
 
diff --git a/hw/xfree86/os-support/shared/vidmem.c b/hw/xfree86/os-support/shared/vidmem.c
index 4d775eb..0b44116 100644
--- a/hw/xfree86/os-support/shared/vidmem.c
+++ b/hw/xfree86/os-support/shared/vidmem.c
@@ -30,9 +30,6 @@
 #include <xorg-config.h>
 #endif
 
-#ifdef __UNIXOS2__
-# define I_NEED_OS2_H
-#endif
 #include <X11/X.h>
 #include "input.h"
 #include "scrnintstr.h"
diff --git a/hw/xfree86/os-support/xf86_OSlib.h b/hw/xfree86/os-support/xf86_OSlib.h
index 27f766d..216e2ec 100644
--- a/hw/xfree86/os-support/xf86_OSlib.h
+++ b/hw/xfree86/os-support/xf86_OSlib.h
@@ -548,44 +548,6 @@ extern int errno;
 /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ || __bsdi__ */
 
 /**************************************************************************/
-/* OS/2                                                                   */
-/**************************************************************************/
-/* currently OS/2 with a modified EMX/GCC compiler only */
-#if defined(__UNIXOS2__) 
-# include <signal.h>
-# include <errno.h>
-# include <sys/stat.h>
-
-/* I would have liked to have this included here always, but
- * it causes clashes for BYTE and BOOL with Xmd.h, which is too dangerous. 
- * So I'll include it in place where I know it does no harm.
- */
-#if defined(I_NEED_OS2_H)
-# undef BOOL
-# undef BYTE
-# include <os2.h>
-#endif
-
-  /* keyboard types */
-# define KB_84                   1
-# define KB_101                  2
-/* could detect more keyboards */
-# define KB_OTHER                3
-
-  /* LEDs */
-#  define LED_CAP 0x40
-#  define LED_NUM 0x20
-#  define LED_SCR 0x10
-
-  /* mouse driver */
-# define OSMOUSE_ONLY
-# define MOUSE_PROTOCOL_IN_KERNEL
-
-extern char* __XOS2RedirRoot(char*);
-
-#endif
-
-/**************************************************************************/
 /* QNX4                                                                   */
 /**************************************************************************/
 /* This is the QNX code for Watcom 10.6 and QNX 4.x */
diff --git a/hw/xfree86/os-support/xf86_ansic.h b/hw/xfree86/os-support/xf86_ansic.h
index c1d62ed..0afd967 100644
--- a/hw/xfree86/os-support/xf86_ansic.h
+++ b/hw/xfree86/os-support/xf86_ansic.h
@@ -25,23 +25,7 @@
 #ifndef _XF86_ANSIC_H
 #define _XF86_ANSIC_H
 
-/* Handle <stdarg.h> */
-
-#ifndef __OS2ELF__
-# include <stdarg.h>
-#else /* __OS2ELF__ */
-  /* EMX/gcc_elf under OS/2 does not have native header files */
-# if !defined (_VA_LIST)
-#  define _VA_LIST
-   typedef char *va_list;
-# endif
-# define _VA_ROUND(t) ((sizeof (t) + 3) & -4)
-# if !defined (va_start)
-#  define va_start(ap,v) ap = (va_list)&v + ((sizeof (v) + 3) & -4)
-#  define va_end(ap) (ap = 0, (void)0)
-#  define va_arg(ap,t) (ap += _VA_ROUND (t), *(t *)(ap - _VA_ROUND (t)))
-# endif
-#endif /* __OS2ELF__ */
+#include <stdarg.h>
 
 /*
  * The first set of definitions are required both for modules and
diff --git a/hw/xfree86/parser/Files.c b/hw/xfree86/parser/Files.c
index d304737..8cec2a9 100644
--- a/hw/xfree86/parser/Files.c
+++ b/hw/xfree86/parser/Files.c
@@ -1,5 +1,4 @@
 /* 
- * 
  * Copyright (c) 1997  Metro Link Incorporated
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a
@@ -77,17 +76,6 @@ static xf86ConfigSymTabRec FilesTab[] =
 	{-1, ""},
 };
 
-static char *
-prependRoot (char *pathname)
-{
-#ifndef __EMX__
-	return pathname;
-#else
-	/* XXXX caveat: multiple path components in line */
-	return (char *) __XOS2RedirRoot (pathname);
-#endif
-}
-
 #define CLEANUP xf86freeFiles
 
 XF86ConfFilesPtr
@@ -110,7 +98,7 @@ xf86parseFilesSection (void)
 			if (xf86getSubToken (&(ptr->file_comment)) != STRING)
 				Error (QUOTE_MSG, "FontPath");
 			j = FALSE;
-			str = prependRoot (val.str);
+			str = val.str;
 			if (ptr->file_fontpath == NULL)
 			{
 				ptr->file_fontpath = xf86confmalloc (1);
@@ -143,7 +131,7 @@ xf86parseFilesSection (void)
 			if (xf86getSubToken (&(ptr->file_comment)) != STRING)
 				Error (QUOTE_MSG, "ModulePath");
 			l = FALSE;
-			str = prependRoot (val.str);
+			str = val.str;
 			if (ptr->file_modulepath == NULL)
 			{
 				ptr->file_modulepath = xf86confmalloc (1);
@@ -170,7 +158,7 @@ xf86parseFilesSection (void)
 			if (xf86getSubToken (&(ptr->file_comment)) != STRING)
 				Error (QUOTE_MSG, "InputDevices");
 			l = FALSE;
-			str = prependRoot (val.str);
+			str = val.str;
 			if (ptr->file_inputdevs == NULL)
 			{
 				ptr->file_inputdevs = xf86confmalloc (1);
diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
index 68e7ec6..75a562b 100644
--- a/hw/xfree86/parser/scan.c
+++ b/hw/xfree86/parser/scan.c
@@ -106,10 +106,6 @@ static int pushToken = LOCK_TOKEN;
 static int eol_seen = 0;		/* private state to handle comments */
 LexRec val;
 
-#ifdef __UNIXOS2__
-extern char *__XOS2RedirRoot(char *path);
-#endif
-
 /* 
  * xf86strToUL --
  *
@@ -523,10 +519,6 @@ xf86pathIsAbsolute(const char *path)
 {
 	if (path && path[0] == '/')
 		return 1;
-#ifdef __UNIXOS2__
-	if (path && (path[0] == '\\' || (path[1] == ':')))
-		return 1;
-#endif
 	return 0;
 }
 
@@ -571,7 +563,6 @@ xf86pathIsSafe(const char *path)
  *    %P    projroot
  *    %M    major version number
  *    %%    %
- *    %&    UNIXOS2 only: prepend X11ROOT env var
  */
 
 #ifndef XCONFIGFILE
@@ -625,9 +616,6 @@ DoSubstitution(const char *template, con
 	static const char *env = NULL, *home = NULL;
 	static char *hostname = NULL;
 	static char majorvers[3] = "";
-#ifdef __UNIXOS2__
-	static char *x11root = NULL;
-#endif
 
 	if (!template)
 		return NULL;
@@ -744,16 +732,6 @@ DoSubstitution(const char *template, con
 				result[l++] = '%';
 				CHECK_LENGTH;
 				break;
-#ifdef __UNIXOS2__
-			case '&':
-				if (!x11root)
-					x11root = getenv("X11ROOT");
-				if (x11root)
-					APPEND_STR(x11root);
-				else
-					BAIL_OUT;
-				break;
-#endif
 			default:
 				fprintf(stderr, "invalid escape %%%c found in path template\n",
 						template[i]);
diff --git a/hw/xfree86/parser/write.c b/hw/xfree86/parser/write.c
index 3924001..6589fdc 100644
--- a/hw/xfree86/parser/write.c
+++ b/hw/xfree86/parser/write.c
@@ -1,5 +1,4 @@
 /* 
- * 
  * Copyright (c) 1997  Metro Link Incorporated
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a
@@ -81,7 +80,7 @@ extern int sys_nerr;
 #if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED)
 #define HAS_SAVED_IDS_AND_SETEUID
 #endif
-#if defined(__UNIXOS2__) || defined(WIN32)
+#if defined(WIN32)
 #define HAS_NO_UIDS
 #endif
 
diff --git a/hw/xfree86/utils/xorgcfg/config.h b/hw/xfree86/utils/xorgcfg/config.h
index 62187b0..b5baba4 100644
--- a/hw/xfree86/utils/xorgcfg/config.h
+++ b/hw/xfree86/utils/xorgcfg/config.h
@@ -49,12 +49,6 @@
 
 #include <stdarg.h>
 
-#ifdef __UNIXOS2__
-#define strcasecmp stricmp
-#define setenv putenv
-#define PATH_MAX 260
-#endif
-
 /* Get PATH_MAX */
 #ifndef PATH_MAX
 # if defined(_POSIX_SOURCE)
@@ -103,7 +97,6 @@
 #define CONFIG_ACCESSX	3
 extern int config_mode;
 
-#ifndef __UNIXOS2__
 #define CONFPATH	"%A," "%R," \
 			"/etc/X11/%R," "%P/etc/X11/%R," \
 			"%E," "%F," \
@@ -120,26 +113,6 @@ extern int config_mode;
 			"%P/etc/X11/%X," \
 			"%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
 			"%P/lib/X11/%X"
-#else
-#define CONFPATH	"%&"XF86CONFIGDIR"/%R," "%&"XF86CONFIGDIR"/%X," \
-			"%A," "%R," \
-			"/etc/X11/%R," "%P/etc/X11/%R," \
-			"%E," "%F," \
-			"/etc/X11/%F," "%P/etc/X11/%F," \
-			"%D/%X," \
-			"/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \
-			"%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \
-			"%P/etc/X11/%X," \
-			"%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
-			"%P/lib/X11/%X"
-#define USER_CONFPATH	"%&"XF86CONFIGDIR"/%X," "%&"XF86CONFIGDIR"/%X," \
-			"/etc/X11/%S," "%P/etc/X11/%S," \
-                        "/etc/X11/%G," "%P/etc/X11/%G," \
-			"%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \
-			"%P/etc/X11/%X," \
-			"%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
-			"%P/lib/X11/%X"
-#endif
 
 /*
  * Types
diff --git a/hw/xfree86/utils/xorgcfg/mouse-cfg.c b/hw/xfree86/utils/xorgcfg/mouse-cfg.c
index 5bae6d3..24aec6a 100644
--- a/hw/xfree86/utils/xorgcfg/mouse-cfg.c
+++ b/hw/xfree86/utils/xorgcfg/mouse-cfg.c
@@ -54,9 +54,6 @@ static struct MouseProtocol {
     char *name;
     int type;
 } protocols[] = {
-#ifdef __UNIXOS2__
-    {"OS2Mouse",		MTYPE_AUTOMOUSE},
-#endif
 #ifdef __SCO__
     {"OsMouse",			MTYPE_AUTOMOUSE},
 #endif
diff --git a/hw/xfree86/utils/xorgcfg/stubs.c b/hw/xfree86/utils/xorgcfg/stubs.c
index 47b2c2d..fdc840a 100644
--- a/hw/xfree86/utils/xorgcfg/stubs.c
+++ b/hw/xfree86/utils/xorgcfg/stubs.c
@@ -36,10 +36,6 @@
  * Implementation
  */
 
-#ifdef __UNIXOS2__
-static char dummy;
-#endif
-
 #if !defined(USE_MODULES)
 /* these are defined in libdummy.a */
 int
diff --git a/hw/xfree86/utils/xorgcfg/text-mode.c b/hw/xfree86/utils/xorgcfg/text-mode.c
index 8800c29..0b6e654 100644
--- a/hw/xfree86/utils/xorgcfg/text-mode.c
+++ b/hw/xfree86/utils/xorgcfg/text-mode.c
@@ -53,11 +53,7 @@
 #endif
 
 #ifndef XKB_RULES_DIR
-#ifndef __UNIXOS2__
 #define XKB_RULES_DIR PROJECT_ROOT "/share/X11/xkb/rules"
-#else
-#define XKB_RULES_DIR XF86CONFIGDIR "/xkb/rules"
-#endif
 #endif
 
 #define CONTROL_A	1
@@ -212,11 +208,7 @@ TextMode(void)
 		   "The "__XCONFIGFILE__" file usually resides in /etc. A "
 		   "sample "__XCONFIGFILE__" file is supplied with "
 #else
-#ifndef __UNIXOS2__
 		   "The "__XCONFIGFILE__" file usually resides in " PROJECT_ROOT "/etc/X11 "
-#else
-		   "The "__XCONFIGFILE__" file usually resides in "XF86CONFIGDIR" "
-#endif
 		   "or /etc/X11. A sample "__XCONFIGFILE__" file is supplied with "
 #endif
 		   __XSERVERNAME__"; it is configured for a standard VGA card and "
@@ -306,11 +298,7 @@ WriteXF86Config(void)
     refresh();
     xf86config = DialogInput("Write "__XCONFIGFILE__, "Write configuration to file:",
 			     10, 60, XF86Config_path ? XF86Config_path :
-#ifndef __UNIXOS2__
 			     "/etc/X11/"__XCONFIGFILE__, "  Ok  ", " Cancel ", 0);
-#else
-			     XF86CONFIGDIR"/"__XCONFIGFILE__, "  Ok  ", " Cancel ", 0);
-#endif
 
     if (xf86config == NULL)
 	return (-1);
@@ -355,9 +343,6 @@ WriteXF86Config(void)
 }
 
 static char *protocols[] = {
-#ifdef __UNIXOS2__
-    "OS2Mouse",
-#endif
 #ifdef __SCO__
     "OsMouse",
 #endif
@@ -549,8 +534,6 @@ MouseConfig(void)
 	str = "/dev/wsmouse";
 #elif defined(__FreeBSD__) || defined(__DragonFly__)
 	str = "/dev/sysmouse";
-#elif defined(__UNIXOS2__)
-	str = "mouse$";
 #elif defined(__linux__)
 	str = "/dev/input/mice";
 #else
diff --git a/hw/xfree86/utils/xorgconfig/cards.c b/hw/xfree86/utils/xorgconfig/cards.c
index f903d7f..8116f0a 100644
--- a/hw/xfree86/utils/xorgconfig/cards.c
+++ b/hw/xfree86/utils/xorgconfig/cards.c
@@ -1,10 +1,3 @@
-/* $XConsortium: cards.c /main/9 1996/10/19 18:15:32 kaleb $ */
-
-
-
-
-
-
 /*
  *  Functions to manipulate card database.
  */
@@ -66,15 +59,6 @@ getnextline(FILE *f, char *l)
 {
 	if (fgets(l, 128, f) == NULL)
 		return -1;
-#ifdef __UNIXOS2__
-	{
-		char *p = strchr(l,'\r');
-		if (p) {
-			*p = '\n';
-			*(p+1) = '\0';
-		}
-	}
-#endif
 	return 0;
 }
 
@@ -119,11 +103,7 @@ int parse_database() {
 	int i, lineno;
 	char filename[128];
 
-#ifndef __UNIXOS2__
 	strcpy(filename, CARD_DATABASE_FILE);
-#else
-	strcpy(filename, (char*)__XOS2RedirRoot(CARD_DATABASE_FILE));
-#endif
 	f = fopen(filename, "r");
 	if (f == NULL)
 		return -1;
diff --git a/hw/xfree86/utils/xorgconfig/xorgconfig.c b/hw/xfree86/utils/xorgconfig/xorgconfig.c
index 3e60fda..5689789 100644
--- a/hw/xfree86/utils/xorgconfig/xorgconfig.c
+++ b/hw/xfree86/utils/xorgconfig/xorgconfig.c
@@ -1,4 +1,3 @@
-
 /*
  * This is a configuration program that will create a base XF86Config
  * file based on menu choices. Its main feature is that clueless users
@@ -107,13 +106,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
-/* hv: fix a few EMX problems, will disappear with real UnixOS/2 */
-#ifdef __UNIXOS2__
-#define sync() /*nothing*/
-static int getuid() { return 0; }
-#endif
-
-
 #include <X11/Xlib.h>
 #include <X11/extensions/XKBstr.h>
 #include <X11/extensions/XKBrules.h>
@@ -172,11 +164,7 @@ static int getuid() { return 0; }
 #endif
 #define MODULEPATH		TREEROOT "/lib/modules"
 
-#ifndef __UNIXOS2__
 #define XSERVERNAME_FOR_PROBE "X"
-#else
-#define XSERVERNAME_FOR_PROBE PROJECTROOT"/bin/"__XSERVERNAME__
-#endif
 
 #ifndef XCONFIGFILE
 #define XCONFIGFILE		"xorg.conf"
@@ -378,10 +366,6 @@ getstring(char *s)
 
 /*
  * Mouse configuration.
- *
- * (hv) OS/2 (__UNIXOS2__) only has an OS supported mouse, so user has no options
- * the server will enable a third button automatically if there is one
- * We also do the same for QNX4, since we use the OS mouse drivers.
  */
 
 int	M_OSMOUSE,	M_WSMOUSE,		M_AUTO,
@@ -398,7 +382,7 @@ struct {
 	int *ident;
 	char *desc;
 } mouse_info[] = {
-#if defined(__UNIXOS2__) || defined(QNX4)
+#if defined(QNX4)
 #define DEF_PROTO_STRING	"OSMOUSE"
 	{"OSMOUSE",		&M_OSMOUSE,
 	 "OSMOUSE"
@@ -498,7 +482,6 @@ struct {
 # define DEF_MOUSEDEV "/dev/mouse";
 #endif
 
-#ifndef __UNIXOS2__
 static char *mouseintro_text =
 "First specify a mouse protocol type. Choose one from the following list:\n"
 "\n";
@@ -549,12 +532,10 @@ static char *mousemancomment_text =
 "You have selected a Logitech MouseMan type mouse. You might want to enable\n"
 "ChordMiddle which could cause the third button to work.\n";
 
-#endif /* !__UNIXOS2__ */
-
 static void 
 mouse_configuration(void) {
 
-#if !defined(__UNIXOS2__) && !defined(QNX4)
+#if !defined(QNX4)
 	int i, j;
 	char s[80];
 	char *def_mousedev = DEF_MOUSEDEV;
@@ -670,18 +651,14 @@ mouse_configuration(void) {
 	}
 	printf("\n");
 
-#else /* __UNIXOS2__ */
+#else
        	/* set some reasonable defaults for OS/2 */
        	config_mousetype = M_OSMOUSE;
 	config_chordmiddle = 0;       
 	config_cleardtrrts = 0;
 	config_emulate3buttons = 0;
-#if !defined(QNX4)
-	config_pointerdevice = "OS2MOUSE";
-#else
 	config_pointerdevice = "QNXMOUSE";
 #endif
-#endif /* __UNIXOS2__ */
 }
 
 
@@ -1351,36 +1328,9 @@ static char *modestring[NU_MODESTRINGS] 
 #endif
 };
 
-#ifdef __EMX__
-/* yet another instance of this code, sigh! */
-char *
-__XOS2RedirRoot(char *path, char sep)
-{
-	static char pn[300];
-	char *root;
-	int i,l;
-	if ((isalpha(path[0]) && path[1]==':') || path[0] != '/')
-		return path;
-
-	root = getenv("X11ROOT");
-	if (!root) root = "";
-	sprintf(pn,"%s%s",root,path);
-	if (sep=='\\') {
-		l = strlen(pn);
-		for (i=0; i<l; i++) 
-			if (pn[i]=='/') pn[i]='\\';
-	}
-	return pn;
-}
-#endif
-
-/* (hv) to avoid the UNIXISM to try to open a dir to check for existance */
 static int exists_dir(char *name) {
 	struct stat sbuf;
 
-#ifdef __EMX__
-	name = __XOS2RedirRoot(name,'/');
-#endif
 	/* is it there ? */
 	if (stat(name,&sbuf) == -1)
 		return 0;
@@ -1691,22 +1641,10 @@ skipramdacselection:
 		sprintf(d3name, "%s%s", temp_dir, DUMBCONFIG3);
 		printf("Running X -probeonly -pn -xf86config %s.\n", fname);
 		write_XF86Config(fname);
-#ifndef __EMX__
 		sync();
-#endif
 		/* compose a line with the real path */
-#ifndef __EMX__
                 sprintf(syscmdline, "X -probeonly -pn -xf86config %s 2> %s",
                         fname, d2name);
-#else
-		/* OS/2 does not have symlinks, so "X" does not exist,
-		 * call the real X server
-		 */
-		sprintf(syscmdline,"%s/"__XSERVERNAME__" -probeonly -pn -xf86config "
-		       TEMPORARY_XF86CONFIG_FILENAME " 2>" DUMBCONFIG2,
-		       __XOS2RedirRoot("/"__XSERVERNAME__"/bin",'\\'),
-		       card[card_selected].server);
-#endif
 
 		if (system(syscmdline)) {
 			printf("X -probeonly call failed.\n");
@@ -2548,10 +2486,8 @@ write_XF86Config(char *filename)
 	f = fopen(filename, "w");
 	if (f == NULL) {
 		printf("Failed to open filename for writing.\n");
-#ifndef __EMX__
 		if (getuid() != 0)
 			printf("Maybe you need to be root to write to the specified directory?\n");
-#endif
 		return(1);
 	}
 
@@ -2606,7 +2542,7 @@ write_XF86Config(char *filename)
 	fprintf(f, "    Option \"Protocol\"    \"%s\"\t# %s\n",
 		mouse_info[config_mousetype].name,
 		mouse_info[config_mousetype].desc);
-#if !defined(__UNIXOS2__) && !defined(QNX4)
+#if !defined(QNX4)
 	fprintf(f, "    Option \"Device\"      \"%s\"\n", config_pointerdevice);
 #endif
 	fprintf(f, "%s", pointersection_text2);
@@ -2780,7 +2716,6 @@ ask_XF86Config_location(void) {
 "I am going to write the " CONFIGNAME " file now. Make sure you don't accidently\n"
 "overwrite a previously configured one.\n\n");
 
-#ifndef __EMX__
 	if (getuid() == 0) {
 #ifdef PREFER_XF86CONFIG_IN_ETC
 		filename = Strdup("/etc/X11/" XCONFIGFILE);
@@ -2814,16 +2749,6 @@ ask_XF86Config_location(void) {
 		if (answerisyes(s))
 			return filename;
 #endif
-#else /* __EMX__ */
-	{
-		printf("Please answer the following question with either 'y' or 'n'.\n");
-		printf("Shall I write it to the default location, drive:/"__XSERVERNAME__"/lib/X11/XConfig? ");
-		getstring(s);
-		printf("\n");
-		if (answerisyes(s)) {
-			return __XOS2RedirRoot("/"__XSERVERNAME__"/lib/X11/XConfig",'/');
-		}
-#endif /* __EMX__ */
 	}
 
 	if (filename)
@@ -2862,7 +2787,6 @@ __XSERVERNAME__" distribution for your O
 "libraries, configuration files and a server that you want to use.\n"
 "\n";
 
-#ifndef __UNIXOS2__
 static char *oldxfree86_text =
 "The directory '/usr/X386/bin' exists. You probably have a very old version of\n"
 "XFree86 installed, but this program was built to configure "__XSERVERNAME__" "XVERSIONSTRING"\n"
@@ -2882,7 +2806,6 @@ static char *pathnote_text =	
 "link is '/usr/bin/X11'.\n"
 "\n"
 "Make sure the path is OK before continuing.\n";
-#endif
 
 static void 
 path_check(void) {
@@ -2899,7 +2822,6 @@ path_check(void) {
 		printf("\n");
 	}
 
-#ifndef __UNIXOS2__
 	ok = exists_dir("/usr/X386/bin");
 	if (!ok)
 		return;
@@ -2909,7 +2831,6 @@ path_check(void) {
 		getenv("PATH"));
 	printf("%s", pathnote_text);
 	keypress();
-#endif
 }
 
 
diff --git a/hw/xnest/Makefile.am b/hw/xnest/Makefile.am
index e958c0e..99dba60 100644
--- a/hw/xnest/Makefile.am
+++ b/hw/xnest/Makefile.am
@@ -55,8 +55,7 @@ Xnest_LDADD = $(XORG_CORE_LIBS) \
               $(XNESTMODULES_LIBS) \
 	      libfbcmap.a
 
-EXTRA_DIST = os2Stub.c \
-             icon \
+EXTRA_DIST = icon \
              screensaver \
 	     Xnest.man.pre
 
diff --git a/hw/xnest/os2Stub.c b/hw/xnest/os2Stub.c
deleted file mode 100644
index 33675ec..0000000
--- a/hw/xnest/os2Stub.c
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * (c) Copyright 1996 by Sebastien Marineau
- *			<marineau at genie.uottawa.ca>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
- * HOLGER VEIT  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
- * SOFTWARE.
- * 
- * Except as contained in this notice, the name of Sebastien Marineau shall not be
- * used in advertising or otherwise to promote the sale, use or other dealings
- * in this Software without prior written authorization from Sebastien Marineau.
- *
- */
-
-
-/* This below implements select() for calls in xnest. It has been         */
-/* somewhat optimized for improved performance, but assumes a few */
-/* things so it cannot be used as a general select.                             */
-
-#define I_NEED_OS2_H
-#include <X11/Xpoll.h>
-#include <stdio.h>
-#include <sys/select.h>
-#include <sys/errno.h>
-#include <sys/time.h>
-#define INCL_DOSSEMAPHORES
-#define INCL_DOSNPIPES
-#define INCL_DOSMISC
-#define INCL_DOSMODULEMGR
-#undef BOOL
-#undef BYTE
-#include <os2.h>
-
-HEV hPipeSem;
-HMODULE hmod_so32dll;
-static int (*os2_tcp_select)(int*,int,int,int,long);
-ULONG os2_get_sys_millis();
-extern int _files[];
-
-#define MAX_TCP 256
-/* These lifted from sys/emx.h. Change if that changes there! */
-#define F_SOCKET 0x10000000
-#define F_PIPE 0x20000000
-
-struct select_data
-{
-   fd_set read_copy;
-   fd_set write_copy;
-   BOOL have_read;
-   BOOL have_write;
-   int tcp_select_mask[MAX_TCP];
-   int tcp_emx_handles[MAX_TCP];
-   int tcp_select_copy[MAX_TCP];
-   int socket_nread;
-   int socket_nwrite;
-   int socket_ntotal;
-   int pipe_ntotal;
-   int pipe_have_write;
-   int max_fds;
-};
-
-int os2PseudoSelect(int nfds, fd_set *readfds, fd_set *writefds,
-        fd_set *exceptfds, struct timeval *timeout)
-{
-static BOOL FirstTime=TRUE;
-static haveTCPIP=TRUE;
-ULONG timeout_ms;
-ULONG postCount, start_millis,now_millis;
-char faildata[16];
-struct select_data sd;
-BOOL any_ready;
-int np,ns, i,ready_handles,n;
-APIRET rc;
-
-sd.have_read=FALSE; sd.have_write=FALSE; 
-sd.socket_nread=0; sd.socket_nwrite=0; sd.socket_ntotal=0;
-sd.max_fds=31; ready_handles=0; any_ready=FALSE;
-sd.pipe_ntotal=0; sd.pipe_have_write=FALSE;
-
-if(FirstTime){
-   /* First load the so32dll.dll module and get a pointer to the SELECT function */
-
-   if((rc=DosLoadModule(faildata,sizeof(faildata),"SO32DLL",&hmod_so32dll))!=0){
-        fprintf(stderr, "Could not load module so32dll.dll, rc = %d. Error note %s\n",rc,faildata);
-        haveTCPIP=FALSE;
-        }
-   if((rc = DosQueryProcAddr(hmod_so32dll, 0, "SELECT", (PPFN)&os2_tcp_select))!=0){
-        fprintf(stderr, "Could not query address of SELECT, rc = %d.\n",rc);
-        haveTCPIP=FALSE;
-        }
-   /* Call these a first time to set the semaphore */
-    /* rc = DosCreateEventSem(NULL, &hPipeSem, DC_SEM_SHARED, FALSE);
-    if(rc) { 
-             fprintf(stderr, "Could not create event semaphore, rc=%d\n",rc);
-             return(-1);
-             }
-    rc = DosResetEventSem(hPipeSem, &postCount); */ /* Done in xtrans code for servers*/
-
-	/*fprintf(stderr, "Client select() done first-time stuff, sem handle %d.\n",hPipeSem);*/
-
-   FirstTime = FALSE;
-}
-
-/* Set up the time delay structs */
-
-    if(timeout!=NULL) {
-	timeout_ms=timeout->tv_sec*1000+timeout->tv_usec/1000;
-	}
-    else { timeout_ms=1000000; }  /* This should be large enough... */
-    if(timeout_ms>0) start_millis=os2_get_sys_millis();
-
-/* Copy the masks */
-    {FD_ZERO(&sd.read_copy);}
-    {FD_ZERO(&sd.write_copy);}
-    if(readfds!=NULL){ XFD_COPYSET(readfds,&sd.read_copy); sd.have_read=TRUE;}
-    if(writefds!=NULL) {XFD_COPYSET(writefds,&sd.write_copy);sd.have_write=TRUE;}
-
-/* And zero the original masks */
-    if(sd.have_read){ FD_ZERO(readfds);}
-    if(sd.have_write) {FD_ZERO(writefds);}
-    if(exceptfds != NULL) {FD_ZERO(exceptfds);}
-
-/* Now we parse the fd_sets passed to select and separate pipe/sockets */
-        n = os2_parse_select(&sd,nfds);
-        if(n == -1) {
-           errno = EBADF;
-           return (-1);
-           }
-
-/* Now we have three cases: either we have sockets, pipes, or both */
-/* We handle all three cases differently to optimize things */
-
-/* Case 1: only pipes! */
-        if((sd.pipe_ntotal >0) && (!sd.socket_ntotal)){
-            np = os2_check_pipes(&sd,readfds,writefds);
-            if(np > 0){
-               return (np);
-               }
-            else if (np == -1) { return(-1); }
-            while(!any_ready){
-                 rc = DosWaitEventSem(hPipeSem, 1L);
-                 /* if(rc) fprintf(stderr,"Sem-wait timeout, rc = %d\n",rc); */
-                 if(rc == 640)  {
-                     return(0);
-                     }
-                 if((rc != 0) && (rc != 95)) {errno= EBADF; return(-1);}
-                 np = os2_check_pipes(&sd,readfds,writefds);
-                 if (np > 0){
-                    return(np);
-                    }
-                 else if (np < 0){ return(-1); }
-                 }
-          }
-
-/* Case 2: only sockets. Just let the os/2 tcp select do the work */
-        if((sd.socket_ntotal > 0) && (!sd.pipe_ntotal)){
-                ns = os2_check_sockets(&sd, readfds, writefds, timeout_ms);
-                return (ns);
-                }
-
-/* Case 3: combination of both */
-        if((sd.socket_ntotal > 0) && (sd.pipe_ntotal)){
-           np = os2_check_pipes(&sd,readfds,writefds);
-              if(np > 0){
-                 any_ready=TRUE;
-                 ready_handles += np;
-                 }
-              else if (np == -1) { return(-1); }
-
-           ns = os2_check_sockets(&sd,readfds,writefds, 0);
-           if(ns>0){
-               ready_handles+=ns;
-               any_ready = TRUE;
-               }
-           else if (ns == -1) {return(-1);}
-
-           while (!any_ready && timeout_ms){
-
-                rc = DosWaitEventSem(hPipeSem, 1L);
-                if (rc==640) return(0);
-                if(rc == 0){
-                        np = os2_check_pipes(&sd,readfds,writefds);
-                        if(np > 0){
-                        ready_handles+=np;
-                        any_ready = TRUE;
-                        }
-                        else if (np == -1) { 
-                                return(-1); }
-                      }
-
-                 ns = os2_check_sockets(&sd,readfds,writefds,exceptfds, 0);
-                 if(ns>0){
-                      ready_handles+=ns;
-                      any_ready = TRUE;
-                     }
-                 else if (ns == -1) {return(-1);}
-
-                  if (i%8 == 0) { 
-                    now_millis = os2_get_sys_millis();
-                    if((now_millis-start_millis) > timeout_ms) timeout_ms = 0;
-                    }
-                   i++;
-                  }
-        }
-
-return(ready_handles);
-}
-
-
-ULONG os2_get_sys_millis()
-{
-   APIRET rc;
-   ULONG milli;
-
-   rc = DosQuerySysInfo(14, 14, &milli, sizeof(milli));
-   if(rc) {
-        fprintf(stderr,"Bad return code querying the millisecond counter! rc=%d\n",rc);
-        return(0);
-        }
-   return(milli);
-}
-
-int os2_parse_select(sd,nfds)
-struct select_data *sd;
-int nfds;
-{
-   int i;
-   APIRET rc;
-/* First we determine up to which descriptor we need to check.              */
-/* No need to check up to 256 if we don't have to (and usually we dont...)*/
-/* Note: stuff here is hardcoded for fd_sets which are int[8] as in EMX!    */
-
-  if(nfds > sd->max_fds){
-     for(i=0;i<((FD_SETSIZE+31)/32);i++){
-        if(sd->read_copy.fds_bits[i] ||
-            sd->write_copy.fds_bits[i])
-                        sd->max_fds=(i*32) +32;
-        }
-     }
-   else { sd->max_fds = nfds; }
-/* Check if result is greater than specified in select() call */
-  if(sd->max_fds > nfds) sd->max_fds = nfds;
-
-  if (sd->have_read)
-    {
-      for (i = 0; i < sd->max_fds; ++i) {
-        if (FD_ISSET (i, &sd->read_copy)){
-         if(_files[i] & F_SOCKET)
-           {
-            sd->tcp_select_mask[sd->socket_ntotal]=_getsockhandle(i);
-            sd->tcp_emx_handles[sd->socket_ntotal]=i;
-            sd->socket_ntotal++; sd->socket_nread++;
-           }
-         else if (_files[i] & F_PIPE)
-          {
-            sd -> pipe_ntotal++;
-            /* rc = DosSetNPipeSem((HPIPE)i, (HSEM) hPipeSem, i);
-            if(rc) { fprintf(stderr,"Error SETNPIPE rc = %d\n",rc); return -1;} */
-          }
-        }
-      }
-    }
-
-  if (sd->have_write)
-    {
-      for (i = 0; i < sd->max_fds; ++i) {
-        if (FD_ISSET (i, &sd->write_copy)){
-         if(_files[i] & F_SOCKET)
-         {
-            sd->tcp_select_mask[sd->socket_ntotal]=_getsockhandle(i);
-            sd->tcp_emx_handles[sd->socket_ntotal]=i;
-            sd->socket_ntotal++; sd->socket_nwrite++;
-         }
-         else if (_files[i] & F_PIPE)
-          {
-            sd -> pipe_ntotal++;
-            /* rc = DosSetNPipeSem((HPIPE)i, (HSEM) hPipeSem, i);
-            if(rc) { fprintf(stderr,"Error SETNPIPE rc = %d\n",rc); return -1;} */
-            sd -> pipe_have_write=TRUE;
-          }
-        }
-      }
-    }
-
-
-return(sd->socket_ntotal);
-}
-
-
-int os2_check_sockets(sd,readfds,writefds)
-struct select_data *sd;
-fd_set *readfds,*writefds;
-{
-   int e,i;
-   int j,n;
-        memcpy(sd->tcp_select_copy,sd->tcp_select_mask,
-                sd->socket_ntotal*sizeof(int));
- 
-        e = os2_tcp_select(sd->tcp_select_copy,sd->socket_nread,
-                sd->socket_nwrite, 0, 0);
-
-        if(e == 0) return(e);
-/* We have something ready? */
-        if(e>0){
-            j = 0; n = 0;
-            for (i = 0; i < sd->socket_nread; ++i, ++j)
-                 if (sd->tcp_select_copy[j] != -1)
-                    {
-                    FD_SET (sd->tcp_emx_handles[j], readfds);
-                    n ++;
-                    }
-             for (i = 0; i < sd->socket_nwrite; ++i, ++j)
-                  if (sd->tcp_select_copy[j] != -1)
-                     {
-                     FD_SET (sd->tcp_emx_handles[j], writefds);
-                     n ++;
-                     }
-               errno = 0;
-               
-               return n;
-              }
-        if(e<0){
-           /*Error -- TODO. EBADF is a good choice for now. */
-           fprintf(stderr,"Error in server select! e=%d\n",e);
-           errno = EBADF;
-           return (-1);
-           }
- }
-
-/* Check to see if anything is ready on pipes */
-
-int os2_check_pipes(sd,readfds,writefds)
-struct select_data *sd;
-fd_set *readfds,*writefds;
-{
-int i,e;
-ULONG ulPostCount;
-PIPESEMSTATE pipeSemState[128];
-APIRET rc;
-        e = 0;
-        rc = DosResetEventSem(hPipeSem,&ulPostCount);
-        rc = DosQueryNPipeSemState((HSEM) hPipeSem, (PPIPESEMSTATE)&pipeSemState, 
-                sizeof(pipeSemState));
-        if(rc) fprintf(stderr,"SELECT: rc from QueryNPipeSem: %d\n",rc);
-        i=0;
-        while (pipeSemState[i].fStatus != 0) {
-           /*fprintf(stderr,"SELECT: sem entry, stat=%d, flag=%d, key=%d,avail=%d\n",
-                pipeSemState[i].fStatus,pipeSemState[i].fFlag,pipeSemState[i].usKey,
-                pipeSemState[i].usAvail);  */
-           if((pipeSemState[i].fStatus == 1) &&
-                    (FD_ISSET(pipeSemState[i].usKey,&sd->read_copy))){
-                FD_SET(pipeSemState[i].usKey,readfds);
-                e++;
-                }
-           else if((pipeSemState[i].fStatus == 2)  &&
-                    (FD_ISSET(pipeSemState[i].usKey,&sd->write_copy))){
-                FD_SET(pipeSemState[i].usKey,writefds);
-                e++;
-                }
-            else if( (pipeSemState[i].fStatus == 3) &&
-                ( (FD_ISSET(pipeSemState[i].usKey,&sd->read_copy)) ||
-                  (FD_ISSET(pipeSemState[i].usKey,&sd->write_copy)) )){
-                errno = EBADF;
-                /* fprintf(stderr,"Pipe has closed down, fd=%d\n",pipeSemState[i].usKey); */
-                return (-1);
-                }
-            i++;
-            } /* endwhile */
-        /*fprintf(stderr,"Done listing pipe sem entries, total %d entries, total ready entries %d\n",i,e);*/
-errno = 0;
-return(e);
-}
-
diff --git a/hw/xprint/attributes.c b/hw/xprint/attributes.c
index a24c107..d8ee5ad 100644
--- a/hw/xprint/attributes.c
+++ b/hw/xprint/attributes.c
@@ -1375,7 +1375,6 @@ ReplaceAllKeywords(
     defined(__CYGWIN__) || \
     (defined(sun) && !defined(SVR4)) || \
     (defined(SVR4) && !defined(sun) && !defined(__UNIXWARE__)) || \
-    defined(__UNIXOS2__) || \
     defined(ISC) || \
     defined(Lynx) || \
     defined(__QNX__) || \
diff --git a/include/os.h b/include/os.h
index 7399436..3d68947 100644
--- a/include/os.h
+++ b/include/os.h
@@ -272,7 +272,7 @@ void OsBlockSignals (void);
 
 void OsReleaseSignals (void);
 
-#if !defined(WIN32) && !defined(__UNIXOS2__)
+#if !defined(WIN32)
 extern int System(char *);
 extern pointer Popen(char *, char *);
 extern int Pclose(pointer);
diff --git a/include/servermd.h b/include/servermd.h
index 4f32a9d..74b90b3 100644
--- a/include/servermd.h
+++ b/include/servermd.h
@@ -447,8 +447,6 @@ SOFTWARE.
 #if	(defined(SVR4) && defined(i386)) || \
 	defined(__alpha__) || defined(__alpha) || \
 	defined(__i386__) || defined(__i386) || \
-	defined(__UNIXOS2__) || \
-	defined(__OS2ELF__) || \
 	defined(__QNX__) || \
 	defined(__s390x__) || defined(__s390__)
   
diff --git a/os/WaitFor.c b/os/WaitFor.c
index 4a606ac..ec1592c 100644
--- a/os/WaitFor.c
+++ b/os/WaitFor.c
@@ -67,9 +67,6 @@ SOFTWARE.
 #include <X11/X.h>
 #include "misc.h"
 
-#ifdef __UNIXOS2__
-#define select(n,r,w,x,t) os2PseudoSelect(n,r,w,x,t)
-#endif
 #include "osdep.h"
 #include <X11/Xpoll.h>
 #include "dixstruct.h"
diff --git a/os/access.c b/os/access.c
index 2de0ead..e194bb8 100644
--- a/os/access.c
+++ b/os/access.c
@@ -1193,9 +1193,6 @@ ResetHosts (char *display)
     if (fnamelen > sizeof(fname))
 	FatalError("Display name `%s' is too long\n", display);
     sprintf(fname, ETC_HOST_PREFIX "%s" ETC_HOST_SUFFIX, display);
-#ifdef __UNIXOS2__
-    strcpy(fname, (char*)__XOS2RedirRoot(fname));
-#endif /* __UNIXOS2__ */
 
     if ((fd = fopen (fname, "r")) != 0)
     {
@@ -1206,10 +1203,6 @@ ResetHosts (char *display)
 	    continue;
     	if ((ptr = strchr(ohostname, '\n')) != 0)
     	    *ptr = 0;
-#ifdef __UNIXOS2__
-    	if ((ptr = strchr(ohostname, '\r')) != 0)
-    	    *ptr = 0;
-#endif
         hostlen = strlen(ohostname) + 1;
         for (i = 0; i < hostlen; i++)
 	    lhostname[i] = tolower(ohostname[i]);
@@ -1825,7 +1818,7 @@ ConvertAddr (
     switch (saddr->sa_family)
     {
     case AF_UNSPEC:
-#if defined(UNIXCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)
+#if defined(UNIXCONN) || defined(LOCALCONN)
     case AF_UNIX:
 #endif
         return FamilyLocal;
diff --git a/os/connection.c b/os/connection.c
index 693bb20..d975f87 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -107,11 +107,6 @@ SOFTWARE.
 #include <sys/ioctl.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define select(n,r,w,x,t) os2PseudoSelect(n,r,w,x,t)
-extern __const__ int _nfiles;
-#endif
-
 #if defined(TCPCONN) || defined(STREAMSCONN)
 # include <netinet/in.h>
 # include <arpa/inet.h>
@@ -124,21 +119,17 @@ extern __const__ int _nfiles;
 #   ifdef CSRG_BASED
 #    include <sys/param.h>
 #   endif
-#    ifndef __UNIXOS2__
-#     include <netinet/tcp.h>
-#    endif
+#   include <netinet/tcp.h>
 #  endif
 # endif
 # include <arpa/inet.h>
 #endif
 
-#if !defined(__UNIXOS2__)
 #ifndef Lynx
 #include <sys/uio.h>
 #else
 #include <uio.h>
 #endif
-#endif
 #endif /* WIN32 */
 #include "misc.h"		/* for typedef of pointer */
 #include "osdep.h"
@@ -194,9 +185,6 @@ Bool AnyClientsWriteBlocked;	/* true if 
 static Bool RunFromSmartParent;	/* send SIGUSR1 to parent process */
 Bool PartialNetwork;		/* continue even if unable to bind all addrs */
 static Pid_t ParentProcess;
-#ifdef __UNIXOS2__
-Pid_t GetPPID(Pid_t pid);
-#endif
 
 static Bool debug_conns = FALSE;
 
@@ -329,8 +317,6 @@ InitConnectionLimits(void)
 
 #ifndef __CYGWIN__
 
-#ifndef __UNIXOS2__
-
 #if !defined(XNO_SYSCONF) && defined(_SC_OPEN_MAX)
     lastfdesc = sysconf(_SC_OPEN_MAX) - 1;
 #endif
@@ -345,10 +331,6 @@ InitConnectionLimits(void)
 	lastfdesc = _NFILE - 1;
 #endif
 
-#else /* __UNIXOS2__ */
-    lastfdesc = _nfiles - 1;
-#endif
-
 #endif /* __CYGWIN__ */
 
     /* This is the fallback */
@@ -464,15 +446,6 @@ CreateWellKnownSockets(void)
 	RunFromSmartParent = TRUE;
     OsSignal(SIGUSR1, handler);
     ParentProcess = getppid ();
-#ifdef __UNIXOS2__
-    /*
-     * fg030505: under OS/2, xinit is not the parent process but
-     * the "grant parent" process of the server because execvpe()
-     * presents us an additional process number;
-     * GetPPID(pid) is part of libemxfix
-     */
-    ParentProcess = GetPPID (ParentProcess);
-#endif /* __UNIXOS2__ */
     if (RunFromSmartParent) {
 	if (ParentProcess > 1) {
 	    kill (ParentProcess, SIGUSR1);
@@ -577,7 +550,7 @@ AuthAudit (ClientPtr client, Bool letin,
 	switch (saddr->sa_family)
 	{
 	case AF_UNSPEC:
-#if defined(UNIXCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)
+#if defined(UNIXCONN) || defined(LOCALCONN)
 	case AF_UNIX:
 #endif
 	    strcpy(out, "local host");
diff --git a/os/io.c b/os/io.c
index 4e83e68..835af54 100644
--- a/os/io.c
+++ b/os/io.c
@@ -70,7 +70,7 @@ SOFTWARE.
 #include <X11/Xtrans/Xtrans.h>
 #include <X11/Xmd.h>
 #include <errno.h>
-#if !defined(__UNIXOS2__) && !defined(WIN32)
+#if !defined(WIN32)
 #ifndef Lynx
 #include <sys/uio.h>
 #else
@@ -98,7 +98,6 @@ static void SkipRequests(xReqPtr req, Cl
 /* check for both EAGAIN and EWOULDBLOCK, because some supposedly POSIX
  * systems are broken and return EWOULDBLOCK when they should return EAGAIN
  */
-#ifndef __UNIXOS2__
 #ifndef WIN32
 #if defined(EAGAIN) && defined(EWOULDBLOCK)
 #define ETEST(err) (err == EAGAIN || err == EWOULDBLOCK)
@@ -112,9 +111,6 @@ static void SkipRequests(xReqPtr req, Cl
 #else /* WIN32 The socket errorcodes differ from the normal errors*/
 #define ETEST(err) (err == EAGAIN || err == WSAEWOULDBLOCK)
 #endif
-#else /* __UNIXOS2__  Writing to full pipes may return ENOSPC */
-#define ETEST(err) (err == EAGAIN || err == EWOULDBLOCK || err == ENOSPC)
-#endif
 
 static Bool CriticalOutputPending;
 static int timesThisConnection = 0;
diff --git a/os/log.c b/os/log.c
index e8aa3fa..0860847 100644
--- a/os/log.c
+++ b/os/log.c
@@ -182,9 +182,6 @@ LogInit(const char *fname, const char *b
 		sprintf(suffix, backup, display);
 		sprintf(oldLog, "%s%s", logFileName, suffix);
 		free(suffix);
-#ifdef __UNIXOS2__
-		remove(oldLog);
-#endif
 		if (rename(logFileName, oldLog) == -1) {
 		    FatalError("Cannot move old log file (\"%s\" to \"%s\"\n",
 			       logFileName, oldLog);
diff --git a/os/oscolor.c b/os/oscolor.c
index d53e4d8..e175692 100644
--- a/os/oscolor.c
+++ b/os/oscolor.c
@@ -225,16 +225,9 @@ OsInitColors(void)
 
   if (!was_here)
     {
-#ifndef __UNIXOS2__
       path = (char*)ALLOCATE_LOCAL(strlen(rgbPath) +5);
       strcpy(path, rgbPath);
       strcat(path, ".txt");
-#else
-      char *tmp = (char*)__XOS2RedirRoot(rgbPath);
-      path = (char*)ALLOCATE_LOCAL(strlen(tmp) +5);
-      strcpy(path, tmp);
-      strcat(path, ".txt");
-#endif
       if (!(rgb = fopen(path, "r")))
         {
 	   ErrorF( "Couldn't open RGB_DB '%s'\n", rgbPath );
@@ -245,11 +238,7 @@ OsInitColors(void)
       while(fgets(line, sizeof(line), rgb))
 	{
 	  lineno++;
-#ifndef __UNIXOS2__
 	  if (sscanf(line,"%d %d %d %[^\n]\n", &red, &green, &blue, name) == 4)
-#else
-	  if (sscanf(line,"%d %d %d %[^\n\r]\n", &red, &green, &blue, name) == 4)
-#endif
 	    {
 	      if (red >= 0   && red <= 0xff &&
 		  green >= 0 && green <= 0xff &&
diff --git a/os/osdep.h b/os/osdep.h
index 04e88ea..965436d 100644
--- a/os/osdep.h
+++ b/os/osdep.h
@@ -91,7 +91,7 @@ SOFTWARE.
 #if defined(NOFILE) && !defined(NOFILES_MAX)
 #define OPEN_MAX NOFILE
 #else
-#if !defined(__UNIXOS2__) && !defined(WIN32)
+#if !defined(WIN32)
 #define OPEN_MAX NOFILES_MAX
 #else
 #define OPEN_MAX 256
diff --git a/os/osinit.c b/os/osinit.c
index 9a1c113..1f09f06 100644
--- a/os/osinit.c
+++ b/os/osinit.c
@@ -133,7 +133,7 @@ OsInit(void)
 		dup2 (fileno (err), 2);
 		fclose (err);
 	    }
-#if defined(SYSV) || defined(SVR4) || defined(__UNIXOS2__) || defined(WIN32) || defined(__CYGWIN__)
+#if defined(SYSV) || defined(SVR4) || defined(WIN32) || defined(__CYGWIN__)
 	    {
 	    static char buf[BUFSIZ];
 	    setvbuf (stderr, buf, _IOLBF, BUFSIZ);
diff --git a/os/utils.c b/os/utils.c
index dd5acd3..3bb7dbe 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -297,9 +297,7 @@ OsSignal(sig, handler)
  * server at a time.  This keeps the servers from stomping on each other
  * if the user forgets to give them different display numbers.
  */
-#ifndef __UNIXOS2__
 #define LOCK_DIR "/tmp"
-#endif
 #define LOCK_TMP_PREFIX "/.tX"
 #define LOCK_PREFIX "/.X"
 #define LOCK_SUFFIX "-lock"
@@ -309,10 +307,6 @@ OsSignal(sig, handler)
 #include <sys/param.h>
 #endif
 
-#ifdef __UNIXOS2__
-#define link rename
-#endif
-
 #ifndef PATH_MAX
 #ifndef Lynx
 #include <sys/param.h>
@@ -351,14 +345,7 @@ LockServer(void)
   /*
    * Path names
    */
-#ifndef __UNIXOS2__
   tmppath = LOCK_DIR;
-#else
-  /* OS/2 uses TMP directory, must also prepare for 8.3 names */
-  tmppath = getenv("TMP");
-  if (!tmppath)
-    FatalError("No TMP dir found\n");
-#endif
 
   sprintf(port, "%d", atoi(display));
   len = strlen(LOCK_PREFIX) > strlen(LOCK_TMP_PREFIX) ? strlen(LOCK_PREFIX) :
@@ -399,13 +386,11 @@ LockServer(void)
     FatalError("Could not create lock file in %s\n", tmp);
   (void) sprintf(pid_str, "%10ld\n", (long)getpid());
   (void) write(lfd, pid_str, 11);
-#ifndef __UNIXOS2__
 #ifndef USE_CHMOD
   (void) fchmod(lfd, 0444);
 #else
   (void) chmod(tmp, 0444);
 #endif
-#endif
   (void) close(lfd);
 
   /*
@@ -484,9 +469,6 @@ UnlockServer(void)
 
   if (!StillLocking){
 
-#ifdef __UNIXOS2__
-  (void) chmod(LockFile,S_IREAD|S_IWRITE);
-#endif /* __UNIXOS2__ */
   (void) unlink(LockFile);
   }
 }
@@ -914,7 +896,7 @@ ProcessCommandLine(int argc, char *argv[
 #ifdef SERVER_LOCK
 	else if ( strcmp ( argv[i], "-nolock") == 0)
 	{
-#if !defined(WIN32) && !defined(__UNIXOS2__) && !defined(__CYGWIN__)
+#if !defined(WIN32) && !defined(__CYGWIN__)
 	  if (getuid() != 0)
 	    ErrorF("Warning: the -nolock option can only be used by root\n");
 	  else
@@ -1246,7 +1228,7 @@ ExpandCommandLine(int *pargc, char ***pa
 {
     int i;
 
-#if !defined(WIN32) && !defined(__UNIXOS2__) && !defined(__CYGWIN__)
+#if !defined(WIN32) && !defined(__CYGWIN__)
     if (getuid() != geteuid())
 	return;
 #endif
@@ -1677,7 +1659,7 @@ OsReleaseSignals (void)
 #endif
 }
 
-#if !defined(WIN32) && !defined(__UNIXOS2__)
+#if !defined(WIN32)
 /*
  * "safer" versions of system(3), popen(3) and pclose(3) which give up
  * all privs before running a command.
@@ -1952,7 +1934,7 @@ Fclose(pointer iop)
 #endif
 }
 
-#endif /* !WIN32 && !__UNIXOS2__ */
+#endif /* !WIN32 */
 
 
 /*
diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
index c24c56c..d79ae7a 100644
--- a/xkb/ddxLoad.c
+++ b/xkb/ddxLoad.c
@@ -77,7 +77,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #define	POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
 #define	POST_ERROR_MSG2 "\"End of messages from xkbcomp\""
 
-#if defined(__UNIXOS2__) || defined(WIN32)
+#if defined(WIN32)
 #define PATHSEPARATOR "\\"
 #else
 #define PATHSEPARATOR "/"
@@ -239,20 +239,8 @@ char 	*cmd = NULL,file[PATH_MAX],xkm_out
     OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
 
     if (XkbBaseDirectory!=NULL) {
-#ifndef __UNIXOS2__
         char *xkbbasedir = XkbBaseDirectory;
         char *xkbbindir = XkbBinDirectory;
-#else
-        /* relocate the basedir and replace the slashes with backslashes */
-        char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
-        char *xkbbindir = (char*)__XOS2RedirRoot(XkbBinDirectory);
-        int i;
-
-	for (i=0; i<strlen(xkbbasedir); i++) 
-            if (xkbbasedir[i]=='/') xkbbasedir[i]='\\';
-	for (i=0; i<strlen(xkbbindir); i++) 
-            if (xkbbindir[i]=='/') xkbbindir[i]='\\';
-#endif
 
 	cmd = Xprintf("\"%s" PATHSEPARATOR "xkbcomp\" -w %d \"-R%s\" -xkm %s%s -em1 %s -emp %s -eml %s keymap/%s \"%s%s.xkm\"",
 		xkbbindir,
@@ -338,18 +326,8 @@ char tmpname[PATH_MAX];
            for xkbcomp. xkbcomp does not read from stdin. */
         char *xkmfile = tmpname;
 #endif
-#ifndef __UNIXOS2__
         char *xkbbasedir = XkbBaseDirectory;
         char *xkbbindir = XkbBinDirectory;
-#else
-        int i;
-        char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
-        char *xkbbindir = (char*)__XOS2RedirRoot(XkbBinDirectory);
-	for (i=0; i<strlen(xkbbasedir); i++) 
-            if (xkbbasedir[i]=='/') xkbbasedir[i]='\\';
-	for (i=0; i<strlen(xkbbindir); i++) 
-            if (xkbbindir[i]=='/') xkbbindir[i]='\\';
-#endif
         
 	buf = Xprintf(
 	   "\"%s" PATHSEPARATOR "xkbcomp\" -w %d \"-R%s\" -xkm \"%s\" -em1 %s -emp %s -eml %s \"%s%s.xkm\"",
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index 716bc26..c0867ad 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -847,7 +847,7 @@ XkbProcessArguments(int argc,char *argv[
     }
     else if (strncmp(argv[i], "-xkbdir", 7) == 0) {
 	if(++i < argc) {
-#if !defined(WIN32) && !defined(__UNIXOS2__) && !defined(__CYGWIN__)
+#if !defined(WIN32) && !defined(__CYGWIN__)
 	    if (getuid() != geteuid()) {
 		LogMessage(X_WARNING, "-xkbdir is not available for setuid X servers\n");
 		return -1;
diff-tree 8a06ff9ffa4816d192e58e43e7fe569b97b4dd7c (from 928836a5abd85466e920eb487fab9ccb295e0c5b)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Thu Jun 28 16:41:28 2007 -0400

    Fix another usage of MAX_PCI_DEVICES.
    
    Fixes cases where the VGA device is above the 128th device on the system.

diff --git a/hw/xfree86/os-support/bus/Pci.c b/hw/xfree86/os-support/bus/Pci.c
index bc5e11f..30f7667 100644
--- a/hw/xfree86/os-support/bus/Pci.c
+++ b/hw/xfree86/os-support/bus/Pci.c
@@ -1093,7 +1093,7 @@ xf86GetPciConfigFromTag(PCITAG Tag)
     pciConfigPtr pDev;
     int i = 0;
 
-    for (i = 0 ; (pDev = pci_devp[i]) && i <= MAX_PCI_DEVICES; i++) {
+    for (i = 0 ; (pDev = pci_devp[i]) && i <= xf86MaxPciDevs; i++) {
 	if (Tag == pDev->tag)
 	    return pDev;
     }
diff-tree 928836a5abd85466e920eb487fab9ccb295e0c5b (from 62f43d8b33f67d8f3d0bd65787ffae9e6b634d65)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Thu Jun 28 16:29:28 2007 -0400

    Bug #10770: "Inputdevs" isn't a valid config file keyword.

diff --git a/hw/xfree86/parser/Files.c b/hw/xfree86/parser/Files.c
index 2688bb1..d304737 100644
--- a/hw/xfree86/parser/Files.c
+++ b/hw/xfree86/parser/Files.c
@@ -258,7 +258,7 @@ xf86printFileSection (FILE * cf, XF86Con
 			s++;
 			p = index (s, ',');
 		}
-		fprintf (cf, "\tInputdevs   \"%s\"\n", s);
+		fprintf (cf, "\tInputDevices   \"%s\"\n", s);
 	}
 	if (ptr->file_fontpath)
 	{
diff-tree 62f43d8b33f67d8f3d0bd65787ffae9e6b634d65 (from 3860996d5666b76600b1537e2cbd58e36b086308)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Wed Jun 27 16:24:42 2007 -0300

    Relink properly all kdrive servers when changes happen.

diff --git a/configure.ac b/configure.ac
index f1e7f73..06473ef 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1815,7 +1815,8 @@ if test "$KDRIVE" = yes; then
 	    ;;
     esac
     KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a'
-    KDRIVE_LIBS="$XSERVERLIBS_LIBS $DIX_LIB $CONFIG_LIB $KDRIVE_LIB $TSLIB_LIBS $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB"
+    KDRIVE_LOCAL_LIBS="$DIX_LIB $CONFIG_LIB $KDRIVE_LIB $TSLIB_LIBS $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB"
+    KDRIVE_LIBS="$XSERVERLIBS_LIBS $KDRIVE_LOCAL_LIBS"
 
     # check if we can build Xephyr
     PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"])
@@ -1829,6 +1830,7 @@ AC_SUBST([KDRIVE_INCS])
 AC_SUBST([KDRIVE_PURE_INCS])
 AC_SUBST([KDRIVE_CFLAGS])
 AC_SUBST([KDRIVE_PURE_LIBS])
+AC_SUBST([KDRIVE_LOCAL_LIBS])
 AC_SUBST([KDRIVE_LIBS])
 AM_CONDITIONAL(KDRIVELINUX, [test "x$KDRIVELINUX" = xyes])
 AM_CONDITIONAL(TSLIB, [test "x$HAVE_TSLIB" = xyes])
diff --git a/hw/kdrive/ati/Makefile.am b/hw/kdrive/ati/Makefile.am
index 61c1c84..d7996fc 100644
--- a/hw/kdrive/ati/Makefile.am
+++ b/hw/kdrive/ati/Makefile.am
@@ -63,5 +63,7 @@ Xati_LDADD = \
 	@KDRIVE_LIBS@			\
 	@XSERVER_LIBS@
 
+Xati_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/chips/Makefile.am b/hw/kdrive/chips/Makefile.am
index a0a10d7..4bb5713 100644
--- a/hw/kdrive/chips/Makefile.am
+++ b/hw/kdrive/chips/Makefile.am
@@ -25,5 +25,7 @@ Xchips_LDADD = \
 	@KDRIVE_LIBS@                           \
 	@XSERVER_LIBS@				
 
+Xchips_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/ephyr/Makefile.am b/hw/kdrive/ephyr/Makefile.am
index 1e820c0..11fe454 100644
--- a/hw/kdrive/ephyr/Makefile.am
+++ b/hw/kdrive/ephyr/Makefile.am
@@ -30,5 +30,7 @@ Xephyr_LDADD = 						\
 	@KDRIVE_LIBS@					\
         @XEPHYR_LIBS@
 
+Xephyr_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/epson/Makefile.am b/hw/kdrive/epson/Makefile.am
index d36230a..0ef8e45 100644
--- a/hw/kdrive/epson/Makefile.am
+++ b/hw/kdrive/epson/Makefile.am
@@ -25,5 +25,7 @@ Xepson_LDADD = \
 	@KDRIVE_LIBS@                          \
 	@XSERVER_LIBS@				
 
+Xepson_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/fbdev/Makefile.am b/hw/kdrive/fbdev/Makefile.am
index b7a863b..f7a94e1 100644
--- a/hw/kdrive/fbdev/Makefile.am
+++ b/hw/kdrive/fbdev/Makefile.am
@@ -19,6 +19,8 @@ Xfbdev_LDADD = 						\
 	@KDRIVE_LIBS@					\
 	@XSERVER_LIBS@
 
+Xfbdev_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
 endif
diff --git a/hw/kdrive/i810/Makefile.am b/hw/kdrive/i810/Makefile.am
index 79093da..b7aacd6 100644
--- a/hw/kdrive/i810/Makefile.am
+++ b/hw/kdrive/i810/Makefile.am
@@ -28,5 +28,7 @@ Xi810_LDADD = \
 	@KDRIVE_LIBS@                                  \
 	@XSERVER_LIBS@					
 
+Xi810_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/mach64/Makefile.am b/hw/kdrive/mach64/Makefile.am
index b4d9a4e..1f8a3c3 100644
--- a/hw/kdrive/mach64/Makefile.am
+++ b/hw/kdrive/mach64/Makefile.am
@@ -32,5 +32,7 @@ Xmach64_LDADD = 					\
 	@KDRIVE_LIBS@					\
 	@XSERVER_LIBS@
 
+Xmach64_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/mga/Makefile.am b/hw/kdrive/mga/Makefile.am
index db1a956..72bd539 100644
--- a/hw/kdrive/mga/Makefile.am
+++ b/hw/kdrive/mga/Makefile.am
@@ -27,5 +27,7 @@ Xmga_LDADD = \
 	@KDRIVE_LIBS@                                  \
 	@XSERVER_LIBS@
 
+Xmga_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/neomagic/Makefile.am b/hw/kdrive/neomagic/Makefile.am
index 33bc3a9..770ada2 100644
--- a/hw/kdrive/neomagic/Makefile.am
+++ b/hw/kdrive/neomagic/Makefile.am
@@ -39,5 +39,7 @@ Xneomagic_LDADD = \
 	@KDRIVE_LIBS@               \
 	@XSERVER_LIBS@		  
 
+Xneomagic_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/nvidia/Makefile.am b/hw/kdrive/nvidia/Makefile.am
index 79d2738..3aec124 100644
--- a/hw/kdrive/nvidia/Makefile.am
+++ b/hw/kdrive/nvidia/Makefile.am
@@ -28,5 +28,7 @@ Xnvidia_LDADD = \
 	@KDRIVE_LIBS@				\
 	@XSERVER_LIBS@			
 
+Xnvidia_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/pm2/Makefile.am b/hw/kdrive/pm2/Makefile.am
index ec70276..6223abb 100644
--- a/hw/kdrive/pm2/Makefile.am
+++ b/hw/kdrive/pm2/Makefile.am
@@ -26,5 +26,7 @@ Xpm2_LDADD = \
 	@KDRIVE_LIBS@                          \
 	@XSERVER_LIBS@			
 
+Xpm2_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/r128/Makefile.am b/hw/kdrive/r128/Makefile.am
index 1ca1a60..6b2ca85 100644
--- a/hw/kdrive/r128/Makefile.am
+++ b/hw/kdrive/r128/Makefile.am
@@ -25,5 +25,7 @@ Xr128_LDADD = \
 	@KDRIVE_LIBS@                          \
 	@XSERVER_LIBS@					
 
+Xr128_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/smi/Makefile.am b/hw/kdrive/smi/Makefile.am
index a6ac474..d6a143b 100644
--- a/hw/kdrive/smi/Makefile.am
+++ b/hw/kdrive/smi/Makefile.am
@@ -30,5 +30,7 @@ Xsmi_LDADD = \
 	@KDRIVE_LIBS@                          \
 	@XSERVER_LIBS@					
 
+Xsmi_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/vesa/Makefile.am b/hw/kdrive/vesa/Makefile.am
index e062fe7..934b995 100644
--- a/hw/kdrive/vesa/Makefile.am
+++ b/hw/kdrive/vesa/Makefile.am
@@ -24,5 +24,7 @@ Xvesa_LDADD = \
 	@KDRIVE_LIBS@				\
 	@XSERVER_LIBS@
 
+Xvesa_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff --git a/hw/kdrive/via/Makefile.am b/hw/kdrive/via/Makefile.am
index 1c57969..caf3f5f 100644
--- a/hw/kdrive/via/Makefile.am
+++ b/hw/kdrive/via/Makefile.am
@@ -26,5 +26,7 @@ Xvia_LDADD =						\
 	@KDRIVE_LIBS@					\
 	@XSERVER_LIBS@
 
+Xvia_DEPENDENCIES = @KDRIVE_LOCAL_LIBS@
+
 relink:
 	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
diff-tree 3860996d5666b76600b1537e2cbd58e36b086308 (from 1e189ed1daab58c1de67d387306fde0a9e7984a4)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Wed Jun 27 16:06:12 2007 -0300

    Remove double-defined.

diff --git a/configure.ac b/configure.ac
index 4406474..f1e7f73 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1819,11 +1819,6 @@ if test "$KDRIVE" = yes; then
 
     # check if we can build Xephyr
     PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"])
-    XEPHYR_LIBS="$XEPHYR_LIBS $XSERVER_LIBS"
-
-    # Xephyr needs nanosleep() which is in librt on Solaris
-    AC_CHECK_FUNC([nanosleep], [],
-        AC_CHECK_LIB([rt], [nanosleep], XEPHYR_LIBS="$XEPHYR_LIBS -lrt"))
 
     AC_SUBST([XEPHYR_LIBS])
     AC_SUBST([XEPHYR_INCS])
diff-tree 1e189ed1daab58c1de67d387306fde0a9e7984a4 (from bf1ad1aa4270dccf1540943d97e80b317c0adb56)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Wed Jun 27 10:16:40 2007 -0700

    Handle tileStride > 1 in fbEvenTile.
    
    Patch courtesy of James Jones.

diff --git a/fb/fb.h b/fb/fb.h
index 655d5ae..1ecae47 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -2032,6 +2032,7 @@ fbEvenTile (FbBits	*dst,
 	    int		height,
 
 	    FbBits	*tile,
+	    FbStride	tileStride,
 	    int		tileHeight,
 
 	    int		alu,
diff --git a/fb/fbtile.c b/fb/fbtile.c
index e7df1af..a9ffa97 100644
--- a/fb/fbtile.c
+++ b/fb/fbtile.c
@@ -42,6 +42,7 @@ fbEvenTile (FbBits	*dst,
 	    int		height,
 
 	    FbBits	*tile,
+	    FbStride	tileStride,
 	    int		tileHeight,
 
 	    int		alu,
@@ -68,9 +69,9 @@ fbEvenTile (FbBits	*dst,
     /*
      * Compute tile start scanline and rotation parameters
      */
-    tileEnd = tile + tileHeight;
+    tileEnd = tile + tileHeight * tileStride;
     modulus (- yRot, tileHeight, tileY);
-    t = tile + tileY;
+    t = tile + tileY * tileStride;
     modulus (- xRot, FB_UNIT, tileX);
     rot = tileX;
     
@@ -80,8 +81,9 @@ fbEvenTile (FbBits	*dst,
 	/*
 	 * Pick up bits for this scanline
 	 */
-	bits = READ(t++);
-	if (t == tileEnd) t = tile;
+	bits = READ(t);
+	t += tileStride;
+	if (t >= tileEnd) t = tile;
 	bits = FbRotLeft(bits,rot);
 	and = fbAnd(alu,bits,pm);
 	xor = fbXor(alu,bits,pm);
@@ -194,7 +196,7 @@ fbTile (FbBits	    *dst,
 {
     if (FbEvenTile (tileWidth))
 	fbEvenTile (dst, dstStride, dstX, width, height, 
-		    tile, tileHeight,
+		    tile, tileStride, tileHeight,
 		    alu, pm, xRot, yRot);
     else
 	fbOddTile (dst, dstStride, dstX, width, height, 
diff-tree bf1ad1aa4270dccf1540943d97e80b317c0adb56 (from d73835efda4995a310188537233a984f4b73628d)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Wed Jun 27 09:19:28 2007 -0400

    Add VBE PanelID support.
    
    Originally found only in the i810 driver.

diff --git a/hw/xfree86/vbe/vbe.c b/hw/xfree86/vbe/vbe.c
index 3ca9851..06559bb 100644
--- a/hw/xfree86/vbe/vbe.c
+++ b/hw/xfree86/vbe/vbe.c
@@ -1074,3 +1074,73 @@ VBEDPMSSet(vbeInfoPtr pVbe, int mode)
     return (R16(pVbe->pInt10->ax) == 0x4f);
 }
 
+void
+VBEInterpretPanelID(int scrnIndex, struct vbePanelID *data)
+{
+    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+    DisplayModePtr mode;
+    const float PANEL_HZ = 60.0;
+
+    if (!data)
+	return;
+
+    xf86DrvMsg(scrnIndex, X_INFO, "PanelID returned panel resolution %dx%d\n",
+	    data->hsize, data->vsize);
+
+    if (pScrn->monitor->nHsync || pScrn->monitor->nVrefresh)
+	return;
+
+    mode = xf86CVTMode(data->hsize, data->vsize, PANEL_HZ, 1, 0);
+
+    pScrn->monitor->nHsync = 1;
+    pScrn->monitor->hsync[0].lo = 31.5;
+    pScrn->monitor->hsync[0].hi = (float)mode->Clock / (float)mode->HTotal;
+    pScrn->monitor->nVrefresh = 1;
+    pScrn->monitor->vrefresh[0].lo = 56.0;
+    pScrn->monitor->vrefresh[0].hi =
+	(float)mode->Clock*1000.0 / (float)mode->HTotal / (float)mode->VTotal;
+
+    xfree(mode);
+}
+
+struct vbePanelID *
+VBEReadPanelID(vbeInfoPtr pVbe)
+{
+    int RealOff = pVbe->real_mode_base;
+    pointer page = pVbe->memory;
+    unsigned char *tmp = NULL;
+    int screen = pVbe->pInt10->scrnIndex;
+
+    pVbe->pInt10->ax = 0x4F11;
+    pVbe->pInt10->bx = 0x01;
+    pVbe->pInt10->cx = 0;
+    pVbe->pInt10->dx = 0;
+    pVbe->pInt10->es = SEG_ADDR(RealOff);
+    pVbe->pInt10->di = SEG_OFF(RealOff);
+    pVbe->pInt10->num = 0x10;
+
+    xf86ExecX86int10(pVbe->pInt10);
+
+    if ((pVbe->pInt10->ax & 0xff) != 0x4f) {
+	xf86DrvMsgVerb(screen,X_INFO,3,"VESA VBE PanelID invalid\n");
+	goto error;
+    }
+
+    switch (pVbe->pInt10->ax & 0xff00) {
+    case 0x0:
+	xf86DrvMsgVerb(screen,X_INFO,3,"VESA VBE PanelID read successfully\n");
+	tmp = (unsigned char *)xnfalloc(32); 
+	memcpy(tmp,page,32); 
+	break;
+    case 0x100:
+	xf86DrvMsgVerb(screen,X_INFO,3,"VESA VBE PanelID read failed\n");       
+	break;
+    default:
+	xf86DrvMsgVerb(screen,X_INFO,3,"VESA VBE PanelID unknown failure %i\n",
+		       pVbe->pInt10->ax & 0xff00);
+	break;
+    }
+
+error:
+    return tmp;
+}
diff --git a/hw/xfree86/vbe/vbe.h b/hw/xfree86/vbe/vbe.h
index 83b5a99..de9237c 100644
--- a/hw/xfree86/vbe/vbe.h
+++ b/hw/xfree86/vbe/vbe.h
@@ -328,4 +328,20 @@ VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeS
 int VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int Clock);
 Bool VBEDPMSSet(vbeInfoPtr pVbe, int mode);
 
+struct vbePanelID {
+    short hsize;
+    short vsize;
+    short fptype;
+    char redbpp;
+    char greenbpp;
+    char bluebpp;
+    char reservedbpp;
+    int reserved_offscreen_mem_size;
+    int reserved_offscreen_mem_pointer;
+    char reserved[14];
+};
+
+void VBEInterpretPanelID(int scrnIndex, struct vbePanelID *data);
+struct vbePanelID *VBEReadPanelID(vbeInfoPtr pVbe);
+
 #endif
diff-tree d73835efda4995a310188537233a984f4b73628d (from 38f8e536684193c3f70b23be22d818053c676072)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Wed Jun 27 03:34:13 2007 -0300

    More janitor work. Remove 'defined but not used' warnings from kdrive and some minor cosmetic.

diff --git a/dix/events.c b/dix/events.c
index 63bc379..7b4cab0 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -160,7 +160,6 @@ extern Mask      xevieFilters[128];
 extern int       xevieEventSent;
 extern int       xevieKBEventSent;
 int    xeviegrabState = 0;
-static xEvent *xeviexE;
 #endif
 
 #include <X11/extensions/XIproto.h>
diff --git a/hw/kdrive/ati/ati_dma.c b/hw/kdrive/ati/ati_dma.c
index 70b86d3..2caabdb 100644
--- a/hw/kdrive/ati/ati_dma.c
+++ b/hw/kdrive/ati/ati_dma.c
@@ -43,6 +43,7 @@ extern CARD32 radeon_cp_microcode[][2];
 extern CARD32 r200_cp_microcode[][2];
 extern CARD32 r300_cp_microcode[][2];
 
+#if DEBUG_FIFO
 static void
 ATIDebugFifo(ATIScreenInfo *atis)
 {
@@ -69,6 +70,7 @@ ATIDebugFifo(ATIScreenInfo *atis)
 		    MMIO_IN32(mmio, R128_REG_PC_NGUI_CTLSTAT));
 	}
 }
+#endif
 
 static void
 ATIUploadMicrocode(ATIScreenInfo *atis)
diff --git a/hw/kdrive/linux/evdev.c b/hw/kdrive/linux/evdev.c
index 6c08cfa..deefcf9 100644
--- a/hw/kdrive/linux/evdev.c
+++ b/hw/kdrive/linux/evdev.c
@@ -155,8 +155,6 @@ EvdevInit (KdPointerInfo *pi)
 {
     int                i;
     int                fd;
-    int                n = 0;
-    char        *prot;
 
     if (!pi->path) {
         for (i = 0; i < NUM_DEFAULT_EVDEV; i++) {
@@ -277,6 +275,8 @@ EvdevDisable (KdPointerInfo *pi)
 {
     Kevdev              *ke;
 
+    ke = pi->driverPrivate;
+
     if (!pi || !pi->driverPrivate)
         return;
 
diff-tree 38f8e536684193c3f70b23be22d818053c676072 (from 1340f34ec98c41781164018d43bd7bb858d8132b)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Wed Jun 27 03:19:37 2007 -0300

    Janitor work. Remove 'defined but not used' warnings from xorg and other cosmetic.

diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index 4da74e5..daf53de 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -125,9 +125,6 @@ extern Bool noXkbExtension;
  * This has been generalised to work with Linux and *BSD+syscons (DHD)
  */
 
-#ifdef USE_VT_SYSREQ
-static Bool VTSysreqToggle = FALSE;
-#endif /* !USE_VT_SYSREQ */
 _X_EXPORT Bool VTSwitchEnabled = TRUE;	/* Allows run-time disabling for
                                          *BSD and for avoiding VT
                                          switches when using the DRI
diff --git a/hw/xfree86/common/xf86Mode.c b/hw/xfree86/common/xf86Mode.c
index b343788..0c25c96 100644
--- a/hw/xfree86/common/xf86Mode.c
+++ b/hw/xfree86/common/xf86Mode.c
@@ -458,7 +458,6 @@ xf86LookupMode(ScrnInfoPtr scrp, Display
     int ModePrivFlags = 0;
     ModeStatus status = MODE_NOMODE;
     Bool allowDiv2 = (strategy & LOOKUP_CLKDIV2) != 0;
-    Bool haveBuiltin;
     int n;
     const int types[] = {
 	M_T_BUILTIN | M_T_PREFERRED,
@@ -2038,6 +2037,7 @@ xf86SetCrtcForModes(ScrnInfoPtr scrp, in
 }
 
 
+#if 0
 static void
 add(char **p, char *new)
 {
@@ -2046,7 +2046,6 @@ add(char **p, char *new)
     strcat(*p, new);
 }
 
-#if 0
 _X_EXPORT void
 xf86PrintModeline(int scrnIndex,DisplayModePtr mode)
 {
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index c08b15f..f3d2f21 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -84,9 +84,7 @@
 
 #include <stdarg.h>
 
-#include "osdep.h"		/* EnabledDevices */
 #include <X11/Xpoll.h>
-#include "xf86_OSproc.h"	/* sigio stuff */
 
 #include "mi.h"
 
diff-tree 1340f34ec98c41781164018d43bd7bb858d8132b (from 9725516b4274ceaf9d6caf372c5439b4c9db2316)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date:   Wed Jun 27 03:04:55 2007 -0300

    Fix kdrive XKB.

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 7edcc51..7b22d17 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -740,6 +740,9 @@ KdKeyboardProc(DeviceIntPtr pDevice, int
     DevicePtr   pDev = (DevicePtr)pDevice;
     KdKeyboardInfo *ki;
     Atom xiclass;
+#ifdef XKB
+    XkbComponentNamesRec names;
+#endif
 
     if (!pDev)
 	return BadImplementation;
@@ -788,11 +791,9 @@ KdKeyboardProc(DeviceIntPtr pDevice, int
         KdInitModMap(ki);
         KdInitAutoRepeats(ki);
 
-#ifndef XKB
+#ifdef XKB
         if (!noXkbExtension) {
             memset(&names, 0, sizeof(XkbComponentNamesRec));
-            if (XkbInitialMap) 
-                names.keymap = XkbInitialMap;
 
             XkbSetRulesDflts ("base", "pc105", "us", NULL, NULL);
             ret = XkbInitKeyboardDeviceStruct (pDevice,
diff-tree 9725516b4274ceaf9d6caf372c5439b4c9db2316 (from edb9ccf3ecb4e35a840aa13815979c5fbd73f32d)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Fri Jun 22 17:05:21 2007 -0700

    Split checks for dtrace & getpeerucred()

diff --git a/os/connection.c b/os/connection.c
index cb3443c..693bb20 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -171,8 +171,10 @@ extern __const__ int _nfiles;
 #ifdef XSERVER_DTRACE
 # include <sys/types.h>
 typedef const char *string;
+# ifndef HAS_GETPEERUCRED
+#  define zoneid_t int
+# endif
 # include "../dix/Xserver-dtrace.h"
-# include <ucred.h>
 #endif
 
 static int lastfdesc;		/* maximum file descriptor */
@@ -563,6 +565,8 @@ AuthAudit (ClientPtr client, Bool letin,
     char client_uid_string[64];
 #ifdef HAS_GETPEERUCRED
     ucred_t *peercred = NULL;
+#endif
+#if defined(HAS_GETPEERUCRED) || defined(XSERVER_DTRACE)    
     pid_t client_pid = -1;
     zoneid_t client_zid = -1;
 #endif
diff-tree edb9ccf3ecb4e35a840aa13815979c5fbd73f32d (from 4c601b904ee6fb01da3343ff9ef00d36f1341fcb)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Jun 25 10:51:38 2007 +0200

    Make sure DRIScreenPrivIndex is -1 when no DRI screen private is allocated.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=11340 .

diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c
index dbc1690..2a53eae 100644
--- a/hw/xfree86/dri/dri.c
+++ b/hw/xfree86/dri/dri.c
@@ -312,12 +312,6 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfo
     DRIEntPrivPtr       pDRIEntPriv;
     ScrnInfoPtr         pScrn = xf86Screens[pScreen->myNum];
 
-    if (DRIGeneration != serverGeneration) {
-	if ((DRIScreenPrivIndex = AllocateScreenPrivateIndex()) < 0)
-	    return FALSE;
-	DRIGeneration = serverGeneration;
-    }
-
     /* If the DRI extension is disabled, do not initialize the DRI */
     if (noXFree86DRIExtension) {
 	DRIDrvMsg(pScreen->myNum, X_WARNING,
@@ -347,9 +341,16 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfo
 
     pDRIEntPriv = DRI_ENT_PRIV(pScrn);
 
+    if (DRIGeneration != serverGeneration) {
+	if ((DRIScreenPrivIndex = AllocateScreenPrivateIndex()) < 0)
+	    return FALSE;
+	DRIGeneration = serverGeneration;
+    }
+
     pDRIPriv = (DRIScreenPrivPtr) xcalloc(1, sizeof(DRIScreenPrivRec));
     if (!pDRIPriv) {
         pScreen->devPrivates[DRIScreenPrivIndex].ptr = NULL;
+        DRIScreenPrivIndex = -1;
         return FALSE;
     }
 
@@ -623,7 +624,7 @@ DRICloseScreen(ScreenPtr pScreen)
     DRIEntPrivPtr    pDRIEntPriv = DRI_ENT_PRIV(pScrn);
     Bool closeMaster;
 
-    if (pDRIPriv && pDRIPriv->directRenderingSupport) {
+    if (pDRIPriv) {
 
         pDRIInfo = pDRIPriv->pDriverInfo;
 
@@ -726,6 +727,7 @@ DRICloseScreen(ScreenPtr pScreen)
 
 	xfree(pDRIPriv);
 	pScreen->devPrivates[DRIScreenPrivIndex].ptr = NULL;
+	DRIScreenPrivIndex = -1;
     }
 }
 
diff-tree 4c601b904ee6fb01da3343ff9ef00d36f1341fcb (from bec4e47d128ec40b58a2c9aae475f6a6fc4323c3)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Mon Jun 25 10:53:05 2007 +0930

    configFiles(): don't return anything when declared as void.

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index aedee47..bf22720 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -752,7 +752,7 @@ configFiles(XF86ConfFilesPtr fileconf)
   }
 #endif
 
-  return TRUE;
+  return;
 }
 
 typedef enum {
diff-tree bec4e47d128ec40b58a2c9aae475f6a6fc4323c3 (from 8e5102b9f01821048e72e7f068193a0b3e1816f9)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Mon Jun 25 10:51:42 2007 +0930

    NULL-terminate device list when synthesizing core devices.
    
    This fix is required for 93ca526892c0d22afa05cce6496198c652043a19 to work.

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 5ccc451..aedee47 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -1339,7 +1339,7 @@ checkCoreInputDevices(serverLayoutPtr se
 	    *devs[count - 1] = Pointer;
 	    devs[count - 1]->extraOptions =
 				xf86addNewOption(NULL, xnfstrdup("CorePointer"), NULL);
-	    devs[count]->identifier = NULL;
+	    devs[count] = NULL;
 	    servlayoutp->inputs = devs;
 	}
     }
@@ -1379,7 +1379,7 @@ checkCoreInputDevices(serverLayoutPtr se
 	    *devs[count - 1] = Pointer;
 	    devs[count - 1]->extraOptions =
 				xf86addNewOption(NULL, xnfstrdup("AlwaysCore"), NULL);
-	    devs[count]->identifier = NULL;
+	    devs[count] = NULL;
 	    servlayoutp->inputs = devs;
 	}
     }
@@ -1475,7 +1475,7 @@ checkCoreInputDevices(serverLayoutPtr se
 	    *devs[count - 1] = Keyboard;
 	    devs[count - 1]->extraOptions =
 				xf86addNewOption(NULL, xnfstrdup("CoreKeyboard"), NULL);
-	    devs[count]->identifier = NULL;
+	    devs[count] = NULL;
 	    servlayoutp->inputs = devs;
 	}
     }
diff-tree 8e5102b9f01821048e72e7f068193a0b3e1816f9 (from 87564543d92c1ee1f8cb6fb9716a15d693e08cf5)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Thu Jun 21 15:47:48 2007 +0930

    Set the detail field for DeviceKeyEvents to the keycode.
    
    (cherry picked from commit 0c33dc152e372cdc8ae59d9a5696b0774bcd03b7)

diff --git a/dix/getevents.c b/dix/getevents.c
index 6969f78..8a4f8ed 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -446,6 +446,7 @@ GetKeyboardValuatorEvents(xEvent *events
     kbp = (deviceKeyButtonPointer *) events;
     kbp->time = ms;
     kbp->deviceid = pDev->id;
+    kbp->detail = key_code;
     if (type == KeyPress)
         kbp->type = DeviceKeyPress;
     else if (type == KeyRelease)
diff-tree 87564543d92c1ee1f8cb6fb9716a15d693e08cf5 (from 24ee89fd60f489f2d3af0399e0d667057df74d02)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Tue Jun 19 18:20:05 2007 +0930

    Only decrement buttonsDown when the button count is greater than 0.
    
    Device drivers flush their buttons on device init and cause a button down
    event to be generated. If we unconditionally decrease the buttons, we won't be
    able to ever get a passive device grab.
    
    Format documentation for CheckDeviceGrabs to make it readable.
    (cherry picked from commit 3e894974cdd6a75683d4601f71622d1da7ec4395)
    
    Conflicts:
    
    	Xi/exevents.c

diff --git a/Xi/exevents.c b/Xi/exevents.c
index 9e71a9e..fe297ab 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -248,7 +248,9 @@ ProcessOtherEvent(xEventPtr xE, DeviceIn
 	SetMaskForEvent(Motion_Filter(b), DeviceMotionNotify);
 	if (!grab)
 	    if (CheckDeviceGrabs(other, xE, 0, count))
-		return;
+                /* if a passive grab was activated, the event has been sent
+                 * already */
+                return;
 
     } else if (xE->u.u.type == DeviceButtonRelease) {
         if (!b)
@@ -258,7 +260,7 @@ ProcessOtherEvent(xEventPtr xE, DeviceIn
 	*kptr &= ~bit;
 	if (other->valuator)
 	    other->valuator->motionHintWindow = NullWindow;
-	if (!--b->buttonsDown)
+        if (b->buttonsDown >= 1 && !--b->buttonsDown)
 	    b->motionMask = 0;
 	xE->u.u.detail = b->map[key];
 	if (xE->u.u.detail == 0)
diff --git a/dix/events.c b/dix/events.c
index 887cbcd..63bc379 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -2629,6 +2629,7 @@ BorderSizeNotEmpty(WindowPtr pWin)
 /** 
  * "CheckPassiveGrabsOnWindow" checks to see if the event passed in causes a
  * passive grab set on the window to be activated. 
+ * If a passive grab is activated, the event will be delivered to the client.
  * 
  * @param pWin The window that may be subject to a passive grab.
  * @param device Device that caused the event.
@@ -2728,16 +2729,26 @@ CheckPassiveGrabsOnWindow(
 }
 
 /**
-"CheckDeviceGrabs" handles both keyboard and pointer events that may cause
-a passive grab to be activated.  If the event is a keyboard event, the
-ancestors of the focus window are traced down and tried to see if they have
-any passive grabs to be activated.  If the focus window itself is reached and
-it's descendants contain they pointer, the ancestors of the window that the
-pointer is in are then traced down starting at the focus window, otherwise no
-grabs are activated.  If the event is a pointer event, the ancestors of the
-window that the pointer is in are traced down starting at the root until
-CheckPassiveGrabs causes a passive grab to activate or all the windows are
-tried. PRH
+ * CheckDeviceGrabs handles both keyboard and pointer events that may cause
+ * a passive grab to be activated.  
+ *
+ * If the event is a keyboard event, the ancestors of the focus window are
+ * traced down and tried to see if they have any passive grabs to be
+ * activated.  If the focus window itself is reached and it's descendants
+ * contain the pointer, the ancestors of the window that the pointer is in
+ * are then traced down starting at the focus window, otherwise no grabs are
+ * activated.  
+ * If the event is a pointer event, the ancestors of the window that the
+ * pointer is in are traced down starting at the root until CheckPassiveGrabs
+ * causes a passive grab to activate or all the windows are
+ * tried. PRH
+ *
+ * If a grab is activated, the event has been sent to the client already!
+ *
+ * @param device The device that caused the event.
+ * @param xE The event to handle (most likely {Device}ButtonPress).
+ * @param count Number of events in list.
+ * @return TRUE if a grab has been activated or false otherwise.
 */
 
 Bool
diff-tree 24ee89fd60f489f2d3af0399e0d667057df74d02 (from 93ca526892c0d22afa05cce6496198c652043a19)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Tue Jun 19 15:31:56 2007 +0930

    Add a few comments to devices.c

diff --git a/dix/devices.c b/dix/devices.c
index 6c69454..57e93bb 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -80,9 +80,20 @@ SOFTWARE.
 #include "exglobals.h"
 #include "exevents.h"
 
+/** @file
+ * This file handles input device-related stuff.
+ */
+
 int CoreDevicePrivatesIndex = 0;
 static int CoreDevicePrivatesGeneration = -1;
 
+/**
+ * Create a new input device and init it to sane values. The device is added
+ * to the server's off_devices list.
+ *
+ * @param deviceProc Callback for device control function (switch dev on/off).
+ * @return The newly created device.
+ */
 DeviceIntPtr
 AddInputDevice(DeviceProc deviceProc, Bool autoStart)
 {
@@ -153,6 +164,15 @@ AddInputDevice(DeviceProc deviceProc, Bo
     return dev;
 }
 
+/**
+ * Switch device ON through the driver and push it onto the global device
+ * list. All clients are notified about the device being enabled.
+ *
+ * A device will send events once enabled.
+ *
+ * @param The device to be enabled.
+ * @return TRUE on success or FALSE otherwise.
+ */
 Bool
 EnableDevice(DeviceIntPtr dev)
 {
@@ -189,6 +209,13 @@ EnableDevice(DeviceIntPtr dev)
     return TRUE;
 }
 
+/**
+ * Switch a device off through the driver and push it onto the off_devices
+ * list. A device will not send events while disabled. All clients are
+ * notified about the device being disabled.
+ *
+ * @return TRUE on success or FALSE otherwise.
+ */
 Bool
 DisableDevice(DeviceIntPtr dev)
 {
@@ -219,6 +246,14 @@ DisableDevice(DeviceIntPtr dev)
     return TRUE;
 }
 
+/**
+ * Initialise a new device through the driver and tell all clients about the
+ * new device.
+ * 
+ * The device will NOT send events until it is enabled!
+ *
+ * @return Success or an error code on failure.
+ */
 int
 ActivateDevice(DeviceIntPtr dev)
 {
@@ -243,6 +278,10 @@ ActivateDevice(DeviceIntPtr dev)
     return ret;
 }
 
+/**
+ * Ring the bell.
+ * The actual task of ringing the bell is the job of the DDX.
+ */
 static void
 CoreKeyboardBell(int volume, DeviceIntPtr pDev, pointer arg, int something)
 {
@@ -257,6 +296,9 @@ CoreKeyboardCtl(DeviceIntPtr pDev, Keybd
     return;
 }
 
+/**
+ * Device control function for the Virtual Core Keyboard. 
+ */
 static int
 CoreKeyboardProc(DeviceIntPtr pDev, int what)
 {
@@ -317,6 +359,9 @@ CoreKeyboardProc(DeviceIntPtr pDev, int 
     return Success;
 }
 
+/**
+ * Device control function for the Virtual Core Pointer.
+ */
 static int
 CorePointerProc(DeviceIntPtr pDev, int what)
 {
@@ -347,6 +392,12 @@ CorePointerProc(DeviceIntPtr pDev, int w
     return Success;
 }
 
+/**
+ * Initialise the two core devices, VCP and VCK (see events.c).
+ * The devices are activated but not enabled.
+ * Note that the server MUST have two core devices at all times, even if there
+ * is no physical device connected.
+ */
 void
 InitCoreDevices(void)
 {
@@ -406,6 +457,14 @@ InitCoreDevices(void)
     }
 }
 
+/**
+ * Activate all switched-off devices and then enable all those devices.
+ * 
+ * Will return an error if no core keyboard or core pointer is present.
+ * In theory this should never happen if you call InitCoreDevices() first.
+ * 
+ * @return Success or error code on failure.
+ */
 int
 InitAndStartDevices(void)
 {
@@ -441,6 +500,13 @@ InitAndStartDevices(void)
     return Success;
 }
 
+/**
+ * Close down a device and free all resources. 
+ * Once closed down, the driver will probably not expect you that you'll ever
+ * enable it again and free associated structs. If you want the device to just
+ * be disabled, DisableDevice().
+ * Don't call this function directly, use RemoveDevice() instead.
+ */
 static void
 CloseDevice(DeviceIntPtr dev)
 {
@@ -542,6 +608,10 @@ CloseDevice(DeviceIntPtr dev)
     xfree(dev);
 }
 
+/**
+ * Shut down all devices, free all resources, etc. 
+ * Only useful if you're shutting down the server!
+ */
 void
 CloseDownDevices(void)
 {
@@ -563,6 +633,12 @@ CloseDownDevices(void)
     inputInfo.pointer = NULL;
 }
 
+/**
+ * Remove a device from the device list, closes it and thus frees all
+ * resources. 
+ * Removes both enabled and disabled devices and notifies all devices about
+ * the removal of the device.
+ */
 int
 RemoveDevice(DeviceIntPtr dev)
 {
diff-tree 93ca526892c0d22afa05cce6496198c652043a19 (from b141b85c254afff3ce2221d899787fab3dc295bd)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Wed Jun 13 15:28:15 2007 +0930

    Split up memory for devices configured in the config file.
    
    If we're using a continuous block here, we segfault when a device removal
    triggers an xfree call.

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 8e58bef..5ccc451 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -442,7 +442,7 @@ xf86InputDriverlistFromConfig()
 {
     int count = 0;
     char **modulearray;
-    IDevPtr idp;
+    IDevPtr* idp;
     
     /*
      * make sure the config file has been parsed and that we have a
@@ -460,7 +460,7 @@ xf86InputDriverlistFromConfig()
      */
     if (xf86ConfigLayout.inputs) {
         idp = xf86ConfigLayout.inputs;
-        while (idp->identifier) {
+        while (*idp) {
 	    count++;
 	    idp++;
         }
@@ -475,8 +475,8 @@ xf86InputDriverlistFromConfig()
     modulearray = xnfalloc((count + 1) * sizeof(char*));
     count = 0;
     idp = xf86ConfigLayout.inputs;
-    while (idp->identifier) {
-        modulearray[count] = idp->driver;
+    while (idp && *idp) {
+        modulearray[count] = (*idp)->driver;
 	count++;
 	idp++;
     }
@@ -1185,7 +1185,8 @@ checkCoreInputDevices(serverLayoutPtr se
     IDevPtr corePointer = NULL, coreKeyboard = NULL;
     Bool foundPointer = FALSE, foundKeyboard = FALSE;
     const char *pointerMsg = NULL, *keyboardMsg = NULL;
-    IDevPtr indp, i;
+    IDevPtr *devs, /* iterator */
+            indp;
     IDevRec Pointer, Keyboard;
     XF86ConfInputPtr confInput;
     XF86ConfInputRec defPtr, defKbd;
@@ -1198,7 +1199,8 @@ checkCoreInputDevices(serverLayoutPtr se
      * in the active ServerLayout.  If more than one is specified for either,
      * remove the core attribute from the later ones.
      */
-    for (indp = servlayoutp->inputs; indp->identifier; indp++) {
+    for (devs = servlayoutp->inputs; devs && *devs; devs++) {
+        indp = *devs;
 	pointer opt1 = NULL, opt2 = NULL;
 	if (indp->commonOptions &&
 	    xf86CheckBoolOption(indp->commonOptions, "CorePointer", FALSE)) {
@@ -1263,11 +1265,15 @@ checkCoreInputDevices(serverLayoutPtr se
 	 * removed.
 	 */
 	if (corePointer) {
-	    for (indp = servlayoutp->inputs; indp->identifier; indp++)
-		if (indp == corePointer)
+	    for (devs = servlayoutp->inputs; devs && *devs; devs++)
+		if (*devs == corePointer)
+                {
+                    xfree(*devs);
+                    *devs = (IDevPtr)0x1; /* ensure we dont skip next loop*/
 		    break;
-	    for (; indp->identifier; indp++)
-		indp[0] = indp[1];
+                }
+	    for (; devs && *devs; devs++)
+		devs[0] = devs[1];
 	    count--;
 	}
 	corePointer = NULL;
@@ -1327,13 +1333,14 @@ checkCoreInputDevices(serverLayoutPtr se
 	foundPointer = configInput(&Pointer, confInput, from);
         if (foundPointer) {
 	    count++;
-	    indp = xnfrealloc(servlayoutp->inputs,
-			      (count + 1) * sizeof(IDevRec));
-	    indp[count - 1] = Pointer;
-	    indp[count - 1].extraOptions =
+	    devs = xnfrealloc(servlayoutp->inputs,
+			      (count + 1) * sizeof(IDevPtr));
+            devs[count - 1] = xnfalloc(sizeof(IDevRec));
+	    *devs[count - 1] = Pointer;
+	    devs[count - 1]->extraOptions =
 				xf86addNewOption(NULL, xnfstrdup("CorePointer"), NULL);
-	    indp[count].identifier = NULL;
-	    servlayoutp->inputs = indp;
+	    devs[count]->identifier = NULL;
+	    servlayoutp->inputs = devs;
 	}
     }
 
@@ -1351,9 +1358,9 @@ checkCoreInputDevices(serverLayoutPtr se
      * If you're using an evdev keyboard and expect a default mouse
      * section ... deal.
      */
-    for (i = servlayoutp->inputs; i->identifier && i->driver; i++) {
-	if (!strcmp(i->driver, "void") || !strcmp(i->driver, "mouse") ||
-            !strcmp(i->driver, "vmmouse") || !strcmp(i->driver, "evdev")) {
+    for (devs = servlayoutp->inputs; devs && *devs; devs++) {
+	if (!strcmp((*devs)->driver, "void") || !strcmp((*devs)->driver, "mouse") ||
+            !strcmp((*devs)->driver, "vmmouse") || !strcmp((*devs)->driver, "evdev")) {
 	    found = 1; break;
 	}
     }
@@ -1366,13 +1373,14 @@ checkCoreInputDevices(serverLayoutPtr se
 	foundPointer = configInput(&Pointer, confInput, from);
         if (foundPointer) {
 	    count++;
-	    indp = xnfrealloc(servlayoutp->inputs,
-			      (count + 1) * sizeof(IDevRec));
-	    indp[count - 1] = Pointer;
-	    indp[count - 1].extraOptions =
+	    devs = xnfrealloc(servlayoutp->inputs,
+			      (count + 1) * sizeof(IDevPtr));
+            devs[count - 1] = xnfalloc(sizeof(IDevRec));
+	    *devs[count - 1] = Pointer;
+	    devs[count - 1]->extraOptions =
 				xf86addNewOption(NULL, xnfstrdup("AlwaysCore"), NULL);
-	    indp[count].identifier = NULL;
-	    servlayoutp->inputs = indp;
+	    devs[count]->identifier = NULL;
+	    servlayoutp->inputs = devs;
 	}
     }
 
@@ -1393,11 +1401,15 @@ checkCoreInputDevices(serverLayoutPtr se
 	 * removed.
 	 */
 	if (coreKeyboard) {
-	    for (indp = servlayoutp->inputs; indp->identifier; indp++)
-		if (indp == coreKeyboard)
+	    for (devs = servlayoutp->inputs; devs && *devs; devs++)
+		if (*devs == coreKeyboard)
+                {
+                    xfree(*devs);
+                    *devs = (IDevPtr)0x1; /* ensure we dont skip next loop */
 		    break;
-	    for (; indp->identifier; indp++)
-		indp[0] = indp[1];
+                }
+	    for (; devs && *devs; devs++)
+		devs[0] = devs[1];
 	    count--;
 	}
 	coreKeyboard = NULL;
@@ -1457,13 +1469,14 @@ checkCoreInputDevices(serverLayoutPtr se
 	foundKeyboard = configInput(&Keyboard, confInput, from);
         if (foundKeyboard) {
 	    count++;
-	    indp = xnfrealloc(servlayoutp->inputs,
-			      (count + 1) * sizeof(IDevRec));
-	    indp[count - 1] = Keyboard;
-	    indp[count - 1].extraOptions =
+	    devs = xnfrealloc(servlayoutp->inputs,
+			      (count + 1) * sizeof(IDevPtr));
+            devs[count - 1] = xnfalloc(sizeof(IDevRec));
+	    *devs[count - 1] = Keyboard;
+	    devs[count - 1]->extraOptions =
 				xf86addNewOption(NULL, xnfstrdup("CoreKeyboard"), NULL);
-	    indp[count].identifier = NULL;
-	    servlayoutp->inputs = indp;
+	    devs[count]->identifier = NULL;
+	    servlayoutp->inputs = devs;
 	}
     }
 
@@ -1519,7 +1532,7 @@ configLayout(serverLayoutPtr servlayoutp
     MessageType from;
     screenLayoutPtr slp;
     GDevPtr gdp;
-    IDevPtr indp;
+    IDevPtr* indp;
     int i = 0, j;
 
     if (!servlayoutp)
@@ -1731,16 +1744,19 @@ configLayout(serverLayoutPtr servlayoutp
     ErrorF("Found %d input devices in the layout section %s",
            count, conf_layout->lay_identifier);
 #endif
-    indp = xnfalloc((count + 1) * sizeof(IDevRec));
-    indp[count].identifier = NULL;
+    indp = xnfcalloc((count + 1), sizeof(IDevPtr));
+    indp[count] = NULL;
     irp = conf_layout->lay_input_lst;
     count = 0;
     while (irp) {
-	if (!configInput(&indp[count], irp->iref_inputdev, X_CONFIG)) {
-	    xfree(indp);
-	    return FALSE;
+        indp[count] = xnfalloc(sizeof(IDevRec));
+	if (!configInput(indp[count], irp->iref_inputdev, X_CONFIG)) {
+            while(count--) 
+                xfree(indp[count]);
+            xfree(indp);
+            return FALSE;
 	}
-	indp[count].extraOptions = irp->iref_option_lst;
+	indp[count]->extraOptions = irp->iref_option_lst;
         count++;
         irp = (XF86ConfInputrefPtr)irp->list.next;
     }
@@ -1764,7 +1780,7 @@ configImpliedLayout(serverLayoutPtr serv
     MessageType from;
     XF86ConfScreenPtr s;
     screenLayoutPtr slp;
-    IDevPtr indp;
+    IDevPtr *indp;
 
     if (!servlayoutp)
 	return FALSE;
@@ -1806,8 +1822,8 @@ configImpliedLayout(serverLayoutPtr serv
     servlayoutp->inactives = xnfcalloc(1, sizeof(GDevRec));
     servlayoutp->options = NULL;
     /* Set up an empty input device list, then look for some core devices. */
-    indp = xnfalloc(sizeof(IDevRec));
-    indp->identifier = NULL;
+    indp = xnfalloc(sizeof(IDevPtr));
+    *indp = NULL;
     servlayoutp->inputs = indp;
     if (!xf86Info.allowEmptyInput && !checkCoreInputDevices(servlayoutp, TRUE))
 	return FALSE;
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 16162b7..f3670c4 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -981,7 +981,7 @@ InitInput(argc, argv)
      int     	  argc;
      char    	  **argv;
 {
-    IDevPtr pDev;
+    IDevPtr* pDev;
     InputDriverPtr pDrv;
     InputInfoPtr pInfo;
 
@@ -990,9 +990,9 @@ InitInput(argc, argv)
 
     if (serverGeneration == 1) {
 	/* Call the PreInit function for each input device instance. */
-	for (pDev = xf86ConfigLayout.inputs; pDev && pDev->identifier; pDev++) {
-	    if ((pDrv = xf86LookupInputDriver(pDev->driver)) == NULL) {
-		xf86Msg(X_ERROR, "No Input driver matching `%s'\n", pDev->driver);
+	for (pDev = xf86ConfigLayout.inputs; pDev && *pDev; pDev++) {
+	    if ((pDrv = xf86LookupInputDriver((*pDev)->driver)) == NULL) {
+		xf86Msg(X_ERROR, "No Input driver matching `%s'\n", (*pDev)->driver);
 		/* XXX For now, just continue. */
 		continue;
 	    }
@@ -1002,14 +1002,14 @@ InitInput(argc, argv)
 		    pDrv->driverName);
 		continue;
 	    }
-	    pInfo = pDrv->PreInit(pDrv, pDev, 0);
+	    pInfo = pDrv->PreInit(pDrv, *pDev, 0);
 	    if (!pInfo) {
 		xf86Msg(X_ERROR, "PreInit returned NULL for \"%s\"\n",
-			pDev->identifier);
+			(*pDev)->identifier);
 		continue;
 	    } else if (!(pInfo->flags & XI86_CONFIGURED)) {
 		xf86Msg(X_ERROR, "PreInit failed for input device \"%s\"\n",
-			pDev->identifier);
+			(*pDev)->identifier);
 		xf86DeleteInput(pInfo, 0);
 		continue;
 	    }
diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
index 6e62e52..086d2bf 100644
--- a/hw/xfree86/common/xf86str.h
+++ b/hw/xfree86/common/xf86str.h
@@ -526,7 +526,7 @@ typedef struct _serverlayoutrec {
     char *		id;
     screenLayoutPtr	screens;
     GDevPtr		inactives;
-    IDevPtr		inputs;
+    IDevPtr*            inputs; /* NULL terminated */
     pointer		options;
 } serverLayoutRec, *serverLayoutPtr;
 
diff-tree b141b85c254afff3ce2221d899787fab3dc295bd (from 19cde59c41cf167cc609debfee75bfc015beac12)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Wed Jun 13 15:26:03 2007 +0930

    Check for identical grabs when adding a new passive grab. If an identical grab
    
    exists, remove the old one and prepend the new one.
    
    X.org Bug 2738 <https://bugs.freedesktop.org/show_bug.cgi?id=2738>

diff --git a/dix/grabs.c b/dix/grabs.c
index 714fea3..cecd7ec 100644
--- a/dix/grabs.c
+++ b/dix/grabs.c
@@ -269,6 +269,42 @@ GrabMatchesSecond(GrabPtr pFirstGrab, Gr
     return FALSE;
 }
 
+static Bool
+GrabsAreIdentical(GrabPtr pFirstGrab, GrabPtr pSecondGrab)
+{
+    if (pFirstGrab->device != pSecondGrab->device || 
+	(pFirstGrab->modifierDevice != pSecondGrab->modifierDevice) ||
+	(pFirstGrab->type != pSecondGrab->type))
+	return FALSE;
+
+    if (!(DetailSupersedesSecond(pFirstGrab->detail, 
+                               pSecondGrab->detail, 
+                               (unsigned short)AnyKey) && 
+        DetailSupersedesSecond(pSecondGrab->detail,
+                               pFirstGrab->detail,
+                               (unsigned short)AnyKey)))
+        return FALSE;
+
+    if (!(DetailSupersedesSecond(pFirstGrab->modifiersDetail, 
+                               pSecondGrab->modifiersDetail, 
+                               (unsigned short)AnyModifier) && 
+        DetailSupersedesSecond(pSecondGrab->modifiersDetail,
+                               pFirstGrab->modifiersDetail,
+                               (unsigned short)AnyModifier)))
+        return FALSE;
+
+    return TRUE;
+}
+
+
+/**
+ * Prepend the new grab to the list of passive grabs on the window.
+ * Any previously existing grab that matches the new grab will be removed.
+ * Adding a new grab that would override another client's grab will result in
+ * a BadAccess.
+ * 
+ * @return Success or X error code on failure.
+ */
 int
 AddPassiveGrabToList(GrabPtr pGrab)
 {
@@ -291,6 +327,17 @@ AddPassiveGrabToList(GrabPtr pGrab)
 	FreeGrab(pGrab);
 	return BadAlloc;
     }
+
+    /* Remove all grabs that match the new one exactly */
+    for (grab = wPassiveGrabs(pGrab->window); grab; grab = grab->next)
+    {
+	if (GrabsAreIdentical(pGrab, grab))
+	{
+            DeletePassiveGrabFromList(grab);
+            break;
+	} 
+    }
+
     pGrab->next = pGrab->window->optional->passiveGrabs;
     pGrab->window->optional->passiveGrabs = pGrab;
     if (AddResource(pGrab->resource, RT_PASSIVEGRAB, (pointer)pGrab))
diff-tree 19cde59c41cf167cc609debfee75bfc015beac12 (from d2177c80915f2fe2e8a5c948d4ba2fa51dbfbea2)
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Fri Jun 22 00:38:50 2007 -0400

    In fbFill() make sure the drawable is validated when pixman_fill() succeeds.
    
    In fbSolidBoxClipped() don't return when pixman_fill() succeeds.

diff --git a/fb/fbfill.c b/fb/fbfill.c
index a3147ec..4957bed 100644
--- a/fb/fbfill.c
+++ b/fb/fbfill.c
@@ -47,21 +47,17 @@ fbFill (DrawablePtr pDrawable,
     switch (pGC->fillStyle) {
     case FillSolid:
 #ifndef FB_ACCESS_WRAPPER
-	if (!pPriv->and)
-	{
-	    if (pixman_fill (dst, dstStride, dstBpp, x + dstXoff, y + dstYoff, width, height, pPriv->xor))
-	    {
-		fbFinishAccess (pDrawable);
-		return;
-	    }
-	}
+	if (pPriv->and || !pixman_fill ((uint32_t *)dst, dstStride, dstBpp,
+					x + dstXoff, y + dstYoff,
+					width, height,
+					pPriv->xor))
 #endif	    
-	fbSolid (dst + (y + dstYoff) * dstStride, 
-		 dstStride, 
-		 (x + dstXoff) * dstBpp,
-		 dstBpp,
-		 width * dstBpp, height,
-		 pPriv->and, pPriv->xor);
+	    fbSolid (dst + (y + dstYoff) * dstStride, 
+		     dstStride, 
+		     (x + dstXoff) * dstBpp,
+		     dstBpp,
+		     width * dstBpp, height,
+		     pPriv->and, pPriv->xor);
 	break;
     case FillStippled:
     case FillOpaqueStippled: {
@@ -218,25 +214,19 @@ fbSolidBoxClipped (DrawablePtr	pDrawable
 	    continue;
 
 #ifndef FB_ACCESS_WRAPPER
-	if (!and)
-	{
-	    if (pixman_fill (dst, dstStride, dstBpp,
-			     partX1 + dstXoff, partY1 + dstYoff, (partX2 - partX1), (partY2 - partY1),
-			     xor))
-	    {
-		fbFinishAccess (pDrawable);
-		return;
-	    }
-	}
+	if (and || !pixman_fill ((uint32_t *)dst, dstStride, dstBpp,
+				 partX1 + dstXoff, partY1 + dstYoff,
+				 (partX2 - partX1), (partY2 - partY1),
+				 xor))
 #endif
-	fbSolid (dst + (partY1 + dstYoff) * dstStride,
-		 dstStride,
-		 (partX1 + dstXoff) * dstBpp,
-		 dstBpp,
-
-		 (partX2 - partX1) * dstBpp,
-		 (partY2 - partY1),
-		 and, xor);
+	    fbSolid (dst + (partY1 + dstYoff) * dstStride,
+		     dstStride,
+		     (partX1 + dstXoff) * dstBpp,
+		     dstBpp,
+		     
+		     (partX2 - partX1) * dstBpp,
+		     (partY2 - partY1),
+		     and, xor);
     }
     fbFinishAccess (pDrawable);
 }
diff-tree d2177c80915f2fe2e8a5c948d4ba2fa51dbfbea2 (from e523859a952d49b20f3d10152cc0ef695d2c12a1)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Fri Jun 22 02:08:21 2007 +0100

    Skip driver mode detection/configuration when !vtSema.
    
    When the server is not active, make sure the driver functions related to
    mode setting are not called.

diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index db91274..9fa0f36 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -96,9 +96,12 @@ xf86RandR12GetInfo (ScreenPtr pScreen, R
     }
 
     /* Re-probe the outputs for new monitors or modes */
-    xf86ProbeOutputModes (scrp, 0, 0);
-    xf86SetScrnInfoModes (scrp);
-    xf86DiDGAReInit (pScreen);
+    if (scrp->vtSema)
+    {
+	xf86ProbeOutputModes (scrp, 0, 0);
+	xf86SetScrnInfoModes (scrp);
+	xf86DiDGAReInit (pScreen);
+    }
 
     for (mode = scrp->modes; ; mode = mode->next)
     {
@@ -794,6 +797,9 @@ xf86RandR12CrtcSetGamma (ScreenPtr    pS
     if (crtc->funcs->gamma_set == NULL)
 	return FALSE;
 
+    if (!crtc->scrn->vtSema)
+	return TRUE;
+
     crtc->funcs->gamma_set(crtc, randr_crtc->gammaRed, randr_crtc->gammaGreen,
 			   randr_crtc->gammaBlue, randr_crtc->gammaSize);
 
@@ -814,6 +820,11 @@ xf86RandR12OutputSetProperty (ScreenPtr 
     if (output->funcs->set_property == NULL)
 	return TRUE;
 
+    /*
+     * This function gets called even when vtSema is FALSE, as
+     * drivers will need to remember the correct value to apply
+     * when the VT switch occurs
+     */
     return output->funcs->set_property(output, property, value);
 }
 
@@ -827,6 +838,11 @@ xf86RandR12OutputValidateMode (ScreenPtr
     DisplayModeRec  mode;
 
     xf86RandRModeConvert (pScrn, randr_mode, &mode);
+    /*
+     * This function may be called when vtSema is FALSE, so
+     * the underlying function must either avoid touching the hardware
+     * or return FALSE when vtSema is FALSE
+     */
     if (output->funcs->mode_valid (output, &mode) != MODE_OK)
 	return FALSE;
     return TRUE;
@@ -988,6 +1004,8 @@ xf86RandR12GetInfo12 (ScreenPtr pScreen,
 {
     ScrnInfoPtr		pScrn = xf86Screens[pScreen->myNum];
 
+    if (!pScrn->vtSema)
+	return TRUE;
     xf86ProbeOutputModes (pScrn, 0, 0);
     xf86SetScrnInfoModes (pScrn);
     xf86DiDGAReInit (pScreen);
diff-tree e523859a952d49b20f3d10152cc0ef695d2c12a1 (from 5138f710a1574fef6f553f3fe2fccac0620d2584)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Jun 20 17:54:38 2007 -0700

    Include module name in "already built-in" message

diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index 6a1c65e..ea559aa 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -869,7 +869,7 @@ doLoadModule(const char *module, const c
     for (cim = compiled_in_modules; *cim; cim++)
 	if (!strcmp (module, *cim))
 	{
-	    xf86MsgVerb(X_INFO, 0, "Module already built-in\n");
+	    xf86MsgVerb(X_INFO, 0, "Module \"%s\" already built-in\n", module);
 	    return (ModuleDescPtr) 1;
 	}
 
diff-tree 5138f710a1574fef6f553f3fe2fccac0620d2584 (from c9b79a355845c895aca8303a39798264d80b6212)
Author: Arcady Goldmints-Orlov <arcadyg at nvidia.com>
Date:   Wed Jun 20 16:31:55 2007 -0700

    Fixed fbSolidBoxClipped() to fill the right place.
    
    Changed an X2 to a Y1.
    
    Signed-off-by: Aaron Plattner <aplattner at nvidia.com>

diff --git a/fb/fbfill.c b/fb/fbfill.c
index 0d624fd..a3147ec 100644
--- a/fb/fbfill.c
+++ b/fb/fbfill.c
@@ -221,7 +221,7 @@ fbSolidBoxClipped (DrawablePtr	pDrawable
 	if (!and)
 	{
 	    if (pixman_fill (dst, dstStride, dstBpp,
-			     partX1 + dstXoff, partX2 + dstYoff, (partX2 - partX1), (partY2 - partY1),
+			     partX1 + dstXoff, partY1 + dstYoff, (partX2 - partX1), (partY2 - partY1),
 			     xor))
 	    {
 		fbFinishAccess (pDrawable);
diff-tree c9b79a355845c895aca8303a39798264d80b6212 (from 87966c5d2889873cea6cbc16b7e4399490dfaec1)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Wed Jun 20 18:56:06 2007 +0200

    exaPolyFillRect: Don't track damage explicitly.
    
    All callers should already do it.
    
    Also don't leak pReg.

diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index 8d03dd5..cc383cc 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -643,15 +643,13 @@ exaPolyFillRect(DrawablePtr pDrawable,
     int		    n;
     ExaMigrationRec pixmaps[2];
     RegionPtr pReg = RECTS_TO_REGION(pScreen, nrect, prect, CT_UNSORTED);
-    RegionPtr pDamageReg = DamageRegion(ExaGetPixmapPriv(pPixmap)->pDamage);
 
     /* Compute intersection of rects and clip region */
     REGION_TRANSLATE(pScreen, pReg, pDrawable->x, pDrawable->y);
     REGION_INTERSECT(pScreen, pReg, pClip, pReg);
 
     if (!REGION_NUM_RECTS(pReg)) {
-	REGION_DESTROY(pScreen, pReg);
-	return;
+	goto out;
     }
 
     pixmaps[0].as_dst = TRUE;
@@ -680,7 +678,7 @@ exaPolyFillRect(DrawablePtr pDrawable,
 	    (pGC->fillStyle == FillTiled && !pGC->tileIsPixel &&
 	     exaFillRegionTiled(pDrawable, pReg, pGC->tile.pixmap, &pGC->patOrg,
 				pGC->planemask, pGC->alu))) {
-	    goto damage;
+	    goto out;
 	}
     }
 
@@ -709,13 +707,7 @@ fallback:
 	}
 
 	ExaCheckPolyFillRect (pDrawable, pGC, nrect, prect);
-
-damage:
-	REGION_TRANSLATE(pScreen, pReg, xoff, yoff);
-	REGION_UNION(pScreen, pDamageReg, pReg, pDamageReg);
-	REGION_DESTROY(pScreen, pReg);
-
-	return;
+	goto out;
     }
 
     xorg = pDrawable->x;
@@ -754,8 +746,6 @@ damage:
 	    (*pExaScr->info->Solid) (pPixmap,
 				     fullX1 + xoff, fullY1 + yoff,
 				     fullX2 + xoff, fullY2 + yoff);
-	    exaPixmapDirty (pPixmap, fullX1 + xoff, fullY1 + yoff,
-			    fullX2 + xoff, fullY2 + yoff);
 	}
 	else
 	{
@@ -786,14 +776,15 @@ damage:
 		    (*pExaScr->info->Solid) (pPixmap,
 					     partX1 + xoff, partY1 + yoff,
 					     partX2 + xoff, partY2 + yoff);
-		    exaPixmapDirty (pPixmap, partX1 + xoff, partY1 + yoff,
-				    partX2 + xoff, partY2 + yoff);
 		}
 	    }
 	}
     }
     (*pExaScr->info->DoneSolid) (pPixmap);
     exaMarkSync(pDrawable->pScreen);
+
+out:
+    REGION_DESTROY(pScreen, pReg);
 }
 
 static void
diff-tree 87966c5d2889873cea6cbc16b7e4399490dfaec1 (from 40f27a2df4906d9ceb1c78f6163a62c497321535)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Wed Jun 20 18:42:00 2007 +0200

    exaGetImage: Don't migrate or try to accelerate for 1x1.
    
    This is mainly to avoid wasting effort for XSync(), but just reading a single
    pixel directly is probably faster than DownloadFromScreen anyway. Though in
    light of the latter, even larger thresholds might be useful.
    
    Also move the swappedOut check before the migration checks because migration
    can't actually occur when swapped out.

diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index bf63f2c..8d03dd5 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -1329,6 +1329,9 @@ exaGetImage (DrawablePtr pDrawable, int 
     int xoff, yoff;
     Bool ok;
 
+    if (pExaScr->swappedOut || (w == 1 && h == 1))
+	goto fallback;
+
     if (pExaScr->info->DownloadFromScreen == NULL)
 	goto migrate_and_fallback;
 
@@ -1342,9 +1345,6 @@ exaGetImage (DrawablePtr pDrawable, int 
     if (pDrawable->bitsPerPixel < 8)
 	goto migrate_and_fallback;
 
-    if (pExaScr->swappedOut)
-	goto fallback;
-
     pPix = exaGetOffscreenPixmap (pDrawable, &xoff, &yoff);
     if (pPix == NULL)
 	goto fallback;
diff-tree 40f27a2df4906d9ceb1c78f6163a62c497321535 (from 2e7fef7d0837939e822c40b6ac77e7f0e66d57bd)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Tue Jun 19 09:11:16 2007 +0200

    mieqEnqueue: Make local queue tail variables unsigned.
    
    So the modulo arithmetic actually works as intended... thanks to Peter Hutterer
    for pointing out the problem.

diff --git a/mi/mieq.c b/mi/mieq.c
index f64e540..20c4b62 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -105,7 +105,7 @@ mieqInit(void)
 void
 mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
 {
-    HWEventQueueType       oldtail = miEventQueue.tail, newtail;
+    unsigned int           oldtail = miEventQueue.tail, newtail;
     int                    isMotion = 0;
     deviceValuator         *v = (deviceValuator *) e;
     EventPtr               laste = &miEventQueue.events[(oldtail - 1) %


More information about the xorg-commit mailing list