/* $XConsortium: Probe.h /main/27 1996/10/25 21:19:15 kaleb $ */ /* * (c) Copyright 1993,1994 by David Wexelblat * * 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 * DAVID WEXELBLAT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Except as contained in this notice, the name of David Wexelblat shall not be * used in advertising or otherwise to promote the sale, use or other dealings * in this Software without prior written authorization from David Wexelblat. * */ /* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h,v 3.45.2.25 1999/11/18 15:37:24 hohndel Exp $ */ /* * Includes */ #if defined(__STDC__) && defined(__GNUC__) #define inline __inline__ #endif #ifdef _POSIX_SOURCE #include #endif #include #ifndef MACH386 #include #include #endif /* MACH386 */ #include #if defined(SYSV) || defined(SVR4) || defined(linux) || defined(__QNX__) || defined(__QNXNTO__) # include #if !(defined(__QNX__) && !defined(__QNXNTO__)) # include #endif #else #ifdef _MINIX # include #else # include # define strchr(a,b) index((a),(b)) # define strrchr(a,b) rindex((a),(b)) #endif /* _MINIX */ #endif #include "PCI.h" #ifdef __STDC__ # define CONST const # define __STDCARGS(a) a #else # define CONST # define __STDCARGS(a) () #endif /* * Types */ typedef unsigned char Byte; typedef unsigned short Word; typedef unsigned long Long; typedef int Bool; #define FALSE 0 #define TRUE 1 #ifndef NULL # define NULL (void *)0 #endif typedef struct { Word lo, hi; } Range; typedef Bool (*ProbeFunc) __STDCARGS((int *)); typedef int (*MemCheckFunc) __STDCARGS((int)); typedef void (*SetBank) __STDCARGS((int, int, int)); typedef void (*GetBank) __STDCARGS((int, int *, int *)); typedef struct { int chipset; /* Chipset for bank operations */ SetBank set_bank; /* Set a read/write bank */ GetBank get_bank; /* Get the current bank number */ int bank_size; /* Size of a memory bank */ int max_bank; /* Maximum bank number */ } MemCheck_Descriptor; typedef struct { char *name; /* Chipset vendor/class name */ ProbeFunc f; /* Probe function */ Word *ports; /* List of ports used by probe */ int num_ports; /* Number of ports in list */ Bool bit16; /* Does probe use 16-bit ports? */ Bool uses_bios; /* Does probe read the BIOS? */ Bool check_coproc; /* Check for attached coprocessor */ MemCheckFunc memcheck; /* For doing memory check */ } Chip_Descriptor; /* * Prototypes */ /* OS_xxxx.c */ int OpenVideo __STDCARGS((void)); void CloseVideo __STDCARGS((void)); Byte *MapVGA __STDCARGS((void)); void UnMapVGA __STDCARGS((Byte *)); Byte *MapMem __STDCARGS((unsigned long, unsigned long)); void UnMapMem __STDCARGS((Byte *, unsigned long)); int ReadBIOS __STDCARGS((const unsigned, Byte *, const int)); int EnableIOPorts __STDCARGS((const int, const Word *)); int DisableIOPorts __STDCARGS((const int, const Word *)); void ShortSleep __STDCARGS((const int Delay)); /* Utils.c */ Byte inp __STDCARGS((Word)); Word inpw __STDCARGS((Word)); Long inpl __STDCARGS((Word)); void outp __STDCARGS((Word, Byte)); void outpw __STDCARGS((Word, Word)); void outpl __STDCARGS((Word, Long)); Byte rdinx __STDCARGS((Word, Byte)); void wrinx __STDCARGS((Word, Byte, Byte)); void wrinx2 __STDCARGS((Word, Byte, Word)); void wrinx3 __STDCARGS((Word, Byte, Long)); void wrinx2m __STDCARGS((Word, Byte, Word)); void wrinx3m __STDCARGS((Word, Byte, Long)); void modinx __STDCARGS((Word, Byte, Byte, Byte)); void modreg __STDCARGS((Word, Byte, Byte)); void setinx __STDCARGS((Word, Byte, Byte)); void clrinx __STDCARGS((Word, Byte, Byte)); Bool tstrg __STDCARGS((Word, Byte)); Bool testinx2 __STDCARGS((Word, Byte, Byte)); Bool testinx __STDCARGS((Word, Byte)); void dactopel __STDCARGS((void)); Byte trigdac __STDCARGS((void)); Byte dactocomm __STDCARGS((void)); Byte getdaccomm __STDCARGS((void)); void waitforretrace __STDCARGS((void)); Bool Excluded __STDCARGS((Range *, Chip_Descriptor *, Bool)); int StrCaseCmp __STDCARGS((char *, char *)); unsigned int StrToUL __STDCARGS((const char *)); /* * Ident functions */ int Probe_Mem __STDCARGS((MemCheck_Descriptor)); void Probe_RamDac __STDCARGS((int, int *)); Bool Probe_MDA __STDCARGS((int *)); Bool Probe_Herc __STDCARGS((int *)); Bool Probe_CGA __STDCARGS((int *)); Bool Probe_VGA __STDCARGS((int *)); /* SVGA */ Bool Probe_Tseng __STDCARGS((int *)); Bool Probe_WD __STDCARGS((int *)); Bool Probe_CT __STDCARGS((int *)); Bool Probe_Video7 __STDCARGS((int *)); Bool Probe_Genoa __STDCARGS((int *)); Bool Probe_Trident __STDCARGS((int *)); Bool Probe_SiS __STDCARGS((int *)); Bool Probe_Matrox __STDCARGS((int *)); Bool Probe_Oak __STDCARGS((int *)); Bool Probe_Cirrus __STDCARGS((int *)); Bool Probe_Cirrus54 __STDCARGS((int *)); Bool Probe_Cirrus64 __STDCARGS((int *)); Bool Probe_Ahead __STDCARGS((int *)); Bool Probe_ATI __STDCARGS((int *)); Bool Probe_S3 __STDCARGS((int *)); Bool Probe_AL __STDCARGS((int *)); Bool Probe_Alliance __STDCARGS((int *)); Bool Probe_Yamaha __STDCARGS((int *)); Bool Probe_NCR __STDCARGS((int *)); Bool Probe_MX __STDCARGS((int *)); Bool Probe_Primus __STDCARGS((int *)); Bool Probe_RealTek __STDCARGS((int *)); Bool Probe_Rendition __STDCARGS((int *)); Bool Probe_Compaq __STDCARGS((int *)); Bool Probe_HMC __STDCARGS((int *)); Bool Probe_UMC __STDCARGS((int *)); Bool Probe_Weitek __STDCARGS((int *)); Bool Probe_ARK __STDCARGS((int *)); Bool Probe_SigmaDesigns __STDCARGS((int *)); Bool Probe_Intergraphics __STDCARGS((int *)); Bool Probe_Epson __STDCARGS((int *)); /* CoProc */ Bool Probe_8514 __STDCARGS((int *)); Bool Probe_ATIMach __STDCARGS((int *)); Bool Probe_I128 __STDCARGS((int *)); Bool Probe_GLINT __STDCARGS((int *)); /* * Print functions */ void Print_SVGA_Name __STDCARGS((int)); void Print_Herc_Name __STDCARGS((int)); void Print_RamDac_Name __STDCARGS((int)); void Print_CoProc_Name __STDCARGS((int)); /* * Globals */ extern struct pci_config_reg *pcrp; extern Bool NoPCI; extern Bool PCIProbed; extern char MyName[]; extern Word vgaIOBase; extern Bool Verbose; extern Long Chip_data; extern Byte *Bios_Base; extern Bool AssumeEGA; extern Chip_Descriptor VGA_Descriptor; extern Chip_Descriptor AL_Descriptor; extern Chip_Descriptor Alliance_Descriptor; extern Chip_Descriptor ATI_Descriptor; extern Chip_Descriptor Ahead_Descriptor; extern Chip_Descriptor CT_Descriptor; extern Chip_Descriptor Cirrus_Descriptor; extern Chip_Descriptor Cirrus54_Descriptor; extern Chip_Descriptor Cirrus64_Descriptor; extern Chip_Descriptor Compaq_Descriptor; extern Chip_Descriptor Epson_Descriptor; extern Chip_Descriptor Genoa_Descriptor; extern Chip_Descriptor HMC_Descriptor; extern Chip_Descriptor MX_Descriptor; extern Chip_Descriptor NCR_Descriptor; extern Chip_Descriptor Oak_Descriptor; extern Chip_Descriptor Primus_Descriptor; extern Chip_Descriptor RealTek_Descriptor; extern Chip_Descriptor Rendition_Descriptor; extern Chip_Descriptor S3_Descriptor; extern Chip_Descriptor Trident_Descriptor; extern Chip_Descriptor SiS_Descriptor; extern Chip_Descriptor Matrox_Descriptor; extern Chip_Descriptor Tseng_Descriptor; extern Chip_Descriptor UMC_Descriptor; extern Chip_Descriptor Video7_Descriptor; extern Chip_Descriptor WD_Descriptor; extern Chip_Descriptor Weitek_Descriptor; extern Chip_Descriptor Yamaha_Descriptor; extern Chip_Descriptor ARK_Descriptor; extern Chip_Descriptor SigmaDesigns_Descriptor; extern Chip_Descriptor Intergraphics_Descriptor; extern Chip_Descriptor IBM8514_Descriptor; extern Chip_Descriptor ATIMach_Descriptor; extern Chip_Descriptor I128_Descriptor; extern Chip_Descriptor GLINT_Descriptor; /* * Useful macros */ /* VGA */ #define COPYRIGHT_BASE (0x1E) #define CRTC_IDX (vgaIOBase+0x04) #define CRTC_REG (vgaIOBase+0x05) #define GRC_IDX (0x3CE) #define GRC_REG (0x3CF) #define SEQ_IDX (0x3C4) #define SEQ_REG (0x3C5) #define ATR_IDX (0x3C0) #define ATR_REG_W (0x3C0) #define ATR_REG_R (0x3C1) #define MISC_OUT_W (0x3C2) #define MISC_OUT_R (0x3CC) /* 8514 */ #define CONFIG_STATUS_1 0x12EE #define MISC_OPTIONS 0x36EE #define CHIP_ID 0xFAEE #define SUBSYS_CNTL 0x42E8 #define EXT_CONF_3 0x5EE8 #define ERR_TERM 0x92E8 #define GPCTRL_ENAB 0x4000 #define GPCTRL_RESET 0x8000 #define CHPTEST_NORMAL 0x1000 #define ROM_ADDR_1 0x52EE #define DESTX_DIASTP 0x8EE8 #define READ_SRC_X 0xDAEE #define GP_STAT 0x9AE8 #define GPBUSY 0x0200 /* * RAMDAC Types */ #define DAC_UNKNOWN 0 /* Non-standard, but unknown */ #define DAC_STANDARD 1 /* Standard 8-bit pseudo-color DAC */ #define DAC_ALG1101 2 /* Avance Logic ALG1101 */ #define DAC_SS24 3 /* Diamond SS2410 */ #define DAC_SIERRA15 4 /* Sierra 15-bit HiColor */ #define DAC_SIERRA15_16 5 /* Sierra 15/16-bit HiColor */ #define DAC_SIERRA24 6 /* Sierra 15/16/24-bit DAC */ #define DAC_MUSIC4870 7 /* MUSIC 15/16-bit HiColor DAC */ #define DAC_MUSIC4910 8 /* MUSIC 15/16/24-bit DAC */ #define DAC_ACUMOS 9 /* AcuMos ADAC1 15/16/24-bit DAC */ #define DAC_ATI68830 10 /* ATI 68830 15/16-bit DAC */ #define DAC_ATI68860 11 /* ATI 68860 15/16/24-bit DAC, mux */ #define DAC_ATI68875 12 /* ATI 68875 15/16/24-bit DAC, mux */ #define DAC_ATIMISC24 13 /* ATI Miscellaneous 3'rd party DACs */ #define DAC_CIRRUSA 14 /* Cirrus 5420 8-bit pseudo-color DAC */ #define DAC_CIRRUSB 15 /* Cirrus 542{2,4,6,8} 15/16/24-bit DAC */ #define DAC_CIRRUS24 16 /* Cirrus 15/16/24-bit separate DAC */ #define DAC_ATT490 17 /* AT&T 20C490 15/16/24-bit DAC */ #define DAC_ATT491 18 /* AT&T 20C491 15/16/24-bit DAC w/gamma corr */ #define DAC_ATT492 19 /* AT&T 20C492 15/16/18-bit DAC w/gamma corr */ #define DAC_ATT493 20 /* AT&T 20C493 15/16/18-bit DAC */ #define DAC_ATT497 21 /* AT&T 20C497 8-bit PseudoColor,24-bit wide */ #define DAC_BT485 22 /* BrookTree 485 RAMDAC */ #define DAC_ATT504 23 /* AT&T 20C504 (Bt484 clone, I think) */ #define DAC_ATT505 24 /* AT&T 20C505 (Bt485 clone) */ #define DAC_TVP3020 25 /* TI ViewPoint TVP3020 RAMDAC */ #define DAC_TVP3025 26 /* TI ViewPoint TVP3025 RAMDAC */ #define DAC_EDSUN 27 /* EDSUN CEG DAC */ #define DAC_ATT498 28 /* AT&T 20C498/21C498 15/16/24-bit DAC w/pixel-mux */ #define DAC_ATT22C498 29 /* AT&T 22C498 15/16/24-bit DAC w/pixel-mux */ #define DAC_STG1700 30 /* STG 1700 15/16/24-bit DAC w/pixel-mux */ #define DAC_S3_GENDAC 31 /* S3 86C708 GENDAC 15/16/24-bit DAC w/PLL */ #define DAC_S3_SDAC 32 /* S3 86C716 SDAC 15/16/24 w/pixel-mux w/PLL */ #define DAC_TVP3026 33 /* TI ViewPoint TVP3026 RAMDAC */ #define DAC_IBMRGB524 34 /* IBM RGB524 RAMDAC */ #define DAC_IBMRGB525 35 /* IBM RGB525 RAMDAC */ #define DAC_IBMRGB528 36 /* IBM RGB528 RAMDAC */ #define DAC_STG1703 37 /* STG 1703 15/16/24-bit DAC w/pixel-mux w/dual PLL */ #define DAC_ATT409 38 /* AT&T 20C409 15/16/24-bit DAC */ #define DAC_ATT499 39 /* AT&T 20C499 15/16/24-bit DAC */ #define DAC_TKD8001 40 /* Trident TKD8001 15/16/24-bit DAC */ #define DAC_TGUIDAC 41 /* Trident TGUIDAC 15/16/24-bit DAC */ #define DAC_ATI_INTERNAL 42 /* ATI Mach64 integrated DAC */ #define DAC_MU9C1880 43 /* Music 9C1880 */ #define DAC_IMSG174 44 /* Inmos G-174 */ #define DAC_STG1702 45 /* STG 1702 15/16/24-bit DAC w/pixel-mux */ #define DAC_CH8398 46 /* Chrontel 8398 */ #define DAC_ATT408 47 /* AT&T 20C408 */ #define DAC_TVP3030 48 /* TI ViewPoint TVP3030 RAMDAC */ #define DAC_ET6K 49 /* Built-in 15/16/24-bit ET6000 RAMDAC */ #define DAC_ZOOMDAC 50 /* IC Works w30C516 ZOOMDAC or ATT20C498 */ #define DAC_ALSC_642x 51 /* Alliance ProMotion 642[24] integrated DAC */ #define DAC_ICS5341 52 /* ICS5341 16-bit SDAC-like DAC used on ET4000W32p */ #define DAC_ICS5301 53 /* ICS5301 8-bit GENDAC-like DAC used on ET4000W32 */ #define DAC_MGA1064SG 54 /* Matrox Mystique integrated DAC */ #define DAC_MGAG100 55 /* Matrox G100 integrated DAC */ #define DAC_MGAG200 56 /* Matrox G200 integrated DAC */ #define DAC_SIS 57 /* SiS integrated DAC */ #define DAC_MAX DAC_SIS /* UPDATE THIS! */ #define DAC_6_8_PROGRAM 0x40 /* RAMDAC programmable for 6/8-bit tables */ #define DAC_8BIT 0x80 /* RAMDAC with 8-bit wide lookup tables */ #define DAC_CHIP(x) ((x) & ~(DAC_8BIT|DAC_6_8_PROGRAM)) /* * RAMDAC names */ struct RamDac_Name { CONST char *Short; CONST char *Long; }; extern struct RamDac_Name RamDac_Names[]; /* * Base chipset classes */ #define CHIP_MDA 0 /* Monochrome Display Adapter */ #define CHIP_CGA 1 /* Color Display Adapter */ #define CHIP_EGA 2 /* Enhanced Graphics Adapter */ #define CHIP_PGC 3 /* Professional Graphics Controller */ #define CHIP_VGA 4 /* Video Graphics Array */ #define CHIP_MCGA 5 /* MultiColor Graphics Array */ #define CHIP_COPROC 6 /* Graphics Coprocessor */ /* * Hercules cards */ #define HERC_TYPE(n) (CHIP_MDA | ((n) << 8)) #define CHIP_HERC_STD HERC_TYPE(1) #define CHIP_HERC_PLUS HERC_TYPE(2) #define CHIP_HERC_COL HERC_TYPE(3) /* * SVGA cards */ #define SVGA_TYPE(v,n) (((v) << 16) | ((n) << 8) | CHIP_VGA) #define V_AHEAD 1 #define V_ATI 2 #define V_AL 3 #define V_CT 4 #define V_CIRRUS 5 #define V_COMPAQ 6 #define V_GENOA 7 #define V_HMC 8 #define V_MX 9 #define V_NCR 10 #define V_OAK 11 #define V_PRIMUS 12 #define V_REALTEK 13 #define V_RENDITION 14 #define V_S3 15 #define V_TRIDENT 16 #define V_TSENG 17 #define V_UMC 18 #define V_VIDEO7 19 #define V_WD 20 #define V_WEITEK 21 #define V_YAMAHA 22 #define V_SIS 23 #define V_ARK 24 #define V_ALLIANCE 25 #define V_MATROX 26 #define V_SD 27 #define V_IG 28 #define V_EPSON 29 #define NUM_VENDORS 29 #define CHPS_PER_VENDOR 64 #define CHIP_AHEAD_UNK SVGA_TYPE(V_AHEAD,0) /* Ahead unknown */ #define CHIP_AHEAD_A SVGA_TYPE(V_AHEAD,1) /* Ahead V5000 Version A*/ #define CHIP_AHEAD_B SVGA_TYPE(V_AHEAD,2) /* Ahead V5000 Version B*/ #define CHIP_ARK_UNK SVGA_TYPE(V_ARK,0) /* ARK Logic unknown */ #define CHIP_ARK1000VL SVGA_TYPE(V_ARK,1) /* ARK Logic ARK1000VL */ #define CHIP_ARK1000PV SVGA_TYPE(V_ARK,2) /* ARK Logic ARK1000PV */ #define CHIP_ARK2000PV SVGA_TYPE(V_ARK,3) /* ARK Logic ARK2000PV */ #define CHIP_ARK2000MT SVGA_TYPE(V_ARK,4) /* ARK Logic ARK2000MT */ #define CHIP_ARK2000MI SVGA_TYPE(V_ARK,5) /* ARK Logic ARK2000MI */ #define CHIP_ATI_UNK SVGA_TYPE(V_ATI,0) /* ATI unknown */ #define CHIP_ATI18800 SVGA_TYPE(V_ATI,1) /* ATI 18800 */ #define CHIP_ATI18800_1 SVGA_TYPE(V_ATI,2) /* ATI 18800-1 */ #define CHIP_ATI28800_2 SVGA_TYPE(V_ATI,3) /* ATI 28800-2 */ #define CHIP_ATI28800_4 SVGA_TYPE(V_ATI,4) /* ATI 28800-4 */ #define CHIP_ATI28800_5 SVGA_TYPE(V_ATI,5) /* ATI 28800-5 */ #define CHIP_ATI28800_6 SVGA_TYPE(V_ATI,6) /* ATI 28800-6 */ #define CHIP_ATI68800_3 SVGA_TYPE(V_ATI,7) /* ATI 68800-3 */ #define CHIP_ATI68800_6 SVGA_TYPE(V_ATI,8) /* ATI 68800-6 */ #define CHIP_ATI68800LX SVGA_TYPE(V_ATI,9) /* ATI 68800LX */ #define CHIP_ATI68800AX SVGA_TYPE(V_ATI,10) /* ATI 68800AX */ #define CHIP_ATI88800GXC SVGA_TYPE(V_ATI,11) /* ATI 88800GX-C */ #define CHIP_ATI88800GXD SVGA_TYPE(V_ATI,12) /* ATI 88800GX-D */ #define CHIP_ATI88800GXE SVGA_TYPE(V_ATI,13) /* ATI 88800GX-E */ #define CHIP_ATI88800GXF SVGA_TYPE(V_ATI,14) /* ATI 88800GX-F */ #define CHIP_ATI88800CX SVGA_TYPE(V_ATI,15) /* ATI 88800CX */ #define CHIP_ATI264CT SVGA_TYPE(V_ATI,16) /* ATI 264CT */ #define CHIP_ATI264ET SVGA_TYPE(V_ATI,17) /* ATI 264ET */ #define CHIP_ATI264VT SVGA_TYPE(V_ATI,18) /* ATI 264VT */ #define CHIP_ATI264VTB SVGA_TYPE(V_ATI,19) /* ATI 264VT-B */ #define CHIP_ATI264VT3 SVGA_TYPE(V_ATI,20) /* ATI 264VT3 */ #define CHIP_ATI264VT4 SVGA_TYPE(V_ATI,21) /* ATI 264VT4 */ #define CHIP_ATI264GT SVGA_TYPE(V_ATI,22) /* ATI 264GT */ #define CHIP_ATI264GTB SVGA_TYPE(V_ATI,23) /* ATI 264GT-B */ #define CHIP_ATI264GTDVD SVGA_TYPE(V_ATI,24) /* ATI 264GT-B+DVD */ #define CHIP_ATI264GTIIc SVGA_TYPE(V_ATI,25) /* ATI 264GT-IIc */ #define CHIP_ATI264GT3 SVGA_TYPE(V_ATI,26) /* ATI 264GT3 */ #define CHIP_ATI264LT SVGA_TYPE(V_ATI,27) /* ATI 264LT */ #define CHIP_ATI264LTPRO SVGA_TYPE(V_ATI,28) /* ATI 264LT Pro */ #define CHIP_ATI264XL SVGA_TYPE(V_ATI,29) /* ATI 264XL or XC */ #define CHIP_ATIMOBILITY SVGA_TYPE(V_ATI,30) /* ATI 3D Rage Mobility */ #define CHIP_AL_UNKNOWN SVGA_TYPE(V_AL,0) /* Avance Logic unknown */ #define CHIP_AL2101 SVGA_TYPE(V_AL,1) /* Avance Logic 2101 */ #define CHIP_AL2228 SVGA_TYPE(V_AL,2) /* Avance Logic 2228 */ #define CHIP_ALSC_UNK SVGA_TYPE(V_ALLIANCE,0) /* Alliance unknown */ #define CHIP_ALSC6410 SVGA_TYPE(V_ALLIANCE,1) /* Alliance PM6410 */ #define CHIP_ALSC6422 SVGA_TYPE(V_ALLIANCE,2) /* Alliance PM6422 */ #define CHIP_ALSCAT24 SVGA_TYPE(V_ALLIANCE,3) /* Alliance AT24 */ #define CHIP_ALSCAT3D SVGA_TYPE(V_ALLIANCE,4) /* Alliance AT3D */ #define CHIP_CT_UNKNOWN SVGA_TYPE(V_CT,0) /* C&T unknown */ #define CHIP_CT450 SVGA_TYPE(V_CT,1) /* C&T 82c450 */ #define CHIP_CT451 SVGA_TYPE(V_CT,2) /* C&T 82c451 */ #define CHIP_CT452 SVGA_TYPE(V_CT,3) /* C&T 82c452 */ #define CHIP_CT453 SVGA_TYPE(V_CT,4) /* C&T 82c453 */ #define CHIP_CT455 SVGA_TYPE(V_CT,5) /* C&T 82c455 */ #define CHIP_CT456 SVGA_TYPE(V_CT,6) /* C&T 82c456 */ #define CHIP_CT457 SVGA_TYPE(V_CT,7) /* C&T 82c457 */ #define CHIP_CTF65510 SVGA_TYPE(V_CT,8) /* C&T F65510 */ #define CHIP_CTF65520 SVGA_TYPE(V_CT,9) /* C&T F65520 */ #define CHIP_CTF65530 SVGA_TYPE(V_CT,10) /* C&T F65530 */ #define CHIP_CTF65540 SVGA_TYPE(V_CT,11) /* C&T F65540 */ #define CHIP_CTF65545 SVGA_TYPE(V_CT,12) /* C&T F65545 */ #define CHIP_CTF65548 SVGA_TYPE(V_CT,13) /* C&T F65548 */ #define CHIP_CTF65546 SVGA_TYPE(V_CT,14) /* C&T F65546 */ #define CHIP_CTF65550 SVGA_TYPE(V_CT,15) /* C&T F65550 */ #define CHIP_CTF65554 SVGA_TYPE(V_CT,16) /* C&T F65554 */ #define CHIP_CTF65555 SVGA_TYPE(V_CT,17) /* C&T F65555 */ #define CHIP_CTF68554 SVGA_TYPE(V_CT,18) /* C&T F68554 */ #define CHIP_CTF69000 SVGA_TYPE(V_CT,19) /* C&T F69000 */ #define CHIP_CTF69030 SVGA_TYPE(V_CT,20) /* C&T F69030 */ #define CHIP_CTF64200 SVGA_TYPE(V_CT,21) /* C&T F64200 WinGine */ #define CHIP_CTF64300 SVGA_TYPE(V_CT,22) /* C&T F64300 WinGine */ #define CHIP_CL_UNKNOWN SVGA_TYPE(V_CIRRUS,0) /* Cirrus unknown */ #define CHIP_CL510 SVGA_TYPE(V_CIRRUS,1) /* Cirrus CL-GD 510/520 */ #define CHIP_CL610 SVGA_TYPE(V_CIRRUS,2) /* Cirrus CL-GD 610/620 */ #define CHIP_CLV7 SVGA_TYPE(V_CIRRUS,3) /* Cirrus Video 7 OEM */ #define CHIP_CLAVGA2 SVGA_TYPE(V_CIRRUS,4) /* Cirrus/AcuMos AVGA2 */ #define CHIP_CL5402 SVGA_TYPE(V_CIRRUS,5) /* Cirrus 5402 */ #define CHIP_CL5402R1 SVGA_TYPE(V_CIRRUS,6) /* Cirrus 5402 rev 1 */ #define CHIP_CL5420 SVGA_TYPE(V_CIRRUS,7) /* Cirrus 5420 */ #define CHIP_CL5420R1 SVGA_TYPE(V_CIRRUS,8) /* Cirrus 5420 rev 1 */ #define CHIP_CL5422 SVGA_TYPE(V_CIRRUS,9) /* Cirrus 5422 */ #define CHIP_CL5424 SVGA_TYPE(V_CIRRUS,10) /* Cirrus 5424 */ #define CHIP_CL5426 SVGA_TYPE(V_CIRRUS,11) /* Cirrus 5426 */ #define CHIP_CL5428 SVGA_TYPE(V_CIRRUS,12) /* Cirrus 5428 */ #define CHIP_CL5429 SVGA_TYPE(V_CIRRUS,13) /* Cirrus 5429 */ #define CHIP_CL5430 SVGA_TYPE(V_CIRRUS,14) /* Cirrus 5430 */ #define CHIP_CL5434 SVGA_TYPE(V_CIRRUS,15) /* Cirrus 5434 */ #define CHIP_CL6205 SVGA_TYPE(V_CIRRUS,16) /* Cirrus 6205 */ #define CHIP_CL6215 SVGA_TYPE(V_CIRRUS,17) /* Cirrus 6215 */ #define CHIP_CL6225 SVGA_TYPE(V_CIRRUS,18) /* Cirrus 6225 */ #define CHIP_CL6235 SVGA_TYPE(V_CIRRUS,19) /* Cirrus 6235 */ #define CHIP_CL5410 SVGA_TYPE(V_CIRRUS,20) /* Cirrus 6510 */ #define CHIP_CL6410 SVGA_TYPE(V_CIRRUS,21) /* Cirrus 6410 */ #define CHIP_CL6412 SVGA_TYPE(V_CIRRUS,22) /* Cirrus 6412 */ #define CHIP_CL6420A SVGA_TYPE(V_CIRRUS,23) /* Cirrus 6420A */ #define CHIP_CL6420B SVGA_TYPE(V_CIRRUS,24) /* Cirrus 6420B */ #define CHIP_CL6440 SVGA_TYPE(V_CIRRUS,25) /* Cirrus 6440 */ #define CHIP_CL5436 SVGA_TYPE(V_CIRRUS,26) /* Cirrus 5436 */ #define CHIP_CL7541 SVGA_TYPE(V_CIRRUS,27) /* Cirrus 7541 */ #define CHIP_CL7542 SVGA_TYPE(V_CIRRUS,28) /* Cirrus 7542 */ #define CHIP_CL7543 SVGA_TYPE(V_CIRRUS,29) /* Cirrus 7543 */ #define CHIP_CL5446 SVGA_TYPE(V_CIRRUS,30) /* Cirrus 5446 */ #define CHIP_CL5462 SVGA_TYPE(V_CIRRUS,31) /* Cirrus 5462 */ #define CHIP_CL7548 SVGA_TYPE(V_CIRRUS,32) /* Cirrus 7548 */ #define CHIP_CL5464 SVGA_TYPE(V_CIRRUS,33) /* Cirrus 5464 */ #define CHIP_CL5480 SVGA_TYPE(V_CIRRUS,34) /* Cirrus 5480 */ #define CHIP_CL5465 SVGA_TYPE(V_CIRRUS,35) /* Cirrus 5465 */ #define CHIP_CPQ_UNK SVGA_TYPE(V_COMPAQ,0) /* Compaq unknown */ #define CHIP_CPQ_IVGS SVGA_TYPE(V_COMPAQ,1) /* Compaq Int Vid Gr Sys*/ #define CHIP_CPQ_AVGA SVGA_TYPE(V_COMPAQ,2) /* Compaq Advanced VGA */ #define CHIP_CPQ_Q1024 SVGA_TYPE(V_COMPAQ,3) /* Compaq QVision/1024 */ #define CHIP_CPQ_Q1280 SVGA_TYPE(V_COMPAQ,4) /* Compaq QVision/1280 */ #define CHIP_CPQ_AVGA_P SVGA_TYPE(V_COMPAQ,5) /* Compaq AVGA Portable */ #define CHIP_G_6100 SVGA_TYPE(V_GENOA,0) /* Genoa GVGA 6100 */ #define CHIP_G_6200 SVGA_TYPE(V_GENOA,1) /* Genoa GVGA 6200 */ #define CHIP_G_6400 SVGA_TYPE(V_GENOA,2) /* Genoa GVGA 6400 */ #define CHIP_HM86304 SVGA_TYPE(V_HMC,0) /* HMC HM86304 */ #define CHIP_MX68000 SVGA_TYPE(V_MX,0) /* MX 68000 */ #define CHIP_MX68010 SVGA_TYPE(V_MX,1) /* MX 68010 */ #define CHIP_NCR_UNK SVGA_TYPE(V_NCR,0) /* NCR unknown */ #define CHIP_NCR77C21 SVGA_TYPE(V_NCR,1) /* NCR 77C21 */ #define CHIP_NCR77C22 SVGA_TYPE(V_NCR,2) /* NCR 77C22 */ #define CHIP_NCR77C22E SVGA_TYPE(V_NCR,3) /* NCR 77C22E */ #define CHIP_NCR77C22EP SVGA_TYPE(V_NCR,4) /* NCR 77C22E+ */ #define CHIP_NCR77C32B SVGA_TYPE(V_NCR,5) /* NCR 77C32BLT */ #define CHIP_OAK_UNK SVGA_TYPE(V_OAK,0) /* OAK unknown */ #define CHIP_OAK037C SVGA_TYPE(V_OAK,1) /* OAK OTI037C */ #define CHIP_OAK057 SVGA_TYPE(V_OAK,2) /* OAK OTI-057 */ #define CHIP_OAK067 SVGA_TYPE(V_OAK,3) /* OAK OTI-067 */ #define CHIP_OAK077 SVGA_TYPE(V_OAK,4) /* OAK OTI-077 */ #define CHIP_OAK083 SVGA_TYPE(V_OAK,5) /* OAK OTI-083 */ #define CHIP_OAK087 SVGA_TYPE(V_OAK,6) /* OAK OTI-087 */ #define CHIP_P2000 SVGA_TYPE(V_PRIMUS,0) /* Primus P2000 */ #define CHIP_RT_UNK SVGA_TYPE(V_REALTEK,0) /* Realtek unknown */ #define CHIP_RT_3103 SVGA_TYPE(V_REALTEK,1) /* Realtek RT3103 */ #define CHIP_RT_3105 SVGA_TYPE(V_REALTEK,2) /* Realtek RT3105 */ #define CHIP_RT_3106 SVGA_TYPE(V_REALTEK,3) /* Realtek RT3106 */ #define CHIP_REND_V1000 SVGA_TYPE(V_RENDITION,1)/* Rendtion V1000 */ #define CHIP_REND_V2000 SVGA_TYPE(V_RENDITION,2)/* Rendtion V2000 */ #define CHIP_S3_UNKNOWN SVGA_TYPE(V_S3,0) /* S3 unknown */ #define CHIP_S3_911 SVGA_TYPE(V_S3,1) /* S3 86c911 */ #define CHIP_S3_924 SVGA_TYPE(V_S3,2) /* S3 86c924 or 911A */ #define CHIP_S3_801B SVGA_TYPE(V_S3,3) /* S3 86c801 A-B step */ #define CHIP_S3_801C SVGA_TYPE(V_S3,4) /* S3 86c801 C step */ #define CHIP_S3_801D SVGA_TYPE(V_S3,5) /* S3 86c801 D step */ #define CHIP_S3_801I SVGA_TYPE(V_S3,6) /* S3 86c801i (?) */ #define CHIP_S3_805B SVGA_TYPE(V_S3,7) /* S3 86c805 A-B step */ #define CHIP_S3_805C SVGA_TYPE(V_S3,8) /* S3 86c805 C step */ #define CHIP_S3_805D SVGA_TYPE(V_S3,9) /* S3 86c805 D step */ #define CHIP_S3_805I SVGA_TYPE(V_S3,10) /* S3 86c805i */ #define CHIP_S3_928D SVGA_TYPE(V_S3,11) /* S3 86c928 A-D step */ #define CHIP_S3_928E SVGA_TYPE(V_S3,12) /* S3 86c928 E-step */ #define CHIP_S3_928P SVGA_TYPE(V_S3,13) /* S3 86c928PCI */ #define CHIP_S3_864 SVGA_TYPE(V_S3,14) /* S3 Vision864 */ #define CHIP_S3_964 SVGA_TYPE(V_S3,15) /* S3 Vision964 */ #define CHIP_S3_866 SVGA_TYPE(V_S3,16) /* S3 Vision866 */ #define CHIP_S3_868 SVGA_TYPE(V_S3,17) /* S3 Vision868 */ #define CHIP_S3_968 SVGA_TYPE(V_S3,18) /* S3 Vision968 */ #define CHIP_S3_Trio32 SVGA_TYPE(V_S3,19) /* S3 Trio32 */ #define CHIP_S3_Trio64 SVGA_TYPE(V_S3,20) /* S3 Trio64 */ #define CHIP_S3_Trio64V SVGA_TYPE(V_S3,21) /* S3 Trio64V+ */ #define CHIP_S3_968_3DLABS_300SX SVGA_TYPE(V_S3,22) /* S3 968 & 3Dlabs 300SX */ #define CHIP_S3_968_3DLABS_UNK SVGA_TYPE(V_S3,23) /* S3 968 & 3Dlabs 300SX */ #define CHIP_S3_ViRGE SVGA_TYPE(V_S3,24) /* S3 ViRGE */ #define CHIP_S3_ViRGE_VX SVGA_TYPE(V_S3,25) /* S3 ViRGE/VX */ #define CHIP_S3_Aurora64VP SVGA_TYPE(V_S3,26) /* S3 Aurora64V+ */ #define CHIP_S3_Trio64UVP SVGA_TYPE(V_S3,27) /* S3 Trio64UV+ */ #define CHIP_S3_Trio64V2_DX SVGA_TYPE(V_S3,28) /* S3 Trio64V2/DX */ #define CHIP_S3_Trio64V2_GX SVGA_TYPE(V_S3,29) /* S3 Trio64V2/GX */ #define CHIP_S3_ViRGE_DX SVGA_TYPE(V_S3,30) /* S3 ViRGE/DX */ #define CHIP_S3_ViRGE_GX SVGA_TYPE(V_S3,31) /* S3 ViRGE/GX */ #define CHIP_S3_PLATO_PX SVGA_TYPE(V_S3,32) /* S3 PLATO/PX */ #define CHIP_S3_ViRGE_GX2 SVGA_TYPE(V_S3,33) /* S3 ViRGE/GX2 */ #define CHIP_S3_ViRGE_MX SVGA_TYPE(V_S3,34) /* S3 ViRGE/MX */ #define CHIP_S3_ViRGE_MXP SVGA_TYPE(V_S3,35) /* S3 ViRGE/MX+ */ #define CHIP_S3_Trio3D_B SVGA_TYPE(V_S3,36) /* S3 Trio3D Business */ #define CHIP_S3_Trio3D SVGA_TYPE(V_S3,37) /* S3 Trio3D */ #define CHIP_S3_Savage3D SVGA_TYPE(V_S3,38) /* S3 Savage3D */ #define CHIP_S3_Savage3D_M SVGA_TYPE(V_S3,39) /* S3 Savage3D Macro */ #define CHIP_S3_Trio3D_2X SVGA_TYPE(V_S3,40) /* S3 Trio3D/2X */ #define CHIP_S3_Savage4 SVGA_TYPE(V_S3,41) /* S3 Savage4 */ #define CHIP_S3_Savage2000 SVGA_TYPE(V_S3,42) /* S3 Savage2000 */ #define CHIP_TVGA_UNK SVGA_TYPE(V_TRIDENT,0) /* Trident unknown */ #define CHIP_TVGA8200 SVGA_TYPE(V_TRIDENT,1) /* Trident LX8200 */ #define CHIP_TVGA8800BR SVGA_TYPE(V_TRIDENT,2) /* Trident 8800BR */ #define CHIP_TVGA8800CS SVGA_TYPE(V_TRIDENT,3) /* Trident 8800CS */ #define CHIP_TVGA8900B SVGA_TYPE(V_TRIDENT,4) /* Trident 8900B */ #define CHIP_TVGA8900C SVGA_TYPE(V_TRIDENT,5) /* Trident 8900C */ #define CHIP_TVGA8900CL SVGA_TYPE(V_TRIDENT,6) /* Trident 8900CL */ #define CHIP_TVGA9000 SVGA_TYPE(V_TRIDENT,7) /* Trident 9000 */ #define CHIP_TVGA9000I SVGA_TYPE(V_TRIDENT,8) /* Trident 9000i */ #define CHIP_TVGA9100B SVGA_TYPE(V_TRIDENT,9) /* Trident LCD9100B */ #define CHIP_TVGA9200CX SVGA_TYPE(V_TRIDENT,10) /* Trident 9200CXr */ #define CHIP_TVGA9320 SVGA_TYPE(V_TRIDENT,11) /* Trident LCD9320 */ #define CHIP_TVGA9400CX SVGA_TYPE(V_TRIDENT,12) /* Trident 9400CXi */ #define CHIP_TVGA9420 SVGA_TYPE(V_TRIDENT,13) /* Trident GUI9420 */ #define CHIP_TVGA9420D SVGA_TYPE(V_TRIDENT,14) /* Trident GUI9420DGi */ #define CHIP_TVGA9440 SVGA_TYPE(V_TRIDENT,15) /* Trident GUI9440AGi */ #define CHIP_TVGA9660 SVGA_TYPE(V_TRIDENT,16) /* Trident GUI9660 */ #define CHIP_TVGA9680 SVGA_TYPE(V_TRIDENT,17) /* Trident GUI9680 */ #define CHIP_TVGA9682 SVGA_TYPE(V_TRIDENT,18) /* Trident GUI9682 */ #define CHIP_TVGA9685 SVGA_TYPE(V_TRIDENT,19) /* Trident GUI9685 */ #define CHIP_TVGA9692 SVGA_TYPE(V_TRIDENT,20) /* Trident GUI9692 */ #define CHIP_TVGA9382 SVGA_TYPE(V_TRIDENT,21) /* Trident Cyber9382 */ #define CHIP_TVGA9385 SVGA_TYPE(V_TRIDENT,22) /* Trident Cyber9385 */ #define CHIP_TVGA9385_1 SVGA_TYPE(V_TRIDENT,23) /* Trident Cyber9385-1 */ #define CHIP_TVGA9388 SVGA_TYPE(V_TRIDENT,24) /* Trident Cyber9388 */ #define CHIP_TVGA9388_1 SVGA_TYPE(V_TRIDENT,25) /* Trident Cyber9388-1 */ #define CHIP_TVGA9397 SVGA_TYPE(V_TRIDENT,26) /* Trident Cyber9397 */ #define CHIP_TVGA9520 SVGA_TYPE(V_TRIDENT,27) /* Trident Cyber9520 */ #define CHIP_TVGA9750 SVGA_TYPE(V_TRIDENT,28) /* Trident 3DImage975 */ #define CHIP_TVGA9850 SVGA_TYPE(V_TRIDENT,29) /* Trident 3DImage985 */ #define CHIP_TVGA939A SVGA_TYPE(V_TRIDENT,30) /* Trident Cyber932A */ #define CHIP_SIS_UNK SVGA_TYPE(V_SIS,0) /* SiS unknown */ #define CHIP_SIS86C201 SVGA_TYPE(V_SIS,1) /* SiS SG86C201 */ #define CHIP_SIS86C202 SVGA_TYPE(V_SIS,2) /* SiS SG86C202 */ #define CHIP_SIS86C205 SVGA_TYPE(V_SIS,3) /* SiS SG86C205 */ #define CHIP_SIS86C215 SVGA_TYPE(V_SIS,4) /* SiS SG86C215 */ #define CHIP_SIS86C225 SVGA_TYPE(V_SIS,5) /* SiS SG86C225 */ #define CHIP_SIS5597 SVGA_TYPE(V_SIS,6) /* SiS 5597/5598 */ #define CHIP_SIS530 SVGA_TYPE(V_SIS,7) /* SiS 530/620 */ #define CHIP_SIS6326 SVGA_TYPE(V_SIS,8) /* SiS 6326 */ #define CHIP_MATROX_UNK SVGA_TYPE(V_MATROX,0) /* Matrox unknown */ #define CHIP_MGA2085PX SVGA_TYPE(V_MATROX,1) /* Matrox Atlas */ #define CHIP_MGA2064W SVGA_TYPE(V_MATROX,2) /* Matrox Millennium */ #define CHIP_MGA1064SG SVGA_TYPE(V_MATROX,3) /* Matrox Mystique */ #define CHIP_MGA2164W SVGA_TYPE(V_MATROX,4) /* Matrox Millennium II */ #define CHIP_MGA2164WAGP SVGA_TYPE(V_MATROX,5) /* Matrox Millennium II AGP */ #define CHIP_MGAG100PCI SVGA_TYPE(V_MATROX,6) /* Matrox G100 PCI */ #define CHIP_MGAG100AGP SVGA_TYPE(V_MATROX,7) /* Matrox G100 AGP */ #define CHIP_MGAG200PCI SVGA_TYPE(V_MATROX,8) /* Matrox G200 PCI */ #define CHIP_MGAG200AGP SVGA_TYPE(V_MATROX,9) /* Matrox G200 AGP */ #define CHIP_TSENG_UNK SVGA_TYPE(V_TSENG,0) /* Tseng unknown */ #define CHIP_ET3000 SVGA_TYPE(V_TSENG,1) /* Tseng ET3000 */ #define CHIP_ET4000 SVGA_TYPE(V_TSENG,2) /* Tseng ET4000 */ #define CHIP_ET4000W32 SVGA_TYPE(V_TSENG,3) /* Tseng ET4000/W32 */ #define CHIP_ET4000W32I SVGA_TYPE(V_TSENG,4) /* Tseng ET4000/W32i */ #define CHIP_ET4KW32P_A SVGA_TYPE(V_TSENG,5) /* Tseng ET4000/W32p rA */ #define CHIP_ET4KW32I_B SVGA_TYPE(V_TSENG,6) /* Tseng ET4000/W32i rB */ #define CHIP_ET4KW32I_C SVGA_TYPE(V_TSENG,7) /* Tseng ET4000/W32i rC */ #define CHIP_ET4KW32P_B SVGA_TYPE(V_TSENG,8) /* Tseng ET4000/W32p rB */ #define CHIP_ET4KW32P_C SVGA_TYPE(V_TSENG,9) /* Tseng ET4000/W32p rC */ #define CHIP_ET4KW32P_D SVGA_TYPE(V_TSENG,10) /* Tseng ET4000/W32p rD */ #define CHIP_ET6K SVGA_TYPE(V_TSENG,11) /* Tseng ET6000 */ #define CHIP_ET6K1 SVGA_TYPE(V_TSENG,12) /* Tseng ET6100 */ #define CHIP_ET6K3 SVGA_TYPE(V_TSENG,13) /* Tseng ET6300 */ #define CHIP_UMC_408 SVGA_TYPE(V_UMC,0) /* UMC 85c408 */ #define CHIP_V7_UNKNOWN SVGA_TYPE(V_VIDEO7,0) /* Video7 unknown */ #define CHIP_V7_FWRITE SVGA_TYPE(V_VIDEO7,1) /* Video7 Fastwrite/VRAM*/ #define CHIP_V7_1024i SVGA_TYPE(V_VIDEO7,2) /* Video7 1024i */ #define CHIP_V7_VRAM2_B SVGA_TYPE(V_VIDEO7,3) /* Video7 VRAM II (B) */ #define CHIP_V7_VRAM2_C SVGA_TYPE(V_VIDEO7,4) /* Video7 VRAM II (C,D) */ #define CHIP_HT216BC SVGA_TYPE(V_VIDEO7,5) /* Video7 HT216B,C */ #define CHIP_HT216D SVGA_TYPE(V_VIDEO7,6) /* Video7 HT216D */ #define CHIP_HT216E SVGA_TYPE(V_VIDEO7,7) /* Video7 HT216E */ #define CHIP_HT216F SVGA_TYPE(V_VIDEO7,8) /* Video7 HT216F */ #define CHIP_V7_VEGA SVGA_TYPE(V_VIDEO7,9) /* Video7 VEGA */ #define CHIP_WD_UNK SVGA_TYPE(V_WD,0) /* WD unknown */ #define CHIP_WD_PVGA1 SVGA_TYPE(V_WD,1) /* WD PVGA1 */ #define CHIP_WD_90C00 SVGA_TYPE(V_WD,2) /* WD 90C00 */ #define CHIP_WD_90C10 SVGA_TYPE(V_WD,3) /* WD 90C10 */ #define CHIP_WD_90C11 SVGA_TYPE(V_WD,4) /* WD 90C11 */ #define CHIP_WD_90C20 SVGA_TYPE(V_WD,5) /* WD 90C20 */ #define CHIP_WD_90C20A SVGA_TYPE(V_WD,6) /* WD 90C20A */ #define CHIP_WD_90C22 SVGA_TYPE(V_WD,7) /* WD 90C22 */ #define CHIP_WD_90C24 SVGA_TYPE(V_WD,8) /* WD 90C24 */ #define CHIP_WD_90C26 SVGA_TYPE(V_WD,9) /* WD 90C26 */ #define CHIP_WD_90C27 SVGA_TYPE(V_WD,10) /* WD 90C27 (guess) */ #define CHIP_WD_90C30 SVGA_TYPE(V_WD,11) /* WD 90C30 */ #define CHIP_WD_90C31 SVGA_TYPE(V_WD,12) /* WD 90C31 */ #define CHIP_WD_90C33 SVGA_TYPE(V_WD,13) /* WD 90C33 */ #define CHIP_WEIT_UNK SVGA_TYPE(V_WEITEK,0) /* Weitek unknown */ #define CHIP_WEIT_5086 SVGA_TYPE(V_WEITEK,1) /* Weitek 5086 */ #define CHIP_WEIT_5186 SVGA_TYPE(V_WEITEK,2) /* Weitek 5186 */ #define CHIP_WEIT_5286 SVGA_TYPE(V_WEITEK,3) /* Weitek 5286 */ #define CHIP_YAMAHA6388 SVGA_TYPE(V_YAMAHA,0) /* Yamaha 6388 VPDC */ #define CHIP_SD_RM_UNK SVGA_TYPE(V_SD,0) /* Sigma Desigs unknown */ #define CHIP_SD_RM64GX SVGA_TYPE(V_SD,1) /* Sigma Desigs SD6425 */ #define CHIP_IG_UNK SVGA_TYPE(V_IG,0) /* Intergraphics unknown */ #define CHIP_IG_1680 SVGA_TYPE(V_IG,1) /* Intergraphics IGA-1680 */ #define CHIP_IG_1682 SVGA_TYPE(V_IG,2) /* Intergraphics IGA-1682 */ #define CHIP_EPSON_8110 SVGA_TYPE(V_EPSON,0) /* Epson SPC8110 */ /* * Graphics Coprocessors */ #define COPROC_TYPE(c,n) (((c) << 16) | ((n) << 8) | CHIP_COPROC) #define C_8514 0 #define C_XGA 1 #define C_MACH64 2 #define C_I128 3 #define C_GLINT 4 #define NUM_CP_TYPES 5 #define CHPS_PER_CPTYPE 8 #define CHIP_8514 COPROC_TYPE(C_8514,0) /* 8514/A or true clone */ #define CHIP_MACH8 COPROC_TYPE(C_8514,1) /* ATI Mach8 */ #define CHIP_MACH32 COPROC_TYPE(C_8514,2) /* ATI Mach32 */ #define CHIP_CT480 COPROC_TYPE(C_8514,3) /* C&T 82c480 */ #define CHIP_MACH64 COPROC_TYPE(C_MACH64,0) /* ATI Mach64 */ #define CHIP_I128 COPROC_TYPE(C_I128,0) /* Number9 Imagine I128 */ #define CHIP_300SX COPROC_TYPE(C_GLINT,1) /* 3DLabs GLINT 300SX */ #define CHIP_500TX COPROC_TYPE(C_GLINT,2) /* 3DLabs GLINT 500TX */ #define CHIP_DELTA COPROC_TYPE(C_GLINT,4) /* 3DLabs GLINT DELTA */ /* * Useful macros */ #define IS_MDA(c) ((c) == CHIP_MDA) #define IS_HERC(c) ((((c) & 0xFF) == CHIP_MDA) && ((c) != CHIP_MDA)) #define HERC_CHIP(c) (((c) >> 8) & 0xFF) #define IS_CGA(c) ((c) == CHIP_CGA) #define IS_EGA(c) ((c) == CHIP_EGA) #define IS_PGC(c) ((c) == CHIP_PGC) #define IS_VGA(c) ((c) == CHIP_VGA) #define IS_SVGA(c) ((((c) & 0xFF) == CHIP_VGA) && ((c) != CHIP_VGA)) #define SVGA_VENDOR(c) (((c) >> 16) & 0xFF) #define SVGA_CHIP(c) (((c) >> 8) & 0xFF) #define IS_MCGA(c) ((c) == CHIP_MCGA) #define IS_COPROC(c) (((c) & 0xFF) == CHIP_COPROC) #define COPROC_CLASS(c) (((c) >> 16) & 0xFF) #define COPROC_CHIP(c) (((c) >> 8) & 0xFF)