vstruct.h revision c30660ead2dd6ced47ac6ad4c099fb9305263ffb
11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* $XFree86$ */
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* $XdotOrg$ */
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * General structure definitions for universal mode switching modules
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
6544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * If distributed as part of the Linux kernel, the following license terms
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * apply:
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * This program is free software; you can redistribute it and/or modify
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * it under the terms of the GNU General Public License as published by
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * the Free Software Foundation; either version 2 of the named License,
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * or any later version.
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * *
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * This program is distributed in the hope that it will be useful,
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * but WITHOUT ANY WARRANTY; without even the implied warranty of
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * GNU General Public License for more details.
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * *
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * You should have received a copy of the GNU General Public License
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * along with this program; if not, write to the Free Software
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Otherwise, the following license terms apply:
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * Redistribution and use in source and binary forms, with or without
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * modification, are permitted provided that the following conditions
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * are met:
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * 1) Redistributions of source code must retain the above copyright
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * *    notice, this list of conditions and the following disclaimer.
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * 2) Redistributions in binary form must reproduce the above copyright
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * *    notice, this list of conditions and the following disclaimer in the
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * *    documentation and/or other materials provided with the distribution.
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * 3) The name of the author may not be used to endorse or promote products
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * *    derived from this software without specific prior written permission.
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * *
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Author: 	Thomas Winischhofer <thomas@winischhofer.net>
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
53544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#ifndef _VSTRUCT_H_
54544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define _VSTRUCT_H_
55544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
56544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_PanelDelayTbl {
57544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer 	unsigned char timer[2];
58544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
59544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
60544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_LCDData {
61544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short RVBHCMAX;
62544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short RVBHCFACT;
63544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short VGAHT;
64544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short VGAVT;
65544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short LCDHT;
66544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short LCDVT;
67544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
68544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
69544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_TVData {
70544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short RVBHCMAX;
71544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short RVBHCFACT;
72544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short VGAHT;
73544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short VGAVT;
74544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short TVHDE;
75544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short TVVDE;
76544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short RVBHRS;
77544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  FlickerMode;
78544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short HALFRVBHRS;
79544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short RVBHRS2;
80544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  RY1COE;
81544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  RY2COE;
82544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  RY3COE;
83544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  RY4COE;
84544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
85544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
86544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_LVDSData {
87544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short VGAHT;
88544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short VGAVT;
89544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short LCDHT;
90544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short LCDVT;
91544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
92544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
93544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_LVDSDes {
94544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short LCDHDES;
95544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short LCDVDES;
96544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
97544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
98544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_LVDSCRT1Data {
99544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  CR[15];
100544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
101544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
102544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_CHTVRegData {
103544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Reg[16];
104544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
105544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
106544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_St {
107544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  St_ModeID;
108544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short St_ModeFlag;
109544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  St_StTableIndex;
110544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  St_CRT2CRTC;
111544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  St_ResInfo;
112544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_StTVFlickerIndex;
113544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_StTVEdgeIndex;
114544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_StTVYFilterIndex;
115544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  St_PDC;
116544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
117544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
118544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_VBMode {
119544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  ModeID;
120544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_TVDelayIndex;
121544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_TVFlickerIndex;
122544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_TVPhaseIndex;
123544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_TVYFilterIndex;
124544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_LCDDelayIndex;
125544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  _VB_LCDHIndex;
126544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  _VB_LCDVIndex;
127544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
128544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
129544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_StandTable_S {
130544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  CRT_COLS;
131544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  ROWS;
132544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  CHAR_HEIGHT;
133544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short CRT_LEN;
134544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  SR[4];
135544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  MISC;
136544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  CRTC[0x19];
137544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  ATTR[0x14];
138544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  GRC[9];
139544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
140544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
141544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_Ext {
142544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_ModeID;
143544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short Ext_ModeFlag;
144544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short Ext_VESAID;
145544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_RESINFO;
146544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_ExtTVFlickerIndex;
147544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_ExtTVEdgeIndex;
148544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_ExtTVYFilterIndex;
149544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  VB_ExtTVYFilterIndexROM661;
150544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  REFindex;
151544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	char           ROMMODEIDX661;
152544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
153544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
154544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_Ext2 {
155544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short Ext_InfoFlag;
156544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_CRT1CRTC;
157544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_CRTVCLK;
158544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_CRT2CRTC;
159544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_CRT2CRTC_NS;
160544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  ModeID;
161544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short XRes;
162544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short YRes;
163544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_PDC;
164544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_FakeCRT2CRTC;
165544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_FakeCRT2Clk;
166544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_CRT1CRTC_NORM;
167544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_CRTVCLK_NORM;
168544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_CRT1CRTC_WIDE;
169544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Ext_CRTVCLK_WIDE;
170544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
171544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
172544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_Part2PortTbl {
173544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer 	unsigned char  CR[12];
174544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
175544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
176544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_CRT1Table {
177544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  CR[17];
178544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
179544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
180544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_MCLKData {
181544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  SR28,SR29,SR2A;
182544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short CLOCK;
183544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
184544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
185544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_VCLKData {
186544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  SR2B,SR2C;
187544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short CLOCK;
188544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
189544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
190544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_VBVCLKData {
191544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  Part4_A,Part4_B;
192544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short CLOCK;
193544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
194544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
195544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_StResInfo_S {
196544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short HTotal;
197544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short VTotal;
198544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
199544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
200544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_ModeResInfo_S {
201544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short HTotal;
202544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short VTotal;
203544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  XChar;
204544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char  YChar;
205544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Defines for SiS_CustomT */
2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Never change these for sisfb compatibility */
209544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_NONE		 0
210544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_FORCENONE		 1
211544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_BARCO1366		 2
212544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_BARCO1024		 3
213544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_COMPAQ1280		 4
214544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_COMPAQ12802		 5
215544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_PANEL848		 6
216544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_CLEVO1024		 7
217544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_CLEVO10242		 8
218544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_CLEVO1400		 9
219544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_CLEVO14002		10
220544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_UNIWILL1024		11
221544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_ASUSL3000D		12
222544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_UNIWILL10242	13
223544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_ACER1280		14
224544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_COMPAL1400_1	15
225544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_COMPAL1400_2	16
226544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_ASUSA2H_1		17
227544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_ASUSA2H_2		18
228544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_UNKNOWNLCD		19
229544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_AOP8060		20
230544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#define CUT_PANEL856		21
231544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
232544393fe584d333480659a4bed30f5295355df11Thomas Winischhoferstruct SiS_Private
2331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
234544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			ChipType;
235544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			ChipRevision;
236544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#ifdef SIS_XORG_XF86
237544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	PCITAG				PciTag;
2381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
239544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#ifdef SIS_LINUX_KERNEL
240544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	void				*ivideo;
2411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
242544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char 			*VirtualRomBase;
243c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				UseROM;
244544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#ifdef SIS_LINUX_KERNEL
245544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char SISIOMEMTYPE	*VideoMemoryAddress;
246544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned int			VideoMemorySize;
2471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
248544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			IOAddress;
249544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			IOAddress2;  /* For dual chip XGI volari */
2501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
251544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#ifdef SIS_LINUX_KERNEL
252544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			RelIO;
253544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#endif
254544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3c4;
255544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3d4;
256544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3c0;
257544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3ce;
258544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3c2;
259544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3ca;
260544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3c6;
261544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3c7;
262544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3c8;
263544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3c9;
264544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3cb;
265544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3cc;
266544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3cd;
267544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_P3da;
268544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_Part1Port;
269544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_Part2Port;
270544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_Part3Port;
271544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_Part4Port;
272544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_Part5Port;
273544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_VidCapt;
274544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	SISIOADDRESS			SiS_VidPlay;
275544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_IF_DEF_LVDS;
276544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_IF_DEF_CH70xx;
277544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_IF_DEF_CONEX;
278544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_IF_DEF_TRUMPION;
279544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_IF_DEF_DSTN;
280544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_IF_DEF_FSTN;
281544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_SysFlags;
282544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			SiS_VGAINFO;
283544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#ifdef SIS_XORG_XF86
284544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4;
285544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer#endif
286c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				SiS_UseROM;
287c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				SiS_ROMNew;
288c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				SiS_XGIROM;
289c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				SiS_NeedRomModeData;
290c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				PanelSelfDetected;
291c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				DDCPortMixup;
292544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				SiS_CHOverScan;
293c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				SiS_CHSOverScan;
294c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				SiS_ChSW;
295c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				SiS_UseLCDA;
296544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				SiS_UseOEM;
297544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned int			SiS_CustomT;
298544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				SiS_UseWide, SiS_UseWideCRT2;
299544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				SiS_TVBlue;
300544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_Backup70xx;
301c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				HaveEMI;
302c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				HaveEMILCD;
303c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				OverruleEMI;
304544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			EMI_30,EMI_31,EMI_32,EMI_33;
305544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_EMIOffset;
306544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_PWDOffset;
307544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	short				PDC, PDCA;
308544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			SiS_MyCR63;
309544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_CRT1Mode;
310544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_flag_clearbuffer;
311544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				SiS_RAMType;
312544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			SiS_ChannelAB;
313544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			SiS_DataBusWidth;
314544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_ModeType;
315544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VBInfo;
316544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_TVMode;
317544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_LCDResInfo;
318544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_LCDTypeInfo;
319544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_LCDInfo;
320544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_LCDInfo661;
321544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VBType;
322544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VBExtInfo;
323544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_YPbPr;
324544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_SelectCRT2Rate;
325544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_SetFlag;
326544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_RVBHCFACT;
327544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_RVBHCMAX;
328544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_RVBHRS;
329544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_RVBHRS2;
330544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VGAVT;
331544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VGAHT;
332544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VT;
333544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_HT;
334544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VGAVDE;
335544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VGAHDE;
336544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_VDE;
337544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_HDE;
338544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_NewFlickerMode;
339544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_RY1COE;
340544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_RY2COE;
341544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_RY3COE;
342544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_RY4COE;
343544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_LCDHDES;
344544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_LCDVDES;
345544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_Port;
346544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_Index;
347544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_Data;
348544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_NData;
349544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_Clk;
350544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_NClk;
351544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_DeviceAddr;
352544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_ReadAddr;
353544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_DDC_SecAddr;
354544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_ChrontelInit;
355c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				SiS_SensibleSR11;
356544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS661LCD2TableSize;
357544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
358544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_PanelMinLVDS;
359544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			SiS_PanelMin301;
360544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
361544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_St		*SiS_SModeIDTable;
362544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_StandTable_S	*SiS_StandTable;
363544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_Ext		*SiS_EModeIDTable;
364544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_Ext2		*SiS_RefIndex;
365544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_VBMode		*SiS_VBModeIDTable;
366544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CRT1Table	*SiS_CRT1Table;
367544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_MCLKData	*SiS_MCLKData_0;
368544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_MCLKData	*SiS_MCLKData_1;
369544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	struct SiS_VCLKData		*SiS_VCLKData;
370544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	struct SiS_VBVCLKData		*SiS_VBVCLKData;
371544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_StResInfo_S	*SiS_StResInfo;
372544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_ModeResInfo_S	*SiS_ModeResInfo;
373544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
374544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*pSiS_OutputSelect;
375544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*pSiS_SoftSetting;
376544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
377544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_SR15;
378544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
379544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_PanelDelayTbl	*SiS_PanelDelayTbl;
380544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_PanelDelayTbl	*SiS_PanelDelayTblLVDS;
3811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	/* SiS bridge */
3831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
384544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_ExtLCD1024x768Data;
385544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_St2LCD1024x768Data;
386544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_LCD1280x720Data;
387544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_StLCD1280x768_2Data;
388544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_ExtLCD1280x768_2Data;
389544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_LCD1280x800Data;
390544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_LCD1280x800_2Data;
391544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_LCD1280x854Data;
392544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_LCD1280x960Data;
393544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_ExtLCD1280x1024Data;
394544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_St2LCD1280x1024Data;
395544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_StLCD1400x1050Data;
396544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_ExtLCD1400x1050Data;
397544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_StLCD1600x1200Data;
398544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_ExtLCD1600x1200Data;
399544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_LCD1680x1050Data;
400544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LCDData	*SiS_NoScaleData;
401544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_StPALData;
402544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_ExtPALData;
403544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_StNTSCData;
404544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_ExtNTSCData;
405544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_St1HiTVData;
406544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_St2HiTVData;
407544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_ExtHiTVData;
408544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_St525iData;
409544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_St525pData;
410544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_St750pData;
411544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_Ext525iData;
412544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_Ext525pData;
413544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_TVData		*SiS_Ext750pData;
414544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_NTSCTiming;
415544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_PALTiming;
416544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_HiTVExtTiming;
417544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_HiTVSt1Timing;
418544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_HiTVSt2Timing;
419544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_HiTVGroup3Data;
420544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_HiTVGroup3Simu;
4211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#if 0
422544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_HiTVTextTiming;
423544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_HiTVGroup3Text;
4241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
4251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
426544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_Part2PortTbl	*SiS_CRT2Part2_1024x768_1;
427544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_Part2PortTbl	*SiS_CRT2Part2_1024x768_2;
428544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_Part2PortTbl	*SiS_CRT2Part2_1024x768_3;
4291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	/* LVDS, Chrontel */
4311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
432544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDS320x240Data_1;
433544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDS320x240Data_2;
434544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDS640x480Data_1;
435544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDS800x600Data_1;
436544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDS1024x600Data_1;
437544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDS1024x768Data_1;
438544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDSBARCO1366Data_1;
439544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDSBARCO1366Data_2;
440544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDSBARCO1024Data_1;
441544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDS848x480Data_1;
442544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_LVDS848x480Data_2;
443544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVUNTSCData;
444544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVONTSCData;
445544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVUPALData;
446544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVOPALData;
447544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVUPALMData;
448544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVOPALMData;
449544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVUPALNData;
450544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVOPALNData;
451544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSData	*SiS_CHTVSOPALData;
452544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
453544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSDes	*SiS_PanelType04_1a;
454544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSDes	*SiS_PanelType04_2a;
455544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSDes	*SiS_PanelType04_1b;
456544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSDes	*SiS_PanelType04_2b;
457544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
458544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_1;
459544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_2;
460544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_2_H;
461544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_3;
462544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_3_H;
463544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1640x480_1;
464544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1640x480_1_H;
465544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1UNTSC;
466544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1ONTSC;
467544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1UPAL;
468544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1OPAL;
469544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1SOPAL;
470544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
471544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_UNTSC;
472544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_ONTSC;
473544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_UPAL;
474544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_OPAL;
475544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_UPALM;
476544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_OPALM;
477544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_UPALN;
478544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_OPALN;
479544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const struct SiS_CHTVRegData	*SiS_CHTVReg_SOPAL;
480544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
481544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKUNTSC;
482544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKONTSC;
483544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKUPAL;
484544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKOPAL;
485544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKUPALM;
486544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKOPALM;
487544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKUPALN;
488544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKOPALN;
489544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	const unsigned char		*SiS_CHTVVCLKSOPAL;
490544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
491544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			PanelXRes, PanelHT;
492544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			PanelYRes, PanelVT;
493544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			PanelHRS,  PanelHRE;
494544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			PanelVRS,  PanelVRE;
495544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			PanelVCLKIdx300;
496544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			PanelVCLKIdx315;
497c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				Alternate1600x1200;
498544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
499c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				UseCustomMode;
500c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				CRT1UsesCustomMode;
501544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CHDisplay;
502544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CHSyncStart;
503544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CHSyncEnd;
504544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CHTotal;
505544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CHBlankStart;
506544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CHBlankEnd;
507544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CVDisplay;
508544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CVSyncStart;
509544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CVSyncEnd;
510544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CVTotal;
511544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CVBlankStart;
512544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CVBlankEnd;
513544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned int			CDClock;
514544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned int			CFlags;
515544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			CCRT1CRTC[17];
516544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			CSR2B;
517544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			CSR2C;
518544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CSRClock;
519544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CSRClock_CRT1;
520544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CModeFlag;
521544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CModeFlag_CRT1;
522544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CInfoFlag;
523544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
524544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				LVDSHL;
525544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
526c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				Backup;
527544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_Mode;
528544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_14;
529544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_15;
530544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_16;
531544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_17;
532544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_18;
533544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_19;
534544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_1a;
535544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_1b;
536544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_1c;
537544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Backup_1d;
538544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
539544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			Init_P4_0E;
540544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
541544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				UsePanelScaler;
542544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CenterScreen;
543544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer
544544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CP_Vendor, CP_Product;
545c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				CP_HaveCustomData;
546544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_PreferredX, CP_PreferredY, CP_PreferredIndex;
547544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_MaxX, CP_MaxY, CP_MaxClock;
548544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned char			CP_PrefSR2B, CP_PrefSR2C;
549544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	unsigned short			CP_PrefClock;
550c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				CP_Supports64048075;
551544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_HDisplay[7], CP_VDisplay[7];	/* For Custom LCD panel dimensions */
552544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_HTotal[7], CP_VTotal[7];
553544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_HSyncStart[7], CP_VSyncStart[7];
554544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_HSyncEnd[7], CP_VSyncEnd[7];
555544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_HBlankStart[7], CP_VBlankStart[7];
556544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_HBlankEnd[7], CP_VBlankEnd[7];
557544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer	int				CP_Clock[7];
558c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				CP_DataValid[7];
559c30660ead2dd6ced47ac6ad4c099fb9305263ffbRichard Knutsson	bool				CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7];
560544393fe584d333480659a4bed30f5295355df11Thomas Winischhofer};
5611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
5631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
564