blob: 9ae32923c142d08fdc3721f7ee9eda6bf71bf66a [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/* $XFree86$ */
2/* $XdotOrg$ */
3/*
4 * General structure definitions for universal mode switching modules
5 *
Thomas Winischhofer544393f2005-09-09 13:04:45 -07006 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
Linus Torvalds1da177e2005-04-16 15:20:36 -07007 *
8 * If distributed as part of the Linux kernel, the following license terms
9 * apply:
10 *
11 * * This program is free software; you can redistribute it and/or modify
12 * * it under the terms of the GNU General Public License as published by
13 * * the Free Software Foundation; either version 2 of the named License,
14 * * or any later version.
15 * *
16 * * This program is distributed in the hope that it will be useful,
17 * * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * * GNU General Public License for more details.
20 * *
21 * * You should have received a copy of the GNU General Public License
22 * * along with this program; if not, write to the Free Software
23 * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
24 *
25 * Otherwise, the following license terms apply:
26 *
27 * * Redistribution and use in source and binary forms, with or without
28 * * modification, are permitted provided that the following conditions
29 * * are met:
30 * * 1) Redistributions of source code must retain the above copyright
31 * * notice, this list of conditions and the following disclaimer.
32 * * 2) Redistributions in binary form must reproduce the above copyright
33 * * notice, this list of conditions and the following disclaimer in the
34 * * documentation and/or other materials provided with the distribution.
35 * * 3) The name of the author may not be used to endorse or promote products
36 * * derived from this software without specific prior written permission.
37 * *
38 * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
39 * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40 * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
41 * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
42 * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43 * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
44 * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
45 * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
46 * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
47 * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48 *
49 * Author: Thomas Winischhofer <thomas@winischhofer.net>
50 *
51 */
52
Thomas Winischhofer544393f2005-09-09 13:04:45 -070053#ifndef _VSTRUCT_H_
54#define _VSTRUCT_H_
Linus Torvalds1da177e2005-04-16 15:20:36 -070055
Thomas Winischhofer544393f2005-09-09 13:04:45 -070056struct SiS_PanelDelayTbl {
57 unsigned char timer[2];
58};
Linus Torvalds1da177e2005-04-16 15:20:36 -070059
Thomas Winischhofer544393f2005-09-09 13:04:45 -070060struct SiS_LCDData {
61 unsigned short RVBHCMAX;
62 unsigned short RVBHCFACT;
63 unsigned short VGAHT;
64 unsigned short VGAVT;
65 unsigned short LCDHT;
66 unsigned short LCDVT;
67};
Linus Torvalds1da177e2005-04-16 15:20:36 -070068
Thomas Winischhofer544393f2005-09-09 13:04:45 -070069struct SiS_TVData {
70 unsigned short RVBHCMAX;
71 unsigned short RVBHCFACT;
72 unsigned short VGAHT;
73 unsigned short VGAVT;
74 unsigned short TVHDE;
75 unsigned short TVVDE;
76 unsigned short RVBHRS;
77 unsigned char FlickerMode;
78 unsigned short HALFRVBHRS;
79 unsigned short RVBHRS2;
80 unsigned char RY1COE;
81 unsigned char RY2COE;
82 unsigned char RY3COE;
83 unsigned char RY4COE;
84};
Linus Torvalds1da177e2005-04-16 15:20:36 -070085
Thomas Winischhofer544393f2005-09-09 13:04:45 -070086struct SiS_LVDSData {
87 unsigned short VGAHT;
88 unsigned short VGAVT;
89 unsigned short LCDHT;
90 unsigned short LCDVT;
91};
Linus Torvalds1da177e2005-04-16 15:20:36 -070092
Thomas Winischhofer544393f2005-09-09 13:04:45 -070093struct SiS_LVDSDes {
94 unsigned short LCDHDES;
95 unsigned short LCDVDES;
96};
Linus Torvalds1da177e2005-04-16 15:20:36 -070097
Thomas Winischhofer544393f2005-09-09 13:04:45 -070098struct SiS_LVDSCRT1Data {
99 unsigned char CR[15];
100};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700101
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700102struct SiS_CHTVRegData {
103 unsigned char Reg[16];
104};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700105
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700106struct SiS_St {
107 unsigned char St_ModeID;
108 unsigned short St_ModeFlag;
109 unsigned char St_StTableIndex;
110 unsigned char St_CRT2CRTC;
111 unsigned char St_ResInfo;
112 unsigned char VB_StTVFlickerIndex;
113 unsigned char VB_StTVEdgeIndex;
114 unsigned char VB_StTVYFilterIndex;
115 unsigned char St_PDC;
116};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700117
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700118struct SiS_VBMode {
119 unsigned char ModeID;
120 unsigned char VB_TVDelayIndex;
121 unsigned char VB_TVFlickerIndex;
122 unsigned char VB_TVPhaseIndex;
123 unsigned char VB_TVYFilterIndex;
124 unsigned char VB_LCDDelayIndex;
125 unsigned char _VB_LCDHIndex;
126 unsigned char _VB_LCDVIndex;
127};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700128
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700129struct SiS_StandTable_S {
130 unsigned char CRT_COLS;
131 unsigned char ROWS;
132 unsigned char CHAR_HEIGHT;
133 unsigned short CRT_LEN;
134 unsigned char SR[4];
135 unsigned char MISC;
136 unsigned char CRTC[0x19];
137 unsigned char ATTR[0x14];
138 unsigned char GRC[9];
139};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700140
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700141struct SiS_Ext {
142 unsigned char Ext_ModeID;
143 unsigned short Ext_ModeFlag;
144 unsigned short Ext_VESAID;
145 unsigned char Ext_RESINFO;
146 unsigned char VB_ExtTVFlickerIndex;
147 unsigned char VB_ExtTVEdgeIndex;
148 unsigned char VB_ExtTVYFilterIndex;
149 unsigned char VB_ExtTVYFilterIndexROM661;
150 unsigned char REFindex;
151 char ROMMODEIDX661;
152};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700153
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700154struct SiS_Ext2 {
155 unsigned short Ext_InfoFlag;
156 unsigned char Ext_CRT1CRTC;
157 unsigned char Ext_CRTVCLK;
158 unsigned char Ext_CRT2CRTC;
159 unsigned char Ext_CRT2CRTC_NS;
160 unsigned char ModeID;
161 unsigned short XRes;
162 unsigned short YRes;
163 unsigned char Ext_PDC;
164 unsigned char Ext_FakeCRT2CRTC;
165 unsigned char Ext_FakeCRT2Clk;
166 unsigned char Ext_CRT1CRTC_NORM;
167 unsigned char Ext_CRTVCLK_NORM;
168 unsigned char Ext_CRT1CRTC_WIDE;
169 unsigned char Ext_CRTVCLK_WIDE;
170};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700171
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700172struct SiS_Part2PortTbl {
173 unsigned char CR[12];
174};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700175
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700176struct SiS_CRT1Table {
177 unsigned char CR[17];
178};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700179
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700180struct SiS_MCLKData {
181 unsigned char SR28,SR29,SR2A;
182 unsigned short CLOCK;
183};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700184
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700185struct SiS_VCLKData {
186 unsigned char SR2B,SR2C;
187 unsigned short CLOCK;
188};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700189
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700190struct SiS_VBVCLKData {
191 unsigned char Part4_A,Part4_B;
192 unsigned short CLOCK;
193};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700194
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700195struct SiS_StResInfo_S {
196 unsigned short HTotal;
197 unsigned short VTotal;
198};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700199
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700200struct SiS_ModeResInfo_S {
201 unsigned short HTotal;
202 unsigned short VTotal;
203 unsigned char XChar;
204 unsigned char YChar;
205};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700206
207/* Defines for SiS_CustomT */
208/* Never change these for sisfb compatibility */
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700209#define CUT_NONE 0
210#define CUT_FORCENONE 1
211#define CUT_BARCO1366 2
212#define CUT_BARCO1024 3
213#define CUT_COMPAQ1280 4
214#define CUT_COMPAQ12802 5
215#define CUT_PANEL848 6
216#define CUT_CLEVO1024 7
217#define CUT_CLEVO10242 8
218#define CUT_CLEVO1400 9
219#define CUT_CLEVO14002 10
220#define CUT_UNIWILL1024 11
221#define CUT_ASUSL3000D 12
222#define CUT_UNIWILL10242 13
223#define CUT_ACER1280 14
224#define CUT_COMPAL1400_1 15
225#define CUT_COMPAL1400_2 16
226#define CUT_ASUSA2H_1 17
227#define CUT_ASUSA2H_2 18
228#define CUT_UNKNOWNLCD 19
229#define CUT_AOP8060 20
230#define CUT_PANEL856 21
Linus Torvalds1da177e2005-04-16 15:20:36 -0700231
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700232struct SiS_Private
Linus Torvalds1da177e2005-04-16 15:20:36 -0700233{
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700234 unsigned char ChipType;
235 unsigned char ChipRevision;
236#ifdef SIS_XORG_XF86
237 PCITAG PciTag;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700238#endif
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700239#ifdef SIS_LINUX_KERNEL
240 void *ivideo;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700241#endif
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700242 unsigned char *VirtualRomBase;
243 BOOLEAN UseROM;
244#ifdef SIS_LINUX_KERNEL
245 unsigned char SISIOMEMTYPE *VideoMemoryAddress;
246 unsigned int VideoMemorySize;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700247#endif
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700248 SISIOADDRESS IOAddress;
249 SISIOADDRESS IOAddress2; /* For dual chip XGI volari */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700250
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700251#ifdef SIS_LINUX_KERNEL
252 SISIOADDRESS RelIO;
253#endif
254 SISIOADDRESS SiS_P3c4;
255 SISIOADDRESS SiS_P3d4;
256 SISIOADDRESS SiS_P3c0;
257 SISIOADDRESS SiS_P3ce;
258 SISIOADDRESS SiS_P3c2;
259 SISIOADDRESS SiS_P3ca;
260 SISIOADDRESS SiS_P3c6;
261 SISIOADDRESS SiS_P3c7;
262 SISIOADDRESS SiS_P3c8;
263 SISIOADDRESS SiS_P3c9;
264 SISIOADDRESS SiS_P3cb;
265 SISIOADDRESS SiS_P3cc;
266 SISIOADDRESS SiS_P3cd;
267 SISIOADDRESS SiS_P3da;
268 SISIOADDRESS SiS_Part1Port;
269 SISIOADDRESS SiS_Part2Port;
270 SISIOADDRESS SiS_Part3Port;
271 SISIOADDRESS SiS_Part4Port;
272 SISIOADDRESS SiS_Part5Port;
273 SISIOADDRESS SiS_VidCapt;
274 SISIOADDRESS SiS_VidPlay;
275 unsigned short SiS_IF_DEF_LVDS;
276 unsigned short SiS_IF_DEF_CH70xx;
277 unsigned short SiS_IF_DEF_CONEX;
278 unsigned short SiS_IF_DEF_TRUMPION;
279 unsigned short SiS_IF_DEF_DSTN;
280 unsigned short SiS_IF_DEF_FSTN;
281 unsigned short SiS_SysFlags;
282 unsigned char SiS_VGAINFO;
283#ifdef SIS_XORG_XF86
284 unsigned short SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4;
285#endif
286 BOOLEAN SiS_UseROM;
287 BOOLEAN SiS_ROMNew;
288 BOOLEAN SiS_XGIROM;
289 BOOLEAN SiS_NeedRomModeData;
290 BOOLEAN PanelSelfDetected;
291 BOOLEAN DDCPortMixup;
292 int SiS_CHOverScan;
293 BOOLEAN SiS_CHSOverScan;
294 BOOLEAN SiS_ChSW;
295 BOOLEAN SiS_UseLCDA;
296 int SiS_UseOEM;
297 unsigned int SiS_CustomT;
298 int SiS_UseWide, SiS_UseWideCRT2;
299 int SiS_TVBlue;
300 unsigned short SiS_Backup70xx;
301 BOOLEAN HaveEMI;
302 BOOLEAN HaveEMILCD;
303 BOOLEAN OverruleEMI;
304 unsigned char EMI_30,EMI_31,EMI_32,EMI_33;
305 unsigned short SiS_EMIOffset;
306 unsigned short SiS_PWDOffset;
307 short PDC, PDCA;
308 unsigned char SiS_MyCR63;
309 unsigned short SiS_CRT1Mode;
310 unsigned short SiS_flag_clearbuffer;
311 int SiS_RAMType;
312 unsigned char SiS_ChannelAB;
313 unsigned char SiS_DataBusWidth;
314 unsigned short SiS_ModeType;
315 unsigned short SiS_VBInfo;
316 unsigned short SiS_TVMode;
317 unsigned short SiS_LCDResInfo;
318 unsigned short SiS_LCDTypeInfo;
319 unsigned short SiS_LCDInfo;
320 unsigned short SiS_LCDInfo661;
321 unsigned short SiS_VBType;
322 unsigned short SiS_VBExtInfo;
323 unsigned short SiS_YPbPr;
324 unsigned short SiS_SelectCRT2Rate;
325 unsigned short SiS_SetFlag;
326 unsigned short SiS_RVBHCFACT;
327 unsigned short SiS_RVBHCMAX;
328 unsigned short SiS_RVBHRS;
329 unsigned short SiS_RVBHRS2;
330 unsigned short SiS_VGAVT;
331 unsigned short SiS_VGAHT;
332 unsigned short SiS_VT;
333 unsigned short SiS_HT;
334 unsigned short SiS_VGAVDE;
335 unsigned short SiS_VGAHDE;
336 unsigned short SiS_VDE;
337 unsigned short SiS_HDE;
338 unsigned short SiS_NewFlickerMode;
339 unsigned short SiS_RY1COE;
340 unsigned short SiS_RY2COE;
341 unsigned short SiS_RY3COE;
342 unsigned short SiS_RY4COE;
343 unsigned short SiS_LCDHDES;
344 unsigned short SiS_LCDVDES;
345 unsigned short SiS_DDC_Port;
346 unsigned short SiS_DDC_Index;
347 unsigned short SiS_DDC_Data;
348 unsigned short SiS_DDC_NData;
349 unsigned short SiS_DDC_Clk;
350 unsigned short SiS_DDC_NClk;
351 unsigned short SiS_DDC_DeviceAddr;
352 unsigned short SiS_DDC_ReadAddr;
353 unsigned short SiS_DDC_SecAddr;
354 unsigned short SiS_ChrontelInit;
355 BOOLEAN SiS_SensibleSR11;
356 unsigned short SiS661LCD2TableSize;
357
358 unsigned short SiS_PanelMinLVDS;
359 unsigned short SiS_PanelMin301;
360
361 const struct SiS_St *SiS_SModeIDTable;
362 const struct SiS_StandTable_S *SiS_StandTable;
363 const struct SiS_Ext *SiS_EModeIDTable;
364 const struct SiS_Ext2 *SiS_RefIndex;
365 const struct SiS_VBMode *SiS_VBModeIDTable;
366 const struct SiS_CRT1Table *SiS_CRT1Table;
367 const struct SiS_MCLKData *SiS_MCLKData_0;
368 const struct SiS_MCLKData *SiS_MCLKData_1;
369 struct SiS_VCLKData *SiS_VCLKData;
370 struct SiS_VBVCLKData *SiS_VBVCLKData;
371 const struct SiS_StResInfo_S *SiS_StResInfo;
372 const struct SiS_ModeResInfo_S *SiS_ModeResInfo;
373
374 const unsigned char *pSiS_OutputSelect;
375 const unsigned char *pSiS_SoftSetting;
376
377 const unsigned char *SiS_SR15;
378
379 const struct SiS_PanelDelayTbl *SiS_PanelDelayTbl;
380 const struct SiS_PanelDelayTbl *SiS_PanelDelayTblLVDS;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700381
382 /* SiS bridge */
383
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700384 const struct SiS_LCDData *SiS_ExtLCD1024x768Data;
385 const struct SiS_LCDData *SiS_St2LCD1024x768Data;
386 const struct SiS_LCDData *SiS_LCD1280x720Data;
387 const struct SiS_LCDData *SiS_StLCD1280x768_2Data;
388 const struct SiS_LCDData *SiS_ExtLCD1280x768_2Data;
389 const struct SiS_LCDData *SiS_LCD1280x800Data;
390 const struct SiS_LCDData *SiS_LCD1280x800_2Data;
391 const struct SiS_LCDData *SiS_LCD1280x854Data;
392 const struct SiS_LCDData *SiS_LCD1280x960Data;
393 const struct SiS_LCDData *SiS_ExtLCD1280x1024Data;
394 const struct SiS_LCDData *SiS_St2LCD1280x1024Data;
395 const struct SiS_LCDData *SiS_StLCD1400x1050Data;
396 const struct SiS_LCDData *SiS_ExtLCD1400x1050Data;
397 const struct SiS_LCDData *SiS_StLCD1600x1200Data;
398 const struct SiS_LCDData *SiS_ExtLCD1600x1200Data;
399 const struct SiS_LCDData *SiS_LCD1680x1050Data;
400 const struct SiS_LCDData *SiS_NoScaleData;
401 const struct SiS_TVData *SiS_StPALData;
402 const struct SiS_TVData *SiS_ExtPALData;
403 const struct SiS_TVData *SiS_StNTSCData;
404 const struct SiS_TVData *SiS_ExtNTSCData;
405 const struct SiS_TVData *SiS_St1HiTVData;
406 const struct SiS_TVData *SiS_St2HiTVData;
407 const struct SiS_TVData *SiS_ExtHiTVData;
408 const struct SiS_TVData *SiS_St525iData;
409 const struct SiS_TVData *SiS_St525pData;
410 const struct SiS_TVData *SiS_St750pData;
411 const struct SiS_TVData *SiS_Ext525iData;
412 const struct SiS_TVData *SiS_Ext525pData;
413 const struct SiS_TVData *SiS_Ext750pData;
414 const unsigned char *SiS_NTSCTiming;
415 const unsigned char *SiS_PALTiming;
416 const unsigned char *SiS_HiTVExtTiming;
417 const unsigned char *SiS_HiTVSt1Timing;
418 const unsigned char *SiS_HiTVSt2Timing;
419 const unsigned char *SiS_HiTVGroup3Data;
420 const unsigned char *SiS_HiTVGroup3Simu;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700421#if 0
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700422 const unsigned char *SiS_HiTVTextTiming;
423 const unsigned char *SiS_HiTVGroup3Text;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700424#endif
425
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700426 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_1;
427 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_2;
428 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_3;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700429
430 /* LVDS, Chrontel */
431
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700432 const struct SiS_LVDSData *SiS_LVDS320x240Data_1;
433 const struct SiS_LVDSData *SiS_LVDS320x240Data_2;
434 const struct SiS_LVDSData *SiS_LVDS640x480Data_1;
435 const struct SiS_LVDSData *SiS_LVDS800x600Data_1;
436 const struct SiS_LVDSData *SiS_LVDS1024x600Data_1;
437 const struct SiS_LVDSData *SiS_LVDS1024x768Data_1;
438 const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_1;
439 const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_2;
440 const struct SiS_LVDSData *SiS_LVDSBARCO1024Data_1;
441 const struct SiS_LVDSData *SiS_LVDS848x480Data_1;
442 const struct SiS_LVDSData *SiS_LVDS848x480Data_2;
443 const struct SiS_LVDSData *SiS_CHTVUNTSCData;
444 const struct SiS_LVDSData *SiS_CHTVONTSCData;
445 const struct SiS_LVDSData *SiS_CHTVUPALData;
446 const struct SiS_LVDSData *SiS_CHTVOPALData;
447 const struct SiS_LVDSData *SiS_CHTVUPALMData;
448 const struct SiS_LVDSData *SiS_CHTVOPALMData;
449 const struct SiS_LVDSData *SiS_CHTVUPALNData;
450 const struct SiS_LVDSData *SiS_CHTVOPALNData;
451 const struct SiS_LVDSData *SiS_CHTVSOPALData;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700452
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700453 const struct SiS_LVDSDes *SiS_PanelType04_1a;
454 const struct SiS_LVDSDes *SiS_PanelType04_2a;
455 const struct SiS_LVDSDes *SiS_PanelType04_1b;
456 const struct SiS_LVDSDes *SiS_PanelType04_2b;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700457
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700458 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_1;
459 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2;
460 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2_H;
461 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3;
462 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3_H;
463 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1;
464 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1_H;
465 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UNTSC;
466 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1ONTSC;
467 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UPAL;
468 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1OPAL;
469 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1SOPAL;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700470
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700471 const struct SiS_CHTVRegData *SiS_CHTVReg_UNTSC;
472 const struct SiS_CHTVRegData *SiS_CHTVReg_ONTSC;
473 const struct SiS_CHTVRegData *SiS_CHTVReg_UPAL;
474 const struct SiS_CHTVRegData *SiS_CHTVReg_OPAL;
475 const struct SiS_CHTVRegData *SiS_CHTVReg_UPALM;
476 const struct SiS_CHTVRegData *SiS_CHTVReg_OPALM;
477 const struct SiS_CHTVRegData *SiS_CHTVReg_UPALN;
478 const struct SiS_CHTVRegData *SiS_CHTVReg_OPALN;
479 const struct SiS_CHTVRegData *SiS_CHTVReg_SOPAL;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700480
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700481 const unsigned char *SiS_CHTVVCLKUNTSC;
482 const unsigned char *SiS_CHTVVCLKONTSC;
483 const unsigned char *SiS_CHTVVCLKUPAL;
484 const unsigned char *SiS_CHTVVCLKOPAL;
485 const unsigned char *SiS_CHTVVCLKUPALM;
486 const unsigned char *SiS_CHTVVCLKOPALM;
487 const unsigned char *SiS_CHTVVCLKUPALN;
488 const unsigned char *SiS_CHTVVCLKOPALN;
489 const unsigned char *SiS_CHTVVCLKSOPAL;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700490
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700491 unsigned short PanelXRes, PanelHT;
492 unsigned short PanelYRes, PanelVT;
493 unsigned short PanelHRS, PanelHRE;
494 unsigned short PanelVRS, PanelVRE;
495 unsigned short PanelVCLKIdx300;
496 unsigned short PanelVCLKIdx315;
497 BOOLEAN Alternate1600x1200;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700498
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700499 BOOLEAN UseCustomMode;
500 BOOLEAN CRT1UsesCustomMode;
501 unsigned short CHDisplay;
502 unsigned short CHSyncStart;
503 unsigned short CHSyncEnd;
504 unsigned short CHTotal;
505 unsigned short CHBlankStart;
506 unsigned short CHBlankEnd;
507 unsigned short CVDisplay;
508 unsigned short CVSyncStart;
509 unsigned short CVSyncEnd;
510 unsigned short CVTotal;
511 unsigned short CVBlankStart;
512 unsigned short CVBlankEnd;
513 unsigned int CDClock;
514 unsigned int CFlags;
515 unsigned char CCRT1CRTC[17];
516 unsigned char CSR2B;
517 unsigned char CSR2C;
518 unsigned short CSRClock;
519 unsigned short CSRClock_CRT1;
520 unsigned short CModeFlag;
521 unsigned short CModeFlag_CRT1;
522 unsigned short CInfoFlag;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700523
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700524 int LVDSHL;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700525
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700526 BOOLEAN Backup;
527 unsigned char Backup_Mode;
528 unsigned char Backup_14;
529 unsigned char Backup_15;
530 unsigned char Backup_16;
531 unsigned char Backup_17;
532 unsigned char Backup_18;
533 unsigned char Backup_19;
534 unsigned char Backup_1a;
535 unsigned char Backup_1b;
536 unsigned char Backup_1c;
537 unsigned char Backup_1d;
538
539 unsigned char Init_P4_0E;
540
541 int UsePanelScaler;
542 int CenterScreen;
543
544 unsigned short CP_Vendor, CP_Product;
545 BOOLEAN CP_HaveCustomData;
546 int CP_PreferredX, CP_PreferredY, CP_PreferredIndex;
547 int CP_MaxX, CP_MaxY, CP_MaxClock;
548 unsigned char CP_PrefSR2B, CP_PrefSR2C;
549 unsigned short CP_PrefClock;
550 BOOLEAN CP_Supports64048075;
551 int CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */
552 int CP_HTotal[7], CP_VTotal[7];
553 int CP_HSyncStart[7], CP_VSyncStart[7];
554 int CP_HSyncEnd[7], CP_VSyncEnd[7];
555 int CP_HBlankStart[7], CP_VBlankStart[7];
556 int CP_HBlankEnd[7], CP_VBlankEnd[7];
557 int CP_Clock[7];
558 BOOLEAN CP_DataValid[7];
559 BOOLEAN CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7];
560};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700561
562#endif
563