Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock
[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
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, Set_VGAType;
297         unsigned short   VBExtInfo;/*301lv*/
298         unsigned short   SetFlag;
299         unsigned short   NewFlickerMode;
300         unsigned short   SelectCRT2Rate;
301
302         unsigned char *ROMAddr;
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 XGI_MCLKDataStruct  *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         struct XGI21_LVDSCapStruct  *XG21_LVDSCapList;
380
381         struct XGI_TimingHStruct  *TimingH;
382         struct XGI_TimingVStruct  *TimingV;
383
384         struct XGI_StStruct          *SModeIDTable;
385         struct XGI_StandTableStruct  *StandTable;
386         struct XGI_ExtStruct         *EModeIDTable;
387         struct XGI_Ext2Struct        *RefIndex;
388         /* XGINew_CRT1TableStruct *CRT1Table; */
389         struct XGI_CRT1TableStruct    *XGINEWUB_CRT1Table;
390         struct XGI_VCLKDataStruct    *VCLKData;
391         struct XGI_VBVCLKDataStruct  *VBVCLKData;
392         struct XGI_StResInfoStruct   *StResInfo;
393         struct XGI_ModeResInfoStruct *ModeResInfo;
394         struct XGI_XG21CRT1Struct         *UpdateCRT1;
395
396         int ram_type;
397         int ram_channel;
398         int ram_bus;
399 };  /* _struct vb_device_info */
400
401 #endif /* _VB_STRUCT_ */