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