summaryrefslogtreecommitdiff
path: root/src/atichip.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/atichip.h')
-rw-r--r--src/atichip.h163
1 files changed, 163 insertions, 0 deletions
diff --git a/src/atichip.h b/src/atichip.h
new file mode 100644
index 0000000..f0d6827
--- /dev/null
+++ b/src/atichip.h
@@ -0,0 +1,163 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h,v 1.26tsi Exp $ */
+/*
+ * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of Marc Aurele La France not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. Marc Aurele La France makes no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as-is" without express or implied warranty.
+ *
+ * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+ * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef ___ATICHIP_H___
+#define ___ATICHIP_H___ 1
+
+#include "atipriv.h"
+#include "atiregs.h"
+
+#include <X11/Xmd.h>
+
+/*
+ * Chip-related definitions.
+ */
+typedef enum
+{
+ ATI_CHIP_NONE = 0,
+
+#ifndef AVOID_CPIO
+
+ ATI_CHIP_VGA, /* Generic VGA */
+ ATI_CHIP_18800,
+ ATI_CHIP_18800_1,
+ ATI_CHIP_28800_2,
+ ATI_CHIP_28800_4,
+ ATI_CHIP_28800_5,
+ ATI_CHIP_28800_6,
+ ATI_CHIP_8514A, /* 8514/A */
+ ATI_CHIP_CT480, /* 8514/A clone */
+ ATI_CHIP_38800_1, /* Mach8 */
+ ATI_CHIP_68800, /* Mach32 */
+ ATI_CHIP_68800_3, /* Mach32 */
+ ATI_CHIP_68800_6, /* Mach32 */
+ ATI_CHIP_68800LX, /* Mach32 */
+ ATI_CHIP_68800AX, /* Mach32 */
+
+#endif /* AVOID_CPIO */
+
+ ATI_CHIP_88800GXC, /* Mach64 */
+ ATI_CHIP_88800GXD, /* Mach64 */
+ ATI_CHIP_88800GXE, /* Mach64 */
+ ATI_CHIP_88800GXF, /* Mach64 */
+ ATI_CHIP_88800GX, /* Mach64 */
+ ATI_CHIP_88800CX, /* Mach64 */
+ ATI_CHIP_264CT, /* Mach64 */
+ ATI_CHIP_264ET, /* Mach64 */
+ ATI_CHIP_264VT, /* Mach64 */
+ ATI_CHIP_264GT, /* Mach64 */
+ ATI_CHIP_264VTB, /* Mach64 */
+ ATI_CHIP_264GTB, /* Mach64 */
+ ATI_CHIP_264VT3, /* Mach64 */
+ ATI_CHIP_264GTDVD, /* Mach64 */
+ ATI_CHIP_264LT, /* Mach64 */
+ ATI_CHIP_264VT4, /* Mach64 */
+ ATI_CHIP_264GT2C, /* Mach64 */
+ ATI_CHIP_264GTPRO, /* Mach64 */
+ ATI_CHIP_264LTPRO, /* Mach64 */
+ ATI_CHIP_264XL, /* Mach64 */
+ ATI_CHIP_MOBILITY, /* Mach64 */
+ ATI_CHIP_Mach64, /* Last among Mach64's */
+ ATI_CHIP_RAGE128GL, /* Rage128 */
+ ATI_CHIP_RAGE128VR, /* Rage128 */
+ ATI_CHIP_RAGE128PROGL, /* Rage128 */
+ ATI_CHIP_RAGE128PROVR, /* Rage128 */
+ ATI_CHIP_RAGE128PROULTRA, /* Rage128 */
+ ATI_CHIP_RAGE128MOBILITY3, /* Rage128 */
+ ATI_CHIP_RAGE128MOBILITY4, /* Rage128 */
+ ATI_CHIP_Rage128, /* Last among Rage128's */
+ ATI_CHIP_RADEON, /* Radeon */
+ ATI_CHIP_RADEONVE, /* Radeon VE */
+ ATI_CHIP_RADEONMOBILITY6, /* Radeon M6 */
+ ATI_CHIP_RS100, /* IGP320 */
+ ATI_CHIP_RS200, /* IGP340 */
+ ATI_CHIP_RS250, /* Radoen 7000 IGP */
+ ATI_CHIP_RV200, /* RV200 */
+ ATI_CHIP_RADEONMOBILITY7, /* Radeon M7 */
+ ATI_CHIP_R200, /* R200 */
+ ATI_CHIP_RV250, /* RV250 */
+ ATI_CHIP_RADEONMOBILITY9, /* Radeon M9 */
+ ATI_CHIP_RS300, /* Radoen 9100 IGP */
+ ATI_CHIP_RS350, /* Radoen 9200 IGP */
+ ATI_CHIP_RV280, /* RV250 */
+ ATI_CHIP_RADEONMOBILITY9PLUS, /* Radeon M9+ */
+ ATI_CHIP_R300, /* R300 */
+ ATI_CHIP_RV350, /* RV350/M10/M11 */
+ ATI_CHIP_R350, /* R350 */
+ ATI_CHIP_R360, /* R360 */
+ ATI_CHIP_RV370, /* RV370/M22 */
+ ATI_CHIP_RV380, /* RV380/M24 */
+ ATI_CHIP_R420, /* R420/M18 */
+ ATI_CHIP_R423, /* R423/M28? */
+ ATI_CHIP_R430, /* R430 */
+ ATI_CHIP_R480, /* R480/M28? */
+ ATI_CHIP_R481, /* R481 */
+ ATI_CHIP_RV410, /* RV410, M26 */
+ ATI_CHIP_RS400, /* RS400, RS410, RS480, RS482, ... */
+ ATI_CHIP_Radeon, /* Last among Radeon's */
+ ATI_CHIP_HDTV /* HDTV */
+} ATIChipType;
+
+extern const char *ATIChipNames[];
+
+/*
+ * Foundry codes for 264xT's.
+ */
+typedef enum
+{
+ ATI_FOUNDRY_SGS, /* SGS-Thompson */
+ ATI_FOUNDRY_NEC, /* NEC */
+ ATI_FOUNDRY_KSC, /* KSC (?) */
+ ATI_FOUNDRY_UMC, /* United Microelectronics Corporation */
+ ATI_FOUNDRY_TSMC, /* Taiwan Semiconductor Manufacturing Company */
+ ATI_FOUNDRY_5,
+ ATI_FOUNDRY_6,
+ ATI_FOUNDRY_UMCA /* UMC alternate */
+} ATIFoundryType;
+
+extern const char *ATIFoundryNames[];
+
+#ifndef AVOID_CPIO
+
+extern void ATIMach32ChipID(ATIPtr);
+
+#endif /* AVOID_CPIO */
+
+extern void ATIMach64ChipID(ATIPtr, const CARD16);
+extern ATIChipType ATIChipID(const CARD16, const CARD8);
+
+#define OldChipID(_1, _0) \
+ (SetBits(_0 - 'A', CHIP_CODE_0) | SetBits(_1 - 'A', CHIP_CODE_1))
+
+#define NewChipID(_1, _0) \
+ (SetBits(_0, CFG_CHIP_TYPE0) | SetBits(_1, CFG_CHIP_TYPE1))
+
+#define OldToNewChipID(_ChipID) \
+ (SetBits(GetBits(_ChipID, CHIP_CODE_0) + 'A', CFG_CHIP_TYPE0) | \
+ SetBits(GetBits(_ChipID, CHIP_CODE_1) + 'A', CFG_CHIP_TYPE1))
+
+#define NewToOldChipID(_ChipID) \
+ (SetBits(GetBits(_ChipID, CFG_CHIP_TYPE0) - 'A', CHIP_CODE_0) | \
+ (SetBits(GetBits(_ChipID, CFG_CHIP_TYPE1) - 'A', CHIP_CODE_1))
+
+#endif /* ___ATICHIP_H___ */