1 #ifndef _VB_STRUCT_
2 #define _VB_STRUCT_
3 
4 struct XGI_LCDDataStruct {
5 	unsigned short RVBHCMAX;
6 	unsigned short RVBHCFACT;
7 	unsigned short VGAHT;
8 	unsigned short VGAVT;
9 	unsigned short LCDHT;
10 	unsigned short LCDVT;
11 };
12 
13 
14 struct XGI_LVDSCRT1HDataStruct {
15 	unsigned char Reg[8];
16 };
17 
18 struct XGI_LVDSCRT1VDataStruct {
19 	unsigned char Reg[7];
20 };
21 
22 struct XGI_TVDataStruct {
23 	unsigned short RVBHCMAX;
24 	unsigned short RVBHCFACT;
25 	unsigned short VGAHT;
26 	unsigned short VGAVT;
27 	unsigned short TVHDE;
28 	unsigned short TVVDE;
29 	unsigned short RVBHRS;
30 	unsigned char FlickerMode;
31 	unsigned short HALFRVBHRS;
32 	unsigned char RY1COE;
33 	unsigned char RY2COE;
34 	unsigned char RY3COE;
35 	unsigned char RY4COE;
36 };
37 
38 struct XGI_StStruct {
39 	unsigned char St_ModeID;
40 	unsigned short St_ModeFlag;
41 	unsigned char St_StTableIndex;
42 	unsigned char St_CRT2CRTC;
43 	unsigned char St_CRT2CRTC2;
44 	unsigned char St_ResInfo;
45 	unsigned char VB_StTVFlickerIndex;
46 	unsigned char VB_StTVEdgeIndex;
47 	unsigned char VB_StTVYFilterIndex;
48 };
49 
50 struct XGI_StandTableStruct {
51 	unsigned char CRT_COLS;
52 	unsigned char ROWS;
53 	unsigned char CHAR_HEIGHT;
54 	unsigned short CRT_LEN;
55 	unsigned char SR[4];
56 	unsigned char MISC;
57 	unsigned char CRTC[0x19];
58 	unsigned char ATTR[0x14];
59 	unsigned char GRC[9];
60 };
61 
62 struct XGI_ExtStruct {
63 	unsigned char Ext_ModeID;
64 	unsigned short Ext_ModeFlag;
65 	unsigned short Ext_ModeInfo;
66 	unsigned short Ext_Point;
67 	unsigned short Ext_VESAID;
68 	unsigned char Ext_VESAMEMSize;
69 	unsigned char Ext_RESINFO;
70 	unsigned char VB_ExtTVFlickerIndex;
71 	unsigned char VB_ExtTVEdgeIndex;
72 	unsigned char VB_ExtTVYFilterIndex;
73 	unsigned char REFindex;
74 };
75 
76 struct XGI_Ext2Struct {
77 	unsigned short Ext_InfoFlag;
78 	unsigned char Ext_CRT1CRTC;
79 	unsigned char Ext_CRTVCLK;
80 	unsigned char Ext_CRT2CRTC;
81 	unsigned char Ext_CRT2CRTC2;
82 	unsigned char  ModeID;
83 	unsigned short XRes;
84 	unsigned short YRes;
85 	/* unsigned short ROM_OFFSET; */
86 };
87 
88 
89 struct XGI_MCLKDataStruct {
90 	unsigned char SR28, SR29, SR2A;
91 	unsigned short CLOCK;
92 };
93 
94 struct XGI_ECLKDataStruct {
95 	unsigned char SR2E, SR2F, SR30;
96 	unsigned short CLOCK;
97 };
98 
99 struct XGI_VCLKDataStruct {
100 	unsigned char SR2B, SR2C;
101 	unsigned short CLOCK;
102 };
103 
104 struct XGI_VBVCLKDataStruct {
105 	unsigned char Part4_A, Part4_B;
106 	unsigned short CLOCK;
107 };
108 
109 struct XGI_StResInfoStruct {
110 	unsigned short HTotal;
111 	unsigned short VTotal;
112 };
113 
114 struct XGI_ModeResInfoStruct {
115 	unsigned short HTotal;
116 	unsigned short VTotal;
117 	unsigned char  XChar;
118 	unsigned char  YChar;
119 };
120 
121 /*add for new UNIVGABIOS*/
122 struct XGI_LCDDesStruct {
123 	unsigned short LCDHDES;
124 	unsigned short LCDHRS;
125 	unsigned short LCDVDES;
126 	unsigned short LCDVRS;
127 };
128 
129 struct XGI_LCDDataTablStruct {
130 	unsigned char  PANELID;
131 	unsigned short MASK;
132 	unsigned short CAP;
133 	unsigned short DATAPTR;
134 };
135 
136 struct XGI330_LCDDataDesStruct {
137 	unsigned short LCDHDES;
138 	unsigned short LCDHRS;
139 	unsigned short LCDVDES;
140 	unsigned short LCDVRS;
141 };
142 
143 
144 struct XGI330_LVDSDataStruct {
145 	unsigned short VGAHT;
146 	unsigned short VGAVT;
147 	unsigned short LCDHT;
148 	unsigned short LCDVT;
149 };
150 
151 struct XGI330_LCDDataDesStruct2 {
152 	unsigned short LCDHDES;
153 	unsigned short LCDHRS;
154 	unsigned short LCDVDES;
155 	unsigned short LCDVRS;
156 	unsigned short LCDHSync;
157 	unsigned short LCDVSync;
158 };
159 
160 struct XGI330_LCDDataStruct {
161 	unsigned short RVBHCMAX;
162 	unsigned short RVBHCFACT;
163 	unsigned short VGAHT;
164 	unsigned short VGAVT;
165 	unsigned short LCDHT;
166 	unsigned short LCDVT;
167 };
168 
169 
170 struct XGI330_TVDataStruct {
171 	unsigned short RVBHCMAX;
172 	unsigned short RVBHCFACT;
173 	unsigned short VGAHT;
174 	unsigned short VGAVT;
175 	unsigned short TVHDE;
176 	unsigned short TVVDE;
177 	unsigned short RVBHRS;
178 	unsigned char FlickerMode;
179 	unsigned short HALFRVBHRS;
180 };
181 
182 struct XGI330_LCDDataTablStruct {
183 	unsigned char  PANELID;
184 	unsigned short MASK;
185 	unsigned short CAP;
186 	unsigned short DATAPTR;
187 };
188 
189 struct XGI330_TVDataTablStruct {
190 	unsigned short MASK;
191 	unsigned short CAP;
192 	unsigned short DATAPTR;
193 };
194 
195 
196 struct XGI330_CHTVDataStruct {
197 	unsigned short VGAHT;
198 	unsigned short VGAVT;
199 	unsigned short LCDHT;
200 	unsigned short LCDVT;
201 };
202 
203 struct XGI_TimingHStruct {
204 	unsigned char data[8];
205 };
206 
207 struct XGI_TimingVStruct {
208 	unsigned char data[7];
209 };
210 
211 struct XGI_XG21CRT1Struct {
212 	unsigned char ModeID, CR02, CR03, CR15, CR16;
213 };
214 
215 struct XGI330_LCDCapStruct {
216 	unsigned char	LCD_ID;
217 	unsigned short	LCD_Capability;
218 	unsigned char	LCD_SetFlag;
219 	unsigned char	LCD_DelayCompensation;
220 	unsigned char	LCD_HSyncWidth;
221 	unsigned char	LCD_VSyncWidth;
222 	unsigned char	LCD_VCLK;
223 	unsigned char	LCDA_VCLKData1;
224 	unsigned char	LCDA_VCLKData2;
225 	unsigned char	LCUCHAR_VCLKData1;
226 	unsigned char	LCUCHAR_VCLKData2;
227 	unsigned char	PSC_S1;
228 	unsigned char	PSC_S2;
229 	unsigned char	PSC_S3;
230 	unsigned char	PSC_S4;
231 	unsigned char	PSC_S5;
232 	unsigned char	PWD_2B;
233 	unsigned char	PWD_2C;
234 	unsigned char	PWD_2D;
235 	unsigned char	PWD_2E;
236 	unsigned char	PWD_2F;
237 	unsigned char	Spectrum_31;
238 	unsigned char	Spectrum_32;
239 	unsigned char	Spectrum_33;
240 	unsigned char	Spectrum_34;
241 };
242 
243 struct XGI21_LVDSCapStruct {
244 	unsigned short LVDS_Capability;
245 	unsigned short LVDSHT;
246 	unsigned short LVDSVT;
247 	unsigned short LVDSHDE;
248 	unsigned short LVDSVDE;
249 	unsigned short LVDSHFP;
250 	unsigned short LVDSVFP;
251 	unsigned short LVDSHSYNC;
252 	unsigned short LVDSVSYNC;
253 	unsigned char  VCLKData1;
254 	unsigned char  VCLKData2;
255 	unsigned char  PSC_S1;
256 	unsigned char  PSC_S2;
257 	unsigned char  PSC_S3;
258 	unsigned char  PSC_S4;
259 	unsigned char  PSC_S5;
260 };
261 
262 struct XGI_CRT1TableStruct {
263 	unsigned char CR[16];
264 };
265 
266 
267 struct XGI330_VCLKDataStruct {
268 	unsigned char SR2B, SR2C;
269 	unsigned short CLOCK;
270 };
271 
272 struct XGI301C_Tap4TimingStruct {
273 	unsigned short DE;
274 	unsigned char  Reg[64];   /* C0-FF */
275 };
276 
277 struct vb_device_info {
278 	unsigned char  ISXPDOS;
279 	unsigned long   P3c4, P3d4, P3c0, P3ce, P3c2, P3cc;
280 	unsigned long   P3ca, P3c6, P3c7, P3c8, P3c9, P3da;
281 	unsigned long   Part0Port, Part1Port, Part2Port;
282 	unsigned long   Part3Port, Part4Port, Part5Port;
283 	unsigned short   RVBHCFACT, RVBHCMAX, RVBHRS;
284 	unsigned short   VGAVT, VGAHT, VGAVDE, VGAHDE;
285 	unsigned short   VT, HT, VDE, HDE;
286 	unsigned short   LCDHRS, LCDVRS, LCDHDES, LCDVDES;
287 
288 	unsigned short   ModeType;
289 	/* ,IF_DEF_FSTN; add for dstn */
290 	unsigned short   IF_DEF_LVDS, IF_DEF_TRUMPION, IF_DEF_DSTN;
291 	unsigned short   IF_DEF_CRT2Monitor;
292 	unsigned short   IF_DEF_LCDA, IF_DEF_YPbPr;
293 	unsigned short   IF_DEF_ExpLink;
294 	unsigned short   IF_DEF_HiVision;
295 	unsigned short   LCDResInfo, LCDTypeInfo, VBType;/*301b*/
296 	unsigned short   VBInfo, TVInfo, LCDInfo;
297 	unsigned short   VBExtInfo;/*301lv*/
298 	unsigned short   SetFlag;
299 	unsigned short   NewFlickerMode;
300 	unsigned short   SelectCRT2Rate;
301 
302 	void __iomem *FBAddr;
303 	unsigned long BaseAddr;
304 	unsigned long RelIO;
305 
306 	unsigned char (*CR6B)[4];
307 	unsigned char (*CR6E)[4];
308 	unsigned char (*CR6F)[32];
309 	unsigned char (*CR89)[2];
310 
311 	unsigned char (*SR15)[8];
312 	unsigned char (*CR40)[8];
313 
314 	unsigned char  *pSoftSetting;
315 	unsigned char  *pOutputSelect;
316 
317 	unsigned short *pRGBSenseData;
318 	unsigned short *pRGBSenseData2; /*301b*/
319 	unsigned short *pVideoSenseData;
320 	unsigned short *pVideoSenseData2;
321 	unsigned short *pYCSenseData;
322 	unsigned short *pYCSenseData2;
323 
324 	unsigned char  *pSR07;
325 	unsigned char  *CR49;
326 	unsigned char  *pSR1F;
327 	unsigned char  *AGPReg;
328 	unsigned char  *SR16;
329 	unsigned char  *pSR21;
330 	unsigned char  *pSR22;
331 	unsigned char  *pSR23;
332 	unsigned char  *pSR24;
333 	unsigned char  *SR25;
334 	unsigned char  *pSR31;
335 	unsigned char  *pSR32;
336 	unsigned char  *pSR33;
337 	unsigned char  *pSR36;      /* alan 12/07/2006 */
338 	unsigned char  *pCRCF;
339 	unsigned char  *pCRD0;      /* alan 12/07/2006 */
340 	unsigned char  *pCRDE;      /* alan 12/07/2006 */
341 	unsigned char  *pCR8F;      /* alan 12/07/2006 */
342 	unsigned char  *pSR40;      /* alan 12/07/2006 */
343 	unsigned char  *pSR41;      /* alan 12/07/2006 */
344 	unsigned char  *pDVOSetting;
345 	unsigned char  *pCR2E;
346 	unsigned char  *pCR2F;
347 	unsigned char  *pCR46;
348 	unsigned char  *pCR47;
349 	unsigned char  *pCRT2Data_1_2;
350 	unsigned char  *pCRT2Data_4_D;
351 	unsigned char  *pCRT2Data_4_E;
352 	unsigned char  *pCRT2Data_4_10;
353 	struct XGI_MCLKDataStruct  *MCLKData;
354 	struct XGI_ECLKDataStruct  *ECLKData;
355 
356 	unsigned char   *XGI_TVDelayList;
357 	unsigned char   *XGI_TVDelayList2;
358 	unsigned char   *NTSCTiming;
359 	unsigned char   *PALTiming;
360 	unsigned char   *HiTVExtTiming;
361 	unsigned char   *HiTVSt1Timing;
362 	unsigned char   *HiTVSt2Timing;
363 	unsigned char   *HiTVTextTiming;
364 	unsigned char   *YPbPr750pTiming;
365 	unsigned char   *YPbPr525pTiming;
366 	unsigned char   *YPbPr525iTiming;
367 	unsigned char   *HiTVGroup3Data;
368 	unsigned char   *HiTVGroup3Simu;
369 	unsigned char   *HiTVGroup3Text;
370 	unsigned char   *Ren525pGroup3;
371 	unsigned char   *Ren750pGroup3;
372 	unsigned char   *ScreenOffset;
373 	unsigned char   *pXGINew_DRAMTypeDefinition;
374 	unsigned char   *pXGINew_I2CDefinition ;
375 	unsigned char   *pXGINew_CR97 ;
376 
377 	struct XGI330_LCDCapStruct  *LCDCapList;
378 
379 	struct XGI_TimingHStruct  *TimingH;
380 	struct XGI_TimingVStruct  *TimingV;
381 
382 	struct XGI_StStruct          *SModeIDTable;
383 	struct XGI_StandTableStruct  *StandTable;
384 	struct XGI_ExtStruct         *EModeIDTable;
385 	struct XGI_Ext2Struct        *RefIndex;
386 	/* XGINew_CRT1TableStruct *CRT1Table; */
387 	struct XGI_CRT1TableStruct    *XGINEWUB_CRT1Table;
388 	struct XGI_VCLKDataStruct    *VCLKData;
389 	struct XGI_VBVCLKDataStruct  *VBVCLKData;
390 	struct XGI_StResInfoStruct   *StResInfo;
391 	struct XGI_ModeResInfoStruct *ModeResInfo;
392 	struct XGI_XG21CRT1Struct	  *UpdateCRT1;
393 
394 	int ram_type;
395 	int ram_channel;
396 	int ram_bus;
397 };  /* _struct vb_device_info */
398 
399 #endif /* _VB_STRUCT_ */
400