annotate vidix/savage_regs.h @ 25317:7f3cb5408f28

Fixed VIDIX color bug that was introduced when Radeon VIDIX driver was synchronized with vidix.sf.net. The red color was saturating. Corrected value fixes the issue and restore the color to the level it used to have before synchronization. Meaning of the value remains unknow but was retrieved from register's value of a Radeon 9000 card, so it may need further testing. Patch by Guillaume Lecerf (foxcore at gmail dot com)
author ben
date Mon, 10 Dec 2007 19:27:46 +0000
parents af2aadfbabc3
children a93e46adb54c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22850
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
1 /* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h,v 1.10 2001/11/04 22:17:48 alanh Exp $ */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
2
23934
88bed2131f19 Identifiers starting with underscores are reserved.
diego
parents: 22850
diff changeset
3 #ifndef SAVAGE_REGS_H
88bed2131f19 Identifiers starting with underscores are reserved.
diego
parents: 22850
diff changeset
4 #define SAVAGE_REGS_H
22850
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
5
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
6 #define S3_SAVAGE3D_SERIES(chip) ((chip>=S3_SAVAGE3D) && (chip<=S3_SAVAGE_MX))
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
7
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
8 #define S3_SAVAGE4_SERIES(chip) ((chip==S3_SAVAGE4) || (chip==S3_PROSAVAGE))
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
9
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
10 #define S3_SAVAGE_MOBILE_SERIES(chip) ((chip==S3_SAVAGE_MX) || (chip==S3_SUPERSAVAGE))
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
11
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
12 #define S3_SAVAGE_SERIES(chip) ((chip>=S3_SAVAGE3D) && (chip<=S3_SAVAGE2000))
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
13
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
14
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
15 /* Chip tags. These are used to group the adapters into
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
16 * related families.
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
17 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
18
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
19
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
20 enum S3CHIPTAGS {
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
21 S3_UNKNOWN = 0,
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
22 S3_SAVAGE3D,
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
23 S3_SAVAGE_MX,
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
24 S3_SAVAGE4,
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
25 S3_PROSAVAGE,
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
26 S3_SUPERSAVAGE,
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
27 S3_SAVAGE2000,
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
28 S3_LAST
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
29 };
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
30
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
31 typedef struct {
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
32 unsigned int mode, refresh;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
33 unsigned char SR08, SR0E, SR0F;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
34 unsigned char SR10, SR11, SR12, SR13, SR15, SR18, SR1B, SR29, SR30;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
35 unsigned char SR54[8];
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
36 unsigned char Clock;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
37 unsigned char CR31, CR32, CR33, CR34, CR36, CR3A, CR3B, CR3C;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
38 unsigned char CR40, CR41, CR42, CR43, CR45;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
39 unsigned char CR50, CR51, CR53, CR55, CR58, CR5B, CR5D, CR5E;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
40 unsigned char CR60, CR63, CR65, CR66, CR67, CR68, CR69, CR6D, CR6F;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
41 unsigned char CR86, CR88;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
42 unsigned char CR90, CR91, CRB0;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
43 unsigned int STREAMS[22]; /* yuck, streams regs */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
44 unsigned int MMPR0, MMPR1, MMPR2, MMPR3;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
45 } SavageRegRec, *SavageRegPtr;
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
46
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
47
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
48
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
49 #define BIOS_BSIZE 1024
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
50 #define BIOS_BASE 0xc0000
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
51
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
52 #define SAVAGE_NEWMMIO_REGBASE_S3 0x1000000 /* 16MB */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
53 #define SAVAGE_NEWMMIO_REGBASE_S4 0x0000000
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
54 #define SAVAGE_NEWMMIO_REGSIZE 0x0080000 /* 512kb */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
55 #define SAVAGE_NEWMMIO_VGABASE 0x8000
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
56
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
57 #define BASE_FREQ 14.31818
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
58
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
59 #define FIFO_CONTROL_REG 0x8200
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
60 #define MIU_CONTROL_REG 0x8204
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
61 #define STREAMS_TIMEOUT_REG 0x8208
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
62 #define MISC_TIMEOUT_REG 0x820c
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
63
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
64 /* Stream Processor 1 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
65
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
66 /* Primary Stream 1 Frame Buffer Address 0 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
67 #define PRI_STREAM_FBUF_ADDR0 0x81c0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
68 /* Primary Stream 1 Frame Buffer Address 0 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
69 #define PRI_STREAM_FBUF_ADDR1 0x81c4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
70 /* Primary Stream 1 Stride */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
71 #define PRI_STREAM_STRIDE 0x81c8
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
72 /* Primary Stream 1 Frame Buffer Size */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
73 #define PRI_STREAM_BUFFERSIZE 0x8214
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
74
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
75 /* Secondary stream 1 Color/Chroma Key Control */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
76 #define SEC_STREAM_CKEY_LOW 0x8184
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
77 /* Secondary stream 1 Chroma Key Upper Bound */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
78 #define SEC_STREAM_CKEY_UPPER 0x8194
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
79 /* Blend Control of Secondary Stream 1 & 2 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
80 #define BLEND_CONTROL 0x8190
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
81 /* Secondary Stream 1 Color conversion/Adjustment 1 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
82 #define SEC_STREAM_COLOR_CONVERT1 0x8198
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
83 /* Secondary Stream 1 Color conversion/Adjustment 2 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
84 #define SEC_STREAM_COLOR_CONVERT2 0x819c
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
85 /* Secondary Stream 1 Color conversion/Adjustment 3 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
86 #define SEC_STREAM_COLOR_CONVERT3 0x81e4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
87 /* Secondary Stream 1 Horizontal Scaling */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
88 #define SEC_STREAM_HSCALING 0x81a0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
89 /* Secondary Stream 1 Frame Buffer Size */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
90 #define SEC_STREAM_BUFFERSIZE 0x81a8
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
91 /* Secondary Stream 1 Horizontal Scaling Normalization (2K only) */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
92 #define SEC_STREAM_HSCALE_NORMALIZE 0x81ac
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
93 /* Secondary Stream 1 Horizontal Scaling */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
94 #define SEC_STREAM_VSCALING 0x81e8
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
95 /* Secondary Stream 1 Frame Buffer Address 0 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
96 #define SEC_STREAM_FBUF_ADDR0 0x81d0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
97 /* Secondary Stream 1 Frame Buffer Address 1 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
98 #define SEC_STREAM_FBUF_ADDR1 0x81d4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
99 /* Secondary Stream 1 Frame Buffer Address 2 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
100 #define SEC_STREAM_FBUF_ADDR2 0x81ec
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
101 /* Secondary Stream 1 Stride */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
102 #define SEC_STREAM_STRIDE 0x81d8
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
103 /* Secondary Stream 1 Window Start Coordinates */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
104 #define SEC_STREAM_WINDOW_START 0x81f8
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
105 /* Secondary Stream 1 Window Size */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
106 #define SEC_STREAM_WINDOW_SZ 0x81fc
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
107 /* Secondary Streams Tile Offset */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
108 #define SEC_STREAM_TILE_OFF 0x821c
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
109 /* Secondary Stream 1 Opaque Overlay Control */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
110 #define SEC_STREAM_OPAQUE_OVERLAY 0x81dc
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
111
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
112
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
113 /* Stream Processor 2 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
114
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
115 /* Primary Stream 2 Frame Buffer Address 0 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
116 #define PRI_STREAM2_FBUF_ADDR0 0x81b0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
117 /* Primary Stream 2 Frame Buffer Address 1 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
118 #define PRI_STREAM2_FBUF_ADDR1 0x81b4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
119 /* Primary Stream 2 Stride */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
120 #define PRI_STREAM2_STRIDE 0x81b8
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
121 /* Primary Stream 2 Frame Buffer Size */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
122 #define PRI_STREAM2_BUFFERSIZE 0x8218
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
123
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
124 /* Secondary Stream 2 Color/Chroma Key Control */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
125 #define SEC_STREAM2_CKEY_LOW 0x8188
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
126 /* Secondary Stream 2 Chroma Key Upper Bound */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
127 #define SEC_STREAM2_CKEY_UPPER 0x818c
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
128 /* Secondary Stream 2 Horizontal Scaling */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
129 #define SEC_STREAM2_HSCALING 0x81a4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
130 /* Secondary Stream 2 Horizontal Scaling */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
131 #define SEC_STREAM2_VSCALING 0x8204
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
132 /* Secondary Stream 2 Frame Buffer Size */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
133 #define SEC_STREAM2_BUFFERSIZE 0x81ac
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
134 /* Secondary Stream 2 Frame Buffer Address 0 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
135 #define SEC_STREAM2_FBUF_ADDR0 0x81bc
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
136 /* Secondary Stream 2 Frame Buffer Address 1 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
137 #define SEC_STREAM2_FBUF_ADDR1 0x81e0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
138 /* Secondary Stream 2 Frame Buffer Address 2 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
139 #define SEC_STREAM2_FBUF_ADDR2 0x8208
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
140 /* Multiple Buffer/LPB and Secondary Stream 2 Stride */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
141 #define SEC_STREAM2_STRIDE_LPB 0x81cc
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
142 /* Secondary Stream 2 Color conversion/Adjustment 1 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
143 #define SEC_STREAM2_COLOR_CONVERT1 0x81f0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
144 /* Secondary Stream 2 Color conversion/Adjustment 2 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
145 #define SEC_STREAM2_COLOR_CONVERT2 0x81f4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
146 /* Secondary Stream 2 Color conversion/Adjustment 3 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
147 #define SEC_STREAM2_COLOR_CONVERT3 0x8200
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
148 /* Secondary Stream 2 Window Start Coordinates */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
149 #define SEC_STREAM2_WINDOW_START 0x820c
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
150 /* Secondary Stream 2 Window Size */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
151 #define SEC_STREAM2_WINDOW_SZ 0x8210
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
152 /* Secondary Stream 2 Opaque Overlay Control */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
153 #define SEC_STREAM2_OPAQUE_OVERLAY 0x8180
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
154
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
155
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
156 /* savage 2000 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
157 #define SEC_STREAM_COLOR_CONVERT0_2000 0x8198
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
158 #define SEC_STREAM_COLOR_CONVERT1_2000 0x819c
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
159 #define SEC_STREAM_COLOR_CONVERT2_2000 0x81e0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
160 #define SEC_STREAM_COLOR_CONVERT3_2000 0x81e4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
161
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
162 #define SUBSYS_STAT_REG 0x8504
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
163
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
164 #define SRC_BASE 0xa4d4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
165 #define DEST_BASE 0xa4d8
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
166 #define CLIP_L_R 0xa4dc
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
167 #define CLIP_T_B 0xa4e0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
168 #define DEST_SRC_STR 0xa4e4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
169 #define MONO_PAT_0 0xa4e8
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
170 #define MONO_PAT_1 0xa4ec
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
171
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
172 /* Constants for CR69. */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
173
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
174 #define CRT_ACTIVE 0x01
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
175 #define LCD_ACTIVE 0x02
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
176 #define TV_ACTIVE 0x04
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
177 #define CRT_ATTACHED 0x10
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
178 #define LCD_ATTACHED 0x20
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
179 #define TV_ATTACHED 0x40
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
180
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
181
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
182 /*
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
183 * reads from SUBSYS_STAT
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
184 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
185 #define STATUS_WORD0 (INREG(0x48C00))
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
186 #define ALT_STATUS_WORD0 (INREG(0x48C60))
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
187 #define MAXLOOP 0xffffff
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
188 #define IN_SUBSYS_STAT() (INREG(SUBSYS_STAT_REG))
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
189
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
190 #define MAXFIFO 0x7f00
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
191
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
192 /*
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
193 * NOTE: don't remove 'VGAIN8(vgaCRIndex);'.
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
194 * If not present it will cause lockups on Savage4.
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
195 * Ask S3, why.
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
196 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
197 /*#define VerticalRetraceWait() \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
198 { \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
199 VGAIN8(0x3d0+4); \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
200 VGAOUT8(0x3d0+4, 0x17); \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
201 if (VGAIN8(0x3d0+5) & 0x80) { \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
202 while ((VGAIN8(0x3d0 + 0x0a) & 0x08) == 0x08) ; \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
203 while ((VGAIN8(0x3d0 + 0x0a) & 0x08) == 0x00) ; \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
204 } \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
205 }
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
206 */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
207
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
208 #define VerticalRetraceWait() \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
209 do { \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
210 VGAIN8(0x3d4); \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
211 VGAOUT8(0x3d4, 0x17); \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
212 if (VGAIN8(0x3d5) & 0x80) { \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
213 int i = 0x10000; \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
214 while ((VGAIN8(0x3da) & 0x08) == 0x08 && i--) ; \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
215 i = 0x10000; \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
216 while ((VGAIN8(0x3da) & 0x08) == 0x00 && i--) ; \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
217 } \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
218 } while (0)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
219
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
220
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
221 #define I2C_REG 0xa0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
222 #define InI2CREG(a) \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
223 { \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
224 VGAOUT8(0x3d0 + 4, I2C_REG); \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
225 a = VGAIN8(0x3d0 + 5); \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
226 }
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
227
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
228 #define OutI2CREG(a) \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
229 { \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
230 VGAOUT8(0x3d0 + 4, I2C_REG); \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
231 VGAOUT8(0x3d0 + 5, a); \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
232 }
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
233
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
234 #define HZEXP_COMP_1 0x54
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
235 #define HZEXP_BORDER 0x58
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
236 #define HZEXP_FACTOR_IGA1 0x59
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
237
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
238 #define VTEXP_COMP_1 0x56
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
239 #define VTEXP_BORDER 0x5a
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
240 #define VTEXP_FACTOR_IGA1 0x5b
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
241
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
242 #define EC1_CENTER_ON 0x10
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
243 #define EC1_EXPAND_ON 0x0c
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
244
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
245 #define MODE_24 24
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
246
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
247 #if (MODE_24 == 32)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
248 # define BYTES_PP24 4
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
249 #else
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
250 # define BYTES_PP24 3
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
251 #endif
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
252
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
253 #define OVERLAY_DEPTH 16
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
254
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
255 #define STREAMS_MODE32 0x7
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
256 #define STREAMS_MODE24 0x6
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
257 #define STREAMS_MODE16 0x5 /* @@@ */
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
258
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
259
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
260 #define DEPTH_BPP(depth) (depth == 24 ? (BYTES_PP24 << 3) : (depth + 7) & ~0x7)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
261 #define DEPTH_2ND(depth) (depth > 8 ? depth\
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
262 : OVERLAY_DEPTH)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
263 #define SSTREAMS_MODE(bpp) (bpp > 16 ? (bpp > 24 ? STREAMS_MODE32 :\
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
264 STREAMS_MODE24) : STREAMS_MODE16)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
265
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
266 #define HSCALING_Shift 0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
267 #define HSCALING_Mask (((1L << 16)-1) << HSCALING_Shift)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
268 #define HSCALING(w0,w1) ((((unsigned int)(((double)w0/(double)w1) * (1 << 15))) \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
269 << HSCALING_Shift) \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
270 & HSCALING_Mask)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
271
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
272 #define VSCALING_Shift 0
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
273 #define VSCALING_Mask (((1L << 20)-1) << VSCALING_Shift)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
274 #define VSCALING(h0,h1) ((((unsigned int) (((double)h0/(double)h1) * (1 << 15))) \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
275 << VSCALING_Shift) \
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
276 & VSCALING_Mask)
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
277
9a1e26fef45b Move driver files directly into the vidix directory.
diego
parents:
diff changeset
278
23934
88bed2131f19 Identifiers starting with underscores are reserved.
diego
parents: 22850
diff changeset
279 #endif /* SAVAGE_REGS_H */