diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2015-03-23 09:29:19 -0700 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2015-03-23 09:29:19 -0700 |
commit | 2e99868608bb2a448319f03ee1005ffa6f0d413d (patch) | |
tree | d0721d0182229468d9f6dd8266ee00594e779511 | |
parent | 20cad31521e4c281e60fae57304f7a952db2cb39 (diff) |
349.12349.12
-rw-r--r-- | Makefile | 12 | ||||
-rw-r--r-- | common-utils/common-utils.c | 77 | ||||
-rw-r--r-- | common-utils/common-utils.h | 24 | ||||
-rw-r--r-- | common-utils/gen-manpage-opts-helper.c | 24 | ||||
-rw-r--r-- | common-utils/gen-manpage-opts-helper.h | 24 | ||||
-rw-r--r-- | common-utils/msg.c | 24 | ||||
-rw-r--r-- | common-utils/msg.h | 24 | ||||
-rw-r--r-- | common-utils/nvgetopt.c | 24 | ||||
-rw-r--r-- | common-utils/nvgetopt.h | 31 | ||||
-rw-r--r-- | misc.c | 129 | ||||
-rw-r--r-- | nvLegacy.h | 997 | ||||
-rw-r--r-- | utils.mk | 24 | ||||
-rw-r--r-- | version.mk | 2 |
13 files changed, 770 insertions, 646 deletions
@@ -36,8 +36,8 @@ include utils.mk NCURSES_CFLAGS ?= NCURSES_LDFLAGS ?= -PCI_CFLAGS ?= -PCI_LDFLAGS ?= +PCIACCESS_CFLAGS ?= +PCIACCESS_LDFLAGS ?= ############################################################################## @@ -210,9 +210,9 @@ $(MAKESELF_HELP_SCRIPT): $(MAKESELF_HELP_SCRIPT_OBJS) $(HOST_BIN_LDFLAGS) $(MAKESELF_HELP_SCRIPT_OBJS) -o $@ $(NVIDIA_INSTALLER): $(INSTALLER_OBJS) - $(call quiet_cmd,LINK) $(CFLAGS) $(LDFLAGS) $(PCI_LDFLAGS) \ + $(call quiet_cmd,LINK) $(CFLAGS) $(LDFLAGS) $(PCIACCESS_LDFLAGS) \ $(BIN_LDFLAGS) $(INSTALLER_OBJS) -o $@ \ - $(LIBS) -Bstatic -lpci -Bdynamic + $(LIBS) -Bstatic -lpciaccess -Bdynamic $(call quiet_cmd,STRIP_CMD) $@ $(GEN_UI_ARRAY): gen-ui-array.c $(CONFIG_H) @@ -248,8 +248,8 @@ $(RTLD_TEST_C): $(GEN_UI_ARRAY) $(RTLD_TEST) $(RTLD_TEST_32_C): $(GEN_UI_ARRAY) $(RTLD_TEST_32) $(call quiet_cmd,GEN_UI_ARRAY) $(RTLD_TEST_32) rtld_test_array_32 > $@ -# misc.c includes pci.h -$(call BUILD_OBJECT_LIST,misc.c): CFLAGS += $(PCI_CFLAGS) +# misc.c includes pciaccess.h +$(call BUILD_OBJECT_LIST,misc.c): CFLAGS += $(PCIACCESS_CFLAGS) # ncurses-ui.c includes ncurses.h $(call BUILD_OBJECT_LIST,ncurses-ui.c): CFLAGS += $(NCURSES_CFLAGS) -fPIC diff --git a/common-utils/common-utils.c b/common-utils/common-utils.c index 81fd7ed..fe7889e 100644 --- a/common-utils/common-utils.c +++ b/common-utils/common-utils.c @@ -1,17 +1,23 @@ /* * Copyright (C) 2010-2012 NVIDIA Corporation * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software 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: * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. + * 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. */ @@ -60,40 +66,45 @@ void *nvalloc(size_t size) /* * nvstrcat() - allocate a new string, copying all given strings - * into it. taken from glib + * into it. */ char *nvstrcat(const char *str, ...) { - unsigned int l; - va_list args; - char *s; - char *concat; - - l = 1 + strlen(str); - va_start(args, str); - s = va_arg(args, char *); - - while (s) { - l += strlen(s); - s = va_arg(args, char *); + const char *s; + char *result; + size_t len; + va_list ap; + + /* walk the varargs to compute the length of the result string */ + + va_start(ap, str); + + for (s = str, len = 1; s; s = va_arg(ap, char *)) { + len += strlen(s); + } + + va_end(ap); + + /* allocate the result string */ + + result = nvalloc(len); + if (!result) { + return result; } - va_end(args); + result[0] = '\0'; - concat = nvalloc(l); - concat[0] = 0; + /* concatenate the input strings, writing into the result string */ - strcat(concat, str); - va_start(args, str); - s = va_arg(args, char *); - while (s) { - strcat(concat, s); - s = va_arg(args, char *); + va_start(ap, str); + + for (s = str; s; s = va_arg(ap, char *)) { + strcat(result, s); } - va_end(args); - return concat; + va_end(ap); + return result; } /* nvstrcat() */ diff --git a/common-utils/common-utils.h b/common-utils/common-utils.h index 709ff02..7a1f71a 100644 --- a/common-utils/common-utils.h +++ b/common-utils/common-utils.h @@ -1,17 +1,23 @@ /* * Copyright (C) 2010-2012 NVIDIA Corporation * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software 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: * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. + * 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. */ #ifndef __COMMON_UTILS_H__ diff --git a/common-utils/gen-manpage-opts-helper.c b/common-utils/gen-manpage-opts-helper.c index 84bac62..b41e2aa 100644 --- a/common-utils/gen-manpage-opts-helper.c +++ b/common-utils/gen-manpage-opts-helper.c @@ -1,17 +1,23 @@ /* * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software 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: * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * 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. */ #include <stdio.h> diff --git a/common-utils/gen-manpage-opts-helper.h b/common-utils/gen-manpage-opts-helper.h index b09852e..97a2908 100644 --- a/common-utils/gen-manpage-opts-helper.h +++ b/common-utils/gen-manpage-opts-helper.h @@ -1,17 +1,23 @@ /* * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software 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: * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * 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. */ #if !defined(__GEN_MANPAGE_OPTS_HELPER_H__) diff --git a/common-utils/msg.c b/common-utils/msg.c index cdd3c4f..349c640 100644 --- a/common-utils/msg.c +++ b/common-utils/msg.c @@ -1,17 +1,23 @@ /* * Copyright (C) 2004 NVIDIA Corporation. * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software 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: * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses>. + * 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. */ #include <stdio.h> diff --git a/common-utils/msg.h b/common-utils/msg.h index 5e32c19..3eae767 100644 --- a/common-utils/msg.h +++ b/common-utils/msg.h @@ -1,17 +1,23 @@ /* * Copyright (C) 2004 NVIDIA Corporation. * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software 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: * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses>. + * 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. */ #ifndef __MSG_H__ diff --git a/common-utils/nvgetopt.c b/common-utils/nvgetopt.c index aaebd78..1716495 100644 --- a/common-utils/nvgetopt.c +++ b/common-utils/nvgetopt.c @@ -1,17 +1,23 @@ /* * Copyright (C) 2004-2010 NVIDIA Corporation * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software 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: * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. + * 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. * * * nvgetopt.c - portable getopt_long() replacement; removes the need diff --git a/common-utils/nvgetopt.h b/common-utils/nvgetopt.h index fc735ee..0fec64d 100644 --- a/common-utils/nvgetopt.h +++ b/common-utils/nvgetopt.h @@ -1,20 +1,23 @@ /* * Copyright (C) 2004-2010 NVIDIA Corporation * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - * - * - * nvgetopt.h + * 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. */ #ifndef __NVGETOPT_H__ @@ -35,15 +35,11 @@ #include <sys/mman.h> #include <dirent.h> #include <libgen.h> -#include <pci/pci.h> +#include <pciaccess.h> #include <dlfcn.h> #include <elf.h> #include <link.h> -#ifndef PCI_CLASS_DISPLAY_3D -#define PCI_CLASS_DISPLAY_3D 0x302 -#endif - #include "nvidia-installer.h" #include "user-interface.h" #include "kernel.h" @@ -2203,79 +2199,112 @@ int check_for_running_x(Options *op) * in the system, a warning message is printed for each one. */ -static void ignore_libpci_output(char *fmt, ...) -{ -} - int check_for_nvidia_graphics_devices(Options *op, Package *p) { - struct pci_access *pacc; - struct pci_dev *dev; + struct pci_device_iterator *iter; + struct pci_device *dev; int i, found_supported_device = FALSE; int found_vga_device = FALSE; - uint16 class; - pacc = pci_alloc(); - if (!pacc) return TRUE; - - pacc->error = ignore_libpci_output; - pacc->warning = ignore_libpci_output; - pci_init(pacc); - if (!pacc->methods) return TRUE; - - pci_scan_bus(pacc); + /* + * libpciaccess stores the device class in bits 16-23, subclass in 8-15, and + * interface in bits 0-7 of dev->device_class. We care only about the class + * and subclass. + */ + const uint32_t PCI_CLASS_DISPLAY_VGA = 0x30000; + const uint32_t PCI_CLASS_SUBCLASS_MASK = 0xffff00; + const struct pci_id_match match = { + .vendor_id = 0x10de, + .device_id = PCI_MATCH_ANY, + .subvendor_id = PCI_MATCH_ANY, + .subdevice_id = PCI_MATCH_ANY, + .device_class = PCI_CLASS_DISPLAY_VGA, + /* + * Ignore bit 1 of the subclass, to allow both 0x30000 (VGA controller) + * and 0x30200 (3D controller). + */ + .device_class_mask = PCI_CLASS_SUBCLASS_MASK & ~0x200, + }; - for (dev = pacc->devices; dev != NULL; dev = dev->next) { - if ((pci_fill_info(dev, PCI_FILL_IDENT) & PCI_FILL_IDENT) == 0) - continue; + if (pci_system_init()) { + return TRUE; + } - class = pci_read_word(dev, PCI_CLASS_DEVICE); + iter = pci_id_match_iterator_create(&match); - if ((class == PCI_CLASS_DISPLAY_VGA || class == PCI_CLASS_DISPLAY_3D) && - (dev->vendor_id == 0x10de) /* NVIDIA */ && - (dev->device_id >= 0x0020) /* TNT or later */) { + for (dev = pci_device_next(iter); dev; dev = pci_device_next(iter)) { + if (dev->device_id >= 0x0020 /* TNT or later */) { /* * First check if this GPU is a "legacy" GPU; if it is, print a * warning message and point the user to the NVIDIA Linux * driver download page for. + * + * LegacyList only contains a row with a full 4-part ID (including + * subdevice and subvendor IDs) if its name differs from other + * devices with the same devid. For all other devices with the same + * devid and name, there is only one row, with subdevice and + * subvendor IDs set to 0. + * + * This loop finds the name for the matching devid, but continues + * searching for a matching 4-part ID with a different name, and + * breaks if it finds one. */ int found_legacy_device = FALSE; + unsigned int branch = 0; + const char *dev_name = NULL; + for (i = 0; i < sizeof(LegacyList) / sizeof(LEGACY_INFO); i++) { if (dev->device_id == LegacyList[i].uiDevId) { - int j, nstrings; - const char *branch_string = ""; - nstrings = sizeof(LegacyStrings) / sizeof(LEGACY_STRINGS); - for (j = 0; j < nstrings; j++) { - if (LegacyStrings[j].branch == LegacyList[i].branch) { - branch_string = LegacyStrings[j].description; - break; - } + int found_specific = + (dev->subvendor_id == LegacyList[i].uiSubVendorId && + dev->subdevice_id == LegacyList[i].uiSubDevId); + + if (found_specific || LegacyList[i].uiSubDevId == 0) { + branch = LegacyList[i].branch; + dev_name = LegacyList[i].AdapterString; + found_legacy_device = TRUE; } - ui_warn(op, "The NVIDIA %s GPU installed in this system is supported " - "through the NVIDIA %s legacy Linux graphics drivers. Please " - "visit http://www.nvidia.com/object/unix.html for more " - "information. The %s NVIDIA Linux graphics driver will " - "ignore this GPU.", - LegacyList[i].AdapterString, - branch_string, - p->version); - found_legacy_device = TRUE; + if (found_specific) { + break; + } } } - if (!found_legacy_device) { + if (found_legacy_device) { + int j, nstrings; + const char *branch_string = ""; + nstrings = sizeof(LegacyStrings) / sizeof(LEGACY_STRINGS); + for (j = 0; j < nstrings; j++) { + if (LegacyStrings[j].branch == branch) { + branch_string = LegacyStrings[j].description; + break; + } + } + + ui_warn(op, "The NVIDIA %s GPU installed in this system is supported " + "through the NVIDIA %s legacy Linux graphics drivers. Please " + "visit http://www.nvidia.com/object/unix.html for more " + "information. The %s NVIDIA Linux graphics driver will " + "ignore this GPU.", + dev_name, + branch_string, + p->version); + } else { found_supported_device = TRUE; - if (class == PCI_CLASS_DISPLAY_VGA) + /* + * libpciaccess packs the device class into bits 16 through 23 + * and the subclass into bits 8 through 15 of dev->device_class. + */ + if ((dev->device_class & PCI_CLASS_SUBCLASS_MASK) == + PCI_CLASS_DISPLAY_VGA) found_vga_device = TRUE; } } } - dev = pacc->devices; - pci_cleanup(pacc); - if (!dev) return TRUE; + pci_system_cleanup(); if (!found_supported_device) { ui_warn(op, "You do not appear to have an NVIDIA GPU supported by the " @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, 2012 NVIDIA Corporation + * Copyright (c) 2005, 2006, 2012, 2014 NVIDIA Corporation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -26,6 +26,8 @@ typedef struct _LEGACY_INFO { unsigned int uiDevId; + unsigned int uiSubVendorId; + unsigned int uiSubDevId; unsigned int branch; char* AdapterString; } LEGACY_INFO; @@ -48,484 +50,521 @@ static const LEGACY_STRINGS LegacyStrings[] = { // This is the list of the legacy GPUs static const LEGACY_INFO LegacyList[] = { -// PCI-ID Branch Marketing name - { 0x0020, 1, "RIVA TNT" }, - { 0x0028, 1, "RIVA TNT2/TNT2 Pro" }, - { 0x0029, 1, "RIVA TNT2 Ultra" }, - { 0x002C, 1, "Vanta/Vanta LT" }, - { 0x002D, 1, "RIVA TNT2 Model 64/Model 64 Pro" }, - { 0x0040, 4, "GeForce 6800 Ultra" }, - { 0x0041, 4, "GeForce 6800" }, - { 0x0042, 4, "GeForce 6800 LE" }, - { 0x0043, 4, "GeForce 6800 XE" }, - { 0x0044, 4, "GeForce 6800 XT" }, - { 0x0045, 4, "GeForce 6800 GT" }, - { 0x0046, 4, "GeForce 6800 GT" }, - { 0x0047, 4, "GeForce 6800 GS" }, - { 0x0048, 4, "GeForce 6800 XT" }, - { 0x004E, 4, "Quadro FX 4000" }, - { 0x0090, 4, "GeForce 7800 GTX" }, - { 0x0091, 4, "GeForce 7800 GTX" }, - { 0x0092, 4, "GeForce 7800 GT" }, - { 0x0093, 4, "GeForce 7800 GS" }, - { 0x0095, 4, "GeForce 7800 SLI" }, - { 0x0098, 4, "GeForce Go 7800" }, - { 0x0099, 4, "GeForce Go 7800 GTX" }, - { 0x009D, 4, "Quadro FX 4500" }, - { 0x00A0, 1, "Aladdin TNT2" }, - { 0x00C0, 4, "GeForce 6800 GS" }, - { 0x00C1, 4, "GeForce 6800" }, - { 0x00C2, 4, "GeForce 6800 LE" }, - { 0x00C3, 4, "GeForce 6800 XT" }, - { 0x00C8, 4, "GeForce Go 6800" }, - { 0x00C9, 4, "GeForce Go 6800 Ultra" }, - { 0x00CC, 4, "Quadro FX Go1400" }, - { 0x00CD, 4, "Quadro FX 3450/4000 SDI" }, - { 0x00CE, 4, "Quadro FX 1400" }, - { 0x00F1, 4, "GeForce 6600 GT" }, - { 0x00F2, 4, "GeForce 6600" }, - { 0x00F3, 4, "GeForce 6200" }, - { 0x00F4, 4, "GeForce 6600 LE" }, - { 0x00F5, 4, "GeForce 7800 GS" }, - { 0x00F6, 4, "GeForce 6800 GS" }, - { 0x00F8, 4, "Quadro FX 3400/Quadro FX 4000" }, - { 0x00F9, 4, "GeForce 6800 Ultra" }, - { 0x00FA, 3, "GeForce PCX 5750" }, - { 0x00FB, 3, "GeForce PCX 5900" }, - { 0x00FC, 3, "Quadro FX 330/GeForce PCX 5300" }, - { 0x00FD, 3, "Quadro FX 330/Quadro NVS 280 PCI-E" }, - { 0x00FE, 3, "Quadro FX 1300" }, - { 0x0100, 1, "GeForce 256" }, - { 0x0101, 1, "GeForce DDR" }, - { 0x0103, 1, "Quadro" }, - { 0x0110, 2, "GeForce2 MX/MX 400" }, - { 0x0111, 2, "GeForce2 MX 100/200" }, - { 0x0112, 2, "GeForce2 Go" }, - { 0x0113, 2, "Quadro2 MXR/EX/Go" }, - { 0x0140, 4, "GeForce 6600 GT" }, - { 0x0141, 4, "GeForce 6600" }, - { 0x0142, 4, "GeForce 6600 LE" }, - { 0x0143, 4, "GeForce 6600 VE" }, - { 0x0144, 4, "GeForce Go 6600" }, - { 0x0145, 4, "GeForce 6610 XL" }, - { 0x0146, 4, "GeForce Go 6600 TE/6200 TE" }, - { 0x0147, 4, "GeForce 6700 XL" }, - { 0x0148, 4, "GeForce Go 6600" }, - { 0x0149, 4, "GeForce Go 6600 GT" }, - { 0x014A, 4, "Quadro NVS 440" }, - { 0x014C, 4, "Quadro FX 540M" }, - { 0x014D, 4, "Quadro FX 550" }, - { 0x014E, 4, "Quadro FX 540" }, - { 0x014F, 4, "GeForce 6200" }, - { 0x0150, 1, "GeForce2 GTS/GeForce2 Pro" }, - { 0x0151, 1, "GeForce2 Ti" }, - { 0x0152, 1, "GeForce2 Ultra" }, - { 0x0153, 1, "Quadro2 Pro" }, - { 0x0160, 4, "GeForce 6500" }, - { 0x0161, 4, "GeForce 6200 TurboCache(TM)" }, - { 0x0162, 4, "GeForce 6200SE TurboCache(TM)" }, - { 0x0163, 4, "GeForce 6200 LE" }, - { 0x0164, 4, "GeForce Go 6200" }, - { 0x0165, 4, "Quadro NVS 285" }, - { 0x0166, 4, "GeForce Go 6400" }, - { 0x0167, 4, "GeForce Go 6200" }, - { 0x0168, 4, "GeForce Go 6400" }, - { 0x0169, 4, "GeForce 6250" }, - { 0x016A, 4, "GeForce 7100 GS" }, - { 0x0170, 2, "GeForce4 MX 460" }, - { 0x0171, 2, "GeForce4 MX 440" }, - { 0x0172, 2, "GeForce4 MX 420" }, - { 0x0173, 2, "GeForce4 MX 440-SE" }, - { 0x0174, 2, "GeForce4 440 Go" }, - { 0x0175, 2, "GeForce4 420 Go" }, - { 0x0176, 2, "GeForce4 420 Go 32M" }, - { 0x0177, 2, "GeForce4 460 Go" }, - { 0x0178, 2, "Quadro4 550 XGL" }, - { 0x0179, 2, "GeForce4 440 Go 64M" }, - { 0x017A, 2, "Quadro NVS 400" }, - { 0x017C, 2, "Quadro4 500 GoGL" }, - { 0x017D, 2, "GeForce4 410 Go 16M" }, - { 0x0181, 2, "GeForce4 MX 440 with AGP8X" }, - { 0x0182, 2, "GeForce4 MX 440SE with AGP8X" }, - { 0x0183, 2, "GeForce4 MX 420 with AGP8X" }, - { 0x0185, 2, "GeForce4 MX 4000" }, - { 0x0188, 2, "Quadro4 580 XGL" }, - { 0x018A, 2, "Quadro NVS 280 SD" }, - { 0x018B, 2, "Quadro4 380 XGL" }, - { 0x018C, 2, "Quadro NVS 50 PCI" }, - { 0x0191, 5, "GeForce 8800 GTX" }, - { 0x0193, 5, "GeForce 8800 GTS" }, - { 0x0194, 5, "GeForce 8800 Ultra" }, - { 0x0197, 5, "Tesla C870" }, - { 0x019D, 5, "Quadro FX 5600" }, - { 0x019E, 5, "Quadro FX 4600" }, - { 0x01A0, 2, "GeForce2 Integrated GPU" }, - { 0x01D0, 4, "GeForce 7350 LE" }, - { 0x01D1, 4, "GeForce 7300 LE" }, - { 0x01D2, 4, "GeForce 7550 LE" }, - { 0x01D3, 4, "GeForce 7300 SE/7200 GS" }, - { 0x01D6, 4, "GeForce Go 7200" }, - { 0x01D7, 4, "GeForce Go 7300" }, - { 0x01D8, 4, "GeForce Go 7400" }, - { 0x01DA, 4, "Quadro NVS 110M" }, - { 0x01DB, 4, "Quadro NVS 120M" }, - { 0x01DC, 4, "Quadro FX 350M" }, - { 0x01DD, 4, "GeForce 7500 LE" }, - { 0x01DE, 4, "Quadro FX 350" }, - { 0x01DF, 4, "GeForce 7300 GS" }, - { 0x01F0, 2, "GeForce4 MX Integrated GPU" }, - { 0x0200, 2, "GeForce3" }, - { 0x0201, 2, "GeForce3 Ti 200" }, - { 0x0202, 2, "GeForce3 Ti 500" }, - { 0x0203, 2, "Quadro DCC" }, - { 0x0211, 4, "GeForce 6800" }, - { 0x0212, 4, "GeForce 6800 LE" }, - { 0x0215, 4, "GeForce 6800 GT" }, - { 0x0218, 4, "GeForce 6800 XT" }, - { 0x0221, 4, "GeForce 6200" }, - { 0x0222, 4, "GeForce 6200 A-LE" }, - { 0x0240, 4, "GeForce 6150" }, - { 0x0241, 4, "GeForce 6150 LE" }, - { 0x0242, 4, "GeForce 6100" }, - { 0x0244, 4, "GeForce Go 6150" }, - { 0x0245, 4, "Quadro NVS 210S / GeForce 6150LE" }, - { 0x0247, 4, "GeForce Go 6100" }, - { 0x0250, 2, "GeForce4 Ti 4600" }, - { 0x0251, 2, "GeForce4 Ti 4400" }, - { 0x0253, 2, "GeForce4 Ti 4200" }, - { 0x0258, 2, "Quadro4 900 XGL" }, - { 0x0259, 2, "Quadro4 750 XGL" }, - { 0x025B, 2, "Quadro4 700 XGL" }, - { 0x0280, 2, "GeForce4 Ti 4800" }, - { 0x0281, 2, "GeForce4 Ti 4200 with AGP8X" }, - { 0x0282, 2, "GeForce4 Ti 4800 SE" }, - { 0x0286, 2, "GeForce4 4200 Go" }, - { 0x0288, 2, "Quadro4 980 XGL" }, - { 0x0289, 2, "Quadro4 780 XGL" }, - { 0x028C, 2, "Quadro4 700 GoGL" }, - { 0x0290, 4, "GeForce 7900 GTX" }, - { 0x0291, 4, "GeForce 7900 GT/GTO" }, - { 0x0292, 4, "GeForce 7900 GS" }, - { 0x0293, 4, "GeForce 7950 GX2" }, - { 0x0294, 4, "GeForce 7950 GX2" }, - { 0x0295, 4, "GeForce 7950 GT" }, - { 0x0297, 4, "GeForce Go 7950 GTX" }, - { 0x0298, 4, "GeForce Go 7900 GS" }, - { 0x0299, 4, "Quadro NVS 510M" }, - { 0x029A, 4, "Quadro FX 2500M" }, - { 0x029B, 4, "Quadro FX 1500M" }, - { 0x029C, 4, "Quadro FX 5500" }, - { 0x029D, 4, "Quadro FX 3500" }, - { 0x029E, 4, "Quadro FX 1500" }, - { 0x029F, 4, "Quadro FX 4500 X2" }, - { 0x02E0, 4, "GeForce 7600 GT" }, - { 0x02E1, 4, "GeForce 7600 GS" }, - { 0x02E2, 4, "GeForce 7300 GT" }, - { 0x02E3, 4, "GeForce 7900 GS" }, - { 0x02E4, 4, "GeForce 7950 GT" }, - { 0x0301, 3, "GeForce FX 5800 Ultra" }, - { 0x0302, 3, "GeForce FX 5800" }, - { 0x0308, 3, "Quadro FX 2000" }, - { 0x0309, 3, "Quadro FX 1000" }, - { 0x0311, 3, "GeForce FX 5600 Ultra" }, - { 0x0312, 3, "GeForce FX 5600" }, - { 0x0314, 3, "GeForce FX 5600XT" }, - { 0x031A, 3, "GeForce FX Go5600" }, - { 0x031B, 3, "GeForce FX Go5650" }, - { 0x031C, 3, "Quadro FX Go700" }, - { 0x0320, 3, "GeForce FX 5200" }, - { 0x0321, 3, "GeForce FX 5200 Ultra" }, - { 0x0322, 3, "GeForce FX 5200" }, - { 0x0323, 3, "GeForce FX 5200LE" }, - { 0x0324, 3, "GeForce FX Go5200" }, - { 0x0325, 3, "GeForce FX Go5250" }, - { 0x0326, 3, "GeForce FX 5500" }, - { 0x0327, 3, "GeForce FX 5100" }, - { 0x0328, 3, "GeForce FX Go5200 32M/64M" }, - { 0x032A, 3, "Quadro NVS 55/280 PCI" }, - { 0x032B, 3, "Quadro FX 500/FX 600" }, - { 0x032C, 3, "GeForce FX Go53xx" }, - { 0x032D, 3, "GeForce FX Go5100" }, - { 0x0330, 3, "GeForce FX 5900 Ultra" }, - { 0x0331, 3, "GeForce FX 5900" }, - { 0x0332, 3, "GeForce FX 5900XT" }, - { 0x0333, 3, "GeForce FX 5950 Ultra" }, - { 0x0334, 3, "GeForce FX 5900ZT" }, - { 0x0338, 3, "Quadro FX 3000" }, - { 0x033F, 3, "Quadro FX 700" }, - { 0x0341, 3, "GeForce FX 5700 Ultra" }, - { 0x0342, 3, "GeForce FX 5700" }, - { 0x0343, 3, "GeForce FX 5700LE" }, - { 0x0344, 3, "GeForce FX 5700VE" }, - { 0x0347, 3, "GeForce FX Go5700" }, - { 0x0348, 3, "GeForce FX Go5700" }, - { 0x034C, 3, "Quadro FX Go1000" }, - { 0x034E, 3, "Quadro FX 1100" }, - { 0x038B, 4, "GeForce 7650 GS" }, - { 0x0390, 4, "GeForce 7650 GS" }, - { 0x0391, 4, "GeForce 7600 GT" }, - { 0x0392, 4, "GeForce 7600 GS" }, - { 0x0393, 4, "GeForce 7300 GT" }, - { 0x0394, 4, "GeForce 7600 LE" }, - { 0x0395, 4, "GeForce 7300 GT" }, - { 0x0397, 4, "GeForce Go 7700" }, - { 0x0398, 4, "GeForce Go 7600" }, - { 0x0399, 4, "GeForce Go 7600 GT" }, - { 0x039C, 4, "Quadro FX 560M" }, - { 0x039E, 4, "Quadro FX 560" }, - { 0x03D0, 4, "GeForce 6150SE nForce 430" }, - { 0x03D1, 4, "GeForce 6100 nForce 405" }, - { 0x03D2, 4, "GeForce 6100 nForce 400" }, - { 0x03D5, 4, "GeForce 6100 nForce 420" }, - { 0x03D6, 4, "GeForce 7025 / nForce 630a" }, - { 0x0400, 5, "GeForce 8600 GTS" }, - { 0x0401, 5, "GeForce 8600 GT" }, - { 0x0402, 5, "GeForce 8600 GT" }, - { 0x0403, 5, "GeForce 8600 GS" }, - { 0x0404, 5, "GeForce 8400 GS" }, - { 0x0405, 5, "GeForce 9500M GS" }, - { 0x0406, 5, "GeForce 8300 GS" }, - { 0x0407, 5, "GeForce 8600M GT" }, - { 0x0408, 5, "GeForce 9650M GS" }, - { 0x0409, 5, "GeForce 8700M GT" }, - { 0x040A, 5, "Quadro FX 370" }, - { 0x040B, 5, "Quadro NVS 320M" }, - { 0x040C, 5, "Quadro FX 570M" }, - { 0x040D, 5, "Quadro FX 1600M" }, - { 0x040E, 5, "Quadro FX 570" }, - { 0x040F, 5, "Quadro FX 1700" }, - { 0x0410, 5, "GeForce GT 330" }, - { 0x0420, 5, "GeForce 8400 SE" }, - { 0x0421, 5, "GeForce 8500 GT" }, - { 0x0422, 5, "GeForce 8400 GS" }, - { 0x0423, 5, "GeForce 8300 GS" }, - { 0x0424, 5, "GeForce 8400 GS" }, - { 0x0425, 5, "GeForce 8600M GS" }, - { 0x0426, 5, "GeForce 8400M GT" }, - { 0x0427, 5, "GeForce 8400M GS" }, - { 0x0428, 5, "GeForce 8400M G" }, - { 0x0429, 5, "Quadro NVS 140M" }, - { 0x042A, 5, "Quadro NVS 130M" }, - { 0x042B, 5, "Quadro NVS 135M" }, - { 0x042C, 5, "GeForce 9400 GT" }, - { 0x042D, 5, "Quadro FX 360M" }, - { 0x042E, 5, "GeForce 9300M G" }, - { 0x042F, 5, "Quadro NVS 290" }, - { 0x0531, 4, "GeForce 7150M / nForce 630M" }, - { 0x0533, 4, "GeForce 7000M / nForce 610M" }, - { 0x053A, 4, "GeForce 7050 PV / nForce 630a" }, - { 0x053B, 4, "GeForce 7050 PV / nForce 630a" }, - { 0x053E, 4, "GeForce 7025 / nForce 630a" }, - { 0x05E0, 5, "GeForce GTX 295" }, - { 0x05E1, 5, "GeForce GTX 280" }, - { 0x05E2, 5, "GeForce GTX 260" }, - { 0x05E3, 5, "GeForce GTX 285" }, - { 0x05E6, 5, "GeForce GTX 275" }, - { 0x05E7, 5, "Tesla C1060/Tesla M1060/Tesla T10 Processor" }, - { 0x05EA, 5, "GeForce GTX 260" }, - { 0x05EB, 5, "GeForce GTX 295" }, - { 0x05ED, 5, "Quadroplex 2200 D2" }, - { 0x05F8, 5, "Quadroplex 2200 S4" }, - { 0x05F9, 5, "Quadro CX" }, - { 0x05FD, 5, "Quadro FX 5800" }, - { 0x05FE, 5, "Quadro FX 4800" }, - { 0x05FF, 5, "Quadro FX 3800" }, - { 0x0600, 5, "GeForce 8800 GTS 512" }, - { 0x0601, 5, "GeForce 9800 GT" }, - { 0x0602, 5, "GeForce 8800 GT" }, - { 0x0603, 5, "GeForce GT 230" }, - { 0x0604, 5, "GeForce 9800 GX2" }, - { 0x0605, 5, "GeForce 9800 GT" }, - { 0x0606, 5, "GeForce 8800 GS" }, - { 0x0607, 5, "GeForce GTS 240" }, - { 0x0608, 5, "GeForce 9800M GTX" }, - { 0x0609, 5, "GeForce 8800M GTS/GeForce 8800 GS" }, - { 0x060A, 5, "GeForce GTX 280M" }, - { 0x060B, 5, "GeForce 9800M GT" }, - { 0x060C, 5, "GeForce 8800M GTX" }, - { 0x060D, 5, "GeForce 8800 GS" }, - { 0x060F, 5, "GeForce GTX 285M" }, - { 0x0610, 5, "GeForce 9600 GSO" }, - { 0x0611, 5, "GeForce 8800 GT" }, - { 0x0612, 5, "GeForce 9800 GTX/9800 GTX+" }, - { 0x0613, 5, "GeForce 9800 GTX+" }, - { 0x0614, 5, "GeForce 9800 GT" }, - { 0x0615, 5, "GeForce GTS 250" }, - { 0x0617, 5, "GeForce 9800M GTX" }, - { 0x0618, 5, "GeForce GTX 260M" }, - { 0x0619, 5, "Quadro FX 4700 X2" }, - { 0x061A, 5, "Quadro FX 3700" }, - { 0x061B, 5, "Quadro VX 200" }, - { 0x061C, 5, "Quadro FX 3600M" }, - { 0x061D, 5, "Quadro FX 2800M" }, - { 0x061E, 5, "Quadro FX 3700M" }, - { 0x061F, 5, "Quadro FX 3800M" }, - { 0x0621, 5, "GeForce GT 230" }, - { 0x0622, 5, "GeForce 9600 GT" }, - { 0x0623, 5, "GeForce 9600 GS" }, - { 0x0625, 5, "GeForce 9600 GSO 512" }, - { 0x0626, 5, "GeForce GT 130" }, - { 0x0627, 5, "GeForce GT 140" }, - { 0x0628, 5, "GeForce 9800M GTS" }, - { 0x062A, 5, "GeForce 9700M GTS" }, - { 0x062B, 5, "GeForce 9800M GS" }, - { 0x062C, 5, "GeForce 9800M GTS" }, - { 0x062D, 5, "GeForce 9600 GT" }, - { 0x062E, 5, "GeForce 9600 GT/GeForce GT 130" }, - { 0x0630, 5, "GeForce 9700 S" }, - { 0x0631, 5, "GeForce GTS 160M" }, - { 0x0632, 5, "GeForce GTS 150M" }, - { 0x0635, 5, "GeForce 9600 GSO" }, - { 0x0637, 5, "GeForce 9600 GT" }, - { 0x0638, 5, "Quadro FX 1800" }, - { 0x063A, 5, "Quadro FX 2700M" }, - { 0x0640, 5, "GeForce 9500 GT" }, - { 0x0641, 5, "GeForce 9400 GT" }, - { 0x0643, 5, "GeForce 9500 GT" }, - { 0x0644, 5, "GeForce 9500 GS" }, - { 0x0645, 5, "GeForce 9500 GS" }, - { 0x0646, 5, "GeForce GT 120" }, - { 0x0647, 5, "GeForce 9600M GT" }, - { 0x0648, 5, "GeForce 9600M GS" }, - { 0x0649, 5, "GeForce 9600M GT/GeForce GT 220M" }, - { 0x064A, 5, "GeForce 9700M GT" }, - { 0x064B, 5, "GeForce 9500M G" }, - { 0x064C, 5, "GeForce 9650M GT" }, - { 0x0651, 5, "GeForce G 110M" }, - { 0x0652, 5, "GeForce GT 130M/GeForce GT 240M LE" }, - { 0x0653, 5, "GeForce GT 120M" }, - { 0x0654, 5, "GeForce GT 220M/GeForce GT 320M" }, - { 0x0655, 5, "GeForce GT 120" }, - { 0x0656, 5, "GeForce GT 120" }, - { 0x0658, 5, "Quadro FX 380" }, - { 0x0659, 5, "Quadro FX 580" }, - { 0x065A, 5, "Quadro FX 1700M" }, - { 0x065B, 5, "GeForce 9400 GT" }, - { 0x065C, 5, "Quadro FX 770M" }, - { 0x06E0, 5, "GeForce 9300 GE" }, - { 0x06E1, 5, "GeForce 9300 GS" }, - { 0x06E2, 5, "GeForce 8400" }, - { 0x06E3, 5, "GeForce 8400 SE" }, - { 0x06E4, 5, "GeForce 8400 GS" }, - { 0x06E5, 5, "GeForce 9300M GS" }, - { 0x06E6, 5, "GeForce G100" }, - { 0x06E7, 5, "GeForce 9300 SE" }, - { 0x06E8, 5, "GeForce 9200M GS/GeForce 9200M GE" }, - { 0x06E9, 5, "GeForce 9300M GS" }, - { 0x06EA, 5, "Quadro NVS 150M" }, - { 0x06EB, 5, "Quadro NVS 160M" }, - { 0x06EC, 5, "GeForce G 105M" }, - { 0x06EF, 5, "GeForce G 103M" }, - { 0x06F1, 5, "GeForce G105M" }, - { 0x06F8, 5, "Quadro NVS 420" }, - { 0x06F9, 5, "Quadro FX 370 LP/Quadro FX 370 Low Profile" }, - { 0x06FA, 5, "Quadro NVS 450" }, - { 0x06FB, 5, "Quadro FX 370M" }, - { 0x06FD, 5, "Quadro NVS 295" }, - { 0x06FF, 5, "HICx16 + Graphics/HICx8 + Graphics" }, - { 0x07E0, 4, "GeForce 7150 / nForce 630i" }, - { 0x07E1, 4, "GeForce 7100 / nForce 630i" }, - { 0x07E2, 4, "GeForce 7050 / nForce 630i" }, - { 0x07E3, 4, "GeForce 7050 / nForce 610i" }, - { 0x07E5, 4, "GeForce 7050 / nForce 620i" }, - { 0x0840, 5, "GeForce 8200M" }, - { 0x0844, 5, "GeForce 9100M G" }, - { 0x0845, 5, "GeForce 8200M G" }, - { 0x0846, 5, "GeForce 9200" }, - { 0x0847, 5, "GeForce 9100" }, - { 0x0848, 5, "GeForce 8300" }, - { 0x0849, 5, "GeForce 8200" }, - { 0x084A, 5, "nForce 730a" }, - { 0x084B, 5, "GeForce 9200" }, - { 0x084C, 5, "nForce 980a/780a SLI" }, - { 0x084D, 5, "nForce 750a SLI" }, - { 0x084F, 5, "GeForce 8100 / nForce 720a" }, - { 0x0860, 5, "GeForce 9400" }, - { 0x0861, 5, "GeForce 9400" }, - { 0x0862, 5, "GeForce 9400M G" }, - { 0x0863, 5, "GeForce 9400M" }, - { 0x0864, 5, "GeForce 9300" }, - { 0x0865, 5, "ION" }, - { 0x0866, 5, "GeForce 9400M G/GeForce 9400M" }, - { 0x0867, 5, "GeForce 9400" }, - { 0x0868, 5, "nForce 760i SLI" }, - { 0x0869, 5, "GeForce 9400" }, - { 0x086A, 5, "GeForce 9400" }, - { 0x086C, 5, "GeForce 9300 / nForce 730i" }, - { 0x086D, 5, "GeForce 9200" }, - { 0x086E, 5, "GeForce 9100M G" }, - { 0x086F, 5, "GeForce 8200M G" }, - { 0x0870, 5, "GeForce 9400M" }, - { 0x0871, 5, "GeForce 9200" }, - { 0x0872, 5, "GeForce G102M/GeForce G205M" }, - { 0x0873, 5, "GeForce G102M/GeForce G205M" }, - { 0x0874, 5, "ION" }, - { 0x0876, 5, "ION" }, - { 0x087A, 5, "GeForce 9400" }, - { 0x087D, 5, "ION" }, - { 0x087E, 5, "ION LE" }, - { 0x087F, 5, "ION LE" }, - { 0x08A0, 5, "GeForce 320M" }, - { 0x08A2, 5, "GeForce 320M" }, - { 0x08A3, 5, "GeForce 320M" }, - { 0x08A4, 5, "GeForce 320M" }, - { 0x08A5, 5, "GeForce 320M" }, - { 0x0A20, 5, "GeForce GT 220" }, - { 0x0A22, 5, "GeForce 315" }, - { 0x0A23, 5, "GeForce 210" }, - { 0x0A26, 5, "GeForce 405" }, - { 0x0A27, 5, "GeForce 405" }, - { 0x0A28, 5, "GeForce GT 230M" }, - { 0x0A29, 5, "GeForce GT 330M" }, - { 0x0A2A, 5, "GeForce GT 230M" }, - { 0x0A2B, 5, "GeForce GT 330M" }, - { 0x0A2C, 5, "NVS 5100M" }, - { 0x0A2D, 5, "GeForce GT 320M" }, - { 0x0A32, 5, "GeForce GT 415" }, - { 0x0A34, 5, "GeForce GT 240M" }, - { 0x0A35, 5, "GeForce GT 325M" }, - { 0x0A38, 5, "Quadro 400" }, - { 0x0A3C, 5, "Quadro FX 880M" }, - { 0x0A60, 5, "GeForce G210" }, - { 0x0A62, 5, "GeForce 205" }, - { 0x0A63, 5, "GeForce 310" }, - { 0x0A64, 5, "Second Generation ION" }, - { 0x0A65, 5, "GeForce 210" }, - { 0x0A66, 5, "GeForce 310" }, - { 0x0A67, 5, "GeForce 315" }, - { 0x0A68, 5, "GeForce G105M" }, - { 0x0A69, 5, "GeForce G105M" }, - { 0x0A6A, 5, "NVS 2100M" }, - { 0x0A6C, 5, "NVS 3100M" }, - { 0x0A6E, 5, "GeForce 305M/Second Generation ION" }, - { 0x0A6F, 5, "Second Generation ION" }, - { 0x0A70, 5, "GeForce 310M/Second Generation ION" }, - { 0x0A71, 5, "GeForce 305M" }, - { 0x0A72, 5, "GeForce 310M" }, - { 0x0A73, 5, "GeForce 305M/Second Generation ION" }, - { 0x0A74, 5, "GeForce G210M/GeForce G210" }, - { 0x0A75, 5, "GeForce 310M/Second Generation ION" }, - { 0x0A76, 5, "Second Generation ION" }, - { 0x0A78, 5, "Quadro FX 380 LP" }, - { 0x0A7A, 5, "GeForce 315M/GeForce 405/GeForce 405M" }, - { 0x0A7C, 5, "Quadro FX 380M" }, - { 0x0CA0, 5, "GeForce GT 330" }, - { 0x0CA2, 5, "GeForce GT 320" }, - { 0x0CA3, 5, "GeForce GT 240" }, - { 0x0CA4, 5, "GeForce GT 340" }, - { 0x0CA5, 5, "GeForce GT 220" }, - { 0x0CA7, 5, "GeForce GT 330" }, - { 0x0CA8, 5, "GeForce GTS 260M" }, - { 0x0CA9, 5, "GeForce GTS 250M" }, - { 0x0CAC, 5, "GeForce GT 220" }, - { 0x0CAF, 5, "GeForce GT 335M" }, - { 0x0CB0, 5, "GeForce GTS 350M" }, - { 0x0CB1, 5, "GeForce GTS 360M" }, - { 0x0CBC, 5, "Quadro FX 1800M" }, - { 0x10C0, 5, "GeForce 9300 GS" }, - { 0x10C3, 5, "GeForce 8400GS" }, - { 0x10C5, 5, "GeForce 405" }, - { 0x10D8, 5, "NVS 300" } +// PCI-ID Subvend Subdev Branch Marketing name + { 0x0020, 0x0000, 0x0000, 1, "RIVA TNT" }, + { 0x0028, 0x0000, 0x0000, 1, "RIVA TNT2/TNT2 Pro" }, + { 0x00A0, 0x0000, 0x0000, 1, "Aladdin TNT2" }, + { 0x002C, 0x0000, 0x0000, 1, "Vanta/Vanta LT" }, + { 0x0029, 0x0000, 0x0000, 1, "RIVA TNT2 Ultra" }, + { 0x002D, 0x0000, 0x0000, 1, "RIVA TNT2 Model 64/Model 64 Pro" }, + { 0x0100, 0x0000, 0x0000, 1, "GeForce 256" }, + { 0x0101, 0x0000, 0x0000, 1, "GeForce DDR" }, + { 0x0103, 0x0000, 0x0000, 1, "Quadro" }, + { 0x0150, 0x0000, 0x0000, 1, "GeForce2 GTS/GeForce2 Pro" }, + { 0x0151, 0x0000, 0x0000, 1, "GeForce2 Ti" }, + { 0x0152, 0x0000, 0x0000, 1, "GeForce2 Ultra" }, + { 0x0153, 0x0000, 0x0000, 1, "Quadro2 Pro" }, + { 0x0110, 0x0000, 0x0000, 2, "GeForce2 MX/MX 400" }, + { 0x0111, 0x0000, 0x0000, 2, "GeForce2 MX 100/200" }, + { 0x0113, 0x0000, 0x0000, 2, "Quadro2 MXR/EX/Go" }, + { 0x0170, 0x0000, 0x0000, 2, "GeForce4 MX 460" }, + { 0x0171, 0x0000, 0x0000, 2, "GeForce4 MX 440" }, + { 0x0172, 0x0000, 0x0000, 2, "GeForce4 MX 420" }, + { 0x0173, 0x0000, 0x0000, 2, "GeForce4 MX 440-SE" }, + { 0x0178, 0x0000, 0x0000, 2, "Quadro4 550 XGL" }, + { 0x017A, 0x0000, 0x0000, 2, "Quadro NVS 400" }, + { 0x0181, 0x0000, 0x0000, 2, "GeForce4 MX 440 with AGP8X" }, + { 0x0182, 0x0000, 0x0000, 2, "GeForce4 MX 440SE with AGP8X" }, + { 0x0183, 0x0000, 0x0000, 2, "GeForce4 MX 420 with AGP8X" }, + { 0x0185, 0x0000, 0x0000, 2, "GeForce4 MX 4000" }, + { 0x0188, 0x0000, 0x0000, 2, "Quadro4 580 XGL" }, + { 0x018A, 0x0000, 0x0000, 2, "Quadro NVS 280 SD" }, + { 0x018B, 0x0000, 0x0000, 2, "Quadro4 380 XGL" }, + { 0x018C, 0x0000, 0x0000, 2, "Quadro NVS 50 PCI" }, + { 0x0200, 0x0000, 0x0000, 2, "GeForce3" }, + { 0x0201, 0x0000, 0x0000, 2, "GeForce3 Ti 200" }, + { 0x0202, 0x0000, 0x0000, 2, "GeForce3 Ti 500" }, + { 0x0203, 0x0000, 0x0000, 2, "Quadro DCC" }, + { 0x0250, 0x0000, 0x0000, 2, "GeForce4 Ti 4600" }, + { 0x0251, 0x0000, 0x0000, 2, "GeForce4 Ti 4400" }, + { 0x0253, 0x0000, 0x0000, 2, "GeForce4 Ti 4200" }, + { 0x0258, 0x0000, 0x0000, 2, "Quadro4 900 XGL" }, + { 0x0259, 0x0000, 0x0000, 2, "Quadro4 750 XGL" }, + { 0x025B, 0x0000, 0x0000, 2, "Quadro4 700 XGL" }, + { 0x0280, 0x0000, 0x0000, 2, "GeForce4 Ti 4800" }, + { 0x0281, 0x0000, 0x0000, 2, "GeForce4 Ti 4200 with AGP8X" }, + { 0x0282, 0x0000, 0x0000, 2, "GeForce4 Ti 4800 SE" }, + { 0x0288, 0x0000, 0x0000, 2, "Quadro4 980 XGL" }, + { 0x0289, 0x0000, 0x0000, 2, "Quadro4 780 XGL" }, + { 0x0112, 0x0000, 0x0000, 2, "GeForce2 Go" }, + { 0x0174, 0x0000, 0x0000, 2, "GeForce4 440 Go" }, + { 0x0175, 0x0000, 0x0000, 2, "GeForce4 420 Go" }, + { 0x0176, 0x0000, 0x0000, 2, "GeForce4 420 Go 32M" }, + { 0x0177, 0x0000, 0x0000, 2, "GeForce4 460 Go" }, + { 0x0179, 0x0000, 0x0000, 2, "GeForce4 440 Go 64M" }, + { 0x017D, 0x0000, 0x0000, 2, "GeForce4 410 Go 16M" }, + { 0x017C, 0x0000, 0x0000, 2, "Quadro4 500 GoGL" }, + { 0x0286, 0x0000, 0x0000, 2, "GeForce4 4200 Go" }, + { 0x028C, 0x0000, 0x0000, 2, "Quadro4 700 GoGL" }, + { 0x01A0, 0x0000, 0x0000, 2, "GeForce2 Integrated GPU" }, + { 0x01F0, 0x0000, 0x0000, 2, "GeForce4 MX Integrated GPU" }, + { 0x0301, 0x0000, 0x0000, 3, "GeForce FX 5800 Ultra" }, + { 0x0302, 0x0000, 0x0000, 3, "GeForce FX 5800" }, + { 0x0311, 0x0000, 0x0000, 3, "GeForce FX 5600 Ultra" }, + { 0x0312, 0x0000, 0x0000, 3, "GeForce FX 5600" }, + { 0x0314, 0x0000, 0x0000, 3, "GeForce FX 5600XT" }, + { 0x0320, 0x0000, 0x0000, 3, "GeForce FX 5200" }, + { 0x0321, 0x0000, 0x0000, 3, "GeForce FX 5200 Ultra" }, + { 0x0322, 0x0000, 0x0000, 3, "GeForce FX 5200" }, + { 0x0323, 0x0000, 0x0000, 3, "GeForce FX 5200LE" }, + { 0x0326, 0x0000, 0x0000, 3, "GeForce FX 5500" }, + { 0x0327, 0x0000, 0x0000, 3, "GeForce FX 5100" }, + { 0x0330, 0x0000, 0x0000, 3, "GeForce FX 5900 Ultra" }, + { 0x0331, 0x0000, 0x0000, 3, "GeForce FX 5900" }, + { 0x0332, 0x0000, 0x0000, 3, "GeForce FX 5900XT" }, + { 0x0333, 0x0000, 0x0000, 3, "GeForce FX 5950 Ultra" }, + { 0x0334, 0x0000, 0x0000, 3, "GeForce FX 5900ZT" }, + { 0x0341, 0x0000, 0x0000, 3, "GeForce FX 5700 Ultra" }, + { 0x0342, 0x0000, 0x0000, 3, "GeForce FX 5700" }, + { 0x0343, 0x0000, 0x0000, 3, "GeForce FX 5700LE" }, + { 0x0344, 0x0000, 0x0000, 3, "GeForce FX 5700VE" }, + { 0x00FC, 0x0000, 0x0000, 3, "Quadro FX 330" }, + { 0x00FD, 0x0000, 0x0000, 3, "Quadro FX 330" }, + { 0x00FE, 0x0000, 0x0000, 3, "Quadro FX 1300" }, + { 0x032B, 0x0000, 0x0000, 3, "Quadro FX 500/FX 600" }, + { 0x033F, 0x0000, 0x0000, 3, "Quadro FX 700" }, + { 0x0309, 0x0000, 0x0000, 3, "Quadro FX 1000" }, + { 0x034E, 0x0000, 0x0000, 3, "Quadro FX 1100" }, + { 0x0308, 0x0000, 0x0000, 3, "Quadro FX 2000" }, + { 0x0338, 0x0000, 0x0000, 3, "Quadro FX 3000" }, + { 0x031A, 0x0000, 0x0000, 3, "GeForce FX Go5600" }, + { 0x031B, 0x0000, 0x0000, 3, "GeForce FX Go5650" }, + { 0x0324, 0x0000, 0x0000, 3, "GeForce FX Go5200" }, + { 0x0325, 0x0000, 0x0000, 3, "GeForce FX Go5250" }, + { 0x0328, 0x0000, 0x0000, 3, "GeForce FX Go5200 32M/64M" }, + { 0x032C, 0x0000, 0x0000, 3, "GeForce FX Go53xx" }, + { 0x032D, 0x0000, 0x0000, 3, "GeForce FX Go5100" }, + { 0x0347, 0x0000, 0x0000, 3, "GeForce FX Go5700" }, + { 0x0348, 0x0000, 0x0000, 3, "GeForce FX Go5700" }, + { 0x034C, 0x0000, 0x0000, 3, "Quadro FX Go1000" }, + { 0x00FA, 0x0000, 0x0000, 3, "GeForce PCX 5750" }, + { 0x00FB, 0x0000, 0x0000, 3, "GeForce PCX 5900" }, + { 0x00FC, 0x0000, 0x0000, 3, "GeForce PCX 5300" }, + { 0x00FD, 0x0000, 0x0000, 3, "Quadro NVS 280 PCI-E" }, + { 0x032A, 0x0000, 0x0000, 3, "Quadro NVS 55/280 PCI" }, + { 0x031C, 0x0000, 0x0000, 3, "Quadro FX Go700" }, + { 0x00F1, 0x0000, 0x0000, 4, "GeForce 6600 GT" }, + { 0x00F2, 0x0000, 0x0000, 4, "GeForce 6600" }, + { 0x00F3, 0x0000, 0x0000, 4, "GeForce 6200" }, + { 0x00F4, 0x0000, 0x0000, 4, "GeForce 6600 LE" }, + { 0x00F5, 0x0000, 0x0000, 4, "GeForce 7800 GS" }, + { 0x00F6, 0x0000, 0x0000, 4, "GeForce 6800 GS" }, + { 0x00F8, 0x0000, 0x0000, 4, "Quadro FX 3400" }, + { 0x00F8, 0x0000, 0x0000, 4, "Quadro FX 4000" }, + { 0x00F9, 0x0000, 0x0000, 4, "GeForce 6800 Ultra" }, + { 0x02E0, 0x0000, 0x0000, 4, "GeForce 7600 GT" }, + { 0x02E1, 0x0000, 0x0000, 4, "GeForce 7600 GS" }, + { 0x02E2, 0x0000, 0x0000, 4, "GeForce 7300 GT" }, + { 0x02E3, 0x0000, 0x0000, 4, "GeForce 7900 GS" }, + { 0x02E4, 0x0000, 0x0000, 4, "GeForce 7950 GT" }, + { 0x0240, 0x0000, 0x0000, 4, "GeForce 6150" }, + { 0x0241, 0x0000, 0x0000, 4, "GeForce 6150 LE" }, + { 0x0242, 0x0000, 0x0000, 4, "GeForce 6100" }, + { 0x0245, 0x0000, 0x0000, 4, "Quadro NVS 210S / GeForce 6150LE" }, + { 0x03D0, 0x0000, 0x0000, 4, "GeForce 6150SE nForce 430" }, + { 0x03D1, 0x0000, 0x0000, 4, "GeForce 6100 nForce 405" }, + { 0x03D2, 0x0000, 0x0000, 4, "GeForce 6100 nForce 400" }, + { 0x03D5, 0x0000, 0x0000, 4, "GeForce 6100 nForce 420" }, + { 0x03D6, 0x0000, 0x0000, 4, "GeForce 7025 / nForce 630a" }, + { 0x053A, 0x0000, 0x0000, 4, "GeForce 7050 PV / nForce 630a" }, + { 0x053B, 0x0000, 0x0000, 4, "GeForce 7050 PV / nForce 630a" }, + { 0x053E, 0x0000, 0x0000, 4, "GeForce 7025 / nForce 630a" }, + { 0x07E0, 0x0000, 0x0000, 4, "GeForce 7150 / nForce 630i" }, + { 0x07E1, 0x0000, 0x0000, 4, "GeForce 7100 / nForce 630i" }, + { 0x07E2, 0x0000, 0x0000, 4, "GeForce 7050 / nForce 630i" }, + { 0x07E3, 0x0000, 0x0000, 4, "GeForce 7050 / nForce 610i" }, + { 0x07E5, 0x0000, 0x0000, 4, "GeForce 7050 / nForce 620i" }, + { 0x0090, 0x0000, 0x0000, 4, "GeForce 7800 GTX" }, + { 0x0091, 0x0000, 0x0000, 4, "GeForce 7800 GTX" }, + { 0x0092, 0x0000, 0x0000, 4, "GeForce 7800 GT" }, + { 0x0093, 0x0000, 0x0000, 4, "GeForce 7800 GS" }, + { 0x0095, 0x0000, 0x0000, 4, "GeForce 7800 SLI" }, + { 0x009D, 0x0000, 0x0000, 4, "Quadro FX 4500" }, + { 0x0290, 0x0000, 0x0000, 4, "GeForce 7900 GTX" }, + { 0x0291, 0x0000, 0x0000, 4, "GeForce 7900 GT/GTO" }, + { 0x0292, 0x0000, 0x0000, 4, "GeForce 7900 GS" }, + { 0x0293, 0x0000, 0x0000, 4, "GeForce 7950 GX2" }, + { 0x0294, 0x0000, 0x0000, 4, "GeForce 7950 GX2" }, + { 0x0295, 0x0000, 0x0000, 4, "GeForce 7950 GT" }, + { 0x029C, 0x0000, 0x0000, 4, "Quadro FX 5500" }, + { 0x029D, 0x0000, 0x0000, 4, "Quadro FX 3500" }, + { 0x029E, 0x0000, 0x0000, 4, "Quadro FX 1500" }, + { 0x029F, 0x0000, 0x0000, 4, "Quadro FX 4500 X2" }, + { 0x01D0, 0x0000, 0x0000, 4, "GeForce 7350 LE" }, + { 0x01D1, 0x0000, 0x0000, 4, "GeForce 7300 LE" }, + { 0x01D2, 0x0000, 0x0000, 4, "GeForce 7550 LE" }, + { 0x01D3, 0x0000, 0x0000, 4, "GeForce 7300 SE/7200 GS" }, + { 0x01DD, 0x0000, 0x0000, 4, "GeForce 7500 LE" }, + { 0x01DE, 0x0000, 0x0000, 4, "Quadro FX 350" }, + { 0x01DF, 0x0000, 0x0000, 4, "GeForce 7300 GS" }, + { 0x038B, 0x0000, 0x0000, 4, "GeForce 7650 GS" }, + { 0x0390, 0x0000, 0x0000, 4, "GeForce 7650 GS" }, + { 0x0391, 0x0000, 0x0000, 4, "GeForce 7600 GT" }, + { 0x0392, 0x0000, 0x0000, 4, "GeForce 7600 GS" }, + { 0x0393, 0x0000, 0x0000, 4, "GeForce 7300 GT" }, + { 0x0394, 0x0000, 0x0000, 4, "GeForce 7600 LE" }, + { 0x0395, 0x0000, 0x0000, 4, "GeForce 7300 GT" }, + { 0x039E, 0x0000, 0x0000, 4, "Quadro FX 560" }, + { 0x0040, 0x0000, 0x0000, 4, "GeForce 6800 Ultra" }, + { 0x0041, 0x0000, 0x0000, 4, "GeForce 6800" }, + { 0x0042, 0x0000, 0x0000, 4, "GeForce 6800 LE" }, + { 0x0043, 0x0000, 0x0000, 4, "GeForce 6800 XE" }, + { 0x0044, 0x0000, 0x0000, 4, "GeForce 6800 XT" }, + { 0x0045, 0x0000, 0x0000, 4, "GeForce 6800 GT" }, + { 0x0047, 0x0000, 0x0000, 4, "GeForce 6800 GS" }, + { 0x0048, 0x0000, 0x0000, 4, "GeForce 6800 XT" }, + { 0x004E, 0x0000, 0x0000, 4, "Quadro FX 4000" }, + { 0x00C0, 0x0000, 0x0000, 4, "GeForce 6800 GS" }, + { 0x00C1, 0x0000, 0x0000, 4, "GeForce 6800" }, + { 0x00C2, 0x0000, 0x0000, 4, "GeForce 6800 LE" }, + { 0x00C3, 0x0000, 0x0000, 4, "GeForce 6800 XT" }, + { 0x00CD, 0x0000, 0x0000, 4, "Quadro FX 3450/4000 SDI" }, + { 0x00CE, 0x0000, 0x0000, 4, "Quadro FX 1400" }, + { 0x0140, 0x0000, 0x0000, 4, "GeForce 6600 GT" }, + { 0x0141, 0x0000, 0x0000, 4, "GeForce 6600" }, + { 0x0142, 0x0000, 0x0000, 4, "GeForce 6600 LE" }, + { 0x0143, 0x0000, 0x0000, 4, "GeForce 6600 VE" }, + { 0x0145, 0x0000, 0x0000, 4, "GeForce 6610 XL" }, + { 0x0147, 0x0000, 0x0000, 4, "GeForce 6700 XL" }, + { 0x014A, 0x0000, 0x0000, 4, "Quadro NVS 440" }, + { 0x014C, 0x0000, 0x0000, 4, "Quadro FX 540M" }, + { 0x014D, 0x0000, 0x0000, 4, "Quadro FX 550" }, + { 0x014E, 0x0000, 0x0000, 4, "Quadro FX 540" }, + { 0x014F, 0x0000, 0x0000, 4, "GeForce 6200" }, + { 0x0160, 0x0000, 0x0000, 4, "GeForce 6500" }, + { 0x0161, 0x0000, 0x0000, 4, "GeForce 6200 TurboCache(TM)" }, + { 0x0162, 0x0000, 0x0000, 4, "GeForce 6200SE TurboCache(TM)" }, + { 0x0163, 0x0000, 0x0000, 4, "GeForce 6200 LE" }, + { 0x0165, 0x0000, 0x0000, 4, "Quadro NVS 285" }, + { 0x0169, 0x0000, 0x0000, 4, "GeForce 6250" }, + { 0x016A, 0x0000, 0x0000, 4, "GeForce 7100 GS" }, + { 0x0221, 0x0000, 0x0000, 4, "GeForce 6200" }, + { 0x0222, 0x0000, 0x0000, 4, "GeForce 6200 A-LE" }, + { 0x0046, 0x0000, 0x0000, 4, "GeForce 6800 GT" }, + { 0x0211, 0x0000, 0x0000, 4, "GeForce 6800" }, + { 0x0212, 0x0000, 0x0000, 4, "GeForce 6800 LE" }, + { 0x0215, 0x0000, 0x0000, 4, "GeForce 6800 GT" }, + { 0x0218, 0x0000, 0x0000, 4, "GeForce 6800 XT" }, + { 0x0244, 0x0000, 0x0000, 4, "GeForce Go 6150" }, + { 0x0247, 0x0000, 0x0000, 4, "GeForce Go 6100" }, + { 0x0531, 0x0000, 0x0000, 4, "GeForce 7150M / nForce 630M" }, + { 0x0533, 0x0000, 0x0000, 4, "GeForce 7000M / nForce 610M" }, + { 0x0098, 0x0000, 0x0000, 4, "GeForce Go 7800" }, + { 0x0099, 0x0000, 0x0000, 4, "GeForce Go 7800 GTX" }, + { 0x0297, 0x0000, 0x0000, 4, "GeForce Go 7950 GTX" }, + { 0x0298, 0x0000, 0x0000, 4, "GeForce Go 7900 GS" }, + { 0x0299, 0x0000, 0x0000, 4, "Quadro NVS 510M" }, + { 0x029A, 0x0000, 0x0000, 4, "Quadro FX 2500M" }, + { 0x029B, 0x0000, 0x0000, 4, "Quadro FX 1500M" }, + { 0x01D6, 0x0000, 0x0000, 4, "GeForce Go 7200" }, + { 0x01D7, 0x0000, 0x0000, 4, "GeForce Go 7300" }, + { 0x01D8, 0x0000, 0x0000, 4, "GeForce Go 7400" }, + { 0x01DA, 0x0000, 0x0000, 4, "Quadro NVS 110M" }, + { 0x01DB, 0x0000, 0x0000, 4, "Quadro NVS 120M" }, + { 0x01DC, 0x0000, 0x0000, 4, "Quadro FX 350M" }, + { 0x0397, 0x0000, 0x0000, 4, "GeForce Go 7700" }, + { 0x0398, 0x0000, 0x0000, 4, "GeForce Go 7600" }, + { 0x0399, 0x0000, 0x0000, 4, "GeForce Go 7600 GT" }, + { 0x039C, 0x0000, 0x0000, 4, "Quadro FX 560M" }, + { 0x00C8, 0x0000, 0x0000, 4, "GeForce Go 6800" }, + { 0x00C9, 0x0000, 0x0000, 4, "GeForce Go 6800 Ultra" }, + { 0x00CC, 0x0000, 0x0000, 4, "Quadro FX Go1400" }, + { 0x0144, 0x0000, 0x0000, 4, "GeForce Go 6600" }, + { 0x0146, 0x0000, 0x0000, 4, "GeForce Go 6600 TE/6200 TE" }, + { 0x0148, 0x0000, 0x0000, 4, "GeForce Go 6600" }, + { 0x0149, 0x0000, 0x0000, 4, "GeForce Go 6600 GT" }, + { 0x0164, 0x0000, 0x0000, 4, "GeForce Go 6200" }, + { 0x0166, 0x0000, 0x0000, 4, "GeForce Go 6400" }, + { 0x0167, 0x0000, 0x0000, 4, "GeForce Go 6200" }, + { 0x0168, 0x0000, 0x0000, 4, "GeForce Go 6400" }, + { 0x0840, 0x0000, 0x0000, 5, "GeForce 8200M" }, + { 0x0846, 0x0000, 0x0000, 5, "GeForce 9200" }, + { 0x0847, 0x0000, 0x0000, 5, "GeForce 9100" }, + { 0x0848, 0x0000, 0x0000, 5, "GeForce 8300" }, + { 0x0849, 0x0000, 0x0000, 5, "GeForce 8200" }, + { 0x084A, 0x0000, 0x0000, 5, "nForce 730a" }, + { 0x084B, 0x0000, 0x0000, 5, "GeForce 9200" }, + { 0x084C, 0x0000, 0x0000, 5, "nForce 980a/780a SLI" }, + { 0x084D, 0x0000, 0x0000, 5, "nForce 750a SLI" }, + { 0x084F, 0x0000, 0x0000, 5, "GeForce 8100 / nForce 720a" }, + { 0x0860, 0x0000, 0x0000, 5, "GeForce 9400" }, + { 0x0861, 0x0000, 0x0000, 5, "GeForce 9400" }, + { 0x0862, 0x0000, 0x0000, 5, "GeForce 9400M G" }, + { 0x0863, 0x0000, 0x0000, 5, "GeForce 9400M" }, + { 0x0864, 0x0000, 0x0000, 5, "GeForce 9300" }, + { 0x0865, 0x0000, 0x0000, 5, "ION" }, + { 0x0866, 0x0000, 0x0000, 5, "GeForce 9400M G" }, + { 0x0866, 0x106B, 0x00B1, 5, "GeForce 9400M" }, + { 0x0867, 0x0000, 0x0000, 5, "GeForce 9400" }, + { 0x0868, 0x0000, 0x0000, 5, "nForce 760i SLI" }, + { 0x0869, 0x0000, 0x0000, 5, "GeForce 9400" }, + { 0x086A, 0x0000, 0x0000, 5, "GeForce 9400" }, + { 0x086C, 0x0000, 0x0000, 5, "GeForce 9300 / nForce 730i" }, + { 0x086D, 0x0000, 0x0000, 5, "GeForce 9200" }, + { 0x086E, 0x0000, 0x0000, 5, "GeForce 9100M G" }, + { 0x086F, 0x0000, 0x0000, 5, "GeForce 8200M G" }, + { 0x0870, 0x0000, 0x0000, 5, "GeForce 9400M" }, + { 0x0871, 0x0000, 0x0000, 5, "GeForce 9200" }, + { 0x0872, 0x0000, 0x0000, 5, "GeForce G102M" }, + { 0x0872, 0x1043, 0x1C42, 5, "GeForce G205M" }, + { 0x0873, 0x0000, 0x0000, 5, "GeForce G102M" }, + { 0x0873, 0x1043, 0x1C52, 5, "GeForce G205M" }, + { 0x0874, 0x0000, 0x0000, 5, "ION" }, + { 0x0876, 0x0000, 0x0000, 5, "ION" }, + { 0x087A, 0x0000, 0x0000, 5, "GeForce 9400" }, + { 0x087D, 0x0000, 0x0000, 5, "ION" }, + { 0x0A20, 0x0000, 0x0000, 5, "GeForce GT 220" }, + { 0x0A22, 0x0000, 0x0000, 5, "GeForce 315" }, + { 0x0A23, 0x0000, 0x0000, 5, "GeForce 210" }, + { 0x0A38, 0x0000, 0x0000, 5, "Quadro 400" }, + { 0x0A60, 0x0000, 0x0000, 5, "GeForce G210" }, + { 0x0A62, 0x0000, 0x0000, 5, "GeForce 205" }, + { 0x0A63, 0x0000, 0x0000, 5, "GeForce 310" }, + { 0x0A64, 0x0000, 0x0000, 5, "Second Generation ION" }, + { 0x0A65, 0x0000, 0x0000, 5, "GeForce 210" }, + { 0x0A66, 0x0000, 0x0000, 5, "GeForce 310" }, + { 0x0A67, 0x0000, 0x0000, 5, "GeForce 315" }, + { 0x0A68, 0x0000, 0x0000, 5, "GeForce G105M" }, + { 0x0A69, 0x0000, 0x0000, 5, "GeForce G105M" }, + { 0x0A6A, 0x0000, 0x0000, 5, "NVS 2100M" }, + { 0x0A6C, 0x0000, 0x0000, 5, "NVS 3100M" }, + { 0x0A6E, 0x0000, 0x0000, 5, "GeForce 305M" }, + { 0x0A6E, 0x17AA, 0x3607, 5, "Second Generation ION" }, + { 0x0A6F, 0x0000, 0x0000, 5, "Second Generation ION" }, + { 0x0A76, 0x0000, 0x0000, 5, "Second Generation ION" }, + { 0x0A78, 0x0000, 0x0000, 5, "Quadro FX 380 LP" }, + { 0x0CA0, 0x0000, 0x0000, 5, "GeForce GT 330" }, + { 0x0CA2, 0x0000, 0x0000, 5, "GeForce GT 320" }, + { 0x0CA3, 0x0000, 0x0000, 5, "GeForce GT 240" }, + { 0x0CA4, 0x0000, 0x0000, 5, "GeForce GT 340" }, + { 0x0CA5, 0x0000, 0x0000, 5, "GeForce GT 220" }, + { 0x0CA7, 0x0000, 0x0000, 5, "GeForce GT 330" }, + { 0x0CAC, 0x0000, 0x0000, 5, "GeForce GT 220" }, + { 0x05E0, 0x0000, 0x0000, 5, "GeForce GTX 295" }, + { 0x05E1, 0x0000, 0x0000, 5, "GeForce GTX 280" }, + { 0x05E2, 0x0000, 0x0000, 5, "GeForce GTX 260" }, + { 0x05E3, 0x0000, 0x0000, 5, "GeForce GTX 285" }, + { 0x05E6, 0x0000, 0x0000, 5, "GeForce GTX 275" }, + { 0x05E7, 0x0000, 0x0000, 5, "Tesla C1060" }, + { 0x05E7, 0x10DE, 0x0595, 5, "Tesla T10 Processor" }, + { 0x05E7, 0x10DE, 0x068F, 5, "Tesla T10 Processor" }, + { 0x05E7, 0x10DE, 0x0697, 5, "Tesla M1060" }, + { 0x05E7, 0x10DE, 0x0714, 5, "Tesla M1060" }, + { 0x05E7, 0x10DE, 0x0743, 5, "Tesla M1060" }, + { 0x05EA, 0x0000, 0x0000, 5, "GeForce GTX 260" }, + { 0x05EB, 0x0000, 0x0000, 5, "GeForce GTX 295" }, + { 0x05ED, 0x0000, 0x0000, 5, "Quadroplex 2200 D2" }, + { 0x05F8, 0x0000, 0x0000, 5, "Quadroplex 2200 S4" }, + { 0x05F9, 0x0000, 0x0000, 5, "Quadro CX" }, + { 0x05FD, 0x0000, 0x0000, 5, "Quadro FX 5800" }, + { 0x05FE, 0x0000, 0x0000, 5, "Quadro FX 4800" }, + { 0x05FF, 0x0000, 0x0000, 5, "Quadro FX 3800" }, + { 0x0191, 0x0000, 0x0000, 5, "GeForce 8800 GTX" }, + { 0x0193, 0x0000, 0x0000, 5, "GeForce 8800 GTS" }, + { 0x0194, 0x0000, 0x0000, 5, "GeForce 8800 Ultra" }, + { 0x0197, 0x0000, 0x0000, 5, "Tesla C870" }, + { 0x019D, 0x0000, 0x0000, 5, "Quadro FX 5600" }, + { 0x019E, 0x0000, 0x0000, 5, "Quadro FX 4600" }, + { 0x0400, 0x0000, 0x0000, 5, "GeForce 8600 GTS" }, + { 0x0401, 0x0000, 0x0000, 5, "GeForce 8600 GT" }, + { 0x0402, 0x0000, 0x0000, 5, "GeForce 8600 GT" }, + { 0x0403, 0x0000, 0x0000, 5, "GeForce 8600 GS" }, + { 0x0404, 0x0000, 0x0000, 5, "GeForce 8400 GS" }, + { 0x0405, 0x0000, 0x0000, 5, "GeForce 9500M GS" }, + { 0x0406, 0x0000, 0x0000, 5, "GeForce 8300 GS" }, + { 0x040B, 0x0000, 0x0000, 5, "Quadro NVS 320M" }, + { 0x040C, 0x0000, 0x0000, 5, "Quadro FX 570M" }, + { 0x040D, 0x0000, 0x0000, 5, "Quadro FX 1600M" }, + { 0x040E, 0x0000, 0x0000, 5, "Quadro FX 570" }, + { 0x040F, 0x0000, 0x0000, 5, "Quadro FX 1700" }, + { 0x0410, 0x0000, 0x0000, 5, "GeForce GT 330" }, + { 0x0420, 0x0000, 0x0000, 5, "GeForce 8400 SE" }, + { 0x0421, 0x0000, 0x0000, 5, "GeForce 8500 GT" }, + { 0x0422, 0x0000, 0x0000, 5, "GeForce 8400 GS" }, + { 0x0423, 0x0000, 0x0000, 5, "GeForce 8300 GS" }, + { 0x0424, 0x0000, 0x0000, 5, "GeForce 8400 GS" }, + { 0x042C, 0x0000, 0x0000, 5, "GeForce 9400 GT" }, + { 0x042D, 0x0000, 0x0000, 5, "Quadro FX 360M" }, + { 0x042E, 0x0000, 0x0000, 5, "GeForce 9300M G" }, + { 0x042F, 0x0000, 0x0000, 5, "Quadro NVS 290" }, + { 0x0600, 0x0000, 0x0000, 5, "GeForce 8800 GTS 512" }, + { 0x0601, 0x0000, 0x0000, 5, "GeForce 9800 GT" }, + { 0x0602, 0x0000, 0x0000, 5, "GeForce 8800 GT" }, + { 0x0603, 0x0000, 0x0000, 5, "GeForce GT 230" }, + { 0x0605, 0x0000, 0x0000, 5, "GeForce 9800 GT" }, + { 0x0606, 0x0000, 0x0000, 5, "GeForce 8800 GS" }, + { 0x0607, 0x0000, 0x0000, 5, "GeForce GTS 240" }, + { 0x0611, 0x0000, 0x0000, 5, "GeForce 8800 GT" }, + { 0x0618, 0x0000, 0x0000, 5, "GeForce GTX 260M" }, + { 0x0619, 0x0000, 0x0000, 5, "Quadro FX 4700 X2" }, + { 0x061A, 0x0000, 0x0000, 5, "Quadro FX 3700" }, + { 0x061B, 0x0000, 0x0000, 5, "Quadro VX 200" }, + { 0x06E0, 0x0000, 0x0000, 5, "GeForce 9300 GE" }, + { 0x06E1, 0x0000, 0x0000, 5, "GeForce 9300 GS" }, + { 0x06E2, 0x0000, 0x0000, 5, "GeForce 8400" }, + { 0x06E3, 0x0000, 0x0000, 5, "GeForce 8400 SE" }, + { 0x06E4, 0x0000, 0x0000, 5, "GeForce 8400 GS" }, + { 0x06E7, 0x0000, 0x0000, 5, "GeForce 9300 SE" }, + { 0x06FF, 0x0000, 0x0000, 5, "HICx16 + Graphics" }, + { 0x06FF, 0x10DE, 0x0711, 5, "HICx8 + Graphics" }, + { 0x0844, 0x0000, 0x0000, 5, "GeForce 9100M G" }, + { 0x0845, 0x0000, 0x0000, 5, "GeForce 8200M G" }, + { 0x087E, 0x0000, 0x0000, 5, "ION LE" }, + { 0x087F, 0x0000, 0x0000, 5, "ION LE" }, + { 0x08A0, 0x0000, 0x0000, 5, "GeForce 320M" }, + { 0x08A2, 0x0000, 0x0000, 5, "GeForce 320M" }, + { 0x08A3, 0x0000, 0x0000, 5, "GeForce 320M" }, + { 0x08A4, 0x0000, 0x0000, 5, "GeForce 320M" }, + { 0x08A5, 0x0000, 0x0000, 5, "GeForce 320M" }, + { 0x0A26, 0x0000, 0x0000, 5, "GeForce 405" }, + { 0x0A27, 0x0000, 0x0000, 5, "GeForce 405" }, + { 0x0A28, 0x0000, 0x0000, 5, "GeForce GT 230M" }, + { 0x0A29, 0x0000, 0x0000, 5, "GeForce GT 330M" }, + { 0x0A2A, 0x0000, 0x0000, 5, "GeForce GT 230M" }, + { 0x0A2B, 0x0000, 0x0000, 5, "GeForce GT 330M" }, + { 0x0A2C, 0x0000, 0x0000, 5, "NVS 5100M" }, + { 0x0A2D, 0x0000, 0x0000, 5, "GeForce GT 320M" }, + { 0x0A32, 0x0000, 0x0000, 5, "GeForce GT 415" }, + { 0x0A34, 0x0000, 0x0000, 5, "GeForce GT 240M" }, + { 0x0A35, 0x0000, 0x0000, 5, "GeForce GT 325M" }, + { 0x0A3C, 0x0000, 0x0000, 5, "Quadro FX 880M" }, + { 0x0A70, 0x0000, 0x0000, 5, "GeForce 310M" }, + { 0x0A70, 0x17AA, 0x3605, 5, "Second Generation ION" }, + { 0x0A70, 0x17AA, 0x3617, 5, "Second Generation ION" }, + { 0x0A71, 0x0000, 0x0000, 5, "GeForce 305M" }, + { 0x0A72, 0x0000, 0x0000, 5, "GeForce 310M" }, + { 0x0A73, 0x0000, 0x0000, 5, "GeForce 305M" }, + { 0x0A73, 0x17AA, 0x3607, 5, "Second Generation ION" }, + { 0x0A73, 0x17AA, 0x3610, 5, "Second Generation ION" }, + { 0x0A74, 0x0000, 0x0000, 5, "GeForce G210M" }, + { 0x0A74, 0x17AA, 0x903A, 5, "GeForce G210" }, + { 0x0A75, 0x0000, 0x0000, 5, "GeForce 310M" }, + { 0x0A75, 0x17AA, 0x3605, 5, "Second Generation ION" }, + { 0x0A7A, 0x0000, 0x0000, 5, "GeForce 315M" }, + { 0x0A7A, 0x1BFD, 0x0003, 5, "GeForce 405" }, + { 0x0A7A, 0x17AA, 0x3950, 5, "GeForce 405M" }, + { 0x0A7A, 0x17AA, 0x397D, 5, "GeForce 405M" }, + { 0x0A7A, 0x1642, 0x3980, 5, "GeForce 405" }, + { 0x0A7A, 0x1BFD, 0x8006, 5, "GeForce 405" }, + { 0x0A7A, 0x1B0A, 0x90B4, 5, "GeForce 405" }, + { 0x0A7A, 0x1462, 0xAA51, 5, "GeForce 405" }, + { 0x0A7A, 0x1462, 0xAA58, 5, "GeForce 405" }, + { 0x0A7A, 0x1462, 0xAC71, 5, "GeForce 405" }, + { 0x0A7A, 0x1462, 0xAC82, 5, "GeForce 405" }, + { 0x0A7C, 0x0000, 0x0000, 5, "Quadro FX 380M" }, + { 0x0CA8, 0x0000, 0x0000, 5, "GeForce GTS 260M" }, + { 0x0CA9, 0x0000, 0x0000, 5, "GeForce GTS 250M" }, + { 0x0CAF, 0x0000, 0x0000, 5, "GeForce GT 335M" }, + { 0x0CB0, 0x0000, 0x0000, 5, "GeForce GTS 350M" }, + { 0x0CB1, 0x0000, 0x0000, 5, "GeForce GTS 360M" }, + { 0x0CBC, 0x0000, 0x0000, 5, "Quadro FX 1800M" }, + { 0x0407, 0x0000, 0x0000, 5, "GeForce 8600M GT" }, + { 0x0408, 0x0000, 0x0000, 5, "GeForce 9650M GS" }, + { 0x0409, 0x0000, 0x0000, 5, "GeForce 8700M GT" }, + { 0x040A, 0x0000, 0x0000, 5, "Quadro FX 370" }, + { 0x0425, 0x0000, 0x0000, 5, "GeForce 8600M GS" }, + { 0x0426, 0x0000, 0x0000, 5, "GeForce 8400M GT" }, + { 0x0427, 0x0000, 0x0000, 5, "GeForce 8400M GS" }, + { 0x0428, 0x0000, 0x0000, 5, "GeForce 8400M G" }, + { 0x0429, 0x0000, 0x0000, 5, "Quadro NVS 140M" }, + { 0x042A, 0x0000, 0x0000, 5, "Quadro NVS 130M" }, + { 0x042B, 0x0000, 0x0000, 5, "Quadro NVS 135M" }, + { 0x0604, 0x0000, 0x0000, 5, "GeForce 9800 GX2" }, + { 0x0608, 0x0000, 0x0000, 5, "GeForce 9800M GTX" }, + { 0x0609, 0x0000, 0x0000, 5, "GeForce 8800M GTS" }, + { 0x0609, 0x106B, 0x00A7, 5, "GeForce 8800 GS" }, + { 0x060A, 0x0000, 0x0000, 5, "GeForce GTX 280M" }, + { 0x060B, 0x0000, 0x0000, 5, "GeForce 9800M GT" }, + { 0x060C, 0x0000, 0x0000, 5, "GeForce 8800M GTX" }, + { 0x060D, 0x0000, 0x0000, 5, "GeForce 8800 GS" }, + { 0x060F, 0x0000, 0x0000, 5, "GeForce GTX 285M" }, + { 0x0610, 0x0000, 0x0000, 5, "GeForce 9600 GSO" }, + { 0x0612, 0x0000, 0x0000, 5, "GeForce 9800 GTX/9800 GTX+" }, + { 0x0613, 0x0000, 0x0000, 5, "GeForce 9800 GTX+" }, + { 0x0614, 0x0000, 0x0000, 5, "GeForce 9800 GT" }, + { 0x0615, 0x0000, 0x0000, 5, "GeForce GTS 250" }, + { 0x0617, 0x0000, 0x0000, 5, "GeForce 9800M GTX" }, + { 0x061C, 0x0000, 0x0000, 5, "Quadro FX 3600M" }, + { 0x061D, 0x0000, 0x0000, 5, "Quadro FX 2800M" }, + { 0x061E, 0x0000, 0x0000, 5, "Quadro FX 3700M" }, + { 0x061F, 0x0000, 0x0000, 5, "Quadro FX 3800M" }, + { 0x0621, 0x0000, 0x0000, 5, "GeForce GT 230" }, + { 0x0622, 0x0000, 0x0000, 5, "GeForce 9600 GT" }, + { 0x0623, 0x0000, 0x0000, 5, "GeForce 9600 GS" }, + { 0x0625, 0x0000, 0x0000, 5, "GeForce 9600 GSO 512" }, + { 0x0626, 0x0000, 0x0000, 5, "GeForce GT 130" }, + { 0x0627, 0x0000, 0x0000, 5, "GeForce GT 140" }, + { 0x0628, 0x0000, 0x0000, 5, "GeForce 9800M GTS" }, + { 0x062A, 0x0000, 0x0000, 5, "GeForce 9700M GTS" }, + { 0x062B, 0x0000, 0x0000, 5, "GeForce 9800M GS" }, + { 0x062C, 0x0000, 0x0000, 5, "GeForce 9800M GTS" }, + { 0x062D, 0x0000, 0x0000, 5, "GeForce 9600 GT" }, + { 0x062E, 0x0000, 0x0000, 5, "GeForce 9600 GT" }, + { 0x062E, 0x106B, 0x0605, 5, "GeForce GT 130" }, + { 0x0630, 0x0000, 0x0000, 5, "GeForce 9700 S" }, + { 0x0631, 0x0000, 0x0000, 5, "GeForce GTS 160M" }, + { 0x0632, 0x0000, 0x0000, 5, "GeForce GTS 150M" }, + { 0x0635, 0x0000, 0x0000, 5, "GeForce 9600 GSO" }, + { 0x0637, 0x0000, 0x0000, 5, "GeForce 9600 GT" }, + { 0x0638, 0x0000, 0x0000, 5, "Quadro FX 1800" }, + { 0x063A, 0x0000, 0x0000, 5, "Quadro FX 2700M" }, + { 0x0640, 0x0000, 0x0000, 5, "GeForce 9500 GT" }, + { 0x0641, 0x0000, 0x0000, 5, "GeForce 9400 GT" }, + { 0x0643, 0x0000, 0x0000, 5, "GeForce 9500 GT" }, + { 0x0644, 0x0000, 0x0000, 5, "GeForce 9500 GS" }, + { 0x0645, 0x0000, 0x0000, 5, "GeForce 9500 GS" }, + { 0x0646, 0x0000, 0x0000, 5, "GeForce GT 120" }, + { 0x0647, 0x0000, 0x0000, 5, "GeForce 9600M GT" }, + { 0x0648, 0x0000, 0x0000, 5, "GeForce 9600M GS" }, + { 0x0649, 0x0000, 0x0000, 5, "GeForce 9600M GT" }, + { 0x0649, 0x1043, 0x202D, 5, "GeForce GT 220M" }, + { 0x064A, 0x0000, 0x0000, 5, "GeForce 9700M GT" }, + { 0x064B, 0x0000, 0x0000, 5, "GeForce 9500M G" }, + { 0x064C, 0x0000, 0x0000, 5, "GeForce 9650M GT" }, + { 0x0651, 0x0000, 0x0000, 5, "GeForce G 110M" }, + { 0x0652, 0x0000, 0x0000, 5, "GeForce GT 130M" }, + { 0x0652, 0x152D, 0x0850, 5, "GeForce GT 240M LE" }, + { 0x0653, 0x0000, 0x0000, 5, "GeForce GT 120M" }, + { 0x0654, 0x0000, 0x0000, 5, "GeForce GT 220M" }, + { 0x0654, 0x1043, 0x14A2, 5, "GeForce GT 320M" }, + { 0x0654, 0x1043, 0x14D2, 5, "GeForce GT 320M" }, + { 0x0655, 0x106B, 0x0633, 5, "GeForce GT 120" }, + { 0x0656, 0x106B, 0x0693, 5, "GeForce GT 120" }, + { 0x0658, 0x0000, 0x0000, 5, "Quadro FX 380" }, + { 0x0659, 0x0000, 0x0000, 5, "Quadro FX 580" }, + { 0x065A, 0x0000, 0x0000, 5, "Quadro FX 1700M" }, + { 0x065B, 0x0000, 0x0000, 5, "GeForce 9400 GT" }, + { 0x065C, 0x0000, 0x0000, 5, "Quadro FX 770M" }, + { 0x06E5, 0x0000, 0x0000, 5, "GeForce 9300M GS" }, + { 0x06E6, 0x0000, 0x0000, 5, "GeForce G100" }, + { 0x06EC, 0x0000, 0x0000, 5, "GeForce G 105M" }, + { 0x06EF, 0x0000, 0x0000, 5, "GeForce G 103M" }, + { 0x06F1, 0x0000, 0x0000, 5, "GeForce G105M" }, + { 0x06EB, 0x0000, 0x0000, 5, "Quadro NVS 160M" }, + { 0x06EA, 0x0000, 0x0000, 5, "Quadro NVS 150M" }, + { 0x06E9, 0x0000, 0x0000, 5, "GeForce 9300M GS" }, + { 0x06E8, 0x0000, 0x0000, 5, "GeForce 9200M GS" }, + { 0x06E8, 0x103C, 0x360B, 5, "GeForce 9200M GE" }, + { 0x06F8, 0x0000, 0x0000, 5, "Quadro NVS 420" }, + { 0x06F9, 0x0000, 0x0000, 5, "Quadro FX 370 LP" }, + { 0x06F9, 0x10DE, 0x060D, 5, "Quadro FX 370 Low Profile" }, + { 0x06FA, 0x0000, 0x0000, 5, "Quadro NVS 450" }, + { 0x06FB, 0x0000, 0x0000, 5, "Quadro FX 370M" }, + { 0x06FD, 0x0000, 0x0000, 5, "Quadro NVS 295" }, + { 0x10C0, 0x0000, 0x0000, 5, "GeForce 9300 GS" }, + { 0x10C3, 0x0000, 0x0000, 5, "GeForce 8400GS" }, + { 0x10C5, 0x0000, 0x0000, 5, "GeForce 405" }, + { 0x10D8, 0x0000, 0x0000, 5, "NVS 300" } }; #endif /* __NV_LEGACY_H */ @@ -1,17 +1,23 @@ # # Copyright (C) 2008 NVIDIA Corporation # -# This program is free software; you can redistribute it and/or modify it -# under the terms and conditions of the GNU General Public License, -# version 2, as published by the Free Software 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: # -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. # -# You should have received a copy of the GNU General Public License -# along with this program; if not, see <http://www.gnu.org/licenses>. +# 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. # # # utils.mk: common Makefile fragment used by nvidia-xconfig, @@ -1 +1 @@ -NVIDIA_VERSION = 346.47 +NVIDIA_VERSION = 349.12 |