blob: ea94d214dcff575d4d1945518287c462852c5ac3 [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;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700236 void *ivideo;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700237 unsigned char *VirtualRomBase;
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800238 bool UseROM;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700239 unsigned char SISIOMEMTYPE *VideoMemoryAddress;
240 unsigned int VideoMemorySize;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700241 SISIOADDRESS IOAddress;
242 SISIOADDRESS IOAddress2; /* For dual chip XGI volari */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700243
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700244 SISIOADDRESS RelIO;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700245 SISIOADDRESS SiS_P3c4;
246 SISIOADDRESS SiS_P3d4;
247 SISIOADDRESS SiS_P3c0;
248 SISIOADDRESS SiS_P3ce;
249 SISIOADDRESS SiS_P3c2;
250 SISIOADDRESS SiS_P3ca;
251 SISIOADDRESS SiS_P3c6;
252 SISIOADDRESS SiS_P3c7;
253 SISIOADDRESS SiS_P3c8;
254 SISIOADDRESS SiS_P3c9;
255 SISIOADDRESS SiS_P3cb;
256 SISIOADDRESS SiS_P3cc;
257 SISIOADDRESS SiS_P3cd;
258 SISIOADDRESS SiS_P3da;
259 SISIOADDRESS SiS_Part1Port;
260 SISIOADDRESS SiS_Part2Port;
261 SISIOADDRESS SiS_Part3Port;
262 SISIOADDRESS SiS_Part4Port;
263 SISIOADDRESS SiS_Part5Port;
264 SISIOADDRESS SiS_VidCapt;
265 SISIOADDRESS SiS_VidPlay;
266 unsigned short SiS_IF_DEF_LVDS;
267 unsigned short SiS_IF_DEF_CH70xx;
268 unsigned short SiS_IF_DEF_CONEX;
269 unsigned short SiS_IF_DEF_TRUMPION;
270 unsigned short SiS_IF_DEF_DSTN;
271 unsigned short SiS_IF_DEF_FSTN;
272 unsigned short SiS_SysFlags;
273 unsigned char SiS_VGAINFO;
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800274 bool SiS_UseROM;
275 bool SiS_ROMNew;
276 bool SiS_XGIROM;
277 bool SiS_NeedRomModeData;
278 bool PanelSelfDetected;
279 bool DDCPortMixup;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700280 int SiS_CHOverScan;
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800281 bool SiS_CHSOverScan;
282 bool SiS_ChSW;
283 bool SiS_UseLCDA;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700284 int SiS_UseOEM;
285 unsigned int SiS_CustomT;
286 int SiS_UseWide, SiS_UseWideCRT2;
287 int SiS_TVBlue;
288 unsigned short SiS_Backup70xx;
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800289 bool HaveEMI;
290 bool HaveEMILCD;
291 bool OverruleEMI;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700292 unsigned char EMI_30,EMI_31,EMI_32,EMI_33;
293 unsigned short SiS_EMIOffset;
294 unsigned short SiS_PWDOffset;
295 short PDC, PDCA;
296 unsigned char SiS_MyCR63;
297 unsigned short SiS_CRT1Mode;
298 unsigned short SiS_flag_clearbuffer;
299 int SiS_RAMType;
300 unsigned char SiS_ChannelAB;
301 unsigned char SiS_DataBusWidth;
302 unsigned short SiS_ModeType;
303 unsigned short SiS_VBInfo;
304 unsigned short SiS_TVMode;
305 unsigned short SiS_LCDResInfo;
306 unsigned short SiS_LCDTypeInfo;
307 unsigned short SiS_LCDInfo;
308 unsigned short SiS_LCDInfo661;
309 unsigned short SiS_VBType;
310 unsigned short SiS_VBExtInfo;
311 unsigned short SiS_YPbPr;
312 unsigned short SiS_SelectCRT2Rate;
313 unsigned short SiS_SetFlag;
314 unsigned short SiS_RVBHCFACT;
315 unsigned short SiS_RVBHCMAX;
316 unsigned short SiS_RVBHRS;
317 unsigned short SiS_RVBHRS2;
318 unsigned short SiS_VGAVT;
319 unsigned short SiS_VGAHT;
320 unsigned short SiS_VT;
321 unsigned short SiS_HT;
322 unsigned short SiS_VGAVDE;
323 unsigned short SiS_VGAHDE;
324 unsigned short SiS_VDE;
325 unsigned short SiS_HDE;
326 unsigned short SiS_NewFlickerMode;
327 unsigned short SiS_RY1COE;
328 unsigned short SiS_RY2COE;
329 unsigned short SiS_RY3COE;
330 unsigned short SiS_RY4COE;
331 unsigned short SiS_LCDHDES;
332 unsigned short SiS_LCDVDES;
Aaro Koskinen532f6492009-09-22 16:47:58 -0700333 SISIOADDRESS SiS_DDC_Port;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700334 unsigned short SiS_DDC_Index;
335 unsigned short SiS_DDC_Data;
336 unsigned short SiS_DDC_NData;
337 unsigned short SiS_DDC_Clk;
338 unsigned short SiS_DDC_NClk;
339 unsigned short SiS_DDC_DeviceAddr;
340 unsigned short SiS_DDC_ReadAddr;
341 unsigned short SiS_DDC_SecAddr;
342 unsigned short SiS_ChrontelInit;
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800343 bool SiS_SensibleSR11;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700344 unsigned short SiS661LCD2TableSize;
345
346 unsigned short SiS_PanelMinLVDS;
347 unsigned short SiS_PanelMin301;
348
349 const struct SiS_St *SiS_SModeIDTable;
350 const struct SiS_StandTable_S *SiS_StandTable;
351 const struct SiS_Ext *SiS_EModeIDTable;
352 const struct SiS_Ext2 *SiS_RefIndex;
353 const struct SiS_VBMode *SiS_VBModeIDTable;
354 const struct SiS_CRT1Table *SiS_CRT1Table;
355 const struct SiS_MCLKData *SiS_MCLKData_0;
356 const struct SiS_MCLKData *SiS_MCLKData_1;
357 struct SiS_VCLKData *SiS_VCLKData;
358 struct SiS_VBVCLKData *SiS_VBVCLKData;
359 const struct SiS_StResInfo_S *SiS_StResInfo;
360 const struct SiS_ModeResInfo_S *SiS_ModeResInfo;
361
362 const unsigned char *pSiS_OutputSelect;
363 const unsigned char *pSiS_SoftSetting;
364
365 const unsigned char *SiS_SR15;
366
367 const struct SiS_PanelDelayTbl *SiS_PanelDelayTbl;
368 const struct SiS_PanelDelayTbl *SiS_PanelDelayTblLVDS;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700369
370 /* SiS bridge */
371
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700372 const struct SiS_LCDData *SiS_ExtLCD1024x768Data;
373 const struct SiS_LCDData *SiS_St2LCD1024x768Data;
374 const struct SiS_LCDData *SiS_LCD1280x720Data;
375 const struct SiS_LCDData *SiS_StLCD1280x768_2Data;
376 const struct SiS_LCDData *SiS_ExtLCD1280x768_2Data;
377 const struct SiS_LCDData *SiS_LCD1280x800Data;
378 const struct SiS_LCDData *SiS_LCD1280x800_2Data;
379 const struct SiS_LCDData *SiS_LCD1280x854Data;
380 const struct SiS_LCDData *SiS_LCD1280x960Data;
381 const struct SiS_LCDData *SiS_ExtLCD1280x1024Data;
382 const struct SiS_LCDData *SiS_St2LCD1280x1024Data;
383 const struct SiS_LCDData *SiS_StLCD1400x1050Data;
384 const struct SiS_LCDData *SiS_ExtLCD1400x1050Data;
385 const struct SiS_LCDData *SiS_StLCD1600x1200Data;
386 const struct SiS_LCDData *SiS_ExtLCD1600x1200Data;
387 const struct SiS_LCDData *SiS_LCD1680x1050Data;
388 const struct SiS_LCDData *SiS_NoScaleData;
389 const struct SiS_TVData *SiS_StPALData;
390 const struct SiS_TVData *SiS_ExtPALData;
391 const struct SiS_TVData *SiS_StNTSCData;
392 const struct SiS_TVData *SiS_ExtNTSCData;
393 const struct SiS_TVData *SiS_St1HiTVData;
394 const struct SiS_TVData *SiS_St2HiTVData;
395 const struct SiS_TVData *SiS_ExtHiTVData;
396 const struct SiS_TVData *SiS_St525iData;
397 const struct SiS_TVData *SiS_St525pData;
398 const struct SiS_TVData *SiS_St750pData;
399 const struct SiS_TVData *SiS_Ext525iData;
400 const struct SiS_TVData *SiS_Ext525pData;
401 const struct SiS_TVData *SiS_Ext750pData;
402 const unsigned char *SiS_NTSCTiming;
403 const unsigned char *SiS_PALTiming;
404 const unsigned char *SiS_HiTVExtTiming;
405 const unsigned char *SiS_HiTVSt1Timing;
406 const unsigned char *SiS_HiTVSt2Timing;
407 const unsigned char *SiS_HiTVGroup3Data;
408 const unsigned char *SiS_HiTVGroup3Simu;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700409#if 0
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700410 const unsigned char *SiS_HiTVTextTiming;
411 const unsigned char *SiS_HiTVGroup3Text;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700412#endif
413
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700414 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_1;
415 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_2;
416 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_3;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700417
418 /* LVDS, Chrontel */
419
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700420 const struct SiS_LVDSData *SiS_LVDS320x240Data_1;
421 const struct SiS_LVDSData *SiS_LVDS320x240Data_2;
422 const struct SiS_LVDSData *SiS_LVDS640x480Data_1;
423 const struct SiS_LVDSData *SiS_LVDS800x600Data_1;
424 const struct SiS_LVDSData *SiS_LVDS1024x600Data_1;
425 const struct SiS_LVDSData *SiS_LVDS1024x768Data_1;
426 const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_1;
427 const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_2;
428 const struct SiS_LVDSData *SiS_LVDSBARCO1024Data_1;
429 const struct SiS_LVDSData *SiS_LVDS848x480Data_1;
430 const struct SiS_LVDSData *SiS_LVDS848x480Data_2;
431 const struct SiS_LVDSData *SiS_CHTVUNTSCData;
432 const struct SiS_LVDSData *SiS_CHTVONTSCData;
433 const struct SiS_LVDSData *SiS_CHTVUPALData;
434 const struct SiS_LVDSData *SiS_CHTVOPALData;
435 const struct SiS_LVDSData *SiS_CHTVUPALMData;
436 const struct SiS_LVDSData *SiS_CHTVOPALMData;
437 const struct SiS_LVDSData *SiS_CHTVUPALNData;
438 const struct SiS_LVDSData *SiS_CHTVOPALNData;
439 const struct SiS_LVDSData *SiS_CHTVSOPALData;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700440
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700441 const struct SiS_LVDSDes *SiS_PanelType04_1a;
442 const struct SiS_LVDSDes *SiS_PanelType04_2a;
443 const struct SiS_LVDSDes *SiS_PanelType04_1b;
444 const struct SiS_LVDSDes *SiS_PanelType04_2b;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700445
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700446 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_1;
447 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2;
448 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2_H;
449 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3;
450 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3_H;
451 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1;
452 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1_H;
453 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UNTSC;
454 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1ONTSC;
455 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UPAL;
456 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1OPAL;
457 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1SOPAL;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700458
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700459 const struct SiS_CHTVRegData *SiS_CHTVReg_UNTSC;
460 const struct SiS_CHTVRegData *SiS_CHTVReg_ONTSC;
461 const struct SiS_CHTVRegData *SiS_CHTVReg_UPAL;
462 const struct SiS_CHTVRegData *SiS_CHTVReg_OPAL;
463 const struct SiS_CHTVRegData *SiS_CHTVReg_UPALM;
464 const struct SiS_CHTVRegData *SiS_CHTVReg_OPALM;
465 const struct SiS_CHTVRegData *SiS_CHTVReg_UPALN;
466 const struct SiS_CHTVRegData *SiS_CHTVReg_OPALN;
467 const struct SiS_CHTVRegData *SiS_CHTVReg_SOPAL;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700468
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700469 const unsigned char *SiS_CHTVVCLKUNTSC;
470 const unsigned char *SiS_CHTVVCLKONTSC;
471 const unsigned char *SiS_CHTVVCLKUPAL;
472 const unsigned char *SiS_CHTVVCLKOPAL;
473 const unsigned char *SiS_CHTVVCLKUPALM;
474 const unsigned char *SiS_CHTVVCLKOPALM;
475 const unsigned char *SiS_CHTVVCLKUPALN;
476 const unsigned char *SiS_CHTVVCLKOPALN;
477 const unsigned char *SiS_CHTVVCLKSOPAL;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700478
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700479 unsigned short PanelXRes, PanelHT;
480 unsigned short PanelYRes, PanelVT;
481 unsigned short PanelHRS, PanelHRE;
482 unsigned short PanelVRS, PanelVRE;
483 unsigned short PanelVCLKIdx300;
484 unsigned short PanelVCLKIdx315;
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800485 bool Alternate1600x1200;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700486
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800487 bool UseCustomMode;
488 bool CRT1UsesCustomMode;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700489 unsigned short CHDisplay;
490 unsigned short CHSyncStart;
491 unsigned short CHSyncEnd;
492 unsigned short CHTotal;
493 unsigned short CHBlankStart;
494 unsigned short CHBlankEnd;
495 unsigned short CVDisplay;
496 unsigned short CVSyncStart;
497 unsigned short CVSyncEnd;
498 unsigned short CVTotal;
499 unsigned short CVBlankStart;
500 unsigned short CVBlankEnd;
501 unsigned int CDClock;
502 unsigned int CFlags;
503 unsigned char CCRT1CRTC[17];
504 unsigned char CSR2B;
505 unsigned char CSR2C;
506 unsigned short CSRClock;
507 unsigned short CSRClock_CRT1;
508 unsigned short CModeFlag;
509 unsigned short CModeFlag_CRT1;
510 unsigned short CInfoFlag;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700511
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700512 int LVDSHL;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700513
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800514 bool Backup;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700515 unsigned char Backup_Mode;
516 unsigned char Backup_14;
517 unsigned char Backup_15;
518 unsigned char Backup_16;
519 unsigned char Backup_17;
520 unsigned char Backup_18;
521 unsigned char Backup_19;
522 unsigned char Backup_1a;
523 unsigned char Backup_1b;
524 unsigned char Backup_1c;
525 unsigned char Backup_1d;
526
527 unsigned char Init_P4_0E;
528
529 int UsePanelScaler;
530 int CenterScreen;
531
532 unsigned short CP_Vendor, CP_Product;
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800533 bool CP_HaveCustomData;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700534 int CP_PreferredX, CP_PreferredY, CP_PreferredIndex;
535 int CP_MaxX, CP_MaxY, CP_MaxClock;
536 unsigned char CP_PrefSR2B, CP_PrefSR2C;
537 unsigned short CP_PrefClock;
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800538 bool CP_Supports64048075;
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700539 int CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */
540 int CP_HTotal[7], CP_VTotal[7];
541 int CP_HSyncStart[7], CP_VSyncStart[7];
542 int CP_HSyncEnd[7], CP_VSyncEnd[7];
543 int CP_HBlankStart[7], CP_VBlankStart[7];
544 int CP_HBlankEnd[7], CP_VBlankEnd[7];
545 int CP_Clock[7];
Richard Knutssonc30660ea2007-02-12 00:55:06 -0800546 bool CP_DataValid[7];
547 bool CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7];
Thomas Winischhofer544393f2005-09-09 13:04:45 -0700548};
Linus Torvalds1da177e2005-04-16 15:20:36 -0700549
550#endif
551