xref: /openbmc/linux/drivers/video/fbdev/sis/init.h (revision 5908986e)
1f7018c21STomi Valkeinen /* $XFree86$ */
2f7018c21STomi Valkeinen /* $XdotOrg$ */
3f7018c21STomi Valkeinen /*
4f7018c21STomi Valkeinen  * Data and prototypes for init.c
5f7018c21STomi Valkeinen  *
6f7018c21STomi Valkeinen  * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
7f7018c21STomi Valkeinen  *
8f7018c21STomi Valkeinen  * If distributed as part of the Linux kernel, the following license terms
9f7018c21STomi Valkeinen  * apply:
10f7018c21STomi Valkeinen  *
11f7018c21STomi Valkeinen  * * This program is free software; you can redistribute it and/or modify
12f7018c21STomi Valkeinen  * * it under the terms of the GNU General Public License as published by
13f7018c21STomi Valkeinen  * * the Free Software Foundation; either version 2 of the named License,
14f7018c21STomi Valkeinen  * * or any later version.
15f7018c21STomi Valkeinen  * *
16f7018c21STomi Valkeinen  * * This program is distributed in the hope that it will be useful,
17f7018c21STomi Valkeinen  * * but WITHOUT ANY WARRANTY; without even the implied warranty of
18f7018c21STomi Valkeinen  * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19f7018c21STomi Valkeinen  * * GNU General Public License for more details.
20f7018c21STomi Valkeinen  * *
21f7018c21STomi Valkeinen  * * You should have received a copy of the GNU General Public License
22f7018c21STomi Valkeinen  * * along with this program; if not, write to the Free Software
23f7018c21STomi Valkeinen  * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
24f7018c21STomi Valkeinen  *
25f7018c21STomi Valkeinen  * Otherwise, the following license terms apply:
26f7018c21STomi Valkeinen  *
27f7018c21STomi Valkeinen  * * Redistribution and use in source and binary forms, with or without
28f7018c21STomi Valkeinen  * * modification, are permitted provided that the following conditions
29f7018c21STomi Valkeinen  * * are met:
30f7018c21STomi Valkeinen  * * 1) Redistributions of source code must retain the above copyright
31f7018c21STomi Valkeinen  * *    notice, this list of conditions and the following disclaimer.
32f7018c21STomi Valkeinen  * * 2) Redistributions in binary form must reproduce the above copyright
33f7018c21STomi Valkeinen  * *    notice, this list of conditions and the following disclaimer in the
34f7018c21STomi Valkeinen  * *    documentation and/or other materials provided with the distribution.
35f7018c21STomi Valkeinen  * * 3) The name of the author may not be used to endorse or promote products
36f7018c21STomi Valkeinen  * *    derived from this software without specific prior written permission.
37f7018c21STomi Valkeinen  * *
38f7018c21STomi Valkeinen  * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
39f7018c21STomi Valkeinen  * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40f7018c21STomi Valkeinen  * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
41f7018c21STomi Valkeinen  * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
42f7018c21STomi Valkeinen  * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43f7018c21STomi Valkeinen  * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
44f7018c21STomi Valkeinen  * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
45f7018c21STomi Valkeinen  * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
46f7018c21STomi Valkeinen  * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
47f7018c21STomi Valkeinen  * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48f7018c21STomi Valkeinen  *
49f7018c21STomi Valkeinen  * Author: 	Thomas Winischhofer <thomas@winischhofer.net>
50f7018c21STomi Valkeinen  *
51f7018c21STomi Valkeinen  */
52f7018c21STomi Valkeinen 
53f7018c21STomi Valkeinen #ifndef _INIT_H_
54f7018c21STomi Valkeinen #define _INIT_H_
55f7018c21STomi Valkeinen 
56f7018c21STomi Valkeinen #include "initdef.h"
57f7018c21STomi Valkeinen 
58f7018c21STomi Valkeinen #include "vgatypes.h"
59f7018c21STomi Valkeinen #include "vstruct.h"
60f7018c21STomi Valkeinen #ifdef SIS_CP
61f7018c21STomi Valkeinen #undef SIS_CP
62f7018c21STomi Valkeinen #endif
63f7018c21STomi Valkeinen #include <linux/types.h>
64f7018c21STomi Valkeinen #include <asm/io.h>
65f7018c21STomi Valkeinen #include <linux/fb.h>
66f7018c21STomi Valkeinen #include "sis.h"
67f7018c21STomi Valkeinen #include <video/sisfb.h>
68f7018c21STomi Valkeinen 
69f7018c21STomi Valkeinen /* Mode numbers */
70f7018c21STomi Valkeinen static const unsigned short ModeIndex_320x200[]      = {0x59, 0x41, 0x00, 0x4f};
71f7018c21STomi Valkeinen static const unsigned short ModeIndex_320x240[]      = {0x50, 0x56, 0x00, 0x53};
72f7018c21STomi Valkeinen static const unsigned short ModeIndex_320x240_FSTN[] = {0x5a, 0x5b, 0x00, 0x00};  /* FSTN */
73f7018c21STomi Valkeinen static const unsigned short ModeIndex_400x300[]      = {0x51, 0x57, 0x00, 0x54};
74f7018c21STomi Valkeinen static const unsigned short ModeIndex_512x384[]      = {0x52, 0x58, 0x00, 0x5c};
75f7018c21STomi Valkeinen static const unsigned short ModeIndex_640x400[]      = {0x2f, 0x5d, 0x00, 0x5e};
76f7018c21STomi Valkeinen static const unsigned short ModeIndex_640x480[]      = {0x2e, 0x44, 0x00, 0x62};
77f7018c21STomi Valkeinen static const unsigned short ModeIndex_720x480[]      = {0x31, 0x33, 0x00, 0x35};
78f7018c21STomi Valkeinen static const unsigned short ModeIndex_720x576[]      = {0x32, 0x34, 0x00, 0x36};
79f7018c21STomi Valkeinen static const unsigned short ModeIndex_768x576[]      = {0x5f, 0x60, 0x00, 0x61};
80f7018c21STomi Valkeinen static const unsigned short ModeIndex_800x480[]      = {0x70, 0x7a, 0x00, 0x76};
81f7018c21STomi Valkeinen static const unsigned short ModeIndex_800x600[]      = {0x30, 0x47, 0x00, 0x63};
82f7018c21STomi Valkeinen static const unsigned short ModeIndex_848x480[]      = {0x39, 0x3b, 0x00, 0x3e};
83f7018c21STomi Valkeinen static const unsigned short ModeIndex_856x480[]      = {0x3f, 0x42, 0x00, 0x45};
84f7018c21STomi Valkeinen static const unsigned short ModeIndex_960x540[]      = {0x1d, 0x1e, 0x00, 0x1f};  /* 315 series only */
85f7018c21STomi Valkeinen static const unsigned short ModeIndex_960x600[]      = {0x20, 0x21, 0x00, 0x22};  /* 315 series only */
86f7018c21STomi Valkeinen static const unsigned short ModeIndex_1024x768[]     = {0x38, 0x4a, 0x00, 0x64};
87f7018c21STomi Valkeinen static const unsigned short ModeIndex_1024x576[]     = {0x71, 0x74, 0x00, 0x77};
88f7018c21STomi Valkeinen static const unsigned short ModeIndex_1024x600[]     = {0x20, 0x21, 0x00, 0x22};  /* 300 series only */
89f7018c21STomi Valkeinen static const unsigned short ModeIndex_1280x1024[]    = {0x3a, 0x4d, 0x00, 0x65};
90f7018c21STomi Valkeinen static const unsigned short ModeIndex_1280x960[]     = {0x7c, 0x7d, 0x00, 0x7e};
91f7018c21STomi Valkeinen static const unsigned short ModeIndex_1152x768[]     = {0x23, 0x24, 0x00, 0x25};  /* 300 series only */
92f7018c21STomi Valkeinen static const unsigned short ModeIndex_1152x864[]     = {0x29, 0x2a, 0x00, 0x2b};
93f7018c21STomi Valkeinen static const unsigned short ModeIndex_300_1280x768[] = {0x55, 0x5a, 0x00, 0x5b};
94f7018c21STomi Valkeinen static const unsigned short ModeIndex_310_1280x768[] = {0x23, 0x24, 0x00, 0x25};
95f7018c21STomi Valkeinen static const unsigned short ModeIndex_1280x720[]     = {0x79, 0x75, 0x00, 0x78};
96f7018c21STomi Valkeinen static const unsigned short ModeIndex_1280x800[]     = {0x14, 0x15, 0x00, 0x16};
97f7018c21STomi Valkeinen static const unsigned short ModeIndex_1280x854[]     = {0x1a, 0x1b, 0x00, 0x1c};
98f7018c21STomi Valkeinen static const unsigned short ModeIndex_1360x768[]     = {0x48, 0x4b, 0x00, 0x4e};
99f7018c21STomi Valkeinen static const unsigned short ModeIndex_300_1360x1024[]= {0x67, 0x6f, 0x00, 0x72};  /* 300 series, BARCO only */
100f7018c21STomi Valkeinen static const unsigned short ModeIndex_1400x1050[]    = {0x26, 0x27, 0x00, 0x28};  /* 315 series only */
101f7018c21STomi Valkeinen static const unsigned short ModeIndex_1680x1050[]    = {0x17, 0x18, 0x00, 0x19};  /* 315 series only */
102f7018c21STomi Valkeinen static const unsigned short ModeIndex_1600x1200[]    = {0x3c, 0x3d, 0x00, 0x66};
103f7018c21STomi Valkeinen static const unsigned short ModeIndex_1920x1080[]    = {0x2c, 0x2d, 0x00, 0x73};  /* 315 series only */
104f7018c21STomi Valkeinen static const unsigned short ModeIndex_1920x1440[]    = {0x68, 0x69, 0x00, 0x6b};
105f7018c21STomi Valkeinen static const unsigned short ModeIndex_300_2048x1536[]= {0x6c, 0x6d, 0x00, 0x00};
106f7018c21STomi Valkeinen static const unsigned short ModeIndex_310_2048x1536[]= {0x6c, 0x6d, 0x00, 0x6e};
107f7018c21STomi Valkeinen 
108f7018c21STomi Valkeinen static const unsigned char SiS_MDA_DAC[] =
109f7018c21STomi Valkeinen {
110f7018c21STomi Valkeinen 	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
111f7018c21STomi Valkeinen         0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
112f7018c21STomi Valkeinen         0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
113f7018c21STomi Valkeinen         0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
114f7018c21STomi Valkeinen         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
115f7018c21STomi Valkeinen         0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
116f7018c21STomi Valkeinen         0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
117f7018c21STomi Valkeinen         0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F
118f7018c21STomi Valkeinen };
119f7018c21STomi Valkeinen 
120f7018c21STomi Valkeinen static const unsigned char SiS_CGA_DAC[] =
121f7018c21STomi Valkeinen {
122f7018c21STomi Valkeinen         0x00,0x10,0x04,0x14,0x01,0x11,0x09,0x15,
123f7018c21STomi Valkeinen         0x00,0x10,0x04,0x14,0x01,0x11,0x09,0x15,
124f7018c21STomi Valkeinen         0x2A,0x3A,0x2E,0x3E,0x2B,0x3B,0x2F,0x3F,
125f7018c21STomi Valkeinen         0x2A,0x3A,0x2E,0x3E,0x2B,0x3B,0x2F,0x3F,
126f7018c21STomi Valkeinen         0x00,0x10,0x04,0x14,0x01,0x11,0x09,0x15,
127f7018c21STomi Valkeinen         0x00,0x10,0x04,0x14,0x01,0x11,0x09,0x15,
128f7018c21STomi Valkeinen         0x2A,0x3A,0x2E,0x3E,0x2B,0x3B,0x2F,0x3F,
129f7018c21STomi Valkeinen         0x2A,0x3A,0x2E,0x3E,0x2B,0x3B,0x2F,0x3F
130f7018c21STomi Valkeinen };
131f7018c21STomi Valkeinen 
132f7018c21STomi Valkeinen static const unsigned char SiS_EGA_DAC[] =
133f7018c21STomi Valkeinen {
134f7018c21STomi Valkeinen         0x00,0x10,0x04,0x14,0x01,0x11,0x05,0x15,
135f7018c21STomi Valkeinen         0x20,0x30,0x24,0x34,0x21,0x31,0x25,0x35,
136f7018c21STomi Valkeinen         0x08,0x18,0x0C,0x1C,0x09,0x19,0x0D,0x1D,
137f7018c21STomi Valkeinen         0x28,0x38,0x2C,0x3C,0x29,0x39,0x2D,0x3D,
138f7018c21STomi Valkeinen         0x02,0x12,0x06,0x16,0x03,0x13,0x07,0x17,
139f7018c21STomi Valkeinen         0x22,0x32,0x26,0x36,0x23,0x33,0x27,0x37,
140f7018c21STomi Valkeinen         0x0A,0x1A,0x0E,0x1E,0x0B,0x1B,0x0F,0x1F,
141f7018c21STomi Valkeinen         0x2A,0x3A,0x2E,0x3E,0x2B,0x3B,0x2F,0x3F
142f7018c21STomi Valkeinen };
143f7018c21STomi Valkeinen 
144f7018c21STomi Valkeinen static const unsigned char SiS_VGA_DAC[] =
145f7018c21STomi Valkeinen {
146f7018c21STomi Valkeinen 	0x00,0x10,0x04,0x14,0x01,0x11,0x09,0x15,
147f7018c21STomi Valkeinen 	0x2A,0x3A,0x2E,0x3E,0x2B,0x3B,0x2F,0x3F,
148f7018c21STomi Valkeinen 	0x00,0x05,0x08,0x0B,0x0E,0x11,0x14,0x18,
149f7018c21STomi Valkeinen 	0x1C,0x20,0x24,0x28,0x2D,0x32,0x38,0x3F,
150f7018c21STomi Valkeinen 	0x00,0x10,0x1F,0x2F,0x3F,0x1F,0x27,0x2F,
151f7018c21STomi Valkeinen 	0x37,0x3F,0x2D,0x31,0x36,0x3A,0x3F,0x00,
152f7018c21STomi Valkeinen 	0x07,0x0E,0x15,0x1C,0x0E,0x11,0x15,0x18,
153f7018c21STomi Valkeinen 	0x1C,0x14,0x16,0x18,0x1A,0x1C,0x00,0x04,
154f7018c21STomi Valkeinen 	0x08,0x0C,0x10,0x08,0x0A,0x0C,0x0E,0x10,
155f7018c21STomi Valkeinen 	0x0B,0x0C,0x0D,0x0F,0x10
156f7018c21STomi Valkeinen };
157f7018c21STomi Valkeinen 
158f7018c21STomi Valkeinen static const struct SiS_St SiS_SModeIDTable[] =
159f7018c21STomi Valkeinen {
160f7018c21STomi Valkeinen 	{0x01,0x9208,0x01,0x00,0x00,0x00,0x01,0x00,0x40},
161f7018c21STomi Valkeinen 	{0x01,0x1210,0x14,0x01,0x01,0x00,0x01,0x00,0x40},
162f7018c21STomi Valkeinen 	{0x01,0x1010,0x17,0x02,0x02,0x00,0x01,0x01,0x40},
163f7018c21STomi Valkeinen 	{0x03,0x8208,0x03,0x00,0x00,0x00,0x01,0x02,0x40},
164f7018c21STomi Valkeinen 	{0x03,0x0210,0x16,0x01,0x01,0x00,0x01,0x02,0x40},
165f7018c21STomi Valkeinen 	{0x03,0x0010,0x18,0x02,0x02,0x00,0x01,0x03,0x40},
166f7018c21STomi Valkeinen 	{0x05,0x9209,0x05,0x00,0x00,0x00,0x00,0x04,0x40},
167f7018c21STomi Valkeinen 	{0x06,0x8209,0x06,0x00,0x00,0x00,0x00,0x05,0x40},
168f7018c21STomi Valkeinen 	{0x07,0x0000,0x07,0x03,0x03,0x00,0x01,0x03,0x40},
169f7018c21STomi Valkeinen 	{0x07,0x0000,0x19,0x02,0x02,0x00,0x01,0x03,0x40},
170f7018c21STomi Valkeinen 	{0x0d,0x920a,0x0d,0x00,0x00,0x00,0x00,0x04,0x40},
171f7018c21STomi Valkeinen 	{0x0e,0x820a,0x0e,0x00,0x00,0x00,0x00,0x05,0x40},
172f7018c21STomi Valkeinen 	{0x0f,0x0202,0x11,0x01,0x01,0x00,0x00,0x05,0x40},
173f7018c21STomi Valkeinen 	{0x10,0x0212,0x12,0x01,0x01,0x00,0x00,0x05,0x40},
174f7018c21STomi Valkeinen 	{0x11,0x0212,0x1a,0x04,0x04,0x00,0x00,0x05,0x40},
175f7018c21STomi Valkeinen 	{0x12,0x0212,0x1b,0x04,0x04,0x00,0x00,0x05,0x40},
176f7018c21STomi Valkeinen 	{0x13,0x021b,0x1c,0x00,0x00,0x00,0x00,0x04,0x40},
177f7018c21STomi Valkeinen 	{0x12,0x0010,0x18,0x02,0x02,0x00,0x00,0x05,0x40},
178f7018c21STomi Valkeinen 	{0x12,0x0210,0x18,0x01,0x01,0x00,0x00,0x05,0x40},
179f7018c21STomi Valkeinen 	{0xff,0x0000,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
180f7018c21STomi Valkeinen };
181f7018c21STomi Valkeinen 
182f7018c21STomi Valkeinen static const struct SiS_StResInfo_S SiS_StResInfo[]=
183f7018c21STomi Valkeinen {
184f7018c21STomi Valkeinen 	{ 640,400},
185f7018c21STomi Valkeinen 	{ 640,350},
186f7018c21STomi Valkeinen 	{ 720,400},
187f7018c21STomi Valkeinen 	{ 720,350},
188f7018c21STomi Valkeinen 	{ 640,480}
189f7018c21STomi Valkeinen };
190f7018c21STomi Valkeinen 
191f7018c21STomi Valkeinen static const struct SiS_ModeResInfo_S SiS_ModeResInfo[] =
192f7018c21STomi Valkeinen {
193f7018c21STomi Valkeinen 	{  320, 200, 8, 8},   /* 0x00 */
194f7018c21STomi Valkeinen 	{  320, 240, 8, 8},   /* 0x01 */
195f7018c21STomi Valkeinen 	{  320, 400, 8, 8},   /* 0x02 */
196f7018c21STomi Valkeinen 	{  400, 300, 8, 8},   /* 0x03 */
197f7018c21STomi Valkeinen 	{  512, 384, 8, 8},   /* 0x04 */
198f7018c21STomi Valkeinen 	{  640, 400, 8,16},   /* 0x05 */
199f7018c21STomi Valkeinen 	{  640, 480, 8,16},   /* 0x06 */
200f7018c21STomi Valkeinen 	{  800, 600, 8,16},   /* 0x07 */
201f7018c21STomi Valkeinen 	{ 1024, 768, 8,16},   /* 0x08 */
202f7018c21STomi Valkeinen 	{ 1280,1024, 8,16},   /* 0x09 */
203f7018c21STomi Valkeinen 	{ 1600,1200, 8,16},   /* 0x0a */
204f7018c21STomi Valkeinen 	{ 1920,1440, 8,16},   /* 0x0b */
205f7018c21STomi Valkeinen 	{ 2048,1536, 8,16},   /* 0x0c */
206f7018c21STomi Valkeinen 	{  720, 480, 8,16},   /* 0x0d */
207f7018c21STomi Valkeinen 	{  720, 576, 8,16},   /* 0x0e */
208f7018c21STomi Valkeinen 	{ 1280, 960, 8,16},   /* 0x0f */
209f7018c21STomi Valkeinen 	{  800, 480, 8,16},   /* 0x10 */
210f7018c21STomi Valkeinen 	{ 1024, 576, 8,16},   /* 0x11 */
211f7018c21STomi Valkeinen 	{ 1280, 720, 8,16},   /* 0x12 */
212f7018c21STomi Valkeinen 	{  856, 480, 8,16},   /* 0x13 */
213f7018c21STomi Valkeinen 	{ 1280, 768, 8,16},   /* 0x14 */
214f7018c21STomi Valkeinen 	{ 1400,1050, 8,16},   /* 0x15 */
215f7018c21STomi Valkeinen 	{ 1152, 864, 8,16},   /* 0x16 */
216f7018c21STomi Valkeinen 	{  848, 480, 8,16},   /* 0x17 */
217f7018c21STomi Valkeinen 	{ 1360, 768, 8,16},   /* 0x18 */
218f7018c21STomi Valkeinen 	{ 1024, 600, 8,16},   /* 0x19 */
219f7018c21STomi Valkeinen 	{ 1152, 768, 8,16},   /* 0x1a */
220f7018c21STomi Valkeinen 	{  768, 576, 8,16},   /* 0x1b */
221f7018c21STomi Valkeinen 	{ 1360,1024, 8,16},   /* 0x1c */
222f7018c21STomi Valkeinen 	{ 1680,1050, 8,16},   /* 0x1d */
223f7018c21STomi Valkeinen 	{ 1280, 800, 8,16},   /* 0x1e */
224f7018c21STomi Valkeinen 	{ 1920,1080, 8,16},   /* 0x1f */
225f7018c21STomi Valkeinen 	{  960, 540, 8,16},   /* 0x20 */
226f7018c21STomi Valkeinen 	{  960, 600, 8,16},   /* 0x21 */
227f7018c21STomi Valkeinen 	{ 1280, 854, 8,16}    /* 0x22 */
228f7018c21STomi Valkeinen };
229f7018c21STomi Valkeinen 
230f7018c21STomi Valkeinen #if defined(CONFIG_FB_SIS_300) || defined(CONFIG_FB_SIS_315)
231f7018c21STomi Valkeinen static const struct SiS_StandTable_S SiS_StandTable[]=
232f7018c21STomi Valkeinen {
233f7018c21STomi Valkeinen /* 0x00: MD_0_200 */
234f7018c21STomi Valkeinen  {
235f7018c21STomi Valkeinen   0x28,0x18,0x08,0x0800,
236f7018c21STomi Valkeinen   {0x09,0x03,0x00,0x02},
237f7018c21STomi Valkeinen   0x63,
238f7018c21STomi Valkeinen   {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
239f7018c21STomi Valkeinen    0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
240f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
241f7018c21STomi Valkeinen    0xff},
242f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
243f7018c21STomi Valkeinen    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
244f7018c21STomi Valkeinen    0x08,0x00,0x0f,0x00},
245f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
246f7018c21STomi Valkeinen    0xff}
247f7018c21STomi Valkeinen  },
248f7018c21STomi Valkeinen /* 0x01: MD_1_200 */
249f7018c21STomi Valkeinen  {
250f7018c21STomi Valkeinen   0x28,0x18,0x08,0x0800,
251f7018c21STomi Valkeinen   {0x09,0x03,0x00,0x02},
252f7018c21STomi Valkeinen   0x63,
253f7018c21STomi Valkeinen   {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
254f7018c21STomi Valkeinen    0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
255f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
256f7018c21STomi Valkeinen    0xff},
257f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
258f7018c21STomi Valkeinen    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
259f7018c21STomi Valkeinen    0x08,0x00,0x0f,0x00},
260f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
261f7018c21STomi Valkeinen    0xff}
262f7018c21STomi Valkeinen  },
263f7018c21STomi Valkeinen /* 0x02: MD_2_200 */
264f7018c21STomi Valkeinen  {
265f7018c21STomi Valkeinen   0x50,0x18,0x08,0x1000,
266f7018c21STomi Valkeinen   {0x01,0x03,0x00,0x02},
267f7018c21STomi Valkeinen   0x63,
268f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
269f7018c21STomi Valkeinen    0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
270f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
271f7018c21STomi Valkeinen    0xff},
272f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
273f7018c21STomi Valkeinen    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
274f7018c21STomi Valkeinen    0x08,0x00,0x0f,0x00},
275f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
276f7018c21STomi Valkeinen    0xff}
277f7018c21STomi Valkeinen  },
278f7018c21STomi Valkeinen /* 0x03: MD_3_200 - mode 0x03 - 0 */
279f7018c21STomi Valkeinen  {
280f7018c21STomi Valkeinen   0x50,0x18,0x08,0x1000,
281f7018c21STomi Valkeinen   {0x01,0x03,0x00,0x02},
282f7018c21STomi Valkeinen   0x63,
283f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
284f7018c21STomi Valkeinen    0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
285f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
286f7018c21STomi Valkeinen    0xff},
287f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
288f7018c21STomi Valkeinen    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
289f7018c21STomi Valkeinen    0x08,0x00,0x0f,0x00},
290f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
291f7018c21STomi Valkeinen    0xff}
292f7018c21STomi Valkeinen  },
293f7018c21STomi Valkeinen /* 0x04: MD_4 */
294f7018c21STomi Valkeinen  {
295f7018c21STomi Valkeinen   0x28,0x18,0x08,0x4000,
296f7018c21STomi Valkeinen   {0x09,0x03,0x00,0x02},
297f7018c21STomi Valkeinen   0x63,
298f7018c21STomi Valkeinen   {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,   /* 0x2c is 2b for 300 */
299f7018c21STomi Valkeinen    0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
300f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2,
301f7018c21STomi Valkeinen    0xff},
302f7018c21STomi Valkeinen   {0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07,
303f7018c21STomi Valkeinen    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
304f7018c21STomi Valkeinen    0x01,0x00,0x03,0x00},
305f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00,
306f7018c21STomi Valkeinen    0xff}
307f7018c21STomi Valkeinen  },
308f7018c21STomi Valkeinen /* 0x05: MD_5 */
309f7018c21STomi Valkeinen  {
310f7018c21STomi Valkeinen   0x28,0x18,0x08,0x4000,
311f7018c21STomi Valkeinen   {0x09,0x03,0x00,0x02},
312f7018c21STomi Valkeinen   0x63,
313f7018c21STomi Valkeinen   {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,   /* 0x2c is 2b for 300 */
314f7018c21STomi Valkeinen    0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
315f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2,
316f7018c21STomi Valkeinen    0xff},
317f7018c21STomi Valkeinen   {0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07,
318f7018c21STomi Valkeinen    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
319f7018c21STomi Valkeinen    0x01,0x00,0x03,0x00},
320f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00,
321f7018c21STomi Valkeinen    0xff}
322f7018c21STomi Valkeinen  },
323f7018c21STomi Valkeinen /* 0x06: MD_6 */
324f7018c21STomi Valkeinen  {
325f7018c21STomi Valkeinen   0x50,0x18,0x08,0x4000,
326f7018c21STomi Valkeinen   {0x01,0x01,0x00,0x06},
327f7018c21STomi Valkeinen   0x63,
328f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,   /* 55,81 is 54,80 for 300 */
329f7018c21STomi Valkeinen    0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
330f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xc2,
331f7018c21STomi Valkeinen    0xff},
332f7018c21STomi Valkeinen   {0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
333f7018c21STomi Valkeinen    0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
334f7018c21STomi Valkeinen    0x01,0x00,0x01,0x00},
335f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,
336f7018c21STomi Valkeinen    0xff}
337f7018c21STomi Valkeinen  },
338f7018c21STomi Valkeinen /* 0x07: MD_7 */
339f7018c21STomi Valkeinen  {
340f7018c21STomi Valkeinen   0x50,0x18,0x0e,0x1000,
341f7018c21STomi Valkeinen   {0x00,0x03,0x00,0x03},
342f7018c21STomi Valkeinen   0xa6,
343f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
344f7018c21STomi Valkeinen    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
345f7018c21STomi Valkeinen    0x83,0x85,0x5d,0x28,0x0d,0x63,0xba,0xa3,
346f7018c21STomi Valkeinen    0xff},
347f7018c21STomi Valkeinen   {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
348f7018c21STomi Valkeinen    0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
349f7018c21STomi Valkeinen    0x0e,0x00,0x0f,0x08},
350f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00,
351f7018c21STomi Valkeinen    0xff}
352f7018c21STomi Valkeinen  },
353f7018c21STomi Valkeinen /* 0x08: MDA_DAC */
354f7018c21STomi Valkeinen  {
355f7018c21STomi Valkeinen   0x00,0x00,0x00,0x0000,
356f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x15},
357f7018c21STomi Valkeinen   0x15,
358f7018c21STomi Valkeinen   {0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
359f7018c21STomi Valkeinen    0x15,0x15,0x15,0x15,0x15,0x15,0x3f,0x3f,
360f7018c21STomi Valkeinen    0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00,0x00,
361f7018c21STomi Valkeinen    0x00},
362f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x15,
363f7018c21STomi Valkeinen    0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
364f7018c21STomi Valkeinen    0x15,0x15,0x15,0x15},
365f7018c21STomi Valkeinen   {0x15,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
366f7018c21STomi Valkeinen    0x3f}
367f7018c21STomi Valkeinen  },
368f7018c21STomi Valkeinen /* 0x09: CGA_DAC */
369f7018c21STomi Valkeinen  {
370f7018c21STomi Valkeinen   0x00,0x10,0x04,0x0114,
371f7018c21STomi Valkeinen   {0x11,0x09,0x15,0x00},
372f7018c21STomi Valkeinen   0x10,
373f7018c21STomi Valkeinen   {0x04,0x14,0x01,0x11,0x09,0x15,0x2a,0x3a,
374f7018c21STomi Valkeinen    0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x2a,0x3a,
375f7018c21STomi Valkeinen    0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x00,0x10,
376f7018c21STomi Valkeinen    0x04},
377f7018c21STomi Valkeinen   {0x14,0x01,0x11,0x09,0x15,0x00,0x10,0x04,
378f7018c21STomi Valkeinen    0x14,0x01,0x11,0x09,0x15,0x2a,0x3a,0x2e,
379f7018c21STomi Valkeinen    0x3e,0x2b,0x3b,0x2f},
380f7018c21STomi Valkeinen   {0x3f,0x2a,0x3a,0x2e,0x3e,0x2b,0x3b,0x2f,
381f7018c21STomi Valkeinen    0x3f}
382f7018c21STomi Valkeinen  },
383f7018c21STomi Valkeinen /* 0x0a: EGA_DAC */
384f7018c21STomi Valkeinen  {
385f7018c21STomi Valkeinen   0x00,0x10,0x04,0x0114,
386f7018c21STomi Valkeinen   {0x11,0x05,0x15,0x20},
387f7018c21STomi Valkeinen   0x30,
388f7018c21STomi Valkeinen   {0x24,0x34,0x21,0x31,0x25,0x35,0x08,0x18,
389f7018c21STomi Valkeinen    0x0c,0x1c,0x09,0x19,0x0d,0x1d,0x28,0x38,
390f7018c21STomi Valkeinen    0x2c,0x3c,0x29,0x39,0x2d,0x3d,0x02,0x12,
391f7018c21STomi Valkeinen    0x06},
392f7018c21STomi Valkeinen   {0x16,0x03,0x13,0x07,0x17,0x22,0x32,0x26,
393f7018c21STomi Valkeinen    0x36,0x23,0x33,0x27,0x37,0x0a,0x1a,0x0e,
394f7018c21STomi Valkeinen    0x1e,0x0b,0x1b,0x0f},
395f7018c21STomi Valkeinen   {0x1f,0x2a,0x3a,0x2e,0x3e,0x2b,0x3b,0x2f,
396f7018c21STomi Valkeinen    0x3f}
397f7018c21STomi Valkeinen  },
398f7018c21STomi Valkeinen /* 0x0b: VGA_DAC */
399f7018c21STomi Valkeinen  {
400f7018c21STomi Valkeinen   0x00,0x10,0x04,0x0114,
401f7018c21STomi Valkeinen   {0x11,0x09,0x15,0x2a},
402f7018c21STomi Valkeinen   0x3a,
403f7018c21STomi Valkeinen   {0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x00,0x05,
404f7018c21STomi Valkeinen    0x08,0x0b,0x0e,0x11,0x14,0x18,0x1c,0x20,
405f7018c21STomi Valkeinen    0x24,0x28,0x2d,0x32,0x38,0x3f,0x00,0x10,
406f7018c21STomi Valkeinen    0x1f},
407f7018c21STomi Valkeinen   {0x2f,0x3f,0x1f,0x27,0x2f,0x37,0x3f,0x2d,
408f7018c21STomi Valkeinen    0x31,0x36,0x3a,0x3f,0x00,0x07,0x0e,0x15,
409f7018c21STomi Valkeinen    0x1c,0x0e,0x11,0x15},
410f7018c21STomi Valkeinen   {0x18,0x1c,0x14,0x16,0x18,0x1a,0x1c,0x00,
411f7018c21STomi Valkeinen    0x04}
412f7018c21STomi Valkeinen  },
413f7018c21STomi Valkeinen /* 0x0c */
414f7018c21STomi Valkeinen  {
415f7018c21STomi Valkeinen   0x08,0x0c,0x10,0x0a08,
416f7018c21STomi Valkeinen   {0x0c,0x0e,0x10,0x0b},
417f7018c21STomi Valkeinen   0x0c,
418f7018c21STomi Valkeinen   {0x0d,0x0f,0x10,0x10,0x01,0x08,0x00,0x00,
419f7018c21STomi Valkeinen    0x00,0x00,0x01,0x00,0x02,0x02,0x01,0x00,
420f7018c21STomi Valkeinen    0x04,0x04,0x01,0x00,0x05,0x02,0x05,0x00,
421f7018c21STomi Valkeinen    0x06},
422f7018c21STomi Valkeinen   {0x01,0x06,0x05,0x06,0x00,0x08,0x01,0x08,
423f7018c21STomi Valkeinen    0x00,0x07,0x02,0x07,0x06,0x07,0x00,0x00,
424f7018c21STomi Valkeinen    0x00,0x00,0x00,0x00},
425f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
426f7018c21STomi Valkeinen    0x00}
427f7018c21STomi Valkeinen  },
428f7018c21STomi Valkeinen /* 0x0d: MD_D */
429f7018c21STomi Valkeinen  {
430f7018c21STomi Valkeinen   0x28,0x18,0x08,0x2000,
431f7018c21STomi Valkeinen   {0x09,0x0f,0x00,0x06},
432f7018c21STomi Valkeinen   0x63,
433f7018c21STomi Valkeinen   {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,     /* 2c is 2b for 300 */
434f7018c21STomi Valkeinen    0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
435f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xe3,
436f7018c21STomi Valkeinen    0xff},
437f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
438f7018c21STomi Valkeinen    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
439f7018c21STomi Valkeinen    0x01,0x00,0x0f,0x00},
440f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
441f7018c21STomi Valkeinen    0xff}
442f7018c21STomi Valkeinen  },
443f7018c21STomi Valkeinen /* 0x0e: MD_E */
444f7018c21STomi Valkeinen  {
445f7018c21STomi Valkeinen   0x50,0x18,0x08,0x4000,
446f7018c21STomi Valkeinen   {0x01,0x0f,0x00,0x06},
447f7018c21STomi Valkeinen   0x63,
448f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,     /* 55,81 is 54,80 for 300 */
449f7018c21STomi Valkeinen    0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
450f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xe3,
451f7018c21STomi Valkeinen    0xff},
452f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
453f7018c21STomi Valkeinen    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
454f7018c21STomi Valkeinen    0x01,0x00,0x0f,0x00},
455f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
456f7018c21STomi Valkeinen    0xff}
457f7018c21STomi Valkeinen  },
458f7018c21STomi Valkeinen /* 0x0f: ExtVGATable - modes > 0x13 */
459f7018c21STomi Valkeinen  {
460f7018c21STomi Valkeinen   0x00,0x00,0x00,0x0000,
461f7018c21STomi Valkeinen   {0x01,0x0f,0x00,0x0e},
462f7018c21STomi Valkeinen   0x23,
463f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,
464f7018c21STomi Valkeinen    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
465f7018c21STomi Valkeinen    0xea,0x8c,0xdf,0x28,0x40,0xe7,0x04,0xa3,
466f7018c21STomi Valkeinen    0xff},
467f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
468f7018c21STomi Valkeinen    0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
469f7018c21STomi Valkeinen    0x01,0x00,0x00,0x00},
470f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,
471f7018c21STomi Valkeinen    0xff}
472f7018c21STomi Valkeinen  },
473f7018c21STomi Valkeinen /* 0x10: ROM_SAVEPTR - totally different for 300 */
474f7018c21STomi Valkeinen  {
475f7018c21STomi Valkeinen   0x9f,0x3b,0x00,0x00c0,
476f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00},
477f7018c21STomi Valkeinen   0x00,
478f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0xbb,0x3f,
479f7018c21STomi Valkeinen    0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
480f7018c21STomi Valkeinen    0x00,0x00,0x1a,0x00,0xac,0x3e,0x00,0xc0,
481f7018c21STomi Valkeinen    0x00},
482f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
483f7018c21STomi Valkeinen    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
484f7018c21STomi Valkeinen    0x00,0x00,0x00,0x00},
485f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
486f7018c21STomi Valkeinen    0x00}
487f7018c21STomi Valkeinen  },
488f7018c21STomi Valkeinen /* 0x11: MD_F */
489f7018c21STomi Valkeinen  {
490f7018c21STomi Valkeinen   0x50,0x18,0x0e,0x8000,
491f7018c21STomi Valkeinen   {0x01,0x0f,0x00,0x06},
492f7018c21STomi Valkeinen   0xa2,
493f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,    /* 55,81 is 54,80 on 300 */
494f7018c21STomi Valkeinen    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
495f7018c21STomi Valkeinen    0x82,0x84,0x5d,0x28,0x0f,0x63,0xba,0xe3,    /* 82,84 is 83,85 on 300 */
496f7018c21STomi Valkeinen    0xff},
497f7018c21STomi Valkeinen   {0x00,0x08,0x00,0x00,0x18,0x18,0x00,0x00,
498f7018c21STomi Valkeinen    0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00,
499f7018c21STomi Valkeinen    0x0b,0x00,0x05,0x00},
500f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,
501f7018c21STomi Valkeinen    0xff}
502f7018c21STomi Valkeinen  },
503f7018c21STomi Valkeinen /* 0x12: MD_10 */
504f7018c21STomi Valkeinen  {
505f7018c21STomi Valkeinen   0x50,0x18,0x0e,0x8000,
506f7018c21STomi Valkeinen   {0x01,0x0f,0x00,0x06},
507f7018c21STomi Valkeinen   0xa3,
508f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,    /* 55,81 is 54,80 on 300 */
509f7018c21STomi Valkeinen    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
510f7018c21STomi Valkeinen    0x82,0x84,0x5d,0x28,0x0f,0x63,0xba,0xe3,    /* 82,84 is 83,85 on 300 */
511f7018c21STomi Valkeinen    0xff},
512f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
513f7018c21STomi Valkeinen    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
514f7018c21STomi Valkeinen    0x01,0x00,0x0f,0x00},
515f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
516f7018c21STomi Valkeinen    0xff}
517f7018c21STomi Valkeinen  },
518f7018c21STomi Valkeinen /* 0x13: MD_0_350 */
519f7018c21STomi Valkeinen  {
520f7018c21STomi Valkeinen   0x28,0x18,0x0e,0x0800,
521f7018c21STomi Valkeinen   {0x09,0x03,0x00,0x02},
522f7018c21STomi Valkeinen   0xa3,
523f7018c21STomi Valkeinen   {0x2d,0x27,0x28,0x90,0x2b,0xb1,0xbf,0x1f,    /* b1 is a0 on 300 */
524f7018c21STomi Valkeinen    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
525f7018c21STomi Valkeinen    0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3,
526f7018c21STomi Valkeinen    0xff},
527f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
528f7018c21STomi Valkeinen    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
529f7018c21STomi Valkeinen    0x08,0x00,0x0f,0x00},
530f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
531f7018c21STomi Valkeinen    0xff}
532f7018c21STomi Valkeinen  },
533f7018c21STomi Valkeinen /* 0x14: MD_1_350 */
534f7018c21STomi Valkeinen  {
535f7018c21STomi Valkeinen   0x28,0x18,0x0e,0x0800,
536f7018c21STomi Valkeinen   {0x09,0x03,0x00,0x02},
537f7018c21STomi Valkeinen   0xa3,
538f7018c21STomi Valkeinen   {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
539f7018c21STomi Valkeinen    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
540f7018c21STomi Valkeinen    0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3,
541f7018c21STomi Valkeinen    0xff},
542f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
543f7018c21STomi Valkeinen    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
544f7018c21STomi Valkeinen    0x08,0x00,0x0f,0x00},
545f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
546f7018c21STomi Valkeinen    0xff}
547f7018c21STomi Valkeinen  },
548f7018c21STomi Valkeinen /* 0x15: MD_2_350 */
549f7018c21STomi Valkeinen  {
550f7018c21STomi Valkeinen   0x50,0x18,0x0e,0x1000,
551f7018c21STomi Valkeinen   {0x01,0x03,0x00,0x02},
552f7018c21STomi Valkeinen   0xa3,
553f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
554f7018c21STomi Valkeinen    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
555f7018c21STomi Valkeinen    0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,
556f7018c21STomi Valkeinen    0xff},
557f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
558f7018c21STomi Valkeinen    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
559f7018c21STomi Valkeinen    0x08,0x00,0x0f,0x00},
560f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
561f7018c21STomi Valkeinen    0xff}
562f7018c21STomi Valkeinen  },
563f7018c21STomi Valkeinen /* 0x16: MD_3_350 - mode 0x03 - 1 */
564f7018c21STomi Valkeinen  {
565f7018c21STomi Valkeinen   0x50,0x18,0x0e,0x1000,
566f7018c21STomi Valkeinen   {0x01,0x03,0x00,0x02},
567f7018c21STomi Valkeinen   0xa3,
568f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
569f7018c21STomi Valkeinen    0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
570f7018c21STomi Valkeinen    0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,
571f7018c21STomi Valkeinen    0xff},
572f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
573f7018c21STomi Valkeinen    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
574f7018c21STomi Valkeinen    0x08,0x00,0x0f,0x00},
575f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
576f7018c21STomi Valkeinen    0xff}
577f7018c21STomi Valkeinen  },
578f7018c21STomi Valkeinen /* 0x17: MD_0_1_400 */
579f7018c21STomi Valkeinen  {
580f7018c21STomi Valkeinen   0x28,0x18,0x10,0x0800,
581f7018c21STomi Valkeinen   {0x08,0x03,0x00,0x02},
582f7018c21STomi Valkeinen   0x67,
583f7018c21STomi Valkeinen   {0x2d,0x27,0x28,0x90,0x2b,0xb1,0xbf,0x1f,    /* b1 is a0 on 300 */
584f7018c21STomi Valkeinen    0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
585f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
586f7018c21STomi Valkeinen    0xff},
587f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
588f7018c21STomi Valkeinen    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
589f7018c21STomi Valkeinen    0x0c,0x00,0x0f,0x08},
590f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
591f7018c21STomi Valkeinen    0xff}
592f7018c21STomi Valkeinen  },
593f7018c21STomi Valkeinen /* 0x18: MD_2_3_400 - mode 0x03 - 2 */
594f7018c21STomi Valkeinen  {
595f7018c21STomi Valkeinen   0x50,0x18,0x10,0x1000,
596f7018c21STomi Valkeinen   {0x00,0x03,0x00,0x02},
597f7018c21STomi Valkeinen   0x67,
598f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
599f7018c21STomi Valkeinen    0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
600f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
601f7018c21STomi Valkeinen    0xff},
602f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
603f7018c21STomi Valkeinen    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
604f7018c21STomi Valkeinen    0x0c,0x00,0x0f,0x08},
605f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
606f7018c21STomi Valkeinen    0xff}
607f7018c21STomi Valkeinen  },
608f7018c21STomi Valkeinen /* 0x19: MD_7_400 */
609f7018c21STomi Valkeinen  {
610f7018c21STomi Valkeinen   0x50,0x18,0x10,0x1000,
611f7018c21STomi Valkeinen   {0x00,0x03,0x00,0x02},
612f7018c21STomi Valkeinen   0x66,
613f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
614f7018c21STomi Valkeinen    0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
615f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x28,0x0f,0x96,0xb9,0xa3,
616f7018c21STomi Valkeinen    0xff},
617f7018c21STomi Valkeinen   {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
618f7018c21STomi Valkeinen    0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
619f7018c21STomi Valkeinen    0x0e,0x00,0x0f,0x08},
620f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00,
621f7018c21STomi Valkeinen    0xff}
622f7018c21STomi Valkeinen  },
623f7018c21STomi Valkeinen /* 0x1a: MD_11 */
624f7018c21STomi Valkeinen  {
625f7018c21STomi Valkeinen   0x50,0x1d,0x10,0xa000,
626f7018c21STomi Valkeinen   {0x01,0x0f,0x00,0x06},
627f7018c21STomi Valkeinen   0xe3,
628f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e,    /* 55,81 is 54,80 on 300 */
629f7018c21STomi Valkeinen    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
630f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xc3,    /* e9,8b is ea,8c on 300 */
631f7018c21STomi Valkeinen    0xff},
632f7018c21STomi Valkeinen   {0x00,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
633f7018c21STomi Valkeinen    0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
634f7018c21STomi Valkeinen    0x01,0x00,0x0f,0x00},
635f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x01,
636f7018c21STomi Valkeinen    0xff}
637f7018c21STomi Valkeinen  },
638f7018c21STomi Valkeinen /* 0x1b: ExtEGATable - Modes <= 0x02 */
639f7018c21STomi Valkeinen  {
640f7018c21STomi Valkeinen   0x50,0x1d,0x10,0xa000,
641f7018c21STomi Valkeinen   {0x01,0x0f,0x00,0x06},
642f7018c21STomi Valkeinen   0xe3,
643f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e,    /* 55,81 is 54,80 on 300 */
644f7018c21STomi Valkeinen    0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
645f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xe3,    /* e9,8b is ea,8c on 300 */
646f7018c21STomi Valkeinen    0xff},
647f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
648f7018c21STomi Valkeinen    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
649f7018c21STomi Valkeinen    0x01,0x00,0x0f,0x00},
650f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
651f7018c21STomi Valkeinen    0xff}
652f7018c21STomi Valkeinen  },
653f7018c21STomi Valkeinen /* 0x1c: MD_13 */
654f7018c21STomi Valkeinen  {
655f7018c21STomi Valkeinen   0x28,0x18,0x08,0x2000,
656f7018c21STomi Valkeinen   {0x01,0x0f,0x00,0x0e},
657f7018c21STomi Valkeinen   0x63,
658f7018c21STomi Valkeinen   {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,    /* 55,81 is 54,80 on 300 */
659f7018c21STomi Valkeinen    0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,
660f7018c21STomi Valkeinen    0x9c,0x8e,0x8f,0x28,0x40,0x96,0xb9,0xa3,
661f7018c21STomi Valkeinen    0xff},
662f7018c21STomi Valkeinen   {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
663f7018c21STomi Valkeinen    0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
664f7018c21STomi Valkeinen    0x41,0x00,0x0f,0x00},
665f7018c21STomi Valkeinen   {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,
666f7018c21STomi Valkeinen    0xff}
667f7018c21STomi Valkeinen  }
668f7018c21STomi Valkeinen };
669f7018c21STomi Valkeinen #endif
670f7018c21STomi Valkeinen 
671f7018c21STomi Valkeinen /**************************************************************/
672f7018c21STomi Valkeinen /* SIS VIDEO BRIDGE ----------------------------------------- */
673f7018c21STomi Valkeinen /**************************************************************/
674f7018c21STomi Valkeinen 
675f7018c21STomi Valkeinen static const unsigned char SiS_SoftSetting  = 0x30;   /* RAM setting */
676f7018c21STomi Valkeinen 
677f7018c21STomi Valkeinen static const unsigned char SiS_OutputSelect = 0x40;
678f7018c21STomi Valkeinen 
679f7018c21STomi Valkeinen static const unsigned char SiS_NTSCTiming[] = {
680f7018c21STomi Valkeinen 	0x17,0x1d,0x03,0x09,0x05,0x06,0x0c,0x0c,
681f7018c21STomi Valkeinen 	0x94,0x49,0x01,0x0a,0x06,0x0d,0x04,0x0a,
682f7018c21STomi Valkeinen 	0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x1b,
683f7018c21STomi Valkeinen 	0x0c,0x50,0x00,0x97,0x00,0xda,0x4a,0x17,
684f7018c21STomi Valkeinen 	0x7d,0x05,0x4b,0x00,0x00,0xe2,0x00,0x02,
685f7018c21STomi Valkeinen 	0x03,0x0a,0x65,0x9d,0x08,0x92,0x8f,0x40,
686f7018c21STomi Valkeinen 	0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x50,
687f7018c21STomi Valkeinen 	0x00,0x40,0x44,0x00,0xdb,0x02,0x3b,0x00
688f7018c21STomi Valkeinen };
689f7018c21STomi Valkeinen 
690f7018c21STomi Valkeinen static const unsigned char SiS_PALTiming[] = {
691f7018c21STomi Valkeinen 	0x19,0x52,0x35,0x6e,0x04,0x38,0x3d,0x70,
692f7018c21STomi Valkeinen 	0x94,0x49,0x01,0x12,0x06,0x3e,0x35,0x6d,
693f7018c21STomi Valkeinen 	0x06,0x14,0x3e,0x35,0x6d,0x00,0x45,0x2b,
694f7018c21STomi Valkeinen 	0x70,0x50,0x00,0x9b,0x00,0xd9,0x5d,0x17,
695f7018c21STomi Valkeinen 	0x7d,0x05,0x45,0x00,0x00,0xe8,0x00,0x02,
696f7018c21STomi Valkeinen 	0x0d,0x00,0x68,0xb0,0x0b,0x92,0x8f,0x40,
697f7018c21STomi Valkeinen 	0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x63,
698f7018c21STomi Valkeinen 	0x00,0x40,0x3e,0x00,0xe1,0x02,0x28,0x00
699f7018c21STomi Valkeinen };
700f7018c21STomi Valkeinen 
701f7018c21STomi Valkeinen static const unsigned char SiS_HiTVExtTiming[] = {
702f7018c21STomi Valkeinen 	0x32,0x65,0x2c,0x5f,0x08,0x31,0x3a,0x64,
703f7018c21STomi Valkeinen 	0x28,0x02,0x01,0x3d,0x06,0x3e,0x35,0x6d,
704f7018c21STomi Valkeinen 	0x06,0x14,0x3e,0x35,0x6d,0x00,0xc5,0x3f,
705f7018c21STomi Valkeinen 	0x64,0x90,0x33,0x8c,0x18,0x36,0x3e,0x13,
706f7018c21STomi Valkeinen 	0x2a,0xde,0x2a,0x44,0x40,0x2a,0x44,0x40,
707f7018c21STomi Valkeinen 	0x8e,0x8e,0x82,0x07,0x0b,0x92,0x0f,0x40,
708f7018c21STomi Valkeinen 	0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x3d,
709f7018c21STomi Valkeinen 	0x63,0x4f,0x27,0x00,0xfc,0xff,0x6a,0x00
710f7018c21STomi Valkeinen };
711f7018c21STomi Valkeinen 
712f7018c21STomi Valkeinen static const unsigned char SiS_HiTVSt1Timing[] = {
713f7018c21STomi Valkeinen 	0x32,0x65,0x2c,0x5f,0x08,0x31,0x3a,0x65,
714f7018c21STomi Valkeinen 	0x28,0x02,0x01,0x3d,0x06,0x3e,0x35,0x6d,
715f7018c21STomi Valkeinen 	0x06,0x14,0x3e,0x35,0x6d,0x00,0xc5,0x3f,
716f7018c21STomi Valkeinen 	0x65,0x90,0x7b,0xa8,0x03,0xf0,0x87,0x03,
717f7018c21STomi Valkeinen 	0x11,0x15,0x11,0xcf,0x10,0x11,0xcf,0x10,
718f7018c21STomi Valkeinen 	0x35,0x35,0x3b,0x69,0x1d,0x92,0x0f,0x40,
719f7018c21STomi Valkeinen 	0x60,0x80,0x14,0x90,0x8c,0x60,0x04,0x86,
720f7018c21STomi Valkeinen 	0xaf,0x5d,0x0e,0x00,0xfc,0xff,0x2d,0x00
721f7018c21STomi Valkeinen };
722f7018c21STomi Valkeinen 
723f7018c21STomi Valkeinen static const unsigned char SiS_HiTVSt2Timing[] = {
724f7018c21STomi Valkeinen 	0x32,0x65,0x2c,0x5f,0x08,0x31,0x3a,0x64,
725f7018c21STomi Valkeinen 	0x28,0x02,0x01,0x3d,0x06,0x3e,0x35,0x6d,
726f7018c21STomi Valkeinen 	0x06,0x14,0x3e,0x35,0x6d,0x00,0xc5,0x3f,
727f7018c21STomi Valkeinen 	0x64,0x90,0x33,0x8c,0x18,0x36,0x3e,0x13,
728f7018c21STomi Valkeinen 	0x2a,0xde,0x2a,0x44,0x40,0x2a,0x44,0x40,
729f7018c21STomi Valkeinen 	0x8e,0x8e,0x82,0x07,0x0b,0x92,0x0f,0x40,
730f7018c21STomi Valkeinen 	0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x3d,
731f7018c21STomi Valkeinen 	0x63,0x4f,0x27,0x00,0xfc,0xff,0x6a,0x00
732f7018c21STomi Valkeinen };
733f7018c21STomi Valkeinen 
734f7018c21STomi Valkeinen #if 0
735f7018c21STomi Valkeinen static const unsigned char SiS_HiTVTextTiming[] = {
736f7018c21STomi Valkeinen 	0x32,0x65,0x2c,0x5f,0x08,0x31,0x3a,0x65,
737f7018c21STomi Valkeinen 	0x28,0x02,0x01,0x3d,0x06,0x3e,0x35,0x6d,
738f7018c21STomi Valkeinen 	0x06,0x14,0x3e,0x35,0x6d,0x00,0xc5,0x3f,
739f7018c21STomi Valkeinen 	0x65,0x90,0xe7,0xbc,0x03,0x0c,0x97,0x03,
740f7018c21STomi Valkeinen 	0x14,0x78,0x14,0x08,0x20,0x14,0x08,0x20,
741f7018c21STomi Valkeinen 	0xc8,0xc8,0x3b,0xd2,0x26,0x92,0x0f,0x40,
742f7018c21STomi Valkeinen         0x60,0x80,0x14,0x90,0x8c,0x60,0x04,0x96,
743f7018c21STomi Valkeinen 	0x72,0x5c,0x11,0x00,0xfc,0xff,0x32,0x00
744f7018c21STomi Valkeinen };
745f7018c21STomi Valkeinen #endif
746f7018c21STomi Valkeinen 
747f7018c21STomi Valkeinen static const unsigned char SiS_HiTVGroup3Data[] = {
748f7018c21STomi Valkeinen 	0x00,0x1a,0x22,0x63,0x62,0x22,0x08,0x5f,
749f7018c21STomi Valkeinen 	0x05,0x21,0xb2,0xb2,0x55,0x77,0x2a,0xa6,
750f7018c21STomi Valkeinen 	0x25,0x2f,0x47,0xfa,0xc8,0xff,0x8e,0x20,
751f7018c21STomi Valkeinen 	0x8c,0x6e,0x60,0x2e,0x58,0x48,0x72,0x44,
752f7018c21STomi Valkeinen 	0x56,0x36,0x4f,0x6e,0x3f,0x80,0x00,0x80,
753f7018c21STomi Valkeinen 	0x4f,0x7f,0x03,0xa8,0x7d,0x20,0x1a,0xa9,
754f7018c21STomi Valkeinen 	0x14,0x05,0x03,0x7e,0x64,0x31,0x14,0x75,
755f7018c21STomi Valkeinen 	0x18,0x05,0x18,0x05,0x4c,0xa8,0x01
756f7018c21STomi Valkeinen };
757f7018c21STomi Valkeinen 
758f7018c21STomi Valkeinen static const unsigned char SiS_HiTVGroup3Simu[] = {
759f7018c21STomi Valkeinen 	0x00,0x1a,0x22,0x63,0x62,0x22,0x08,0x95,
760f7018c21STomi Valkeinen 	0xdb,0x20,0xb8,0xb8,0x55,0x47,0x2a,0xa6,
761f7018c21STomi Valkeinen 	0x25,0x2f,0x47,0xfa,0xc8,0xff,0x8e,0x20,
762f7018c21STomi Valkeinen 	0x8c,0x6e,0x60,0x15,0x26,0xd3,0xe4,0x11,
763f7018c21STomi Valkeinen 	0x56,0x36,0x4f,0x6e,0x3f,0x80,0x00,0x80,
764f7018c21STomi Valkeinen 	0x67,0x36,0x01,0x47,0x0e,0x10,0xbe,0xb4,
765f7018c21STomi Valkeinen 	0x01,0x05,0x03,0x7e,0x65,0x31,0x14,0x75,
766f7018c21STomi Valkeinen 	0x18,0x05,0x18,0x05,0x4c,0xa8,0x01
767f7018c21STomi Valkeinen };
768f7018c21STomi Valkeinen 
769f7018c21STomi Valkeinen #if 0
770f7018c21STomi Valkeinen static const unsigned char SiS_HiTVGroup3Text[] = {
771f7018c21STomi Valkeinen 	0x00,0x1a,0x22,0x63,0x62,0x22,0x08,0xa7,
772f7018c21STomi Valkeinen 	0xf5,0x20,0xce,0xce,0x55,0x47,0x2a,0xa6,
773f7018c21STomi Valkeinen 	0x25,0x2f,0x47,0xfa,0xc8,0xff,0x8e,0x20,
774f7018c21STomi Valkeinen 	0x8c,0x6e,0x60,0x18,0x2c,0x0c,0x20,0x22,
775f7018c21STomi Valkeinen 	0x56,0x36,0x4f,0x6e,0x3f,0x80,0x00,0x80,
776f7018c21STomi Valkeinen 	0x93,0x3c,0x01,0x50,0x2f,0x10,0xf4,0xca,
777f7018c21STomi Valkeinen 	0x01,0x05,0x03,0x7e,0x65,0x31,0x14,0x75,
778f7018c21STomi Valkeinen 	0x18,0x05,0x18,0x05,0x4c,0xa8,0x01
779f7018c21STomi Valkeinen };
780f7018c21STomi Valkeinen #endif
781f7018c21STomi Valkeinen 
782f7018c21STomi Valkeinen static const struct SiS_TVData SiS_StPALData[] =
783f7018c21STomi Valkeinen {
784f7018c21STomi Valkeinen  {    1,   1, 864, 525,1270, 400, 100, 0, 760,    0,0xf4,0xff,0x1c,0x22},
785f7018c21STomi Valkeinen  {    1,   1, 864, 525,1270, 350, 100, 0, 760,    0,0xf4,0xff,0x1c,0x22},
786f7018c21STomi Valkeinen  {    1,   1, 864, 525,1270, 400,   0, 0, 720,    0,0xf1,0x04,0x1f,0x18},
787f7018c21STomi Valkeinen  {    1,   1, 864, 525,1270, 350,   0, 0, 720,    0,0xf4,0x0b,0x1c,0x0a},
788f7018c21STomi Valkeinen  {    1,   1, 864, 525,1270, 480,  50, 0, 760,    0,0xf4,0xff,0x1c,0x22},
789f7018c21STomi Valkeinen  {    1,   1, 864, 525,1270, 600,  50, 0,   0,0x300,0xf4,0xff,0x1c,0x22}
790f7018c21STomi Valkeinen };
791f7018c21STomi Valkeinen 
792f7018c21STomi Valkeinen static const struct SiS_TVData SiS_ExtPALData[] =
793f7018c21STomi Valkeinen {
794f7018c21STomi Valkeinen  {   27,  10, 848, 448,1270, 530,  50, 0,  50,    0,0xf4,0xff,0x1c,0x22},  /* 640x400, 320x200 */
795f7018c21STomi Valkeinen  {  108,  35, 848, 398,1270, 530,  50, 0,  50,    0,0xf4,0xff,0x1c,0x22},
796f7018c21STomi Valkeinen  {   12,   5, 954, 448,1270, 530,  50, 0,  50,    0,0xf1,0x04,0x1f,0x18},
797f7018c21STomi Valkeinen  {    9,   4, 960, 463,1644, 438,  50, 0,  50,    0,0xf4,0x0b,0x1c,0x0a},
798f7018c21STomi Valkeinen  {    9,   4, 848, 528,1270, 530,   0, 0,  50,    0,0xf5,0xfb,0x1b,0x2a},  /* 640x480, 320x240 */
799f7018c21STomi Valkeinen  {   36,  25,1060, 648,1270, 530, 438, 0, 438,    0,0xeb,0x05,0x25,0x16},  /* 800x600, 400x300 */
800f7018c21STomi Valkeinen  {    3,   2,1080, 619,1270, 540, 438, 0, 438,    0,0xf3,0x00,0x1d,0x20},  /* 720x576 */
801f7018c21STomi Valkeinen  {    1,   1,1170, 821,1270, 520, 686, 0, 686,    0,0xF3,0x00,0x1D,0x20},  /* 1024x768 */
802f7018c21STomi Valkeinen  {    1,   1,1170, 821,1270, 520, 686, 0, 686,    0,0xF3,0x00,0x1D,0x20},  /* 1024x768 (for NTSC equ) */
803f7018c21STomi Valkeinen  {    9,   4, 848, 528,1270, 530,   0, 0,  50,    0,0xf5,0xfb,0x1b,0x2a}   /* 720x480 */
804f7018c21STomi Valkeinen };
805f7018c21STomi Valkeinen 
806f7018c21STomi Valkeinen static const struct SiS_TVData SiS_StNTSCData[] =
807f7018c21STomi Valkeinen {
808f7018c21STomi Valkeinen  {    1,   1, 858, 525,1270, 400,  50, 0, 760,    0,0xf1,0x04,0x1f,0x18},
809f7018c21STomi Valkeinen  {    1,   1, 858, 525,1270, 350,  50, 0, 640,    0,0xf1,0x04,0x1f,0x18},
810f7018c21STomi Valkeinen  {    1,   1, 858, 525,1270, 400,   0, 0, 720,    0,0xf1,0x04,0x1f,0x18},
811f7018c21STomi Valkeinen  {    1,   1, 858, 525,1270, 350,   0, 0, 720,    0,0xf4,0x0b,0x1c,0x0a},
812f7018c21STomi Valkeinen  {    1,   1, 858, 525,1270, 480,   0, 0, 760,    0,0xf1,0x04,0x1f,0x18}
813f7018c21STomi Valkeinen };
814f7018c21STomi Valkeinen 
815f7018c21STomi Valkeinen static const struct SiS_TVData SiS_ExtNTSCData[] =
816f7018c21STomi Valkeinen {
817f7018c21STomi Valkeinen  {  143,  65, 858, 443,1270, 440, 171, 0, 171,    0,0xf1,0x04,0x1f,0x18},    /* 640x400, 320x200 */
818f7018c21STomi Valkeinen  {   88,  35, 858, 393,1270, 440, 171, 0, 171,    0,0xf1,0x04,0x1f,0x18},
819f7018c21STomi Valkeinen  {  143,  70, 924, 443,1270, 440,  92, 0,  92,    0,0xf1,0x04,0x1f,0x18},
820f7018c21STomi Valkeinen  {  143,  70, 924, 393,1270, 440,  92, 0,  92,    0,0xf4,0x0b,0x1c,0x0a},
821f7018c21STomi Valkeinen  {  143,  76, 836, 523,1270, 440, 224, 0,   0,    0,0xf1,0x05,0x1f,0x16},    /* 640x480, 320x240 */
822f7018c21STomi Valkeinen  {  143, 120,1056, 643,1270, 440,   0, 1,   0,    0,0xf4,0x10,0x1c,0x00},    /* 800x600, 400x300  */
823f7018c21STomi Valkeinen  {  143,  76, 836, 523,1270, 440,   0, 1,   0,    0,0xee,0x0c,0x22,0x08},    /* 720x480 - BETTER (from 300 series) */
824f7018c21STomi Valkeinen  {    1,   1,1100, 811,1412, 440,   0, 1,   0,    0,0xee,0x0c,0x22,0x08},    /* 1024x768 (525i) CORRECTED */
825f7018c21STomi Valkeinen #if 0  /* flimmert und ist unten abgeschnitten (NTSCHT, NTSC clock) */
826f7018c21STomi Valkeinen  {   65,  64,1056, 791,1270, 480, 455, 0,   0,    0,0x00,0x00,0x00,0x00}     /* 1024x768 (525p) */
827f7018c21STomi Valkeinen #endif
828f7018c21STomi Valkeinen #if 0
829f7018c21STomi Valkeinen  {    1,   1,1100, 811,1412, 440,   0, 1,   0,    0,0x00,0x00,0x00,0x00}     /* 1024x768 (525p) */
830f7018c21STomi Valkeinen #endif
831f7018c21STomi Valkeinen #if 0
832f7018c21STomi Valkeinen  {    1,   1,1120, 821,1516, 420,   0, 1,   0,    0,0x00,0x00,0x00,0x00}     /* 1024x768 (525p) */
833f7018c21STomi Valkeinen #endif
834f7018c21STomi Valkeinen #if 0
835f7018c21STomi Valkeinen  {    1,   1, 938, 821,1516, 420,   0, 1,   0,    0,0x00,0x00,0x00,0x00}     /* 1024x768 (525p) */
836f7018c21STomi Valkeinen #endif
837f7018c21STomi Valkeinen #if 0 /* zoom hin, unten abgeschnitten (NTSC2HT, NTSC1024 clock) */
838f7018c21STomi Valkeinen  {    1,   1,1072, 791,1270, 480, 455, 0,   0,    0,0x00,0x00,0x00,0x00}     /* 1024x768 (525p) */
839f7018c21STomi Valkeinen #endif
840f7018c21STomi Valkeinen #if 1 /* zu weit links (squeezed) (NTSC2HT, NTSC1024 clock) */
841f7018c21STomi Valkeinen  {    1,   1,1100, 846,1270, 440, 455, 0,   0,    0,0x00,0x00,0x00,0x00}     /* 1024x768 (525p) */
842f7018c21STomi Valkeinen #endif
843f7018c21STomi Valkeinen #if 0 /* zu weit links, rechts abgeschnitten (NTSC2HT, NTSC1024 clock) */
844f7018c21STomi Valkeinen  {    1,   1,1100, 846,1412, 440, 455, 0,   0,    0,0x00,0x00,0x00,0x00}     /* 1024x768 (525p) */
845f7018c21STomi Valkeinen #endif
846f7018c21STomi Valkeinen };
847f7018c21STomi Valkeinen 
848f7018c21STomi Valkeinen static const struct SiS_TVData SiS_StHiTVData[] =  /* Slave + TVSimu */
849f7018c21STomi Valkeinen {
850f7018c21STomi Valkeinen  {    1,   1, 0x37c,0x233,0x2b2,0x320,    0, 0, 0, 0, 0, 0, 0, 0},
851f7018c21STomi Valkeinen  {    1,   1, 0x37c,0x233,0x2b2,0x2bc,    0, 0, 0, 0, 0, 0, 0, 0},
852f7018c21STomi Valkeinen  {    1,   1, 0x37c,0x233,0x2b2,0x320,    0, 0, 0, 0, 0, 0, 0, 0},
853f7018c21STomi Valkeinen  {    1,   1, 0x37c,0x233,0x2b2,0x2bc,    0, 0, 0, 0, 0, 0, 0, 0},
854f7018c21STomi Valkeinen  {    1,   1, 0x37c,0x233,0x2b2,0x3c0,    0, 0, 0, 0, 0, 0, 0, 0},
855f7018c21STomi Valkeinen  {    8,   5, 0x41a,0x2ab,0x670,0x3c0,0x150, 1, 0, 0, 0, 0, 0, 0}
856f7018c21STomi Valkeinen };
857f7018c21STomi Valkeinen 
858f7018c21STomi Valkeinen static const struct SiS_TVData SiS_St2HiTVData[] = /* Slave */
859f7018c21STomi Valkeinen {
860f7018c21STomi Valkeinen  {    3,   1, 0x348,0x1e3,0x670,0x3c0,0x032, 0, 0, 0, 0, 0, 0, 0},
861f7018c21STomi Valkeinen  {    1,   1, 0x37c,0x233,0x2b2,0x2bc, 	  0, 0, 0, 0, 0, 0, 0, 0},
862f7018c21STomi Valkeinen  {    3,   1, 0x348,0x1e3,0x670,0x3c0,0x032, 0, 0, 0, 0, 0, 0, 0},
863f7018c21STomi Valkeinen  {    1,   1, 0x37c,0x233,0x2b2,0x2bc,    0, 0, 0, 0, 0, 0, 0, 0},
864f7018c21STomi Valkeinen  {    5,   2, 0x348,0x233,0x670,0x3c0,0x08d, 1, 0, 0, 0, 0, 0, 0},
865f7018c21STomi Valkeinen  {    8,   5, 0x41a,0x2ab,0x670,0x3c0,0x17c, 1, 0, 0, 0, 0, 0, 0}
866f7018c21STomi Valkeinen };
867f7018c21STomi Valkeinen 
868f7018c21STomi Valkeinen static const struct SiS_TVData SiS_ExtHiTVData[] =
869f7018c21STomi Valkeinen { /* all ok */
870f7018c21STomi Valkeinen  {    6,   1, 0x348,0x233,0x660,0x3c0,    0, 0, 0, 0, 0, 0, 0, 0},
871f7018c21STomi Valkeinen  {    3,   1, 0x3c0,0x233,0x660,0x3c0,    0, 0, 0, 0, 0, 0, 0, 0},
872f7018c21STomi Valkeinen  {    6,   1, 0x348,0x233,0x660,0x3c0,    0, 0, 0, 0, 0, 0, 0, 0},
873f7018c21STomi Valkeinen  {    3,   1, 0x3c0,0x233,0x660,0x3c0,    0, 0, 0, 0, 0, 0, 0, 0},
874f7018c21STomi Valkeinen  {    5,   1, 0x348,0x233,0x670,0x3c0,0x166, 1, 0, 0, 0, 0, 0, 0},  /* 640x480   */
875f7018c21STomi Valkeinen  {   16,   5, 0x41a,0x2ab,0x670,0x3c0,0x143, 1, 0, 0, 0, 0, 0, 0},  /* 800x600   */
876f7018c21STomi Valkeinen  {   25,  12, 0x4ec,0x353,0x670,0x3c0,0x032, 0, 0, 0, 0, 0, 0, 0},  /* 1024x768  */
877f7018c21STomi Valkeinen  {    5,   4, 0x627,0x464,0x670,0x3c0,0x128, 0, 0, 0, 0, 0, 0, 0},  /* 1280x1024 */
878f7018c21STomi Valkeinen  {    4,   1, 0x41a,0x233,0x60c,0x3c0,0x143, 1, 0, 0, 0, 0, 0, 0},  /* 800x480   */
879f7018c21STomi Valkeinen  {    5,   2, 0x578,0x293,0x670,0x3c0,0x032, 0, 0, 0, 0, 0, 0, 0},  /* 1024x576  */
880f7018c21STomi Valkeinen  {    8,   5, 0x6d6,0x323,0x670,0x3c0,0x128, 0, 0, 0, 0, 0, 0, 0},  /* 1280x720  */
881f7018c21STomi Valkeinen  {    8,   3, 0x4ec,0x353,0x670,0x3c0,0x032, 0, 0, 0, 0, 0, 0, 0},  /* 960x600  */
882f7018c21STomi Valkeinen };
883f7018c21STomi Valkeinen 
884f7018c21STomi Valkeinen static const struct SiS_TVData SiS_St525pData[] =
885f7018c21STomi Valkeinen {
886f7018c21STomi Valkeinen  {    1,   1, 0x6b4,0x20d,0x4f6,0x190,   50, 0, 0x2f8, 0, 0, 0, 0, 0},
887f7018c21STomi Valkeinen  {    1,   1, 0x6b4,0x20d,0x4f6,0x15e,   50, 0, 0x280, 0, 0, 0, 0, 0},
888f7018c21STomi Valkeinen  {    1,   1, 0x6b4,0x20d,0x4f6,0x190,   50, 0, 0x2f8, 0, 0, 0, 0, 0},
889f7018c21STomi Valkeinen  {    1,   1, 0x6b4,0x20d,0x4f6,0x15e,   50, 0, 0x280, 0, 0, 0, 0, 0},
890f7018c21STomi Valkeinen  {    1,   1, 0x6b4,0x20d,0x4f6,0x1e0,    0, 0, 0x2f8, 0, 0, 0, 0, 0}
891f7018c21STomi Valkeinen };
892f7018c21STomi Valkeinen 
893f7018c21STomi Valkeinen static const struct SiS_TVData SiS_St750pData[] =
894f7018c21STomi Valkeinen {
895f7018c21STomi Valkeinen  {    1,   1, 0x672,0x2ee,0x500,0x190,   50, 0, 0x2f8, 0, 0, 0, 0, 0},
896f7018c21STomi Valkeinen  {    1,   1, 0x672,0x2ee,0x500,0x15e,   50, 0, 0x280, 0, 0, 0, 0, 0},
897f7018c21STomi Valkeinen  {    1,   1, 0x672,0x2ee,0x500,0x190,    0, 0, 0x2d0, 0, 0, 0, 0, 0},
898f7018c21STomi Valkeinen  {    1,   1, 0x672,0x2ee,0x500,0x15e,    0, 0, 0x2d0, 0, 0, 0, 0, 0},
899f7018c21STomi Valkeinen  {    1,   1, 0x672,0x2ee,0x500,0x1e0,    0, 0, 0x2f8, 0, 0, 0, 0, 0}
900f7018c21STomi Valkeinen };
901f7018c21STomi Valkeinen 
902f7018c21STomi Valkeinen static const struct SiS_TVData SiS_Ext750pData[] =
903f7018c21STomi Valkeinen { /* all ok */
904f7018c21STomi Valkeinen  {    3,  1,  935, 470, 1130, 680,  50, 0, 0, 0, 0, 0, 0, 0},  /* 320x200/640x400 */
905f7018c21STomi Valkeinen  {   24,  7,  935, 420, 1130, 680,  50, 0, 0, 0, 0, 0, 0, 0},
906f7018c21STomi Valkeinen  {    3,  1,  935, 470, 1130, 680,  50, 0, 0, 0, 0, 0, 0, 0},
907f7018c21STomi Valkeinen  {   24,  7,  935, 420, 1130, 680,  50, 0, 0, 0, 0, 0, 0, 0},
908f7018c21STomi Valkeinen  {    2,  1, 1100, 590, 1130, 640,  50, 0, 0, 0, 0, 0, 0, 0},  /* 640x480 */
909f7018c21STomi Valkeinen  {    3,  2, 1210, 690, 1130, 660,  50, 0, 0, 0, 0, 0, 0, 0},  /* 800x600 OK */
910f7018c21STomi Valkeinen  {    2,  1, 1100, 562, 1130, 640,   0, 1, 0, 0, 0, 0, 0, 0},  /* 720x480 OK */
911f7018c21STomi Valkeinen  {    1,  1, 1375, 878, 1130, 640, 638, 0, 0, 0, 0, 0, 0, 0},  /* 1024x768 OK */
912f7018c21STomi Valkeinen  {    5,  3, 1100, 675, 1130, 640,   0, 1, 0, 0, 0, 0, 0, 0},  /* 720/768x576 OK */
913f7018c21STomi Valkeinen  {   25, 24, 1496, 755, 1120, 680,  50, 0, 0, 0, 0, 0, 0, 0}   /* 1280x720 OK */
914f7018c21STomi Valkeinen };
915f7018c21STomi Valkeinen 
916f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_LCD1280x720Data[] =  /* 2.03.00 */
917f7018c21STomi Valkeinen {
918f7018c21STomi Valkeinen 	{  44,   15,  864,  430, 1408,  806 }, /* 640x400 */
919f7018c21STomi Valkeinen 	{ 128,   35,  792,  385, 1408,  806 },
920f7018c21STomi Valkeinen 	{  44,   15,  864,  430, 1408,  806 },
921f7018c21STomi Valkeinen 	{ 128,   35,  792,  385, 1408,  806 },
922f7018c21STomi Valkeinen 	{  22,    9,  864,  516, 1408,  806 }, /* 640x480 */
923f7018c21STomi Valkeinen 	{   8,    5, 1056,  655, 1408,  806 }, /* 800x600 */
924f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }, /* 1024x768 */
925f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }, /* 1280x1024 */
926f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
927f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
928f7018c21STomi Valkeinen 	{   1,    1, 1408,  806, 1408,  806 }  /* 1280x720 */
929f7018c21STomi Valkeinen };
930f7018c21STomi Valkeinen 
931f7018c21STomi Valkeinen /* About 1280x768: For TMDS, Panel_1280x768 will only be set if
932f7018c21STomi Valkeinen  * the panel is a Fujitsu 7911 (VL-17WDX8) (with clock 81, 1688x802)
933f7018c21STomi Valkeinen  * Other TMDS panels of this resolution will be treated as custom.
934f7018c21STomi Valkeinen  * For LVDS, we know another type (_2).
935f7018c21STomi Valkeinen  * (Note: 1280x768_3 is now special for SiS301/NetVista
936f7018c21STomi Valkeinen  */
937f7018c21STomi Valkeinen 
938f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_StLCD1280x768_2Data[] = /* 2.03.00 */
939f7018c21STomi Valkeinen {
940f7018c21STomi Valkeinen 	{  64,   21,  858,  434, 1408,  806 }, /* 640x400 */
941f7018c21STomi Valkeinen 	{  32,    9,  858,  372, 1408,  806 },
942f7018c21STomi Valkeinen 	{  64,   21,  858,  434, 1408,  806 },
943f7018c21STomi Valkeinen 	{  32,    9,  858,  372, 1408,  806 },
944f7018c21STomi Valkeinen 	{ 143,   68, 1024,  527, 1408,  806 }, /* 640x480 */
945f7018c21STomi Valkeinen 	{  64,   51, 1364,  663, 1408,  806 }, /* 800x600 */
946f7018c21STomi Valkeinen 	{  88,   81, 1296,  806, 1408,  806 }, /* 1024x768 */
947f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
948f7018c21STomi Valkeinen 	{   1,    1, 1408,  806, 1408,  806 }, /* 1280x768 */
949f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
950f7018c21STomi Valkeinen 	{  16,   15, 1600,  750, 1600,  806 }  /* 1280x720 - from Ext */
951f7018c21STomi Valkeinen };
952f7018c21STomi Valkeinen 
953f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_ExtLCD1280x768_2Data[] = /* 2.03.00 */
954f7018c21STomi Valkeinen {
955f7018c21STomi Valkeinen 	{  16,    5,  960,  410, 1600,  806 }, /* 640x400 */
956f7018c21STomi Valkeinen 	{  64,   21, 1152,  364, 1600,  806 },
957f7018c21STomi Valkeinen 	{  16,    5,  960,  410, 1600,  806 },
958f7018c21STomi Valkeinen 	{  64,   21, 1152,  364, 1600,  806 },
959f7018c21STomi Valkeinen 	{  32,   13, 1040,  493, 1600,  806 }, /* 640x480 */
960f7018c21STomi Valkeinen 	{  16,    9, 1152,  618, 1600,  806 }, /* 800x600 */
961f7018c21STomi Valkeinen 	{  25,   21, 1344,  796, 1600,  806 }, /* 1024x768 */
962f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
963f7018c21STomi Valkeinen 	{   1,    1, 1600,  806, 1600,  806 }, /* 1280x768 */
964f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
965f7018c21STomi Valkeinen 	{  16,   15, 1600,  750, 1600,  806 }  /* 1280x720 */
966f7018c21STomi Valkeinen };
967f7018c21STomi Valkeinen 
968f7018c21STomi Valkeinen #if 0  /* Not used; _3 now reserved for NetVista (SiS301) */
969f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_LCD1280x768_3Data[] =
970f7018c21STomi Valkeinen {
971f7018c21STomi Valkeinen 	{  64,   25, 1056,  422, 1664,  798 },			/* 640x400 */
972f7018c21STomi Valkeinen 	{ 128,   39,  884,  396, 1408,  806 }, /* ,640 */
973f7018c21STomi Valkeinen 	{  64,   25, 1056,  422, 1664,  798 },			/* 640x400 */
974f7018c21STomi Valkeinen 	{ 128,   39,  884,  396, 1408,  806 }, /* ,640 */
975f7018c21STomi Valkeinen 	{  32,   15, 1056,  513, 1408,  806 }, /* ,664 */	/* 640x480 */
976f7018c21STomi Valkeinen 	{ 176,  125, 1280,  640, 1408,  806 }, /* ,768 */	/* 800x600 */
977f7018c21STomi Valkeinen 	{  64,   61, 1342,  806, 1408,  806 },			/* 1024x768 */
978f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
979f7018c21STomi Valkeinen 	{   1,    1, 1408,  806, 1408,  806 },			/* 1280x768 */
980f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
981f7018c21STomi Valkeinen 	{  16,   15, 1600,  750, 1600,  806 }  /* 1280x720  from above */
982f7018c21STomi Valkeinen };
983f7018c21STomi Valkeinen #endif
984f7018c21STomi Valkeinen 
985f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_LCD1280x800Data[] = /* 0.93.12a (TMDS) */
986f7018c21STomi Valkeinen {
987f7018c21STomi Valkeinen 	{ 128,   51, 1122,  412, 1408,  816 },  /* 640x400 */
988f7018c21STomi Valkeinen 	{ 128,   49, 1232,  361, 1408,  816 },
989f7018c21STomi Valkeinen 	{ 128,   51, 1122,  412, 1408,  816 },
990f7018c21STomi Valkeinen 	{ 128,   49, 1232,  361, 1408,  816 },
991f7018c21STomi Valkeinen 	{   8,    3,  880,  491, 1408,  816 },  /* 640x480 */
992f7018c21STomi Valkeinen 	{  11,    6, 1024,  612, 1408,  816 },  /* 800x600 */
993f7018c21STomi Valkeinen 	{  22,   21, 1400,  784, 1408,  816 },  /* 1024x768 */
994f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },  /* 1280x1024 */
995f7018c21STomi Valkeinen 	{   1,    1, 1408,  816, 1408,  816 },  /* 1280x800 */
996f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },  /* 1280x768 (patch index) */
997f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }   /* 1280x720 */
998f7018c21STomi Valkeinen };
999f7018c21STomi Valkeinen 
1000f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_LCD1280x800_2Data[] = /* 2.03.00 (LVDS) */
1001f7018c21STomi Valkeinen {
1002f7018c21STomi Valkeinen 	{  97,   42, 1344,  409, 1552,  812 }, /* 640x400 */
1003f7018c21STomi Valkeinen 	{  97,   35, 1280,  358, 1552,  812 },
1004f7018c21STomi Valkeinen 	{  97,   42, 1344,  409, 1552,  812 },
1005f7018c21STomi Valkeinen 	{  97,   35, 1280,  358, 1552,  812 },
1006f7018c21STomi Valkeinen 	{  97,   39, 1040,  488, 1552,  812 }, /* 640x480 */
1007f7018c21STomi Valkeinen 	{ 194,  105, 1120,  608, 1552,  812 }, /* 800x600 */
1008f7018c21STomi Valkeinen 	{  97,   84, 1400,  780, 1552,  812 }, /* 1024x768 */
1009f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }, /* 1280x1024 */
1010f7018c21STomi Valkeinen 	{   1,    1, 1552,  812, 1552,  812 }, /* 1280x800 */
1011f7018c21STomi Valkeinen 	{  97,   96, 1600,  780, 1552,  812 }, /* 1280x768 - patch index */
1012f7018c21STomi Valkeinen 	{  97,   90, 1600,  730, 1552,  812 }  /* 1280x720 */
1013f7018c21STomi Valkeinen };
1014f7018c21STomi Valkeinen 
1015f7018c21STomi Valkeinen #if 0
1016f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_LCD1280x800_3Data[] = /* 2.02.05a (LVDS); m250 */
1017f7018c21STomi Valkeinen {
1018f7018c21STomi Valkeinen 	{ 128,   51, 1122,  412, 1408,  816 }, /* 640x400 */
1019f7018c21STomi Valkeinen 	{ 128,   49, 1232,  361, 1408,  816 },
1020f7018c21STomi Valkeinen 	{ 128,   51, 1122,  412, 1408,  816 },
1021f7018c21STomi Valkeinen 	{ 128,   49, 1232,  361, 1408,  816 },
1022f7018c21STomi Valkeinen 	{   8,    3,  880,  491, 1408,  816 }, /* 640x480 */
1023f7018c21STomi Valkeinen 	{  11,    6, 1024,  612, 1408,  816 }, /* 800x600 */
1024f7018c21STomi Valkeinen 	{  22,   21, 1400,  784, 1408,  816 }, /* 1024x768 */
1025f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }, /* 1280x1024 */
1026f7018c21STomi Valkeinen 	{   1,    1, 1408,  816, 1408,  816 }, /* 1280x800 */
1027f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }, /* 1280x768 - patch index */
1028f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }  /* 1280x720 */
1029f7018c21STomi Valkeinen };
1030f7018c21STomi Valkeinen #endif
1031f7018c21STomi Valkeinen 
1032f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_LCD1280x854Data[] = /* 2.21.00CS (LVDS) */
1033f7018c21STomi Valkeinen {
1034f7018c21STomi Valkeinen 	{  56,   15,  936,  410, 1664,  861 },  /* 640x400 */
1035f7018c21STomi Valkeinen 	{  64,   25, 1586,  355, 1664,  861 },
1036f7018c21STomi Valkeinen 	{  56,   15,  936,  410, 1664,  861 },
1037f7018c21STomi Valkeinen 	{  64,   25, 1586,  355, 1664,  861 },
1038f7018c21STomi Valkeinen 	{  91,   45, 1464,  485, 1664,  861 },  /* 640x480 */
1039f7018c21STomi Valkeinen 	{ 182,   75,  976,  605, 1664,  861 },  /* 800x600 */
1040f7018c21STomi Valkeinen 	{  91,   66, 1342,  774, 1664,  861 },  /* 1024x768 */
1041f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },  /* 1280x1024 */
1042f7018c21STomi Valkeinen 	{  26,   25, 1708,  807, 1664,  861 },  /* 1280x800 */
1043f7018c21STomi Valkeinen 	{  13,   12, 1708,  774, 1664,  861 },  /* 1280x768 - patch index */
1044f7018c21STomi Valkeinen 	{  52,   45, 1708,  725, 1664,  861 },  /* 1280x720 */
1045f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1046f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1047f7018c21STomi Valkeinen 	{   1,    1, 1664,  861, 1664,  861 }   /* 1280x854 */
1048f7018c21STomi Valkeinen };
1049f7018c21STomi Valkeinen 
1050f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_LCD1280x960Data[] =
1051f7018c21STomi Valkeinen {
1052f7018c21STomi Valkeinen 	{    9,   2,  800,  500, 1800, 1000 },
1053f7018c21STomi Valkeinen 	{    9,   2,  800,  500, 1800, 1000 },
1054f7018c21STomi Valkeinen 	{    4,   1,  900,  500, 1800, 1000 },
1055f7018c21STomi Valkeinen 	{    4,   1,  900,  500, 1800, 1000 },
1056f7018c21STomi Valkeinen 	{    9,   2,  800,  500, 1800, 1000 },
1057f7018c21STomi Valkeinen 	{   30,  11, 1056,  625, 1800, 1000 },
1058f7018c21STomi Valkeinen 	{    5,   3, 1350,  800, 1800, 1000 },
1059f7018c21STomi Valkeinen 	{    1,   1, 1576, 1050, 1576, 1050 },
1060f7018c21STomi Valkeinen 	{    1,   1, 1800, 1000, 1800, 1000 },
1061f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1062f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1063f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1064f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1065f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }
1066f7018c21STomi Valkeinen };
1067f7018c21STomi Valkeinen 
1068f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_StLCD1400x1050Data[] =
1069f7018c21STomi Valkeinen {
1070f7018c21STomi Valkeinen 	{ 211,  100, 2100,  408, 1688, 1066 },
1071f7018c21STomi Valkeinen 	{ 211,   64, 1536,  358, 1688, 1066 },
1072f7018c21STomi Valkeinen 	{ 211,  100, 2100,  408, 1688, 1066 },
1073f7018c21STomi Valkeinen 	{ 211,   64, 1536,  358, 1688, 1066 },
1074f7018c21STomi Valkeinen 	{ 211,   48,  840,  488, 1688, 1066 },
1075f7018c21STomi Valkeinen 	{ 211,   72, 1008,  609, 1688, 1066 },
1076f7018c21STomi Valkeinen 	{ 211,  128, 1400,  776, 1688, 1066 },
1077f7018c21STomi Valkeinen 	{ 211,  205, 1680, 1041, 1688, 1066 },
1078f7018c21STomi Valkeinen 	{   1,    1, 1688, 1066, 1688, 1066 },
1079f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1080f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1081f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1082f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1083f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }
1084f7018c21STomi Valkeinen };
1085f7018c21STomi Valkeinen 
1086f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_ExtLCD1400x1050Data[] =
1087f7018c21STomi Valkeinen {
1088f7018c21STomi Valkeinen /*	{ 211,   60, 1260,  410, 1688, 1066 },    640x400 (6330) */
1089f7018c21STomi Valkeinen 	{ 211,  100, 2100,  408, 1688, 1066 }, /* 640x400 (6325) WORKS */
1090f7018c21STomi Valkeinen 	{ 211,   64, 1536,  358, 1688, 1066 },
1091f7018c21STomi Valkeinen 	{ 211,  100, 2100,  408, 1688, 1066 },
1092f7018c21STomi Valkeinen 	{ 211,   64, 1536,  358, 1688, 1066 },
1093f7018c21STomi Valkeinen /*	{ 211,   80, 1400,  490, 1688, 1066 },    640x480 (6330) */
1094f7018c21STomi Valkeinen 	{ 211,   48,  840,  488, 1688, 1066 }, /* 640x480 (6325) WORKS */
1095f7018c21STomi Valkeinen /*	{ 211,  117, 1638,  613, 1688, 1066 },    800x600 (6330) */
1096f7018c21STomi Valkeinen 	{ 211,   72, 1008,  609, 1688, 1066 }, /* 800x600 (6325) WORKS */
1097f7018c21STomi Valkeinen 	{ 211,  128, 1400,  776, 1688, 1066 }, /* 1024x768 */
1098f7018c21STomi Valkeinen 	{ 211,  205, 1680, 1041, 1688, 1066 }, /* 1280x1024 - not used (always unscaled) */
1099f7018c21STomi Valkeinen 	{   1,    1, 1688, 1066, 1688, 1066 }, /* 1400x1050 */
1100f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }, /* kludge */
1101f7018c21STomi Valkeinen 	{ 211,  120, 1400,  730, 1688, 1066 }, /* 1280x720 */
1102f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1103f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 },
1104f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }
1105f7018c21STomi Valkeinen };
1106f7018c21STomi Valkeinen 
1107f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_LCD1680x1050Data[] =
1108f7018c21STomi Valkeinen {
1109f7018c21STomi Valkeinen 	{  95,   24, 1260,  410, 1900, 1066 }, /*  0 640x400 */
1110f7018c21STomi Valkeinen 	{  10,    3, 1710,  362, 1900, 1066 },
1111f7018c21STomi Valkeinen 	{  95,   24, 1260,  410, 1900, 1066 },
1112f7018c21STomi Valkeinen 	{  10,    3, 1710,  362, 1900, 1066 },
1113f7018c21STomi Valkeinen 	{  95,   32, 1400,  490, 1900, 1066 }, /*  4 640x480 */
1114f7018c21STomi Valkeinen 	{  95,   42, 1470,  610, 1900, 1066 }, /*  5 800x600 */
1115f7018c21STomi Valkeinen 	{  95,   64, 1750,  784, 1900, 1066 }, /*  6 1024x768 */
1116f7018c21STomi Valkeinen 	{  95,   94, 1900, 1055, 1900, 1066 }, /*  7 1280x1024 */
1117f7018c21STomi Valkeinen 	{  41,   31, 1900,  806, 1900, 1066 }, /*  8 1280x768 */
1118f7018c21STomi Valkeinen 	{  95,   69, 1800,  817, 1900, 1066 }, /*  9 1280x800 patch index */
1119f7018c21STomi Valkeinen 	{  13,    9, 1900,  739, 1900, 1066 }, /* 10 1280x720 */
1120f7018c21STomi Valkeinen 	{  95,   94, 1880, 1066, 1900, 1066 }, /* 11 1400x1050 patch index */
1121f7018c21STomi Valkeinen 	{   1,    1, 1900, 1066, 1900, 1066 }, /* 12 1680x1050 */
1122f7018c21STomi Valkeinen 	{   0,    0,    0,    0,    0,    0 }
1123f7018c21STomi Valkeinen };
1124f7018c21STomi Valkeinen 
1125f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_StLCD1600x1200Data[] =
1126f7018c21STomi Valkeinen {
1127f7018c21STomi Valkeinen 	{27,  4, 800, 500, 2160, 1250 },
1128f7018c21STomi Valkeinen 	{27,  4, 800, 500, 2160, 1250 },
1129f7018c21STomi Valkeinen 	{ 6,  1, 900, 500, 2160, 1250 },
1130f7018c21STomi Valkeinen 	{ 6,  1, 900, 500, 2160, 1250 },
1131f7018c21STomi Valkeinen 	{27,  1, 800, 500, 2160, 1250 },
1132f7018c21STomi Valkeinen 	{ 4,  1,1080, 625, 2160, 1250 },
1133f7018c21STomi Valkeinen 	{ 5,  2,1350, 800, 2160, 1250 },
1134f7018c21STomi Valkeinen 	{135,88,1600,1100, 2160, 1250 },
1135f7018c21STomi Valkeinen 	{72, 49,1680,1092, 2160, 1250 },
1136f7018c21STomi Valkeinen 	{ 1,  1,2160,1250, 2160, 1250 },
1137f7018c21STomi Valkeinen 	{ 0,  0,   0,   0,    0,    0 },
1138f7018c21STomi Valkeinen 	{ 0,  0,   0,   0,    0,    0 },
1139f7018c21STomi Valkeinen 	{ 0,  0,   0,   0,    0,    0 },
1140f7018c21STomi Valkeinen 	{ 0,  0,   0,   0,    0,    0 }
1141f7018c21STomi Valkeinen };
1142f7018c21STomi Valkeinen 
1143f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_ExtLCD1600x1200Data[] =
1144f7018c21STomi Valkeinen {
1145f7018c21STomi Valkeinen 	{72,11, 990, 422, 2160, 1250 }, /* 640x400 (6330) WORKS */
1146f7018c21STomi Valkeinen /*	{27, 4, 800, 500, 2160, 1250 },    640x400 (6235) */
1147f7018c21STomi Valkeinen 	{27, 4, 800, 500, 2160, 1250 },
1148f7018c21STomi Valkeinen 	{ 6, 1, 900, 500, 2160, 1250 },
1149f7018c21STomi Valkeinen 	{ 6, 1, 900, 500, 2160, 1250 },
1150f7018c21STomi Valkeinen 	{45, 8, 960, 505, 2160, 1250 }, /* 640x480 (6330) WORKS */
1151f7018c21STomi Valkeinen /*	{27, 1, 800, 500, 2160, 1250 },    640x480 (6325) */
1152f7018c21STomi Valkeinen 	{ 4, 1,1080, 625, 2160, 1250 },
1153f7018c21STomi Valkeinen 	{ 5, 2,1350, 800, 2160, 1250 },
1154f7018c21STomi Valkeinen 	{27,16,1500,1064, 2160, 1250 }, /* 1280x1024 */
1155f7018c21STomi Valkeinen 	{72,49,1680,1092, 2160, 1250 }, /* 1400x1050 (6330, was not supported on 6325) */
1156f7018c21STomi Valkeinen 	{ 1, 1,2160,1250, 2160, 1250 },
1157f7018c21STomi Valkeinen 	{ 0, 0,   0,   0,    0,    0 },
1158f7018c21STomi Valkeinen 	{ 0, 0,   0,   0,    0,    0 },
1159f7018c21STomi Valkeinen 	{ 0, 0,   0,   0,    0,    0 },
1160f7018c21STomi Valkeinen 	{ 0, 0,   0,   0,    0,    0 }
1161f7018c21STomi Valkeinen };
1162f7018c21STomi Valkeinen 
1163f7018c21STomi Valkeinen static const struct SiS_LCDData SiS_NoScaleData[] =
1164f7018c21STomi Valkeinen {
1165f7018c21STomi Valkeinen 	{ 1, 1, 800, 449, 800, 449 },  /* 0x00: 320x200, 640x400 */
1166f7018c21STomi Valkeinen 	{ 1, 1, 800, 449, 800, 449 },
1167f7018c21STomi Valkeinen 	{ 1, 1, 900, 449, 900, 449 },
1168f7018c21STomi Valkeinen 	{ 1, 1, 900, 449, 900, 449 },
1169f7018c21STomi Valkeinen 	{ 1, 1, 800, 525, 800, 525 },  /* 0x04: 320x240, 640x480  */
1170f7018c21STomi Valkeinen 	{ 1, 1,1056, 628,1056, 628 },  /* 0x05: 400x300, 800x600  */
1171f7018c21STomi Valkeinen 	{ 1, 1,1344, 806,1344, 806 },  /* 0x06: 512x384, 1024x768 */
1172f7018c21STomi Valkeinen 	{ 1, 1,1688,1066,1688,1066 },  /* 0x07: 1280x1024 */
1173f7018c21STomi Valkeinen         { 1, 1,1688, 802,1688, 802 },  /* 0x08: 1280x768: Fujitsu, TMDS only */
1174f7018c21STomi Valkeinen         { 1, 1,2160,1250,2160,1250 },  /* 0x09: 1600x1200 */
1175f7018c21STomi Valkeinen 	{ 1, 1,1800,1000,1800,1000 },  /* 0x0a: 1280x960  */
1176f7018c21STomi Valkeinen 	{ 1, 1,1688,1066,1688,1066 },  /* 0x0b: 1400x1050 */
1177f7018c21STomi Valkeinen 	{ 1, 1,1650, 750,1650, 750 },  /* 0x0c: 1280x720 (TMDS, projector)  */
1178f7018c21STomi Valkeinen 	{ 1, 1,1552, 812,1552, 812 },  /* 0x0d: 1280x800_2 (LVDS) (was: 1408,816/ 1656,841) */
1179f7018c21STomi Valkeinen 	{ 1, 1,1900,1066,1900,1066 },  /* 0x0e: 1680x1050 (LVDS) */
1180f7018c21STomi Valkeinen 	{ 1, 1,1660, 806,1660, 806 },  /* 0x0f: 1280x768_2 (LVDS) */
1181f7018c21STomi Valkeinen 	{ 1, 1,1664, 798,1664, 798 },  /* 0x10: 1280x768_3 (NetVista SiS 301) - TODO */
1182f7018c21STomi Valkeinen 	{ 1, 1,1688, 802,1688, 802 },  /* 0x11: 1280x768   (TMDS Fujitsu) */
1183f7018c21STomi Valkeinen 	{ 1, 1,1408, 806,1408, 806 },  /* 0x12: 1280x720 (LVDS) */
1184f7018c21STomi Valkeinen 	{ 1, 1, 896, 497, 896, 497 },  /* 0x13: 720x480 */
1185f7018c21STomi Valkeinen 	{ 1, 1, 912, 597, 912, 597 },  /* 0x14: 720x576 */
1186f7018c21STomi Valkeinen 	{ 1, 1, 912, 597, 912, 597 },  /* 0x15: 768x576 */
1187f7018c21STomi Valkeinen 	{ 1, 1,1056, 497,1056, 497 },  /* 0x16: 848x480 */
1188f7018c21STomi Valkeinen 	{ 1, 1,1064, 497,1064, 497 },  /* 0x17: 856x480 */
1189f7018c21STomi Valkeinen 	{ 1, 1,1056, 497,1056, 497 },  /* 0x18: 800x480 */
1190f7018c21STomi Valkeinen 	{ 1, 1,1328, 739,1328, 739 },  /* 0x19: 1024x576 */
1191f7018c21STomi Valkeinen 	{ 1, 1,1680, 892,1680, 892 },  /* 0x1a: 1152x864 */
1192f7018c21STomi Valkeinen 	{ 1, 1,1808, 808,1808, 808 },  /* 0x1b: 1360x768 */
1193f7018c21STomi Valkeinen 	{ 1, 1,1104, 563,1104, 563 },  /* 0x1c: 960x540 */
1194f7018c21STomi Valkeinen 	{ 1, 1,1120, 618,1120, 618 },  /* 0x1d: 960x600 */
1195f7018c21STomi Valkeinen 	{ 1, 1,1408, 816,1408, 816 },  /* 0x1f: 1280x800 (TMDS special) */
1196f7018c21STomi Valkeinen 	{ 1, 1,1760,1235,1760,1235 },  /* 0x20: 1600x1200 for LCDA */
1197f7018c21STomi Valkeinen 	{ 1, 1,2048,1320,2048,1320 },  /* 0x21: 1600x1200 for non-SiS LVDS */
1198f7018c21STomi Valkeinen 	{ 1, 1,1664, 861,1664, 861 }   /* 0x22: 1280x854 */
1199f7018c21STomi Valkeinen };
1200f7018c21STomi Valkeinen 
1201f7018c21STomi Valkeinen /**************************************************************/
1202f7018c21STomi Valkeinen /* LVDS ----------------------------------------------------- */
1203f7018c21STomi Valkeinen /**************************************************************/
1204f7018c21STomi Valkeinen 
1205f7018c21STomi Valkeinen /* FSTN/DSTN 320x240, 2 variants */
1206f7018c21STomi Valkeinen static const struct SiS_LVDSData SiS_LVDS320x240Data_1[]=
1207f7018c21STomi Valkeinen {
1208f7018c21STomi Valkeinen 	{ 848, 433, 400, 525},
1209f7018c21STomi Valkeinen 	{ 848, 389, 400, 525},
1210f7018c21STomi Valkeinen 	{ 848, 433, 400, 525},
1211f7018c21STomi Valkeinen 	{ 848, 389, 400, 525},
1212f7018c21STomi Valkeinen 	{ 848, 518, 400, 525},
1213f7018c21STomi Valkeinen 	{1056, 628, 400, 525},
1214f7018c21STomi Valkeinen 	{ 400, 525, 400, 525}  /* xSTN */
1215f7018c21STomi Valkeinen };
1216f7018c21STomi Valkeinen 
1217f7018c21STomi Valkeinen static const struct SiS_LVDSData SiS_LVDS320x240Data_2[]=
1218f7018c21STomi Valkeinen {
1219f7018c21STomi Valkeinen 	{ 800, 445, 800, 525},
1220f7018c21STomi Valkeinen 	{ 800, 395, 800, 525},
1221f7018c21STomi Valkeinen 	{ 800, 445, 800, 525},
1222f7018c21STomi Valkeinen 	{ 800, 395, 800, 525},
1223f7018c21STomi Valkeinen 	{ 800, 525, 800, 525},
1224f7018c21STomi Valkeinen 	{1056, 628,1056, 628},
1225f7018c21STomi Valkeinen 	{ 480, 525, 480, 525} /* xSTN */
1226f7018c21STomi Valkeinen };
1227f7018c21STomi Valkeinen 
1228f7018c21STomi Valkeinen static const struct SiS_LVDSData SiS_LVDS640x480Data_1[]=
1229f7018c21STomi Valkeinen {
1230f7018c21STomi Valkeinen 	{ 800, 445, 800, 525},   /* 800, 449, 800, 449 */
1231f7018c21STomi Valkeinen 	{ 800, 395, 800, 525},
1232f7018c21STomi Valkeinen 	{ 800, 445, 800, 525},
1233f7018c21STomi Valkeinen 	{ 800, 395, 800, 525},
1234f7018c21STomi Valkeinen 	{ 800, 525, 800, 525}
1235f7018c21STomi Valkeinen };
1236f7018c21STomi Valkeinen 
1237f7018c21STomi Valkeinen static const struct SiS_LVDSData SiS_LVDS800x600Data_1[]=
1238f7018c21STomi Valkeinen {
1239f7018c21STomi Valkeinen 	{ 848, 433,1060, 629},
1240f7018c21STomi Valkeinen 	{ 848, 389,1060, 629},
1241f7018c21STomi Valkeinen 	{ 848, 433,1060, 629},
1242f7018c21STomi Valkeinen 	{ 848, 389,1060, 629},
1243f7018c21STomi Valkeinen 	{ 848, 518,1060, 629},
1244f7018c21STomi Valkeinen 	{1056, 628,1056, 628}
1245f7018c21STomi Valkeinen };
1246f7018c21STomi Valkeinen 
1247f7018c21STomi Valkeinen static const struct SiS_LVDSData SiS_LVDS1024x600Data_1[] =
1248f7018c21STomi Valkeinen {
1249f7018c21STomi Valkeinen 	{ 840, 604,1344, 800},
1250f7018c21STomi Valkeinen 	{ 840, 560,1344, 800},
1251f7018c21STomi Valkeinen 	{ 840, 604,1344, 800},
1252f7018c21STomi Valkeinen 	{ 840, 560,1344, 800},
1253f7018c21STomi Valkeinen 	{ 840, 689,1344, 800},
1254f7018c21STomi Valkeinen 	{1050, 800,1344, 800},
1255f7018c21STomi Valkeinen 	{1344, 800,1344, 800}
1256f7018c21STomi Valkeinen };
1257f7018c21STomi Valkeinen 
1258f7018c21STomi Valkeinen static const struct SiS_LVDSData SiS_LVDS1024x768Data_1[]=
1259f7018c21STomi Valkeinen {
1260f7018c21STomi Valkeinen 	{ 840, 438,1344, 806},
1261f7018c21STomi Valkeinen 	{ 840, 409,1344, 806},
1262f7018c21STomi Valkeinen 	{ 840, 438,1344, 806},
1263f7018c21STomi Valkeinen 	{ 840, 409,1344, 806},
1264f7018c21STomi Valkeinen 	{ 840, 518,1344, 806},   /* 640x480 */
1265f7018c21STomi Valkeinen 	{1050, 638,1344, 806},   /* 800x600 */
1266f7018c21STomi Valkeinen 	{1344, 806,1344, 806},   /* 1024x768 */
1267f7018c21STomi Valkeinen };
1268f7018c21STomi Valkeinen 
1269f7018c21STomi Valkeinen static const struct SiS_LVDSData SiS_CHTVUNTSCData[]=
1270f7018c21STomi Valkeinen {
1271f7018c21STomi Valkeinen 	{ 840, 600, 840, 600},
1272f7018c21STomi Valkeinen 	{ 840, 600, 840, 600},
1273f7018c21STomi Valkeinen 	{ 840, 600, 840, 600},
1274f7018c21STomi Valkeinen 	{ 840, 600, 840, 600},
1275f7018c21STomi Valkeinen 	{ 784, 600, 784, 600},
1276f7018c21STomi Valkeinen 	{1064, 750,1064, 750},
1277f7018c21STomi Valkeinen         {1160, 945,1160, 945}
1278f7018c21STomi Valkeinen };
1279f7018c21STomi Valkeinen 
1280f7018c21STomi Valkeinen static const struct SiS_LVDSData SiS_CHTVONTSCData[]=
1281f7018c21STomi Valkeinen {
1282f7018c21STomi Valkeinen 	{ 840, 525, 840, 525},
1283f7018c21STomi Valkeinen 	{ 840, 525, 840, 525},
1284f7018c21STomi Valkeinen 	{ 840, 525, 840, 525},
1285f7018c21STomi Valkeinen 	{ 840, 525, 840, 525},
1286f7018c21STomi Valkeinen 	{ 784, 525, 784, 525},
1287f7018c21STomi Valkeinen 	{1040, 700,1040, 700},
1288f7018c21STomi Valkeinen         {1160, 840,1160, 840}
1289f7018c21STomi Valkeinen };
1290f7018c21STomi Valkeinen 
1291f7018c21STomi Valkeinen /* CRT1 CRTC data for slave modes */
1292f7018c21STomi Valkeinen 
1293f7018c21STomi Valkeinen static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_1[] =
1294f7018c21STomi Valkeinen {
1295f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0xaa,0x1f,
1296f7018c21STomi Valkeinen    0x90,0x85,0x8f,0xab,0x30,0x00,0x05,
1297f7018c21STomi Valkeinen    0x00 }},
1298f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f,
1299f7018c21STomi Valkeinen    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1300f7018c21STomi Valkeinen    0x00 }},
1301f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x54,0x9f,0xc4,0x1f,
1302f7018c21STomi Valkeinen    0x92,0x89,0x8f,0xb5,0x30,0x00,0x01,
1303f7018c21STomi Valkeinen    0x00 }},
1304f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f,
1305f7018c21STomi Valkeinen    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1306f7018c21STomi Valkeinen    0x00 }},
1307f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x04,0x3e,
1308f7018c21STomi Valkeinen    0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05,
1309f7018c21STomi Valkeinen    0x00 }},
1310f7018c21STomi Valkeinen  {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0,
1311f7018c21STomi Valkeinen    0x58,0x8c,0x57,0x73,0x20,0x00,0x06,
1312f7018c21STomi Valkeinen    0x01 }},
1313f7018c21STomi Valkeinen  {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e,
1314f7018c21STomi Valkeinen    0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00,
1315f7018c21STomi Valkeinen    0x00 }}
1316f7018c21STomi Valkeinen };
1317f7018c21STomi Valkeinen 
1318f7018c21STomi Valkeinen static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_2[] =
1319f7018c21STomi Valkeinen {
1320f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1321f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1322f7018c21STomi Valkeinen    0x00}},
1323f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1324f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1325f7018c21STomi Valkeinen    0x00}},
1326f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1327f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1328f7018c21STomi Valkeinen    0x00}},
1329f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1330f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1331f7018c21STomi Valkeinen    0x00}},
1332f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1333f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1334f7018c21STomi Valkeinen    0x00}},
1335f7018c21STomi Valkeinen  {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0,
1336f7018c21STomi Valkeinen    0x58,0x8c,0x57,0x73,0x20,0x00,0x06,
1337f7018c21STomi Valkeinen    0x01}},
1338f7018c21STomi Valkeinen #if 0
1339f7018c21STomi Valkeinen  {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e,
1340f7018c21STomi Valkeinen    0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00,
1341f7018c21STomi Valkeinen    0x00}}
1342f7018c21STomi Valkeinen #endif
1343f7018c21STomi Valkeinen  {{0x5f,0x4f,0x83,0x55,0x81,0x0b,0x3e,
1344f7018c21STomi Valkeinen    0xe9,0x8b,0xe8,0x0c,0x00,0x00,0x05,
1345f7018c21STomi Valkeinen    0x00}},
1346f7018c21STomi Valkeinen };
1347f7018c21STomi Valkeinen 
1348f7018c21STomi Valkeinen static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_2_H[] =
1349f7018c21STomi Valkeinen {
1350f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0xaa,0x1f,
1351f7018c21STomi Valkeinen    0x90,0x85,0x8f,0xab,0x30,0x00,0x05,
1352f7018c21STomi Valkeinen    0x00}},
1353f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f,
1354f7018c21STomi Valkeinen    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1355f7018c21STomi Valkeinen    0x00}},
1356f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x54,0x9f,0xc4,0x1f,
1357f7018c21STomi Valkeinen    0x92,0x89,0x8f,0xb5,0x30,0x00,0x01,
1358f7018c21STomi Valkeinen    0x00}},
1359f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f,
1360f7018c21STomi Valkeinen    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1361f7018c21STomi Valkeinen    0x00}},
1362f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x04,0x3e,
1363f7018c21STomi Valkeinen    0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05,
1364f7018c21STomi Valkeinen    0x00}},
1365f7018c21STomi Valkeinen  {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0,
1366f7018c21STomi Valkeinen    0x58,0x8c,0x57,0x73,0x20,0x00,0x06,
1367f7018c21STomi Valkeinen    0x01}},
1368f7018c21STomi Valkeinen  {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e,
1369f7018c21STomi Valkeinen    0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00,
1370f7018c21STomi Valkeinen    0x00}}
1371f7018c21STomi Valkeinen };
1372f7018c21STomi Valkeinen 
1373f7018c21STomi Valkeinen static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_3[] =
1374f7018c21STomi Valkeinen {
1375f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1376f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05,
1377f7018c21STomi Valkeinen    0x00}},
1378f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1379f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05,
1380f7018c21STomi Valkeinen    0x00}},
1381f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1382f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05,
1383f7018c21STomi Valkeinen    0x00}},
1384f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1385f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05,
1386f7018c21STomi Valkeinen    0x00}},
1387f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1388f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05,
1389f7018c21STomi Valkeinen    0x00}},
1390f7018c21STomi Valkeinen  {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0,
1391f7018c21STomi Valkeinen    0x58,0x8c,0x57,0x73,0x20,0x00,0x06,
1392f7018c21STomi Valkeinen    0x01}},
1393f7018c21STomi Valkeinen  {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e,
1394f7018c21STomi Valkeinen    0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00,
1395f7018c21STomi Valkeinen    0x00}}
1396f7018c21STomi Valkeinen };
1397f7018c21STomi Valkeinen 
1398f7018c21STomi Valkeinen static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_3_H[] =
1399f7018c21STomi Valkeinen {
1400f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0xaa,0x1f,
1401f7018c21STomi Valkeinen    0x90,0x85,0x8f,0xab,0x30,0x00,0x05,
1402f7018c21STomi Valkeinen    0x00}},
1403f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f,
1404f7018c21STomi Valkeinen    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1405f7018c21STomi Valkeinen    0x00}},
1406f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x54,0x9f,0xc4,0x1f,
1407f7018c21STomi Valkeinen    0x92,0x89,0x8f,0xb5,0x30,0x00,0x01,
1408f7018c21STomi Valkeinen    0x00}},
1409f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f,
1410f7018c21STomi Valkeinen    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1411f7018c21STomi Valkeinen    0x00}},
1412f7018c21STomi Valkeinen  {{0x65,0x4f,0x89,0x56,0x83,0x04,0x3e,
1413f7018c21STomi Valkeinen    0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05,
1414f7018c21STomi Valkeinen    0x00}},
1415f7018c21STomi Valkeinen  {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0,
1416f7018c21STomi Valkeinen    0x58,0x8c,0x57,0x73,0x20,0x00,0x06,
1417f7018c21STomi Valkeinen    0x01}},
1418f7018c21STomi Valkeinen  {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e,
1419f7018c21STomi Valkeinen    0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00,
1420f7018c21STomi Valkeinen    0x00}}
1421f7018c21STomi Valkeinen };
1422f7018c21STomi Valkeinen 
1423f7018c21STomi Valkeinen static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1640x480_1[] =
1424f7018c21STomi Valkeinen {
1425f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1426f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1427f7018c21STomi Valkeinen    0x00}},
1428f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1429f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1430f7018c21STomi Valkeinen    0x00}},
1431f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1432f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1433f7018c21STomi Valkeinen    0x00}},
1434f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1435f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1436f7018c21STomi Valkeinen    0x00}},
1437f7018c21STomi Valkeinen  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
1438f7018c21STomi Valkeinen    0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05,
1439f7018c21STomi Valkeinen    0x00}},
1440f7018c21STomi Valkeinen  {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0,
1441f7018c21STomi Valkeinen    0x58,0x8c,0x57,0x73,0x20,0x00,0x06,
1442f7018c21STomi Valkeinen    0x01}}
1443f7018c21STomi Valkeinen };
1444f7018c21STomi Valkeinen 
1445f7018c21STomi Valkeinen static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1640x480_1_H[] =
1446f7018c21STomi Valkeinen {
1447f7018c21STomi Valkeinen  {{0x2d,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
1448f7018c21STomi Valkeinen    0x9c,0x8e,0x96,0xb9,0x00,0x00,0x00,
1449f7018c21STomi Valkeinen    0x00}},
1450f7018c21STomi Valkeinen  {{0x2d,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
1451f7018c21STomi Valkeinen    0x83,0x85,0x63,0xba,0x00,0x00,0x00,
1452f7018c21STomi Valkeinen    0x00}},
1453f7018c21STomi Valkeinen  {{0x2d,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
1454f7018c21STomi Valkeinen    0x9c,0x8e,0x96,0xb9,0x00,0x00,0x00,
1455f7018c21STomi Valkeinen    0x00}},
1456f7018c21STomi Valkeinen  {{0x2d,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
1457f7018c21STomi Valkeinen    0x83,0x85,0x63,0xba,0x00,0x00,0x00,
1458f7018c21STomi Valkeinen    0x00}},
1459f7018c21STomi Valkeinen  {{0x2d,0x28,0x90,0x2c,0x80,0x0b,0x3e,
1460f7018c21STomi Valkeinen    0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00,
1461f7018c21STomi Valkeinen    0x00}}
1462f7018c21STomi Valkeinen };
1463f7018c21STomi Valkeinen 
1464f7018c21STomi Valkeinen #endif
1465f7018c21STomi Valkeinen 
1466