via_id.c revision 90b17f1b
17e6fb56fSmrg/* 27e6fb56fSmrg * Copyright 2004-2005 The Unichrome Project [unichrome.sf.net] 37e6fb56fSmrg * 47e6fb56fSmrg * Permission is hereby granted, free of charge, to any person obtaining a 57e6fb56fSmrg * copy of this software and associated documentation files (the "Software"), 67e6fb56fSmrg * to deal in the Software without restriction, including without limitation 77e6fb56fSmrg * the rights to use, copy, modify, merge, publish, distribute, sub license, 87e6fb56fSmrg * and/or sell copies of the Software, and to permit persons to whom the 97e6fb56fSmrg * Software is furnished to do so, subject to the following conditions: 107e6fb56fSmrg * 117e6fb56fSmrg * The above copyright notice and this permission notice (including the 127e6fb56fSmrg * next paragraph) shall be included in all copies or substantial portions 137e6fb56fSmrg * of the Software. 147e6fb56fSmrg * 157e6fb56fSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 167e6fb56fSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 177e6fb56fSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 187e6fb56fSmrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 197e6fb56fSmrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 207e6fb56fSmrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 217e6fb56fSmrg * DEALINGS IN THE SOFTWARE. 227e6fb56fSmrg */ 237e6fb56fSmrg 247e6fb56fSmrg/* 257e6fb56fSmrg * A big structure with card-ID information, plus some checking functions. 267e6fb56fSmrg */ 277e6fb56fSmrg 287e6fb56fSmrg#ifdef HAVE_CONFIG_H 297e6fb56fSmrg#include "config.h" 307e6fb56fSmrg#endif 317e6fb56fSmrg 327e6fb56fSmrg#include "via_driver.h" 337e6fb56fSmrg 347e6fb56fSmrg/* 357e6fb56fSmrg * There's no reason for this to be known outside of via_id.o; 367e6fb56fSmrg * only a pointer to a single entry will ever be used outside. 377e6fb56fSmrg */ 387e6fb56fSmrgstatic struct ViaCardIdStruct ViaCardId[] = { 397e6fb56fSmrg /*** CLE266 ***/ 407e6fb56fSmrg {"ECS CLE266 (1.0)", VIA_CLE266, 0x1019, 0x1B43, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 417e6fb56fSmrg {"LT21 VA28", VIA_CLE266, 0x1019, 0x1B44, VIA_DEVICE_CRT}, 427e6fb56fSmrg {"ECS G320", VIA_CLE266, 0x1019, 0xB320, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 437e6fb56fSmrg {"Asustek Terminator C3V", VIA_CLE266, 0x1043, 0x8155, VIA_DEVICE_CRT}, 447e6fb56fSmrg {"VIA VT3122 (CLE266)-EPIA M/MII/...", VIA_CLE266, 0x1106, 0x3122, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 457e6fb56fSmrg {"MSI MS-6723", VIA_CLE266, 0x1462, 0X7238, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 467e6fb56fSmrg {"Clevo T200V", VIA_CLE266, 0x1558, 0x200A, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 477e6fb56fSmrg {"Biostar ARKplus III", VIA_CLE266, 0x1565, 0x3204, VIA_DEVICE_CRT | VIA_DEVICE_TV}, /* FS454 TV encoder */ 487e6fb56fSmrg 497e6fb56fSmrg /*** KM400, KM400A, KN400, P4M800 ***/ 507e6fb56fSmrg {"ECS KM400-M2", VIA_KM400, 0x1019, 0x1842, VIA_DEVICE_CRT}, 517e6fb56fSmrg {"Acer Aspire 135x", VIA_KM400, 0x1025, 0x0033, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 527e6fb56fSmrg {"Asustek A7V8X-MX", VIA_KM400, 0x1043, 0x80ED, VIA_DEVICE_CRT}, 537e6fb56fSmrg {"Asustek A7V8X-LA", VIA_KM400, 0x1043, 0x80F9, VIA_DEVICE_CRT}, 547e6fb56fSmrg {"Asustek A7V8X-MX SE / A7V400-MX", VIA_KM400, 0x1043, 0x8118, VIA_DEVICE_CRT}, 557e6fb56fSmrg {"Asustek Terminator A7VT", VIA_KM400, 0x1043, 0x813E, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 567e6fb56fSmrg {"Mitac 8375X", VIA_KM400, 0x1071, 0x8375, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "UMAX 585T" */ 577e6fb56fSmrg {"Soltek SL-75MIV2", VIA_KM400, 0x1106, 0x0000, VIA_DEVICE_CRT}, /* VIA/0x0000 */ 5890b17f1bSmrg {"VIA VT3205 (KM400)", VIA_KM400, 0x1106, 0x3205, VIA_DEVICE_CRT | VIA_DEVICE_TV}, /* borrowed by Soltek SL-B7C-FGR */ 597e6fb56fSmrg {"VIA VT7205 (KM400A)", VIA_KM400, 0x1106, 0x7205, VIA_DEVICE_CRT}, /* borrowed by Biostar iDEQ 200V/Chaintech 7VIF4 */ 607e6fb56fSmrg {"Shuttle FX43", VIA_KM400, 0x1297, 0xF643, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 617e6fb56fSmrg {"Giga-byte 7VM400(A)M", VIA_KM400, 0x1458, 0xD000, VIA_DEVICE_CRT}, 627e6fb56fSmrg {"MSI KM4(A)M-V", VIA_KM400, 0x1462, 0x7061, VIA_DEVICE_CRT}, /* aka "DFI KM400-MLV" */ 637e6fb56fSmrg {"MSI PM8M2-V", VIA_KM400, 0x1462, 0x7071, VIA_DEVICE_CRT}, 6490b17f1bSmrg {"MSI PM8M-V", VIA_KM400, 0x1462, 0x7104, VIA_DEVICE_CRT}, 657e6fb56fSmrg {"MSI KM4(A)M-L", VIA_KM400, 0x1462, 0x7348, VIA_DEVICE_CRT}, 667e6fb56fSmrg {"Abit VA-10 (1)", VIA_KM400, 0x147B, 0x140B, VIA_DEVICE_CRT}, 677e6fb56fSmrg {"Abit VA-10 (2)", VIA_KM400, 0x147B, 0x140C, VIA_DEVICE_CRT}, 687e6fb56fSmrg {"Abit VA-20", VIA_KM400, 0x147B, 0x1411, VIA_DEVICE_CRT}, 697e6fb56fSmrg {"Averatec 322x", VIA_KM400, 0x14FF, 0x030D, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 707e6fb56fSmrg {"FIC K7M-400A", VIA_KM400, 0x1509, 0x9233, VIA_DEVICE_CRT}, 717e6fb56fSmrg {"Biostar M7VIZ", VIA_KM400, 0x1565, 0x1200, VIA_DEVICE_CRT}, 727e6fb56fSmrg {"Biostar P4M800-M7", VIA_KM400, 0x1565, 0x1202, VIA_DEVICE_CRT}, 737e6fb56fSmrg {"Uniwill 755CI", VIA_KM400, 0x1584, 0x800A, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "Gericom Hummer Advance", "Maxdata M-Book 1200X" */ 747e6fb56fSmrg {"Packard Bell Quasar2 (MSI MS6786)", VIA_KM400, 0x1631, 0xD002, VIA_DEVICE_CRT}, 7590b17f1bSmrg {"Nec Powermate VL5", VIA_KM400, 0x1631, 0xD003, VIA_DEVICE_CRT}, 767e6fb56fSmrg {"Epox EP-8KMM3I", VIA_KM400, 0x1695, 0x9023, VIA_DEVICE_CRT}, 777e6fb56fSmrg {"ASRock Inc. K7VM2/3/4", VIA_KM400, 0x1849, 0x7205, VIA_DEVICE_CRT}, 787e6fb56fSmrg {"ACorp KM400QP", VIA_KM400, 0x1915, 0x1100, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 797e6fb56fSmrg {"Mercury P4VM800M7 (1.0)", VIA_KM400, 0x3344, 0x1122, VIA_DEVICE_CRT}, 807e6fb56fSmrg {"Soyo K7VME", VIA_KM400, 0xA723, 0x10FD, VIA_DEVICE_CRT}, 817e6fb56fSmrg 827e6fb56fSmrg /*** K8M800, K8N800, K8N800A ***/ 837e6fb56fSmrg {"ZX-5360", VIA_K8M800, 0x1019, 0x0F60, VIA_DEVICE_CRT | VIA_DEVICE_LCD }, 847e6fb56fSmrg {"ECS K8M800-M2 (1.0)", VIA_K8M800, 0x1019, 0x1828, VIA_DEVICE_CRT}, 857e6fb56fSmrg {"ECS K8M800-M2 (2.0)", VIA_K8M800, 0x1019, 0x1B45, VIA_DEVICE_CRT}, 867e6fb56fSmrg {"Acer Aspire 136x", VIA_K8M800, 0x1025, 0x006E, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 877e6fb56fSmrg {"Asustek K8V-MX", VIA_K8M800, 0x1043, 0x8129, VIA_DEVICE_CRT}, 887e6fb56fSmrg {"Mitac 8399", VIA_K8M800, 0x1071, 0x8399, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "Pogolinux Konabook 3100" */ 897e6fb56fSmrg {"Mitac 8889", VIA_K8M800, 0x1071, 0x8889, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 907e6fb56fSmrg {"MSI K8M Neo-V (broken pci id)", VIA_K8M800, 0x1106, 0x0204, VIA_DEVICE_CRT}, 9190b17f1bSmrg {"VIA VT3108 (K8M800)", VIA_K8M800, 0x1106, 0x3108, VIA_DEVICE_CRT}, /* borrowed by Asustek A8V-MX */ 927e6fb56fSmrg {"Shuttle FX21", VIA_K8M800, 0x1297, 0x3052, VIA_DEVICE_CRT}, 937e6fb56fSmrg {"Shuttle FX83", VIA_K8M800, 0x1297, 0xF683, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 947e6fb56fSmrg {"Sharp Actius AL27", VIA_K8M800, 0x13BD, 0x1044, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 9590b17f1bSmrg {"Sharp Mebius PC-CS30H", VIA_K8M800, 0x13BD, 0x1047, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 967e6fb56fSmrg {"Sharp PC-AE30J", VIA_K8M800, 0x13BD, 0x104B, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 977e6fb56fSmrg {"Giga-byte GA-K8VM800M", VIA_K8M800, 0x1458, 0xD000, VIA_DEVICE_CRT}, 987e6fb56fSmrg {"MSI K8M Neo-V", VIA_K8M800, 0x1462, 0x0320, VIA_DEVICE_CRT}, 997e6fb56fSmrg {"MSI K8MM-V", VIA_K8M800, 0x1462, 0x7142, VIA_DEVICE_CRT}, 1007e6fb56fSmrg {"MSI K8MM3-V", VIA_K8M800, 0x1462, 0x7181, VIA_DEVICE_CRT}, 1017e6fb56fSmrg {"MSI K9MM-V", VIA_K8M800, 0x1462, 0x7312, VIA_DEVICE_CRT}, 1027e6fb56fSmrg {"MSI K8MM-ILSR", VIA_K8M800, 0x1462, 0x7410, VIA_DEVICE_CRT}, 1037e6fb56fSmrg {"Abit KV-80", VIA_K8M800, 0x147B, 0x1419, VIA_DEVICE_CRT}, 1047e6fb56fSmrg {"Abit KV-81", VIA_K8M800, 0x147B, 0x141A, VIA_DEVICE_CRT}, 1057e6fb56fSmrg {"Averatec 327x", VIA_K8M800, 0x14FF, 0x0315, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1067e6fb56fSmrg {"Twinhead N14RA", VIA_K8M800, 0x14FF, 0x0321, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1077e6fb56fSmrg {"Averatec 3715", VIA_K8M800, 0x14FF, 0x0322, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1087e6fb56fSmrg {"Averatec 54xx", VIA_K8M800, 0x1509, 0x3930, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1097e6fb56fSmrg {"FIC K8M-800M", VIA_K8M800, 0x1509, 0x6001, VIA_DEVICE_CRT}, 1107e6fb56fSmrg {"Clevo L570W", VIA_K8M800, 0x1558, 0x0570, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1117e6fb56fSmrg {"Mesh Pegasus", VIA_K8M800, 0x1558, 0x4702, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1127e6fb56fSmrg {"Biostar K8VGA-M", VIA_K8M800, 0x1565, 0x1203, VIA_DEVICE_CRT}, 1137e6fb56fSmrg {"DFI K8M800-MLVF", VIA_K8M800, 0x15BD, 0x1002, VIA_DEVICE_CRT}, 1147e6fb56fSmrg {"Packard Bell Easynote E6116/E63xx", VIA_K8M800, 0x1631, 0xC008, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 1157e6fb56fSmrg {"Packard Bell Easynote B3 800/B3340", VIA_K8M800, 0x1631, 0xC009, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1167e6fb56fSmrg {"Packard Bell Imedia 2097", VIA_K8M800, 0x1631, 0xD007, VIA_DEVICE_CRT}, 1177e6fb56fSmrg {"Fujitsu-Siemens Amilo K7610", VIA_K8M800, 0x1734, 0x10B3, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 11890b17f1bSmrg {"Lenovo ThinkCenter E51 8714", VIA_K8M800, 0x17AA, 0x1008, VIA_DEVICE_CRT}, 1197e6fb56fSmrg {"ASRock K8Upgrade-VM800", VIA_K8M800, 0x1849, 0x3108, VIA_DEVICE_CRT}, 1207e6fb56fSmrg {"Axper XP-M8VM800", VIA_K8M800, 0x1940, 0xD000, VIA_DEVICE_CRT}, 1217e6fb56fSmrg 1227e6fb56fSmrg /*** PM800, PM880, PN800, CN400 ***/ 1237e6fb56fSmrg {"VIA VT3118 (PM800)", VIA_PM800, 0x1106, 0x3118, VIA_DEVICE_CRT}, /* borrowed by ECS PM800-M2 */ 1247e6fb56fSmrg {"Hasee F700C", VIA_PM800, 0x1071, 0x8650, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1257e6fb56fSmrg {"Mitac 8666", VIA_PM800, 0x1071, 0x8666, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 1267e6fb56fSmrg {"Medion MIM2080", VIA_PM800, 0x1071, 0x8965, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 1277e6fb56fSmrg {"TwinHead E12BL", VIA_PM800, 0x14FF, 0x0314, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1287e6fb56fSmrg {"MaxSelect Optima C4", VIA_PM800, 0x1558, 0x5402, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1297e6fb56fSmrg {"Biostar P4VMA-M", VIA_PM800, 0x1565, 0x1202, VIA_DEVICE_CRT}, 1307e6fb56fSmrg {"Sotec WA2330S5", VIA_PM800, 0x161F, 0x2037, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 1317e6fb56fSmrg {"Packard Bell Easynote R1100", VIA_PM800, 0x1631, 0xC015, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1327e6fb56fSmrg {"Fujitsu/Siemens Amilo Pro V2010", VIA_PM800, 0x1734, 0x1078, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 1337e6fb56fSmrg {"Fujitsu/Siemens Amilo L7310", VIA_PM800, 0x1734, 0x10AB, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1347e6fb56fSmrg {"ASRock P4VM8", VIA_PM800, 0x1849, 0x3118, VIA_DEVICE_CRT}, 1357e6fb56fSmrg {"Chaintech MPM800-3", VIA_PM800, 0x270F, 0x7671, VIA_DEVICE_CRT}, 1367e6fb56fSmrg {"KamLAB KINO-LUKE-533-R20", VIA_PM800, 0x3344, 0x1122, VIA_DEVICE_CRT}, 1377e6fb56fSmrg 1387e6fb56fSmrg /*** P4M800Pro, VN800, CN700 ***/ 1397e6fb56fSmrg {"Clevo/RoverBook Partner E419L", VIA_VM800, 0x1019, 0x0F75, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1407e6fb56fSmrg {"Haier A60-440256080BD", VIA_VM800, 0x1019, 0x0F79, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1417e6fb56fSmrg {"PCChips P23G", VIA_VM800, 0x1019, 0x1623, VIA_DEVICE_CRT}, 1427e6fb56fSmrg {"ECS P4M800PRO-M", VIA_VM800, 0x1019, 0x2122, VIA_DEVICE_CRT}, 14390b17f1bSmrg {"ECS P4M800PRO-M2 (V2.0)", VIA_VM800, 0x1019, 0x2123, VIA_DEVICE_CRT}, 1447e6fb56fSmrg {"ECS C7VCM", VIA_VM800, 0x1019, 0xAA2D, VIA_DEVICE_CRT}, 1457e6fb56fSmrg {"PCChips V21G", VIA_VM800, 0x1019, 0xAA51, VIA_DEVICE_CRT}, 14690b17f1bSmrg {"Hewlett Packard DX2020", VIA_VM800, 0x103C, 0x3027, VIA_DEVICE_CRT}, 1477e6fb56fSmrg {"Asustek P5VDC-MX", VIA_VM800, 0x1043, 0x3344, VIA_DEVICE_CRT}, 1487e6fb56fSmrg {"Asustek P5VDC-TVM", VIA_VM800, 0x1043, 0x81CE, VIA_DEVICE_CRT}, 1497e6fb56fSmrg {"Foxconn P4M800P7MB-RS2H", VIA_VM800, 0x105B, 0x0CF0, VIA_DEVICE_CRT}, 1507e6fb56fSmrg {"Gateway MX3210", VIA_VM800, 0x107B, 0x0216, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1517e6fb56fSmrg {"VIA VT3344 (VM800) - EPIA EN", VIA_VM800, 0x1106, 0x3344, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 1527e6fb56fSmrg {"Gigabyte GA-8VM800M-775", VIA_VM800, 0x1458, 0xD000, VIA_DEVICE_CRT}, 1537e6fb56fSmrg {"MSI PM8M-V", VIA_VM800, 0x1462, 0x7104, VIA_DEVICE_CRT}, 1547e6fb56fSmrg {"MSI Fuzzy CN700/CN700T/CN700G", VIA_VM800, 0x1462, 0x7199, VIA_DEVICE_CRT | VIA_DEVICE_TV}, 1557e6fb56fSmrg {"MSI PM8M3-V", VIA_VM800, 0x1462, 0x7211, VIA_DEVICE_CRT}, 1567e6fb56fSmrg {"MSI PM8PM", VIA_VM800, 0x1462, 0x7222, VIA_DEVICE_CRT}, 1577e6fb56fSmrg {"Twinhead M6", VIA_VM800, 0x14FF, 0xA007, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1587e6fb56fSmrg {"RoverBook Partner W500", VIA_VM800, 0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 15990b17f1bSmrg {"FIC PTM800Pro LF", VIA_VM800, 0x1509, 0x601A, VIA_DEVICE_CRT}, 1607e6fb56fSmrg {"Clevo/RoverBook Voyager V511L", VIA_VM800, 0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1617e6fb56fSmrg {"Clevo M5xxS", VIA_VM800, 0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1627e6fb56fSmrg {"Biostar P4M80-M4 / P4VMA-M", VIA_VM800, 0x1565, 0x1202, VIA_DEVICE_CRT}, 1637e6fb56fSmrg {"Biostar P4M800 Pro-M7", VIA_VM800, 0x1565, 0x1206, VIA_DEVICE_CRT}, 1647e6fb56fSmrg {"Packard Bell Lima (ASUS MBP5VDZ-NVM)", VIA_VM800, 0x1631, 0xE018, VIA_DEVICE_CRT}, 1657e6fb56fSmrg {"Fujitsu/Siemens Amilo Pro V2030", VIA_VM800, 0x1734, 0x109B, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1667e6fb56fSmrg {"Fujitsu/Siemens Amilo Pro V2035", VIA_VM800, 0x1734, 0x10AE, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1677e6fb56fSmrg {"Fujitsu/Siemens Amilo Pro V2055", VIA_VM800, 0x1734, 0x10CA, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1687e6fb56fSmrg {"Fujitsu/Siemens Amilo L7320", VIA_VM800, 0x1734, 0x10CD, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1697e6fb56fSmrg {"ASRock P4VM800", VIA_VM800, 0x1849, 0x3344, VIA_DEVICE_CRT}, 1707e6fb56fSmrg {"Asustek P5V800-MX", VIA_VM800, 0x3344, 0x1122, VIA_DEVICE_CRT}, 1717e6fb56fSmrg 1727e6fb56fSmrg /*** K8M890 ***/ 1737e6fb56fSmrg {"IBM AnyPlace Kiosk 3xx", VIA_K8M890, 0x1106, 0x3230, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1747e6fb56fSmrg {"Asustek A8V-VM", VIA_K8M890, 0x1043, 0x81B5, VIA_DEVICE_CRT}, 1757e6fb56fSmrg {"Asustek M2V-MX SE", VIA_K8M890, 0x1043, 0x8297, VIA_DEVICE_CRT}, 1767e6fb56fSmrg {"Foxconn K8M890M2MA-RS2H", VIA_K8M890, 0x105B, 0x0C84, VIA_DEVICE_CRT}, 1777e6fb56fSmrg {"Shuttle FX22V1", VIA_K8M890, 0x1297, 0x3080, VIA_DEVICE_CRT}, 17890b17f1bSmrg {"MSI K8M890M2-V", VIA_K8M890, 0x1462, 0x7139, VIA_DEVICE_CRT}, 1797e6fb56fSmrg {"MSI K9VGM-V", VIA_K8M890, 0x1462, 0x7253, VIA_DEVICE_CRT}, 1807e6fb56fSmrg {"Averatec 226x", VIA_K8M890, 0x14FF, 0xA002, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1817e6fb56fSmrg {"Fujitsu/Siemens Amilo La 1703", VIA_K8M890, 0x1734, 0x10D9, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1827e6fb56fSmrg 1837e6fb56fSmrg /*** P4M900, VN896, CN896 ***/ 1847e6fb56fSmrg {"VIA Epia SN", VIA_P4M900, 0x0908, 0x1975, VIA_DEVICE_CRT}, 1857e6fb56fSmrg {"Hewlett Packard 2133 Mini-Note", VIA_P4M900, 0x103C, 0x3030, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 18690b17f1bSmrg {"Hewlett Packard Compaq dx2040", VIA_P4M900, 0x103C, 0x3633, VIA_DEVICE_CRT}, 1877e6fb56fSmrg {"Asustek P5VD2-VM", VIA_P4M900, 0x1043, 0x81CE, VIA_DEVICE_CRT}, 1887e6fb56fSmrg {"Asustek P5VD2-VM SE", VIA_P4M900, 0x1043, 0x8252, VIA_DEVICE_CRT}, 1897e6fb56fSmrg {"Foxconn P4M9007MB-8RS2H", VIA_P4M900, 0x105B, 0x0C87, VIA_DEVICE_CRT}, 1907e6fb56fSmrg {"Mitac 8515", VIA_P4M900, 0x1071, 0x8515, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1917e6fb56fSmrg {"Medion Notebook MD96483", VIA_P4M900, 0x1071, 0x8615, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1927e6fb56fSmrg {"Mitac 8624", VIA_P4M900, 0x1071, 0x8624, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 19390b17f1bSmrg {"VIA VB8001 Mini-ITX Board (P4M900)", VIA_P4M900, 0x1106, 0x3371, VIA_DEVICE_CRT}, 1947e6fb56fSmrg {"Gigabyte GA-VM900M", VIA_P4M900, 0x1458, 0xD000, VIA_DEVICE_CRT}, 1957e6fb56fSmrg {"MSI VR321", VIA_P4M900, 0x1462, 0x3355, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 1967e6fb56fSmrg {"MSI P4M900M / P4M900M2-F/L", VIA_P4M900, 0x1462, 0x7255, VIA_DEVICE_CRT}, 19790b17f1bSmrg {"MSI PM9M-V", VIA_P4M900, 0x1462, 0x7364, VIA_DEVICE_CRT}, 1987e6fb56fSmrg {"MSI P4M900M3-L", VIA_P4M900, 0x1462, 0x7387, VIA_DEVICE_CRT}, 1997e6fb56fSmrg {"Twinhead H12V", VIA_P4M900, 0x14FF, 0xA00F, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 20090b17f1bSmrg {"Twinhead K15V", VIA_P4M900, 0x14FF, 0xA012, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 20190b17f1bSmrg {"Semp Informática Notebook IS 1462", VIA_P4M900, 0x1509, 0x1D41, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2027e6fb56fSmrg {"Everex NC1501/NC1503", VIA_P4M900, 0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2037e6fb56fSmrg {"Clevo M660SE", VIA_P4M900, 0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2047e6fb56fSmrg {"Clevo M660SR", VIA_P4M900, 0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2057e6fb56fSmrg {"Neo Endura 540SLe", VIA_P4M900, 0x1558, 0x5408, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2067e6fb56fSmrg {"Clevo M54xSR", VIA_P4M900, 0x1558, 0x5409, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2077e6fb56fSmrg {"Biostar P4M900M-M7 SE", VIA_P4M900, 0x1565, 0x1207, VIA_DEVICE_CRT}, 20890b17f1bSmrg {"Biostar Viotech 3100+", VIA_P4M900, 0x1565, 0x1209, VIA_DEVICE_CRT}, 2097e6fb56fSmrg {"Fujitsu/Siemens Amilo Pro V3515", VIA_P4M900, 0x1734, 0x10CB, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2107e6fb56fSmrg {"Fujitsu/Siemens Amilo Li1705", VIA_P4M900, 0x1734, 0x10F7, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2117e6fb56fSmrg {"ASRock P4VM900-SATA2", VIA_P4M900, 0x1849, 0x3371, VIA_DEVICE_CRT}, 2127e6fb56fSmrg 2137e6fb56fSmrg /*** CX700 ***/ 2147e6fb56fSmrg {"VIA VT8454B", VIA_CX700, 0x0908, 0x1975, VIA_DEVICE_CRT}, /* Evaluation board, reference possibly wrong */ 2157e6fb56fSmrg {"VIA VT3324 (CX700)", VIA_CX700, 0x1106, 0x3157, VIA_DEVICE_CRT}, 2167e6fb56fSmrg {"MSI Fuzzy CX700/CX700D", VIA_CX700, 0x1462, 0x8020, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, 2177e6fb56fSmrg {"Samsung Q1B", VIA_CX700, 0x144D, 0xC02C, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2187e6fb56fSmrg {"FIC CE260", VIA_CX700, 0x1509, 0x2D30, VIA_DEVICE_LCD}, 2197e6fb56fSmrg {"FIC CE261", VIA_CX700, 0x1509, 0x2F07, VIA_DEVICE_LCD}, 2207e6fb56fSmrg {"Gigabyte M704 / RoverPC A700GQ", VIA_CX700, 0x161F, 0x2060, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2217e6fb56fSmrg {"Packard Bell EasyNote XS", VIA_CX700, 0x1631, 0xC201, VIA_DEVICE_LCD}, /* aka Everex Cloudbook CE1200V */ 2227e6fb56fSmrg 2237e6fb56fSmrg /*** P4M890, VN890 ***/ 2247e6fb56fSmrg {"PCChips P29G", VIA_P4M890, 0x1019, 0x1629, VIA_DEVICE_CRT}, 2257e6fb56fSmrg {"ECS P4M890T-M v2.0", VIA_P4M890, 0x1019, 0x2171, VIA_DEVICE_CRT}, 2267e6fb56fSmrg {"PCChips ????", VIA_P4M890, 0x1019, 0x2174, VIA_DEVICE_CRT}, 2277e6fb56fSmrg {"Asustek P5V-VM ULTRA", VIA_P4M890, 0x1043, 0x81B5, VIA_DEVICE_CRT}, 2287e6fb56fSmrg {"Asustek P5V-VM DH", VIA_P4M890, 0x1043, 0x81CE, VIA_DEVICE_CRT}, 2297e6fb56fSmrg {"Mitac 8615", VIA_P4M890, 0x1071, 0x8615, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2307e6fb56fSmrg {"Mitac 8624 (Joybook R41E)", VIA_P4M890, 0x1071, 0x8624, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2317e6fb56fSmrg {"VIA VT3343 (P4M890)", VIA_P4M890, 0x1106, 0x3343, VIA_DEVICE_CRT}, 2327e6fb56fSmrg {"MSI P4M890M-L/IL (MS-7255)", VIA_P4M890, 0x1462, 0x7255, VIA_DEVICE_CRT}, 2337e6fb56fSmrg {"Biostar P4M890-M7 TE", VIA_P4M890, 0x1565, 0x1207, VIA_DEVICE_CRT}, 2347e6fb56fSmrg {"ASRock P4VM890", VIA_P4M890, 0x1849, 0x3343, VIA_DEVICE_CRT}, 2357e6fb56fSmrg 2367e6fb56fSmrg /*** VX800 ***/ 2377e6fb56fSmrg {"VIA Epia M700", VIA_VX800, 0x1106, 0x1122, VIA_DEVICE_CRT}, 23890b17f1bSmrg {"Siragon ML-6200", VIA_VX800, 0x1106, 0x2211, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 23990b17f1bSmrg {"Guillemot-Hercules ECafe EC900B", VIA_VX800, 0x1106, 0x3349, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2407e6fb56fSmrg {"VIA OpenBook", VIA_VX800, 0x1170, 0x0311, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* VIA OpenBook eNote VBE8910 */ 2417e6fb56fSmrg {"Samsung NC20", VIA_VX800, 0x144d, 0xc04e, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 24290b17f1bSmrg {"FIC CE2A1", VIA_VX800, 0x1509, 0x3002, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2437e6fb56fSmrg {"Quanta DreamBook Light IL1", VIA_VX800, 0x152d, 0x0771, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 2447e6fb56fSmrg {"Lenovo S12", VIA_VX800, 0x17aa, 0x388c, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, 24590b17f1bSmrg {"Fujitsu Futro S100", VIA_VX800, 0xA0A0, 0x0702, VIA_DEVICE_CRT}, 2467e6fb56fSmrg 2477e6fb56fSmrg /*** VX855 ***/ 24890b17f1bSmrg {"Dell Optiplex FX130", VIA_VX855, 0x1028, 0x0509, VIA_DEVICE_CRT}, 2497e6fb56fSmrg {"VIA VT8562C", VIA_VX855, 0x1106, 0x5122, VIA_DEVICE_CRT}, 25090b17f1bSmrg {"OLPC XO 1.5", VIA_VX855, 0x152D, 0x0833, VIA_DEVICE_LCD}, 25190b17f1bSmrg 25290b17f1bSmrg /*** VX900 ***/ 25390b17f1bSmrg {"Simmtronics SIMM-PC VX900i", VIA_VX900, 0x1019, 0x3126, VIA_DEVICE_CRT}, 25490b17f1bSmrg {"Foxconn L740", VIA_VX900, 0x105B, 0x0CFD, VIA_DEVICE_LCD | VIA_DEVICE_CRT}, 25590b17f1bSmrg {"HP T5550 Thin Client", VIA_VX900, 0x1106, 0x7122, VIA_DEVICE_CRT}, 25690b17f1bSmrg {"Biostar Viotech 3200+", VIA_VX900, 0x1565, 0x120A, VIA_DEVICE_CRT}, 25790b17f1bSmrg {"ASRock PV530", VIA_VX900, 0x1849, 0x7122, VIA_DEVICE_CRT}, 25890b17f1bSmrg {"Fujitsu Futro A300", VIA_VX900, 0xA0A0, 0x080F, VIA_DEVICE_CRT}, 2597e6fb56fSmrg 2607e6fb56fSmrg /* keep this */ 2617e6fb56fSmrg {NULL, VIA_UNKNOWN, 0x0000, 0x0000, VIA_DEVICE_NONE} 2627e6fb56fSmrg}; 2637e6fb56fSmrg 26490b17f1bSmrgstatic void 2657e6fb56fSmrgViaDoubleCheckCLE266Revision(ScrnInfoPtr pScrn) 2667e6fb56fSmrg{ 2677e6fb56fSmrg vgaHWPtr hwp = VGAHWPTR(pScrn); 2687e6fb56fSmrg VIAPtr pVia = VIAPTR(pScrn); 2697e6fb56fSmrg /* Crtc 0x4F is only defined in CLE266Cx */ 2707e6fb56fSmrg CARD8 tmp = hwp->readCrtc(hwp, 0x4F); 27190b17f1bSmrg 2727e6fb56fSmrg hwp->writeCrtc(hwp, 0x4F, 0x55); 2737e6fb56fSmrg if (hwp->readCrtc(hwp, 0x4F) == 0x55) { 27490b17f1bSmrg if (CLE266_REV_IS_AX(pVia->ChipRev)) 27590b17f1bSmrg xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "CLE266 Revision seems" 27690b17f1bSmrg " to be Cx, yet %d was detected previously.\n", 27790b17f1bSmrg pVia->ChipRev); 2787e6fb56fSmrg } else { 27990b17f1bSmrg if (CLE266_REV_IS_CX(pVia->ChipRev)) 28090b17f1bSmrg xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "CLE266 Revision seems" 28190b17f1bSmrg " to be Ax, yet %d was detected previously.\n", 28290b17f1bSmrg pVia->ChipRev); 2837e6fb56fSmrg } 2847e6fb56fSmrg hwp->writeCrtc(hwp, 0x4F, tmp); 2857e6fb56fSmrg} 2867e6fb56fSmrg 2877e6fb56fSmrgvoid 2887e6fb56fSmrgViaCheckCardId(ScrnInfoPtr pScrn) 2897e6fb56fSmrg{ 2907e6fb56fSmrg struct ViaCardIdStruct *Id; 2917e6fb56fSmrg VIAPtr pVia = VIAPTR(pScrn); 29290b17f1bSmrg 2937e6fb56fSmrg if ((SUBVENDOR_ID(pVia->PciInfo) == VENDOR_ID(pVia->PciInfo)) && 29490b17f1bSmrg (SUBSYS_ID(pVia->PciInfo) == DEVICE_ID(pVia->PciInfo))) 2957e6fb56fSmrg xf86DrvMsg(pScrn->scrnIndex, X_WARNING, 2967e6fb56fSmrg "Manufacturer plainly copied main PCI IDs to subsystem/card IDs.\n"); 2977e6fb56fSmrg 2987e6fb56fSmrg for (Id = ViaCardId; Id->String; Id++) { 29990b17f1bSmrg if ((Id->Chip == pVia->Chipset) && 30090b17f1bSmrg (Id->Vendor == SUBVENDOR_ID(pVia->PciInfo)) && 30190b17f1bSmrg (Id->Device == SUBSYS_ID(pVia->PciInfo))) { 30290b17f1bSmrg xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Detected %s. Card-Ids (%4X|%4X)\n", Id->String, SUBVENDOR_ID(pVia->PciInfo), SUBSYS_ID(pVia->PciInfo)); 30390b17f1bSmrg pVia->ActiveDevice = Id->Outputs; 30490b17f1bSmrg pVia->Id = Id; 30590b17f1bSmrg return; 30690b17f1bSmrg } 3077e6fb56fSmrg } 30890b17f1bSmrg 30990b17f1bSmrg xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 31090b17f1bSmrg "Unknown Card-Ids (%4X|%4X|%4X), Chipset: %s; please report to openchrome-users@lists.freedesktop.org\n", 3117e6fb56fSmrg DEVICE_ID(pVia->PciInfo), SUBVENDOR_ID(pVia->PciInfo), SUBSYS_ID(pVia->PciInfo), pScrn->chipset); 3127e6fb56fSmrg pVia->Id = NULL; 3137e6fb56fSmrg 31490b17f1bSmrg if (pVia->Chipset == VIA_CLE266) 31590b17f1bSmrg ViaDoubleCheckCLE266Revision(pScrn); 31690b17f1bSmrg} 317