]> Pileus Git - ~andy/linux/blob - drivers/staging/xgifb/vb_table.h
Merge branch 'ec-cleanup' into release
[~andy/linux] / drivers / staging / xgifb / vb_table.h
1 #define  Tap4
2
3 //yilin modify for xgi20
4 static struct XGI_MCLKDataStruct XGI340New_MCLKData[] =
5 {
6  { 0x16,0x01,0x01,166},
7  { 0x19,0x02,0x01,124},
8  { 0x7C,0x08,0x01,200},
9  { 0x79,0x06,0x01,250},
10  { 0x29,0x01,0x81,301},
11  { 0x5c,0x23,0x01,166},
12  { 0x5c,0x23,0x01,166},
13  { 0x5c,0x23,0x01,166}
14 };
15
16 static struct XGI_MCLKDataStruct XGI27New_MCLKData[] =
17 {
18  { 0x5c,0x23,0x01,166},
19  { 0x19,0x02,0x01,124},
20  { 0x7C,0x08,0x80,200},
21  { 0x79,0x06,0x80,250},
22  { 0x29,0x01,0x81,300},
23  { 0x5c,0x23,0x01,166},
24  { 0x5c,0x23,0x01,166},
25  { 0x5c,0x23,0x01,166}
26 };
27
28 //yilin modify for xgi20
29 static struct XGI_ECLKDataStruct XGI340_ECLKData[] =
30 {
31  { 0x5c,0x23,0x01,166},
32  { 0x55,0x84,0x01,123},
33  { 0x7C,0x08,0x01,200},
34  { 0x79,0x06,0x01,250},
35  { 0x29,0x01,0x81,301},
36  { 0x5c,0x23,0x01,166},
37  { 0x5c,0x23,0x01,166},
38  { 0x5c,0x23,0x01,166}
39 };
40
41
42
43 static unsigned char XGI340_SR13[4][8] = {
44 {0x35,0x45,0xb1,0x00,0x00,0x00,0x00,0x00},/* SR13 */
45 {0x41,0x51,0x5c,0x00,0x00,0x00,0x00,0x00},/* SR14 */
46 {0x31,0x42,0x42,0x00,0x00,0x00,0x00,0x00},/* SR18 */
47 {0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00}/* SR1B */
48 };
49
50 static unsigned char XGI340_cr41[24][8] =
51 {{0x20,0x50,0x60,0x00,0x00,0x00,0x00,0x00},/* 0 CR41 */
52 {0xc4,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 1 CR8A */
53 {0xc4,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 2 CR8B */
54 {0xb5,0xa4,0xa4,0x00,0x00,0x00,0x00,0x00},
55 {0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00},
56 {0x90,0x90,0x24,0x00,0x00,0x00,0x00,0x00},/* 5 CR68 */
57 {0x77,0x77,0x44,0x00,0x00,0x00,0x00,0x00},/* 6 CR69 */
58 {0x77,0x77,0x44,0x00,0x00,0x00,0x00,0x00},/* 7 CR6A */
59 {0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00},/* 8 CR6D */
60 {0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00},/* 9 CR80 */
61 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/* 10 CR81 */
62 {0x88,0xa8,0x48,0x00,0x00,0x00,0x00,0x00},/* 11 CR82 */
63 {0x44,0x44,0x77,0x00,0x00,0x00,0x00,0x00},/* 12 CR85 */
64 {0x48,0x48,0x88,0x00,0x00,0x00,0x00,0x00},/* 13 CR86 */
65 {0x54,0x54,0x44,0x00,0x00,0x00,0x00,0x00},/* 14 CR90 */
66 {0x54,0x54,0x44,0x00,0x00,0x00,0x00,0x00},/* 15 CR91 */
67 {0x0a,0x0a,0x07,0x00,0x00,0x00,0x00,0x00},/* 16 CR92 */
68 {0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00},/* 17 CR93 */
69 {0x10,0x10,0x0A,0x00,0x00,0x00,0x00,0x00},/* 18 CR94 */
70 {0x11,0x11,0x0a,0x00,0x00,0x00,0x00,0x00},/* 19 CR95 */
71 {0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00},/* 20 CR96 */
72 {0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00},/* 21 CRC3 */
73 {0x05,0x00,0x02,0x00,0x00,0x00,0x00,0x00},/* 22 CRC4 */
74 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}/* 23 CRC5 */
75 };
76
77
78 static unsigned char XGI27_cr41[24][8] =
79 {
80 {0x20,0x40,0x60,0x00,0x00,0x00,0x00,0x00},/* 0 CR41 */
81 {0xC4,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 1 CR8A */
82 {0xC4,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 2 CR8B */
83 {0xB5,0x13,0xa4,0x00,0x00,0x00,0x00,0x00},/* 3 CR40[7],CR99[2:0],CR45[3:0]*/
84 {0xf0,0xf5,0xf0,0x00,0x00,0x00,0x00,0x00},/* 4 CR59 */
85 {0x90,0x90,0x24,0x00,0x00,0x00,0x00,0x00},/* 5 CR68 */
86 {0x77,0x67,0x44,0x00,0x00,0x00,0x00,0x00},/* 6 CR69 */
87 {0x77,0x77,0x44,0x00,0x00,0x00,0x00,0x00},/* 7 CR6A */
88 {0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00},/* 8 CR6D */
89 {0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00},/* 9 CR80 */
90 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/* 10 CR81 */
91 {0x88,0xcc,0x48,0x00,0x00,0x00,0x00,0x00},/* 11 CR82 */
92 {0x44,0x88,0x77,0x00,0x00,0x00,0x00,0x00},/* 12 CR85 */
93 {0x48,0x88,0x88,0x00,0x00,0x00,0x00,0x00},/* 13 CR86 */
94 {0x54,0x32,0x44,0x00,0x00,0x00,0x00,0x00},/* 14 CR90 */
95 {0x54,0x33,0x44,0x00,0x00,0x00,0x00,0x00},/* 15 CR91 */
96 {0x0a,0x07,0x07,0x00,0x00,0x00,0x00,0x00},/* 16 CR92 */
97 {0x44,0x63,0x44,0x00,0x00,0x00,0x00,0x00},/* 17 CR93 */
98 {0x10,0x14,0x0A,0x00,0x00,0x00,0x00,0x00},/* 18 CR94 */
99 {0x11,0x0B,0x0C,0x00,0x00,0x00,0x00,0x00},/* 19 CR95 */
100 {0x05,0x22,0x05,0x00,0x00,0x00,0x00,0x00},/* 20 CR96 */
101 {0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00},/* 21 CRC3 */
102 {0x05,0x00,0x02,0x00,0x00,0x00,0x00,0x00},/* 22 CRC4 */
103 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}/* 23 CRC5 */
104 };
105
106 static unsigned char XGI340_CR6B[8][4] = {
107 {0xaa,0xaa,0xaa,0xaa},
108 {0xaa,0xaa,0xaa,0xaa},
109 {0xaa,0xaa,0xaa,0xaa},
110 {0x00,0x00,0x00,0x00},
111 {0x00,0x00,0x00,0x00},
112 {0x00,0x00,0x00,0x00},
113 {0x00,0x00,0x00,0x00},
114 {0x00,0x00,0x00,0x00}
115 };
116
117 static unsigned char XGI340_CR6E[8][4] = {
118 {0x00,0x00,0x00,0x00},
119 {0x00,0x00,0x00,0x00},
120 {0x00,0x00,0x00,0x00},
121 {0x00,0x00,0x00,0x00},
122 {0x00,0x00,0x00,0x00},
123 {0x00,0x00,0x00,0x00},
124 {0x00,0x00,0x00,0x00},
125 {0x00,0x00,0x00,0x00}
126 };
127
128 static unsigned char XGI340_CR6F[8][32] = {
129 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
130 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
131 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
132 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
133 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
134 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
135 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
136 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
137 };
138
139 static unsigned char XGI340_CR89[8][2] = {
140 {0x00,0x00},
141 {0x00,0x00},
142 {0x00,0x00},
143 {0x00,0x00},
144 {0x00,0x00},
145 {0x00,0x00},
146 {0x00,0x00},
147 {0x00,0x00}
148 };
149                          /* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
150 static unsigned char XGI340_AGPReg[12] = {
151                                    0x28, 0x23, 0x00, 0x20, 0x00, 0x20, 0x00,
152                                    0x05, 0xd0, 0x10, 0x10, 0x00};
153
154 static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83};
155
156 #if 0
157 static unsigned char XGI330_SR15_1[8][8] = {
158 {0x0,0x0,0x00,0x00,0x20,0x20,0x00,0x00},
159 {0x5,0x15,0x15,0x15,0x15,0x15,0x00,0x00},
160 {0xba,0xba,0xba,0xba,0xBA,0xBA,0x00,0x00},
161 {0x55,0x57,0x57,0xAB,0xAB,0xAB,0x00,0x00},
162 {0x60,0x34,0x34,0x34,0x34,0x34,0x00,0x00},
163 {0x0,0x80,0x80,0x80,0x83,0x83,0x00,0x00},
164 {0x50,0x50,0x50,0x3C,0x3C,0x3C,0x00,0x00},
165 {0x0,0xa5,0xfb,0xf6,0xF6,0xF6,0x00,0x00}
166 };
167
168 static unsigned char XGI330_cr40_1[15][8] = {
169 {0x66,0x40,0x40,0x28,0x24,0x24,0x00,0x00},
170 {0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
171 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
172 {0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00},
173 {0x00,0xf0,0xf0,0xf0,0xF0,0xF0,0x00,0x00},
174 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
175 {0x10,0x10,0x10,0x10,0x20,0x20,0x00,0x00},
176 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
177 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
178 {0x88,0x88,0x88,0xAA,0xAC,0xAC,0x00,0x00},
179 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
180 {0x00,0x00,0x00,0x00,0x77,0x77,0x00,0x00},
181 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
182 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
183 {0x00,0xA2,0x00,0x00,0xA2,0xA2,0x00,0x00},
184 };
185 #endif
186
187 static unsigned char XGI330_sr25[] = {0x00, 0x0};
188 static unsigned char XGI330_sr31 = 0xc0;
189 static unsigned char XGI330_sr32 = 0x11;
190 static unsigned char XGI330_SR33 = 0x00;
191 static unsigned char XG40_CRCF = 0x13;
192 static unsigned char XG40_DRAMTypeDefinition = 0xFF ;
193
194 static struct XGI_StStruct XGI330_SModeIDTable[] =
195 {
196  {0x01,0x9208,0x01,0x00,0x10,0x00,0x00,0x01,0x00},
197  {0x01,0x1210,0x14,0x01,0x00,0x01,0x00,0x01,0x00},
198  {0x01,0x1010,0x17,0x02,0x11,0x00,0x00,0x01,0x01},
199  {0x03,0x8208,0x03,0x00,0x14,0x00,0x00,0x01,0x02},
200  {0x03,0x0210,0x16,0x01,0x04,0x01,0x00,0x01,0x02},
201  {0x03,0x0010,0x18,0x02,0x15,0x00,0x00,0x01,0x03},
202  {0x05,0x9209,0x05,0x00,0x10,0x00,0x00,0x00,0x04},
203  {0x06,0x8209,0x06,0x00,0x14,0x00,0x00,0x00,0x05},
204  {0x07,0x0000,0x07,0x03,0x05,0x03,0x00,0x01,0x03},
205  {0x07,0x0000,0x19,0x02,0x15,0x02,0x00,0x01,0x03},
206  {0x0d,0x920a,0x0d,0x00,0x10,0x00,0x00,0x00,0x04},
207  {0x0e,0x820a,0x0e,0x00,0x14,0x00,0x00,0x00,0x05},
208  {0x0f,0x0202,0x11,0x01,0x04,0x01,0x00,0x00,0x05},
209  {0x10,0x0212,0x12,0x01,0x04,0x01,0x00,0x00,0x05},
210  {0x11,0x0212,0x1a,0x04,0x24,0x04,0x00,0x00,0x05},
211  {0x12,0x0212,0x1b,0x04,0x24,0x04,0x00,0x00,0x05},
212  {0x13,0x021b,0x1c,0x00,0x14,0x00,0x00,0x00,0x04},
213  {0x12,0x0010,0x18,0x02,0x24,0x02,0x00,0x00,0x05},/* St_CRT2CRTC2 not sure */
214  {0x12,0x0210,0x18,0x01,0x24,0x01,0x00,0x00,0x05},/* St_CRT2CRTC2 not sure */
215  {0xff,0x0000,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
216 };
217
218
219 static struct XGI_ExtStruct  XGI330_EModeIDTable[] =
220 {
221  {0x6a,0x2212,0x0407,0x3a81,0x0102,0x08,0x07,0x00,0x00,0x07,0x0e},
222  {0x2e,0x0a1b,0x0306,0x3a57,0x0101,0x08,0x06,0x00,0x00,0x05,0x06},
223  {0x2f,0x0a1b,0x0305,0x3a50,0x0100,0x08,0x05,0x00,0x00,0x05,0x05},
224  {0x30,0x2a1b,0x0407,0x3a81,0x0103,0x08,0x07,0x00,0x00,0x07,0x0e},
225  {0x31,0x0a1b,0x030d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d},
226  {0x32,0x0a1b,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e},
227  {0x33,0x0a1d,0x0a0d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d},
228  {0x34,0x2a1d,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e},
229  {0x35,0x0a1f,0x0a0d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d},
230  {0x36,0x2a1f,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e},
231  {0x37,0x0212,0x0508,0x3aab,0x0104,0x08,0x08,0x00,0x00,0x00,0x16},
232  {0x38,0x0a1b,0x0508,0x3aab,0x0105,0x08,0x08,0x00,0x00,0x00,0x16},
233  {0x3a,0x0e3b,0x0609,0x3adc,0x0107,0x08,0x09,0x00,0x00,0x00,0x1e},
234  {0x3c,0x0e3b,0x070a,0x3af2,0x0130,0x08,0x0a,0x00,0x00,0x00,0x22},      /* mode 1600x1200 add CRT2MODE [2003/10/07] */
235  {0x3d,0x0e7d,0x070a,0x3af2,0x0131,0x08,0x0a,0x00,0x00,0x00,0x22},      /* mode 1600x1200 add CRT2MODE */
236  {0x40,0x9a1c,0x0000,0x3a34,0x010d,0x08,0x00,0x00,0x00,0x04,0x00},
237  {0x41,0x9a1d,0x0000,0x3a34,0x010e,0x08,0x00,0x00,0x00,0x04,0x00},      /* ModeIdIndex = 0x10 */
238  {0x43,0x0a1c,0x0306,0x3a57,0x0110,0x08,0x06,0x00,0x00,0x05,0x06},
239  {0x44,0x0a1d,0x0306,0x3a57,0x0111,0x08,0x06,0x00,0x00,0x05,0x06},
240  {0x46,0x2a1c,0x0407,0x3a81,0x0113,0x08,0x07,0x00,0x00,0x07,0x0e},
241  {0x47,0x2a1d,0x0407,0x3a81,0x0114,0x08,0x07,0x00,0x00,0x07,0x0e},
242  {0x49,0x0a3c,0x0508,0x3aab,0x0116,0x08,0x08,0x00,0x00,0x00,0x16},
243  {0x4a,0x0a3d,0x0508,0x3aab,0x0117,0x08,0x08,0x00,0x00,0x00,0x16},
244  {0x4c,0x0e7c,0x0609,0x3adc,0x0119,0x08,0x09,0x00,0x00,0x00,0x1e},
245  {0x4d,0x0e7d,0x0609,0x3adc,0x011a,0x08,0x09,0x00,0x00,0x00,0x1e},
246  {0x50,0x9a1b,0x0001,0x3a3b,0x0132,0x08,0x01,0x00,0x00,0x04,0x02},
247  {0x51,0xba1b,0x0103,0x3a42,0x0133,0x08,0x03,0x00,0x00,0x07,0x03},
248  {0x52,0x9a1b,0x0204,0x3a49,0x0134,0x08,0x04,0x00,0x00,0x00,0x04},
249  {0x56,0x9a1d,0x0001,0x3a3b,0x0135,0x08,0x01,0x00,0x00,0x04,0x02},
250  {0x57,0xba1d,0x0103,0x3a42,0x0136,0x08,0x03,0x00,0x00,0x07,0x03},
251  {0x58,0x9a1d,0x0204,0x3a49,0x0137,0x08,0x04,0x00,0x00,0x00,0x04},
252  {0x59,0x9a1b,0x0000,0x3a34,0x0138,0x08,0x00,0x00,0x00,0x04,0x00},
253  {0x5A,0x021b,0x0014,0x3b83,0x0138,0x08,0x01,0x00,0x00,0x04,0x3f},      /* ModeIdIndex = 0x20 */
254  {0x5B,0x0a1d,0x0014,0x3b83,0x0135,0x08,0x01,0x00,0x00,0x04,0x3f},
255  {0x5d,0x0a1d,0x0305,0x3a50,0x0139,0x08,0x05,0x00,0x00,0x07,0x05},
256  {0x62,0x0a3f,0x0306,0x3a57,0x013a,0x08,0x06,0x00,0x00,0x05,0x06},
257  {0x63,0x2a3f,0x0407,0x3a81,0x013b,0x08,0x07,0x00,0x00,0x07,0x0e},
258  {0x64,0x0a7f,0x0508,0x3aab,0x013c,0x08,0x08,0x00,0x00,0x00,0x16},
259  {0x65,0x0eff,0x0609,0x3adc,0x013d,0x08,0x09,0x00,0x00,0x00,0x1e},
260  {0x66,0x0eff,0x070a,0x3af2,0x013e,0x08,0x0a,0x00,0x00,0x00,0x22},      /* mode 1600x1200 add CRT2MODE */
261  {0x68,0x067b,0x080b,0x3b17,0x013f,0x08,0x0b,0x00,0x00,0x00,0x29},
262  {0x69,0x06fd,0x080b,0x3b17,0x0140,0x08,0x0b,0x00,0x00,0x00,0x29},
263  {0x6b,0x07ff,0x080b,0x3b17,0x0141,0x10,0x0b,0x00,0x00,0x00,0x29},
264  {0x6c,0x067b,0x090c,0x3b37,0x0000,0x08,0x0c,0x00,0x00,0x00,0x2f},
265  {0x6d,0x06fd,0x090c,0x3b37,0x0000,0x10,0x0c,0x00,0x00,0x00,0x2f},
266  {0x6e,0x07ff,0x090c,0x3b37,0x0000,0x10,0x0c,0x00,0x00,0x00,0x2f},
267  {0x70,0x2a1b,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34},
268  {0x71,0x0a1b,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37},
269  {0x74,0x0a1d,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37},      /* ModeIdIndex = 0x30 */
270  {0x75,0x0a3d,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a},
271  {0x76,0x2a1f,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34},
272  {0x77,0x0a1f,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37},
273  {0x78,0x0a3f,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a},
274  {0x79,0x0a3b,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a},
275  {0x7a,0x2a1d,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34},
276  {0x7b,0x0e3b,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d},
277  {0x7c,0x0e7d,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d},
278  {0x7d,0x0eff,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d},
279  {0x20,0x0e3b,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43},
280  {0x21,0x0e7d,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43},
281  {0x22,0x0eff,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43},
282  {0x23,0x0e3b,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41},
283  {0x24,0x0e7d,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41},
284  {0x25,0x0eff,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41},
285  {0x26,0x063b,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42},      /* ModeIdIndex = 0x40 */
286  {0x27,0x067d,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42},
287  {0x28,0x06ff,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42},
288  {0xff,0x0000,0x0000,0x0000,0x0000,0x00,0x00,0x00,0x00,0x00,0x00}
289 };
290
291 static struct XGI_StandTableStruct XGI330_StandTable[] =
292 {
293 /* MD_0_200 */
294  {
295   0x28,0x18,0x08,0x0800,
296   {0x09,0x03,0x00,0x02},
297   0x63,
298   {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
299    0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
300    0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
301    0xff},
302   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
303    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
304    0x08,0x00,0x0f,0x00},
305   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
306    0xff}
307  },
308 /* MD_1_200 */
309  {
310   0x28,0x18,0x08,0x0800,
311   {0x09,0x03,0x00,0x02},
312   0x63,
313   {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
314    0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
315    0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
316    0xff},
317   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
318    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
319    0x08,0x00,0x0f,0x00},
320   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
321    0xff}
322  },
323 /* MD_2_200 */
324  {
325   0x50,0x18,0x08,0x1000,
326   {0x01,0x03,0x00,0x02},
327   0x63,
328   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
329    0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
330    0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
331    0xff},
332   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
333    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
334    0x08,0x00,0x0f,0x00},
335   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
336    0xff}
337  },
338 /* MD_3_200 */
339  {
340   0x50,0x18,0x08,0x1000,
341   {0x01,0x03,0x00,0x02},
342   0x63,
343   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
344    0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
345    0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
346    0xff},
347   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
348    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
349    0x08,0x00,0x0f,0x00},
350   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
351    0xff}
352  },
353 /* MD_4 */
354  {
355   0x28,0x18,0x08,0x4000,
356   {0x09,0x03,0x00,0x02},
357   0x63,
358   {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,
359    0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
360    0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2,
361    0xff},
362   {0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07,
363    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
364    0x01,0x00,0x03,0x00},
365   {0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00,
366    0xff}
367  },
368 /* MD_5 */
369  {
370   0x28,0x18,0x08,0x4000,
371   {0x09,0x03,0x00,0x02},
372   0x63,
373   {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,
374    0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
375    0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2,
376    0xff},
377   {0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07,
378    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
379    0x01,0x00,0x03,0x00},
380   {0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00,
381    0xff}
382  },
383 /* MD_6 */
384  {
385   0x50,0x18,0x08,0x4000,
386   {0x01,0x01,0x00,0x06},
387   0x63,
388   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
389    0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
390    0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xc2,
391    0xff},
392   {0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
393    0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
394    0x01,0x00,0x01,0x00},
395   {0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,
396    0xff}
397  },
398 /* MD_7 */
399  {
400   0x50,0x18,0x0e,0x1000,
401   {0x00,0x03,0x00,0x03},
402   0xa6,
403   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
404    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
405    0x83,0x85,0x5d,0x28,0x0d,0x63,0xba,0xa3,
406    0xff},
407   {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
408    0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
409    0x0e,0x00,0x0f,0x08},
410   {0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00,
411    0xff}
412  },
413 /* MDA_DAC */
414  {
415   0x00,0x00,0x00,0x0000,
416   {0x00,0x00,0x00,0x15},
417   0x15,
418   {0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
419    0x15,0x15,0x15,0x15,0x15,0x15,0x3f,0x3f,
420    0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00,0x00,
421    0x00},
422   {0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x15,
423    0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
424    0x15,0x15,0x15,0x15},
425   {0x15,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
426    0x3f}
427  },
428 /* CGA_DAC */
429  {
430   0x00,0x10,0x04,0x0114,
431   {0x11,0x09,0x15,0x00},
432   0x10,
433   {0x04,0x14,0x01,0x11,0x09,0x15,0x2a,0x3a,
434    0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x2a,0x3a,
435    0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x00,0x10,
436    0x04},
437   {0x14,0x01,0x11,0x09,0x15,0x00,0x10,0x04,
438    0x14,0x01,0x11,0x09,0x15,0x2a,0x3a,0x2e,
439    0x3e,0x2b,0x3b,0x2f},
440   {0x3f,0x2a,0x3a,0x2e,0x3e,0x2b,0x3b,0x2f,
441    0x3f}
442  },
443 /* EGA_DAC */
444  {
445   0x00,0x10,0x04,0x0114,
446   {0x11,0x05,0x15,0x20},
447   0x30,
448   {0x24,0x34,0x21,0x31,0x25,0x35,0x08,0x18,
449    0x0c,0x1c,0x09,0x19,0x0d,0x1d,0x28,0x38,
450    0x2c,0x3c,0x29,0x39,0x2d,0x3d,0x02,0x12,
451    0x06},
452   {0x16,0x03,0x13,0x07,0x17,0x22,0x32,0x26,
453    0x36,0x23,0x33,0x27,0x37,0x0a,0x1a,0x0e,
454    0x1e,0x0b,0x1b,0x0f},
455   {0x1f,0x2a,0x3a,0x2e,0x3e,0x2b,0x3b,0x2f,
456    0x3f}
457  },
458 /* VGA_DAC */
459  {
460   0x00,0x10,0x04,0x0114,
461   {0x11,0x09,0x15,0x2a},
462   0x3a,
463   {0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x00,0x05,
464    0x08,0x0b,0x0e,0x11,0x14,0x18,0x1c,0x20,
465    0x24,0x28,0x2d,0x32,0x38,0x3f,0x00,0x10,
466    0x1f},
467   {0x2f,0x3f,0x1f,0x27,0x2f,0x37,0x3f,0x2d,
468    0x31,0x36,0x3a,0x3f,0x00,0x07,0x0e,0x15,
469    0x1c,0x0e,0x11,0x15},
470   {0x18,0x1c,0x14,0x16,0x18,0x1a,0x1c,0x00,
471    0x04}
472  },
473  {
474   0x08,0x0c,0x10,0x0a08,
475   {0x0c,0x0e,0x10,0x0b},
476   0x0c,
477   {0x0d,0x0f,0x10,0x10,0x01,0x08,0x00,0x00,
478    0x00,0x00,0x01,0x00,0x02,0x02,0x01,0x00,
479    0x04,0x04,0x01,0x00,0x05,0x02,0x05,0x00,
480    0x06},
481   {0x01,0x06,0x05,0x06,0x00,0x08,0x01,0x08,
482    0x00,0x07,0x02,0x07,0x06,0x07,0x00,0x00,
483    0x00,0x00,0x00,0x00},
484   {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
485    0x00}
486  },
487 /* MD_D */
488  {
489   0x28,0x18,0x08,0x2000,
490   {0x09,0x0f,0x00,0x06},
491   0x63,
492   {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,
493    0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
494    0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xe3,
495    0xff},
496   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
497    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
498    0x01,0x00,0x0f,0x00},
499   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
500    0xff}
501  },
502 /* MD_E */
503  {
504   0x50,0x18,0x08,0x4000,
505   {0x01,0x0f,0x00,0x06},
506   0x63,
507   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
508    0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
509    0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xe3,
510    0xff},
511   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
512    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
513    0x01,0x00,0x0f,0x00},
514   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
515    0xff}
516  },
517 /* ExtVGATable */
518  {
519   0x00,0x00,0x00,0x0000,
520   {0x01,0x0f,0x00,0x0e},
521   0x23,
522   {0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,
523    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
524    0xea,0x8c,0xdf,0x28,0x40,0xe7,0x04,0xa3,
525    0xff},
526   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
527    0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
528    0x01,0x00,0x00,0x00},
529   {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,
530    0xff}
531  },
532 /* ROM_SAVEPTR */
533  {
534   0x9f,0x3b,0x00,0x00c0,
535   {0x00,0x00,0x00,0x00},
536   0x00,
537   {0x00,0x00,0x00,0x00,0x00,0x00,0xbb,0x3f,
538    0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
539    0x00,0x00,0x1a,0x00,0xac,0x3e,0x00,0xc0,
540    0x00},
541   {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
542    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
543    0x00,0x00,0x00,0x00},
544   {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
545    0x00}
546  },
547 /* MD_F */
548  {
549   0x50,0x18,0x0e,0x8000,
550   {0x01,0x0f,0x00,0x06},
551   0xa2,
552   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
553    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
554    0x82,0x84,0x5d,0x28,0x0f,0x63,0xba,0xe3,
555    0xff},
556   {0x00,0x08,0x00,0x00,0x18,0x18,0x00,0x00,
557    0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00,
558    0x0b,0x00,0x05,0x00},
559   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,
560    0xff}
561  },
562 /* MD_10 */
563  {
564   0x50,0x18,0x0e,0x8000,
565   {0x01,0x0f,0x00,0x06},
566   0xa3,
567   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
568    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
569    0x82,0x84,0x5d,0x28,0x0f,0x63,0xba,0xe3,
570    0xff},
571   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
572    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
573    0x01,0x00,0x0f,0x00},
574   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
575    0xff}
576  },
577 /* MD_0_350 */
578  {
579   0x28,0x18,0x0e,0x0800,
580   {0x09,0x03,0x00,0x02},
581   0xa3,
582   {0x2d,0x27,0x28,0x90,0x2b,0xb1,0xbf,0x1f,
583    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
584    0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3,
585    0xff},
586   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
587    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
588    0x08,0x00,0x0f,0x00},
589   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
590    0xff}
591  },
592 /* MD_1_350 */
593  {
594   0x28,0x18,0x0e,0x0800,
595   {0x09,0x03,0x00,0x02},
596   0xa3,
597   {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
598    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
599    0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3,
600    0xff},
601   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
602    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
603    0x08,0x00,0x0f,0x00},
604   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
605    0xff}
606  },
607 /* MD_2_350 */
608  {
609   0x50,0x18,0x0e,0x1000,
610   {0x01,0x03,0x00,0x02},
611   0xa3,
612   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
613    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
614    0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,
615    0xff},
616   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
617    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
618    0x08,0x00,0x0f,0x00},
619   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
620    0xff}
621  },
622 /* MD_3_350 */
623  {
624   0x50,0x18,0x0e,0x1000,
625   {0x01,0x03,0x00,0x02},
626   0xa3,
627   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
628    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
629    0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,
630    0xff},
631   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
632    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
633    0x08,0x00,0x0f,0x00},
634   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
635    0xff}
636  },
637 /* MD_0_1_400 */
638  {
639   0x28,0x18,0x10,0x0800,
640   {0x08,0x03,0x00,0x02},
641   0x67,
642   {0x2d,0x27,0x28,0x90,0x2b,0xb1,0xbf,0x1f,
643    0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
644    0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
645    0xff},
646   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
647    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
648    0x0c,0x00,0x0f,0x08},
649   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
650    0xff}
651  },
652 /* MD_2_3_400 */
653  {
654   0x50,0x18,0x10,0x1000,
655   {0x00,0x03,0x00,0x02},
656   0x67,
657   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
658    0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
659    0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
660    0xff},
661   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
662    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
663    0x0c,0x00,0x0f,0x08},
664   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
665    0xff}
666  },
667 /* MD_7_400 */
668  {
669   0x50,0x18,0x10,0x1000,
670   {0x00,0x03,0x00,0x02},
671   0x66,
672   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
673    0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
674    0x9c,0x8e,0x8f,0x28,0x0f,0x96,0xb9,0xa3,
675    0xff},
676   {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
677    0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
678    0x0e,0x00,0x0f,0x08},
679   {0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00,
680    0xff}
681  },
682 /* MD_11 */
683  {
684   0x50,0x1d,0x10,0xa000,
685   {0x01,0x0f,0x00,0x06},
686   0xe3,
687   {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e,
688    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
689    0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xc3,
690    0xff},
691   {0x00,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
692    0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
693    0x01,0x00,0x0f,0x00},
694   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x01,
695    0xff}
696  },
697 /* ExtEGATable */
698  {
699   0x50,0x1d,0x10,0xa000,
700   {0x01,0x0f,0x00,0x06},
701   0xe3,
702   {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e,
703    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
704    0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xe3,
705    0xff},
706   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
707    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
708    0x01,0x00,0x0f,0x00},
709   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
710    0xff}
711  },
712 /* MD_13 */
713  {
714   0x28,0x18,0x08,0x2000,
715   {0x01,0x0f,0x00,0x0e},
716   0x63,
717   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
718    0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,
719    0x9c,0x8e,0x8f,0x28,0x40,0x96,0xb9,0xa3,
720    0xff},
721   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
722    0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
723    0x41,0x00,0x0f,0x00},
724   {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,
725    0xff}
726  }
727 };
728
729 static struct XGI_TimingHStruct XGI_TimingH[] =
730 {{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}};
731
732 static struct XGI_TimingVStruct XGI_TimingV[] =
733 {{{0x00,0x00,0x00,0x00,0x00,0x00,0x00}}};
734
735 static struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] =
736 {
737  {0x01,0x27,0x91,0x8f,0xc0},    /* 00 */
738  {0x03,0x4f,0x83,0x8f,0xc0},    /* 01 */
739  {0x05,0x27,0x91,0x8f,0xc0},    /* 02 */
740  {0x06,0x4f,0x83,0x8f,0xc0},    /* 03 */
741  {0x07,0x4f,0x83,0x8f,0xc0},    /* 04 */
742  {0x0d,0x27,0x91,0x8f,0xc0},    /* 05 */
743  {0x0e,0x4f,0x83,0x8f,0xc0},    /* 06 */
744  {0x0f,0x4f,0x83,0x5d,0xc0},    /* 07 */
745  {0x10,0x4f,0x83,0x5d,0xc0},    /* 08 */
746  {0x11,0x4f,0x83,0xdf,0x0c},    /* 09 */
747  {0x12,0x4f,0x83,0xdf,0x0c},    /* 10 */
748  {0x13,0x4f,0x83,0x8f,0xc0},    /* 11 */
749  {0x2e,0x4f,0x83,0xdf,0x0c},    /* 12 */
750  {0x2e,0x4f,0x87,0xdf,0xc0},    /* 13 */
751  {0x2f,0x4f,0x83,0x8f,0xc0},    /* 14 */
752  {0x50,0x27,0x91,0xdf,0x0c},    /* 15 */
753  {0x59,0x27,0x91,0x8f,0xc0}     /* 16 */
754 };
755
756 static struct XGI_CRT1TableStruct XGI_CRT1Table[] =
757 {
758  {{0x2d,0x28,0x90,0x2c,0x90,0x00,0x04,0x00,
759     0xbf,0x1f,0x9c,0x8e,0x96,0xb9,0x30}}, /* 0x0 */
760  {{0x2d,0x28,0x90,0x2c,0x90,0x00,0x04,0x00,
761     0x0b,0x3e,0xe9,0x8b,0xe7,0x04,0x00}}, /* 0x1 */
762  {{0x3D,0x31,0x81,0x37,0x1F,0x00,0x05,0x00,
763     0x72,0xF0,0x58,0x8C,0x57,0x73,0xA0}}, /* 0x2 */
764  {{0x4F,0x3F,0x93,0x45,0x0D,0x00,0x01,0x00,
765     0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x3 */
766  {{0x5F,0x50,0x82,0x55,0x81,0x00,0x05,0x00,
767     0xBF,0x1F,0x9C,0x8E,0x96,0xB9,0x30}}, /* 0x4 */
768  {{0x5F,0x50,0x82,0x55,0x81,0x00,0x05,0x00,
769     0x0B,0x3E,0xE9,0x8B,0xE7,0x04,0x00}}, /* 0x5 */
770  {{0x63,0x50,0x86,0x56,0x9B,0x00,0x01,0x00,
771     0x06,0x3E,0xE8,0x8B,0xE7,0xFF,0x10}}, /* 0x6 */
772  {{0x64,0x4F,0x88,0x55,0x9D,0x00,0x01,0x00,
773     0xF2,0x1F,0xE0,0x83,0xDF,0xF3,0x10}}, /* 0x7 */
774  {{0x63,0x4F,0x87,0x5A,0x81,0x00,0x05,0x00,
775     0xFB,0x1F,0xE0,0x83,0xDF,0xFC,0x10}}, /* 0x8 */
776  {{0x65,0x4F,0x89,0x58,0x80,0x00,0x05,0x60,
777     0xFB,0x1F,0xE0,0x83,0xDF,0xFC,0x80}}, /* 0x9 */
778  {{0x65,0x4F,0x89,0x58,0x80,0x00,0x05,0x60,
779     0x01,0x3E,0xE0,0x83,0xDF,0x02,0x80}}, /* 0xa */
780  {{0x67,0x4F,0x8B,0x58,0x81,0x00,0x05,0x60,
781     0x0D,0x3E,0xE0,0x83,0xDF,0x0E,0x90}}, /* 0xb */
782  {{0x65,0x4F,0x89,0x57,0x9F,0x00,0x01,0x00,
783    0xFB,0x1F,0xE6,0x8A,0xDF,0xFC,0x10}}, /* 0xc */
784  {{0x7B,0x63,0x9F,0x6A,0x93,0x00,0x05,0x00,    /* ; 0D (800x600,56Hz) */
785     0x6F,0xF0,0x58,0x8A,0x57,0x70,0xA0}},         /* ; (VCLK 36.0MHz) */
786  {{0x7F,0x63,0x83,0x6C,0x1C,0x00,0x06,0x00,    /* ; 0E (800x600,60Hz) */
787     0x72,0xF0,0x58,0x8C,0x57,0x73,0xA0}},         /* ; (VCLK 40.0MHz) */
788  {{0x7D,0x63,0x81,0x6E,0x1D,0x00,0x06,0x00,    /* ; 0F (800x600,72Hz) */
789     0x98,0xF0,0x7C,0x82,0x57,0x99,0x80}},         /* ; (VCLK 50.0MHz) */
790  {{0x7F,0x63,0x83,0x69,0x13,0x00,0x06,0x00,    /* ; 10 (800x600,75Hz) */
791     0x6F,0xF0,0x58,0x8B,0x57,0x70,0xA0}},         /* ; (VCLK 49.5MHz) */
792  {{0x7E,0x63,0x82,0x6B,0x13,0x00,0x06,0x00,    /* ; 11 (800x600,85Hz) */
793     0x75,0xF0,0x58,0x8B,0x57,0x76,0xA0}},         /* ; (VCLK 56.25MHz) */
794  {{0x81,0x63,0x85,0x6D,0x18,0x00,0x06,0x60,    /* ; 12 (800x600,100Hz) */
795     0x7A,0xF0,0x58,0x8B,0x57,0x7B,0xA0}},         /* ; (VCLK 75.8MHz) */
796  {{0x83,0x63,0x87,0x6E,0x19,0x00,0x06,0x60,    /* ; 13 (800x600,120Hz) */
797     0x81,0xF0,0x58,0x8B,0x57,0x82,0xA0}},         /* ; (VCLK 79.411MHz) */
798  {{0x85,0x63,0x89,0x6F,0x1A,0x00,0x06,0x60,    /* ; 14 (800x600,160Hz) */
799    0x91,0xF0,0x58,0x8B,0x57,0x92,0xA0}},         /* ; (VCLK 105.822MHz) */
800  {{0x99,0x7F,0x9D,0x84,0x1A,0x00,0x02,0x00,
801     0x96,0x1F,0x7F,0x83,0x7F,0x97,0x10}}, /* 0x15 */
802  {{0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00,
803     0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x16 */
804  {{0xA1,0x7F,0x85,0x86,0x97,0x00,0x02,0x00,
805     0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x17 */
806  {{0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00,
807     0x1E,0xF5,0x00,0x83,0xFF,0x1F,0x90}}, /* 0x18 */
808  {{0xA7,0x7F,0x8B,0x89,0x95,0x00,0x02,0x00,
809     0x26,0xF5,0x00,0x83,0xFF,0x27,0x90}}, /* 0x19 */
810  {{0xA9,0x7F,0x8D,0x8C,0x9A,0x00,0x02,0x62,
811     0x2C,0xF5,0x00,0x83,0xFF,0x2D,0x14}}, /* 0x1a */
812  {{0xAB,0x7F,0x8F,0x8D,0x9B,0x00,0x02,0x62,
813     0x35,0xF5,0x00,0x83,0xFF,0x36,0x14}}, /* 0x1b */
814  {{0xCF,0x9F,0x93,0xB2,0x01,0x00,0x03,0x00,
815     0x14,0xBA,0x00,0x83,0xFF,0x15,0x00}}, /* 0x1c */
816  {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00,
817     0x28,0x5A,0x00,0x83,0xFF,0x29,0x89}}, /* 0x1d */
818  {{0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00,
819     0x28,0x5A,0x00,0x83,0xFF,0x29,0x89}}, /* 0x1e */
820  {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x00,
821     0x2E,0x5A,0x00,0x83,0xFF,0x2F,0x89}}, /* 0x1f */
822  {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
823     0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x20 */
824  {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
825     0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x21 */
826  {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
827     0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x22 */
828  {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
829     0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x23 */
830  {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
831     0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x24 */
832  {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
833     0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x25 */
834  {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
835     0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x26 */
836  {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00,
837     0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x27 */
838  {{0x43,0xEF,0x87,0x06,0x00,0x41,0x05,0x62,
839     0xD4,0x1F,0xA0,0x83,0x9F,0xD5,0x9F}}, /* 0x28 */
840  {{0x45,0xEF,0x89,0x07,0x01,0x41,0x05,0x62,
841     0xD9,0x1F,0xA0,0x83,0x9F,0xDA,0x9F}}, /* 0x29 */
842  {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00,
843     0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2a */
844  {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00,
845     0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2b */
846  {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00,
847     0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2c */
848  {{0x59,0xFF,0x9D,0x17,0x13,0x41,0x05,0x44,
849     0x33,0xBA,0x00,0x83,0xFF,0x34,0x0F}}, /* 0x2d */
850  {{0x5B,0xFF,0x9F,0x18,0x14,0x41,0x05,0x44,
851     0x38,0xBA,0x00,0x83,0xFF,0x39,0x0F}}, /* 0x2e */
852  {{0x5B,0xFF,0x9F,0x18,0x14,0x41,0x05,0x44,
853     0x3D,0xBA,0x00,0x83,0xFF,0x3E,0x0F}}, /* 0x2f */
854  {{0x5D,0xFF,0x81,0x19,0x95,0x41,0x05,0x44,
855     0x41,0xBA,0x00,0x84,0xFF,0x42,0x0F}}, /* 0x30 */
856  {{0x55,0xFF,0x99,0x0D,0x0C,0x41,0x05,0x00,
857     0x3E,0xBA,0x00,0x84,0xFF,0x3F,0x0F}}, /* 0x31 */
858  {{0x7F,0x63,0x83,0x6C,0x1C,0x00,0x06,0x00,
859     0x72,0xBA,0x27,0x8B,0xDF,0x73,0x80}}, /* 0x32 */
860  {{0x7F,0x63,0x83,0x69,0x13,0x00,0x06,0x00,
861     0x6F,0xBA,0x26,0x89,0xDF,0x6F,0x80}}, /* 0x33 */
862  {{0x7F,0x63,0x82,0x6B,0x13,0x00,0x06,0x00,
863     0x75,0xBA,0x29,0x8C,0xDF,0x75,0x80}}, /* 0x34 */
864  {{0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00,
865     0x24,0xF1,0xAF,0x85,0x3F,0x25,0xB0}}, /* 0x35 */
866  {{0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00,
867     0x1E,0xF1,0xAD,0x81,0x3F,0x1F,0xB0}}, /* 0x36 */
868  {{0xA7,0x7F,0x88,0x89,0x15,0x00,0x02,0x00,
869     0x26,0xF1,0xB1,0x85,0x3F,0x27,0xB0}}, /* 0x37 */
870  {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00,
871     0x28,0xC4,0x7A,0x8E,0xCF,0x29,0xA1}}, /* 0x38 */
872  {{0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00,
873     0x28,0xD4,0x7A,0x8E,0xCF,0x29,0xA1}}, /* 0x39 */
874  {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x00,
875     0x2E,0xD4,0x7D,0x81,0xCF,0x2F,0xA1}}, /* 0x3a */
876  {{0xDC,0x9F,0x00,0xAB,0x19,0x00,0x07,0x00,
877     0xE6,0xEF,0xC0,0xC3,0xBF,0xE7,0x90}}, /* 0x3b */
878  {{0x6B,0x59,0x8F,0x5E,0x8C,0x00,0x05,0x00,
879     0x0B,0x3E,0xE9,0x8B,0xE7,0x04,0x00}}, /* 0x3c */
880  {{0x7B,0x63,0x9F,0x6A,0x93,0x00,0x05,0x00,
881     0x6F,0xF0,0x58,0x8A,0x57,0x70,0xA0}}, /* 0x3d */
882  {{0x86,0x6A,0x8a,0x74,0x06,0x00,0x02,0x00,
883     0x8c,0x15,0x4f,0x83,0xef,0x8d,0x30}}, /* 0x3e */
884  {{0x81,0x6A,0x85,0x70,0x00,0x00,0x02,0x00,
885     0x0f,0x3e,0xeb,0x8e,0xdf,0x10,0x00}}, /* 0x3f */
886  {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00,
887     0x20,0xF5,0x03,0x88,0xFF,0x21,0x90}}, /* 0x40 */
888  {{0xE6,0xAE,0x8A,0xBD,0x90,0x00,0x03,0x00,
889     0x3D,0x10,0x1A,0x8D,0x19,0x3E,0x2F}}, /* 0x41 */
890  {{0xB9,0x8F,0x9D,0x9B,0x8A,0x00,0x06,0x00,
891     0x7D,0xFF,0x60,0x83,0x5F,0x7E,0x90}}, /* 0x42 */
892  {{0xC3,0x8F,0x87,0x9B,0x0B,0x00,0x07,0x00,
893     0x82,0xFF,0x60,0x83,0x5F,0x83,0x90}},  /* 0x43 */
894  {{0xAD,0x7F,0x91,0x8E,0x9C,0x00,0x02,0x82,
895     0x49,0xF5,0x00,0x83,0xFF,0x4A,0x90}},  /* 0x44 */
896  {{0xCD,0x9F,0x91,0xA7,0x19,0x00,0x07,0x60,
897     0xE6,0xFF,0xC0,0x83,0xBF,0xE7,0x90}},  /* 0x45 */
898  {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x60,
899     0xF1,0xFF,0xC0,0x83,0xBF,0xF2,0x90}},  /* 0x46 */
900  {{0xD7,0x9F,0x9B,0xAC,0x1E,0x00,0x07,0x00,
901     0x03,0xDE,0xC0,0x84,0xBF,0x04,0x90}}  /* 0x47 */
902 };
903
904 #if 0
905 static struct XGI330_CHTVRegDataStruct XGI_CHTVRegUNTSC[] = {
906                 /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */
907                 {{      0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 00 (640x200,640x400) */
908                 {{      0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 01 (640x350) */
909                 {{      0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 02 (720x400) */
910                 {{      0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 03 (720x350) */
911                 {{      0x6A,0x77,0xBB,0x6E,0x84,0x2E,0x02,0x5A,0x04,0x00,0x80,0x20,0x7E,0x80,0x97,0x00  }},/* 04 (640x480) ;;5/6/02 */
912                 {{      0xCF,0x77,0xB7,0xC8,0x84,0x3B,0x02,0x5A,0x04,0x00,0x80,0x19,0x88,0xAE,0xA3,0x00  }},/* 05 (800x600) ;;1/12/02 */
913                 {{      0xEE,0x77,0xBB,0x66,0x87,0x32,0x01,0x5A,0x04,0x00,0x80,0x1B,0xD4,0x2F,0x6F,0x00  }}/* 06 (1024x768) ;;5/6/02 */
914           };
915
916 static struct XGI330_CHTVRegDataStruct XGI_CHTVRegONTSC[] = {
917                 /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */
918                 {{      0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 00 (640x200,640x400) */
919                 {{      0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 01 (640x350) */
920                 {{      0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 02 (720x400) */
921                 {{      0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 03 (720x350) */
922                 {{      0x69,0x77,0xBB,0x6E,0x84,0x1E,0x00,0x5A,0x04,0x00,0x80,0x25,0x1A,0x80,0x26,0x00  }},/* 04 (640x480) ;;5/6/02 */
923                 {{      0xCE,0x77,0xB7,0xB6,0x83,0x2C,0x02,0x5A,0x04,0x00,0x80,0x1C,0x00,0x82,0x97,0x00  }},/* 05 (800x600) ;;5/6/02 */
924                 {{      0xED,0x77,0xBB,0x66,0x8C,0x21,0x02,0x5A,0x04,0x00,0x80,0x1F,0xA0,0x7E,0x73,0x00  }}/* 06 (1024x768) ;;5/6/02 */
925           };
926
927 static struct XGI330_CHTVRegDataStruct XGI_CHTVRegUPAL[] = {
928                 /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */
929                 {{      0x41,0x7F,0xB7,0x34,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* ; 00 (640x200,640x400) */
930                 {{      0x41,0x7F,0xB7,0x80,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* ; 01 (640x350) */
931                 {{      0x41,0x7F,0xB7,0x34,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* ; 02 (720x400) */
932                 {{      0x41,0x7F,0xB7,0x12,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* ; 03 (720x350) */
933                 {{      0x61,0x7F,0xB7,0x99,0x84,0x35,0x04,0x5A,0x05,0x00,0x80,0x26,0x2A,0x55,0x5D,0x00  }},/* ; 04 (640x480) */
934                 {{      0xC3,0x7F,0xB7,0x7A,0x84,0x40,0x02,0x5A,0x05,0x00,0x80,0x1F,0x84,0x3D,0x28,0x00  }},/* ; 05 (800x600) ;;1/12/02 */
935                 {{      0xE5,0x7F,0xB7,0x1D,0xA7,0x3E,0x04,0x5A,0x05,0x00,0x80,0x20,0x3E,0xE4,0x22,0x00  }}/* ; 06 (1024x768) ;;1/12/02 */
936           };
937
938 static struct XGI330_CHTVRegDataStruct XGI_CHTVRegOPAL[] = {
939                 /* Index:000,0x01,0x02,0x04,0x03,0x05,0x06,0x07,0x08,0x15,0x1F,0x0C,0x0D,0x0E,0x0F,0x10h */
940                 {{      0x41,0x7F,0xB7,0x36,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 00 (640x200,640x400) */
941                 {{      0x41,0x7F,0xB7,0x86,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 01 (640x350) */
942                 {{      0x41,0x7F,0xB7,0x36,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 02 (720x400) */
943                 {{      0x41,0x7F,0xB7,0x86,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 03 (720x350) */
944                 {{      0x61,0x7F,0xB7,0x99,0x84,0x35,0x04,0x5A,0x05,0x00,0x80,0x26,0x2A,0x55,0x5D,0x00 }},/* 04 (640x480) */
945                 {{      0xC1,0x7F,0xB7,0x4D,0x8C,0x1E,0x31,0x5A,0x05,0x00,0x80,0x26,0x78,0x19,0x34,0x00 }},/* 05 (800x600) ;;1/12/02 */
946                 {{      0xE4,0x7F,0xB7,0x1E,0xAF,0x29,0x37,0x5A,0x05,0x00,0x80,0x25,0x8C,0xB2,0x2A,0x00 }}/* 06 (1024x768) ;;1/12/02 */
947              };
948 #endif
949
950 static unsigned char XGI_CH7017LV1024x768[] = {
951                                         0x60, 0x02, 0x00, 0x07, 0x40, 0xED, 0xA3,
952                                         0xC8, 0xC7, 0xAC, 0xE0, 0x02};
953 static unsigned char XGI_CH7017LV1400x1050[] = {
954                                          0x60, 0x03, 0x11, 0x00, 0x40, 0xE3, 0xAD,
955                                          0xDB, 0xF6, 0xAC, 0xE0, 0x02};
956
957
958 /*add for new UNIVGABIOS*/
959 static struct XGI330_LCDDataStruct  XGI_StLCD1024x768Data[] =
960 {
961  {   62,  25, 800, 546,1344, 806},
962  {   32,  15, 930, 546,1344, 806},
963  {   62,  25, 800, 546,1344, 806}, /* chiawen for dot9 -> dot8 */
964  {  104,  45, 945, 496,1344, 806},
965  {   62,  25, 800, 546,1344, 806},
966  {   31,  18,1008, 624,1344, 806},
967  {    1,   1,1344, 806,1344, 806}
968 };
969
970 static struct XGI330_LCDDataStruct  XGI_ExtLCD1024x768Data[] =
971 {
972  {   42,  25,1536, 419,1344, 806}, /* { 12, 5, 896, 512,1344, 806}, // alan 09/12/2003 */
973  {   48,  25,1536, 369,1344, 806}, /* { 12, 5, 896, 510,1344, 806}, // alan 09/12/2003 */
974  {   42,  25,1536, 419,1344, 806}, /* { 32, 15,1008, 505,1344, 806}, // alan 09/12/2003 */
975  {   48,  25,1536, 369,1344, 806}, /* { 32, 15,1008, 514,1344, 806}, // alan 09/12/2003 */
976  {   12,   5, 896, 500,1344, 806},
977  {   42,  25,1024, 625,1344, 806},
978  {    1,   1,1344, 806,1344, 806},
979  {   12,   5, 896, 500,1344, 806},
980  {   42,  25,1024, 625,1344, 806},
981  {    1,   1,1344, 806,1344, 806},
982  {   12,   5, 896, 500,1344, 806},
983  {   42,  25,1024, 625,1344, 806},
984  {    1,   1,1344, 806,1344, 806}
985 };
986
987 /*struct XGI330_LCDDataStruct  XGI_St2LCD1024x768Data[] =
988 {
989  {   62,  25, 800, 546,1344, 806},
990  {   32,  15, 930, 546,1344, 806},
991  {   62,  25, 800, 546,1344, 806},
992  {  104,  45, 945, 496,1344, 806},
993  {   62,  25, 800, 546,1344, 806},
994  {   31,  18,1008, 624,1344, 806},
995  {    1,   1,1344, 806,1344, 806}
996 };*/
997
998 static struct XGI330_LCDDataStruct  XGI_CetLCD1024x768Data[] =
999 {
1000         {         1,1,1344,806,1344,806           }, /* ; 00 (320x200,320x400,640x200,640x400) */
1001         {         1,1,1344,806,1344,806           }, /* 01 (320x350,640x350) */
1002         {         1,1,1344,806,1344,806           }, /* 02 (360x400,720x400) */
1003         {         1,1,1344,806,1344,806           }, /* 03 (720x350) */
1004         {         1,1,1344,806,1344,806           }, /* 04 (640x480x60Hz) */
1005         {         1,1,1344,806,1344,806           }, /* 05 (800x600x60Hz) */
1006         {         1,1,1344,806,1344,806           }  /* 06 (1024x768x60Hz) */
1007 };
1008
1009 static struct XGI330_LCDDataStruct  XGI_StLCD1280x1024Data[] =
1010 {
1011  {   22,   5, 800, 510,1650,1088},
1012  {   22,   5, 800, 510,1650,1088},
1013  {  176,  45, 900, 510,1650,1088},
1014  {  176,  45, 900, 510,1650,1088},
1015  {   22,   5, 800, 510,1650,1088},
1016  {   13,   5,1024, 675,1560,1152},
1017  {   16,   9,1266, 804,1688,1072},
1018  {    1,   1,1688,1066,1688,1066}
1019 };
1020
1021 static struct XGI330_LCDDataStruct  XGI_ExtLCD1280x1024Data[] =
1022 {
1023  {  211,  60,1024, 501,1688,1066},
1024  {  211,  60,1024, 508,1688,1066},
1025  {  211,  60,1024, 501,1688,1066},
1026  {  211,  60,1024, 508,1688,1066},
1027  {  211,  60,1024, 500,1688,1066},
1028  {  211,  75,1024, 625,1688,1066},
1029  {  211, 120,1280, 798,1688,1066},
1030  {    1,   1,1688,1066,1688,1066}
1031 };
1032
1033 #if 0
1034 static struct XGI330_LCDDataStruct  XGI_St2LCD1280x1024Data[] =
1035 {
1036  {   22,   5, 800, 510,1650,1088},
1037  {   22,   5, 800, 510,1650,1088},
1038  {  176,  45, 900, 510,1650,1088},
1039  {  176,  45, 900, 510,1650,1088},
1040  {   22,   5, 800, 510,1650,1088},
1041  {   13,   5,1024, 675,1560,1152},
1042  {   16,   9,1266, 804,1688,1072},
1043  {    1,   1,1688,1066,1688,1066}
1044 };
1045 #endif
1046
1047 static struct XGI330_LCDDataStruct  XGI_CetLCD1280x1024Data[] =
1048 {
1049         {         1,1,1688,1066,1688,1066         }, /* 00 (320x200,320x400,640x200,640x400) */
1050         {         1,1,1688,1066,1688,1066         }, /* 01 (320x350,640x350) */
1051         {         1,1,1688,1066,1688,1066         }, /* 02 (360x400,720x400) */
1052         {         1,1,1688,1066,1688,1066         }, /* 03 (720x350) */
1053         {         1,1,1688,1066,1688,1066         }, /* 04 (640x480x60Hz) */
1054         {         1,1,1688,1066,1688,1066         }, /* 05 (800x600x60Hz) */
1055         {         1,1,1688,1066,1688,1066         }, /* 06 (1024x768x60Hz) */
1056         {         1,1,1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz) */
1057         {         1,1,1688,1066,1688,1066         } /* 08 (1400x1050x60Hz) */
1058 };
1059
1060 static struct XGI330_LCDDataStruct  XGI_StLCD1400x1050Data[] =
1061 {
1062         {         211,100,2100,408,1688,1066      }, /* 00 (320x200,320x400,640x200,640x400) */
1063         {         211,64,1536,358,1688,1066       }, /* 01 (320x350,640x350) */
1064         {         211,100,2100,408,1688,1066      }, /* 02 (360x400,720x400) */
1065         {         211,64,1536,358,1688,1066       }, /* 03 (720x350) */
1066         {         211,48,840,488,1688,1066        }, /* 04 (640x480x60Hz) */
1067         {         211,72,1008,609,1688,1066       }, /* 05 (800x600x60Hz) */
1068         {         211,128,1400,776,1688,1066      }, /* 06 (1024x768x60Hz) */
1069         {         1,1,1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz w/o Scaling) */
1070         {         1,1,1688,1066,1688,1066         }  /* 08 (1400x1050x60Hz) */
1071 };
1072
1073 static struct XGI330_LCDDataStruct  XGI_ExtLCD1400x1050Data[] =
1074 {
1075         {         211,100,2100,408,1688,1066      }, /* 00 (320x200,320x400,640x200,640x400) */
1076         {         211,64,1536,358,1688,1066       }, /* 01 (320x350,640x350) */
1077         {         211,100,2100,408,1688,1066      }, /* 02 (360x400,720x400) */
1078         {         211,64,1536,358,1688,1066       }, /* 03 (720x350) */
1079         {         211,48,840,488,1688,1066        }, /* 04 (640x480x60Hz) */
1080         {         211,72,1008,609,1688,1066       }, /* 05 (800x600x60Hz) */
1081         {         211,128,1400,776,1688,1066      }, /* 06 (1024x768x60Hz) */
1082         {         1,1,1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz w/o Scaling) */
1083         {         1,1,1688,1066,1688,1066         }  /* 08 (1400x1050x60Hz) */
1084 };
1085
1086 static struct XGI330_LCDDataStruct  XGI_ExtLCD1600x1200Data[] =
1087 {
1088         {         4,1,1620,420,2160,1250          }, /* { 3,1,2160,425,2160,1250 }, // 00 (320x200,320x400,640x200,640x400) // alan 10/14/2003 */
1089         {         27,7,1920,375,2160,1250         }, /* 01 (320x350,640x350) */
1090         {         4,1,1620,420,2160,1250          }, /* { 3,1,2160,425,2160,1250 }, // 02 (360x400,720x400) // alan 10/14/2003 */
1091         {         27,7,1920,375,2160,1250         }, /* 03 (720x350) */
1092         {         27,4,800,500,2160,1250          }, /* 04 (640x480x60Hz) */
1093         {         4,1,1080,625,2160,1250          }, /* 05 (800x600x60Hz) */
1094         {         5,2,1350,800,2160,1250          }, /* 06 (1024x768x60Hz) */
1095         {         27,16,1500,1064,2160,1250       }, /* 07 (1280x1024x60Hz) */
1096         {         9,7,1920,1106,2160,1250         }, /* 08 (1400x1050x60Hz) */
1097         {         1,1,2160,1250,2160,1250         }  /* 09 (1600x1200x60Hz) ;302lv */
1098 };
1099
1100 static struct XGI330_LCDDataStruct  XGI_StLCD1600x1200Data[] =
1101 {
1102         {         27,4,800,500,2160,1250          },/* 00 (320x200,320x400,640x200,640x400) */
1103         {         27,4,800,500,2160,1250          },/* 01 (320x350,640x350) */
1104         {         27,4,800,500,2160,1250          },/* 02 (360x400,720x400) */
1105         {         27,4,800,500,2160,1250          },/* 03 (720x350) */
1106         {         27,4,800,500,2160,1250          },/* 04 (320x240,640x480) */
1107         {         4,1,1080,625,2160,1250          },/* 05 (400x300,800x600) */
1108         {         5,2,1350,800,2160,1250          },/* 06 (512x384,1024x768) */
1109         {         135,88,1600,1100,2160,1250      },/* 07 (1280x1024) */
1110         {         1,1,1800,1500,2160,1250         },/* 08 (1400x1050) */
1111         {         1,1,2160,1250,2160,1250         } /* 09 (1600x1200) */
1112 };
1113
1114 static struct XGI330_LCDDataStruct  XGI_CetLCD1400x1050Data[] =
1115 {
1116         {         1,1,1688,1066,1688,1066         }, /* 00 (320x200,320x400,640x200,640x400) */
1117         {         1,1,1688,1066,1688,1066         }, /* 01 (320x350,640x350) */
1118         {         1,1,1688,1066,1688,1066         }, /* 02 (360x400,720x400) */
1119         {         1,1,1688,1066,1688,1066         }, /* 03 (720x350) */
1120         {         1,1,1688,1066,1688,1066         }, /* 04 (640x480x60Hz) */
1121         {         1,1,1688,1066,1688,1066         }, /* 05 (800x600x60Hz) */
1122         {         1,1,1688,1066,1688,1066         }, /* 06 (1024x768x60Hz) */
1123         {         1,1,1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz) */
1124         {         1,1,1688,1066,1688,1066         }  /* 08 (1400x1050x60Hz) */
1125 };
1126
1127 static struct XGI330_LCDDataStruct  XGI_NoScalingData[] =
1128 {
1129  {    1,   1, 800, 449, 800, 449},
1130  {    1,   1, 800, 449, 800, 449},
1131  {    1,   1, 900, 449, 900, 449},
1132  {    1,   1, 900, 449, 900, 449},
1133  {    1,   1, 800, 525, 800, 525},
1134  {    1,   1,1056, 628,1056, 628},
1135  {    1,   1,1344, 806,1344, 806},
1136  {    1,   1,1688,1066,1688,1066}
1137 };
1138
1139 static struct XGI330_LCDDataStruct  XGI_ExtLCD1024x768x75Data[] =
1140 {
1141         {42,25,1536,419,1344,806 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1142         {48,25,1536,369,1344,806 }, /* ; 01 (320x350,640x350) */
1143         {42,25,1536,419,1344,806 }, /* ; 02 (360x400,720x400) */
1144         {48,25,1536,369,1344,806 }, /* ; 03 (720x350) */
1145         {8,5,1312,500,1312,800   }, /* ; 04 (640x480x75Hz) */
1146         {41,25,1024,625,1312,800 }, /* ; 05 (800x600x75Hz) */
1147         {1,1,1312,800,1312,800   }  /* ; 06 (1024x768x75Hz) */
1148 };
1149
1150 #if 0
1151 static struct XGI330_LCDDataStruct  XGI_StLCD1024x768x75Data[] =
1152 {
1153         {42,25,1536,419,1344,806 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1154         {48,25,1536,369,1344,806 }, /* ; 01 (320x350,640x350) */
1155         {42,25,1536,419,1344,806 }, /* ; 02 (360x400,720x400) */
1156         {48,25,1536,369,1344,806 }, /* ; 03 (720x350) */
1157         {8,5,1312,500,1312,800   }, /* ; 04 (640x480x75Hz) */
1158         {41,25,1024,625,1312,800 }, /* ; 05 (800x600x75Hz) */
1159         {1,1,1312,800,1312,800   }  /* ; 06 (1024x768x75Hz) */
1160 };
1161 #endif
1162
1163 static struct XGI330_LCDDataStruct  XGI_CetLCD1024x768x75Data[] =
1164 {
1165         {1,1,1312,800,1312,800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1166         {1,1,1312,800,1312,800}, /* ; 01 (320x350,640x350) */
1167         {1,1,1312,800,1312,800}, /* ; 02 (360x400,720x400) */
1168         {1,1,1312,800,1312,800}, /* ; 03 (720x350) */
1169         {1,1,1312,800,1312,800}, /* ; 04 (640x480x75Hz) */
1170         {1,1,1312,800,1312,800}, /* ; 05 (800x600x75Hz) */
1171         {1,1,1312,800,1312,800} /* ; 06 (1024x768x75Hz) */
1172 };
1173
1174 static struct XGI330_LCDDataStruct  XGI_ExtLCD1280x1024x75Data[] =
1175 {
1176         {211,60,1024,501,1688,1066   }, /* ; 00 (320x200,320x400,640x200,640x400) */
1177         {211,60,1024,508,1688,1066   }, /* ; 01 (320x350,640x350) */
1178         {211,60,1024,501,1688,1066   }, /* ; 02 (360x400,720x400) */
1179         {211,60,1024,508,1688,1066   }, /* ; 03 (720x350) */
1180         {211,45,768,498,1688,1066    }, /* ; 04 (640x480x75Hz) */
1181         {211,75,1024,625,1688,1066   }, /* ; 05 (800x600x75Hz) */
1182         {211,120,1280,798,1688,1066  }, /* ; 06 (1024x768x75Hz) */
1183         {1,1,1688,1066,1688,1066     }  /* ; 07 (1280x1024x75Hz) */
1184 };
1185
1186 static struct XGI330_LCDDataStruct  XGI_StLCD1280x1024x75Data[] =
1187 {
1188         {211,60,1024,501,1688,1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1189         {211,60,1024,508,1688,1066 }, /* ; 01 (320x350,640x350) */
1190         {211,60,1024,501,1688,1066 }, /* ; 02 (360x400,720x400) */
1191         {211,60,1024,508,1688,1066 }, /* ; 03 (720x350) */
1192         {211,45,768,498,1688,1066  }, /* ; 04 (640x480x75Hz) */
1193         {211,75,1024,625,1688,1066 }, /* ; 05 (800x600x75Hz) */
1194         {211,120,1280,798,1688,1066}, /* ; 06 (1024x768x75Hz) */
1195         {1,1,1688,1066,1688,1066   }  /* ; 07 (1280x1024x75Hz) */
1196 };
1197
1198 static struct XGI330_LCDDataStruct  XGI_CetLCD1280x1024x75Data[] =
1199 {
1200         {1,1,1688,1066,1688,1066}, /* ; 00 (320x200,320x400,640x200,640x400) */
1201         {1,1,1688,1066,1688,1066}, /* ; 01 (320x350,640x350) */
1202         {1,1,1688,1066,1688,1066}, /* ; 02 (360x400,720x400) */
1203         {1,1,1688,1066,1688,1066}, /* ; 03 (720x350) */
1204         {1,1,1688,1066,1688,1066}, /* ; 04 (640x480x75Hz) */
1205         {1,1,1688,1066,1688,1066}, /* ; 05 (800x600x75Hz) */
1206         {1,1,1688,1066,1688,1066}, /* ; 06 (1024x768x75Hz) */
1207         {1,1,1688,1066,1688,1066}  /* ; 07 (1280x1024x75Hz) */
1208 };
1209
1210 static struct XGI330_LCDDataStruct  XGI_NoScalingDatax75[] =
1211 {
1212         {1,1,800,449,800,449    }, /* ; 00 (320x200,320x400,640x200,640x400) */
1213         {1,1,800,449,800,449    }, /* ; 01 (320x350,640x350) */
1214         {1,1,900,449,900,449    }, /* ; 02 (360x400,720x400) */
1215         {1,1,900,449,900,449    }, /* ; 03 (720x350) */
1216         {1,1,840,500,840,500    }, /* ; 04 (640x480x75Hz) */
1217         {1,1,1056,625,1056,625  }, /* ; 05 (800x600x75Hz) */
1218         {1,1,1312,800,1312,800  }, /* ; 06 (1024x768x75Hz) */
1219         {1,1,1688,1066,1688,1066}, /* ; 07 (1280x1024x75Hz) */
1220         {1,1,1688,1066,1688,1066}, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */
1221         {1,1,2160,1250,2160,1250}, /* ; 09 (1600x1200x75Hz) */
1222         {1,1,1688,806,1688,806  }  /* ; 0A (1280x768x75Hz) */
1223 };
1224
1225 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDes1024x768Data[] =
1226 {
1227    {  9,1057,0, 771  }, /* ; 00 (320x200,320x400,640x200,640x400) */
1228    {  9,1057,0, 771  }, /* ; 01 (320x350,640x350) */
1229    {  9,1057,0, 771  }, /* ; 02 (360x400,720x400) */
1230    {  9,1057,0, 771  }, /* ; 03 (720x350) */
1231    {  9,1057,0, 771  }, /* ; 04 (640x480x60Hz) */
1232    {  9,1057,0, 771  }, /* ; 05 (800x600x60Hz) */
1233    {  9,1057,805, 770  }  /* ; 06 (1024x768x60Hz) */
1234 };
1235
1236 static struct XGI330_LCDDataDesStruct  XGI_StLCDDes1024x768Data[] =
1237 {
1238         { 9,1057,737,703   }, /* ; 00 (320x200,320x400,640x200,640x400) */
1239         { 9,1057,686,651   }, /* ; 01 (320x350,640x350) */
1240         { 9,1057,737,703   }, /* ; 02 (360x400,720x400) */
1241         { 9,1057,686,651   }, /* ; 03 (720x350) */
1242         { 9,1057,776,741   }, /* ; 04 (640x480x60Hz) */
1243         { 9,1057, 0 ,771   }, /* ; 05 (800x600x60Hz) */
1244         { 9,1057,805,770   }  /* ; 06 (1024x768x60Hz) */
1245 };
1246
1247 static struct XGI330_LCDDataDesStruct  XGI_CetLCDDes1024x768Data[] =
1248 {
1249         {      1152,856,622,587   }, /* ; 00 (320x200,320x400,640x200,640x400) */
1250         {      1152,856,597,562   }, /* ; 01 (320x350,640x350) */
1251         {      1152,856,622,587   }, /* ; 02 (360x400,720x400) */
1252         {      1152,856,597,562   }, /* ; 03 (720x350) */
1253         {      1152,856,662,627   }, /* ; 04 (640x480x60Hz) */
1254         {      1232,936,722,687   }, /* ; 05 (800x600x60Hz) */
1255         {      0,1048,805,770   }  /* ; 06 (1024x768x60Hz) */
1256 };
1257
1258 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024Data[] =
1259 {
1260         {      18,1346,981,940     },/* 00 (320x200,320x400,640x200,640x400) */
1261         {      18,1346,926,865     },/* 01 (320x350,640x350) */
1262         {      18,1346,981,940     },/* 02 (360x400,720x400) */
1263         {      18,1346,926,865     },/* 03 (720x350) */
1264         {      18,1346,0,1025     },/* 04 (640x480x60Hz) */
1265         {      18,1346,0,1025     },/* 05 (800x600x60Hz) */
1266         {      18,1346,1065,1024     },/* 06 (1024x768x60Hz) */
1267         {      18,1346,1065,1024     }/* 07 (1280x1024x60Hz) */
1268 };
1269
1270 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024Data[] =
1271 {
1272         {      18,1346,970,907     },/* 00 (320x200,320x400,640x200,640x400) */
1273         {      18,1346,917,854     },/* 01 (320x350,640x350) */
1274         {      18,1346,970,907     },/* 02 (360x400,720x400) */
1275         {      18,1346,917,854     },/* 03 (720x350) */
1276         {      18,1346,0,1025     },/* 04 (640x480x60Hz) */
1277         {      18,1346,0,1025     },/* 05 (800x600x60Hz) */
1278         {      18,1346,1065,1024     },/* 06 (1024x768x60Hz) */
1279         {      18,1346,1065,1024     }/* 07 (1280x1024x60Hz) */
1280 };
1281
1282 static struct XGI330_LCDDataDesStruct  XGI_CetLCDDLDes1280x1024Data[] =
1283 {
1284         {      1368,1008,752,711    }, /* 00 (320x200,320x400,640x200,640x400) */
1285         {      1368,1008,729,688    }, /* 01 (320x350,640x350) */
1286         {      1368,1008,752,711    }, /* 02 (360x400,720x400) */
1287         {      1368,1008,729,688    }, /* 03 (720x350) */
1288         {      1368,1008,794,753    }, /* 04 (640x480x60Hz) */
1289         {      1448,1068,854,813    }, /* 05 (800x600x60Hz) */
1290         {      1560,1200,938,897    }, /* 06 (1024x768x60Hz) */
1291         {      18,1346,1065,1024    }  /* 07 (1280x1024x60Hz) */
1292 };
1293
1294 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDes1280x1024Data[] =
1295 {
1296         {      9,1337,981,940    }, /* ; 00 (320x200,320x400,640x200,640x400) */
1297         {      9,1337,926,884    }, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
1298         {      9,1337,981,940    }, /* ; 02 (360x400,720x400) */
1299         {      9,1337,926,884    }, /* ; 03 (720x350) alan, 2003/09/30 */
1300         {      9,1337,0,1025    }, /* ; 04 (640x480x60Hz) */
1301         {      9,1337,0,1025    }, /* ; 05 (800x600x60Hz) */
1302         {      9,1337,1065,1024    }, /* ; 06 (1024x768x60Hz) */
1303         {      9,1337,1065,1024    }  /* ; 07 (1280x1024x60Hz) */
1304 };
1305
1306 static struct XGI330_LCDDataDesStruct  XGI_StLCDDes1280x1024Data[] =
1307 {
1308         {      9,1337,970,907    }, /* ; 00 (320x200,320x400,640x200,640x400) */
1309         {      9,1337,917,854    }, /* ; 01 (320x350,640x350) */
1310         {      9,1337,970,907    }, /* ; 02 (360x400,720x400) */
1311         {      9,1337,917,854    }, /* ; 03 (720x350) */
1312         {      9,1337,0,1025    }, /* ; 04 (640x480x60Hz) */
1313         {      9,1337,0,1025    }, /* ; 05 (800x600x60Hz) */
1314         {      9,1337,1065,1024    }, /* ; 06 (1024x768x60Hz) */
1315         {      9,1337,1065,1024    }  /* ; 07 (1280x1024x60Hz) */
1316 };
1317
1318 static struct XGI330_LCDDataDesStruct  XGI_CetLCDDes1280x1024Data[] =
1319 {
1320         {      1368,1008,752,711    }, /* 00 (320x200,320x400,640x200,640x400) */
1321         {      1368,1008,729,688    }, /* 01 (320x350,640x350) */
1322         {      1368,1008,752,711    }, /* 02 (360x400,720x400) */
1323         {      1368,1008,729,688    }, /* 03 (720x350) */
1324         {      1368,1008,794,753    }, /* 04 (640x480x60Hz) */
1325         {      1448,1068,854,813    }, /* 05 (800x600x60Hz) */
1326         {      1560,1200,938,897    }, /* 06 (1024x768x60Hz) */
1327         {      9,1337,1065,1024    }  /* 07 (1280x1024x60Hz) */
1328 };
1329
1330 static struct XGI330_LCDDataDesStruct  XGI_StLCDDLDes1400x1050Data[] =
1331 {
1332         {      18,1464,0,1051    }, /* 00 (320x200,320x400,640x200,640x400) */
1333         {      18,1464,0,1051    }, /* 01 (320x350,640x350) */
1334         {      18,1464,0,1051    }, /* 02 (360x400,720x400) */
1335         {      18,1464,0,1051    }, /* 03 (720x350) */
1336         {      18,1464,0,1051    }, /* 04 (640x480x60Hz) */
1337         {      18,1464,0,1051    }, /* 05 (800x600x60Hz) */
1338         {      18,1464,0,1051    }, /* 06 (1024x768x60Hz) */
1339         {      1646,1406,1053,1038    }, /* 07 (1280x1024x60Hz) */
1340         {      18,1464,0,1051    }  /* 08 (1400x1050x60Hz) */
1341 };
1342
1343 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDLDes1400x1050Data[] =
1344 {
1345         {      18,1464,0,1051    }, /* 00 (320x200,320x400,640x200,640x400) */
1346         {      18,1464,0,1051    }, /* 01 (320x350,640x350) */
1347         {      18,1464,0,1051    }, /* 02 (360x400,720x400) */
1348         {      18,1464,0,1051    }, /* 03 (720x350) */
1349         {      18,1464,0,1051    }, /* 04 (640x480x60Hz) */
1350         {      18,1464,0,1051    }, /* 05 (800x600x60Hz) */
1351         {      18,1464,0,1051    }, /* 06 (1024x768x60Hz) */
1352         {      1646,1406,1053,1038    }, /* 07 (1280x1024x60Hz) */
1353         {      18,1464,0,1051    }  /* 08 (1400x1050x60Hz) */
1354 };
1355
1356 static struct XGI330_LCDDataDesStruct  XGI_StLCDDes1400x1050Data[] =
1357 {
1358         {      9,1455,0,1051     },/* 00 (320x200,320x400,640x200,640x400) */
1359         {      9,1455,0,1051     },/* 01 (320x350,640x350) */
1360         {      9,1455,0,1051     },/* 02 (360x400,720x400) */
1361         {      9,1455,0,1051     },/* 03 (720x350) */
1362         {      9,1455,0,1051     },/* 04 (640x480x60Hz) */
1363         {      9,1455,0,1051     },/* 05 (800x600x60Hz) */
1364         {      9,1455,0,1051     },/* 06 (1024x768x60Hz) */
1365         {      1637,1397,1053,1038     },/* 07 (1280x1024x60Hz) */
1366         {      9,1455,0,1051     } /* 08 (1400x1050x60Hz) */
1367 };
1368
1369 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDes1400x1050Data[] =
1370 {
1371         {      9,1455,0,1051     },/* 00 (320x200,320x400,640x200,640x400) */
1372         {      9,1455,0,1051     },/* 01 (320x350,640x350) */
1373         {      9,1455,0,1051     },/* 02 (360x400,720x400) */
1374         {      9,1455,0,1051     },/* 03 (720x350) */
1375         {      9,1455,0,1051     },/* 04 (640x480x60Hz) */
1376         {      9,1455,0,1051     },/* 05 (800x600x60Hz) */
1377         {      9,1455,0,1051     },/* 06 (1024x768x60Hz) */
1378         {      1637,1397,1053,1038     },/* 07 (1280x1024x60Hz) */
1379         {      9,1455,0,1051     } /* 08 (1400x1050x60Hz) */
1380 };
1381
1382 static struct XGI330_LCDDataDesStruct  XGI_CetLCDDes1400x1050Data[] =
1383 {
1384         {      1308,1068,781,766    }, /* 00 (320x200,320x400,640x200,640x400) */
1385         {      1308,1068,781,766    }, /* 01 (320x350,640x350) */
1386         {      1308,1068,781,766    }, /* 02 (360x400,720x400) */
1387         {      1308,1068,781,766    }, /* 03 (720x350) */
1388         {      1308,1068,781,766    }, /* 04 (640x480x60Hz) */
1389         {      1388,1148,841,826    }, /* 05 (800x600x60Hz) */
1390         {      1490,1250,925,910    }, /* 06 (1024x768x60Hz) */
1391         {      1646,1406,1053,1038    }, /* 07 (1280x1024x60Hz) */
1392         {      18,1464,0,1051    } /* 08 (1400x1050x60Hz) */
1393 };
1394
1395 static struct XGI330_LCDDataDesStruct  XGI_CetLCDDes1400x1050Data2[] =
1396 {
1397         {      0,1448,0,1051    }, /* 00 (320x200,320x400,640x200,640x400) */
1398         {      0,1448,0,1051    }, /* 01 (320x350,640x350) */
1399         {      0,1448,0,1051    }, /* 02 (360x400,720x400) */
1400         {      0,1448,0,1051    }, /* 03 (720x350) */
1401         {      0,1448,0,1051    }  /* 04 (640x480x60Hz) */
1402 };
1403
1404
1405
1406 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDLDes1600x1200Data[] =
1407 {
1408         {      18,1682,0,1201    }, /* 00 (320x200,320x400,640x200,640x400) */
1409         {      18,1682,0,1201    }, /* 01 (320x350,640x350) */
1410         {      18,1682,0,1201    }, /* 02 (360x400,720x400) */
1411         {      18,1682,0,1201    }, /* 03 (720x350) */
1412         {      18,1682,0,1201    }, /* 04 (640x480x60Hz) */
1413         {      18,1682,0,1201    }, /* 05 (800x600x60Hz) */
1414         {      18,1682,0,1201    }, /* 06 (1024x768x60Hz) */
1415         {      18,1682,0,1201    }, /* 07 (1280x1024x60Hz) */
1416         {      18,1682,0,1201    }, /* 08 (1400x1050x60Hz) */
1417         {      18,1682,0,1201    }  /* 09 (1600x1200x60Hz) */
1418 };
1419
1420 static struct XGI330_LCDDataDesStruct  XGI_StLCDDLDes1600x1200Data[] =
1421 {
1422         {      18,1682,1150,1101    }, /* 00 (320x200,320x400,640x200,640x400) */
1423         {      18,1682,1083,1034    }, /* 01 (320x350,640x350) */
1424         {      18,1682,1150,1101    }, /* 02 (360x400,720x400) */
1425         {      18,1682,1083,1034    }, /* 03 (720x350) */
1426         {      18,1682,0,1201    }, /* 04 (640x480x60Hz) */
1427         {      18,1682,0,1201    }, /* 05 (800x600x60Hz) */
1428         {      18,1682,0,1201    }, /* 06 (1024x768x60Hz) */
1429         {      18,1682,1232,1183    }, /* 07 (1280x1024x60Hz) */
1430         {      18,1682,0,1201    }, /* 08 (1400x1050x60Hz) */
1431         {      18,1682,0,1201    } /* 09 (1600x1200x60Hz) */
1432 };
1433
1434 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDes1600x1200Data[] =
1435 {
1436         {      9,1673,0,1201     },/* 00 (320x200,320x400,640x200,640x400) */
1437         {      9,1673,0,1201     },/* 01 (320x350,640x350) */
1438         {      9,1673,0,1201     },/* 02 (360x400,720x400) */
1439         {      9,1673,0,1201     },/* 03 (720x350) */
1440         {      9,1673,0,1201     },/* 04 (640x480x60Hz) */
1441         {      9,1673,0,1201     },/* 05 (800x600x60Hz) */
1442         {      9,1673,0,1201     },/* 06 (1024x768x60Hz) */
1443         {      9,1673,0,1201     },/* 07 (1280x1024x60Hz) */
1444         {      9,1673,0,1201     },/* 08 (1400x1050x60Hz) */
1445         {      9,1673,0,1201     } /* 09 (1600x1200x60Hz) */
1446 };
1447
1448 static struct XGI330_LCDDataDesStruct  XGI_StLCDDes1600x1200Data[] =
1449 {
1450         {      9,1673,1150,1101     },/* 00 (320x200,320x400,640x200,640x400) */
1451         {      9,1673,1083,1034     },/* 01 (320x350,640x350) */
1452         {      9,1673,1150,1101     },/* 02 (360x400,720x400) */
1453         {      9,1673,1083,1034     },/* 03 (720x350) */
1454         {      9,1673,0,1201     },/* 04 (640x480x60Hz) */
1455         {      9,1673,0,1201     },/* 05 (800x600x60Hz) */
1456         {      9,1673,0,1201     },/* 06 (1024x768x60Hz) */
1457         {      9,1673,1232,1183     },/* 07 (1280x1024x60Hz) */
1458         {      9,1673,0,1201     },/* 08 (1400x1050x60Hz) */
1459         {      9,1673,0,1201     } /* 09 (1600x1200x60Hz) */
1460 };
1461
1462 static struct XGI330_LCDDataDesStruct2  XGI_NoScalingDesData[] =
1463 {
1464         {     9,657,448,405,96,2  }, /* 00 (320x200,320x400,640x200,640x400) */
1465         {     9,657,448,355,96,2  }, /* 01 (320x350,640x350) */
1466         {     9,657,448,405,96,2  }, /* 02 (360x400,720x400) */
1467         {     9,657,448,355,96,2  }, /* 03 (720x350) */
1468         {     9,657,1,483,96,2  }, /* 04 (640x480x60Hz) */
1469         {     9,849,627,600,128,4  }, /* 05 (800x600x60Hz) */
1470         {     9,1057,805,770,0136,6  }, /* 06 (1024x768x60Hz) */
1471         {     9,1337,0,1025,112,3  }, /* 07 (1280x1024x60Hz) */
1472         {     9,1457,0,1051,112,3  }, /* 08 (1400x1050x60Hz) }, //;[ycchen] 12/19/02 */
1473         {     9,1673,0,1201,192,3  }, /* 09 (1600x1200x60Hz) */
1474         {     9,1337,0,771,112,6  }  /* 0A (1280x768x60Hz) */
1475 };
1476
1477 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDes1024x768x75Data[] =         /* ;;1024x768x75Hz */
1478 {
1479         {9,1049,0,769},    /* ; 00 (320x200,320x400,640x200,640x400) */
1480         {9,1049,0,769},    /* ; 01 (320x350,640x350) */
1481         {9,1049,0,769},    /* ; 02 (360x400,720x400) */
1482         {9,1049,0,769},    /* ; 03 (720x350) */
1483         {9,1049,0,769},    /* ; 04 (640x480x75Hz) */
1484         {9,1049,0,769},    /* ; 05 (800x600x75Hz) */
1485         {9,1049,0,769}     /* ; 06 (1024x768x75Hz) */
1486 };
1487
1488 static struct XGI330_LCDDataDesStruct  XGI_StLCDDes1024x768x75Data[] =
1489 {
1490         {9,1049,0,769},    /* ; 00 (320x200,320x400,640x200,640x400) */
1491         {9,1049,0,769},    /* ; 01 (320x350,640x350) */
1492         {9,1049,0,769},    /* ; 02 (360x400,720x400) */
1493         {9,1049,0,769},    /* ; 03 (720x350) */
1494         {9,1049,0,769},    /* ; 04 (640x480x75Hz) */
1495         {9,1049,0,769},    /* ; 05 (800x600x75Hz) */
1496         {9,1049,0,769}     /* ; 06 (1024x768x75Hz) */
1497 };
1498
1499 static struct XGI330_LCDDataDesStruct  XGI_CetLCDDes1024x768x75Data[] = /* ;;1024x768x75Hz */
1500 {
1501         {1152,856,622,587},     /* ; 00 (320x200,320x400,640x200,640x400) */
1502         {1152,856,597,562},     /* ; 01 (320x350,640x350) */
1503         {1192,896,622,587},     /* ; 02 (360x400,720x400) */
1504         {1192,896,597,562},     /* ; 03 (720x350) */
1505         {1129,857,656,625},     /* ; 04 (640x480x75Hz) */
1506         {1209,937,716,685},     /* ; 05 (800x600x75Hz) */
1507         {9,1049,0,769}          /* ; 06 (1024x768x75Hz) */
1508 };
1509
1510 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDLDes1280x1024x75Data[] =         /* ;;1280x1024x75Hz */
1511 {
1512         {18,1314,0,1025     },/* ; 00 (320x200,320x400,640x200,640x400) */
1513         {18,1314,0,1025     },/* ; 01 (320x350,640x350) */
1514         {18,1314,0,1025     },/* ; 02 (360x400,720x400) */
1515         {18,1314,0,1025     },/* ; 03 (720x350) */
1516         {18,1314,0,1025     },/* ; 04 (640x480x60Hz) */
1517         {18,1314,0,1025     },/* ; 05 (800x600x60Hz) */
1518         {18,1314,0,1025     },/* ; 06 (1024x768x60Hz) */
1519         {18,1314,0,1025     }/* ; 07 (1280x1024x60Hz) */
1520 };
1521
1522 static struct XGI330_LCDDataDesStruct  XGI_StLCDDLDes1280x1024x75Data[] =
1523 {
1524         {18,1314,0,1025     },/* ; 00 (320x200,320x400,640x200,640x400) */
1525         {18,1314,0,1025     },/* ; 01 (320x350,640x350) */
1526         {18,1314,0,1025     },/* ; 02 (360x400,720x400) */
1527         {18,1314,0,1025     },/* ; 03 (720x350) */
1528         {18,1314,0,1025     },/* ; 04 (640x480x60Hz) */
1529         {18,1314,0,1025     },/* ; 05 (800x600x60Hz) */
1530         {18,1314,0,1025     },/* ; 06 (1024x768x60Hz) */
1531         {18,1314,0,1025     }/* ; 07 (1280x1024x60Hz) */
1532 };
1533
1534 static struct XGI330_LCDDataDesStruct  XGI_CetLCDDLDes1280x1024x75Data[] =      /* 1280x1024x75Hz */
1535 {
1536         {1368,1008,752,711},    /* ; 00 (320x200,320x400,640x200,640x400) */
1537         {1368,1008,729,688},    /* ; 01 (320x350,640x350) */
1538         {1408,1048,752,711},    /* ; 02 (360x400,720x400) */
1539         {1408,1048,729,688},    /* ; 03 (720x350) */
1540         {1377,985,794,753},    /* ; 04 (640x480x75Hz) */
1541         {1457,1065,854,813},    /* ; 05 (800x600x75Hz) */
1542         {1569,1177,938,897},    /* ; 06 (1024x768x75Hz) */
1543         {18,1314,0,1025}          /* ; 07 (1280x1024x75Hz) */
1544 };
1545
1546 static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDes1280x1024x75Data[] =         /* ;;1280x1024x75Hz */
1547 {
1548         {9,1305,0,1025},/* ; 00 (320x200,320x400,640x200,640x400) */
1549         {9,1305,0,1025},/* ; 01 (320x350,640x350) */
1550         {9,1305,0,1025},/* ; 02 (360x400,720x400) */
1551         {9,1305,0,1025},/* ; 03 (720x350) */
1552         {9,1305,0,1025},/* ; 04 (640x480x60Hz) */
1553         {9,1305,0,1025},/* ; 05 (800x600x60Hz) */
1554         {9,1305,0,1025},/* ; 06 (1024x768x60Hz) */
1555         {9,1305,0,1025} /* ; 07 (1280x1024x60Hz) */
1556 };
1557
1558 static struct XGI330_LCDDataDesStruct  XGI_StLCDDes1280x1024x75Data[] =
1559 {
1560         {9,1305,0,1025},/* ; 00 (320x200,320x400,640x200,640x400) */
1561         {9,1305,0,1025},/* ; 01 (320x350,640x350) */
1562         {9,1305,0,1025},/* ; 02 (360x400,720x400) */
1563         {9,1305,0,1025},/* ; 03 (720x350) */
1564         {9,1305,0,1025},/* ; 04 (640x480x60Hz) */
1565         {9,1305,0,1025},/* ; 05 (800x600x60Hz) */
1566         {9,1305,0,1025},/* ; 06 (1024x768x60Hz) */
1567         {9,1305,0,1025} /* ; 07 (1280x1024x60Hz) */
1568 };
1569
1570 static struct XGI330_LCDDataDesStruct  XGI_CetLCDDes1280x1024x75Data[] =        /* 1280x1024x75Hz */
1571 {
1572         {1368,1008,752,711},    /* ; 00 (320x200,320x400,640x200,640x400) */
1573         {1368,1008,729,688},    /* ; 01 (320x350,640x350) */
1574         {1408,1048,752,711},    /* ; 02 (360x400,720x400) */
1575         {1408,1048,729,688},    /* ; 03 (720x350) */
1576         {1377,985,794,753},    /* ; 04 (640x480x75Hz) */
1577         {1457,1065,854,813},    /* ; 05 (800x600x75Hz) */
1578         {1569,1177,938,897},    /* ; 06 (1024x768x75Hz) */
1579         {9,1305,0,1025}           /* ; 07 (1280x1024x75Hz) */
1580 };
1581
1582 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = /* Scaling LCD 75Hz */
1583 {
1584         {9,657,448,405,96,2},   /* ; 00 (320x200,320x400,640x200,640x400) */
1585         {9,657,448,355,96,2},   /* ; 01 (320x350,640x350) */
1586         {9,738,448,405,108,2},   /* ; 02 (360x400,720x400) */
1587         {9,738,448,355,108,2},   /* ; 03 (720x350) */
1588         {9,665,0,481,64,3},   /* ; 04 (640x480x75Hz) */
1589         {9,825,0,601,80,3},   /* ; 05 (800x600x75Hz) */
1590         {9,1049,0,769,96,3},   /* ; 06 (1024x768x75Hz) */
1591         {9,1305,0,1025,144,3},   /* ; 07 (1280x1024x75Hz) */
1592         {9,1457,0,1051,112,3},   /* ; 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
1593         {9,1673,0,1201,192,3},   /* ; 09 (1600x1200x75Hz) */
1594         {9,1337,0,771,112,6}    /* ; 0A (1280x768x60Hz) */
1595 };
1596
1597 static struct XGI330_TVDataStruct  XGI_StPALData[] =
1598 {
1599  {    1,   1, 864, 525,1270, 400, 100,   0, 760},
1600  {    1,   1, 864, 525,1270, 350, 100,   0, 760},
1601  {    1,   1, 864, 525,1270, 400,   0,   0, 720},
1602  {    1,   1, 864, 525,1270, 350,   0,   0, 720},
1603  {    1,   1, 864, 525,1270, 480,  50,   0, 760},
1604  {    1,   1, 864, 525,1270, 600,  50,   0,   0}
1605 };
1606
1607 static struct XGI330_TVDataStruct  XGI_ExtPALData[] =
1608 {
1609  {    2,   1,1080, 463,1270, 500,  50,   0,  50},
1610  {   15,   7,1152, 413,1270, 500,  50,   0,  50},
1611  {    2,   1,1080, 463,1270, 500,  50,   0,  50},
1612  {   15,   7,1152, 413,1270, 500,  50,   0,  50},
1613  {    2,   1, 900, 543,1270, 500,   0,   0,  50},
1614  {    4,   3,1080, 663,1270, 500, 438,   0, 438},
1615  {    1,   1,1125, 831,1270, 500, 686,   0, 686},     /*301b*/
1616  {    3,   2,1080, 619,1270, 540, 438,   0, 438}
1617 };
1618
1619 static struct XGI330_TVDataStruct  XGI_StNTSCData[] =
1620 {
1621  {    1,   1, 858, 525,1270, 400,  50,   0, 760},
1622  {    1,   1, 858, 525,1270, 350,  50,   0, 640},
1623  {    1,   1, 858, 525,1270, 400,   0,   0, 720},
1624  {    1,   1, 858, 525,1270, 350,   0,   0, 720},
1625  {    1,   1, 858, 525,1270, 480,   0,   0, 760}
1626 };
1627
1628 static struct XGI330_TVDataStruct  XGI_ExtNTSCData[] =
1629 {
1630  {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
1631  {   12,  5,  858, 403,1270, 420, 171,   0, 171},
1632  {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
1633  {   12,  5,  858, 403,1270, 420, 171,   0, 171},
1634  {  143,  80, 836, 523,1270, 420, 224,   0,   0},
1635  {  143, 120,1008, 643,1270, 420,   0,   1,   0},
1636  {   1,    1,1120, 821,1516, 420,   0,   1,   0}, /*301b*/
1637  {    2,   1, 858, 503,1584, 480,   0,   1,   0},
1638  {    3,   2,1001, 533,1270, 420,   0,   0,   0}
1639 };
1640
1641 static struct XGI330_TVDataStruct  XGI_St1HiTVData[] =
1642 {
1643         {        1,1,892,563,690,800,0,0,0               }, /* 00 (320x200,320x400,640x200,640x400) */
1644         {        1,1,892,563,690,700,0,0,0               }, /* 01 (320x350,640x350) */
1645         {        1,1,1000,563,785,800,0,0,0              }, /* 02 (360x400,720x400) */
1646         {        1,1,1000,563,785,700,0,0,0              }, /* 03 (720x350) */
1647         {        1,1,892,563,690,960,0,0,0               }, /* 04 (320x240,640x480) */
1648         {        8,5,1050,683,1648,960,0x150,1,0         }  /* 05 (400x300,800x600) */
1649 };
1650
1651 static struct XGI330_TVDataStruct  XGI_St2HiTVData[] =
1652 {
1653         {        3,1,840,483,1648,960,0x032,0,0          }, /* 00 (320x200,320x400,640x200,640x400) */
1654         {        1,1,892,563,690,700,0,0,0               }, /* 01 (320x350,640x350) */
1655         {        3,1,840,483,1648,960,0x032,0,0          }, /* 02 (360x400,720x400) */
1656         {        1,1,1000,563,785,700,0,0,0              }, /* 03 (720x350) */
1657         {        5,2,840,563,1648,960,0x08D,1,0          }, /* 04 (320x240,640x480) */
1658         {        8,5,1050,683,1648,960,0x17C,1,0         }  /* 05 (400x300,800x600) */
1659
1660 };
1661
1662 static struct XGI330_TVDataStruct  XGI_ExtHiTVData[] =
1663 {
1664         {        6,1,840,563,1632,960,0,0,0              }, /* 00 (320x200,320x400,640x200,640x400) */
1665         {        3,1,960,563,1632,960,0,0,0              }, /* 01 (320x350,640x350) */
1666         {        3,1,840,483,1632,960,0,0,0              }, /* 02 (360x400,720x400) */
1667         {        3,1,960,563,1632,960,0,0,0              }, /* 03 (720x350) */
1668         {        5,1,840,563,1648,960,0x166,1,0          }, /* 04 (320x240,640x480) */
1669         {        16,5,1050,683,1648,960,0x143,1,0        }, /* 05 (400x300,800x600) */
1670         {        25,12,1260,851,1648,960,0x032,0,0       }, /* 06 (512x384,1024x768) */
1671         {        5,4,1575,1124,1648,960,0x128,0,0        }, /* 07 (1280x1024) */
1672         {        4,1,1050,563,1548,960,0x143,1,0         }, /* 08 (800x480) */
1673         {        5,2,1400,659,1648,960,0x032,0,0         }, /* 09 (1024x576) */
1674         {        8,5,1750,803,1648,960,0x128,0,0         }  /* 0A (1280x720) */
1675
1676 };
1677
1678 static struct XGI330_TVDataStruct  XGI_ExtYPbPr525iData[] =
1679 {
1680  {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
1681  {   12,  5,  858, 403,1270, 420, 171,   0, 171},
1682  {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
1683  {   12,  5,  858, 403,1270, 420, 171,   0, 171},
1684  {  143,  80, 836, 523,1250, 420, 224,   0,   0},
1685  {  143, 120,1008, 643,1250, 420,   0,   1,   0},
1686  {   1,    1,1120, 821,1516, 420,   0,   1,   0}, /*301b*/
1687  {    2,   1, 858, 503,1584, 480,   0,   1,   0},
1688  {    3,   2,1001, 533,1250, 420,   0,   0,   0}
1689 };
1690
1691 static struct XGI330_TVDataStruct  XGI_StYPbPr525iData[] =
1692 {
1693  {    1,   1, 858, 525,1270, 400,  50,   0, 760},
1694  {    1,   1, 858, 525,1270, 350,  50,   0, 640},
1695  {    1,   1, 858, 525,1270, 400,   0,   0, 720},
1696  {    1,   1, 858, 525,1270, 350,   0,   0, 720},
1697  {    1,   1, 858, 525,1270, 480,   0,   0, 760},
1698 };
1699
1700 static struct XGI330_TVDataStruct  XGI_ExtYPbPr525pData[] =
1701 {
1702  {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
1703  {   12,  5,  858, 403,1270, 420, 171,   0, 171},
1704  {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
1705  {   12,  5,  858, 403,1270, 420, 171,   0, 171},
1706  {  143,  80, 836, 523,1270, 420, 224,   0,   0},
1707  {  143, 120,1008, 643,1270, 420,   0,   1,   0},
1708  {   1,    1,1120, 821,1516, 420,   0,   1,   0}, /*301b*/
1709  {    2,   1, 858, 503,1584, 480,   0,   1,   0},
1710  {    3,   2,1001, 533,1270, 420,   0,   0,   0}
1711  };
1712
1713 static struct XGI330_TVDataStruct  XGI_StYPbPr525pData[] =
1714 {
1715  {    1,   1,1716, 525,1270, 400,  50,   0, 760},
1716  {    1,   1,1716, 525,1270, 350,  50,   0, 640},
1717  {    1,   1,1716, 525,1270, 400,   0,   0, 720},
1718  {    1,   1,1716, 525,1270, 350,   0,   0, 720},
1719  {    1,   1,1716, 525,1270, 480,   0,   0, 760},
1720 };
1721
1722 static struct XGI330_TVDataStruct  XGI_ExtYPbPr750pData[] =
1723 {
1724  {    3,   1, 935, 470,1130, 680,  50,   0,   0},       /* 00 (320x200,320x400,640x200,640x400) */
1725  {   24,   7, 935, 420,1130, 680,  50,   0,   0},       /* 01 (320x350,640x350) */
1726  {    3,   1, 935, 470,1130, 680,  50,   0,   0},       /* 02 (360x400,720x400) */
1727  {   24,   7, 935, 420,1130, 680,  50,   0,   0},       /* 03 (720x350) */
1728  {    2,   1,1100, 590,1130, 640,  50,   0,   0},       /* 04 (320x240,640x480) */
1729  {    3,   2,1210, 690,1130, 660,  50,   0,   0},       /* 05 (400x300,800x600) */
1730  {    1,   1,1375, 878,1130, 640, 638,   0,   0},       /* 06 (1024x768) */
1731  {    2,   1, 858, 503,1130, 480,   0,   1,   0},        /* 07 (720x480) */
1732  {    5,   4,1815, 570,1130, 660,  50,   0,   0},
1733  {    5,   3,1100, 686,1130, 640,  50,   1,   0},
1734  {   10,   9,1320, 830,1130, 640,  50,   0,   0}
1735 };
1736
1737 static struct XGI330_TVDataStruct  XGI_StYPbPr750pData[] =
1738 {
1739  {    1,   1,1650, 750,1280, 400,  50,   0, 760},
1740  {    1,   1,1650, 750,1280, 350,  50,   0, 640},
1741  {    1,   1,1650, 750,1280, 400,   0,   0, 720},
1742  {    1,   1,1650, 750,1280, 350,   0,   0, 720},
1743  {    1,   1,1650, 750,1280, 480,   0,   0, 760},
1744 };
1745
1746 static unsigned char XGI330_NTSCTiming[] = {
1747   0x17,0x1d,0x03,0x09,0x05,0x06,0x0c,0x0c,
1748   0x94,0x49,0x01,0x0a,0x06,0x0d,0x04,0x0a,
1749   0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x1b,
1750   0x0c,0x50,0x00,0x97,0x00,0xda,0x4a,0x17,
1751   0x7d,0x05,0x4b,0x00,0x00,0xe2,0x00,0x02,
1752   0x03,0x0a,0x65,0x9d,0x08,0x92,0x8f,0x40,
1753   0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x50,
1754   0x00,0x40,0x44,0x00,0xdb,0x02,0x3b,0x00};
1755
1756 static unsigned char XGI330_PALTiming[] = {
1757   0x21,0x5A,0x35,0x6e,0x04,0x38,0x3d,0x70,
1758   0x94,0x49,0x01,0x12,0x06,0x3e,0x35,0x6d,
1759   0x06,0x14,0x3e,0x35,0x6d,0x00,0x45,0x2b,
1760   0x70,0x50,0x00,0x9b,0x00,0xd9,0x5d,0x17,
1761   0x7d,0x05,0x45,0x00,0x00,0xe8,0x00,0x02,
1762   0x0d,0x00,0x68,0xb0,0x0b,0x92,0x8f,0x40,
1763   0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x63,
1764   0x00,0x40,0x3e,0x00,0xe1,0x02,0x28,0x00};
1765
1766 static unsigned char XGI330_HiTVExtTiming[] =
1767 {
1768       0x2D,0x60,0x2C,0x5F,0x08,0x31,0x3A,0x64,
1769       0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D,
1770       0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F,
1771       0x64,0x90,0x33,0x8C,0x18,0x36,0x3E,0x13,
1772       0x2A,0xDE,0x2A,0x44,0x40,0x2A,0x44,0x40,
1773       0x8E,0x8E,0x82,0x07,0x0B,
1774       0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
1775       0x60,0x14,0x3D,0x63,0x4F,
1776       0x27,0x00,0xfc,0xff,0x6a,0x00
1777
1778 };
1779
1780 static unsigned char XGI330_HiTVSt1Timing[] =
1781 {
1782       0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x65,
1783       0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D,
1784       0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F,
1785       0x65,0x90,0x7B,0xA8,0x03,0xF0,0x87,0x03,
1786       0x11,0x15,0x11,0xCF,0x10,0x11,0xCF,0x10,
1787       0x35,0x35,0x3B,0x69,0x1D,
1788       0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
1789       0x60,0x04,0x86,0xAF,0x5D,
1790       0x0E,0x00,0xfc,0xff,0x2d,0x00
1791 };
1792
1793 static unsigned char XGI330_HiTVSt2Timing[] =
1794 {
1795       0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x64,
1796       0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D,
1797       0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F,
1798       0x64,0x90,0x33,0x8C,0x18,0x36,0x3E,0x13,
1799       0x2A,0xDE,0x2A,0x44,0x40,0x2A,0x44,0x40,
1800       0x8E,0x8E,0x82,0x07,0x0B,
1801       0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
1802       0x60,0x14,0x3D,0x63,0x4F,
1803       0x27,0x00,0xFC,0xff,0x6a,0x00
1804 };
1805
1806 static unsigned char XGI330_HiTVTextTiming[] =
1807 {
1808       0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x65,
1809       0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D,
1810       0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F,
1811       0x65,0x90,0xE7,0xBC,0x03,0x0C,0x97,0x03,
1812       0x14,0x78,0x14,0x08,0x20,0x14,0x08,0x20,
1813       0xC8,0xC8,0x3B,0xD2,0x26,
1814       0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
1815       0x60,0x04,0x96,0x72,0x5C,
1816       0x11,0x00,0xFC,0xFF,0x32,0x00
1817 };
1818
1819 static unsigned char XGI330_YPbPr750pTiming[] =
1820 {
1821       0x30,0x1d,0xe8,0x09,0x09,0xed,0x0c,0x0c,
1822       0x98,0x0a,0x01,0x0c,0x06,0x0d,0x04,0x0a,
1823       0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f,
1824       0xed,0x50,0x70,0x9f,0x16,0x59,0x60,0x13,
1825       0x27,0x0b,0x27,0xfc,0x30,0x27,0x1c,0xb0,
1826       0x4b,0x4b,0x6f,0x2f,0x63,
1827       0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
1828       0x60,0x14,0x73,0x00,0x40,
1829       0x11,0x00,0xfc,0xff,0x32,0x00
1830 };
1831
1832 static unsigned char XGI330_YPbPr525pTiming[] =
1833 {
1834       0x3E,0x11,0x06,0x09,0x0b,0x0c,0x0c,0x0c,
1835       0x98,0x0a,0x01,0x0d,0x06,0x0d,0x04,0x0a,
1836       0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f,
1837       0x0c,0x50,0xb2,0x9f,0x16,0x59,0x4f,0x13,
1838       0xad,0x11,0xad,0x1d,0x40,0x8a,0x3d,0xb8,
1839       0x51,0x5e,0x60,0x49,0x7d,
1840       0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
1841       0x60,0x14,0x4B,0x43,0x41,
1842       0x11,0x00,0xFC,0xFF,0x32,0x00
1843 };
1844
1845 static unsigned char XGI330_YPbPr525iTiming[] =
1846 {
1847       0x1B,0x21,0x03,0x09,0x05,0x06,0x0C,0x0C,
1848       0x94,0x49,0x01,0x0A,0x06,0x0D,0x04,0x0A,
1849       0x06,0x14,0x0D,0x04,0x0A,0x00,0x85,0x1B,
1850       0x0C,0x50,0x00,0x97,0x00,0xDA,0x4A,0x17,
1851       0x7D,0x05,0x4B,0x00,0x00,0xE2,0x00,0x02,
1852       0x03,0x0A,0x65,0x9D,0x08,
1853       0x92,0x8F,0x40,0x60,0x80,0x14,0x90,0x8C,
1854       0x60,0x14,0x4B,0x00,0x40,
1855       0x44,0x00,0xDB,0x02,0x3B,0x00
1856
1857 };
1858
1859 static unsigned char XGI330_HiTVGroup3Data[] =
1860 {
1861       0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0x5F,
1862       0x05,0x21,0xB2,0xB2,0x55,0x77,0x2A,0xA6,
1863       0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20,
1864       0x8C,0x6E,0x60,0x2E,0x58,0x48,0x72,0x44,
1865       0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80,
1866       0x4F,0x7F,0x03,0xA8,0x7D,0x20,0x1A,0xA9,
1867       0x14,0x05,0x03,0x7E,0x64,0x31,0x14,0x75,
1868       0x18,0x05,0x18,0x05,0x4C,0xA8,0x01
1869 };
1870
1871 static unsigned char XGI330_HiTVGroup3Simu[] =
1872 {
1873       0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0x95,
1874       0xDB,0x20,0xB8,0xB8,0x55,0x47,0x2A,0xA6,
1875       0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20,
1876       0x8C,0x6E,0x60,0x15,0x26,0xD3,0xE4,0x11,
1877       0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80,
1878       0x67,0x36,0x01,0x47,0x0E,0x10,0xBE,0xB4,
1879       0x01,0x05,0x03,0x7E,0x65,0x31,0x14,0x75,
1880       0x18,0x05,0x18,0x05,0x4C,0xA8,0x01
1881 };
1882
1883 static unsigned char XGI330_HiTVGroup3Text[] =
1884 {
1885       0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0xA7,
1886       0xF5,0x20,0xCE,0xCE,0x55,0x47,0x2A,0xA6,
1887       0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20,
1888       0x8C,0x6E,0x60,0x18,0x2C,0x0C,0x20,0x22,
1889       0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80,
1890       0x93,0x3C,0x01,0x50,0x2F,0x10,0xF4,0xCA,
1891       0x01,0x05,0x03,0x7E,0x65,0x31,0x14,0x75,
1892       0x18,0x05,0x18,0x05,0x4C,0xA8,0x01
1893 };
1894
1895 static unsigned char XGI330_Ren525pGroup3[] =
1896 {
1897   0x00,0x14,0x15,0x25,0x55,0x15,0x0b,0x13,
1898   0xB1,0x41,0x62,0x62,0xFF,0xF4,0x45,0xa6,
1899   0x25,0x2F,0x67,0xF6,0xbf,0xFF,0x8E,0x20,
1900   0xAC,0xDA,0x60,0xFe,0x6A,0x9A,0x06,0x10,
1901   0xd1,0x04,0x18,0x0a,0xFF,0x80,0x00,0x80,
1902   0x3c,0x77,0x00,0xEF,0xE0,0x10,0xB0,0xE0,
1903   0x10,0x4F,0x0F,0x0F,0x05,0x0F,0x08,0x6E,
1904   0x1a,0x1F,0x25,0x2a,0x4C,0xAA,0x01
1905 };
1906
1907 static unsigned char XGI330_Ren750pGroup3[] =
1908 {
1909   0x00,0x14,0x15,0x25,0x55,0x15,0x0b,0x7a,
1910   0x54,0x41,0xE7,0xE7,0xFF,0xF4,0x45,0xa6,
1911   0x25,0x2F,0x67,0xF6,0xbf,0xFF,0x8E,0x20,
1912   0xAC,0x6A,0x60,0x2b,0x52,0xCD,0x61,0x10,
1913   0x51,0x04,0x18,0x0a,0x1F,0x80,0x00,0x80,
1914   0xFF,0xA4,0x04,0x2B,0x94,0x21,0x72,0x94,
1915   0x26,0x05,0x01,0x0F,0xed,0x0F,0x0A,0x64,
1916   0x18,0x1D,0x23,0x28,0x4C,0xAA,0x01
1917 };
1918
1919 #if 0
1920 static struct XGI_PanelDelayTblStruct XGI330_PanelDelayTbl[] =
1921 {
1922 {{0x00,0x00}},
1923 {{0x00,0x00}},
1924 {{0x00,0x00}},
1925 {{0x00,0x00}},
1926 {{0x00,0x00}},
1927 {{0x00,0x00}},
1928 {{0x00,0x00}},
1929 {{0x00,0x00}},
1930 {{0x00,0x00}},
1931 {{0x00,0x00}},
1932 {{0x00,0x00}},
1933 {{0x00,0x00}},
1934 {{0x00,0x00}},
1935 {{0x00,0x00}},
1936 {{0x00,0x00}},
1937 {{0x00,0x00}}
1938 };
1939
1940 static struct XGI330_LVDSDataStruct  XGI330_LVDS320x480Data_1[] =
1941 {
1942  {848, 433,400,525},
1943  {848, 389,400,525},
1944  {848, 433,400,525},
1945  {848, 389,400,525},
1946  {848, 518,400, 525},
1947  {1056, 628,400,525},
1948  {400, 525,400,525},
1949  {800, 449,1000, 644},
1950  {800, 525,1000, 635}
1951 };
1952
1953 static struct XGI330_LVDSDataStruct  XGI330_LVDS800x600Data_1[] =
1954 {
1955  {848, 433,1060, 629},
1956  {848, 389,1060, 629},
1957  {848, 433,1060, 629},
1958  {848, 389,1060, 629},
1959  {848, 518,1060, 629},
1960  {1056, 628,1056, 628},
1961  {1056, 628,1056, 628},
1962  {800, 449,1000, 644},
1963  {800, 525,1000, 635}
1964 };
1965
1966 static struct XGI330_LVDSDataStruct  XGI330_LVDS800x600Data_2[] =
1967 {
1968  {1056, 628,1056, 628},
1969  {1056, 628,1056, 628},
1970  {1056, 628,1056, 628},
1971  {1056, 628,1056, 628},
1972  {1056, 628,1056, 628},
1973  {1056, 628,1056, 628},
1974  {1056, 628,1056, 628},
1975  {800, 449,1000, 644},
1976  {800, 525,1000, 635}
1977 };
1978 #endif
1979
1980 static struct XGI330_LVDSDataStruct  XGI_LVDS1024x768Data_1[] =
1981 {
1982  { 960 , 438 , 1344 , 806 } ,   /* 00 (320x200,320x400,640x200,640x400) */
1983  { 960 , 388 , 1344 , 806 } ,   /* 01 (320x350,640x350) */
1984  { 1040, 438 , 1344 , 806 } ,   /* 02 (360x400,720x400) */
1985  { 1040, 388 , 1344 , 806 } ,   /* 03 (720x350) */
1986  { 960 , 518 , 1344 , 806 } ,   /* 04 (320x240,640x480) */
1987  {1120 , 638 , 1344 , 806 } ,   /* 05 (400x300,800x600) */
1988  {1344 , 806 , 1344 , 806 }     /* 06 (512x384,1024x768) */
1989 };
1990
1991
1992 static struct XGI330_LVDSDataStruct  XGI_LVDS1024x768Data_2[] =
1993 {
1994  {1344, 806,1344, 806},
1995  {1344, 806,1344, 806},
1996  {1344, 806,1344, 806},
1997  {1344, 806,1344, 806},
1998  {1344, 806,1344, 806},
1999  {1344, 806,1344, 806},
2000  {1344, 806,1344, 806},
2001  {800, 449,1280, 801},
2002  {800, 525,1280, 813}
2003 };
2004
2005 static struct XGI330_LVDSDataStruct  XGI_LVDS1280x1024Data_1[] =
2006 {
2007  {1048, 442,1688, 1066},
2008  {1048, 392,1688, 1066},
2009  {1048, 442,1688, 1066},
2010  {1048, 392,1688, 1066},
2011  {1048, 522,1688, 1066},
2012  {1208, 642,1688, 1066},
2013  {1432, 810,1688, 1066},
2014  {1688, 1066,1688, 1066}
2015 };
2016
2017 static struct XGI330_LVDSDataStruct  XGI_LVDS1280x1024Data_2[] =
2018 {
2019  {1344, 806,1344, 806},
2020  {1344, 806,1344, 806},
2021  {1344, 806,1344, 806},
2022  {1344, 806,1344, 806},
2023  {1344, 806,1344, 806},
2024  {1344, 806,1344, 806},
2025  {1344, 806,1344, 806},
2026  {800, 449,1280, 801},
2027  {800, 525,1280, 813}
2028 };
2029 /*
2030 struct XGI330_LVDSDataStruct  XGI_LVDS1280x768Data_1[] =
2031 {
2032  {768,438,1408,806},
2033  {768,388,1408,806},
2034  {768,438,1408,806},
2035  {768,388,1408,806},
2036  {768,518,1408,806},
2037  {928,638,1408,806},
2038  {1408,806,1408,806},
2039  {1408,806,1408,806},
2040  {1408,806,1408,806}
2041 };
2042
2043 struct XGI330_LVDSDataStruct  XGI_LVDS1280x768Data_2[] =
2044 {
2045  {1408, 806,1408, 806},
2046  {1408, 806,1408, 806},
2047  {1408, 806,1408, 806},
2048  {1408, 806,1408, 806},
2049  {1408, 806,1408, 806},
2050  {1408, 806,1408, 806},
2051  {1408, 806,1408, 806},
2052  {1408, 806,1408, 806},
2053  {1408, 806,1408, 806}
2054 };
2055
2056 struct XGI330_LVDSDataStruct  XGI_LVDS1280x768NData_1[] =
2057 {
2058  {704, 438,1344, 806},
2059  {704, 388,1344, 806},
2060  {704, 438,1344, 806},
2061  {704, 388,1344, 806},
2062  {704, 518,1344, 806},
2063  {864, 638,1344, 806},
2064  {1088, 806,1344, 806},
2065  {1344, 806,1344, 806},
2066  {1344, 806,1344, 806}
2067 };
2068
2069 struct XGI330_LVDSDataStruct  XGI_LVDS1280x768NData_2[] =
2070 {
2071  {1344, 806,1344, 806},
2072  {1344, 806,1344, 806},
2073  {1344, 806,1344, 806},
2074  {1344, 806,1344, 806},
2075  {1344, 806,1344, 806},
2076  {1344, 806,1344, 806},
2077  {1344, 806,1344, 806},
2078  {1344, 806,1344, 806},
2079  {1344, 806,1344, 806}
2080 };
2081
2082 struct XGI330_LVDSDataStruct  XGI_LVDS1280x768SData_1[] =
2083 {
2084  {1048,438,1688,806},
2085  {1048,388,1688,806},
2086  {1148,438,1688,806},
2087  {1148,388,1688,806},
2088  {1048,518,1688,806},
2089  {1208,638,1688,806},
2090  {1432,806,1688,806},
2091  {1688,806,1688,806},
2092  {1688,806,1688,806}
2093 };
2094
2095 struct XGI330_LVDSDataStruct  XGI_LVDS1280x768SData_2[] =
2096 {
2097  {1688,806,1688,806},
2098  {1688,806,1688,806},
2099  {1688,806,1688,806},
2100  {1688,806,1688,806},
2101  {1688,806,1688,806},
2102  {1688,806,1688,806},
2103  {1688,806,1688,806},
2104  {1688,806,1688,806},
2105  {1688,806,1688,806}
2106 };
2107 */
2108 static struct XGI330_LVDSDataStruct  XGI_LVDS1400x1050Data_1[] =
2109 {
2110  {928,416,1688,1066},
2111  {928,366,1688,1066},
2112  {928,416,1688,1066},
2113  {928,366,1688,1066},
2114  {928,496,1688,1066},
2115  {1088,616,1688,1066},
2116  {1312,784,1688,1066},
2117  {1568,1040,1688,1066},
2118  {1688,1066,1688,1066}
2119 };
2120
2121 static struct XGI330_LVDSDataStruct  XGI_LVDS1400x1050Data_2[] =
2122 {
2123  {1688,1066,1688,1066},
2124  {1688,1066,1688,1066},
2125  {1688,1066,1688,1066},
2126  {1688,1066,1688,1066},
2127  {1688,1066,1688,1066},
2128  {1688,1066,1688,1066},
2129  {1688,1066,1688,1066},
2130  {1688,1066,1688,1066},
2131  {1688,1066,1688,1066}
2132 };
2133
2134 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1[] =
2135 {      /* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
2136         {        1088,520,2048,1320      },/* 00 (320x200,320x400,640x200,640x400) */
2137         {        1088,470,2048,1320      },/* 01 (320x350,640x350) */
2138         {        1088,520,2048,1320      },/* 02 (360x400,720x400) */
2139         {        1088,470,2048,1320      },/* 03 (720x350) */
2140         {        1088,600,2048,1320      },/* 04 (320x240,640x480) */
2141         {        1248,720,2048,1320      },/* 05 (400x300,800x600) */
2142         {        1472,888,2048,1320      },/* 06 (512x384,1024x768) */
2143         {        1728,1144,2048,1320     },/* 07 (640x512,1280x1024) */
2144         {        1848,1170,2048,1320     },/* 08 (1400x1050) */
2145         {        2048,1320,2048,1320     } /* 09 (1600x1200) */
2146 };
2147
2148 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingData[] =
2149 {
2150         {        800,449,800,449             }, /* 00 (320x200,320x400,640x200,640x400) */
2151         {        800,449,800,449             }, /* 01 (320x350,640x350) */
2152         {        800,449,800,449             }, /* 02 (360x400,720x400) */
2153         {        800,449,800,449             }, /* 03 (720x350) */
2154         {        800,525,800,525             }, /* 04 (640x480x60Hz) */
2155         {        1056,628,1056,628           }, /* 05 (800x600x60Hz) */
2156         {        1344,806,1344,806           }, /* 06 (1024x768x60Hz) */
2157         {        1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz) */
2158         {        1688,1066,1688,1066         }, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
2159         {        2160,1250,2160,1250         }, /* 09 (1600x1200x60Hz) */
2160         {        1688,806,1688,806           }  /* 0A (1280x768x60Hz) */
2161 };
2162
2163 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1x75[] =
2164 {
2165         {960,438,1312,800  }, /* 00 (320x200,320x400,640x200,640x400) */
2166         {960,388,1312,800  }, /* 01 (320x350,640x350) */
2167         {1040,438,1312,800 }, /* 02 (360x400,720x400) */
2168         {1040,388,1312,800 }, /* 03 (720x350) */
2169         {928,512,1312,800  }, /* 04 (320x240,640x480) */
2170         {1088,632,1312,800 }, /* 05 (400x300,800x600) */
2171         {1312,800,1312,800 }, /* 06 (512x384,1024x768) */
2172 };
2173
2174
2175 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2x75[] =
2176 {
2177         {1312,800,1312,800}, /* ; 00 (320x200,320x400,640x200,640x400) */
2178         {1312,800,1312,800}, /* ; 01 (320x350,640x350) */
2179         {1312,800,1312,800}, /* ; 02 (360x400,720x400) */
2180         {1312,800,1312,800}, /* ; 03 (720x350) */
2181         {1312,800,1312,800}, /* ; 04 (320x240,640x480) */
2182         {1312,800,1312,800}, /* ; 05 (400x300,800x600) */
2183         {1312,800,1312,800}, /* ; 06 (512x384,1024x768) */
2184 };
2185
2186 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1x75[] =
2187 {
2188         {1048,442,1688,1066  }, /* ; 00 (320x200,320x400,640x200,640x400) */
2189         {1048,392,1688,1066  }, /* ; 01 (320x350,640x350) */
2190         {1128,442,1688,1066  }, /* ; 02 (360x400,720x400) */
2191         {1128,392,1688,1066  }, /* ; 03 (720x350) */
2192         {1048,522,1688,1066  }, /* ; 04 (320x240,640x480) */
2193         {1208,642,1688,1066  }, /* ; 05 (400x300,800x600) */
2194         {1432,810,1688,1066  }, /* ; 06 (512x384,1024x768) */
2195         {1688,1066,1688,1066 }, /* ; 06; 07 (640x512,1280x1024) */
2196 };
2197
2198 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2x75[] =
2199 {
2200         {1688,1066,1688,1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
2201         {1688,1066,1688,1066 }, /* ; 01 (320x350,640x350) */
2202         {1688,1066,1688,1066 }, /* ; 02 (360x400,720x400) */
2203         {1688,1066,1688,1066 }, /* ; 03 (720x350) */
2204         {1688,1066,1688,1066 }, /* ; 04 (320x240,640x480) */
2205         {1688,1066,1688,1066 }, /* ; 05 (400x300,800x600) */
2206         {1688,1066,1688,1066 }, /* ; 06 (512x384,1024x768) */
2207         {1688,1066,1688,1066 }, /* ; 06; 07 (640x512,1280x1024) */
2208 };
2209
2210 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingDatax75[] =
2211 {
2212         {800,449,800,449     }, /* ; 00 (320x200,320x400,640x200,640x400) */
2213         {800,449,800,449     }, /* ; 01 (320x350,640x350) */
2214         {900,449,900,449     }, /* ; 02 (360x400,720x400) */
2215         {900,449,900,449     }, /* ; 03 (720x350) */
2216         {800,500,800,500     }, /* ; 04 (640x480x75Hz) */
2217         {1056,625,1056,625   }, /* ; 05 (800x600x75Hz) */
2218         {1312,800,1312,800   }, /* ; 06 (1024x768x75Hz) */
2219         {1688,1066,1688,1066 }, /* ; 07 (1280x1024x75Hz) */
2220         {1688,1066,1688,1066 }, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */
2221         {2160,1250,2160,1250 }, /* ; 09 (1600x1200x75Hz) */
2222         {1688,806,1688,806   }, /* ; 0A (1280x768x75Hz) */
2223 };
2224
2225 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1[] =
2226 {
2227         {      0,1048,   0, 771     }, /* 00 (320x200,320x400,640x200,640x400) */
2228         {      0,1048,   0, 771     }, /* 01 (320x350,640x350) */
2229         {      0,1048,   0, 771     }, /* 02 (360x400,720x400) */
2230         {      0,1048,   0, 771     }, /* 03 (720x350) */
2231         {      0,1048,   0, 771     }, /* 04 (640x480x60Hz) */
2232         {      0,1048,   0, 771     }, /* 05 (800x600x60Hz) */
2233         {      0,1048, 805, 770     }  /* 06 (1024x768x60Hz) */
2234 } ;
2235
2236 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2[] =
2237 {
2238         {      1142, 856, 622, 587     }, /* 00 (320x200,320x400,640x200,640x400) */
2239         {      1142, 856, 597, 562     }, /* 01 (320x350,640x350) */
2240         {      1142, 856, 622, 587     }, /* 02 (360x400,720x400) */
2241         {      1142, 856, 597, 562     }, /* 03 (720x350) */
2242         {      1142,1048, 722, 687     }, /* 04 (640x480x60Hz) */
2243         {      1232, 936, 722, 687     }, /* 05 (800x600x60Hz) */
2244         {         0,1048, 805, 771     }  /* 06 (1024x768x60Hz) */
2245 };
2246
2247 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3[] =
2248 {
2249         {       320,  24, 622, 587     }, /* 00 (320x200,320x400,640x200,640x400) */
2250         {       320,  24, 597, 562     }, /* 01 (320x350,640x350) */
2251         {       320,  24, 622, 587     }, /* 02 (360x400,720x400) */
2252         {       320,  24, 597, 562     }, /* 03 (720x350) */
2253         {       320,  24, 722, 687     }  /* 04 (640x480x60Hz) */
2254 };
2255
2256 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1[] =
2257 {
2258         {      0,1328,    0, 1025     }, /* 00 (320x200,320x400,640x200,640x400) */
2259         {      0,1328,    0, 1025     }, /* 01 (320x350,640x350) */
2260         {      0,1328,    0, 1025     }, /* 02 (360x400,720x400) */
2261         {      0,1328,    0, 1025     }, /* 03 (720x350) */
2262         {      0,1328,    0, 1025     }, /* 04 (640x480x60Hz) */
2263         {      0,1328,    0, 1025     }, /* 05 (800x600x60Hz) */
2264         {      0,1328,    0, 1025     }, /* 06 (1024x768x60Hz) */
2265         {      0,1328, 1065, 1024     }  /* 07 (1280x1024x60Hz) */
2266 };
2267
2268  /* The Display setting for DE Mode Panel */
2269 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2[] =
2270 {
2271         {      1368,1008,752,711     }, /* 00 (320x200,320x400,640x200,640x400) */
2272         {      1368,1008,729,688     }, /* 01 (320x350,640x350) */
2273         {      1408,1048,752,711     }, /* 02 (360x400,720x400) */
2274         {      1408,1048,729,688     }, /* 03 (720x350) */
2275         {      1368,1008,794,753     }, /* 04 (640x480x60Hz) */
2276         {      1448,1068,854,813     }, /* 05 (800x600x60Hz) */
2277         {      1560,1200,938,897     }, /* 06 (1024x768x60Hz) */
2278         {      0000,1328,0,1025     }  /* 07 (1280x1024x60Hz) */
2279 };
2280
2281 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_1[] =
2282 {
2283         {      0,1448,0,1051     }, /* 00 (320x200,320x400,640x200,640x400) */
2284         {      0,1448,0,1051     }, /* 01 (320x350,640x350) */
2285         {      0,1448,0,1051     }, /* 02 (360x400,720x400) */
2286         {      0,1448,0,1051     }, /* 03 (720x350) */
2287         {      0,1448,0,1051     }, /* 04 (640x480x60Hz) */
2288         {      0,1448,0,1051     }, /* 05 (800x600x60Hz) */
2289         {      0,1448,0,1051     }, /* 06 (1024x768x60Hz) */
2290         {      0,1448,0,1051     }, /* 07 (1280x1024x60Hz) */
2291         {      0,1448,0,1051     }  /* 08 (1400x1050x60Hz) */
2292 };
2293
2294 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_2[] =
2295 {
2296         {      1308,1068, 781, 766     }, /* 00 (320x200,320x400,640x200,640x400) */
2297         {      1308,1068, 781, 766     }, /* 01 (320x350,640x350) */
2298         {      1308,1068, 781, 766     }, /* 02 (360x400,720x400) */
2299         {      1308,1068, 781, 766     }, /* 03 (720x350) */
2300         {      1308,1068, 781, 766     }, /* 04 (640x480x60Hz) */
2301         {      1388,1148, 841, 826     }, /* 05 (800x600x60Hz) */
2302         {      1490,1250, 925, 910     }, /* 06 (1024x768x60Hz) */
2303         {      1608,1368,1053,1038     }, /* 07 (1280x1024x60Hz) */
2304         {      0,1448,0,1051     }  /* 08 (1400x1050x60Hz) */
2305 };
2306
2307 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Des_1[] =
2308 {
2309         {      0,1664,0,1201     }, /* 00 (320x200,320x400,640x200,640x400) */
2310         {      0,1664,0,1201     }, /* 01 (320x350,640x350) */
2311         {      0,1664,0,1201     }, /* 02 (360x400,720x400) */
2312         {      0,1664,0,1201     }, /* 03 (720x350) */
2313         {      0,1664,0,1201     }, /* 04 (640x480x60Hz) */
2314         {      0,1664,0,1201     }, /* 05 (800x600x60Hz) */
2315         {      0,1664,0,1201     }, /* 06 (1024x768x60Hz) */
2316         {      0,1664,0,1201     }, /* 07 (1280x1024x60Hz) */
2317         {      0,1664,0,1201     }, /* 08 (1400x1050x60Hz) */
2318         {      0,1664,0,1201     }  /* 09 (1600x1200x60Hz) */
2319 };
2320
2321
2322
2323 static struct XGI330_LCDDataDesStruct2  XGI_LVDSNoScalingDesData[] =
2324 {
2325         {     0, 648, 448, 405,  96,   2   }, /* 00 (320x200,320x400,640x200,640x400) */
2326         {     0, 648, 448, 355,  96,   2   }, /* 01 (320x350,640x350) */
2327         {     0, 648, 448, 405,  96,   2   }, /* 02 (360x400,720x400) */
2328         {     0, 648, 448, 355,  96,   2   }, /* 03 (720x350) */
2329         {     0, 648,  1, 483,  96,   2   }, /* 04 (640x480x60Hz) */
2330         {     0, 840, 627, 600, 128,   4   }, /* 05 (800x600x60Hz) */
2331         {     0,1048, 805, 770, 136,   6   }, /* 06 (1024x768x60Hz) */
2332         {     0,1328,0,1025, 112,   3   }, /* 07 (1280x1024x60Hz) */
2333         {     0,1438,0,1051, 112,   3   }, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
2334         {     0,1664,0,1201, 192,   3   }, /* 09 (1600x1200x60Hz) */
2335         {     0,1328,0,0771, 112,   6   }  /* 0A (1280x768x60Hz) */
2336 };
2337
2338 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75[] =                        /* ; 1024x768 Full-screen */
2339 {
2340         {0,1040,0,769}, /* ; 00 (320x200,320x400,640x200,640x400) */
2341         {0,1040,0,769}, /* ; 01 (320x350,640x350) */
2342         {0,1040,0,769}, /* ; 02 (360x400,720x400) */
2343         {0,1040,0,769}, /* ; 03 (720x350) */
2344         {0,1040,0,769}, /* ; 04 (640x480x75Hz) */
2345         {0,1040,0,769}, /* ; 05 (800x600x75Hz) */
2346         {0,1040,0,769} /* ; 06 (1024x768x75Hz) */
2347 };
2348
2349 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75[] = /* ; 1024x768 center-screen (Enh. Mode) */
2350 {
2351         {1142, 856,622,587 }, /* 00 (320x200,320x400,640x200,640x400) */
2352         {1142, 856,597,562 }, /* 01 (320x350,640x350) */
2353         {1142, 856,622,587 }, /* 02 (360x400,720x400) */
2354         {1142, 856,597,562 }, /* 03 (720x350) */
2355         {1142,1048,722,687 }, /* 04 (640x480x60Hz) */
2356         {1232, 936,722,687 }, /* 05 (800x600x60Hz) */
2357         {   0,1048,805,771 }  /* 06 (1024x768x60Hz) */
2358 };
2359
2360 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75[] = /* ; 1024x768 center-screen (St.Mode) */
2361 {
2362         {320,24,622,587  }, /* ; 00 (320x200,320x400,640x200,640x400) */
2363         {320,24,597,562  }, /* ; 01 (320x350,640x350) */
2364         {320,24,622,587  }, /* ; 02 (360x400,720x400) */
2365         {320,24,597,562  }, /* ; 03 (720x350) */
2366         {320,24,722,687  } /* ; 04 (640x480x60Hz) */
2367 };
2368
2369 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1x75[] =
2370 {
2371         {0,1296,0,1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
2372         {0,1296,0,1025}, /* ; 01 (320x350,640x350) */
2373         {0,1296,0,1025}, /* ; 02 (360x400,720x400) */
2374         {0,1296,0,1025}, /* ; 03 (720x350) */
2375         {0,1296,0,1025}, /* ; 04 (640x480x75Hz) */
2376         {0,1296,0,1025}, /* ; 05 (800x600x75Hz) */
2377         {0,1296,0,1025}, /* ; 06 (1024x768x75Hz) */
2378         {0,1296,0,1025} /* ; 07 (1280x1024x75Hz) */
2379 };
2380
2381 /* The Display setting for DE Mode Panel */
2382 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75[] =   /* [ycchen] 02/18/03 Set DE as default */
2383 {
2384         {1368,976,752,711 }, /* ; 00 (320x200,320x400,640x200,640x400) */
2385         {1368,976,729,688 }, /* ; 01 (320x350,640x350) */
2386         {1408,976,752,711 }, /* ; 02 (360x400,720x400) */
2387         {1408,976,729,688 }, /* ; 03 (720x350) */
2388         {1368,976,794,753 }, /* ; 04 (640x480x75Hz) */
2389         {1448,1036,854,813}, /* ; 05 (800x600x75Hz) */
2390         {1560,1168,938,897}, /* ; 06 (1024x768x75Hz) */
2391         {0,1296,0,1025    } /* ; 07 (1280x1024x75Hz) */
2392 };
2393
2394 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] =  /* Scaling LCD 75Hz */
2395 {
2396        { 0,648,448,405,96,2  }, /* ; 00 (320x200,320x400,640x200,640x400) */
2397        { 0,648,448,355,96,2  }, /* ; 01 (320x350,640x350) */
2398        { 0,729,448,405,108,2 }, /* ; 02 (360x400,720x400) */
2399        { 0,729,448,355,108,2 }, /* ; 03 (720x350) */
2400        { 0,656,0,481,64,3    }, /* ; 04 (640x480x75Hz) */
2401        { 0,816,0,601,80,3    }, /* ; 05 (800x600x75Hz) */
2402        { 0,1040,0,769,96,3   }, /* ; 06 (1024x768x75Hz) */
2403        { 0,1296,0,1025,144,3 }, /* ; 07 (1280x1024x75Hz) */
2404        { 0,1448,0,1051,112,3 }, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */
2405        { 0,1664,0,1201,192,3 }, /* ; 09 (1600x1200x75Hz) */
2406        { 0,1328,0,771,112,6  }  /* ; 0A (1280x768x75Hz) */
2407 };
2408
2409 #if 0
2410 static struct XGI330_LVDSDataStruct  XGI330_LVDS640x480Data_1[] =
2411 {
2412  {800, 449, 800, 449},
2413  {800, 449, 800, 449},
2414  {800, 449, 800, 449},
2415  {800, 449, 800, 449},
2416  {800, 525, 800, 525},
2417  {1056, 628,1056, 628},
2418  {1056, 628,1056, 628},
2419  {1056, 628,1056, 628},
2420  {1056, 628,1056, 628}
2421 };
2422 #endif
2423
2424 static struct XGI330_CHTVDataStruct  XGI_CHTVUNTSCData[] =
2425 {
2426  {840, 600, 840, 600},
2427  {840, 600, 840, 600},
2428  {840, 600, 840, 600},
2429  {840, 600, 840, 600},
2430  {784, 600, 784, 600},
2431  {1064, 750,1064, 750}
2432 };
2433
2434 static struct XGI330_CHTVDataStruct  XGI_CHTVONTSCData[] =
2435 {
2436  {840, 525, 840, 525},
2437  {840, 525, 840, 525},
2438  {840, 525, 840, 525},
2439  {840, 525, 840, 525},
2440  {784, 525, 784, 525},
2441  {1040, 700,1040, 700}
2442 };
2443
2444 static struct XGI330_CHTVDataStruct  XGI_CHTVUPALData[] =
2445 {
2446  {1008, 625,1008, 625},
2447  {1008, 625,1008, 625},
2448  {1008, 625,1008, 625},
2449  {1008, 625,1008, 625},
2450  {840, 750, 840, 750},
2451  {936, 836, 936, 836}
2452 };
2453
2454 static struct XGI330_CHTVDataStruct  XGI_CHTVOPALData[] =
2455 {
2456  {1008, 625,1008, 625},
2457  {1008, 625,1008, 625},
2458  {1008, 625,1008, 625},
2459  {1008, 625,1008, 625},
2460  {840, 625, 840, 625},
2461  {960, 750, 960, 750}
2462 };
2463
2464 static struct XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11024x768_1_H[] =
2465 {
2466                 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2467                 {{      0x4B,0x27,0x8F,0x32,0x1B,0x00,0x45,0x00 }}, /* 00 (320x) */
2468                 {{      0x4B,0x27,0x8F,0x2B,0x03,0x00,0x44,0x00 }}, /* 01 (360x) */
2469                 {{      0x55,0x31,0x99,0x46,0x1D,0x00,0x55,0x00 }}, /* 02 (400x) */
2470                 {{      0x63,0x3F,0x87,0x4A,0x93,0x00,0x01,0x00 }}, /* 03 (512x) */
2471                 {{      0x73,0x4F,0x97,0x55,0x86,0x00,0x05,0x00 }}, /* 04 (640x) */
2472                 {{      0x73,0x4F,0x97,0x55,0x86,0x00,0x05,0x00 }}, /* 05 (720x) */
2473                 {{      0x87,0x63,0x8B,0x69,0x1A,0x00,0x26,0x00 }}, /* 06 (800x) */
2474                 {{      0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* 07 (1024x) */
2475 };
2476
2477 static struct XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11280x1024_1_H[] =
2478 {
2479                 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2480                 {{      0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }}, /* 00 (320x) */
2481                 {{      0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }}, /* 01 (360x) */
2482                 {{      0x60,0x31,0x84,0x3A,0x88,0x00,0x01,0x00 }}, /* 02 (400x) */
2483                 {{      0x6E,0x3F,0x92,0x48,0x96,0x00,0x01,0x00 }}, /* 03 (512x) */
2484                 {{      0x7E,0x4F,0x82,0x58,0x06,0x00,0x06,0x00 }}, /* 04 (640x) */
2485                 {{      0x7E,0x4F,0x82,0x58,0x06,0x00,0x06,0x00 }}, /* 05 (720x) */
2486                 {{      0x92,0x63,0x96,0x6C,0x1A,0x00,0x06,0x00 }}, /* 06 (800x) */
2487                 {{      0xAE,0x7F,0x92,0x88,0x96,0x00,0x02,0x00 }}, /* 07 (1024x) */
2488                 {{      0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* 08 (1280x) */
2489 };
2490
2491 static struct XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11024x768_2_H[] =
2492 {
2493                 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2494                 {{      0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }}, /* 00 (320x) */
2495                 {{      0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }}, /* 01 (360x) */
2496                 {{      0x63,0x31,0x87,0x3D,0x8E,0x00,0x01,0x00 }}, /* 02 (400x) */
2497                 {{      0x63,0x3F,0x87,0x45,0x96,0x00,0x01,0x00 }}, /* 03 (512x) */
2498                 {{      0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }}, /* 04 (640x) */
2499                 {{      0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }}, /* 05 (720x) */
2500                 {{      0xA3,0x63,0x87,0x78,0x89,0x00,0x02,0x00 }}, /* 06 (800x) */
2501                 {{      0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* 07 (1024x) */
2502 };
2503
2504 static struct XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11280x1024_2_H[] =
2505 {
2506                 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2507                 {{      0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }}, /* 00 (320x) */
2508                 {{      0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }}, /* 01 (360x) */
2509                 {{      0x7E,0x40,0x84,0x49,0x91,0x00,0x01,0x00 }}, /* 02 (400x) */
2510                 {{      0x7E,0x47,0x93,0x50,0x9E,0x00,0x01,0x00 }}, /* 03 (512x) */
2511                 {{      0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }}, /* 04 (640x) */
2512                 {{      0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }}, /* 05 (720x) */
2513                 {{      0xCE,0x81,0x94,0x8A,0x98,0x00,0x02,0x00 }}, /* 06 (800x) */
2514                 {{      0xCE,0x8F,0x82,0x98,0x06,0x00,0x07,0x00 }}, /* 07 (1024x) */
2515                 {{      0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* 08 (1280x) */
2516 };
2517
2518 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] =
2519 {               /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2520                 {{      0x47,0x27,0x8B,0x2C,0x1A,0x00,0x05,0x00 }}, /* 00 (320x) */
2521                 {{      0x47,0x27,0x8B,0x30,0x1E,0x00,0x05,0x00 }}, /* 01 (360x) */
2522                 {{      0x51,0x31,0x95,0x36,0x04,0x00,0x01,0x00 }}, /* 02 (400x) */
2523                 {{      0x5F,0x3F,0x83,0x44,0x92,0x00,0x01,0x00 }}, /* 03 (512x) */
2524                 {{      0x6F,0x4F,0x93,0x54,0x82,0x00,0x05,0x00 }}, /* 04 (640x) */
2525                 {{      0x6F,0x4F,0x93,0x54,0x82,0x00,0x05,0x00 }}, /* 05 (720x) */
2526                 {{      0x83,0x63,0x87,0x68,0x16,0x00,0x06,0x00 }}, /* 06 (800x) */
2527                 {{      0x9F,0x7F,0x83,0x84,0x92,0x00,0x02,0x00 }}, /* 07 (1024x) */
2528                 {{      0xBF,0x9F,0x83,0xA4,0x12,0x00,0x07,0x00 }}, /* 08 (1280x) */
2529                 {{      0xCE,0xAE,0x92,0xB3,0x01,0x00,0x03,0x00 }} /* 09 (1400x) */
2530 };
2531
2532 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] =
2533 {               /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2534                 {{      0x76,0x3F,0x83,0x45,0x8C,0x00,0x41,0x00 }}, /* 00 (320x) */
2535                 {{      0x76,0x3F,0x83,0x45,0x8C,0x00,0x41,0x00 }}, /* 01 (360x) */
2536                 {{      0x76,0x31,0x9A,0x48,0x9F,0x00,0x41,0x00 }}, /* 02 (400x) */
2537                 {{      0x76,0x3F,0x9A,0x4F,0x96,0x00,0x41,0x00 }}, /* 03 (512x) */
2538                 {{      0xCE,0x7E,0x82,0x87,0x9E,0x00,0x02,0x00 }}, /* 04 (640x) */
2539                 {{      0xCE,0x7E,0x82,0x87,0x9E,0x00,0x02,0x00 }}, /* 05 (720x) */
2540                 {{      0xCE,0x63,0x92,0x96,0x04,0x00,0x07,0x00 }}, /* 06 (800x) */
2541                 {{      0xCE,0x7F,0x92,0xA4,0x12,0x00,0x07,0x00 }}, /* 07 (1024x) */
2542                 {{      0xCE,0x9F,0x92,0xB4,0x02,0x00,0x03,0x00 }}, /* 08 (1280x) */
2543                 {{      0xCE,0xAE,0x92,0xBC,0x0A,0x00,0x03,0x00 }} /* 09 (1400x) */
2544 };
2545
2546 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] =
2547 /* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
2548 {   /* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2549                 {{      0x5B,0x27,0x9F,0x32,0x0A,0x00,0x01,0x00 }},/* 00 (320x) */
2550                 {{      0x5B,0x27,0x9F,0x32,0x0A,0x00,0x01,0x00 }},/* 01 (360x) */
2551                 {{      0x65,0x31,0x89,0x3C,0x94,0x00,0x01,0x00 }},/* 02 (400x) */
2552                 {{      0x73,0x3F,0x97,0x4A,0x82,0x00,0x05,0x00 }},/* 03 (512x) */
2553                 {{      0x83,0x4F,0x87,0x51,0x09,0x00,0x06,0x00 }},/* 04 (640x) */
2554                 {{      0x83,0x4F,0x87,0x51,0x09,0x00,0x06,0x00 }},/* 05 (720x) */
2555                 {{      0x97,0x63,0x9B,0x65,0x1D,0x00,0x06,0xF0 }},/* 06 (800x) */
2556                 {{      0xB3,0x7F,0x97,0x81,0x99,0x00,0x02,0x00 }},/* 07 (1024x) */
2557                 {{      0xD3,0x9F,0x97,0xA1,0x19,0x00,0x07,0x00 }},/* 08 (1280x) */
2558                 {{      0xE2,0xAE,0x86,0xB9,0x91,0x00,0x03,0x00 }},/* 09 (1400x) */
2559                 {{      0xFB,0xC7,0x9F,0xC9,0x81,0x00,0x07,0x00 }} /* 0A (1600x) */
2560 };
2561
2562 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] =
2563 {               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2564                 {{      0x97,0x1F,0x60,0x87,0x5D,0x83,0x10      }}, /* 00 (x350) */
2565                 {{      0xB4,0x1F,0x92,0x89,0x8F,0xB5,0x30      }}, /* 01 (x400) */
2566                 {{      0x04,0x3E,0xE2,0x89,0xDF,0x05,0x00      }}, /* 02 (x480) */
2567                 {{      0x7C,0xF0,0x5A,0x8F,0x57,0x7D,0xA0      }}, /* 03 (x600) */
2568                 {{      0x24,0xF5,0x02,0x88,0xFF,0x25,0x90      }} /* 04 (x768) */
2569 };
2570
2571 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] =
2572 {               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2573                 {{      0x24,0xBB,0x31,0x87,0x5D,0x25,0x30      }}, /* 00 (x350) */
2574                 {{      0x24,0xBB,0x4A,0x80,0x8F,0x25,0x30      }}, /* 01 (x400) */
2575                 {{      0x24,0xBB,0x72,0x88,0xDF,0x25,0x30      }}, /* 02 (x480) */
2576                 {{      0x24,0xF1,0xAE,0x84,0x57,0x25,0xB0      }}, /* 03 (x600) */
2577                 {{      0x24,0xF5,0x02,0x88,0xFF,0x25,0x90      }} /* 04 (x768) */
2578 };
2579
2580 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] =
2581 {               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2582                 {{       0x86,0x1F,0x5E,0x82,0x5D,0x87,0x00     }}, /* 00 (x350) */
2583                 {{       0xB8,0x1F,0x90,0x84,0x8F,0xB9,0x30     }}, /* 01 (x400) */
2584                 {{       0x08,0x3E,0xE0,0x84,0xDF,0x09,0x00     }}, /* 02 (x480) */
2585                 {{       0x80,0xF0,0x58,0x8C,0x57,0x81,0xA0     }}, /* 03 (x600) */
2586                 {{       0x28,0xF5,0x00,0x84,0xFF,0x29,0x90     }}, /* 04 (x768) */
2587                 {{       0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9     }} /* 05 (x1024) */
2588 };
2589
2590 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] =
2591 {               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2592                 {{      0x28,0xD2,0xAF,0x83,0xAE,0xD8,0xA1      }}, /* 00 (x350) */
2593                 {{      0x28,0xD2,0xC8,0x8C,0xC7,0xF2,0x81      }}, /* 01 (x400) */
2594                 {{      0x28,0xD2,0xF0,0x84,0xEF,0x1A,0xB1      }}, /* 02 (x480) */
2595                 {{      0x28,0xDE,0x2C,0x8F,0x2B,0x56,0x91      }}, /* 03 (x600) */
2596                 {{      0x28,0xDE,0x80,0x83,0x7F,0xAA,0x91      }}, /* 04 (x768) */
2597                 {{      0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9      }} /* 05 (x1024) */
2598 };
2599
2600 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] =
2601 {               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2602                 {{      0x6C,0x1F,0x60,0x84,0x5D,0x6D,0x10      }}, /* 00 (x350) */
2603                 {{      0x9E,0x1F,0x93,0x86,0x8F,0x9F,0x30      }}, /* 01 (x400) */
2604                 {{      0xEE,0x1F,0xE2,0x86,0xDF,0xEF,0x10      }}, /* 02 (x480) */
2605                 {{      0x66,0xF0,0x5A,0x8e,0x57,0x67,0xA0      }}, /* 03 (x600) */
2606                 {{      0x0E,0xF5,0x02,0x86,0xFF,0x0F,0x90      }}, /* 04 (x768) */
2607                 {{      0x0E,0x5A,0x02,0x86,0xFF,0x0F,0x89      }}, /* 05 (x1024) */
2608                 {{      0x28,0x10,0x1A,0x80,0x19,0x29,0x0F      }} /* 06 (x1050) */
2609 };
2610
2611 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] =
2612 {              /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2613                 {{      0x28,0x92,0xB6,0x83,0xB5,0xCF,0x81      }}, /* 00 (x350) */
2614                 {{      0x28,0x92,0xD5,0x82,0xD4,0xEE,0x81      }}, /* 01 (x400) */
2615                 {{      0x28,0x92,0xFD,0x8A,0xFC,0x16,0xB1      }}, /* 02 (x480) */
2616                 {{      0x28,0xD4,0x39,0x86,0x57,0x29,0x81      }}, /* 03 (x600) */
2617                 {{      0x28,0xD4,0x8D,0x9A,0xFF,0x29,0xA1      }}, /* 04 (x768) */
2618                 {{      0x28,0x5A,0x0D,0x9A,0xFF,0x29,0xA9      }}, /* 05 (x1024) */
2619                 {{      0x28,0x10,0x1A,0x87,0x19,0x29,0x8F      }} /* 06 (x1050) */
2620 };
2621
2622 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] =
2623 {
2624                /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2625                 {{      0xd4,0x1F,0x81,0x84,0x5D,0xd5,0x10      }}, /* 00 (x350) */
2626                 {{      0x06,0x3e,0xb3,0x86,0x8F,0x07,0x20      }}, /* 01 (x400) */
2627                 {{      0x56,0xba,0x03,0x86,0xDF,0x57,0x00      }}, /* 02 (x480) */
2628                 {{      0xce,0xF0,0x7b,0x8e,0x57,0xcf,0xa0      }}, /* 03 (x600) */
2629                 {{      0x76,0xF5,0x23,0x86,0xFF,0x77,0x90      }}, /* 04 (x768) */
2630                 {{      0x76,0x5A,0x23,0x86,0xFF,0x77,0x89      }}, /* 05 (x1024) */
2631                 {{      0x90,0x10,0x1A,0x8E,0x19,0x91,0x2F      }}, /* 06 (x1050) */
2632                 {{      0x26,0x11,0xd3,0x86,0xaF,0x27,0x3f      }} /* 07 (x1200) */
2633 };
2634
2635 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] =
2636 {       /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2637     {{      0x4B,0x27,0x8F,0x32,0x1B,0x00,0x45,0x00 }},/* ; 00 (320x) */
2638     {{      0x4B,0x27,0x8F,0x2B,0x03,0x00,0x44,0x00 }},/* ; 01 (360x) */
2639     {{      0x55,0x31,0x99,0x46,0x1D,0x00,0x55,0x00 }},/* ; 02 (400x) */
2640     {{      0x63,0x3F,0x87,0x4A,0x93,0x00,0x01,0x00 }},/* ; 03 (512x) */
2641     {{      0x6F,0x4F,0x93,0x54,0x80,0x00,0x05,0x00 }},/* ; 04 (640x) */
2642     {{      0x6F,0x4F,0x93,0x54,0x80,0x00,0x05,0x00 }},/* ; 05 (720x) */
2643     {{      0x83,0x63,0x87,0x68,0x14,0x00,0x26,0x00 }},/* ; 06 (800x) */
2644     {{      0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00 }} /* ; 07 (1024x) */
2645 };
2646
2647 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] =
2648 {       /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2649     {{      0x97,0x1F,0x60,0x87,0x5D,0x83,0x10      }},/* ; 00 (x350) */
2650     {{      0xB4,0x1F,0x92,0x89,0x8F,0xB5,0x30      }},/* ; 01 (x400) */
2651     {{      0xFE,0x1F,0xE0,0x84,0xDF,0xFF,0x10      }},/* ; 02 (x480) */
2652     {{      0x76,0xF0,0x58,0x8C,0x57,0x77,0xA0      }},/* ; 03 (x600) */
2653     {{      0x1E,0xF5,0x00,0x83,0xFF,0x1F,0x90      }} /* ; 04 (x768) */
2654 };
2655
2656 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] =
2657 {       /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2658     {{      0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }},/* ; 00 (320x) */
2659     {{      0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }},/* ; 01 (360x) */
2660     {{      0x63,0x31,0x87,0x3D,0x8E,0x00,0x01,0x00 }},/* ; 02 (400x) */
2661     {{      0x63,0x3F,0x87,0x45,0x96,0x00,0x01,0x00 }},/* ; 03 (512x) */
2662     {{      0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }},/* ; 04 (640x) */
2663     {{      0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }},/* ; 05 (720x) */
2664     {{      0xA3,0x63,0x87,0x78,0x89,0x00,0x02,0x00 }},/* ; 06 (800x) */
2665     {{      0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* ; 07 (1024x) */
2666 };
2667
2668 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] =
2669 {       /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2670     {{      0x24,0xBB,0x31,0x87,0x5D,0x25,0x30      }},/* ; 00 (x350) */
2671     {{      0x24,0xBB,0x4A,0x80,0x8F,0x25,0x30      }},/* ; 01 (x400) */
2672     {{      0x24,0xBB,0x72,0x88,0xDF,0x25,0x30      }},/* ; 02 (x480) */
2673     {{      0x24,0xF1,0xAE,0x84,0x57,0x25,0xB0      }},/* ; 03 (x600) */
2674     {{      0x24,0xF5,0x02,0x88,0xFF,0x25,0x90      }} /* ; 04 (x768) */
2675 };
2676
2677 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] =
2678 {      /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2679     {{      0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }},/* ; 00 (320x) */
2680     {{      0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }},/* ; 01 (360x) */
2681     {{      0x60,0x31,0x84,0x3A,0x88,0x00,0x01,0x00 }},/* ; 02 (400x) */
2682     {{      0x6E,0x3F,0x92,0x48,0x96,0x00,0x01,0x00 }},/* ; 03 (512x) */
2683     {{      0x7E,0x4F,0x82,0x54,0x06,0x00,0x06,0x00 }},/* ; 04 (640x) */
2684     {{      0x7E,0x4F,0x82,0x54,0x06,0x00,0x06,0x00 }},/* ; 05 (720x) */
2685     {{      0x92,0x63,0x96,0x68,0x1A,0x00,0x06,0x00 }},/* ; 06 (800x) */
2686     {{      0xAE,0x7F,0x92,0x84,0x96,0x00,0x02,0x00 }},/* ; 07 (1024x) */
2687     {{      0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00 }} /* ; 08 (1280x) */
2688 };
2689
2690 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] =
2691 {       /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2692     {{      0x86,0xD1,0xBC,0x80,0xBB,0xE5,0x00      }},/* ; 00 (x350) */
2693     {{      0xB8,0x1F,0x90,0x84,0x8F,0xB9,0x30      }},/* ; 01 (x400) */
2694     {{      0x08,0x3E,0xE0,0x84,0xDF,0x09,0x00      }},/* ; 02 (x480) */
2695     {{      0x80,0xF0,0x58,0x8C,0x57,0x81,0xA0      }},/* ; 03 (x600) */
2696     {{      0x28,0xF5,0x00,0x84,0xFF,0x29,0x90      }},/* ; 04 (x768) */
2697     {{      0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9      }} /* ; 05 (x1024) */
2698 };
2699
2700 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] =
2701 {
2702         /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2703     {{      0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }},/* ; 00 (320x) */
2704     {{      0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }},/* ; 01 (360x) */
2705     {{      0x7E,0x40,0x84,0x49,0x91,0x00,0x01,0x00 }},/* ; 02 (400x) */
2706     {{      0x7E,0x47,0x93,0x50,0x9E,0x00,0x01,0x00 }},/* ; 03 (512x) */
2707     {{      0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }},/* ; 04 (640x) */
2708     {{      0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }},/* ; 05 (720x) */
2709     {{      0xCE,0x81,0x94,0x8A,0x98,0x00,0x02,0x00 }},/* ; 06 (800x) */
2710     {{      0xCE,0x8F,0x82,0x98,0x06,0x00,0x07,0x00 }},/* ; 07 (1024x) */
2711     {{      0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* ; 08 (1280x) */
2712 };
2713
2714 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] =
2715 {
2716         /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2717      {{     0x28,0xD2,0xAF,0x83,0xAE,0xD8,0xA1     }},/* ; 00 (x350) */
2718      {{     0x28,0xD2,0xC8,0x8C,0xC7,0xF2,0x81     }},/* ; 01 (x400) */
2719      {{     0x28,0xD2,0xF0,0x84,0xEF,0x1A,0xB1     }},/* ; 02 (x480) */
2720      {{     0x28,0xDE,0x2C,0x8F,0x2B,0x56,0x91     }},/* ; 03 (x600) */
2721      {{     0x28,0xDE,0x80,0x83,0x7F,0xAA,0x91     }},/* ; 04 (x768) */
2722      {{     0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9     }} /* ; 05 (x1024) */
2723 };
2724
2725 #if 0
2726 static struct XGI_LVDSCRT1DataStruct  XGI_CHTVCRT1UNTSC[] =
2727 {
2728  {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
2729     0xe8,0x84,0x8f,0x57,0x20,0x00,0x01,0x00 }},
2730  {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
2731     0xd0,0x82,0x5d,0x57,0x00,0x00,0x01,0x00 }},
2732  {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
2733     0xe8,0x84,0x8f,0x57,0x20,0x00,0x01,0x00 }},
2734  {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
2735     0xd0,0x82,0x5d,0x57,0x00,0x00,0x01,0x00 }},
2736  {{0x5d,0x4f,0x81,0x53,0x9c,0x56,0xba,
2737     0x18,0x84,0xdf,0x57,0x00,0x00,0x01,0x00 }},
2738  {{0x80,0x63,0x84,0x6c,0x17,0xec,0xf0,
2739    0x90,0x8c,0x57,0xed,0x20,0x00,0x06,0x01 }}
2740 };
2741
2742 static struct XGI_LVDSCRT1DataStruct  XGI_CHTVCRT1ONTSC[] =
2743 {
2744  {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e,
2745     0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01,0x00 }},
2746  {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e,
2747     0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01,0x00 }},
2748  {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e,
2749     0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01,0x00 }},
2750  {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e,
2751     0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01,0x00 }},
2752  {{0x5d,0x4f,0x81,0x56,0x9c,0x0b,0x3e,
2753     0xe8,0x84,0xdf,0x0c,0x00,0x00,0x01,0x00 }},
2754  {{0x7d,0x63,0x81,0x6a,0x16,0xba,0xf0,
2755    0x7f,0x86,0x57,0xbb,0x00,0x00,0x06,0x01 }}
2756 };
2757
2758 static struct XGI_LVDSCRT1DataStruct  XGI_CHTVCRT1UPAL[] =
2759 {
2760  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2761     0xf8,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }},
2762  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2763     0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }},
2764  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2765     0xf8,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }},
2766  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2767     0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }},
2768  {{0x64,0x4f,0x88,0x55,0x80,0xec,0xba,
2769     0x50,0x84,0xdf,0xed,0x00,0x00,0x05,0x00 }},
2770  {{0x70,0x63,0x94,0x68,0x8d,0x42,0xf1,
2771    0xc8,0x8c,0x57,0xe9,0x20,0x00,0x05,0x01 }}
2772 };
2773
2774 static struct XGI_LVDSCRT1DataStruct  XGI_CHTVCRT1OPAL[] =
2775 {
2776  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2777     0xf0,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }},
2778  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2779     0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }},
2780  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2781     0xf0,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }},
2782  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2783     0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }},
2784  {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba,
2785     0x20,0x83,0xdf,0x70,0x00,0x00,0x05,0x00 }},
2786  {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0,
2787    0x90,0x8c,0x57,0xed,0x20,0x00,0x05,0x01 }}
2788 };
2789 #endif
2790
2791 /*add for new UNIVGABIOS*/
2792 static struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] =
2793 {
2794   {Panel1024x768,0x0019,0x0001,0},  /* XGI_ExtLCD1024x768Data */
2795   {Panel1024x768,0x0019,0x0000,1},  /* XGI_StLCD1024x768Data */
2796   {Panel1024x768,0x0018,0x0010,2},  /* XGI_CetLCD1024x768Data */
2797   {Panel1280x1024,0x0019,0x0001,3},  /* XGI_ExtLCD1280x1024Data */
2798   {Panel1280x1024,0x0019,0x0000,4},  /* XGI_StLCD1280x1024Data */
2799   {Panel1280x1024,0x0018,0x0010,5},  /* XGI_CetLCD1280x1024Data */
2800   {Panel1400x1050,0x0019,0x0001,6},  /* XGI_ExtLCD1400x1050Data */
2801   {Panel1400x1050,0x0019,0x0000,7},  /* XGI_StLCD1400x1050Data */
2802   {Panel1400x1050,0x0018,0x0010,8},  /* XGI_CetLCD1400x1050Data */
2803   {Panel1600x1200,0x0019,0x0001,9},   /* XGI_ExtLCD1600x1200Data */
2804   {Panel1600x1200,0x0019,0x0000,10},  /* XGI_StLCD1600x1200Data */
2805   {PanelRef60Hz,0x0008,0x0008,11},      /* XGI_NoScalingData */
2806   {Panel1024x768x75,0x0019,0x0001,12},  /* XGI_ExtLCD1024x768x75Data */
2807   {Panel1024x768x75,0x0019,0x0000,13},  /* XGI_StLCD1024x768x75Data */
2808   {Panel1024x768x75,0x0018,0x0010,14},  /* XGI_CetLCD1024x768x75Data */
2809   {Panel1280x1024x75,0x0019,0x0001,15}, /* XGI_ExtLCD1280x1024x75Data */
2810   {Panel1280x1024x75,0x0019,0x0000,16}, /* XGI_StLCD1280x1024x75Data */
2811   {Panel1280x1024x75,0x0018,0x0010,17}, /* XGI_CetLCD1280x1024x75Data */
2812   {PanelRef75Hz,0x0008,0x0008,18},      /* XGI_NoScalingDatax75 */
2813   {0xFF,0x0000,0x0000,0}                /* End of table */
2814 };
2815
2816 static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] =
2817 {
2818   {Panel1024x768,0x0019,0x0001,0}, /* XGI_ExtLCDDes1024x768Data */
2819   {Panel1024x768,0x0019,0x0000,1}, /* XGI_StLCDDes1024x768Data */
2820   {Panel1024x768,0x0018,0x0010,2}, /* XGI_CetLCDDes1024x768Data */
2821   {Panel1280x1024,0x0019,0x0001,3}, /* XGI_ExtLCDDes1280x1024Data */
2822   {Panel1280x1024,0x0019,0x0000,4}, /* XGI_StLCDDes1280x1024Data */
2823   {Panel1280x1024,0x0018,0x0010,5}, /* XGI_CetLCDDes1280x1024Data */
2824   {Panel1400x1050,0x0019,0x0001,6}, /* XGI_ExtLCDDes1400x1050Data */
2825   {Panel1400x1050,0x0019,0x0000,7}, /* XGI_StLCDDes1400x1050Data */
2826   {Panel1400x1050,0x0418,0x0010,8}, /* XGI_CetLCDDes1400x1050Data */
2827   {Panel1400x1050,0x0418,0x0410,9}, /* XGI_CetLCDDes1400x1050Data2 */
2828   {Panel1600x1200,0x0019,0x0001,10}, /* XGI_ExtLCDDes1600x1200Data */
2829   {Panel1600x1200,0x0019,0x0000,11}, /* XGI_StLCDDes1600x1200Data */
2830   {PanelRef60Hz,0x0008,0x0008,12},      /* XGI_NoScalingDesData */
2831   {Panel1024x768x75,0x0019,0x0001,13},  /* XGI_ExtLCDDes1024x768x75Data */
2832   {Panel1024x768x75,0x0019,0x0000,14},  /* XGI_StLCDDes1024x768x75Data */
2833   {Panel1024x768x75,0x0018,0x0010,15},  /* XGI_CetLCDDes1024x768x75Data */
2834   {Panel1280x1024x75,0x0019,0x0001,16}, /* XGI_ExtLCDDes1280x1024x75Data */
2835   {Panel1280x1024x75,0x0019,0x0000,17}, /* XGI_StLCDDes1280x1024x75Data */
2836   {Panel1280x1024x75,0x0018,0x0010,18}, /* XGI_CetLCDDes1280x1024x75Data */
2837   {PanelRef75Hz,0x0008,0x0008,19},      /* XGI_NoScalingDesDatax75 */
2838   {0xFF,0x0000,0x0000,0}
2839 };
2840
2841 static struct XGI330_LCDDataTablStruct XGI_EPLLCDCRT1Ptr_H[] =
2842 {
2843   {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDSCRT11024x768_1_H */
2844   {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDSCRT11024x768_2_H */
2845   {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDSCRT11280x1024_1_H */
2846   {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDSCRT11280x1024_2_H */
2847   {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDSCRT11400x1050_1_H */
2848   {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDSCRT11400x1050_2_H */
2849   {Panel1600x1200,0x0018,0x0000,6},  /* XGI_LVDSCRT11600x1200_1_H */
2850   {Panel1024x768x75,0x0018,0x0000,7},   /* XGI_LVDSCRT11024x768_1_Hx75 */
2851   {Panel1024x768x75,0x0018,0x0010,8},   /* XGI_LVDSCRT11024x768_2_Hx75 */
2852   {Panel1280x1024x75,0x0018,0x0000,9},  /* XGI_LVDSCRT11280x1024_1_Hx75 */
2853   {Panel1280x1024x75,0x0018,0x0010,10}, /* XGI_LVDSCRT11280x1024_2_Hx75 */
2854   {0xFF,0x0000,0x0000,0}
2855 };
2856
2857 static struct XGI330_LCDDataTablStruct XGI_EPLLCDCRT1Ptr_V[] =
2858 {
2859   {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDSCRT11024x768_1_V */
2860   {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDSCRT11024x768_2_V */
2861   {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDSCRT11280x1024_1_V */
2862   {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDSCRT11280x1024_2_V */
2863   {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDSCRT11400x1050_1_V */
2864   {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDSCRT11400x1050_2_V */
2865   {Panel1600x1200,0x0018,0x0000,6}, /* XGI_LVDSCRT11600x1200_1_V */
2866   {Panel1024x768x75,0x0018,0x0000,7},   /* XGI_LVDSCRT11024x768_1_Vx75 */
2867   {Panel1024x768x75,0x0018,0x0010,8},   /* XGI_LVDSCRT11024x768_2_Vx75 */
2868   {Panel1280x1024x75,0x0018,0x0000,9},  /* XGI_LVDSCRT11280x1024_1_Vx75 */
2869   {Panel1280x1024x75,0x0018,0x0010,10}, /* XGI_LVDSCRT11280x1024_2_Vx75 */
2870   {0xFF,0x0000,0x0000,0}
2871 };
2872
2873 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] =
2874 {
2875   {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDS1024x768Data_1 */
2876   {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDS1024x768Data_2 */
2877   {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDS1280x1024Data_1 */
2878   {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDS1280x1024Data_2 */
2879   {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDS1400x1050Data_1 */
2880   {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDS1400x1050Data_2 */
2881   {Panel1600x1200,0x0018,0x0000,6}, /* XGI_LVDS1600x1200Data_1 */
2882   {PanelRef60Hz,0x0008,0x0008,7}, /* XGI_LVDSNoScalingData */
2883   {Panel1024x768x75,0x0018,0x0000,8},   /* XGI_LVDS1024x768Data_1x75 */
2884   {Panel1024x768x75,0x0018,0x0010,9},   /* XGI_LVDS1024x768Data_2x75 */
2885   {Panel1280x1024x75,0x0018,0x0000,10}, /* XGI_LVDS1280x1024Data_1x75 */
2886   {Panel1280x1024x75,0x0018,0x0010,11}, /* XGI_LVDS1280x1024Data_2x75 */
2887   {PanelRef75Hz,0x0008,0x0008,12},      /* XGI_LVDSNoScalingDatax75 */
2888   {0xFF,0x0000,0x0000,0}
2889 };
2890
2891 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] =
2892 {
2893   {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDS1024x768Des_1 */
2894   {Panel1024x768,0x0618,0x0410,1}, /* XGI_LVDS1024x768Des_3 */
2895   {Panel1024x768,0x0018,0x0010,2}, /* XGI_LVDS1024x768Des_2 */
2896   {Panel1280x1024,0x0018,0x0000,3}, /* XGI_LVDS1280x1024Des_1 */
2897   {Panel1280x1024,0x0018,0x0010,4}, /* XGI_LVDS1280x1024Des_2 */
2898   {Panel1400x1050,0x0018,0x0000,5}, /* XGI_LVDS1400x1050Des_1 */
2899   {Panel1400x1050,0x0018,0x0010,6}, /* XGI_LVDS1400x1050Des_2 */
2900   {Panel1600x1200,0x0018,0x0000,7}, /* XGI_LVDS1600x1200Des_1 */
2901   {PanelRef60Hz,0x0008,0x0008,8},       /* XGI_LVDSNoScalingDesData */
2902   {Panel1024x768x75,0x0018,0x0000,9},   /* XGI_LVDS1024x768Des_1x75 */
2903   {Panel1024x768x75,0x0618,0x0410,10},  /* XGI_LVDS1024x768Des_3x75 */
2904   {Panel1024x768x75,0x0018,0x0010,11},  /* XGI_LVDS1024x768Des_2x75 */
2905   {Panel1280x1024x75,0x0018,0x0000,12}, /* XGI_LVDS1280x1024Des_1x75 */
2906   {Panel1280x1024x75,0x0018,0x0010,13}, /* XGI_LVDS1280x1024Des_2x75 */
2907   {PanelRef75Hz,0x0008,0x0008,14},      /* XGI_LVDSNoScalingDesDatax75 */
2908   {0xFF,0x0000,0x0000,0}
2909 };
2910
2911 static struct XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr[] =
2912 {
2913   {Panel1024x768,0x0000,0x0000,0}, /* XGI_CH7017LV1024x768 */
2914   {Panel1400x1050,0x0000,0x0000,1}, /* XGI_CH7017LV1400x1050 */
2915   {0xFF,0x0000,0x0000,0}
2916 };
2917
2918 static struct XGI330_TVDataTablStruct XGI_TVDataTable[] =
2919 {
2920  {0x09E1,0x0001,0},     /* XGI_ExtPALData */
2921  {0x09E1,0x0000,1},     /* XGI_ExtNTSCData */
2922  {0x09E1,0x0801,2},     /* XGI_StPALData */
2923  {0x09E1,0x0800,3},     /* XGI_StNTSCData */
2924  {0x49E0,0x0100,4},     /* XGI_ExtHiTVData */
2925  {0x49E0,0x4100,5},     /* XGI_St2HiTVData */
2926  {0x49E0,0x4900,13},    /* XGI_St1HiTVData */
2927  {0x09E0,0x0020,6},     /* XGI_ExtYPbPr525iData */
2928  {0x09E0,0x0040,7},     /* XGI_ExtYPbPr525pData */
2929  {0x09E0,0x0080,8},     /* XGI_ExtYPbPr750pData */
2930  {0x09E0,0x0820,9},     /* XGI_StYPbPr525iData */
2931  {0x09E0,0x0840,10},    /* XGI_StYPbPr525pData */
2932  {0x09E0,0x0880,11},    /* XGI_StYPbPr750pData */
2933  {0xffff,0x0000,12}     /* END */
2934 };
2935
2936 #if 0
2937 static unsigned short TVLenList[] =
2938 {
2939    LVDSCRT1Len_H,
2940    LVDSCRT1Len_V,
2941    LVDSDataLen,
2942    0,
2943    TVDataLen,
2944    0,
2945    0,
2946    CHTVRegLen
2947 } ;
2948 #endif
2949
2950 /* Chrontel 7017 TV CRT1 Timing List */
2951 static struct XGI330_TVDataTablStruct XGI_EPLCHTVCRT1Ptr[] =
2952 {
2953   {0x0011,0x0000,0}, /* XGI_CHTVCRT1UNTSC */
2954   {0x0011,0x0010,1}, /* XGI_CHTVCRT1ONTSC */
2955   {0x0011,0x0001,2}, /* XGI_CHTVCRT1UPAL */
2956   {0x0011,0x0011,3}, /* XGI_CHTVCRT1OPAL */
2957   {0xFFFF,0x0000,4}
2958 };
2959
2960 /* ;;Chrontel 7017 TV Timing List */
2961 static struct XGI330_TVDataTablStruct XGI_EPLCHTVDataPtr[] =
2962 {
2963   {0x0011,0x0000,0}, /* XGI_CHTVUNTSCData */
2964   {0x0011,0x0010,1}, /* XGI_CHTVONTSCData */
2965   {0x0011,0x0001,2}, /* XGI_CHTVUPALData */
2966   {0x0011,0x0011,3}, /* XGI_CHTVOPALData */
2967   {0xFFFF,0x0000,4}
2968 };
2969
2970 /* ;;Chrontel 7017 TV Reg. List */
2971 static struct XGI330_TVDataTablStruct XGI_EPLCHTVRegPtr[] =
2972 {
2973   {0x0011,0x0000,0}, /* XGI_CHTVRegUNTSC */
2974   {0x0011,0x0010,1}, /* XGI_CHTVRegONTSC */
2975   {0x0011,0x0001,2}, /* XGI_CHTVRegUPAL */
2976   {0x0011,0x0011,3}, /* XGI_CHTVRegOPAL */
2977   {0xFFFF,0x0000,4}
2978 };
2979
2980 static unsigned short LCDLenList[] =
2981 {
2982    LVDSCRT1Len_H,
2983    LVDSCRT1Len_V,
2984    LVDSDataLen,
2985    LCDDesDataLen,
2986    LCDDataLen,
2987    LCDDesDataLen,
2988    0,
2989    LCDDesDataLen,
2990    LCDDesDataLen,
2991    0
2992 } ;
2993
2994 #if 0
2995 static struct XGI330_LCDCapStruct  XGI660_LCDDLCapList[] =  /* 660, Dual link */
2996 {
2997 /* LCDCap1024x768 */
2998                 {Panel1024x768, DefaultLCDCap, 0, 0x014, 0x88, 0x06, VCLK65,
2999                  0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
3000                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
3001 /* LCDCap1280x1024 */
3002                 {Panel1280x1024, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x053, 0x70, 0x03, VCLK108_2,
3003                  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
3004                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3005 /* LCDCap1400x1050 */
3006                 {Panel1400x1050, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x053, 0x70, 0x03, VCLK108_2,
3007                  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
3008                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3009 /* LCDCap1600x1200 */
3010                 {Panel1600x1200, LCDDualLink+DefaultLCDCap, LCDToFull, 0x053, 0xC0, 0x03, VCLK162,
3011                  0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
3012                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3013 /* LCDCap1024x768x75 */
3014                 {Panel1024x768x75, DefaultLCDCap, 0, 0x014, 0x60, 0, VCLK78_75,
3015                  0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
3016                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
3017 /* LCDCap1280x1024x75 */
3018                 {Panel1280x1024x75, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x053, 0x90, 0x03, VCLK135_5,
3019                  0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
3020                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3021 /* LCDCapDefault */
3022                 {0xFF, DefaultLCDCap, 0, 0x053, 0x88, 0x06, VCLK65,
3023                 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
3024                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
3025 };
3026 #endif
3027
3028 static struct XGI330_LCDCapStruct  XGI_LCDDLCapList[] =  /* Dual link only */
3029 {
3030 /* LCDCap1024x768 */
3031                 {Panel1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65,
3032                 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
3033                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
3034 /* LCDCap1280x1024 */
3035                 {Panel1280x1024, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2,
3036                 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
3037                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3038 /* LCDCap1400x1050 */
3039                 {Panel1400x1050, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2,
3040                  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
3041                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3042 /* LCDCap1600x1200 */
3043                 {Panel1600x1200, LCDDualLink+DefaultLCDCap, LCDToFull, 0x012, 0xC0, 0x03, VCLK162,
3044                  0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
3045                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3046 /* LCDCap1024x768x75 */
3047                 {Panel1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
3048                  0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
3049                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
3050 /* LCDCap1280x1024x75 */
3051                 {Panel1280x1024x75, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x90, 0x03, VCLK135_5,
3052                  0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
3053                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3054 /* LCDCapDefault */
3055                 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65,
3056                 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
3057                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
3058 };
3059
3060 #if 0
3061 static struct XGI330_LCDCapStruct  XGI660_LCDCapList[] =
3062 {
3063 /* LCDCap1024x768 */
3064                 {Panel1024x768, DefaultLCDCap, 0, 0x014, 0x88, 0x06, VCLK65,
3065                 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
3066                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
3067 /* LCDCap1280x1024 */
3068                 {Panel1280x1024, DefaultLCDCap, StLCDBToA, 0x053, 0x70, 0x03, VCLK108_2,
3069                 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
3070                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3071 /* LCDCap1400x1050 */
3072                 {Panel1400x1050, DefaultLCDCap, StLCDBToA, 0x053, 0x70, 0x03, VCLK108_2,
3073                  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
3074                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3075 /* LCDCap1600x1200 */
3076                 {Panel1600x1200, DefaultLCDCap, LCDToFull, 0x053, 0xC0, 0x03, VCLK162,
3077                  0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
3078                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3079 /* LCDCap1024x768x75 */
3080                 {Panel1024x768x75, DefaultLCDCap, 0, 0x014, 0x60, 0, VCLK78_75,
3081                  0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
3082                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
3083 /* LCDCap1280x1024x75 */
3084                 {Panel1280x1024x75,+DefaultLCDCap, StLCDBToA, 0x053, 0x90, 0x03, VCLK135_5,
3085                  0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
3086                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3087 /* LCDCapDefault */
3088                 {0xFF, DefaultLCDCap, 0, 0x053, 0x88, 0x06, VCLK65,
3089                 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
3090                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
3091 };
3092 #endif
3093
3094 static struct XGI330_LCDCapStruct  XGI_LCDCapList[] =
3095 {
3096 /* LCDCap1024x768 */
3097                 {Panel1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65,
3098                 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
3099                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
3100 /* LCDCap1280x1024 */
3101                 {Panel1280x1024, DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2,
3102                 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
3103                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3104 /* LCDCap1400x1050 */
3105                 {Panel1400x1050, DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2,
3106                  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
3107                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3108 /* LCDCap1600x1200 */
3109                 {Panel1600x1200, DefaultLCDCap, LCDToFull, 0x012, 0xC0, 0x03, VCLK162,
3110                  0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
3111                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3112 /* LCDCap1024x768x75 */
3113                 {Panel1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
3114                  0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
3115                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
3116 /* LCDCap1280x1024x75 */
3117                 {Panel1280x1024x75, DefaultLCDCap, StLCDBToA, 0x012, 0x90, 0x03, VCLK135_5,
3118                  0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
3119                  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
3120 /* LCDCapDefault */
3121                 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65,
3122                 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
3123                 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
3124 };
3125
3126 struct XGI21_LVDSCapStruct XGI21_LCDCapList[] =
3127 {
3128     {DisableLCD24bpp + LCDPolarity,
3129      2160,1250,1600,1200,  64,  1,  192,   3,
3130      0x70,0x24,0x20,0x04,0x0A,0x02,0xC8
3131     },
3132     {DisableLCD24bpp + LCDPolarity,
3133      1688,1066,1280,1024,  48,  1,  112,   3,
3134      0x70,0x44,0x20,0x04,0x0A,0x02,0xC8
3135     },
3136     {DisableLCD24bpp + LCDPolarity + (LCDPolarity << 8),
3137      1344, 806,1024, 768,  24,  3,  136,   6,
3138      0x6C,0x65,0x20,0x04,0x0A,0x02,0xC8
3139     },
3140     {DisableLCD24bpp + LCDPolarity,
3141      1056, 628, 800, 600,  40,   1, 128,   4,
3142      0x42,0xE2,0x20,0x14,0x0A,0x02,0x00
3143     },
3144     {DisableLCD24bpp + LCDPolarity,
3145       928, 525, 800, 480,  40,  13,  48,   3,
3146      0x52,0xC5,0x20,0x14,0x0A,0x02,0x00
3147     },
3148     {DisableLCD24bpp + LCDPolarity + (LCDPolarity << 8),
3149       800, 525, 640, 480,  16,  10,  96,   2,
3150      0x1B,0xE1,0x20,0x04,0x0A,0x02,0xC8
3151     }
3152
3153 };
3154
3155 static struct XGI_Ext2Struct XGI330_RefIndex[] =
3156 {
3157 {Support32Bpp + SupportAllCRT2 + SyncPN,                        RES320x200,      VCLK25_175, 0x00,0x10,0x59, 320, 200},/* 00 */
3158 {Support32Bpp + SupportAllCRT2 + SyncPN,                        RES320x200,      VCLK25_175, 0x00,0x10,0x00, 320, 400},/* 01 */
3159 {Support32Bpp + SupportAllCRT2 + SyncNN,                        RES320x240,      VCLK25_175, 0x04,0x20,0x50, 320, 240},/* 02 */
3160 {Support32Bpp + SupportAllCRT2 + SyncPP,                        RES400x300,      VCLK40,     0x05,0x32,0x51, 400, 300},/* 03 */
3161 {Support32Bpp + NoSupportTV + SyncNN + SupportTV1024,           RES512x384,      VCLK65,     0x06,0x43,0x52, 512, 384},/* 04 */
3162 {Support32Bpp + SupportAllCRT2 + SyncPN,                        RES640x400,      VCLK25_175, 0x00,0x14,0x2f, 640, 400},/* 05 */
3163 {Support32Bpp + SupportAllCRT2 + SyncNN,                        RES640x480x60,   VCLK25_175, 0x04,0x24,0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
3164 {Support32Bpp + NoSupportHiVisionTV + SyncNN,                   RES640x480x72,   VCLK31_5,   0x04,0x24,0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
3165 {Support32Bpp + NoSupportHiVisionTV + SyncNN,                   RES640x480x75,   VCLK31_5,   0x47,0x24,0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
3166 {Support32Bpp + SupportRAMDAC2 + SyncNN,                        RES640x480x85,   VCLK36,     0x8A,0x24,0x2e, 640, 480},/* 09 640x480x85Hz */
3167 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES640x480x100,  VCLK43_163, 0x00,0x24,0x2e, 640, 480},/* 0a 640x480x100Hz */
3168 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES640x480x120,  VCLK52_406, 0x00,0x24,0x2e, 640, 480},/* 0b 640x480x120Hz */
3169 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES640x480x160,  VCLK72_852, 0x00,0x24,0x2e, 640, 480},/* 0c 640x480x160Hz */
3170 {Support32Bpp + SupportRAMDAC2 + SyncNN,                        RES640x480x200,  VCLK86_6,   0x00,0x24,0x2e, 640, 480},/* 0d 640x480x200Hz */
3171 {Support32Bpp + NoSupportLCD + SyncPP,                          RES800x600x56,   VCLK36,     0x05,0x36,0x6a, 800, 600},/* 0e 800x600x56Hz */
3172 {Support32Bpp + NoSupportTV + SyncPP,                           RES800x600x60,   VCLK40,     0x05,0x36,0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
3173 {Support32Bpp + NoSupportHiVisionTV + SyncPP,                   RES800x600x72,   VCLK50,     0x48,0x36,0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
3174 {Support32Bpp + NoSupportHiVisionTV + SyncPP,                   RES800x600x75,   VCLK49_5,   0x8B,0x36,0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
3175 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES800x600x85,   VCLK56_25,  0x00,0x36,0x6a, 800, 600},/* 12 800x600x85Hz */
3176 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES800x600x100,  VCLK68_179, 0x00,0x36,0x6a, 800, 600},/* 13 800x600x100Hz */
3177 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES800x600x120,  VCLK83_95,  0x00,0x36,0x6a, 800, 600},/* 14 800x600x120Hz */
3178 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES800x600x160,  VCLK116_406,0x00,0x36,0x6a, 800, 600},/* 15 800x600x160Hz */
3179 {Support32Bpp + InterlaceMode + SyncPP,                         RES1024x768x43,  VCLK44_9,   0x00,0x47,0x37,1024, 768},/* 16 1024x768x43Hz */
3180 {Support32Bpp + NoSupportTV + SyncNN + SupportTV1024,           RES1024x768x60,  VCLK65,     0x06,0x47,0x37,1024, 768},/* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
3181 {Support32Bpp + NoSupportHiVisionTV + SyncNN,                   RES1024x768x70,  VCLK75,     0x49,0x47,0x37,1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
3182 {Support32Bpp + NoSupportHiVisionTV + SyncPP,                   RES1024x768x75,  VCLK78_75,  0x00,0x47,0x37,1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
3183 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES1024x768x85,  VCLK94_5,   0x8C,0x47,0x37,1024, 768},/* 1a 1024x768x85Hz */
3184 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES1024x768x100, VCLK113_309,0x00,0x47,0x37,1024, 768},/* 1b 1024x768x100Hz */
3185 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES1024x768x120, VCLK139_054,0x00,0x47,0x37,1024, 768},/* 1c 1024x768x120Hz */
3186 {Support32Bpp + SupportLCD + SyncPP,                            RES1280x960x60,  VCLK108_2,  0x08,0x58,0x7b,1280, 960},/* 1d 1280x960x60Hz */
3187 {Support32Bpp + InterlaceMode + SyncPP,                         RES1280x1024x43, VCLK78_75,  0x00,0x58,0x3a,1280,1024},/* 1e 1280x1024x43Hz */
3188 {Support32Bpp + NoSupportTV + SyncPP,                           RES1280x1024x60, VCLK108_2,  0x07,0x58,0x3a,1280,1024},/* 1f 1280x1024x60Hz (LCD 1280x1024x60Hz) */
3189 {Support32Bpp + NoSupportTV + SyncPP,                           RES1280x1024x75, VCLK135_5,  0x00,0x58,0x3a,1280,1024},/* 20 1280x1024x75Hz (LCD 1280x1024x75Hz) */
3190 {Support32Bpp + SyncPP,                                         RES1280x1024x85, VCLK157_5,  0x00,0x58,0x3a,1280,1024},/* 21 1280x1024x85Hz */
3191 {Support32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,        RES1600x1200x60, VCLK162,    0x09,0x7A,0x3c,1600,1200},/* 22 1600x1200x60Hz */
3192 {Support32Bpp + SyncPP + SupportCRT2in301C,                     RES1600x1200x65, VCLK175,    0x00,0x69,0x3c,1600,1200},/* 23 1600x1200x65Hz */
3193 {Support32Bpp + SyncPP + SupportCRT2in301C,                     RES1600x1200x70, VCLK189,    0x00,0x69,0x3c,1600,1200},/* 24 1600x1200x70Hz */
3194 {Support32Bpp + SyncPP + SupportCRT2in301C,                     RES1600x1200x75, VCLK202_5,  0x00,0x69,0x3c,1600,1200},/* 25 1600x1200x75Hz */
3195 {Support32Bpp + SyncPP,                                         RES1600x1200x85, VCLK229_5,  0x00,0x69,0x3c,1600,1200},/* 26 1600x1200x85Hz */
3196 {Support32Bpp + SyncPP,                                         RES1600x1200x100,VCLK269_655,0x00,0x69,0x3c,1600,1200},/* 27 1600x1200x100Hz */
3197 {Support32Bpp + SyncPP,                                         RES1600x1200x120,VCLK323_586,0x00,0x69,0x3c,1600,1200},/* 28 1600x1200x120Hz */
3198 {Support32Bpp + SupportLCD + SyncNP,                            RES1920x1440x60, VCLK234,    0x00,0x00,0x68,1920,1440},/* 29 1920x1440x60Hz */
3199 {Support32Bpp + SyncPN,                                         RES1920x1440x65, VCLK254_817,0x00,0x00,0x68,1920,1440},/* 2a 1920x1440x65Hz */
3200 {Support32Bpp + SyncPN,                                         RES1920x1440x70, VCLK277_015,0x00,0x00,0x68,1920,1440},/* 2b 1920x1440x70Hz */
3201 {Support32Bpp + SyncPN,                                         RES1920x1440x75, VCLK291_132,0x00,0x00,0x68,1920,1440},/* 2c 1920x1440x75Hz */
3202 {Support32Bpp + SyncPN,                                         RES1920x1440x85, VCLK330_615,0x00,0x00,0x68,1920,1440},/* 2d 1920x1440x85Hz */
3203 {Support16Bpp + SyncPN,                                         RES1920x1440x100,VCLK388_631,0x00,0x00,0x68,1920,1440},/* 2e 1920x1440x100Hz */
3204 {Support32Bpp + SupportLCD + SyncPN,                            RES2048x1536x60, VCLK266_952,0x00,0x00,0x6c,2048,1536},/* 2f 2048x1536x60Hz */
3205 {Support32Bpp + SyncPN,                                         RES2048x1536x65, VCLK291_766,0x00,0x00,0x6c,2048,1536},/* 30 2048x1536x65Hz */
3206 {Support32Bpp + SyncPN,                                         RES2048x1536x70, VCLK315_195,0x00,0x00,0x6c,2048,1536},/* 31 2048x1536x70Hz */
3207 {Support32Bpp + SyncPN,                                         RES2048x1536x75, VCLK340_477,0x00,0x00,0x6c,2048,1536},/* 32 2048x1536x75Hz */
3208 {Support16Bpp + SyncPN,                                         RES2048x1536x85, VCLK375_847,0x00,0x00,0x6c,2048,1536},/* 33 2048x1536x85Hz */
3209 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr,     RES800x480x60,   VCLK39_77,  0x08,0x00,0x70, 800, 480},/* 34 800x480x60Hz */
3210 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES800x480x75,   VCLK49_5,   0x08,0x00,0x70, 800, 480},/* 35 800x480x75Hz */
3211 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES800x480x85,   VCLK56_25,  0x08,0x00,0x70, 800, 480},/* 36 800x480x85Hz */
3212 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr,     RES1024x576x60,  VCLK65,     0x09,0x00,0x71,1024, 576},/* 37 1024x576x60Hz */
3213 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES1024x576x75,  VCLK78_75,  0x09,0x00,0x71,1024, 576},/* 38 1024x576x75Hz */
3214 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES1024x576x85,  VCLK94_5,   0x09,0x00,0x71,1024, 576},/* 39 1024x576x85Hz */
3215 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr,     RES1280x720x60,  VCLK108_2,  0x0A,0x00,0x75,1280, 720},/* 3a 1280x720x60Hz */
3216 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES1280x720x75,  VCLK135_5,  0x0A,0x00,0x75,1280, 720},/* 3b 1280x720x75Hz */
3217 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES1280x720x85,  VCLK157_5,  0x0A,0x00,0x75,1280, 720},/* 3c 1280x720x85Hz */
3218 {Support32Bpp + SupportTV + SyncNN,                             RES720x480x60,   VCLK28_322, 0x06,0x00,0x31, 720, 480},/* 3d 720x480x60Hz */
3219 {Support32Bpp + SupportTV + SyncPP,                             RES720x576x56,   VCLK36,     0x06,0x00,0x32, 720, 576},/* 3e 720x576x56Hz */
3220 {Support32Bpp + InterlaceMode + NoSupportLCD + SyncPP,          RES856x480x79I,  VCLK35_2,   0x00,0x00,0x00, 856, 480},/* 3f 856x480x79I */
3221 {Support32Bpp + NoSupportLCD + SyncNN,                          RES856x480x60,   VCLK35_2,   0x00,0x00,0x00, 856, 480},/* 40 856x480x60Hz */
3222 {Support32Bpp + NoSupportHiVisionTV + SyncPP,                   RES1280x768x60,  VCLK79_411, 0x08,0x48,0x23,1280, 768},/* 41 1280x768x60Hz */
3223 {Support32Bpp + NoSupportHiVisionTV + SyncPP,                   RES1400x1050x60, VCLK122_61, 0x08,0x69,0x26,1400,1050},/* 42 1400x1050x60Hz */
3224 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES1152x864x60,  VCLK80_350, 0x37,0x00,0x20,1152, 864},/* 43 1152x864x60Hz */
3225 {Support32Bpp + SupportRAMDAC2 + SyncPP,                        RES1152x864x75,  VCLK107_385,0x37,0x00,0x20,1152, 864},/* 44 1152x864x75Hz */
3226 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP,           RES1280x960x75,  VCLK125_999,0x3A,0x88,0x7b,1280, 960},/* 45 1280x960x75Hz */
3227 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP,           RES1280x960x85,  VCLK148_5,  0x0A,0x88,0x7b,1280, 960},/* 46 1280x960x85Hz */
3228 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP,           RES1280x960x120, VCLK217_325,0x3A,0x88,0x7b,1280, 960},/* 47 1280x960x120Hz */
3229 {Support32Bpp + SupportRAMDAC2 + SyncPN,                        RES1024x768x160, VCLK139_054,0x30,0x47,0x37,1024, 768},/* 48 1024x768x160Hz */
3230 };
3231
3232
3233 #if 0
3234 static struct XGI330_VCLKDataStruct XGI330_VCLKData[] =
3235 {
3236  { 0x1b,0xe1, 25}, /* 0x0 */
3237  { 0x4e,0xe4, 28}, /* 0x1 */
3238  { 0x57,0xe4, 31}, /* 0x2 */
3239  { 0xc3,0xc8, 36}, /* 0x3 */
3240  { 0x42,0xe2, 40}, /* 0x4 */
3241  { 0xfe,0xcd, 43}, /* 0x5 */
3242  { 0x5d,0xc4, 44}, /* 0x6 */
3243  { 0x52,0xe2, 49}, /* 0x7 */
3244  { 0x53,0xe2, 50}, /* 0x8 */
3245  { 0x74,0x67, 52}, /* 0x9 */
3246  { 0x6d,0x66, 56}, /* 0xa */
3247  { 0x6c,0xc3, 65}, /* 0xb */
3248  { 0x46,0x44, 67}, /* 0xc */
3249  { 0xb1,0x46, 68}, /* 0xd */
3250  { 0xd3,0x4a, 72}, /* 0xe */
3251  { 0x29,0x61, 75}, /* 0xf */
3252  { 0x6e,0x46, 76}, /* 0x10 */
3253  { 0x2b,0x61, 78}, /* 0x11 */
3254  { 0x31,0x42, 79}, /* 0x12 */
3255  { 0xab,0x44, 83}, /* 0x13 */
3256  { 0x46,0x25, 84}, /* 0x14 */
3257  { 0x78,0x29, 86}, /* 0x15 */
3258  { 0x62,0x44, 94}, /* 0x16 */
3259  { 0x2b,0x41,104}, /* 0x17 */
3260  { 0x3a,0x23,105}, /* 0x18 */
3261  { 0x70,0x44,108}, /* 0x19 */
3262  { 0x3c,0x23,109}, /* 0x1a */
3263  { 0x5e,0x43,113}, /* 0x1b */
3264  { 0xbc,0x44,116}, /* 0x1c */
3265  { 0xe0,0x46,132}, /* 0x1d */
3266  { 0x54,0x42,135}, /* 0x1e */
3267  { 0xea,0x2a,139}, /* 0x1f */
3268  { 0x41,0x22,157}, /* 0x20 */
3269  { 0x70,0x24,162}, /* 0x21 */
3270  { 0x30,0x21,175}, /* 0x22 */
3271  { 0x4e,0x22,189}, /* 0x23 */
3272  { 0xde,0x26,194}, /* 0x24 */
3273  { 0x62,0x06,202}, /* 0x25 */
3274  { 0x3f,0x03,229}, /* 0x26 */
3275  { 0xb8,0x06,234}, /* 0x27 */
3276  { 0x34,0x02,253}, /* 0x28 */
3277  { 0x58,0x04,255}, /* 0x29 */
3278  { 0x24,0x01,265}, /* 0x2a */
3279  { 0x9b,0x02,267}, /* 0x2b */
3280  { 0x70,0x05,270}, /* 0x2c */
3281  { 0x25,0x01,272}, /* 0x2d */
3282  { 0x9c,0x02,277}, /* 0x2e */
3283  { 0x27,0x01,286}, /* 0x2f */
3284  { 0x3c,0x02,291}, /* 0x30 */
3285  { 0xef,0x0a,292}, /* 0x31 */
3286  { 0xf6,0x0a,310}, /* 0x32 */
3287  { 0x95,0x01,315}, /* 0x33 */
3288  { 0xf0,0x09,324}, /* 0x34 */
3289  { 0xfe,0x0a,331}, /* 0x35 */
3290  { 0xf3,0x09,332}, /* 0x36 */
3291  { 0xea,0x08,340}, /* 0x37 */
3292  { 0xe8,0x07,376}, /* 0x38 */
3293  { 0xde,0x06,389}, /* 0x39 */
3294  { 0x52,0x2a, 54}, /* 0x3a */
3295  { 0x52,0x6a, 27}, /* 0x3b */
3296  { 0x62,0x24, 70}, /* 0x3c */
3297  { 0x62,0x64, 70}, /* 0x3d */
3298  { 0xa8,0x4c, 30}, /* 0x3e */
3299  { 0x20,0x26, 33}, /* 0x3f */
3300  { 0x31,0xc2, 39}, /* 0x40 */
3301  { 0x60,0x36, 30}, /* 0x41 */
3302  { 0x40,0x4A, 28}, /* 0x42 */
3303  { 0x9F,0x46, 44}, /* 0x43 */
3304  { 0x97,0x2C, 26}, /* 0x44 */
3305  { 0x44,0xE4, 25}, /* 0x45 */
3306  { 0x7E,0x32, 47}, /* 0x46 */
3307  { 0x08,0x24, 31}, /* 0x47 */
3308  { 0x97,0x2c, 26}, /* 0x48 */
3309  { 0xCE,0x3c, 39}, /* 0x49 */
3310  { 0x52,0x4A, 36}, /* 0x4a */
3311  { 0x2C,0x61, 95}, /* 0x4b */
3312  { 0x78,0x27,108}, /* 0x4c */
3313  { 0x66,0x43,123},  /* 0x4d */
3314  { 0x2c,0x61, 80},  /* 0x4e */
3315  { 0x3b,0x61,108}  /* 0x4f */
3316 };
3317
3318 static struct XGI_VBVCLKDataStruct XGI330_VBVCLKData[] =
3319 {
3320  { 0x1b,0xe1, 25}, /* 0x0 */
3321  { 0x4e,0xe4, 28}, /* 0x1 */
3322  { 0x57,0xe4, 31}, /* 0x2 */
3323  { 0xc3,0xc8, 36}, /* 0x3 */
3324  { 0x42,0x47, 40}, /* 0x4 */
3325  { 0xfe,0xcd, 43}, /* 0x5 */
3326  { 0x5d,0xc4, 44}, /* 0x6 */
3327  { 0x52,0x47, 49}, /* 0x7 */
3328  { 0x53,0x47, 50}, /* 0x8 */
3329  { 0x74,0x67, 52}, /* 0x9 */
3330  { 0x6d,0x66, 56}, /* 0xa */
3331  { 0x5a,0x64, 65}, /* 0xb */
3332  { 0x46,0x44, 67}, /* 0xc */
3333  { 0xb1,0x46, 68}, /* 0xd */
3334  { 0xd3,0x4a, 72}, /* 0xe */
3335  { 0x29,0x61, 75}, /* 0xf */
3336  { 0x6d,0x46, 75}, /* 0x10 */
3337  { 0x41,0x43, 78}, /* 0x11 */
3338  { 0x31,0x42, 79}, /* 0x12 */
3339  { 0xab,0x44, 83}, /* 0x13 */
3340  { 0x46,0x25, 84}, /* 0x14 */
3341  { 0x78,0x29, 86}, /* 0x15 */
3342  { 0x62,0x44, 94}, /* 0x16 */
3343  { 0x2b,0x22,104}, /* 0x17 */
3344  { 0x49,0x24,105}, /* 0x18 */
3345  { 0xf8,0x2f,108}, /* 0x19 */
3346  { 0x3c,0x23,109}, /* 0x1a */
3347  { 0x5e,0x43,113}, /* 0x1b */
3348  { 0xbc,0x44,116}, /* 0x1c */
3349  { 0xe0,0x46,132}, /* 0x1d */
3350  { 0xd4,0x28,135}, /* 0x1e */
3351  { 0xea,0x2a,139}, /* 0x1f */
3352  { 0x41,0x22,157}, /* 0x20 */
3353  { 0x70,0x24,162}, /* 0x21 */
3354  { 0x30,0x21,175}, /* 0x22 */
3355  { 0x4e,0x22,189}, /* 0x23 */
3356  { 0xde,0x26,194}, /* 0x24 */
3357  { 0x70,0x07,202}, /* 0x25 */
3358  { 0x3f,0x03,229}, /* 0x26 */
3359  { 0xb8,0x06,234}, /* 0x27 */
3360  { 0x34,0x02,253}, /* 0x28 */
3361  { 0x58,0x04,255}, /* 0x29 */
3362  { 0x24,0x01,265}, /* 0x2a */
3363  { 0x9b,0x02,267}, /* 0x2b */
3364  { 0x70,0x05,270}, /* 0x2c */
3365  { 0x25,0x01,272}, /* 0x2d */
3366  { 0x9c,0x02,277}, /* 0x2e */
3367  { 0x27,0x01,286}, /* 0x2f */
3368  { 0x3c,0x02,291}, /* 0x30 */
3369  { 0xef,0x0a,292}, /* 0x31 */
3370  { 0xf6,0x0a,310}, /* 0x32 */
3371  { 0x95,0x01,315}, /* 0x33 */
3372  { 0xf0,0x09,324}, /* 0x34 */
3373  { 0xfe,0x0a,331}, /* 0x35 */
3374  { 0xf3,0x09,332}, /* 0x36 */
3375  { 0xea,0x08,340}, /* 0x37 */
3376  { 0xe8,0x07,376}, /* 0x38 */
3377  { 0xde,0x06,389}, /* 0x39 */
3378  { 0x52,0x2a, 54}, /* 0x3a */
3379  { 0x52,0x6a, 27}, /* 0x3b */
3380  { 0x62,0x24, 70}, /* 0x3c */
3381  { 0x62,0x64, 70}, /* 0x3d */
3382  { 0xa8,0x4c, 30}, /* 0x3e */
3383  { 0x20,0x26, 33}, /* 0x3f */
3384  { 0x31,0xc2, 39}, /* 0x40 */
3385  { 0x2e,0x48, 25}, /* 0x41 */
3386  { 0x24,0x46, 25}, /* 0x42 */
3387  { 0x26,0x64, 28}, /* 0x43 */
3388  { 0x37,0x64, 40}, /* 0x44 */
3389  { 0xa1,0x42,108}, /* 0x45 */
3390  { 0x37,0x61,100}, /* 0x46 */
3391  { 0x78,0x27,108}, /* 0x47 */
3392  { 0x5e,0x64,68},  /* 0x48 chiawen for fuj1280x768*/
3393  { 0x70,0x44,108}, /* 0x49 chiawen for 1400x1050*/
3394 };
3395 #endif
3396
3397 static unsigned char XGI330_ScreenOffset[] = {
3398                                         0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
3399                                         0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
3400                                         0x57, 0x48};
3401
3402 static struct XGI_StResInfoStruct XGI330_StResInfo[] =
3403 {
3404  { 640,400},
3405  { 640,350},
3406  { 720,400},
3407  { 720,350},
3408  { 640,480}
3409 };
3410
3411 static struct XGI_ModeResInfoStruct XGI330_ModeResInfo[] =
3412 {
3413  {  320, 200, 8, 8},
3414  {  320, 240, 8, 8},
3415  {  320, 400, 8, 8},
3416  {  400, 300, 8, 8},
3417  {  512, 384, 8, 8},
3418  {  640, 400, 8,16},
3419  {  640, 480, 8,16},
3420  {  800, 600, 8,16},
3421  { 1024, 768, 8,16},
3422  { 1280,1024, 8,16},
3423  { 1600,1200, 8,16},
3424  { 1920,1440, 8,16},
3425  { 2048,1536, 8,16},
3426  {  720, 480, 8,16},
3427  {  720, 576, 8,16},
3428  { 1280, 960, 8,16},
3429  {  800, 480, 8,16},
3430  { 1024, 576, 8,16},
3431  { 1280, 720, 8,16},
3432  {  856, 480, 8,16},
3433  { 1280, 768, 8,16},
3434  { 1400,1050, 8,16},
3435  { 1152, 864, 8,16}
3436 };
3437
3438 static unsigned char XGI330_OutputSelect = 0x40;
3439 static unsigned char XGI330_SoftSetting = 0x30;
3440 static unsigned char XGI330_SR07 = 0x18;
3441
3442 #if 0
3443 static unsigned char XGI330New_SR15[8][8] = {
3444 {0x0,0x4,0x60,0x60},
3445 {0xf,0xf,0xf,0xf},
3446 {0xba,0xba,0xba,0xba},
3447 {0xa9,0xa9,0xac,0xac},
3448 {0xa0,0xa0,0xa0,0xa8},
3449 {0x0,0x0,0x2,0x2},
3450 {0x30,0x30,0x40,0x40},
3451 {0x0,0xa5,0xfb,0xf6}
3452 };
3453
3454 static unsigned char XGI330New_CR40[5][8] = {
3455 {0x77,0x77,0x44,0x44},
3456 {0x77,0x77,0x44,0x44},
3457 {0x0,0x0,0x0,0x0},
3458 {0x5b,0x5b,0xab,0xab},
3459 {0x0,0x0,0xf0,0xf8}
3460 };
3461 #endif
3462
3463 static unsigned char XGI330_CR49[] = {0xaa, 0x88};
3464 static unsigned char XGI330_SR1F = 0x0;
3465 static unsigned char XGI330_SR21 = 0xa3;
3466 #if 0
3467 static unsigned char XGI330_650_SR21 = 0xa7;
3468 #endif
3469 static unsigned char XGI330_SR22 = 0xfb;
3470 static unsigned char XGI330_SR23 = 0xf6;
3471 static unsigned char XGI330_SR24 = 0xd;
3472
3473 #if 0
3474 static unsigned char XGI660_SR21 = 0xa3;/* 2003.0312 */
3475 static unsigned char XGI660_SR22 = 0xf3;/* 2003.0312 */
3476
3477 static unsigned char XGI330_LVDS_SR32 = 0x00;   /* ynlai for 650 LVDS */
3478 static unsigned char XGI330_LVDS_SR33 = 0x00;   /* chiawen for 650 LVDS */
3479 static unsigned char XGI330_650_SR31 = 0x40;
3480 static unsigned char XGI330_650_SR33 = 0x04;
3481 #endif
3482 static unsigned char XGI330_CRT2Data_1_2 = 0x0;
3483 static unsigned char XGI330_CRT2Data_4_D = 0x0;
3484 static unsigned char XGI330_CRT2Data_4_E = 0x0;
3485 static unsigned char XGI330_CRT2Data_4_10 = 0x80;
3486 static unsigned short XGI330_RGBSenseData = 0xd1;
3487 static unsigned short XGI330_VideoSenseData = 0xb9;
3488 static unsigned short XGI330_YCSenseData = 0xb3;
3489 static unsigned short XGI330_RGBSenseData2 = 0x0190;     /*301b*/
3490 static unsigned short XGI330_VideoSenseData2 = 0x0110;
3491 static unsigned short XGI330_YCSenseData2 = 0x016B;
3492 #if 0
3493 static unsigned char XGI330_NTSCPhase[] = {0x21, 0xed, 0x8a, 0x8};
3494 static unsigned char XGI330_PALPhase[] = {0x2a, 0x5, 0xd3, 0x0};
3495 static unsigned char XGI330_NTSCPhase2[] = {0x21, 0xF0, 0x7B, 0xD6};/*301b*/
3496 static unsigned char XGI330_PALPhase2[] = {0x2a, 0x09, 0x86, 0xe9};
3497 static unsigned char XGI330_PALMPhase[] = {0x21, 0xE4, 0x2E, 0x9B};   /*palmn*/
3498 static unsigned char XGI330_PALNPhase[] = {0x21, 0xF4, 0x3E, 0xBA};
3499 #endif
3500 static unsigned char XG40_I2CDefinition = 0x00 ;
3501 static unsigned char XG20_CR97 = 0x10 ;
3502
3503 static unsigned char XG21_DVOSetting = 0x00 ;
3504 static unsigned char XG21_CR2E = 0x00 ;
3505 static unsigned char XG21_CR2F = 0x00 ;
3506 static unsigned char XG21_CR46 = 0x00 ;
3507 static unsigned char XG21_CR47 = 0x00 ;
3508
3509 static unsigned char XG27_CR97 = 0xC1 ;
3510 static unsigned char XG27_SR36 = 0x30 ;
3511 static unsigned char XG27_CR8F = 0x0C ;
3512 static unsigned char XG27_CRD0[] = {0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00};
3513 static unsigned char XG27_CRDE[] = {0, 0};
3514 static unsigned char XG27_SR40 = 0x04 ;
3515 static unsigned char XG27_SR41 = 0x00 ;
3516
3517 static unsigned char XGI330_CHTVVCLKUNTSC[] = {0x00};
3518
3519 static unsigned char XGI330_CHTVVCLKONTSC[] = {0x00};
3520
3521 static unsigned char XGI330_CHTVVCLKUPAL[] = {0x00};
3522
3523 static unsigned char XGI330_CHTVVCLKOPAL[] = {0x00};
3524
3525 static unsigned char XGI7007_CHTVVCLKUNTSC[] = {CH7007TVVCLK30_2,
3526                                CH7007TVVCLK30_2,
3527                                CH7007TVVCLK30_2,
3528                                CH7007TVVCLK30_2,
3529                                CH7007TVVCLK28_1,
3530                                CH7007TVVCLK47_8
3531                               };
3532
3533 static unsigned char XGI7007_CHTVVCLKONTSC[] = {CH7007TVVCLK26_4,
3534                                CH7007TVVCLK26_4,
3535                                CH7007TVVCLK26_4,
3536                                CH7007TVVCLK26_4,
3537                                CH7007TVVCLK24_6,
3538                                CH7007TVVCLK43_6
3539                               };
3540
3541 static unsigned char XGI7007_CHTVVCLKUPAL[] = {CH7007TVVCLK31_5,
3542                               CH7007TVVCLK31_5,
3543                               CH7007TVVCLK31_5,
3544                               CH7007TVVCLK31_5,
3545                               CH7007TVVCLK26_2,
3546                               CH7007TVVCLK39
3547                              };
3548
3549 static unsigned char XGI7007_CHTVVCLKOPAL[] = {CH7007TVVCLK31_5,
3550                               CH7007TVVCLK31_5,
3551                               CH7007TVVCLK31_5,
3552                               CH7007TVVCLK31_5,
3553                               CH7007TVVCLK26_2,
3554                               CH7007TVVCLK36
3555                              };
3556
3557 static struct XGI330_VCLKDataStruct XGI_CH7007VCLKData[] =
3558 {
3559  { 0x60,0x36,30},  /* 0 30.2 MHZ */
3560  { 0x40,0x4A,28},  /* 1 28.19 MHZ */
3561  { 0x9F,0x46,44},  /* 2 43.6 MHZ */
3562  { 0x97,0x2C,26},  /* 3 26.4 MHZ */
3563  { 0x44,0xE4,25},  /* 4 24.6 MHZ */
3564  { 0x7E,0x32,47},  /* 5 47.832 MHZ */
3565  { 0x8A,0x24,31},  /* 6 31.5 MHZ */
3566  { 0x97,0x2C,26},  /* 7 26.2 MHZ */
3567  { 0xCE,0x3C,39},  /* 8 39 MHZ   */
3568  { 0x52,0x4A,36},  /* 9 36 MHZ   */
3569  { 0xFF,0x00,0 }   /* End mark      */
3570 };
3571
3572 static struct XGI330_VCLKDataStruct XGI_VCLKData[] =
3573 {
3574                 /* SR2B,SR2C,SR2D */
3575                 {      0x1B,0xE1,25               },/* 00 (25.175MHz) */
3576
3577                 {      0x4E,0xE4,28               },/* 01 (28.322MHz) */
3578
3579                 {      0x57,0xE4,31               },/* 02 (31.500MHz) */
3580
3581                 {      0xC3,0xC8,36               },/* 03 (36.000MHz) */
3582
3583                 {      0x42,0xE2,40               },/* 04 (40.000MHz) */
3584
3585                 {      0xFE,0xCD,43               },/* 05 (43.163MHz) */
3586
3587                 {      0x5D,0xC4,44               },/* 06 (44.900MHz) */
3588
3589                 {      0x52,0xE2,49               },/* 07 (49.500MHz) */
3590
3591                 {      0x53,0xE2,50               },/* 08 (50.000MHz) */
3592
3593                 {      0x74,0x67,52               },/* 09 (52.406MHz) */
3594
3595                 {      0x6D,0x66,56               },/* 0A (56.250MHz) */
3596
3597                 {      0x6C,0xC3,65               },/* 0B (65.000MHz) */
3598
3599                 {      0x46,0x44,67               },/* 0C (67.765MHz) */
3600
3601                 {      0xB1,0x46,68               },/* 0D (68.179MHz) */
3602
3603                 {      0xD3,0x4A,72               },/* 0E (72.852MHz) */
3604
3605                 {      0x29,0x61,75              },/* 0F (75.000MHz) */
3606
3607                 {      0x6E,0x46,76               },/* 10 (75.800MHz) */
3608
3609                 {      0x2B,0x61,78               },/* 11 (78.750MHz) */
3610
3611                 {      0x31,0x42,79               },/* 12 (79.411MHz) */
3612
3613                 {      0xAB,0x44,83               },/* 13 (83.950MHz) */
3614
3615                 {      0x46,0x25,84               },/* 14 (84.800MHz) */
3616
3617                 {      0x78,0x29,86               },/* 15 (86.600MHz) */
3618
3619                 {      0x62,0x44,94               },/* 16 (94.500MHz) */
3620
3621                 {      0x2B,0x41,104               },/* 17 (104.998MHz) */
3622
3623                 {      0x3A,0x23,105               },/* 18 (105.882MHz) */
3624
3625                 {      0x70,0x44,108               },/* 19 (107.862MHz) */
3626
3627                 {      0x3C,0x23,109               },/* 1A (109.175MHz) */
3628
3629                 {      0x5E,0x43,113              },/* 1B (113.309MHz) */
3630
3631                 {      0xBC,0x44,116              },/* 1C (116.406MHz) */
3632
3633                 {      0xE0,0x46,132              },/* 1D (132.258MHz) */
3634
3635                 {      0x54,0x42,135               },/* 1E (135.500MHz) */
3636
3637                 {      0x9C,0x22,139               },/* 1F (139.275MHz) */
3638
3639                 {      0x41,0x22,157               },/* 20 (157.500MHz) */
3640
3641                 {      0x70,0x24,162               },/* 21 (161.793MHz) */
3642
3643                 {      0x30,0x21,175               },/* 22 (175.000MHz) */
3644
3645                 {      0x4E,0x22,189              },/* 23 (188.520MHz) */
3646
3647                 {      0xDE,0x26,194              },/* 24 (194.400MHz) */
3648
3649                 {      0x62,0x06,202               },/* 25 (202.500MHz) */
3650
3651                 {      0x3F,0x03,229               },/* 26 (229.500MHz) */
3652
3653                 {      0xB8,0x06,234               },/* 27 (233.178MHz) */
3654
3655                 {      0x34,0x02,253               },/* 28 (252.699MHz) */
3656
3657                 {      0x58,0x04,255               },/* 29 (254.817MHz) */
3658
3659                 {      0x24,0x01,265              },/* 2A (265.728MHz) */
3660
3661                 {      0x9B,0x02,267               },/* 2B (266.952MHz) */
3662
3663                 {      0x70,0x05,270               },/* 2C (269.65567MHz) */
3664
3665                 {      0x25,0x01,272               },/* 2D (272.04199MHz) */
3666
3667                 {      0x9C,0x02,277               },/* 2E (277.015MHz) */
3668
3669                 {      0x27,0x01,286               },/* 2F (286.359985MHz) */
3670
3671                 {      0xB3,0x04,291               },/* 30 (291.13266MHz) */
3672
3673                 {      0xBC,0x05,292               },/* 31 (291.766MHz) */
3674
3675                 {      0xF6,0x0A,310               },/* 32 (309.789459MHz) */
3676
3677                 {      0x95,0x01,315               },/* 33 (315.195MHz) */
3678
3679                 {      0xF0,0x09,324               },/* 34 (323.586792MHz) */
3680
3681                 {      0xFE,0x0A,331               },/* 35 (330.615631MHz) */
3682
3683                 {      0xF3,0x09,332              },/* 36 (332.177612MHz) */
3684
3685                 {      0x5E,0x03,340              },/* 37 (340.477MHz) */
3686
3687                 {      0xE8,0x07,376              },/* 38 (375.847504MHz) */
3688
3689                 {      0xDE, 0x06,389             },/* 39 (388.631439MHz) */
3690
3691                 {      0x52,0x2A,54               },/* 3A (54.000MHz) */
3692
3693                 {      0x52,0x6A,27              },/* 3B (27.000MHz) */
3694
3695                 {      0x62,0x24,70               },/* 3C (70.874991MHz) */
3696
3697                 {      0x62,0x64,70               },/* 3D (70.1048912MHz) */
3698
3699                 {      0xA8,0x4C,30               },/* 3E (30.1048912MHz) */
3700
3701                 {      0x20,0x26,33               },/* 3F (33.7499957MHz) */
3702
3703                 {      0x31,0xc2,39               },/* 40 (39.77MHz) */
3704
3705                 {      0x11,0x21,30               },/* 41 (30MHz) }// NTSC 1024X768 */
3706
3707                 {      0x2E,0x48,25               },/* 42 (25.175MHz) }// ScaleLCD */
3708
3709                 {      0x24,0x46,25               },/* 43 (25.175MHz) */
3710
3711                 {      0x26,0x64,28               },/* 44 (28.322MHz) */
3712
3713                 {      0x37,0x64,40               },/* 45 (40.000MHz) */
3714
3715                 {      0xA1,0x42,108               },/* 46 (95.000MHz) }// QVGA */
3716
3717                 {      0x37,0x61,100               },/* 47 (100.00MHz) */
3718
3719                 {      0x78,0x27,108               },/* 48 (108.200MHz) */
3720
3721                 {      0xBF,0xC8,35               },/* 49 (35.2MHz) */
3722
3723                 {      0x66,0x43,123               },/* 4A (122.61Mhz) */
3724
3725                 {      0x2C,0x61,80               },/* 4B (80.350Mhz) */
3726
3727                 {      0x3B,0x61,108               },/* 4C (107.385Mhz) */
3728
3729
3730 /*                {      0x60,0x36,30               },// 4D (30.200MHz)   }// No use
3731
3732                 {      0x60,0x36,30               },// 4E (30.200MHz)   }// No use
3733
3734                 {      0x60,0x36,30               },// 4F (30.200MHz)   }// No use
3735
3736                 {      0x60,0x36,30               },// 50 (30.200MHz)   }// CHTV
3737
3738                 {      0x40,0x4A,28               },// 51 (28.190MHz)
3739
3740                 {      0x9F,0x46,44               },// 52 (43.600MHz)
3741
3742                 {      0x97,0x2C,26               },// 53 (26.400MHz)
3743
3744                 {      0x44,0xE4,25               },// 54 (24.600MHz)
3745
3746                 {      0x7E,0x32,47               },// 55 (47.832MHz)
3747
3748                 {      0x8A,0x24,31               },// 56 (31.500MHz)
3749
3750                 {      0x97,0x2C,26               },// 57 (26.200MHz)
3751
3752                 {      0xCE,0x3C,39               },// 58 (39.000MHz)
3753
3754                 {      0x52,0x4A,36               },// 59 (36.000MHz)
3755
3756 */
3757                 {      0x69,0x61,191              }, /* 4D (190.96MHz ) */
3758                 {      0x4F,0x22,192              }, /* 4E (192.069MHz) */
3759                 {      0x28,0x26,322              }, /* 4F (322.273MHz) */
3760                 {      0x5C,0x6B,27               }, /* 50 (27.74HMz) */
3761                 {      0x57,0x24,126              }, /* 51 (125.999MHz) */
3762                 {      0x5C,0x42,148              }, /* 52 (148.5MHz) */
3763                 {      0x42,0x61,120              }, /* 53 (120.839MHz) */
3764                 {      0x62,0x61,178              }, /* 54 (178.992MHz) */
3765                 {      0x59,0x22,217              }, /* 55 (217.325MHz) */
3766                 {      0x29,0x01,300              }, /* 56 (299.505Mhz) */
3767                 {      0x52,0x63,74               }, /* 57 (74.25MHz) */
3768
3769
3770                 {      0xFF,0x00,0                }/* End mark */
3771  }  ;
3772
3773 static struct XGI330_VCLKDataStruct XGI_VBVCLKData[] =
3774 {
3775                 {      0x1B,0xE1,25               },/* 00 (25.175MHz) */
3776
3777                 {      0x4E,0xE4,28               },/* 01 (28.322MHz) */
3778
3779                 {      0x57,0xE4,31               },/* 02 (31.500MHz) */
3780
3781                 {      0xC3,0xC8,36               },/* 03 (36.000MHz) */
3782
3783                 {      0x42,0x47,40               },/* 04 (40.000MHz) */
3784
3785                 {      0xFE,0xCD,43               },/* 05 (43.163MHz) */
3786
3787                 {      0x5D,0xC4,44               },/* 06 (44.900MHz) */
3788
3789                 {      0x52,0x47,49               },/* 07 (49.500MHz) */
3790
3791                 {      0x53,0x47,50               },/* 08 (50.000MHz) */
3792
3793                 {      0x74,0x67,52               },/* 09 (52.406MHz) */
3794
3795                 {      0x6D,0x66,56               },/* 0A (56.250MHz) */
3796
3797                 {      0x35,0x62,65               },/* 0B (65.000MHz) */
3798
3799                 {      0x46,0x44,67               },/* 0C (67.765MHz) */
3800
3801                 {      0xB1,0x46,68               },/* 0D (68.179MHz) */
3802
3803                 {      0xD3,0x4A,72               },/* 0E (72.852MHz) */
3804
3805                 {      0x29,0x61,75               },/* 0F (75.000MHz) */
3806
3807                 {      0x6D,0x46,75               },/* 10 (75.800MHz) */
3808
3809                 {      0x41,0x43,78               },/* 11 (78.750MHz) */
3810
3811                 {      0x31,0x42,79               },/* 12 (79.411MHz) */
3812
3813                 {      0xAB,0x44,83               },/* 13 (83.950MHz) */
3814
3815                 {      0x46,0x25,84               },/* 14 (84.800MHz) */
3816
3817                 {      0x78,0x29,86               },/* 15 (86.600MHz) */
3818
3819                 {      0x62,0x44,94               },/* 16 (94.500MHz) */
3820
3821                 {      0x2B,0x22,104               },/* 17 (104.998MHz) */
3822
3823                 {      0x49,0x24,105               },/* 18 (105.882MHz) */
3824
3825                 {      0xF8,0x2F,108               },/* 19 (108.279MHz) */
3826
3827                 {      0x3C,0x23,109               },/* 1A (109.175MHz) */
3828
3829                 {      0x5E,0x43,113               },/* 1B (113.309MHz) */
3830
3831                 {      0xBC,0x44,116               },/* 1C (116.406MHz) */
3832
3833                 {      0xE0,0x46,132               },/* 1D (132.258MHz) */
3834
3835                 {      0xD4,0x28,135               },/* 1E (135.220MHz) */
3836
3837                 {      0xEA,0x2A,139               },/* 1F (139.275MHz) */
3838
3839                 {      0x41,0x22,157               },/* 20 (157.500MHz) */
3840
3841                 {      0x70,0x24,162               },/* 21 (161.793MHz) */
3842
3843                 {      0x30,0x21,175               },/* 22 (175.000MHz) */
3844
3845                 {      0x4E,0x22,189               },/* 23 (188.520MHz) */
3846
3847                 {      0xDE,0x26,194               },/* 24 (194.400MHz) */
3848
3849                 {      0x70,0x07,202               },/* 25 (202.500MHz) */
3850
3851                 {      0x3F,0x03,229               },/* 26 (229.500MHz) */
3852
3853                 {      0xB8,0x06,234               },/* 27 (233.178MHz) */
3854
3855                 {      0x34,0x02,253               },/* 28 (252.699997 MHz) */
3856
3857                 {      0x58,0x04,255               },/* 29 (254.817MHz) */
3858
3859                 {      0x24,0x01,265               },/* 2A (265.728MHz) */
3860
3861                 {      0x9B,0x02,267               },/* 2B (266.952MHz) */
3862
3863                 {      0x70,0x05,270               },/* 2C (269.65567 MHz) */
3864
3865                 {      0x25,0x01,272               },/* 2D (272.041992 MHz) */
3866
3867                 {      0x9C,0x02,277               },/* 2E (277.015MHz) */
3868
3869                 {      0x27,0x01,286               },/* 2F (286.359985 MHz) */
3870
3871                 {      0x3C,0x02,291               },/* 30 (291.132660 MHz) */
3872
3873                 {      0xEF,0x0A,292               },/* 31 (291.766MHz) */
3874
3875                 {      0xF6,0x0A,310               },/* 32 (309.789459 MHz) */
3876
3877                 {      0x95,0x01,315               },/* 33 (315.195MHz) */
3878
3879                 {      0xF0,0x09,324               },/* 34 (323.586792 MHz) */
3880
3881                 {      0xFE,0x0A,331               },/* 35 (330.615631 MHz) */
3882
3883                 {      0xF3,0x09,332               },/* 36 (332.177612 MHz) */
3884
3885                 {      0xEA,0x08,340               },/* 37 (340.477MHz) */
3886
3887                 {      0xE8,0x07,376               },/* 38 (375.847504 MHz) */
3888
3889                 {      0xDE,0x06,389               },/* 39 (388.631439 MHz) */
3890
3891                 {      0x52,0x2A,54                },/* 3A (54.000MHz) */
3892
3893                 {      0x52,0x6A,27                },/* 3B (27.000MHz) */
3894
3895
3896                 {      0x62,0x24,70                },/* 3C (70.874991MHz) */
3897
3898
3899                 {      0x62,0x64,70                },/* 3D (70.1048912MHz) */
3900
3901                 {      0xA8,0x4C,30                },/* 3E (30.1048912MHz) */
3902
3903                 {      0x20,0x26,33                },/* 3F (33.7499957MHz) */
3904
3905                 {      0x31,0xc2,39                },/* 40 (39.77MHz) */
3906
3907                 {      0x11,0x21,30                },/* 41 (30MHz) }// NTSC 1024X768 */
3908
3909                 {      0x2E,0x48,25                },/* 42 (25.175MHz) }// ScaleLCD */
3910
3911                 {      0x24,0x46,25                },/* 43 (25.175MHz) */
3912
3913                 {      0x26,0x64,28                },/* 44 (28.322MHz) */
3914
3915                 {      0x37,0x64,40                },/* 45 (40.000MHz) */
3916
3917                 {      0xA1,0x42,108               },/* 46 (95.000MHz) }// QVGA */
3918
3919                 {      0x37,0x61,100               },/* 47 (100.00MHz) */
3920
3921                 {      0x78,0x27,108               },/* 48 (108.200MHz) */
3922
3923                 {      0xBF,0xC8,35                },/* 49 (35.2MHz) */
3924
3925                 {      0x66,0x43,123               },/* 4A (122.61Mhz) */
3926
3927                 {      0x2C,0x61,80                },/* 4B (80.350Mhz) */
3928
3929                 {      0x3B,0x61,108               },/* 4C (107.385Mhz) */
3930
3931 /*
3932                 {      0x60,0x36,30               },// 4D (30.200MHz)   }// No use
3933
3934                 {      0x60,0x36,30               },// 4E (30.200MHz)   }// No use
3935
3936                 {      0x60,0x36,30               },// 4F (30.200MHz)   }// No use
3937
3938                 {      0x60,0x36,30               },// 50 (30.200MHz)   }// CHTV
3939
3940                 {      0x40,0x4A,28               },// 51 (28.190MHz)
3941
3942                 {      0x9F,0x46,44               },// 52 (43.600MHz)
3943
3944                 {      0x97,0x2C,26               },// 53 (26.400MHz)
3945
3946                 {      0x44,0xE4,25               },// 54 (24.600MHz)
3947
3948                 {      0x7E,0x32,47               },// 55 (47.832MHz)
3949
3950                 {      0x8A,0x24,31               },// 56 (31.500MHz)
3951
3952                 {      0x97,0x2C,26               },// 57 (26.200MHz)
3953
3954                 {      0xCE,0x3C,39               },// 58 (39.000MHz)
3955
3956                 {      0x52,0x4A,36               },// 59 (36.000MHz)
3957 */
3958                 {      0x69,0x61,191              }, /* 4D (190.96MHz ) */
3959                 {      0x4F,0x22,192              }, /* 4E (192.069MHz) */
3960                 {      0x28,0x26,322              }, /* 4F (322.273MHz) */
3961                 {      0x5C,0x6B,27               }, /* 50 (27.74HMz) */
3962                 {      0x57,0x24,126              }, /* 51 (125.999MHz) */
3963                 {      0x5C,0x42,148              }, /* 52 (148.5MHz) */
3964                 {      0x42,0x61,120              }, /* 53 (120.839MHz) */
3965                 {      0x62,0x61,178              }, /* 54 (178.992MHz) */
3966                 {      0x59,0x22,217              }, /* 55 (217.325MHz) */
3967                 {      0x29,0x01,300              }, /* 56 (299.505Mhz) */
3968                 {      0x52,0x63,74               }, /* 57 (74.25MHz) */
3969
3970
3971                 {      0xFF,0x00,0                }      /* End mark */
3972 };
3973
3974 #if 0
3975 static unsigned char XGI660_TVDelayList[] =
3976 {
3977           0x44,            /* ; 0 ExtNTSCDelay */
3978           0x44,            /* ; 1 StNTSCDelay */
3979           0x44,            /* ; 2 ExtPALDelay */
3980           0x44,            /* ; 3 StPALDelay */
3981           0x44,            /* ; 4 ExtHiTVDelay(1080i) */
3982           0x44,            /* ; 5 StHiTVDelay(1080i) */
3983           0x44,            /* ; 6 ExtYPbPrDelay(525i) */
3984           0x44,            /* ; 7 StYPbPrDealy(525i) */
3985           0x44,            /* ; 8 ExtYPbPrDelay(525p) */
3986           0x44,            /* ; 9 StYPbPrDealy(525p) */
3987           0x44,            /* ; A ExtYPbPrDelay(750p) */
3988           0x44             /* ; B StYPbPrDealy(750p) */
3989 };
3990
3991 static unsigned char XGI660_TVDelayList2[] =
3992 {
3993           0x44,           /* ; 0 ExtNTSCDelay */
3994           0x44,           /* ; 1 StNTSCDelay */
3995           0x44,           /* ; 2 ExtPALDelay */
3996           0x44,           /* ; 3 StPALDelay */
3997           0x44,           /* ; 4 ExtHiTVDelay */
3998           0x44,           /* ; 5 StHiTVDelay */
3999           0x44,           /* ; 6 ExtYPbPrDelay(525i) */
4000           0x44,           /* ; 7 StYPbPrDealy(525i) */
4001           0x44,           /* ; 8 ExtYPbPrDelay(525p) */
4002           0x44,           /* ; 9 StYPbPrDealy(525p) */
4003           0x44,           /* ; A ExtYPbPrDelay(750p) */
4004           0x44            /* ; B StYPbPrDealy(750p) */
4005 };
4006 #endif
4007
4008 static unsigned char XGI301TVDelayList[] =
4009 {
4010         0x22,            /* ; 0 ExtNTSCDelay */
4011         0x22,            /* ; 1 StNTSCDelay */
4012         0x22,            /* ; 2 ExtPALDelay */
4013         0x22,            /* ; 3 StPALDelay */
4014         0x88,            /* ; 4 ExtHiTVDelay(1080i) */
4015         0xBB,            /* ; 5 StHiTVDelay(1080i) */
4016         0x22,            /* ; 6 ExtYPbPrDelay(525i) */
4017         0x22,            /* ; 7 StYPbPrDealy(525i) */
4018         0x22,            /* ; 8 ExtYPbPrDelay(525p) */
4019         0x22,            /* ; 9 StYPbPrDealy(525p) */
4020         0x22,            /* ; A ExtYPbPrDelay(750p) */
4021         0x22            /* B StYPbPrDealy(750p) */
4022 };
4023
4024 static unsigned char XGI301TVDelayList2[] =
4025 {
4026         0x22,           /* ; 0 ExtNTSCDelay */
4027         0x22,           /* ; 1 StNTSCDelay */
4028         0x22,           /* ; 2 ExtPALDelay */
4029         0x22,           /* ; 3 StPALDelay */
4030         0x22,           /* ; 4 ExtHiTVDelay */
4031         0x22,           /* ; 5 StHiTVDelay */
4032         0x22,           /* ; 6 ExtYPbPrDelay(525i) */
4033         0x22,           /* ; 7 StYPbPrDealy(525i) */
4034         0x22,           /* ; 8 ExtYPbPrDelay(525p) */
4035         0x22,           /* ; 9 StYPbPrDealy(525p) */
4036         0x22,           /* ; A ExtYPbPrDelay(750p) */
4037         0x22            /* ; B StYPbPrDealy(750p) */
4038 };
4039
4040
4041 static unsigned char TVAntiFlickList[] =
4042 {/* NTSCAntiFlicker */
4043                       0x04,           /* ; 0 Adaptive */
4044                       0x00,           /* ; 1 new anti-flicker ? */
4045 /* PALAntiFlicker */
4046                       0x04,           /* ; 0 Adaptive */
4047                       0x08,           /* ; 1 new anti-flicker ? */
4048 /* HiTVAntiFlicker */
4049                       0x04,           /* ; 0 ? */
4050                       0x00            /* ; 1 new anti-flicker ? */
4051 };
4052
4053
4054 static unsigned char TVEdgeList[] =
4055 {
4056       0x00,            /* ; 0 NTSC No Edge enhance */
4057       0x04,            /* ; 1 NTSC Adaptive Edge enhance */
4058       0x00,            /* ; 0 PAL No Edge enhance */
4059       0x04,            /* ; 1 PAL Adaptive Edge enhance */
4060       0x00,            /* ; 0 HiTV */
4061       0x00             /* ; 1 HiTV */
4062 };
4063
4064 static unsigned long TVPhaseList[] =
4065 {      0x08BAED21, /* ; 0 NTSC phase */
4066        0x00E3052A, /* ; 1 PAL phase */
4067        0x9B2EE421, /* ; 2 PAL-M phase */
4068        0xBA3EF421, /* ; 3 PAL-N phase */
4069        0xA7A28B1E, /* ; 4 NTSC 1024x768 */
4070        0xE00A831E, /* ; 5 PAL-M 1024x768 */
4071        0x00000000, /* ; 6 reserved */
4072        0x00000000, /* ; 7 reserved */
4073        0xD67BF021, /* ; 8 NTSC phase */
4074        0xE986092A, /* ; 9 PAL phase */
4075        0xA4EFE621, /* ; A PAL-M phase */
4076        0x4694F621, /* ; B PAL-N phase */
4077        0x8BDE711C, /* ; C NTSC 1024x768 */
4078        0xE00A831E  /* ; D PAL-M 1024x768 */
4079 };
4080
4081 static unsigned char NTSCYFilter1[] =
4082 {
4083                       0x00,0xF4,0x10,0x38     ,/* 0 : 320x text mode */
4084                       0x00,0xF4,0x10,0x38     ,/* 1 : 360x text mode */
4085                       0xEB,0x04,0x25,0x18     ,/* 2 : 640x text mode */
4086                       0xF1,0x04,0x1F,0x18     ,/* 3 : 720x text mode */
4087                       0x00,0xF4,0x10,0x38     ,/* 4 : 320x gra. mode */
4088                       0xEB,0x04,0x25,0x18     ,/* 5 : 640x gra. mode */
4089                       0xEB,0x15,0x25,0xF6     /* 6 : 800x gra. mode */
4090 };
4091
4092 static unsigned char PALYFilter1[] =
4093 {
4094                       0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */
4095                       0x00,0xF4,0x10,0x38     ,/* 1 : 360x text mode */
4096                       0xF1,0xF7,0x1F,0x32     ,/* 2 : 640x text mode */
4097                       0xF3,0x00,0x1D,0x20     ,/* 3 : 720x text mode */
4098                       0x00,0xF4,0x10,0x38     ,/* 4 : 320x gra. mode */
4099                       0xF1,0xF7,0x1F,0x32     ,/* 5 : 640x gra. mode */
4100                       0xFC,0xFB,0x14,0x2A     /* 6 : 800x gra. mode */
4101 };
4102
4103 static unsigned char PALMYFilter1[] =
4104 {
4105                       0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */
4106                       0x00,0xF4,0x10,0x38, /* 1 : 360x text mode */
4107                       0xEB,0x04,0x10,0x18, /* 2 : 640x text mode */
4108                       0xF7,0x06,0x19,0x14, /* 3 : 720x text mode */
4109                       0x00,0xF4,0x10,0x38, /* 4 : 320x gra. mode */
4110                       0xEB,0x04,0x25,0x18, /* 5 : 640x gra. mode */
4111                       0xEB,0x15,0x25,0xF6, /* 6 : 800x gra. mode */
4112                       0xFF,0xFF,0xFF,0xFF  /* End of Table */
4113 };
4114
4115 static unsigned char PALNYFilter1[] =
4116 {
4117                       0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */
4118                       0x00,0xF4,0x10,0x38, /* 1 : 360x text mode */
4119                       0xEB,0x04,0x10,0x18, /* 2 : 640x text mode */
4120                       0xF7,0x06,0x19,0x14, /* 3 : 720x text mode */
4121                       0x00,0xF4,0x10,0x38, /* 4 : 320x gra. mode */
4122                       0xEB,0x04,0x25,0x18, /* 5 : 640x gra. mode */
4123                       0xEB,0x15,0x25,0xF6, /* 6 : 800x gra. mode */
4124                       0xFF,0xFF,0xFF,0xFF  /* End of Table */
4125 };
4126
4127 static unsigned char NTSCYFilter2[] =
4128 {
4129                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */
4130                       0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */
4131                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */
4132                       0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */
4133                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */
4134                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */
4135                       0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */
4136                       0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28  /* 7 : 1024xgra. mode */
4137 };
4138
4139 static unsigned char PALYFilter2[] =
4140 {
4141                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */
4142                       0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */
4143                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */
4144                       0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */
4145                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */
4146                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */
4147                       0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */
4148                       0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28  /* 7 : 1024xgra. mode */
4149 };
4150
4151 static unsigned char PALMYFilter2[] =
4152 {
4153                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */
4154                       0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */
4155                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */
4156                       0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */
4157                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */
4158                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */
4159                       0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */
4160                       0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28  /* 7 : 1024xgra. mode */
4161 };
4162
4163 static unsigned char PALNYFilter2[] =
4164 {
4165                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */
4166                       0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */
4167                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */
4168                       0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */
4169                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */
4170                       0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */
4171                       0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */
4172                       0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28  /* 7 : 1024xgra. mode */
4173 };
4174
4175 static unsigned char XGI_NTSC1024AdjTime[] =
4176 {
4177       0xa7,0x07,0xf2,0x6e,0x17,0x8b,0x73,0x53,
4178       0x13,0x40,0x34,0xF4,0x63,0xBB,0xCC,0x7A,
4179       0x58,0xe4,0x73,0xd0,0x13
4180 };
4181
4182 static struct XGI301C_Tap4TimingStruct HiTVTap4Timing[] =
4183 {
4184         {0,{
4185         0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* ; C0-C7 */
4186         0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* ; C8-CF */
4187         0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* ; D0-D7 */
4188         0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* ; D8-DF */
4189         0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* ; E0-E7 */
4190         0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* ; EA-EF */
4191         0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* ; F0-F7 */
4192         0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E  /* ; F8-FF */
4193         }
4194         }
4195 };
4196
4197 static struct XGI301C_Tap4TimingStruct EnlargeTap4Timing[] =
4198 {
4199         {0,{
4200         0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* ; C0-C7 */
4201         0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* ; C8-CF */
4202         0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* ; D0-D7 */
4203         0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* ; D8-DF */
4204         0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* ; E0-E7 */
4205         0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* ; EA-EF */
4206         0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* ; F0-F7 */
4207         0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E   /* ; F8-FF */
4208         }
4209         }
4210 };
4211
4212 static struct XGI301C_Tap4TimingStruct NoScaleTap4Timing[] =
4213 {
4214         {0,{
4215         0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* ; C0-C7 */
4216         0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* ; C8-CF */
4217         0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* ; D0-D7 */
4218         0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* ; D8-DF */
4219         0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* ; E0-E7 */
4220         0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* ; EA-EF */
4221         0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* ; F0-F7 */
4222         0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E  /* ; F8-FF */
4223         }
4224         }
4225 };
4226
4227 static struct XGI301C_Tap4TimingStruct PALTap4Timing[] =
4228 {
4229         {600,  {
4230                 0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E, /* ; C0-C7 */
4231                 0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D, /* ; C8-CF */
4232                 0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C, /* ; D0-D7 */
4233                 0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D, /* ; D8-DF */
4234                 0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E, /* ; E0-E7 */
4235                 0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E, /* ; EA-EF */
4236                 0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01, /* ; F0-F7 */
4237                 0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04  /* ; F8-FF */
4238                 }
4239         },
4240         {768,   {
4241                 0x08,0x12,0x08,0x7E,0x07,0x12,0x09,0x7E, /* ; C0-C7 */
4242                 0x06,0x12,0x0A,0x7E,0x05,0x11,0x0B,0x7F, /* ; C8-CF */
4243                 0x04,0x11,0x0C,0x7F,0x03,0x11,0x0C,0x00, /* ; D0-D7 */
4244                 0x03,0x10,0x0D,0x00,0x02,0x0F,0x0E,0x01, /* ; D8-DF */
4245                 0x01,0x0F,0x0F,0x01,0x01,0x0E,0x0F,0x02, /* ; E0-E7 */
4246                 0x00,0x0D,0x10,0x03,0x7F,0x0C,0x11,0x04, /* ; EA-EF */
4247                 0x7F,0x0C,0x11,0x04,0x7F,0x0B,0x11,0x05, /* ; F0-F7 */
4248                 0x7E,0x0A,0x12,0x06,0x7E,0x09,0x12,0x07  /* ; F8-FF */
4249                 }
4250         },
4251         {0xFFFF,
4252                 {
4253                 0x04,0x1A,0x04,0x7E,0x02,0x1B,0x05,0x7E, /* ; C0-C7 */
4254                 0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D, /* ; C8-CF */
4255                 0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D, /* ; D0-D7 */
4256                 0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C, /* ; D8-DF */
4257                 0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D, /* ; E0-E7 */
4258                 0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F, /* ; EA-EF */
4259                 0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00, /* ; F0-F7 */
4260                 0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1B,0x02  /* ; F8-FF */
4261                 }
4262         }
4263 };
4264
4265 static struct XGI301C_Tap4TimingStruct NTSCTap4Timing[] =
4266 {
4267         {480,   {
4268                 0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* ; C0-C7 */
4269                 0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* ; C8-CF */
4270                 0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* ; D0-D7 */
4271                 0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* ; D8-DF */
4272                 0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* ; E0-E7 */
4273                 0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* ; EA-EF */
4274                 0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* ; F0-F7 */
4275                 0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02  /* ; F8-FF */
4276                 }
4277         },
4278         {600,   {
4279                 0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* ; C0-C7 */
4280                 0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* ; C8-CF */
4281                 0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* ; D0-D7 */
4282                 0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* ; D8-DF */
4283                 0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* ; E0-E7 */
4284                 0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* ; EA-EF */
4285                 0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* ; F0-F7 */
4286                 0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06  /* ; F8-FF */
4287                 }
4288         },
4289         {0xFFFF,
4290                 {
4291                 0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* ; C0-C7 */
4292                 0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* ; C8-CF */
4293                 0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* ; D0-D7 */
4294                 0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* ; D8-DF */
4295                 0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* ; E0-E7 */
4296                 0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* ; EA-EF */
4297                 0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* ; F0-F7 */
4298                 0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08  /* ; F8-FF */
4299                 }
4300         }
4301 };
4302
4303 static struct XGI301C_Tap4TimingStruct YPbPr525pTap4Timing[] =
4304 {
4305         {480,   {
4306                 0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* ; C0-C7 */
4307                 0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* ; C8-CF */
4308                 0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* ; D0-D7 */
4309                 0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* ; D8-DF */
4310                 0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* ; E0-E7 */
4311                 0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* ; EA-EF */
4312                 0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* ; F0-F7 */
4313                 0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02  /* ; F8-FF */
4314                 }
4315         },
4316         {600,   {
4317                 0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* ; C0-C7 */
4318                 0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* ; C8-CF */
4319                 0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* ; D0-D7 */
4320                 0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* ; D8-DF */
4321                 0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* ; E0-E7 */
4322                 0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* ; EA-EF */
4323                 0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* ; F0-F7 */
4324                 0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06  /* ; F8-FF */
4325                 }
4326         },
4327         {0xFFFF,
4328                 {
4329                 0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* ; C0-C7 */
4330                 0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* ; C8-CF */
4331                 0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* ; D0-D7 */
4332                 0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* ; D8-DF */
4333                 0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* ; E0-E7 */
4334                 0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* ; EA-EF */
4335                 0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* ; F0-F7 */
4336                 0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08  /* ; F8-FF */
4337                 }
4338         }
4339 };
4340
4341 static struct XGI301C_Tap4TimingStruct YPbPr525iTap4Timing[] =
4342 {
4343         {480,   {
4344                 0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* ; C0-C7 */
4345                 0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* ; C8-CF */
4346                 0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* ; D0-D7 */
4347                 0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* ; D8-DF */
4348                 0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* ; E0-E7 */
4349                 0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* ; EA-EF */
4350                 0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* ; F0-F7 */
4351                 0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02  /* ; F8-FF */
4352                 }
4353         },
4354         {600,   {
4355                 0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* ; C0-C7 */
4356                 0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* ; C8-CF */
4357                 0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* ; D0-D7 */
4358                 0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* ; D8-DF */
4359                 0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* ; E0-E7 */
4360                 0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* ; EA-EF */
4361                 0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* ; F0-F7 */
4362                 0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06  /* ; F8-FF */
4363                 }
4364         },
4365         {0xFFFF,
4366                 {
4367                 0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* ; C0-C7 */
4368                 0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* ; C8-CF */
4369                 0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* ; D0-D7 */
4370                 0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* ; D8-DF */
4371                 0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* ; E0-E7 */
4372                 0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* ; EA-EF */
4373                 0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* ; F0-F7 */
4374                 0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08  /* ; F8-FF */
4375                 }
4376         }
4377 };
4378
4379 static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] =
4380 {        {0xFFFF,
4381                {
4382                0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E, /* ; C0-C7 */
4383                0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D, /* ; C8-CF */
4384                0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C, /* ; D0-D7 */
4385                0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D, /* ; D8-DF */
4386                0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E, /* ; E0-E7 */
4387                0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E, /* ; EA-EF */
4388                0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01, /* ; F0-F7 */
4389                0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04 /* F8-FF */
4390                }
4391         }
4392 };