132b578d3Smrg/* 232b578d3Smrg * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org 332b578d3Smrg * 432b578d3Smrg * Permission to use, copy, modify, distribute, and sell this software and its 532b578d3Smrg * documentation for any purpose is hereby granted without fee, provided that 632b578d3Smrg * the above copyright notice appear in all copies and that both that copyright 732b578d3Smrg * notice and this permission notice appear in supporting documentation, and 832b578d3Smrg * that the name of Marc Aurele La France not be used in advertising or 932b578d3Smrg * publicity pertaining to distribution of the software without specific, 1032b578d3Smrg * written prior permission. Marc Aurele La France makes no representations 1132b578d3Smrg * about the suitability of this software for any purpose. It is provided 1232b578d3Smrg * "as-is" without express or implied warranty. 1332b578d3Smrg * 1432b578d3Smrg * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 1532b578d3Smrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO 1632b578d3Smrg * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR 1732b578d3Smrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 1832b578d3Smrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 1932b578d3Smrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 2032b578d3Smrg * PERFORMANCE OF THIS SOFTWARE. 2132b578d3Smrg */ 2232b578d3Smrg 2332b578d3Smrg#ifndef ___ATICHIP_H___ 2432b578d3Smrg#define ___ATICHIP_H___ 1 2532b578d3Smrg 2632b578d3Smrg#include "atipriv.h" 2732b578d3Smrg#include "atiregs.h" 2832b578d3Smrg 2932b578d3Smrg#include <X11/Xmd.h> 3032b578d3Smrg 3132b578d3Smrg/* 3232b578d3Smrg * Chip-related definitions. 3332b578d3Smrg */ 3432b578d3Smrgtypedef enum 3532b578d3Smrg{ 3632b578d3Smrg ATI_CHIP_NONE = 0, 3732b578d3Smrg ATI_CHIP_88800GXC, /* Mach64 */ 3832b578d3Smrg ATI_CHIP_88800GXD, /* Mach64 */ 3932b578d3Smrg ATI_CHIP_88800GXE, /* Mach64 */ 4032b578d3Smrg ATI_CHIP_88800GXF, /* Mach64 */ 4132b578d3Smrg ATI_CHIP_88800GX, /* Mach64 */ 4232b578d3Smrg ATI_CHIP_88800CX, /* Mach64 */ 4332b578d3Smrg ATI_CHIP_264CT, /* Mach64 */ 4432b578d3Smrg ATI_CHIP_264ET, /* Mach64 */ 4532b578d3Smrg ATI_CHIP_264VT, /* Mach64 */ 4632b578d3Smrg ATI_CHIP_264GT, /* Mach64 */ 4732b578d3Smrg ATI_CHIP_264VTB, /* Mach64 */ 4832b578d3Smrg ATI_CHIP_264GTB, /* Mach64 */ 4932b578d3Smrg ATI_CHIP_264VT3, /* Mach64 */ 5032b578d3Smrg ATI_CHIP_264GTDVD, /* Mach64 */ 5132b578d3Smrg ATI_CHIP_264LT, /* Mach64 */ 5232b578d3Smrg ATI_CHIP_264VT4, /* Mach64 */ 5332b578d3Smrg ATI_CHIP_264GT2C, /* Mach64 */ 5432b578d3Smrg ATI_CHIP_264GTPRO, /* Mach64 */ 5532b578d3Smrg ATI_CHIP_264LTPRO, /* Mach64 */ 5632b578d3Smrg ATI_CHIP_264XL, /* Mach64 */ 5732b578d3Smrg ATI_CHIP_MOBILITY, /* Mach64 */ 5832b578d3Smrg ATI_CHIP_Mach64, /* Last among Mach64's */ 5932b578d3Smrg} ATIChipType; 6032b578d3Smrg 6132b578d3Smrg/* 6232b578d3Smrg * Foundry codes for 264xT's. 6332b578d3Smrg */ 6432b578d3Smrgtypedef enum 6532b578d3Smrg{ 6632b578d3Smrg ATI_FOUNDRY_SGS, /* SGS-Thompson */ 6732b578d3Smrg ATI_FOUNDRY_NEC, /* NEC */ 6832b578d3Smrg ATI_FOUNDRY_KSC, /* KSC (?) */ 6932b578d3Smrg ATI_FOUNDRY_UMC, /* United Microelectronics Corporation */ 7032b578d3Smrg ATI_FOUNDRY_TSMC, /* Taiwan Semiconductor Manufacturing Company */ 7132b578d3Smrg ATI_FOUNDRY_5, 7232b578d3Smrg ATI_FOUNDRY_6, 7332b578d3Smrg ATI_FOUNDRY_UMCA /* UMC alternate */ 7432b578d3Smrg} ATIFoundryType; 7532b578d3Smrg 7632b578d3Smrgextern const char *ATIFoundryNames[]; 7732b578d3Smrg 7832b578d3Smrgextern void ATIMach64ChipID(ATIPtr, const CARD16); 7932b578d3Smrg 8032b578d3Smrg#define OldChipID(_1, _0) \ 8132b578d3Smrg (SetBits(_0 - 'A', CHIP_CODE_0) | SetBits(_1 - 'A', CHIP_CODE_1)) 8232b578d3Smrg 8332b578d3Smrg#define NewChipID(_1, _0) \ 8432b578d3Smrg (SetBits(_0, CFG_CHIP_TYPE0) | SetBits(_1, CFG_CHIP_TYPE1)) 8532b578d3Smrg 8632b578d3Smrg#define OldToNewChipID(_ChipID) \ 8732b578d3Smrg (SetBits(GetBits(_ChipID, CHIP_CODE_0) + 'A', CFG_CHIP_TYPE0) | \ 8832b578d3Smrg SetBits(GetBits(_ChipID, CHIP_CODE_1) + 'A', CFG_CHIP_TYPE1)) 8932b578d3Smrg 9032b578d3Smrg#define NewToOldChipID(_ChipID) \ 9132b578d3Smrg (SetBits(GetBits(_ChipID, CFG_CHIP_TYPE0) - 'A', CHIP_CODE_0) | \ 9232b578d3Smrg (SetBits(GetBits(_ChipID, CFG_CHIP_TYPE1) - 'A', CHIP_CODE_1)) 9332b578d3Smrg 9432b578d3Smrg#endif /* ___ATICHIP_H___ */ 95