VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / video / sis / 310vtbl.h
1 /* $XFree86$ */
2 /* $XdotOrg$ */
3 /*
4  * Register settings for SiS 315/330 series
5  *
6  * Copyright (C) 2001-2004 by Thomas Winischhofer, Vienna, Austria
7  *
8  * If distributed as part of the Linux kernel, the following license terms
9  * apply:
10  *
11  * * This program is free software; you can redistribute it and/or modify
12  * * it under the terms of the GNU General Public License as published by
13  * * the Free Software Foundation; either version 2 of the named License,
14  * * or any later version.
15  * *
16  * * This program is distributed in the hope that it will be useful,
17  * * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * * GNU General Public License for more details.
20  * *
21  * * You should have received a copy of the GNU General Public License
22  * * along with this program; if not, write to the Free Software
23  * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
24  *
25  * Otherwise, the following license terms apply:
26  *
27  * * Redistribution and use in source and binary forms, with or without
28  * * modification, are permitted provided that the following conditions
29  * * are met:
30  * * 1) Redistributions of source code must retain the above copyright
31  * *    notice, this list of conditions and the following disclaimer.
32  * * 2) Redistributions in binary form must reproduce the above copyright
33  * *    notice, this list of conditions and the following disclaimer in the
34  * *    documentation and/or other materials provided with the distribution.
35  * * 3) The name of the author may not be used to endorse or promote products
36  * *    derived from this software without specific prior written permission.
37  * *
38  * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR
39  * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40  * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
41  * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
42  * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43  * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
44  * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
45  * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
46  * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
47  * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48  *
49  * Author:      Thomas Winischhofer <thomas@winischhofer.net>
50  *
51  */
52
53 static const SiS_StStruct SiS310_SModeIDTable[]=
54 {
55         {0x01,0x9208,0x01,0x00,0x00,0x00,0x01,0x00, 0x40},
56         {0x01,0x1210,0x14,0x01,0x01,0x00,0x01,0x00, 0x40},
57         {0x01,0x1010,0x17,0x02,0x02,0x00,0x01,0x01, 0x40},
58         {0x03,0x8208,0x03,0x00,0x00,0x00,0x01,0x02, 0x40},
59         {0x03,0x0210,0x16,0x01,0x01,0x00,0x01,0x02, 0x40},
60         {0x03,0x0010,0x18,0x02,0x02,0x00,0x01,0x03, 0x40},
61         {0x05,0x9209,0x05,0x00,0x00,0x00,0x00,0x04, 0x40},
62         {0x06,0x8209,0x06,0x00,0x00,0x00,0x00,0x05, 0x40},
63         {0x07,0x0000,0x07,0x03,0x03,0x00,0x01,0x03, 0x40},
64         {0x07,0x0000,0x19,0x02,0x02,0x00,0x01,0x03, 0x40},
65         {0x0d,0x920a,0x0d,0x00,0x00,0x00,0x00,0x04, 0x40},
66         {0x0e,0x820a,0x0e,0x00,0x00,0x00,0x00,0x05, 0x40},
67         {0x0f,0x0202,0x11,0x01,0x01,0x00,0x00,0x05, 0x40},
68         {0x10,0x0212,0x12,0x01,0x01,0x00,0x00,0x05, 0x40},
69         {0x11,0x0212,0x1a,0x04,0x04,0x00,0x00,0x05, 0x40},
70         {0x12,0x0212,0x1b,0x04,0x04,0x00,0x00,0x05, 0x40},
71         {0x13,0x021b,0x1c,0x00,0x00,0x00,0x00,0x04, 0x40},
72         {0x12,0x0010,0x18,0x02,0x02,0x00,0x00,0x05, 0x40},
73         {0x12,0x0210,0x18,0x01,0x01,0x00,0x00,0x05, 0x40},
74         {0xff,0x0000,0x00,0x00,0x00,0x00,0x00,0x00, 0x40}
75 };
76
77 static const SiS_ExtStruct  SiS310_EModeIDTable[]=
78 {
79         {0x6a,0x2212,0x0102,SIS_RI_800x600,  0x00,0x00,0x07,0x06,0x00, 3}, /* 800x600x? */
80         {0x2e,0x0a1b,0x0101,SIS_RI_640x480,  0x00,0x00,0x05,0x05,0x08, 2}, /* 640x480x8 */
81         {0x2f,0x0a1b,0x0100,SIS_RI_640x400,  0x00,0x00,0x05,0x05,0x10, 0}, /* 640x400x8 */
82         {0x30,0x2a1b,0x0103,SIS_RI_800x600,  0x00,0x00,0x07,0x06,0x00, 3}, /* 800x600x8 */
83         {0x31,0x4a1b,0x0000,SIS_RI_720x480,  0x00,0x00,0x06,0x06,0x11,-1}, /* 720x480x8 */
84         {0x32,0x4a1b,0x0000,SIS_RI_720x576,  0x00,0x00,0x06,0x06,0x12,-1}, /* 720x576x8 */
85         {0x33,0x4a1d,0x0000,SIS_RI_720x480,  0x00,0x00,0x06,0x06,0x11,-1}, /* 720x480x16 */
86         {0x34,0x6a1d,0x0000,SIS_RI_720x576,  0x00,0x00,0x06,0x06,0x12,-1}, /* 720x576x16 */
87         {0x35,0x4a1f,0x0000,SIS_RI_720x480,  0x00,0x00,0x06,0x06,0x11,-1}, /* 720x480x32 */
88         {0x36,0x6a1f,0x0000,SIS_RI_720x576,  0x00,0x00,0x06,0x06,0x12,-1}, /* 720x576x32 */
89         {0x37,0x0212,0x0104,SIS_RI_1024x768, 0x00,0x00,0x08,0x07,0x13, 4}, /* 1024x768x? */
90         {0x38,0x0a1b,0x0105,SIS_RI_1024x768, 0x00,0x00,0x08,0x07,0x13, 4}, /* 1024x768x8 */
91         {0x3a,0x0e3b,0x0107,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a, 8}, /* 1280x1024x8 */
92         {0x3c,0x0e3b,0x0130,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,10}, /* 1600x1200x8 */
93         {0x3d,0x0e7d,0x0131,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,10}, /* 1600x1200x16 */
94         {0x40,0x9a1c,0x010d,SIS_RI_320x200,  0x00,0x00,0x04,0x04,0x25, 0}, /* 320x200x15 */
95         {0x41,0x9a1d,0x010e,SIS_RI_320x200,  0x00,0x00,0x04,0x04,0x25, 0}, /* 320x200x16 */
96         {0x43,0x0a1c,0x0110,SIS_RI_640x480,  0x00,0x00,0x05,0x05,0x08, 2},
97         {0x44,0x0a1d,0x0111,SIS_RI_640x480,  0x00,0x00,0x05,0x05,0x08, 2}, /* 640x480x16 */
98         {0x46,0x2a1c,0x0113,SIS_RI_800x600,  0x00,0x00,0x07,0x06,0x00, 3},
99         {0x47,0x2a1d,0x0114,SIS_RI_800x600,  0x00,0x00,0x07,0x06,0x00, 3}, /* 800x600x16 */
100         {0x49,0x0a3c,0x0116,SIS_RI_1024x768, 0x00,0x00,0x00,0x07,0x13, 4},
101         {0x4a,0x0a3d,0x0117,SIS_RI_1024x768, 0x00,0x00,0x08,0x07,0x13, 4}, /* 1024x768x16 */
102         {0x4c,0x0e7c,0x0119,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a, 8},
103         {0x4d,0x0e7d,0x011a,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a, 8}, /* 1280x1024x16 */
104         {0x50,0x9a1b,0x0132,SIS_RI_320x240,  0x00,0x00,0x04,0x04,0x26, 2}, /* 320x240x8  */
105         {0x51,0xba1b,0x0133,SIS_RI_400x300,  0x00,0x00,0x07,0x07,0x27, 3}, /* 400x300x8  */
106         {0x52,0xba1b,0x0134,SIS_RI_512x384,  0x00,0x00,0x00,0x00,0x28, 4}, /* 512x384x8  */
107         {0x56,0x9a1d,0x0135,SIS_RI_320x240,  0x00,0x00,0x04,0x04,0x26, 2}, /* 320x240x16 */
108         {0x57,0xba1d,0x0136,SIS_RI_400x300,  0x00,0x00,0x07,0x07,0x27, 3}, /* 400x300x16 */
109         {0x58,0xba1d,0x0137,SIS_RI_512x384,  0x00,0x00,0x00,0x00,0x28, 4}, /* 512x384x16 */
110         {0x59,0x9a1b,0x0138,SIS_RI_320x200,  0x00,0x00,0x04,0x04,0x25, 0}, /* 320x200x8  */
111         {0x5a,0x021b,0x0138,SIS_RI_320x240,  0x00,0x00,0x00,0x00,0x3f, 2}, /* 320x240x8  fstn */
112         {0x5b,0x0a1d,0x0135,SIS_RI_320x240,  0x00,0x00,0x00,0x00,0x3f, 2}, /* 320x240x16 fstn */
113         {0x5c,0xba1f,0x0000,SIS_RI_512x384,  0x00,0x00,0x00,0x00,0x28, 4}, /* 512x384x32 */
114         {0x5d,0x0a1d,0x0139,SIS_RI_640x400,  0x00,0x00,0x05,0x07,0x10, 0},
115         {0x5e,0x0a1f,0x0000,SIS_RI_640x400,  0x00,0x00,0x05,0x07,0x10, 0}, /* 640x400x32 */
116         {0x62,0x0a3f,0x013a,SIS_RI_640x480,  0x00,0x00,0x05,0x05,0x08, 2}, /* 640x480x32 */
117         {0x63,0x2a3f,0x013b,SIS_RI_800x600,  0x00,0x00,0x07,0x06,0x00, 3}, /* 800x600x32 */
118         {0x64,0x0a7f,0x013c,SIS_RI_1024x768, 0x00,0x00,0x08,0x07,0x13, 4}, /* 1024x768x32 */
119         {0x65,0x0eff,0x013d,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a, 8}, /* 1280x1024x32 */
120         {0x66,0x0eff,0x013e,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,10}, /* 1600x1200x32 */
121         {0x68,0x067b,0x013f,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x29,-1}, /* 1920x1440x8 */
122         {0x69,0x06fd,0x0140,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x29,-1}, /* 1920x1440x16 */
123         {0x6b,0x07ff,0x0141,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x29,-1}, /* 1920x1440x32 */
124         {0x6c,0x067b,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x2f,-1}, /* 2048x1536x8 */
125         {0x6d,0x06fd,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x2f,-1}, /* 2048x1536x16 */
126         {0x6e,0x07ff,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x2f,-1}, /* 2048x1536x32 */
127         {0x70,0x6a1b,0x0000,SIS_RI_800x480,  0x00,0x00,0x07,0x07,0x34,-1}, /* 800x480x8 */
128         {0x71,0x4a1b,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x37,-1}, /* 1024x576x8 */
129         {0x74,0x4a1d,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x37,-1}, /* 1024x576x16 */
130         {0x75,0x0a3d,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x3a, 5}, /* 1280x720x16 */
131         {0x76,0x6a1f,0x0000,SIS_RI_800x480,  0x00,0x00,0x07,0x07,0x34,-1}, /* 800x480x32 */
132         {0x77,0x4a1f,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x37,-1}, /* 1024x576x32 */
133         {0x78,0x0a3f,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x3a, 5}, /* 1280x720x32 */
134         {0x79,0x0a3b,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x3a, 5}, /* 1280x720x8 */
135         {0x7a,0x6a1d,0x0000,SIS_RI_800x480,  0x00,0x00,0x07,0x07,0x34,-1}, /* 800x480x16 */
136         {0x7c,0x0e3b,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x3d,-1}, /* 1280x960x8 */
137         {0x7d,0x0e7d,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x3d,-1}, /* 1280x960x16 */
138         {0x7e,0x0eff,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x3d,-1}, /* 1280x960x32 */
139         {0x23,0x0e3b,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x40, 6}, /* 1280x768x8 */
140         {0x24,0x0e7d,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x40, 6}, /* 1280x768x16 */
141         {0x25,0x0eff,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x40, 6}, /* 1280x768x32 */
142         {0x26,0x0e3b,0x0000,SIS_RI_1400x1050,0x00,0x00,0x00,0x00,0x41, 9}, /* 1400x1050x8 */
143         {0x27,0x0e7d,0x0000,SIS_RI_1400x1050,0x00,0x00,0x00,0x00,0x41, 9}, /* 1400x1050x16 */
144         {0x28,0x0eff,0x0000,SIS_RI_1400x1050,0x00,0x00,0x00,0x00,0x41, 9}, /* 1400x1050x32*/
145         {0x29,0x4e1b,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x43,-1}, /* 1152x864 */
146         {0x2a,0x4e3d,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x43,-1},
147         {0x2b,0x4e7f,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x43,-1},
148         {0x39,0x6a1b,0x0000,SIS_RI_848x480,  0x00,0x00,0x00,0x00,0x45,-1}, /* 848x480 */
149         {0x3b,0x6a3d,0x0000,SIS_RI_848x480,  0x00,0x00,0x00,0x00,0x45,-1},
150         {0x3e,0x6a7f,0x0000,SIS_RI_848x480,  0x00,0x00,0x00,0x00,0x45,-1},
151         {0x3f,0x6a1b,0x0000,SIS_RI_856x480,  0x00,0x00,0x00,0x00,0x47,-1}, /* 856x480 */
152         {0x42,0x6a3d,0x0000,SIS_RI_856x480,  0x00,0x00,0x00,0x00,0x47,-1},
153         {0x45,0x6a7f,0x0000,SIS_RI_856x480,  0x00,0x00,0x00,0x00,0x47,-1},
154         {0x48,0x6a3b,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x49,-1}, /* 1360x768 */
155         {0x4b,0x6a7d,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x49,-1},
156         {0x4e,0x6aff,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x49,-1},
157         {0x4f,0x9a1f,0x0000,SIS_RI_320x200,  0x00,0x00,0x04,0x04,0x25, 0}, /* 320x200x32 */
158         {0x53,0x9a1f,0x0000,SIS_RI_320x240,  0x00,0x00,0x04,0x04,0x26, 2}, /* 320x240x32 */
159         {0x54,0xba1f,0x0000,SIS_RI_400x300,  0x00,0x00,0x07,0x07,0x27, 3}, /* 400x300x32 */
160         {0x5f,0x6a1b,0x0000,SIS_RI_768x576,  0x00,0x00,0x06,0x06,0x4a,-1}, /* 768x576 */
161         {0x60,0x6a1d,0x0000,SIS_RI_768x576,  0x00,0x00,0x06,0x06,0x4a,-1},
162         {0x61,0x6a3f,0x0000,SIS_RI_768x576,  0x00,0x00,0x06,0x06,0x4a,-1},
163         {0x14,0x0e3b,0x0000,SIS_RI_1280x800, 0x00,0x00,0x00,0x00,0x4b, 7}, /* 1280x800 */
164         {0x15,0x0e7d,0x0000,SIS_RI_1280x800, 0x00,0x00,0x00,0x00,0x4b, 7},
165         {0x16,0x0eff,0x0000,SIS_RI_1280x800, 0x00,0x00,0x00,0x00,0x4b, 7},
166         {0x17,0x0e3b,0x0000,SIS_RI_1680x1050,0x00,0x00,0x00,0x00,0x4c, 9}, /* 1680x1050 */
167         {0x18,0x0e7d,0x0000,SIS_RI_1680x1050,0x00,0x00,0x00,0x00,0x4c, 9},
168         {0x19,0x0eff,0x0000,SIS_RI_1680x1050,0x00,0x00,0x00,0x00,0x4c, 9},
169         {0x2c,0x267b,0x0000,SIS_RI_1920x1080,0x00,0x00,0x00,0x00,0x4d,-1}, /* 1920x1080(i) */
170         {0x2d,0x26fd,0x0000,SIS_RI_1920x1080,0x00,0x00,0x00,0x00,0x4d,-1},
171         {0x73,0x27ff,0x0000,SIS_RI_1920x1080,0x00,0x00,0x00,0x00,0x4d,-1},
172         {0x1d,0x6a1b,0x0000,SIS_RI_960x540,  0x00,0x00,0x00,0x00,0x4e,-1}, /* 960x540 */
173         {0x1e,0x6a3d,0x0000,SIS_RI_960x540,  0x00,0x00,0x00,0x00,0x4e,-1},
174         {0x1f,0x6a7f,0x0000,SIS_RI_960x540,  0x00,0x00,0x00,0x00,0x4e,-1},
175         {0xff,0x0000,0x0000,0,               0x00,0x00,0x00,0x00,0x00,-1}
176 };
177
178 static const SiS_Ext2Struct SiS310_RefIndex[]=
179 {
180         {0x085f,0x0d,0x03,0x05,0x05,0x6a, 800, 600, 0x40}, /* 0x0 */
181         {0x0067,0x0e,0x04,0x05,0x05,0x6a, 800, 600, 0x40}, /* 0x1 */
182         {0x0067,0x0f,0x08,0x48,0x05,0x6a, 800, 600, 0x40}, /* 0x2 */
183         {0x0067,0x10,0x07,0x8b,0x05,0x6a, 800, 600, 0x40}, /* 0x3 */
184         {0x0047,0x11,0x0a,0x00,0x05,0x6a, 800, 600, 0x40}, /* 0x4 */
185         {0x0047,0x12,0x0d,0x00,0x05,0x6a, 800, 600, 0x40}, /* 0x5 */
186         {0x0047,0x13,0x13,0x00,0x05,0x6a, 800, 600, 0x20}, /* 0x6 */
187         {0x0107,0x14,0x1c,0x00,0x05,0x6a, 800, 600, 0x20}, /* 0x7 */
188         {0xc85f,0x05,0x00,0x04,0x04,0x2e, 640, 480, 0x40}, /* 0x8 */
189         {0xc067,0x06,0x02,0x04,0x04,0x2e, 640, 480, 0x40}, /* 0x9 */
190         {0xc067,0x07,0x02,0x47,0x04,0x2e, 640, 480, 0x40}, /* 0xa */
191         {0xc067,0x08,0x03,0x8a,0x04,0x2e, 640, 480, 0x40}, /* 0xb */
192         {0xc047,0x09,0x05,0x00,0x04,0x2e, 640, 480, 0x40}, /* 0xc */
193         {0xc047,0x0a,0x09,0x00,0x04,0x2e, 640, 480, 0x40}, /* 0xd */
194         {0xc047,0x0b,0x0e,0x00,0x04,0x2e, 640, 480, 0x40}, /* 0xe */
195         {0xc047,0x0c,0x15,0x00,0x04,0x2e, 640, 480, 0x40}, /* 0xf */
196         {0x487f,0x04,0x00,0x00,0x00,0x2f, 640, 400, 0x30}, /* 0x10 */
197         {0xc06f,0x3c,0x01,0x06,0x13,0x31, 720, 480, 0x30}, /* 0x11 */
198         {0x006f,0x3d,0x03,0x06,0x14,0x32, 720, 576, 0x30}, /* 0x12 */
199         {0x0087,0x15,0x06,0x00,0x06,0x37,1024, 768, 0x30}, /* 0x13 */
200         {0xc877,0x16,0x0b,0x06,0x06,0x37,1024, 768, 0x20}, /* 0x14 */
201         {0xc067,0x17,0x0f,0x49,0x06,0x37,1024, 768, 0x20}, /* 0x15 */
202         {0x0067,0x18,0x11,0x00,0x06,0x37,1024, 768, 0x20}, /* 0x16 */
203         {0x0047,0x19,0x16,0x8c,0x06,0x37,1024, 768, 0x20}, /* 0x17 */
204         {0x0107,0x1a,0x1b,0x00,0x06,0x37,1024, 768, 0x10}, /* 0x18 */
205         {0x0107,0x1b,0x1f,0x00,0x06,0x37,1024, 768, 0x10}, /* 0x19 */
206         {0x0087,0x1c,0x11,0x00,0x07,0x3a,1280,1024, 0x30}, /* 0x1a */
207         {0x0137,0x1d,0x19,0x07,0x07,0x3a,1280,1024, 0x00}, /* 0x1b */
208         {0x0107,0x1e,0x1e,0x00,0x07,0x3a,1280,1024, 0x00}, /* 0x1c */
209         {0x0207,0x1f,0x20,0x00,0x07,0x3a,1280,1024, 0x00}, /* 0x1d */
210         {0x0227,0x20,0x21,0x09,0x09,0x3c,1600,1200, 0x00}, /* 0x1e */
211         {0x0407,0x21,0x22,0x00,0x09,0x3c,1600,1200, 0x00}, /* 0x1f */
212         {0x0407,0x22,0x23,0x00,0x09,0x3c,1600,1200, 0x00}, /* 0x20 */
213         {0x0407,0x23,0x25,0x00,0x09,0x3c,1600,1200, 0x00}, /* 0x21 */
214         {0x0007,0x24,0x26,0x00,0x09,0x3c,1600,1200, 0x00}, /* 0x22 */
215         {0x0007,0x25,0x2c,0x00,0x09,0x3c,1600,1200, 0x00}, /* 0x23 */
216         {0x0007,0x26,0x34,0x00,0x09,0x3c,1600,1200, 0x00}, /* 0x24 */
217         {0x407f,0x00,0x00,0x00,0x00,0x40, 320, 200, 0x30}, /* 0x25 */
218         {0xc07f,0x01,0x00,0x04,0x04,0x50, 320, 240, 0x30}, /* 0x26 */
219         {0x007f,0x02,0x04,0x05,0x05,0x51, 400, 300, 0x30}, /* 0x27 */
220         {0xc077,0x03,0x0b,0x06,0x06,0x52, 512, 384, 0x30}, /* 0x28 */
221         {0x8007,0x27,0x27,0x00,0x00,0x68,1920,1440, 0x00}, /* 0x29 */
222         {0x4007,0x28,0x29,0x00,0x00,0x68,1920,1440, 0x00}, /* 0x2a */
223         {0x4007,0x29,0x2e,0x00,0x00,0x68,1920,1440, 0x00}, /* 0x2b */
224         {0x4007,0x2a,0x30,0x00,0x00,0x68,1920,1440, 0x00}, /* 0x2c */
225         {0x4007,0x2b,0x35,0x00,0x00,0x68,1920,1440, 0x00}, /* 0x2d */
226         {0x4005,0x2c,0x39,0x00,0x00,0x68,1920,1440, 0x00}, /* 0x2e */
227         {0x4007,0x2d,0x2b,0x00,0x00,0x6c,2048,1536, 0x00}, /* 0x2f */
228         {0x4007,0x2e,0x31,0x00,0x00,0x6c,2048,1536, 0x00}, /* 0x30 */
229         {0x4007,0x2f,0x33,0x00,0x00,0x6c,2048,1536, 0x00}, /* 0x31 */
230         {0x4007,0x30,0x37,0x00,0x00,0x6c,2048,1536, 0x00}, /* 0x32 */
231         {0x4005,0x31,0x38,0x00,0x00,0x6c,2048,1536, 0x00}, /* 0x33 */
232         {0x0077,0x32,0x40,0x08,0x18,0x70, 800, 480, 0x30}, /* 0x34 */
233         {0x0047,0x33,0x07,0x08,0x18,0x70, 800, 480, 0x30}, /* 0x35 */
234         {0x0047,0x34,0x0a,0x08,0x18,0x70, 800, 480, 0x30}, /* 0x36 */
235         {0x0077,0x35,0x0b,0x09,0x19,0x71,1024, 576, 0x30}, /* 0x37 */
236         {0x0047,0x36,0x11,0x09,0x19,0x71,1024, 576, 0x30}, /* 0x38 */
237         {0x0047,0x37,0x16,0x09,0x19,0x71,1024, 576, 0x30}, /* 0x39 */
238         {0x1137,0x38,0x19,0x0a,0x0c,0x75,1280, 720, 0x30}, /* 0x3a */
239         {0x1107,0x39,0x1e,0x0a,0x0c,0x75,1280, 720, 0x30}, /* 0x3b */
240         {0x1307,0x3a,0x20,0x0a,0x0c,0x75,1280, 720, 0x30}, /* 0x3c */
241         {0x0127,0x3b,0x19,0x08,0x0a,0x7c,1280, 960, 0x30}, /* 0x3d */
242         {0x0227,0x4c,0x59,0x08,0x0a,0x7c,1280, 960, 0x20}, /* 0x3e */
243         {0xc07f,0x4e,0x00,0x06,0x04,0x5a, 320, 240, 0x30}, /* 0x3f */    /* FSTN 320x240 */
244         {0x0077,0x42,0x5b,0x08,0x11,0x23,1280, 768, 0x30}, /* 0x40 */    /* 0x5b was 0x12 */
245         {0x0127,0x43,0x4d,0x08,0x0b,0x26,1400,1050, 0x30}, /* 0x41 */
246         {0x0207,0x4b,0x5a,0x08,0x0b,0x26,1400,1050, 0x30}, /* 0x42 1400x1050-75Hz */
247         {0x0127,0x44,0x19,0x00,0x1a,0x29,1152, 864, 0x30}, /* 0x43 1152x864-75Hz  */
248         {0x0127,0x4a,0x1e,0x00,0x1a,0x29,1152, 864, 0x30}, /* 0x44 1152x864-85Hz  */
249         {0x0087,0x45,0x57,0x00,0x16,0x39, 848, 480, 0x30}, /* 0x45 848x480-38Hzi  */
250         {0xc067,0x46,0x55,0x0b,0x16,0x39, 848, 480, 0x30}, /* 0x46 848x480-60Hz   */
251         {0x0087,0x47,0x57,0x00,0x17,0x3f, 856, 480, 0x30}, /* 0x47 856x480-38Hzi  */
252         {0xc067,0x48,0x57,0x00,0x17,0x3f, 856, 480, 0x30}, /* 0x48 856x480-60Hz   */
253         {0x0067,0x49,0x58,0x0c,0x1b,0x48,1360, 768, 0x30}, /* 0x49 1360x768-60Hz  */
254         {0x006f,0x4d,0x03,0x06,0x15,0x5f, 768, 576, 0x30}, /* 0x4a 768x576-56Hz   */
255         {0x0067,0x4f,0x5c,0x08,0x0d,0x14,1280, 800, 0x30}, /* 0x4b 1280x800-60Hz  */
256         {0x0067,0x50,0x5d,0x0c,0x0e,0x17,1680,1050, 0x30}, /* 0x4c 1680x1050-60Hz */
257         {0x0087,0x51,0x69,0x00,0x00,0x2c,1920,1080, 0x30}, /* 0x4d 1920x1080 60Hzi */
258         {0x0067,0x52,0x6a,0x00,0x1c,0x1d, 960, 540, 0x30}, /* 0x4e 960x540 60Hz */
259         {0xffff,0x00,0x00,0x00,0x00,0x00,   0,   0,    0}
260 };
261
262 static const SiS_CRT1TableStruct SiS310_CRT1Table[]=
263 {
264  {{0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,
265    0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x00,
266    0x00}}, /* 0x0 */
267  {{0x2d,0x27,0x28,0x90,0x2c,0x80,0x0b,0x3e,
268    0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x00,
269    0x00}}, /* 0x1 */
270  {{0x3d,0x31,0x31,0x81,0x37,0x1f,0x72,0xf0,
271    0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x05,
272    0x01}}, /* 0x2 */
273  {{0x4f,0x3f,0x3f,0x93,0x45,0x0d,0x24,0xf5,
274    0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x01,
275    0x01}}, /* 0x3 */
276  {{0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
277    0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x05,
278    0x00}}, /* 0x4 */
279 #if 0
280  {{0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e,
281    0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x05,
282    0x00}}, /* 0x5 */
283 #endif
284  {{0x5f,0x4f,0x4f,0x83,0x55,0x81,0x0b,0x3e,    /* 0x05 - corrected 640x480-60 */
285    0xe9,0x8b,0xdf,0xe8,0x0c,0x00,0x00,0x05,
286    0x00}},
287 #if 0   
288  {{0x63,0x4f,0x50,0x86,0x56,0x9b,0x06,0x3e,
289    0xe8,0x8b,0xdf,0xe7,0xff,0x10,0x00,0x01,
290    0x00}}, /* 0x6 */
291 #endif
292  {{0x63,0x4f,0x4f,0x87,0x56,0x9b,0x06,0x3e,    /* 0x06 - corrected 640x480-72 */
293    0xe8,0x8a,0xdf,0xe7,0x07,0x00,0x00,0x01,
294    0x00}},
295  {{0x64,0x4f,0x4f,0x88,0x55,0x9d,0xf2,0x1f,
296    0xe0,0x83,0xdf,0xdf,0xf3,0x10,0x00,0x01,
297    0x00}}, /* 0x7 */
298  {{0x63,0x4f,0x4f,0x87,0x5a,0x81,0xfb,0x1f,
299    0xe0,0x83,0xdf,0xdf,0xfc,0x10,0x00,0x05,
300    0x00}}, /* 0x8 */
301  {{0x65,0x4f,0x4f,0x89,0x58,0x80,0xfb,0x1f,
302    0xe0,0x83,0xdf,0xdf,0xfc,0x10,0x00,0x05,  /* Corrected VBE */
303    0x61}}, /* 0x9 */
304  {{0x65,0x4f,0x4f,0x89,0x58,0x80,0x01,0x3e,
305    0xe0,0x83,0xdf,0xdf,0x02,0x00,0x00,0x05,
306    0x61}}, /* 0xa */
307  {{0x67,0x4f,0x4f,0x8b,0x58,0x81,0x0d,0x3e,
308    0xe0,0x83,0xdf,0xdf,0x0e,0x00,0x00,0x05,  /* Corrected VBE */
309    0x61}}, /* 0xb */
310  {{0x65,0x4f,0x4f,0x89,0x57,0x9f,0xfb,0x1f,
311    0xe6,0x8a,0xdf,0xdf,0xfc,0x10,0x00,0x01,  /* Corrected VDE, VBE */
312    0x00}}, /* 0xc */
313  {{0x7b,0x63,0x63,0x9f,0x6a,0x93,0x6f,0xf0,
314    0x58,0x8a,0x57,0x57,0x70,0x20,0x00,0x05,
315    0x01}}, /* 0xd */
316  {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xf0,
317    0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x06,
318    0x01}}, /* 0xe */
319  {{0x7d,0x63,0x63,0x81,0x6e,0x1d,0x98,0xf0,
320    0x7c,0x82,0x57,0x57,0x99,0x00,0x00,0x06,
321    0x01}}, /* 0xf */
322  {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xf0,
323    0x58,0x8b,0x57,0x57,0x70,0x20,0x00,0x06,
324    0x01}}, /* 0x10 */
325  {{0x7e,0x63,0x63,0x82,0x6b,0x13,0x75,0xf0,
326    0x58,0x8b,0x57,0x57,0x76,0x20,0x00,0x06,
327    0x01}}, /* 0x11 */
328  {{0x81,0x63,0x63,0x85,0x6d,0x18,0x7a,0xf0,
329    0x58,0x8b,0x57,0x57,0x7b,0x20,0x00,0x06,
330    0x61}}, /* 0x12 */
331  {{0x83,0x63,0x63,0x87,0x6e,0x19,0x81,0xf0,
332    0x58,0x8b,0x57,0x57,0x82,0x20,0x00,0x06,
333    0x61}}, /* 0x13 */
334  {{0x85,0x63,0x63,0x89,0x6f,0x1a,0x91,0xf0,
335    0x58,0x8b,0x57,0x57,0x92,0x20,0x00,0x06,
336    0x61}}, /* 0x14 */
337  {{0x99,0x7f,0x7f,0x9d,0x84,0x1a,0x96,0x1f,
338    0x7f,0x83,0x7f,0x7f,0x97,0x10,0x00,0x02,
339    0x00}}, /* 0x15 */
340  {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf5,
341    0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02,
342    0x01}}, /* 0x16 */
343  {{0xa1,0x7f,0x7f,0x85,0x86,0x97,0x24,0xf5,
344    0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02,
345    0x01}}, /* 0x17 */
346  {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf5,
347    0x00,0x83,0xff,0xff,0x1f,0x10,0x00,0x02,
348    0x01}}, /* 0x18 */
349  {{0xa7,0x7f,0x7f,0x8b,0x89,0x95,0x26,0xf5,
350    0x00,0x83,0xff,0xff,0x27,0x10,0x00,0x02,
351    0x01}}, /* 0x19 */
352  {{0xa9,0x7f,0x7f,0x8d,0x8c,0x9a,0x2c,0xf5,
353    0x00,0x83,0xff,0xff,0x2d,0x14,0x00,0x02,
354    0x62}}, /* 0x1a */
355  {{0xab,0x7f,0x7f,0x8f,0x8d,0x9b,0x35,0xf5,
356    0x00,0x83,0xff,0xff,0x36,0x14,0x00,0x02,
357    0x62}}, /* 0x1b */
358  {{0xcf,0x9f,0x9f,0x93,0xb2,0x01,0x14,0xba,
359    0x00,0x83,0xff,0xff,0x15,0x00,0x00,0x03,
360    0x00}}, /* 0x1c */
361  {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0x5a,
362    0x00,0x83,0xff,0xff,0x29,0x09,0x00,0x07,
363    0x01}}, /* 0x1d */
364  {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0x5a,
365    0x00,0x83,0xff,0xff,0x29,0x09,0x00,0x07,
366    0x01}}, /* 0x1e */
367  {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0x5a,
368    0x00,0x83,0xff,0xff,0x2f,0x09,0x00,0x07,
369    0x01}}, /* 0x1f */
370  {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10,
371    0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04,
372    0x00}}, /* 0x20 */
373  {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10,
374    0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04,
375    0x00}}, /* 0x21 @ 4084 */
376  {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10,
377    0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04,
378    0x00}}, /* 0x22 */
379  {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10,
380    0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04,
381    0x00}}, /* 0x23 */
382  {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10,
383    0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04,
384    0x00}}, /* 0x24 */
385  {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10,
386    0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04,
387    0x00}}, /* 0x25 */
388  {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10,
389    0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04,
390    0x00}}, /* 0x26 */
391  {{0x40,0xef,0xef,0x84,0x03,0x1d,0xda,0x1f,
392    0xa0,0x83,0x9f,0x9f,0xdb,0x1f,0x41,0x01,
393    0x00}}, /* 0x27 */
394  {{0x43,0xef,0xef,0x87,0x06,0x00,0xd4,0x1f,
395    0xa0,0x83,0x9f,0x9f,0xd5,0x1f,0x41,0x05,
396    0x63}}, /* 0x28 */
397  {{0x45,0xef,0xef,0x89,0x07,0x01,0xd9,0x1f,
398    0xa0,0x83,0x9f,0x9f,0xda,0x1f,0x41,0x05,
399    0x63}}, /* 0x29 */
400  {{0x40,0xef,0xef,0x84,0x03,0x1d,0xda,0x1f,
401    0xa0,0x83,0x9f,0x9f,0xdb,0x1f,0x41,0x01,
402    0x00}}, /* 0x2a */
403  {{0x40,0xef,0xef,0x84,0x03,0x1d,0xda,0x1f,
404    0xa0,0x83,0x9f,0x9f,0xdb,0x1f,0x41,0x01,
405    0x00}}, /* 0x2b */
406  {{0x40,0xef,0xef,0x84,0x03,0x1d,0xda,0x1f,
407    0xa0,0x83,0x9f,0x9f,0xdb,0x1f,0x41,0x01,
408    0x00}}, /* 0x2c */
409  {{0x59,0xff,0xff,0x9d,0x17,0x13,0x33,0xba,
410    0x00,0x83,0xff,0xff,0x34,0x0f,0x41,0x05,
411    0x44}}, /* 0x2d */
412  {{0x5b,0xff,0xff,0x9f,0x18,0x14,0x38,0xba,
413    0x00,0x83,0xff,0xff,0x39,0x0f,0x41,0x05,
414    0x44}}, /* 0x2e */
415  {{0x5b,0xff,0xff,0x9f,0x18,0x14,0x3d,0xba,
416    0x00,0x83,0xff,0xff,0x3e,0x0f,0x41,0x05,
417    0x44}}, /* 0x2f */
418  {{0x5d,0xff,0xff,0x81,0x19,0x95,0x41,0xba,
419    0x00,0x84,0xff,0xff,0x42,0x0f,0x41,0x05,
420    0x44}}, /* 0x30 */
421  {{0x55,0xff,0xff,0x99,0x0d,0x0c,0x3e,0xba,
422    0x00,0x84,0xff,0xff,0x3f,0x0f,0x41,0x05,
423    0x00}}, /* 0x31 */
424  {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xba,
425    0x27,0x8b,0xdf,0xdf,0x73,0x00,0x00,0x06,
426    0x01}}, /* 0x32 */
427  {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xba,
428    0x26,0x89,0xdf,0xdf,0x6f,0x00,0x00,0x06,
429    0x01}}, /* 0x33 */
430  {{0x7f,0x63,0x63,0x82,0x6b,0x13,0x75,0xba,
431    0x29,0x8c,0xdf,0xdf,0x75,0x00,0x00,0x06,
432    0x01}}, /* 0x34 */
433  {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf1,
434    0xaf,0x85,0x3f,0x3f,0x25,0x30,0x00,0x02,
435    0x01}}, /* 0x35 */
436  {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf1,
437    0xad,0x81,0x3f,0x3f,0x1f,0x30,0x00,0x02,
438    0x01}}, /* 0x36 */
439  {{0xa7,0x7f,0x7f,0x88,0x89,0x95,0x26,0xf1,   /* 95 was 15 - illegal HBE! */
440    0xb1,0x85,0x3f,0x3f,0x27,0x30,0x00,0x02,
441    0x01}}, /* 0x37 */
442  {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0xc4,
443    0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07,
444    0x01}}, /* 0x38 */
445  {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0xd4,
446    0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07,
447    0x01}}, /* 0x39 */
448  {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0xd4,
449    0x7d,0x81,0xcf,0xcf,0x2f,0x21,0x00,0x07,
450    0x01}}, /* 0x3a */
451 #if 0   
452  {{0xdc,0x9f,0x9f,0x00,0xab,0x19,0xe6,0xef,     /* 1280x960 - invalid */
453    0xc0,0xc3,0xbf,0xbf,0xe7,0x10,0x00,0x07,
454    0x01}}, /* 0x3b */
455 #endif  
456  {{0xdc,0x9f,0x9f,0x80,0xaf,0x9d,0xe6,0xff,     /* 1280x960-60 - corrected */
457    0xc0,0x83,0xbf,0xbf,0xe7,0x10,0x00,0x07,
458    0x01}}, /* 0x3b */ 
459  {{0x6b,0x59,0x59,0x8f,0x5e,0x8c,0x0b,0x3e,
460    0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x05,
461    0x00}}, /* 0x3c */
462  {{0x7b,0x59,0x63,0x9f,0x6a,0x93,0x6f,0xf0,
463    0x58,0x8a,0x3f,0x57,0x70,0x20,0x00,0x05,
464    0x01}}, /* 0x3d */
465  {{0x86,0x6a,0x6a,0x8a,0x74,0x06,0x8c,0x15,
466    0x4f,0x83,0xef,0xef,0x8d,0x30,0x00,0x02,
467    0x00}}, /* 0x3e */
468  {{0x81,0x6a,0x6a,0x85,0x70,0x00,0x0f,0x3e,
469    0xeb,0x8e,0xdf,0xdf,0x10,0x00,0x00,0x02,
470    0x00}}, /* 0x3f */
471  {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x1e,0xf1,
472    0xae,0x85,0x57,0x57,0x1f,0x30,0x00,0x02,
473    0x01}},  /* 0x40 */
474  {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf5,
475    0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02,
476    0x01}},  /* 0x41 */
477  {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x20,0xf5,
478    0x03,0x88,0xff,0xff,0x21,0x10,0x00,0x07,
479    0x01}},  /* 0x42 */
480  {{0xe6,0xae,0xae,0x8a,0xbd,0x90,0x3d,0x10,
481    0x1a,0x8d,0x19,0x19,0x3e,0x2f,0x00,0x03,
482    0x00}},  /* 0x43 */
483  {{0xc3,0x8f,0x8f,0x87,0x9b,0x0b,0x82,0xef, /* 1152x864-75 */
484    0x60,0x83,0x5f,0x5f,0x83,0x10,0x00,0x07,
485    0x01}},  /* 0x44 */
486  {{0x86,0x69,0x69,0x8A,0x74,0x06,0x8C,0x15, /* 848x480-38i */
487    0x4F,0x83,0xEF,0xEF,0x8D,0x30,0x00,0x02,
488    0x00}},  /* 0x45 */
489  {{0x83,0x69,0x69,0x87,0x6f,0x1d,0x03,0x3E, /* 848x480-60 */
490    0xE5,0x8d,0xDF,0xe4,0x04,0x00,0x00,0x06,
491    0x00}},  /* 0x46 */
492  {{0x86,0x6A,0x6A,0x8A,0x74,0x06,0x8C,0x15, /* 856x480-38i */
493    0x4F,0x83,0xEF,0xEF,0x8D,0x30,0x00,0x02,
494    0x00}},  /* 0x47 */
495  {{0x81,0x6A,0x6A,0x85,0x70,0x00,0x0F,0x3E, /* 856x480-60 */
496    0xEB,0x8E,0xDF,0xDF,0x10,0x00,0x00,0x02,
497    0x00}},  /* 0x48 */
498  {{0xdd,0xa9,0xa9,0x81,0xb4,0x97,0x26,0xfd, /* 1360x768-60 */
499    0x01,0x8d,0xff,0x00,0x27,0x10,0x00,0x03,
500    0x01}},  /* 0x49 */
501  {{0xd9,0x8f,0x8f,0x9d,0xba,0x0a,0x8a,0xff, /* 1152x864-84  */
502    0x60,0x8b,0x5f,0x5f,0x8b,0x10,0x00,0x03,
503    0x01}},  /* 0x4a */
504  {{0xea,0xae,0xae,0x8e,0xba,0x82,0x40,0x10, /* 1400x1050-75  */
505    0x1b,0x87,0x19,0x1a,0x41,0x0f,0x00,0x03,
506    0x00}},  /* 0x4b */
507  {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0xf1,0xff, /* 1280x960-85 */
508    0xc0,0x83,0xbf,0xbf,0xf2,0x10,0x00,0x07,
509    0x01}},  /* 0x4c */
510  {{0x7b,0x5f,0x63,0x9f,0x6a,0x93,0x6f,0xf0, /* 768x576 */
511    0x58,0x8a,0x3f,0x57,0x70,0x20,0x00,0x05,
512    0x01}},  /* 0x4d */
513  {{0x2d,0x27,0x28,0x90,0x2c,0x80,0x0b,0x3e, /* FSTN 320x480, TEMP - possibly invalid */
514    0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x00,
515    0x00}},  /* 0x4e */
516  {{0xcd,0x9f,0x9f,0x91,0xab,0x1c,0x3a,0xff, /* 1280x800-60 */
517    0x20,0x83,0x1f,0x1f,0x3b,0x10,0x00,0x07,
518    0x21}},  /* 0x4f */
519  {{0x15,0xd1,0xd1,0x99,0xe2,0x19,0x3d,0x10, /* 1680x1050-60 */
520    0x1a,0x8d,0x19,0x19,0x3e,0x2f,0x01,0x0c,
521    0x20}},  /* 0x50 */
522  {{0x0e,0xef,0xef,0x92,0xfe,0x03,0x30,0xf0, /* 1920x1080-60i */
523    0x1e,0x83,0x1b,0x1c,0x31,0x00,0x01,0x00,
524    0x61}},  /* 0x51 */
525  {{0x85,0x77,0x77,0x89,0x7d,0x01,0x31,0xf0, /* 960x540-60 */
526    0x1e,0x84,0x1b,0x1c,0x32,0x00,0x00,0x02,
527    0x41}}   /* 0x52 */
528 };
529
530 static const SiS_MCLKDataStruct SiS310_MCLKData_0_315[] =
531 {
532         { 0x3b,0x22,0x01,143},
533         { 0x5c,0x23,0x01,166},
534         { 0x5c,0x23,0x01,166},
535         { 0x5c,0x23,0x01,166},
536         { 0x5c,0x23,0x01,166},
537         { 0x5c,0x23,0x01,166},
538         { 0x5c,0x23,0x01,166},
539         { 0x5c,0x23,0x01,166}
540 };
541
542 static const SiS_MCLKDataStruct SiS310_MCLKData_0_650[] =
543 {
544         { 0x5a,0x64,0x82, 66},
545         { 0xb3,0x45,0x82, 83},
546         { 0x37,0x61,0x82,100},
547         { 0x37,0x22,0x82,133},
548         { 0x37,0x61,0x82,100},
549         { 0x37,0x22,0x82,133},
550         { 0x37,0x22,0x82,133},
551         { 0x37,0x22,0x82,133}
552 };
553
554 static const SiS_MCLKDataStruct SiS310_MCLKData_0_330[] =
555 {
556         { 0x5c,0x23,0x01,166},
557         { 0x5c,0x23,0x01,166},
558         { 0x7c,0x08,0x01,200},
559         { 0x79,0x06,0x01,250},
560         { 0x7c,0x08,0x01,200},
561         { 0x7c,0x08,0x01,200},
562         { 0x7c,0x08,0x01,200},
563         { 0x79,0x06,0x01,250}
564 };
565
566 static const SiS_MCLKDataStruct SiS310_MCLKData_0_660[] =
567 {
568         { 0x5c,0x23,0x82,166},
569         { 0x5c,0x23,0x82,166},
570         { 0x37,0x21,0x82,200},
571         { 0x37,0x22,0x82,133},
572         { 0x29,0x21,0x82,150},
573         { 0x5c,0x23,0x82,166},
574         { 0x65,0x23,0x82,183},
575         { 0x37,0x21,0x82,200}
576 };
577
578 static const SiS_MCLKDataStruct SiS310_MCLKData_0_760[] =
579 {
580         { 0x37,0x22,0x82,133},
581         { 0x5c,0x23,0x82,166},
582         { 0x65,0x23,0x82,183},
583         { 0x7c,0x08,0x82,200},
584         { 0x29,0x21,0x82,150},
585         { 0x5c,0x23,0x82,166},
586         { 0x65,0x23,0x82,183},
587         { 0x37,0x21,0x82,200}
588 };
589
590 static const SiS_MCLKDataStruct SiS310_MCLKData_1[] = /* ECLK */
591 {
592         { 0x29,0x21,0x82,150},
593         { 0x5c,0x23,0x82,166},
594         { 0x65,0x23,0x82,183},
595         { 0x37,0x21,0x82,200},
596         { 0x37,0x22,0x82,133},
597         { 0x37,0x22,0x82,133},
598         { 0x37,0x22,0x82,133},
599         { 0x37,0x22,0x82,133}
600 };
601
602 static SiS_VCLKDataStruct SiS310_VCLKData[]=
603 {
604         { 0x1b,0xe1, 25}, /* 0x00 */
605         { 0x4e,0xe4, 28}, /* 0x01 */
606         { 0x57,0xe4, 31}, /* 0x02 */
607         { 0xc3,0xc8, 36}, /* 0x03 */
608         { 0x42,0xe2, 40}, /* 0x04 */
609         { 0xfe,0xcd, 43}, /* 0x05 */
610         { 0x5d,0xc4, 44}, /* 0x06 */
611         { 0x52,0xe2, 49}, /* 0x07 */
612         { 0x53,0xe2, 50}, /* 0x08 */
613         { 0x74,0x67, 52}, /* 0x09 */
614         { 0x6d,0x66, 56}, /* 0x0a */
615         { 0x5a,0x64, 65}, /* 0x0b */  /* was 6c c3 - WRONG */
616         { 0x46,0x44, 67}, /* 0x0c */
617         { 0xb1,0x46, 68}, /* 0x0d */
618         { 0xd3,0x4a, 72}, /* 0x0e */
619         { 0x29,0x61, 75}, /* 0x0f */
620         { 0x6e,0x46, 76}, /* 0x10 */
621         { 0x2b,0x61, 78}, /* 0x11 */
622         { 0x31,0x42, 79}, /* 0x12 */
623         { 0xab,0x44, 83}, /* 0x13 */
624         { 0x46,0x25, 84}, /* 0x14 */
625         { 0x78,0x29, 86}, /* 0x15 */
626         { 0x62,0x44, 94}, /* 0x16 */
627         { 0x2b,0x41,104}, /* 0x17 */
628         { 0x3a,0x23,105}, /* 0x18 */
629         { 0x70,0x44,108}, /* 0x19 */
630         { 0x3c,0x23,109}, /* 0x1a */
631         { 0x5e,0x43,113}, /* 0x1b */
632         { 0xbc,0x44,116}, /* 0x1c */
633         { 0xe0,0x46,132}, /* 0x1d */
634         { 0x54,0x42,135}, /* 0x1e */
635         { 0xea,0x2a,139}, /* 0x1f */
636         { 0x41,0x22,157}, /* 0x20 */
637         { 0x70,0x24,162}, /* 0x21 */
638         { 0x30,0x21,175}, /* 0x22 */
639         { 0x4e,0x22,189}, /* 0x23 */
640         { 0xde,0x26,194}, /* 0x24 */
641         { 0x62,0x06,202}, /* 0x25 */
642         { 0x3f,0x03,229}, /* 0x26 */
643         { 0xb8,0x06,234}, /* 0x27 */
644         { 0x34,0x02,253}, /* 0x28 */
645         { 0x58,0x04,255}, /* 0x29 */
646         { 0x24,0x01,265}, /* 0x2a */
647         { 0x9b,0x02,267}, /* 0x2b */
648         { 0x70,0x05,270}, /* 0x2c */
649         { 0x25,0x01,272}, /* 0x2d */
650         { 0x9c,0x02,277}, /* 0x2e */
651         { 0x27,0x01,286}, /* 0x2f */
652         { 0x3c,0x02,291}, /* 0x30 */
653         { 0xef,0x0a,292}, /* 0x31 */
654         { 0xf6,0x0a,310}, /* 0x32 */
655         { 0x95,0x01,315}, /* 0x33 */
656         { 0xf0,0x09,324}, /* 0x34 */
657         { 0xfe,0x0a,331}, /* 0x35 */
658         { 0xf3,0x09,332}, /* 0x36 */
659         { 0xea,0x08,340}, /* 0x37 */
660         { 0xe8,0x07,376}, /* 0x38 */
661         { 0xde,0x06,389}, /* 0x39 */
662         { 0x52,0x2a, 54}, /* 0x3a 301 TV */
663         { 0x52,0x6a, 27}, /* 0x3b 301 TV */
664         { 0x62,0x24, 70}, /* 0x3c 301 TV */
665         { 0x62,0x64, 70}, /* 0x3d 301 TV */
666         { 0xa8,0x4c, 30}, /* 0x3e 301 TV */
667         { 0x20,0x26, 33}, /* 0x3f 301 TV */
668         { 0x31,0xc2, 39}, /* 0x40 */
669         { 0x60,0x36, 30}, /* 0x41 Chrontel */
670         { 0x40,0x4a, 28}, /* 0x42 Chrontel */
671         { 0x9f,0x46, 44}, /* 0x43 Chrontel */
672         { 0x97,0x2c, 26}, /* 0x44 */
673         { 0x44,0xe4, 25}, /* 0x45 Chrontel */
674         { 0x7e,0x32, 47}, /* 0x46 Chrontel */
675         { 0x8a,0x24, 31}, /* 0x47 Chrontel */
676         { 0x97,0x2c, 26}, /* 0x48 Chrontel */
677         { 0xce,0x3c, 39}, /* 0x49 */
678         { 0x52,0x4a, 36}, /* 0x4a Chrontel */
679         { 0x34,0x61, 95}, /* 0x4b */
680         { 0x78,0x27,108}, /* 0x4c - was 102 */
681         { 0x66,0x43,123}, /* 0x4d Modes 0x26-0x28 (1400x1050) */
682         { 0x41,0x4e, 21}, /* 0x4e */
683         { 0xa1,0x4a, 29}, /* 0x4f Chrontel */
684         { 0x19,0x42, 42}, /* 0x50 */
685         { 0x54,0x46, 58}, /* 0x51 Chrontel */
686         { 0x25,0x42, 61}, /* 0x52 */
687         { 0x44,0x44, 66}, /* 0x53 Chrontel */
688         { 0x3a,0x62, 70}, /* 0x54 Chrontel */
689         { 0x62,0xc6, 34}, /* 0x55 848x480-60 */
690         { 0x6a,0xc6, 37}, /* 0x56 848x480-75 - TEMP */
691         { 0xbf,0xc8, 35}, /* 0x57 856x480-38i,60 */
692         { 0x30,0x23, 88}, /* 0x58 1360x768-62 (is 60Hz!) */
693         { 0x52,0x07,149}, /* 0x59 1280x960-85 */
694         { 0x56,0x07,156}, /* 0x5a 1400x1050-75 */
695         { 0x70,0x29, 81}, /* 0x5b 1280x768 LCD */
696         { 0x45,0x25, 83}, /* 0x5c 1280x800  */
697         { 0x70,0x0a,147}, /* 0x5d 1680x1050 */
698         { 0x70,0x24,162}, /* 0x5e 1600x1200 */
699         { 0x5a,0x64, 65}, /* 0x5f 1280x720 - temp */
700         { 0x63,0x46, 68}, /* 0x60 1280x768_2 */
701         { 0x31,0x42, 79}, /* 0x61 1280x768_3 - temp */
702         {    0,   0,  0}, /* 0x62 - custom (will be filled out at run-time) */
703         { 0x5a,0x64, 65}, /* 0x63 1280x720 (LCD LVDS) */
704         { 0x70,0x28, 90}, /* 0x64 1152x864@60 */
705         { 0x41,0xc4, 32}, /* 0x65 848x480@60 */
706         { 0x5c,0xc6, 32}, /* 0x66 856x480@60 */
707         { 0x76,0xe7, 27}, /* 0x67 720x480@60 */
708         { 0x5f,0xc6, 33}, /* 0x68 720/768x576@60 */
709         { 0x52,0x27, 75}, /* 0x69 1920x1080i 60Hz interlaced */
710         { 0x7c,0x6b, 38}  /* 0x6a 960x540@60 */
711 };
712
713 static SiS_VBVCLKDataStruct SiS310_VBVCLKData[]=
714 {
715         { 0x1b,0xe1, 25}, /* 0x00 */
716         { 0x4e,0xe4, 28}, /* 0x01 */
717         { 0x57,0xe4, 31}, /* 0x02 */
718         { 0xc3,0xc8, 36}, /* 0x03 */
719         { 0x42,0x47, 40}, /* 0x04 */
720         { 0xfe,0xcd, 43}, /* 0x05 */
721         { 0x5d,0xc4, 44}, /* 0x06 */
722         { 0x52,0x47, 49}, /* 0x07 */
723         { 0x53,0x47, 50}, /* 0x08 */
724         { 0x74,0x67, 52}, /* 0x09 */
725         { 0x6d,0x66, 56}, /* 0x0a */
726         { 0x35,0x62, 65}, /* 0x0b */  /* Was 0x5a,0x64 - 650/LVDS+301: 35,62  */
727         { 0x46,0x44, 67}, /* 0x0c */
728         { 0xb1,0x46, 68}, /* 0x0d */
729         { 0xd3,0x4a, 72}, /* 0x0e */
730         { 0x29,0x61, 75}, /* 0x0f */
731         { 0x6d,0x46, 75}, /* 0x10 */
732         { 0x41,0x43, 78}, /* 0x11 */
733         { 0x31,0x42, 79}, /* 0x12 */
734         { 0xab,0x44, 83}, /* 0x13 */
735         { 0x46,0x25, 84}, /* 0x14 */
736         { 0x78,0x29, 86}, /* 0x15 */
737         { 0x62,0x44, 94}, /* 0x16 */
738         { 0x2b,0x22,104}, /* 0x17 */
739         { 0x49,0x24,105}, /* 0x18 */
740         { 0xf8,0x2f,108}, /* 0x19 */  /* 1400x1050 LCD */
741         { 0x3c,0x23,109}, /* 0x1a */
742         { 0x5e,0x43,113}, /* 0x1b */
743         { 0xbc,0x44,116}, /* 0x1c */
744         { 0xe0,0x46,132}, /* 0x1d */
745 #if 0
746         { 0xd4,0x28,135}, /* 0x1e */
747         { 0xea,0x2a,139}, /* 0x1f */
748         { 0x41,0x22,157}, /* 0x20 */
749         { 0x70,0x24,162}, /* 0x21 */
750 #endif
751         { 0xe2,0x46,135}, /* 0x1e */  /* 1280x1024-75, better clock for VGA2 */
752         { 0xe5,0x46,139}, /* 0x1f */  /* 1024x768-120, better clock for VGA2 */
753         { 0x15,0x01,157}, /* 0x20 */  /* 1280x1024-85, better clock for VGA2 */
754         { 0x70,0x09,162}, /* 0x21 */  /* 1600x1200-60, better clock for VGA2 */
755         { 0x30,0x21,175}, /* 0x22 */
756         { 0x4e,0x22,189}, /* 0x23 */
757         { 0xde,0x26,194}, /* 0x24 */
758         { 0x70,0x07,202}, /* 0x25 */
759         { 0x3f,0x03,229}, /* 0x26 */
760         { 0xb8,0x06,234}, /* 0x27 */
761         { 0x34,0x02,253}, /* 0x28 */
762         { 0x58,0x04,255}, /* 0x29 */
763         { 0x24,0x01,265}, /* 0x2a */
764         { 0x9b,0x02,267}, /* 0x2b */
765         { 0x70,0x05,270}, /* 0x2c */
766         { 0x25,0x01,272}, /* 0x2d */
767         { 0x9c,0x02,277}, /* 0x2e */
768         { 0x27,0x01,286}, /* 0x2f */
769         { 0x3c,0x02,291}, /* 0x30 */
770         { 0xef,0x0a,292}, /* 0x31 */
771         { 0xf6,0x0a,310}, /* 0x32 */
772         { 0x95,0x01,315}, /* 0x33 */
773         { 0xf0,0x09,324}, /* 0x34 */
774         { 0xfe,0x0a,331}, /* 0x35 */
775         { 0xf3,0x09,332}, /* 0x36 */
776         { 0xea,0x08,340}, /* 0x37 */
777         { 0xe8,0x07,376}, /* 0x38 */
778         { 0xde,0x06,389}, /* 0x39 */
779         { 0x52,0x2a, 54}, /* 0x3a 301 TV - start */
780         { 0x52,0x6a, 27}, /* 0x3b 301 TV */
781         { 0x62,0x24, 70}, /* 0x3c 301 TV */
782         { 0x62,0x64, 70}, /* 0x3d 301 TV */
783         { 0xa8,0x4c, 30}, /* 0x3e 301 TV */
784         { 0x20,0x26, 33}, /* 0x3f 301 TV */
785         { 0x31,0xc2, 39}, /* 0x40 */
786         { 0x2e,0x48, 25}, /* 0x41 Replacement for LCD on 315 for index 0 */
787         { 0x24,0x46, 25}, /* 0x42 Replacement for LCD on 315 for modes 0x01, 0x03, 0x0f, 0x10, 0x12 */
788         { 0x26,0x64, 28}, /* 0x43 Replacement for LCD on 315 for index 1 */
789         { 0x37,0x64, 40}, /* 0x44 Replacement for LCD on 315 for index 4 */
790         { 0xa1,0x42,108}, /* 0x45 1280x960 LCD */
791         { 0x37,0x61,100}, /* 0x46 1280x960 LCD */
792         { 0x78,0x27,108}, /* 0x47 */
793         { 0x97,0x2c, 26}, /* 0x48 UNUSED */
794         { 0xce,0x3c, 39}, /* 0x49 UNUSED */
795         { 0x52,0x4a, 36}, /* 0x4a UNUSED */
796         { 0x34,0x61, 95}, /* 0x4b UNUSED */
797         { 0x78,0x27,108}, /* 0x4c UNUSED */
798         { 0x66,0x43,123}, /* 0x4d 1400x1050-60 */
799         { 0x41,0x4e, 21}, /* 0x4e UNUSED */
800         { 0xa1,0x4a, 29}, /* 0x4f UNUSED */
801         { 0x19,0x42, 42}, /* 0x50 UNUSED */
802         { 0x54,0x46, 58}, /* 0x51 UNUSED */
803         { 0x25,0x42, 61}, /* 0x52 UNUSED */
804         { 0x44,0x44, 66}, /* 0x53 UNUSED */
805         { 0x3a,0x62, 70}, /* 0x54 UNUSED */
806         { 0x62,0xc6, 34}, /* 0x55 848x480-60 */
807         { 0x6a,0xc6, 37}, /* 0x56 848x480-75 - TEMP, UNUSED */
808         { 0xbf,0xc8, 35}, /* 0x57 856x480-38i,60  */
809         { 0x30,0x23, 88}, /* 0x58 1360x768-62 (is 60Hz!) TEMP, UNUSED */
810         { 0x52,0x07,149}, /* 0x59 1280x960-85  */
811         { 0x56,0x07,156}, /* 0x5a 1400x1050-75 */
812         { 0x70,0x29, 81}, /* 0x5b 1280x768 LCD */
813         { 0x45,0x25, 83}, /* 0x5c 1280x800 LCD - (was 0x9c,0x62, 69 - wrong?) */
814         { 0xbe,0x44,121}, /* 0x5d 1680x1050 LCD */
815         { 0x70,0x24,162}, /* 0x5e 1600x1200 LCD */
816         { 0x52,0x27, 75}, /* 0x5f 1280x720 LCD TMDS + HDTV (correct) */
817         { 0x63,0x46, 68}, /* 0x60 1280x768_2 */
818         { 0x31,0x42, 79}, /* 0x61 1280x768_3 - temp */
819         {    0,   0,  0}, /* 0x62 - custom (will be filled out at run-time) */
820         { 0x5a,0x64, 65}, /* 0x63 1280x720 (LCD LVDS) */
821         { 0x70,0x28, 90}, /* 0x64 1152x864@60 */
822         { 0x41,0xc4, 32}, /* 0x65 848x480@60 */
823         { 0x5c,0xc6, 32}, /* 0x66 856x480@60 */
824         { 0x76,0xe7, 27}, /* 0x67 720x480@60 */
825         { 0x5f,0xc6, 33}, /* 0x68 720/768x576@60 */
826         { 0x52,0x27, 75}, /* 0x69 1920x1080i 60Hz interlaced (UNUSED) */
827         { 0x7c,0x6b, 38}  /* 0x6a 960x540@60 */
828 };
829
830 static const DRAM4Type SiS310_SR15[8] = {
831         {0x00,0x04,0x60,0x60},
832         {0x0f,0x0f,0x0f,0x0f},
833         {0xba,0xba,0xba,0xba},
834         {0xa9,0xa9,0xac,0xac},
835         {0xa0,0xa0,0xa0,0xa8},
836         {0x00,0x00,0x02,0x02},
837         {0x30,0x30,0x40,0x40},
838         {0x00,0xa5,0xfb,0xf6}
839 };
840
841 #ifndef LINUX_XF86
842
843 static UCHAR SiS310_SR07 = 0x18;
844
845 static const DRAM4Type SiS310_CR40[5] = {
846         {0x77,0x77,0x33,0x33},
847         {0x77,0x77,0x33,0x33},
848         {0x00,0x00,0x00,0x00},
849         {0x5b,0x5b,0x03,0x03},
850         {0x00,0x00,0xf0,0xf8}
851 };
852
853 static UCHAR SiS310_CR49[] = {0xaa,0x88};
854 static UCHAR SiS310_SR1F = 0x00;
855 static UCHAR SiS310_SR21 = 0xa5;
856 static UCHAR SiS310_SR22 = 0xfb;
857 static UCHAR SiS310_SR23 = 0xf6;
858 static UCHAR SiS310_SR24 = 0x0d;
859 static UCHAR SiS310_SR25[] = {0x33,0x3};
860 static UCHAR SiS310_SR31 = 0x00;
861 static UCHAR SiS310_SR32 = 0x11;
862 static UCHAR SiS310_SR33 = 0x00;
863 static UCHAR SiS310_CRT2Data_1_2  = 0x00;
864 static UCHAR SiS310_CRT2Data_4_D  = 0x00;
865 static UCHAR SiS310_CRT2Data_4_E  = 0x00;
866 static UCHAR SiS310_CRT2Data_4_10 = 0x80;
867 static const USHORT SiS310_RGBSenseData    = 0xd1;
868 static const USHORT SiS310_VideoSenseData  = 0xb9;
869 static const USHORT SiS310_YCSenseData     = 0xb3;
870 static const USHORT SiS310_RGBSenseData2   = 0x0190; 
871 static const USHORT SiS310_VideoSenseData2 = 0x0174;
872 static const USHORT SiS310_YCSenseData2    = 0x016b;
873 #endif
874
875 static const SiS_PanelDelayTblStruct SiS310_PanelDelayTbl[]=
876 {
877         {{0x10,0x40}},
878         {{0x10,0x40}},
879         {{0x10,0x40}},
880         {{0x10,0x40}},
881         {{0x10,0x40}},
882         {{0x10,0x40}},
883         {{0x10,0x40}},
884         {{0x10,0x40}},
885         {{0x10,0x40}},
886         {{0x10,0x40}},
887         {{0x10,0x40}},
888         {{0x10,0x40}},
889         {{0x10,0x40}},
890         {{0x10,0x40}},
891         {{0x10,0x40}},
892         {{0x10,0x40}}
893 };
894
895 static const SiS_PanelDelayTblStruct SiS310_PanelDelayTblLVDS[]=
896 {
897         {{0x28,0xc8}},
898         {{0x28,0xc8}},
899         {{0x28,0xc8}},
900         {{0x28,0xc8}},
901         {{0x28,0xc8}},
902         {{0x28,0xc8}},
903         {{0x28,0xc8}},
904         {{0x28,0xc8}},
905         {{0x28,0xc8}},
906         {{0x28,0xc8}},
907         {{0x28,0xc8}},
908         {{0x28,0xc8}},
909         {{0x28,0xc8}},
910         {{0x28,0xc8}},
911         {{0x28,0xc8}},
912         {{0x28,0xc8}}
913 };
914
915 /**************************************************************/
916 /* SIS VIDEO BRIDGE ----------------------------------------- */
917 /**************************************************************/
918
919 static const SiS_LCDDataStruct  SiS310_St2LCD1024x768Data[] =
920 {
921         {   62,  25, 800, 546,1344, 806},
922         {   32,  15, 930, 546,1344, 806},
923         {   62,  25, 800, 546,1344, 806},
924         {  104,  45, 945, 496,1344, 806},
925         {   62,  25, 800, 546,1344, 806},
926         {   31,  18,1008, 624,1344, 806},
927         {    1,   1,1344, 806,1344, 806}
928 };
929
930 static const SiS_LCDDataStruct  SiS310_ExtLCD1024x768Data[] =
931 {
932         {   42,  25,1536, 419,1344, 806},
933         {   48,  25,1536, 369,1344, 806},
934         {   42,  25,1536, 419,1344, 806},
935         {   48,  25,1536, 369,1344, 806},
936         {   12,   5, 896, 500,1344, 806},
937         {   42,  25,1024, 625,1344, 806},
938         {    1,   1,1344, 806,1344, 806}
939 };
940
941 static const SiS_LCDDataStruct  SiS310_St2LCD1280x1024Data[] =
942 {
943         {   22,   5, 800, 510,1650,1088},
944         {   22,   5, 800, 510,1650,1088},
945         {  176,  45, 900, 510,1650,1088},
946         {  176,  45, 900, 510,1650,1088},
947         {   22,   5, 800, 510,1650,1088},
948         {   13,   5,1024, 675,1560,1152},
949         {   16,   9,1266, 804,1688,1072},
950         {    1,   1,1688,1066,1688,1066}
951 };
952
953 static const SiS_LCDDataStruct  SiS310_ExtLCD1280x1024Data[] =
954 {
955         {  211,  60,1024, 501,1688,1066},
956         {  211,  60,1024, 508,1688,1066},
957         {  211,  60,1024, 501,1688,1066},
958         {  211,  60,1024, 508,1688,1066},
959         {  211,  60,1024, 500,1688,1066},
960         {  211,  75,1024, 625,1688,1066},
961         {  211, 120,1280, 798,1688,1066},
962         {    1,   1,1688,1066,1688,1066}
963 };
964
965 static const SiS_Part2PortTblStruct SiS310_CRT2Part2_1024x768_1[] =
966 {
967  {{0x25,0x12,0xc9,0xdc,0xb6,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
968  {{0x2c,0x12,0x9a,0xae,0x88,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
969  {{0x25,0x12,0xc9,0xdc,0xb6,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
970  {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
971  {{0x38,0x13,0x16,0x0c,0xe6,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
972  {{0x38,0x18,0x16,0x00,0x00,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
973  {{0x36,0x13,0x13,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}}
974 };
975
976 /* *** LCDA *** */
977
978 #if 0
979 static const SiS_LVDSDataStruct  SiS_LCDA1600x1200Data_1[]=
980 { /* Clevo, 651+301C */
981         {1200, 450, 2048,1250},
982         {1200, 400, 2048,1250},
983         {1280, 450, 2048,1250},
984         {1280, 400, 2048,1250},
985         {1200, 530, 2048,1250},
986         {1360, 650, 2048,1250},
987         {1584, 818, 2048,1250},
988         {1688,1066, 2048,1250},
989         {1688,1066, 2048,1250},
990 #if 0
991         {2048,1250, 2048,1250}   /* this should be correct */
992 #endif
993 #if 1
994         {2160,1250, 2048,1250}   /* ? */
995 #endif
996 };
997 #endif
998
999 /**************************************************************/
1000 /* LVDS, CHRONTEL ------------------------------------------- */
1001 /**************************************************************/
1002
1003 static const SiS_LVDSDataStruct  SiS310_CHTVUPALData[]=
1004 {
1005         {1008, 625,1008, 625},
1006         {1008, 625,1008, 625},
1007         {1008, 625,1008, 625},
1008         {1008, 625,1008, 625},
1009         { 840, 625, 840, 625},
1010         { 960, 750, 960, 750},
1011         {1400,1000,1400,1000}
1012 };
1013
1014 static const SiS_LVDSDataStruct  SiS310_CHTVOPALData[]=
1015 {
1016         {1008, 625,1008, 625},
1017         {1008, 625,1008, 625},
1018         {1008, 625,1008, 625},
1019         {1008, 625,1008, 625},
1020         { 840, 625, 840, 625},
1021         { 944, 625, 944, 625},
1022         {1400, 875,1400, 875}
1023 };
1024
1025 static const SiS_LVDSDataStruct  SiS310_CHTVUPALMData[]=
1026 {
1027         { 840, 600, 840, 600},
1028         { 840, 600, 840, 600},
1029         { 840, 600, 840, 600},
1030         { 840, 600, 840, 600},
1031         { 784, 600, 784, 600},
1032         {1064, 750,1064, 750},
1033         {1160, 945,1160, 945}
1034 };
1035
1036 static const SiS_LVDSDataStruct  SiS310_CHTVOPALMData[]=
1037 {
1038         { 840, 525, 840, 525},
1039         { 840, 525, 840, 525},
1040         { 840, 525, 840, 525},
1041         { 840, 525, 840, 525},
1042         { 784, 525, 784, 525},
1043         {1040, 700,1040, 700},
1044         {1160, 840,1160, 840}
1045 };
1046
1047 static const SiS_LVDSDataStruct  SiS310_CHTVUPALNData[]=
1048 {
1049         {1008, 625,1008, 625},
1050         {1008, 625,1008, 625},
1051         {1008, 625,1008, 625},
1052         {1008, 625,1008, 625},
1053         { 840, 625, 840, 625},
1054         { 960, 750, 960, 750},
1055         {1400,1000,1400,1000}
1056 };
1057
1058 static const SiS_LVDSDataStruct  SiS310_CHTVOPALNData[]=
1059 {
1060         {1008, 625,1008, 625},
1061         {1008, 625,1008, 625},
1062         {1008, 625,1008, 625},
1063         {1008, 625,1008, 625},
1064         { 840, 625, 840, 625},
1065         { 944, 625, 944, 625},
1066         {1400, 875,1400, 875}
1067 };
1068
1069 static const SiS_LVDSDataStruct  SiS310_CHTVSOPALData[]=   /* (super overscan - no effect on 7019) */
1070 {
1071         {1008, 625,1008, 625},
1072         {1008, 625,1008, 625},
1073         {1008, 625,1008, 625},
1074         {1008, 625,1008, 625},
1075         { 840, 625, 840, 625},
1076         { 944, 625, 944, 625},
1077         {1400, 875,1400, 875}
1078 };
1079
1080
1081 static const SiS_LVDSDesStruct  SiS310_PanelType00_1[]=  /* 800x600 */
1082 {
1083         { 0, 0},
1084         { 0, 0},
1085         { 0, 0},
1086         { 0, 0},
1087         { 0, 0},
1088         { 0, 0},
1089         { 0, 0},
1090         { 0, 0},
1091         { 0, 0}
1092 };
1093
1094 static const SiS_LVDSDesStruct  SiS310_PanelType01_1[]=  /* 1024x768 */
1095 {
1096         { 0, 0},
1097         { 0, 0},
1098         { 0, 0},
1099         { 0, 0},
1100         { 0, 0},
1101         { 0, 0},
1102         { 0, 805},
1103         { 0, 0},
1104         { 0, 0}
1105 };
1106
1107 static const SiS_LVDSDesStruct  SiS310_PanelType02_1[]=  /* 1280x1024 */
1108 {
1109         { 0, 0},
1110         { 0, 0},
1111         { 0, 0},
1112         { 0, 0},
1113         { 0, 0},
1114         { 0, 0},
1115         { 0, 0},
1116         { 0, 1065},
1117         { 0, 0},
1118         { 0, 0}
1119 };
1120
1121
1122 static const SiS_LVDSDesStruct  SiS310_PanelType03_1[]=
1123 {
1124         { 0, 0},
1125         { 0, 0},
1126         { 0, 0},
1127         { 0, 0},
1128         { 0, 0},
1129         { 0, 0},
1130         { 0, 0},
1131         { 0, 0},
1132         { 0, 0}
1133 };
1134
1135 static const SiS_LVDSDesStruct  SiS310_PanelType04_1[]=
1136 {
1137         {1343, 798},
1138         {1343, 794},
1139         {1343, 798},
1140         {1343, 794},
1141         {1343,   0},
1142         {1343,   0},
1143         { 0, 805},
1144         { 0, 794},
1145         { 0,   0}
1146 };
1147
1148 static const SiS_LVDSDesStruct  SiS310_PanelType05_1[]=
1149 {
1150         {1343, 798},
1151         {1343, 794},
1152         {1343, 798},
1153         {1343, 794},
1154         {1343,   0},
1155         {1343,   0},
1156         { 0, 805},
1157         { 0, 794},
1158         { 0,   0}
1159 };
1160
1161 static const SiS_LVDSDesStruct  SiS310_PanelType06_1[]=
1162 {
1163         {1343, 798},
1164         {1343, 794},
1165         {1343, 798},
1166         {1343, 794},
1167         {1343,   0},
1168         {1343,   0},
1169         { 0, 805},
1170         { 0, 794},
1171         { 0,   0}
1172 };
1173
1174 static const SiS_LVDSDesStruct  SiS310_PanelType07_1[]=
1175 {
1176         {1343, 798},
1177         {1343, 794},
1178         {1343, 798},
1179         {1343, 794},
1180         {1343,   0},
1181         {1343,   0},
1182         { 0, 805},
1183         { 0, 794},
1184         { 0,   0}
1185 };
1186
1187 static const SiS_LVDSDesStruct  SiS310_PanelType08_1[]=   /* 1400x1050 */
1188 {
1189         { 0, 0},
1190         { 0, 0},
1191         { 0, 0},
1192         { 0, 0},
1193         { 0, 0},
1194         { 0, 0},
1195         { 0, 0},
1196         { 0, 0},
1197         { 0, 0},
1198         { 0, 0},
1199         { 0, 0}
1200 };
1201
1202 static const SiS_LVDSDesStruct  SiS310_PanelType09_1[]=   /* 1280x768 */
1203 {
1204         { 0, 0},
1205         { 0, 0},
1206         { 0, 0},
1207         { 0, 0},
1208         { 0, 0},
1209         { 0, 0},
1210         { 0, 0},
1211         { 0, 0},
1212         { 0, 0},
1213         { 0, 0},
1214         { 0, 0}
1215 };
1216
1217 static const SiS_LVDSDesStruct  SiS310_PanelType0a_1[]=  /* 1600x1200 */
1218 {
1219         { 0, 0},
1220         { 0, 0},
1221         { 0, 0},
1222         { 0, 0},
1223         { 0, 0},
1224         { 0, 0},
1225         { 0, 0},
1226         { 0, 0},
1227         { 0, 0},
1228         { 0, 0},
1229         { 0, 0}
1230 };
1231
1232 static const SiS_LVDSDesStruct  SiS310_PanelType0b_1[]=  /* 640x480_2 */
1233 {
1234         { 0, 524},
1235         { 0, 524},
1236         { 0, 524},
1237         { 0, 524},
1238         { 0, 524},
1239         { 0, 524},
1240         { 8, 524},
1241         { 0, 524}
1242 };
1243
1244 static const SiS_LVDSDesStruct  SiS310_PanelType0c_1[]=  /* 640x480_3 */
1245 {
1246         { 0, 524},
1247         { 0, 524},
1248         { 0, 524},
1249         { 0, 524},
1250         { 0, 524},
1251         { 0, 524},
1252         { 8, 524},
1253         { 0, 524}
1254 };
1255
1256 static const SiS_LVDSDesStruct  SiS310_PanelType0d_1[]=
1257 {
1258         {1343, 798},
1259         {1343, 794},
1260         {1343, 798},
1261         {1343, 794},
1262         {1343,   0},
1263         {1343,   0},
1264         { 0, 805},
1265         { 0, 794},
1266         { 0,   0}
1267 };
1268
1269 static const SiS_LVDSDesStruct  SiS310_PanelType0e_1[]=
1270 {
1271         {1343, 798},
1272         {1343, 794},
1273         {1343, 798},
1274         {1343, 794},
1275         {1343,   0},
1276         {1343,   0},
1277         { 0, 805},
1278         { 0, 794},
1279         { 0,   0}
1280 };
1281
1282 static const SiS_LVDSDesStruct  SiS310_PanelType0f_1[]=
1283 {
1284         {1343, 798},
1285         {1343, 794},
1286         {1343, 798},
1287         {1343, 794},
1288         {1343,   0},
1289         {1343,   0},
1290         { 0, 805},
1291         { 0, 794},
1292         { 0,   0}
1293 };
1294
1295 static const SiS_LVDSDesStruct  SiS310_PanelType00_2[]=
1296 {
1297         {980, 528},
1298         {980, 503},
1299         {980, 528},
1300         {980, 503},
1301         {980, 568},
1302         { 0, 628},
1303         { 0,   0},
1304         { 0,   0},
1305         { 0,   0}
1306 };
1307
1308 static const SiS_LVDSDesStruct  SiS310_PanelType01_2[]=
1309 {
1310         {1152, 622},
1311         {1152, 597},
1312         {1152, 622},
1313         {1152, 597},
1314         {1152, 662},
1315         {1232, 722},
1316         { 0, 806},
1317         { 0,   0},
1318         { 0,   0}
1319 };
1320
1321 static const SiS_LVDSDesStruct  SiS310_PanelType02_2[]=
1322 {
1323         {1368, 754},
1324         {1368, 729},
1325         {1368, 754},
1326         {1368, 729},
1327         {1368, 794},
1328         {1448, 854},
1329         {1560, 938},
1330         {   0,1066},
1331         { 0,   0},
1332         { 0,   0},
1333         { 0,   0}
1334 };
1335
1336 static const SiS_LVDSDesStruct  SiS310_PanelType03_2[]=
1337 {
1338         { 0,   0},
1339         { 0,   0},
1340         { 0,   0},
1341         { 0,   0},
1342         { 0,   0},
1343         { 0,   0},
1344         { 0,   0}
1345 };
1346
1347 static const SiS_LVDSDesStruct  SiS310_PanelType04_2[]=
1348 {
1349         { 0,   0},
1350         { 0,   0},
1351         { 0,   0},
1352         { 0,   0},
1353         { 0,   0},
1354         { 0,   0},
1355         { 0,   0},
1356         { 0,   0},
1357         { 0,   0}
1358 };
1359
1360 static const SiS_LVDSDesStruct  SiS310_PanelType05_2[]=
1361 {
1362         {1152, 622},
1363         {1152, 597},
1364         {1152, 622},
1365         {1152, 597},
1366         {1152, 662},
1367         {1232, 722},
1368         { 0, 805},
1369         { 0, 794},
1370         { 0,   0}
1371 };
1372
1373 static const SiS_LVDSDesStruct  SiS310_PanelType06_2[]=
1374 {
1375         {1152, 622},
1376         {1152, 597},
1377         {1152, 622},
1378         {1152, 597},
1379         {1152, 662},
1380         {1232, 722},
1381         { 0, 805},
1382         { 0, 794},
1383         { 0,   0}
1384 };
1385
1386 static const SiS_LVDSDesStruct  SiS310_PanelType07_2[]=
1387 {
1388         {1152, 622},
1389         {1152, 597},
1390         {1152, 622},
1391         {1152, 597},
1392         {1152, 662},
1393         {1232, 722},
1394         { 0, 805},
1395         { 0, 794},
1396         { 0,   0}
1397 };
1398
1399 static const SiS_LVDSDesStruct  SiS310_PanelType08_2[]=  /* 1400x1050 */
1400 {
1401         {1308, 741},
1402         {1308, 716},
1403         {1308, 741},
1404         {1308, 716},
1405         {1308, 781},
1406         {1388, 841},
1407         {1500, 925},
1408         {1628,1053},
1409         {   0,1065},
1410         {   0,   0},
1411         {   0,   0}
1412 };
1413
1414 static const SiS_LVDSDesStruct  SiS310_PanelType09_2[]= /* 1280x768 */
1415 {
1416         {1083, 622},
1417         {1083, 597},
1418         {1083, 622},
1419         {1083, 597},
1420         {1083, 662},
1421         {1163, 722},
1422         {1286, 805},
1423         {   0, 794},
1424         {   0,   0}
1425 };
1426
1427 static const SiS_LVDSDesStruct  SiS310_PanelType0a_2[]=  /* 1600x1200 */
1428 {
1429         {1568, 920},
1430         {1568, 895},
1431         {1568, 920},
1432         {1568, 895},
1433         {1568, 960},
1434         {1648,1020},
1435         {1760,1104},
1436         {1888,1232},
1437         {1948,1245},
1438         {   0,   0}
1439 #if 0
1440         {1568, 850},
1441         {1568, 825},
1442         {1568, 850},
1443         {1568, 825},
1444         {1568, 890},
1445         {1648, 950},
1446         {1760,1034},
1447         {1888,1162},
1448         {1948,1175},
1449         {   0,   0}
1450 #endif
1451 };
1452
1453 static const SiS_LVDSDesStruct  SiS310_PanelType0b_2[]=  /* 640x480_2 */
1454 {
1455         {1152, 622},
1456         {1152, 597},
1457         {1152, 622},
1458         {1152, 597},
1459         {1152, 662},
1460         {1232, 722},
1461         { 0, 805},
1462         { 0, 794},
1463         { 0,   0}
1464 };
1465
1466 static const SiS_LVDSDesStruct  SiS310_PanelType0c_2[]=  /* 640x480_3 */
1467 {
1468         {1152, 622},
1469         {1152, 597},
1470         {1152, 622},
1471         {1152, 597},
1472         {1152, 662},
1473         {1232, 722},
1474         { 0, 805},
1475         { 0, 794},
1476         { 0,   0}
1477 };
1478
1479 static const SiS_LVDSDesStruct  SiS310_PanelType0d_2[]=
1480 {
1481         {1152, 622},
1482         {1152, 597},
1483         {1152, 622},
1484         {1152, 597},
1485         {1152, 662},
1486         {1232, 722},
1487         { 0, 805},
1488         { 0, 794},
1489         { 0,   0}
1490 };
1491
1492 static const SiS_LVDSDesStruct  SiS310_PanelType0e_2[]=
1493 {
1494         {1152, 622},
1495         {1152, 597},
1496         {1152, 622},
1497         {1152, 597},
1498         {1152, 662},
1499         {1232, 722},
1500         { 0, 805},
1501         { 0, 794},
1502         { 0,   0}
1503 };
1504
1505 static const SiS_LVDSDesStruct  SiS310_PanelType0f_2[] =
1506 {
1507         {1152, 622},
1508         {1152, 597},
1509         {1152, 622},
1510         {1152, 597},
1511         {1152, 662},
1512         {1232, 722},
1513         { 0, 805},
1514         { 0, 794},
1515         { 0,   0}
1516 };
1517
1518 static const SiS_LVDSDesStruct  SiS310_PanelTypeNS_1[]=
1519 {
1520         { 8,   0},
1521         { 8,   0},
1522         { 8,   0},
1523         { 8,   0},
1524         { 8,   0},
1525         { 0,   0},
1526         { 0,   0},
1527         { 0,   0},
1528         { 0, 806},
1529         { 0,   0}
1530 };
1531
1532 static const SiS_LVDSDesStruct  SiS310_PanelTypeNS_2[] =
1533 {
1534         { 0 , 0},
1535         { 0 , 0},
1536         { 0 , 0},
1537         { 0 , 0},
1538         { 0 , 0},
1539         { 0 , 0},
1540         { 0 , 0},
1541         { 0 , 0},
1542         { 0 , 0},
1543         { 0 , 0}
1544 };
1545
1546 /* CRT1 CRTC for SlaveModes and LCDA */
1547
1548 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT1800x600_1[] =
1549 {
1550  {{0x6b,0x4f,0x8f,0x55,0x85,0xaa,0x1f,
1551    0x90,0x85,0x8f,0xab,0x30,0x00,0x05,
1552    0x00 }},
1553  {{0x6b,0x4f,0x8f,0x55,0x85,0x78,0x1f,
1554    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1555    0x00 }},
1556  {{0x6b,0x4f,0x8f,0x55,0x85,0xaa,0x1f,
1557    0x90,0x85,0x8f,0xab,0x30,0x00,0x05,
1558    0x00 }},
1559  {{0x6b,0x4f,0x8f,0x55,0x85,0x78,0x1f,
1560    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1561    0x00 }},
1562  {{0x6b,0x4f,0x8f,0x55,0x85,0xfa,0x1f,
1563    0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05,
1564    0x00 }},
1565  {{0x7f,0x63,0x83,0x69,0x19,0x72,0xf0,
1566    0x58,0x8c,0x57,0x73,0x20,0x00,0x06,
1567    0x01 }}
1568 };
1569
1570 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT1800x600_1_H[] =
1571 {
1572  {{0x43,0x27,0x87,0x2d,0x1d,0xaa,0x1f,
1573    0x90,0x85,0x8f,0xab,0x30,0x00,0x05,
1574    0x00 }},
1575  {{0x43,0x27,0x87,0x2d,0x1d,0x78,0x1f,
1576    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1577    0x00 }},
1578  {{0x43,0x27,0x87,0x2d,0x1d,0xfa,0x1f,
1579    0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05,
1580    0x00 }},
1581  {{0x43,0x27,0x87,0x2d,0x1d,0x78,0x1f,
1582    0x5e,0x83,0x5d,0x79,0x10,0x00,0x05,
1583    0x00 }},
1584  {{0x43,0x27,0x87,0x2d,0x1d,0xfa,0x1f,
1585    0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05,
1586    0x00 }},
1587  {{0x4d,0x31,0x91,0x37,0x07,0x72,0xf0,
1588    0x58,0x8d,0x57,0x73,0x20,0x00,0x01,
1589    0x01 }}
1590 };
1591
1592 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT1800x600_2[]=
1593 {
1594  {{0x7f,0x4f,0x83,0x62,0x12,0x72,0x3e,
1595    0xff,0x84,0x8f,0x73,0x00,0x00,0x06,
1596    0x00 }},
1597  {{0x7f,0x4f,0x83,0x62,0x12,0x72,0x3e,
1598    0xe6,0x8b,0x5d,0x73,0x00,0x00,0x06,
1599    0x00 }},
1600  {{0x7f,0x4f,0x83,0x62,0x12,0x72,0x3e,
1601    0xff,0x84,0x8f,0x73,0x00,0x00,0x06,
1602    0x00 }},
1603  {{0x7f,0x4f,0x83,0x62,0x12,0x72,0x3e,
1604    0xe6,0x8b,0x5d,0x73,0x00,0x00,0x06,
1605    0x00 }},
1606  {{0x7f,0x4f,0x83,0x62,0x12,0x72,0xba,
1607    0x27,0x8c,0xdf,0x73,0x00,0x00,0x06,
1608    0x00 }},
1609  {{0x7f,0x63,0x83,0x69,0x19,0x72,0xf0,
1610    0x58,0x8d,0x57,0x73,0x20,0x00,0x06,
1611    0x01 }}
1612 };
1613
1614 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT1800x600_2_H[] =
1615 {
1616  {{0x57,0x27,0x9b,0x3a,0x0a,0x72,0x3e,
1617    0xff,0x84,0x8f,0x73,0x00,0x00,0x01,
1618    0x00 }},
1619  {{0x57,0x27,0x9b,0x3a,0x0a,0x72,0x3e,
1620    0xd6,0x8b,0x5d,0x73,0x00,0x00,0x01,
1621    0x00 }},
1622  {{0x57,0x27,0x9b,0x3a,0x0a,0x72,0x3e,
1623    0xff,0x84,0x8f,0x73,0x00,0x00,0x01,
1624    0x00 }},
1625  {{0x57,0x27,0x9b,0x3a,0x0a,0x72,0x3e,
1626    0xd6,0x8b,0x5d,0x73,0x00,0x00,0x01,
1627    0x00 }},
1628  {{0x57,0x27,0x9b,0x3a,0x0a,0x72,0xba,
1629    0x27,0x8c,0xdf,0x73,0x00,0x00,0x01,
1630    0x00 }},
1631  {{0x4d,0x31,0x91,0x3a,0x0a,0x72,0xf0,
1632    0x63,0x88,0x57,0x73,0x00,0x00,0x01,
1633    0x01 }}
1634 };
1635
1636 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11024x768_1[] =
1637 {
1638  {{0x73,0x4f,0x97,0x53,0x84,0xb4,0x1f,
1639    0x92,0x89,0x8f,0xb5,0x30,0x00,0x05,
1640    0x00}},
1641  {{0x73,0x4f,0x97,0x53,0x84,0x82,0x1f,
1642    0x60,0x87,0x5d,0x83,0x10,0x00,0x05,
1643    0x00}},
1644  {{0x73,0x4f,0x97,0x53,0x84,0xb4,0x1f,
1645    0x92,0x89,0x8f,0xb5,0x30,0x00,0x05,
1646    0x00}},
1647  {{0x73,0x4f,0x97,0x53,0x84,0x82,0x1f,
1648    0x60,0x87,0x5d,0x83,0x10,0x00,0x05,
1649    0x00}},
1650  {{0x73,0x4f,0x97,0x53,0x84,0x04,0x3e,
1651    0xE2,0x89,0xDf,0x05,0x00,0x00,0x05,
1652    0x00}},
1653  {{0x87,0x63,0x8B,0x67,0x18,0x7c,0xf0,
1654    0x5A,0x81,0x57,0x7D,0x00,0x00,0x06,
1655    0x01}},
1656  {{0xA3,0x7f,0x87,0x83,0x94,0x24,0xf5,
1657    0x02,0x89,0xFf,0x25,0x10,0x00,0x02,
1658    0x01}}
1659 };
1660
1661 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11024x768_1_H[] =
1662 {
1663  {{0x4b,0x27,0x8f,0x2b,0x1c,0xb4,0x1f,
1664    0x92,0x89,0x8f,0xb5,0x30,0x00,0x05,
1665    0x00 }},
1666  {{0x4b,0x27,0x8f,0x2b,0x1c,0x82,0x1f,
1667    0x60,0x87,0x5D,0x83,0x01,0x00,0x05,
1668    0x00}},
1669  {{0x4b,0x27,0x8f,0x2b,0x1c,0xb4,0x1f,
1670    0x92,0x89,0x8f,0xb5,0x30,0x00,0x05,
1671    0x00}},
1672  {{0x4b,0x27,0x8f,0x2b,0x1c,0x82,0x1f,
1673    0x60,0x87,0x5D,0x83,0x01,0x00,0x05,
1674    0x00}},
1675  {{0x4b,0x27,0x8f,0x2b,0x1c,0x04,0x3e,
1676    0xE2,0x89,0xDf,0x05,0x00,0x00,0x05,
1677    0x00}},
1678  {{0x55,0x31,0x99,0x35,0x06,0x7c,0xf0,
1679    0x5A,0x81,0x57,0x7D,0x00,0x00,0x01,
1680    0x01}},
1681  {{0x63,0x3F,0x87,0x43,0x94,0x24,0xf5,
1682    0x02,0x89,0xFf,0x25,0x10,0x00,0x01,
1683    0x01 }}
1684 };
1685
1686 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11024x768_2[] =
1687 {
1688  {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb,
1689    0x57,0x8e,0x8f,0x25,0x30,0x00,0x06,
1690    0x00 }},
1691  {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb,
1692    0x3e,0x85,0x5d,0x25,0x10,0x00,0x06,
1693    0x00 }},
1694  {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb,
1695    0x57,0x8e,0x8f,0x25,0x30,0x00,0x06,
1696    0x00 }},
1697  {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb,
1698    0x3e,0x85,0x5d,0x25,0x10,0x00,0x06,
1699    0x01 }},
1700  {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb,
1701    0x7f,0x86,0xdf,0x25,0x10,0x00,0x06,
1702    0x00 }},
1703  {{0xa3,0x63,0x87,0x78,0x89,0x24,0xf1,
1704    0xbb,0x82,0x57,0x25,0x10,0x00,0x02,
1705    0x01 }},
1706  {{0xa3,0x7f,0x87,0x83,0x94,0x24,0xf5,
1707    0x02,0x89,0xff,0x25,0x10,0x00,0x02,
1708    0x01 }}
1709 };
1710
1711 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11024x768_2_H[] =
1712 {
1713  {{0x7b,0x27,0x9f,0x46,0x97,0x24,0xbb,
1714    0x57,0x8e,0x8f,0x25,0x30,0x00,0x01,
1715    0x00 }},
1716  {{0x7b,0x27,0x9f,0x46,0x97,0x24,0xbb,
1717    0x3e,0x85,0x5d,0x25,0x10,0x00,0x01,
1718    0x00 }},
1719  {{0x7b,0x27,0x9f,0x46,0x97,0x24,0xbb,
1720    0x57,0x8e,0x8f,0x25,0x30,0x00,0x01,
1721    0x00 }},
1722  {{0x7b,0x27,0x9f,0x46,0x97,0x24,0xbb,
1723    0x3e,0x85,0x5d,0x25,0x10,0x00,0x01,
1724    0x00 }},
1725  {{0x7b,0x27,0x9f,0x46,0x97,0x24,0xbb,
1726    0x7f,0x86,0xdf,0x25,0x10,0x00,0x01,
1727    0x00 }},
1728  {{0x71,0x31,0x95,0x46,0x97,0x24,0xf1,
1729    0xbb,0x82,0x57,0x25,0x10,0x00,0x01,
1730    0x01 }},
1731  {{0x63,0x3f,0x87,0x46,0x97,0x24,0xf5,
1732    0x0f,0x86,0xff,0x25,0x30,0x00,0x01,
1733    0x01 }}
1734 };
1735
1736 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11280x1024_1[] =
1737 {
1738  {{0x7e,0x4f,0x82,0x58,0x04,0xb8,0x1f,
1739    0x90,0x84,0x8f,0xb9,0x30,0x00,0x06,
1740    0x00}},
1741  {{0x7e,0x4f,0x82,0x58,0x04,0x86,0x1f,
1742    0x5e,0x82,0x5d,0x87,0x10,0x00,0x06,
1743    0x00}},
1744  {{0x7e,0x4f,0x82,0x58,0x04,0xb8,0x1f,
1745    0x90,0x84,0x8f,0xb9,0x30,0x00,0x06,
1746    0x00}},
1747  {{0x7e,0x4f,0x82,0x58,0x04,0x86,0x1f,
1748    0x5e,0x82,0x5d,0x87,0x10,0x00,0x06,
1749    0x00}},
1750  {{0x7e,0x4f,0x82,0x58,0x04,0x08,0x3e,
1751    0xe0,0x84,0xdf,0x09,0x00,0x00,0x06,
1752    0x00}},
1753  {{0x92,0x63,0x96,0x6c,0x18,0x80,0xf0,
1754    0x58,0x8c,0x57,0x81,0x20,0x00,0x06,
1755    0x01}},
1756  {{0xae,0x7f,0x92,0x88,0x94,0x28,0xf5,
1757    0x00,0x84,0xff,0x29,0x10,0x00,0x02,
1758    0x01}},
1759  {{0xce,0x9f,0x92,0xa8,0x14,0x28,0x5a,
1760    0x00,0x84,0xff,0x29,0x09,0x00,0x07,
1761    0x01}}
1762 };
1763
1764 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11280x1024_1_H[] =
1765 {
1766  {{0x56,0x27,0x9a,0x31,0x1c,0xb8,0x1f,
1767    0x90,0x84,0x8f,0xb9,0x30,0x00,0x05,
1768    0x00}},
1769  {{0x56,0x27,0x9a,0x31,0x1c,0x86,0x1f,
1770    0x5e,0x82,0x5d,0x87,0x10,0x00,0x05,
1771    0x00}},
1772  {{0x56,0x27,0x9a,0x31,0x1c,0xb8,0x1f,
1773    0x90,0x84,0x8f,0xb9,0x30,0x00,0x05,
1774    0x00}},
1775  {{0x56,0x27,0x9a,0x31,0x1c,0x86,0x1f,
1776    0x5e,0x82,0x5d,0x87,0x10,0x00,0x05,
1777    0x01}},
1778  {{0x56,0x27,0x9a,0x31,0x1c,0x08,0x3e,
1779    0xe0,0x84,0xdf,0x09,0x00,0x00,0x05,
1780    0x00}},
1781  {{0x60,0x31,0x84,0x3a,0x86,0x80,0xf0,
1782    0x58,0x8c,0x57,0x81,0x20,0x00,0x01,
1783    0x01}},
1784  {{0x6e,0x3f,0x92,0x48,0x94,0x28,0xf5,
1785    0x00,0x84,0xff,0x29,0x10,0x00,0x01,
1786    0x01}}
1787 };
1788
1789 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11280x1024_2[] =
1790 {
1791  {{0xce,0x72,0x91,0x81,0x8f,0x28,0x92,
1792    0xc8,0x8c,0x5d,0x5c,0x01,0x00,0x02,
1793    0x01}},
1794  {{0xce,0x72,0x91,0x81,0x8f,0x28,0x92,
1795    0xaf,0x83,0x44,0x43,0x21,0x00,0x02,
1796    0x01}},
1797  {{0xce,0x72,0x91,0x81,0x8f,0x28,0x92,
1798    0xc8,0x8c,0x5d,0x5c,0x01,0x00,0x02,
1799    0x01}},
1800  {{0xce,0x72,0x91,0x81,0x8f,0x28,0x92,
1801    0xaf,0x83,0x44,0x43,0x21,0x00,0x02,
1802    0x01}},
1803  {{0xce,0x72,0x91,0x81,0x8f,0x28,0x92,
1804    0xf0,0x84,0x85,0x84,0x11,0x00,0x02,
1805    0x01}},
1806  {{0xce,0x63,0x92,0x8b,0x19,0x28,0xd4,
1807    0x3f,0x83,0x57,0x29,0x01,0x00,0x03,
1808    0x01}},
1809  {{0xce,0x7f,0x92,0x99,0x07,0x28,0xd4,
1810    0x93,0x87,0xff,0x29,0x21,0x00,0x07,
1811    0x01}},
1812  {{0xce,0x9f,0x92,0xa8,0x14,0x28,0x5a,
1813    0x00,0x84,0xff,0x29,0x09,0x00,0x07,
1814    0x01}}
1815 };
1816
1817 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11280x1024_2_H[] =
1818 {
1819  {{0xa6,0x4a,0x89,0x59,0x07,0x28,0x92,
1820    0xc8,0x8c,0x5d,0x5c,0x01,0x00,0x06,
1821    0x01}},
1822  {{0xa6,0x4a,0x89,0x59,0x07,0x28,0x92,
1823    0xaf,0x83,0x44,0x43,0x21,0x00,0x06,
1824    0x01}},
1825  {{0xa6,0x4a,0x89,0x59,0x07,0x28,0x92,
1826    0xc8,0x8c,0x5d,0x5c,0x01,0x00,0x06,
1827    0x01}},
1828  {{0xa6,0x4a,0x89,0x59,0x07,0x28,0x92,
1829    0xfa,0x83,0x44,0x43,0x31,0x00,0x06,
1830    0x01}},
1831  {{0xa6,0x4a,0x89,0x59,0x07,0x28,0x92,
1832    0xf0,0x84,0x85,0x84,0x11,0x00,0x06,
1833    0x01}},
1834  {{0x9c,0x31,0x80,0x59,0x87,0x28,0xd4,
1835    0x3f,0x83,0x57,0x29,0x01,0x00,0x06,
1836    0x01}},
1837  {{0x8e,0x3f,0x92,0x59,0x07,0x28,0xd4,
1838    0x93,0x87,0xff,0x29,0x21,0x00,0x06,
1839    0x01}}
1840 };
1841
1842 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11400x1050_1[] =
1843 {
1844   {{0x6f,0x4f,0x93,0x54,0x82,0x9e,0x1f,
1845     0x8f,0x81,0x8f,0x9f,0x30,0x00,0x05,
1846     0x00}},
1847   {{0x6f,0x4f,0x93,0x54,0x82,0x6c,0x1f,
1848     0x5e,0x81,0x5d,0x6d,0x10,0x00,0x05,
1849     0x00}},
1850   {{0x6f,0x4f,0x93,0x54,0x82,0x9e,0x1f,
1851     0x90,0x83,0x8f,0x9f,0x30,0x00,0x05,
1852     0x00}},
1853   {{0x6f,0x4f,0x93,0x54,0x82,0x6c,0x1f,
1854     0x60,0x84,0x5d,0x6d,0x10,0x00,0x05,
1855     0x00}},
1856   {{0x6f,0x4f,0x93,0x54,0x82,0xee,0x1f,
1857     0xdf,0x82,0xdf,0xef,0x10,0x00,0x05,
1858     0x00}},
1859   {{0x83,0x63,0x87,0x68,0x16,0x66,0xf0,
1860     0x57,0x8e,0x57,0x67,0x20,0x00,0x06,
1861     0x01}},
1862   {{0x9f,0x7f,0x83,0x84,0x92,0x0e,0xf1,
1863     0xff,0x86,0xff,0x0f,0x10,0x00,0x02,
1864     0x01,}},
1865   {{0xbf,0x9f,0x83,0xa4,0x12,0x0e,0xde,
1866     0xff,0x86,0xff,0x0f,0x01,0x00,0x07,
1867     0x01}},
1868   {{0xce,0xae,0x92,0xb3,0x01,0x28,0x10,
1869     0x19,0x80,0x19,0x29,0x0f,0x00,0x03,
1870     0x00}}
1871 #if 0
1872  {{0x6f,0x4f,0x93,0x54,0x82,0x9e,0x1f,
1873    0x93,0x86,0x8f,0x9f,0x30,0x00,0x05,
1874    0x00}},
1875  {{0x6f,0x4f,0x93,0x54,0x82,0x6c,0x1f,
1876    0x60,0x84,0x5d,0x6d,0x10,0x00,0x05,
1877    0x00}},
1878  {{0x6f,0x4f,0x93,0x54,0x82,0x9e,0x1f,
1879    0x93,0x86,0x8f,0x9f,0x30,0x00,0x05,
1880    0x00}},
1881  {{0x6f,0x4f,0x93,0x54,0x82,0x6c,0x1f,
1882    0x60,0x84,0x5d,0x6d,0x10,0x00,0x05,
1883    0x00}},
1884  {{0x6f,0x4f,0x93,0x54,0x82,0xee,0x1f,
1885    0xe2,0x86,0xdf,0xef,0x10,0x00,0x05,
1886    0x00}},
1887  {{0x83,0x63,0x87,0x68,0x16,0x66,0xf0,
1888    0x5a,0x8e,0x57,0x67,0x20,0x00,0x06,
1889    0x01}},
1890  {{0x9f,0x7f,0x83,0x84,0x92,0x0e,0xf5,
1891    0x02,0x86,0xff,0x0f,0x10,0x00,0x02,
1892    0x01}},
1893  {{0xbf,0x9f,0x83,0xa4,0x12,0x0e,0x5a,
1894    0x02,0x86,0xff,0x0f,0x09,0x00,0x07,
1895    0x01}},
1896  {{0xce,0xae,0x92,0xb3,0x01,0x28,0x10,
1897    0x1a,0x80,0x19,0x29,0x0f,0x00,0x03,
1898    0x00}}
1899 #endif   
1900 };
1901
1902 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11400x1050_1_H[] =
1903 {
1904  {{0x47,0x27,0x8b,0x2c,0x1a,0x9e,0x1f,
1905    0x8f,0x81,0x8f,0x9f,0x30,0x00,0x05,
1906   0x00}},
1907  {{0x47,0x27,0x8b,0x2c,0x1a,0x6c,0x1f,
1908    0x60,0x84,0x5d,0x6d,0x10,0x00,0x05,
1909    0x00}},
1910  {{0x47,0x27,0x8b,0x30,0x1e,0x9e,0x1f,
1911    0x90,0x83,0x8f,0x9f,0x30,0x00,0x05,
1912    0x00}},
1913  {{0x47,0x27,0x8b,0x2c,0x1a,0x6c,0x1f,
1914    0x60,0x84,0x5d,0x6d,0x10,0x00,0x05,
1915    0x00}},
1916  {{0x47,0x27,0x8b,0x2c,0x1a,0xee,0x1f,
1917    0xdf,0x86,0xdf,0xef,0x10,0x00,0x05,
1918    0x00}},
1919  {{0x51,0x31,0x95,0x36,0x04,0x66,0xf0,
1920    0x57,0x8e,0x57,0x67,0x20,0x00,0x01,
1921    0x01}},
1922  {{0x5f,0x3f,0x83,0x44,0x92,0x0e,0xf1,
1923    0xff,0x86,0xff,0x0f,0x10,0x00,0x01,
1924    0x01}},
1925  {{0x6f,0x4f,0x93,0x54,0x82,0x0e,0x5a,
1926    0x02,0x86,0xff,0x0f,0x09,0x00,0x05,
1927    0x01}},
1928  {{0x76,0x56,0x9a,0x5b,0x89,0x28,0x10,
1929    0x1c,0x80,0x19,0x29,0x0b,0x00,0x05,
1930    0x00}}
1931 #if 0
1932  {{0x47,0x27,0x8b,0x2c,0x1a,0x9e,0x1f,
1933    0x93,0x86,0x8f,0x9f,0x30,0x00,0x05,
1934    0x00}},
1935  {{0x47,0x27,0x8b,0x2c,0x1a,0x6c,0x1f,
1936    0x60,0x84,0x5d,0x6d,0x10,0x00,0x05,
1937    0x00}},
1938  {{0x47,0x27,0x8b,0x30,0x1e,0x9e,0x1f,
1939    0x92,0x86,0x8f,0x9f,0x30,0x00,0x05,
1940    0x00}},
1941  {{0x47,0x27,0x8b,0x2c,0x1a,0x6c,0x1f,
1942    0x60,0x84,0x5d,0x6d,0x10,0x00,0x05,
1943    0x00}},
1944  {{0x47,0x27,0x8b,0x2c,0x1a,0xee,0x1f,
1945    0xe2,0x86,0xdf,0xef,0x10,0x00,0x05,
1946    0x00}},
1947  {{0x51,0x31,0x95,0x36,0x04,0x66,0xf0,
1948    0x5a,0x8e,0x57,0x67,0x20,0x00,0x01,
1949    0x01}},
1950  {{0x5f,0x3f,0x83,0x44,0x92,0x0e,0xf5,
1951    0x02,0x86,0xff,0x0f,0x10,0x00,0x01,
1952    0x01}},
1953  {{0x6f,0x4f,0x93,0x54,0x82,0x0e,0x5a,
1954    0x02,0x86,0xff,0x0f,0x09,0x00,0x05,
1955    0x01}},
1956  {{0x76,0x56,0x9a,0x5b,0x89,0x28,0x10,
1957    0x1c,0x80,0x19,0x29,0x0b,0x00,0x05,
1958    0x00}}
1959 #endif   
1960 };
1961
1962 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11400x1050_2[] =
1963 {
1964  {{0xce,0x72,0x91,0x84,0x92,0x28,0x92,
1965    0xd7,0x8b,0x5d,0x5c,0x21,0x00,0x02,
1966    0x01}},
1967  {{0xce,0x72,0x91,0x84,0x92,0x28,0x92,
1968    0xbe,0x82,0x44,0x43,0x01,0x00,0x02,
1969    0x01}},
1970  {{0xce,0x72,0x91,0x84,0x92,0x28,0x92,
1971    0xd7,0x8b,0x5d,0x5c,0x21,0x00,0x02,
1972    0x01}},
1973  {{0xce,0x72,0x91,0x84,0x92,0x28,0x92,
1974    0xbe,0x82,0x44,0x43,0x01,0x00,0x02,
1975    0x01}},
1976  {{0xce,0x72,0x91,0x84,0x92,0x28,0x92,
1977    0xff,0x83,0x85,0x84,0x11,0x00,0x02,
1978    0x01}},
1979  {{0xce,0x63,0x92,0x8e,0x1c,0x28,0xd4,
1980    0x3f,0x83,0x57,0x29,0x01,0x00,0x03,
1981    0x01}},
1982  {{0xce,0x7f,0x92,0x9c,0x0a,0x28,0xd4,
1983    0x93,0x87,0xff,0x29,0x21,0x00,0x07,
1984    0x01}},
1985  {{0xce,0x9f,0x92,0xac,0x1a,0x28,0x5a,
1986    0x13,0x87,0xff,0x29,0x29,0x00,0x07,
1987    0x01}},
1988  {{0xce,0xae,0x92,0xbc,0x0a,0x28,0x10,
1989    0x20,0x84,0x19,0x29,0x0f,0x00,0x03,
1990    0x00}}
1991 #if 0
1992  {{0xce,0x4f,0x92,0x8c,0x1a,0x28,0x9a,
1993    0xdb,0x8f,0x8f,0x29,0x21,0x00,0x03,
1994    0x00}},
1995  {{0xce,0x4f,0x92,0x8c,0x1a,0x28,0x9a,
1996    0xc2,0x86,0x5d,0x29,0x01,0x00,0x03,
1997    0x01}},
1998  {{0xce,0x4f,0x92,0x8c,0x1a,0x28,0x9a,
1999    0xdb,0x8f,0x8f,0x29,0x21,0x00,0x03,
2000    0x00}},
2001  {{0xce,0x4f,0x92,0x8c,0x1a,0x28,0x9a,
2002    0xc2,0x86,0x5d,0x29,0x01,0x00,0x03,
2003    0x00}},
2004  {{0xce,0x4f,0x92,0x8c,0x1a,0x28,0x9e,
2005    0x03,0x87,0xdf,0x29,0x01,0x00,0x03,
2006    0x00}},
2007  {{0xce,0x63,0x92,0x96,0x04,0x28,0xd4,
2008    0x3f,0x83,0x57,0x29,0x01,0x00,0x07,
2009    0x01}},
2010  {{0xce,0x7f,0x92,0xa4,0x12,0x28,0xd4,
2011    0x93,0x87,0xff,0x29,0x21,0x00,0x07,
2012    0x01}},
2013  {{0xce,0x9f,0x92,0xb4,0x02,0x28,0x5a,
2014    0x13,0x87,0xff,0x29,0x29,0x00,0x03,
2015    0x01}},
2016  {{0xce,0xae,0x92,0xbc,0x0a,0x28,0x10,
2017    0x20,0x84,0x19,0x29,0x0f,0x00,0x03,
2018    0x00}}
2019 #endif   
2020 };
2021
2022 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11400x1050_2_H[] =
2023 {
2024  {{0xa6,0x4a,0x89,0x5c,0x0a,0x28,0x92,
2025    0xd7,0x8b,0x5d,0x5c,0x21,0x00,0x06,
2026    0x01}},
2027  {{0xa6,0x4a,0x89,0x5c,0x0a,0x28,0x92,
2028    0xbe,0x82,0x44,0x43,0x01,0x00,0x06,
2029    0x01}},
2030  {{0xa6,0x4a,0x89,0x5c,0x0a,0x28,0x92,
2031    0xd7,0x8b,0x5d,0x5c,0x21,0x00,0x06,
2032    0x01}},
2033  {{0xa6,0x4a,0x89,0x5c,0x0a,0x28,0x92,
2034    0xbe,0x82,0x44,0x43,0x01,0x00,0x06,
2035    0x01}},
2036  {{0xa6,0x4a,0x89,0x5c,0x0a,0x28,0x92,
2037    0xff,0x83,0x85,0x84,0x11,0x00,0x06,
2038    0x01}},
2039  {{0x9c,0x31,0x80,0x5c,0x8a,0x28,0xd4,
2040    0x3f,0x83,0x57,0x29,0x01,0x00,0x06,
2041    0x01}},
2042  {{0x8e,0x3f,0x92,0x5c,0x0a,0x28,0xd4,
2043    0x93,0x87,0xff,0x29,0x21,0x00,0x06,
2044    0x01}},
2045  {{0x7e,0x4f,0x82,0x5c,0x0a,0x28,0x5a,
2046    0x13,0x87,0xff,0x29,0x29,0x00,0x06,
2047    0x01}},
2048  {{0x76,0x56,0x9a,0x64,0x92,0x28,0x10,
2049    0x20,0x84,0x19,0x29,0x0f,0x00,0x05,
2050    0x00}}
2051 #if 0
2052  {{0xa6,0x27,0x8a,0x64,0x92,0x28,0x9a,
2053    0xdb,0x8f,0x8f,0x29,0x21,0x00,0x06,
2054    0x00}},
2055  {{0xa6,0x27,0x8a,0x64,0x92,0x28,0x9a,
2056    0xc2,0x86,0x5d,0x29,0x01,0x00,0x06,
2057    0x00}},
2058  {{0xa6,0x27,0x8a,0x64,0x92,0x28,0x9a,
2059    0xdb,0x8f,0x8f,0x29,0x21,0x00,0x06,
2060    0x00}},
2061  {{0xa6,0x27,0x8a,0x64,0x92,0x28,0x9a,
2062    0xc2,0x86,0x5d,0x29,0x01,0x00,0x06,
2063    0x00}},
2064  {{0xa6,0x27,0x8a,0x64,0x92,0x28,0x9e,
2065    0x03,0x87,0xdf,0x29,0x01,0x00,0x06,
2066    0x00}},
2067  {{0x9c,0x31,0x80,0x64,0x92,0x28,0xd4,
2068    0x3f,0x83,0x57,0x29,0x01,0x00,0x06,
2069    0x01}},
2070  {{0x8e,0x3f,0x92,0x64,0x12,0x28,0xd4,
2071    0x93,0x87,0xff,0x29,0x21,0x00,0x06,
2072    0x01}},
2073  {{0x7e,0x4f,0x82,0x64,0x12,0x28,0x5a,
2074    0x13,0x87,0xff,0x29,0x29,0x00,0x06,
2075    0x01}},
2076  {{0x76,0x56,0x9a,0x64,0x92,0x28,0x10,
2077    0x20,0x84,0x19,0x29,0x0f,0x00,0x05,
2078    0x00}}
2079 #endif   
2080 };
2081
2082 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11600x1200_1[] =
2083 {
2084  {{0x83,0x4F,0x87,0x5B,0x13,0x06,0x3E,
2085    0xB3,0x86,0x8F,0x07,0x20,0x00,0x06,
2086    0x00}},
2087  {{0x83,0x4F,0x87,0x5B,0x13,0xD4,0x1F,
2088    0x81,0x84,0x5D,0xD5,0x10,0x00,0x06,
2089    0x00}},
2090  {{0x83,0x4F,0x87,0x5B,0x13,0x06,0x3E,
2091    0xB3,0x86,0x8F,0x07,0x20,0x00,0x06,
2092    0x00}},
2093  {{0x83,0x4F,0x87,0x5B,0x13,0xD4,0x1F,
2094    0x81,0x84,0x5D,0xD5,0x10,0x00,0x06,
2095    0x00}},
2096  {{0x83,0x4F,0x87,0x5B,0x13,0x56,0xBA,
2097    0x03,0x86,0xDF,0x57,0x00,0x00,0x06,
2098    0x00}},
2099  {{0x97,0x63,0x9B,0x6F,0x07,0xCE,0xF0,
2100    0x7B,0x8E,0x57,0xCF,0x20,0x00,0x02,
2101    0x01}},
2102  {{0xB3,0x7F,0x97,0x8B,0x83,0x76,0xF5,
2103    0x23,0x86,0xFF,0x77,0x10,0x00,0x06,
2104    0x01}},
2105  {{0xD3,0x9F,0x97,0xAB,0x03,0x76,0x5A,
2106    0x23,0x86,0xFF,0x77,0x09,0x00,0x03,
2107    0x01}},
2108  {{0xE2,0xAE,0x86,0xBA,0x92,0x90,0x10,
2109    0x3D,0x80,0x19,0x91,0x0F,0x00,0x03,
2110    0x00}},
2111  {{0xFB,0xC7,0x9F,0xD3,0x8B,0x26,0x11,
2112    0xD3,0x86,0xAF,0x27,0x3F,0x00,0x07,
2113    0x00}}
2114 #if 0
2115  {{0x83,0x4f,0x87,0x51,0x09,0xc0,0x1f,
2116    0x90,0x84,0x8f,0xc1,0x30,0x00,0x06,
2117    0x00}},
2118  {{0x83,0x4f,0x87,0x51,0x09,0x8e,0x1f,
2119    0x5e,0x82,0x5d,0x8f,0x10,0x00,0x06,
2120    0x00}},
2121  {{0x83,0x4f,0x87,0x51,0x09,0xc0,0x1f,
2122    0x90,0x84,0x8f,0xc1,0x30,0x00,0x06,
2123    0x00}},
2124  {{0x83,0x4f,0x87,0x51,0x09,0x8e,0x1f,
2125    0x5e,0x82,0x5d,0x8f,0x10,0x00,0x06,
2126    0x00}},
2127  {{0x83,0x4f,0x87,0x51,0x09,0x10,0x3e,
2128    0xe0,0x84,0xdf,0x11,0x00,0x00,0x06,
2129    0x00}},
2130  {{0x97,0x63,0x9b,0x65,0x1d,0x88,0xf0,
2131    0x58,0x8c,0x57,0x89,0x20,0x00,0x06,
2132    0x01}},
2133  {{0xb3,0x7f,0x97,0x81,0x99,0x30,0xf5,
2134    0x00,0x84,0xff,0x31,0x10,0x00,0x02,
2135    0x01}},
2136  {{0xd3,0x9f,0x97,0xa1,0x19,0x30,0x5a,
2137    0x00,0x84,0xff,0x31,0x09,0x00,0x07,
2138    0x01}},
2139  {{0xe2,0xae,0x86,0xb0,0x88,0x4a,0x10,
2140    0x1a,0x8e,0x19,0x4b,0x2f,0x00,0x03,
2141    0x00}},
2142  {{0xfb,0xc7,0x9f,0xc9,0x81,0xe0,0x10,
2143    0xb0,0x84,0xaf,0xe1,0x2f,0x00,0x07,
2144    0x00}}
2145 #endif
2146 };
2147
2148 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11600x1200_1_H[] =
2149 {
2150  {{0x5B,0x27,0x9F,0x33,0x0B,0x06,0x2E,
2151    0xB3,0x86,0x8F,0x07,0x20,0x00,0x01,
2152    0x00}},
2153  {{0x5B,0x27,0x9F,0x29,0x01,0x8E,0x1F,
2154    0x81,0x84,0x5D,0xD5,0x10,0x00,0x06,
2155    0x00}},
2156  {{0x5B,0x27,0x9F,0x33,0x0B,0x06,0x2E,
2157    0xB3,0x86,0x8F,0x07,0x20,0x00,0x01,
2158    0x00}},
2159  {{0x83,0x4F,0x87,0x5B,0x13,0xD4,0x1F,
2160    0x81,0x84,0x5D,0xD5,0x10,0x00,0x06,
2161    0x00}},
2162  {{0x5B,0x27,0x9F,0x33,0x0B,0x56,0xBA,
2163    0x03,0x86,0xDF,0x57,0x00,0x00,0x01,
2164    0x00}},
2165  {{0x65,0x31,0x89,0x3D,0x95,0xCE,0xF0,
2166    0x7B,0x8E,0x57,0xCF,0x20,0x00,0x01,
2167    0x01}},
2168  {{0x73,0x3F,0x97,0x4B,0x83,0x76,0xF5,
2169    0x23,0x86,0xFF,0x77,0x10,0x00,0x05,
2170    0x01}},
2171  {{0xD3,0x9F,0x97,0xAB,0x03,0x76,0x5A,
2172    0x23,0x86,0xFF,0x77,0x09,0x00,0x03,
2173    0x01}},
2174  {{0xE2,0xAE,0x86,0xBA,0x92,0x90,0x10,
2175    0x3D,0x80,0x19,0x91,0x0F,0x00,0x03,
2176    0x00}},
2177  {{0x97,0x63,0x9B,0x6F,0x07,0xE0,0x10,
2178    0xB0,0x84,0xAF,0xE1,0x2F,0x00,0x06,
2179    0x00}}
2180 #if 0
2181  {{0x5b,0x27,0x9f,0x29,0x01,0xc0,0x1f,
2182    0x90,0x84,0x8f,0xc1,0x30,0x00,0x01,
2183    0x00}},
2184  {{0x5b,0x27,0x9f,0x29,0x01,0x8e,0x1f,
2185    0x5e,0x82,0x5d,0x8f,0x10,0x00,0x01,
2186    0x00}},
2187  {{0x5b,0x27,0x9f,0x29,0x01,0xc0,0x1f,
2188    0x90,0x84,0x8f,0xc1,0x30,0x00,0x01,
2189    0x00}},
2190  {{0x5b,0x27,0x9f,0x29,0x01,0x8e,0x1f,
2191    0x5e,0x82,0x5d,0x8f,0x10,0x00,0x01,
2192    0x00}},
2193  {{0x5b,0x27,0x9f,0x29,0x01,0x10,0x3e,
2194    0xe0,0x84,0xdf,0x11,0x00,0x00,0x01,
2195    0x00}},
2196  {{0x65,0x31,0x89,0x33,0x8b,0x88,0xf0,
2197    0x58,0x8c,0x57,0x89,0x20,0x00,0x01,
2198    0x01}},
2199  {{0x73,0x3f,0x97,0x41,0x99,0x30,0xf5,
2200    0x00,0x84,0xff,0x31,0x10,0x00,0x01,
2201    0x01}},
2202  {{0x83,0x4f,0x87,0x51,0x09,0x30,0x5a,
2203    0x00,0x84,0xff,0x31,0x09,0x00,0x06,
2204    0x01}},
2205  {{0x8a,0x56,0x8e,0x58,0x10,0x4a,0x10,
2206    0x1a,0x8e,0x19,0x4b,0x2f,0x00,0x06,
2207    0x00}},
2208  {{0x97,0x63,0x9b,0x65,0x1d,0xe0,0x10,
2209    0xb0,0x84,0xaf,0xe1,0x2f,0x00,0x06,
2210    0x00}}
2211 #endif
2212 };
2213
2214 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11600x1200_2[] =
2215 {
2216  {{0xFB,0x87,0x86,0x97,0x0F,0x26,0x97,
2217    0x43,0x86,0xDB,0xDA,0x11,0x00,0x07,
2218    0x01}},
2219  {{0xFB,0x87,0x86,0x97,0x0F,0x26,0x97,
2220    0x2A,0x8D,0xC2,0xC1,0x11,0x00,0x07,
2221    0x01}},
2222  {{0xFB,0x87,0x86,0x97,0x0F,0x26,0x97,
2223    0x43,0x86,0xDB,0xDA,0x11,0x00,0x07,
2224    0x01}},
2225  {{0xFB,0x87,0x86,0x97,0x0F,0x26,0x97,
2226    0x2A,0x8D,0xC2,0xC1,0x11,0x00,0x07,
2227    0x01}},
2228  {{0xFB,0x87,0x86,0x97,0x0F,0x26,0x9F,
2229    0x6B,0x8E,0x03,0x02,0x01,0x00,0x07,
2230    0x01}},
2231  {{0xFB,0x63,0x9F,0xA1,0x99,0x26,0xD5,
2232    0xA7,0x8A,0xBF,0xBE,0x01,0x00,0x07,
2233    0x01}},
2234  {{0xFB,0x7F,0x9F,0xAF,0x87,0x26,0xDD,
2235    0xFB,0x8E,0x13,0x12,0x31,0x00,0x03,
2236    0x01}},
2237  {{0xFB,0x9F,0x9F,0xBF,0x97,0x26,0x5B,
2238    0x7B,0x8E,0xFF,0x27,0x39,0x00,0x03,
2239    0x01}},
2240  {{0xFB,0xAE,0x9F,0xC6,0x9E,0x26,0x11,
2241    0x88,0x8B,0x19,0x27,0x1F,0x00,0x03,
2242    0x00}},
2243  {{0xFB,0xC7,0x9F,0xD3,0x8B,0x26,0x11,
2244    0xD3,0x86,0xAF,0x27,0x3F,0x00,0x07,
2245    0x00}}
2246 #if 0
2247  {{0xfb,0x88,0x87,0x90,0x08,0xe0,0x96,
2248    0x20,0x84,0xb9,0xb8,0x01,0x00,0x07,
2249    0x01}},
2250  {{0xfb,0x88,0x87,0x90,0x08,0xe0,0x96,
2251    0x07,0x8b,0xa0,0x9f,0x01,0x00,0x07,
2252    0x01}},
2253  {{0xfb,0x88,0x87,0x90,0x08,0xe0,0x96,
2254    0x20,0x84,0xb9,0xb8,0x01,0x00,0x07,
2255    0x01}},
2256  {{0xfb,0x88,0x87,0x90,0x08,0xe0,0x96,
2257    0x07,0x8b,0xa0,0x9f,0x01,0x00,0x07,
2258    0x01}},
2259  {{0xfb,0x88,0x87,0x90,0x08,0xe0,0x96,
2260    0x48,0x8c,0xe1,0xe0,0x11,0x00,0x07,
2261    0x01}},
2262  {{0xfb,0x63,0x9f,0x9a,0x92,0xe0,0xd4,
2263    0x9b,0x8f,0x9d,0x9c,0x21,0x00,0x07,
2264    0x01}},
2265  {{0xfb,0x7f,0x9f,0xa8,0x80,0xe0,0xd4,
2266    0xef,0x83,0xff,0xe1,0x21,0x00,0x03,
2267    0x01}},
2268  {{0xfb,0x9f,0x9f,0xb8,0x90,0xe0,0x5a,
2269    0x6f,0x83,0xff,0xe1,0x29,0x00,0x03,
2270    0x01}},
2271  {{0xfb,0xae,0x9f,0xbf,0x97,0xe0,0x10,
2272    0x7c,0x80,0x19,0xe1,0x0f,0x00,0x03,
2273    0x00}},
2274  {{0xfb,0xc7,0x9f,0xc9,0x84,0xe0,0x10,
2275    0xc7,0x8b,0xaf,0xe1,0x0f,0x00,0x07,
2276    0x00}}
2277 #endif
2278 };
2279
2280 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT11600x1200_2_H[] =
2281 {
2282  {{0xD3,0x5F,0x9E,0x6F,0x07,0x26,0x97,
2283    0x43,0x86,0xDB,0xDA,0x11,0x00,0x02,
2284    0x01}},
2285  {{0xD3,0x27,0x97,0x6F,0x07,0x26,0x97,
2286    0x6B,0x8E,0x83,0x82,0x01,0x00,0x03,
2287    0x01}},
2288  {{0xD3,0x5F,0x9E,0x6F,0x07,0x26,0x97,
2289    0x43,0x86,0xDB,0xDA,0x11,0x00,0x02,
2290    0x01}},
2291  {{0xD3,0x27,0x97,0x6F,0x07,0x26,0x97,
2292    0x07,0x8B,0xA0,0x9F,0x01,0x00,0x02,
2293    0x01}},
2294  {{0xD3,0x27,0x97,0x6F,0x07,0x26,0x97,
2295    0x6B,0x8E,0x83,0x82,0x01,0x00,0x03,
2296    0x01}},
2297  {{0xC9,0x31,0x8D,0x6F,0x07,0x26,0xD5,
2298    0xA7,0x8A,0xBF,0xBE,0x01,0x00,0x03,
2299    0x01}},
2300  {{0xBB,0x3F,0x9F,0x6F,0x87,0x26,0xDD,
2301    0xFB,0x8E,0x13,0x12,0x31,0x00,0x02,
2302    0x01}},
2303  {{0xAB,0x4F,0x8F,0x68,0x80,0xE0,0x5A,
2304    0x6F,0x83,0xFF,0xE1,0x29,0x00,0x02,
2305    0x01}},
2306  {{0xA3,0x56,0x87,0x67,0x9F,0xE0,0x10,
2307    0x7C,0x80,0x19,0xE1,0x0F,0x00,0x06,
2308    0x00}},
2309  {{0x97,0x63,0x9B,0x68,0x00,0xE0,0x10,
2310    0xC7,0x8B,0xAF,0xE1,0x0F,0x00,0x02,
2311    0x00}}
2312 #if 0
2313  {{0xd3,0x60,0x9f,0x68,0x00,0xe0,0x96,
2314    0x20,0x84,0xb9,0xb8,0x01,0x00,0x02,
2315    0x01}},
2316  {{0xd3,0x60,0x9f,0x68,0x00,0xe0,0x96,
2317    0x07,0x8b,0xa0,0x9f,0x01,0x00,0x02,
2318    0x01}},
2319  {{0xd3,0x60,0x9f,0x68,0x00,0xe0,0x96,
2320    0x20,0x84,0xb9,0xb8,0x01,0x00,0x02,
2321    0x01}},
2322  {{0xd3,0x60,0x9f,0x68,0x00,0xe0,0x96,
2323    0x07,0x8b,0xa0,0x9f,0x01,0x00,0x02,
2324    0x01}},
2325  {{0xd3,0x60,0x9f,0x68,0x00,0xe0,0x96,
2326    0x48,0x8c,0xe1,0xe0,0x11,0x00,0x02,
2327    0x01}},
2328  {{0xc9,0x31,0x8d,0x68,0x00,0xe0,0xd4,
2329    0x9b,0x8f,0x9d,0x9c,0x21,0x00,0x03,
2330    0x01}},
2331  {{0xbb,0x3f,0x9f,0x68,0x80,0xe0,0xd4,
2332    0xef,0x83,0xff,0xe1,0x21,0x00,0x02,
2333    0x01}},
2334  {{0xab,0x4f,0x8f,0x68,0x80,0xe0,0x5a,
2335    0x6f,0x83,0xff,0xe1,0x29,0x00,0x02,
2336    0x01}},
2337  {{0xa3,0x56,0x87,0x67,0x9f,0xe0,0x10,
2338    0x7c,0x80,0x19,0xe1,0x0f,0x00,0x06,
2339    0x00}},
2340  {{0x97,0x63,0x9b,0x68,0x00,0xe0,0x10,
2341    0xc7,0x8b,0xaf,0xe1,0x0f,0x00,0x02,
2342    0x00}}
2343 #endif
2344 };
2345
2346 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT1XXXxXXX_1[] =
2347 {
2348  {{0x5f,0x4f,0x82,0x55,0x81,0xbf,0x1f,
2349    0x9c,0x8e,0x96,0xb9,0x30,0x00,0x05,
2350    0x00}},
2351  {{0x5f,0x4f,0x82,0x55,0x81,0xbf,0x1f,
2352    0x9c,0x8e,0x96,0xb9,0x30,0x00,0x05,
2353    0x00}},
2354  {{0x5f,0x4f,0x82,0x55,0x81,0xbf,0x1f,
2355    0x9c,0x8e,0x96,0xb9,0x30,0x00,0x05,
2356    0x00}},
2357  {{0x5f,0x4f,0x82,0x55,0x81,0xbf,0x1f,
2358    0x9c,0x8e,0x96,0xb9,0x30,0x00,0x05,
2359    0x00}},
2360  {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e,
2361    0xe9,0x8b,0xe7,0x04,0x00,0x00,0x05,
2362    0x00}},
2363  {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0,
2364    0x58,0x8c,0x57,0x73,0x20,0x00,0x06,
2365    0x01}},
2366  {{0xa3,0x7f,0x87,0x86,0x97,0x24,0xf5,
2367    0x02,0x88,0xff,0x25,0x10,0x00,0x02,
2368    0x01}},
2369  {{0xce,0x9f,0x92,0xa8,0x14,0x28,0x5a,
2370    0x00,0x84,0xff,0x29,0x09,0x00,0x07,
2371    0x01}},
2372  {{0xce,0x9f,0x92,0xa9,0x17,0x24,0xf5,
2373    0x02,0x88,0xff,0x25,0x10,0x00,0x07,
2374    0x01}}
2375 };
2376
2377 static const SiS_LVDSCRT1DataStruct  SiS310_LVDSCRT1XXXxXXX_1_H[] =
2378 {
2379  {{0x38,0x27,0x9c,0x2c,0x80,0xbf,0x1f,
2380    0x9c,0x8e,0x96,0xb9,0x30,0x00,0x00,
2381    0x00}},
2382  {{0x38,0x27,0x9c,0x2c,0x80,0xbf,0x1f,
2383    0x9c,0x8e,0x96,0xb9,0x30,0x00,0x00,
2384    0x00}},
2385  {{0x38,0x27,0x9c,0x2c,0x80,0xbf,0x1f,
2386    0x9c,0x8e,0x96,0xb9,0x30,0x00,0x00,
2387    0x00}},
2388  {{0x38,0x27,0x9c,0x2c,0x80,0xbf,0x1f,
2389    0x9c,0x8e,0x96,0xb9,0x30,0x00,0x00,
2390    0x00}},
2391  {{0x38,0x27,0x9c,0x2c,0x80,0x0b,0x3e,
2392    0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00,
2393    0x00}},
2394  {{0x4d,0x31,0x91,0x3b,0x03,0x72,0xf0,
2395    0x58,0x8c,0x57,0x73,0x20,0x00,0x01,
2396    0x01}},
2397  {{0x63,0x3f,0x87,0x4a,0x92,0x24,0xf5,
2398    0x02,0x88,0xff,0x25,0x10,0x00,0x01,
2399    0x01}}
2400 };
2401
2402
2403 /* CRT1 CRTC for Chrontel TV slave modes */
2404
2405 static const SiS_LVDSCRT1DataStruct  SiS310_CHTVCRT1UNTSC[] =
2406
2407  {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
2408    0xe8,0x84,0x8f,0x57,0x20,0x00,0x01,
2409    0x00 }},
2410  {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
2411    0xd0,0x82,0x5d,0x57,0x00,0x00,0x01,
2412    0x00 }},
2413  {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
2414    0xe8,0x84,0x8f,0x57,0x20,0x00,0x01,
2415    0x00 }},
2416  {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
2417    0xd0,0x82,0x5d,0x57,0x00,0x00,0x01,
2418    0x00 }},
2419  {{0x5d,0x4f,0x81,0x56,0x99,0x56,0xba,
2420    0x0a,0x84,0xdf,0x57,0x00,0x00,0x01,
2421    0x00 }},
2422  {{0x80,0x63,0x84,0x6d,0x0f,0xec,0xf0,
2423    0x7a,0x8f,0x57,0xed,0x20,0x00,0x06,
2424    0x01 }},
2425  {{0x8c,0x7f,0x90,0x86,0x09,0xaf,0xf5,
2426    0x36,0x88,0xff,0xb0,0x10,0x00,0x02,
2427    0x01}}
2428 };
2429
2430 static const SiS_LVDSCRT1DataStruct  SiS310_CHTVCRT1ONTSC[] =
2431 {
2432  {{0x63,0x4f,0x87,0x5a,0x9f,0x0b,0x3e,
2433    0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01,
2434    0x00 }},
2435  {{0x63,0x4f,0x87,0x5a,0x9f,0x0b,0x3e,
2436    0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01,
2437    0x00 }},
2438  {{0x63,0x4f,0x87,0x5a,0x9f,0x0b,0x3e,
2439    0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01,
2440    0x00 }},
2441  {{0x63,0x4f,0x87,0x5a,0x9f,0x0b,0x3e,
2442    0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01,
2443    0x00 }},
2444  {{0x5d,0x4f,0x81,0x58,0x9d,0x0b,0x3e,
2445    0xe8,0x84,0xdf,0x0c,0x00,0x00,0x01,
2446    0x00 }},
2447  {{0x7d,0x63,0x81,0x68,0x0e,0xba,0xf0,
2448    0x78,0x8a,0x57,0xbb,0x20,0x00,0x06,
2449    0x01 }},
2450  {{0x8c,0x7f,0x90,0x82,0x06,0x46,0xf5,
2451    0x15,0x88,0xff,0x47,0x70,0x00,0x02,
2452    0x01 }}
2453 };
2454
2455 static const SiS_LVDSCRT1DataStruct  SiS310_CHTVCRT1UPAL[] =
2456
2457  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2458    0xf8,0x83,0x8f,0x70,0x20,0x00,0x05,
2459    0x00 }},
2460  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2461    0xde,0x81,0x5d,0x70,0x00,0x00,0x05,
2462    0x00 }},
2463  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2464    0xf8,0x83,0x8f,0x70,0x20,0x00,0x05,
2465    0x00 }},
2466  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2467    0xde,0x81,0x5d,0x70,0x00,0x00,0x05,
2468    0x00 }},
2469  {{0x64,0x4f,0x88,0x5a,0x9f,0x6f,0xba,
2470    0x15,0x83,0xdf,0x70,0x00,0x00,0x01,
2471    0x00 }},
2472  {{0x73,0x63,0x97,0x69,0x8b,0xec,0xf0,
2473    0x90,0x8c,0x57,0xed,0x20,0x00,0x05,
2474    0x01 }},
2475  {{0xaa,0x7f,0x8e,0x8e,0x96,0xe6,0xf5,
2476    0x50,0x88,0xff,0xe7,0x10,0x00,0x02,
2477    0x01}}
2478 };
2479
2480 static const SiS_LVDSCRT1DataStruct  SiS310_CHTVCRT1OPAL[] =
2481 {
2482  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2483    0xf0,0x83,0x8f,0x70,0x20,0x00,0x05,
2484    0x00 }},
2485  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2486    0xde,0x81,0x5d,0x70,0x00,0x00,0x05,
2487    0x00 }},
2488  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2489    0xf0,0x83,0x8f,0x70,0x20,0x00,0x05,
2490    0x00 }},
2491  {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
2492    0xde,0x81,0x5d,0x70,0x00,0x00,0x05,
2493    0x00 }},
2494  {{0x64,0x4f,0x88,0x58,0x9d,0x6f,0xba,
2495    0x15,0x83,0xdf,0x70,0x00,0x00,0x01,
2496    0x00 }},
2497  {{0x71,0x63,0x95,0x69,0x8c,0x6f,0xf0,
2498    0x5a,0x8b,0x57,0x70,0x20,0x00,0x05,
2499    0x01 }},
2500  {{0xaa,0x7f,0x8e,0x8f,0x96,0x69,0xf5,
2501    0x28,0x88,0xff,0x6a,0x10,0x00,0x02,
2502    0x01 }}
2503 };
2504
2505
2506 static const SiS_CHTVRegDataStruct SiS310_CHTVReg_UNTSC[] =
2507 {
2508  {{0x4a,0x77,0xbb,0x94,0x84,0x48,0xfe,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2509  {{0x4a,0x77,0xbb,0x94,0x84,0x48,0xfe,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2510  {{0x4a,0x77,0xbb,0x94,0x84,0x48,0xfe,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2511  {{0x4a,0x77,0xbb,0x94,0x84,0x48,0xfe,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2512  {{0x6a,0x77,0xbb,0x6e,0x84,0x2e,0x02,0x5a,0x04,0x00,0x80,0x20,0x7e,0x80,0x98,0x00}},
2513  {{0xcf,0x77,0xb7,0xc8,0x84,0x3b,0x02,0x5a,0x04,0x00,0x80,0x19,0x88,0x30,0x7f,0x00}},
2514  {{0xee,0x77,0xbb,0x66,0x87,0x32,0x01,0x5a,0x04,0x00,0x80,0x1b,0xd3,0xf2,0x36,0x00}}
2515 }; /* WRONG: 0x02: should be 0xfx, because if CIVEnable is clear, this should be set;
2516              0x07: Blacklevel: NTSC/PAL-M: Should be 131 (0x83), and not 0x50/0x5a
2517                                PAL/PAL-N:  110 (0x6e)
2518                                NTSC-J:     102 (0x66)
2519              0x0c-0x0f: CIV is not default as in datasheet
2520       MISSING: 0x21: Should set D1 to ZERO (for NTSC, PAL-M) or ONE (PAL, NTSC-J)
2521       Most of this is wrong in all NTSC and PAL register arrays. But I won't correct
2522       it as long as it works. For NTSC-J, the blacklevel is corrected in init301.c;
2523       for PAL-M and PAL-N all above is corrected.
2524     */
2525
2526 static const SiS_CHTVRegDataStruct SiS310_CHTVReg_ONTSC[] =
2527 {
2528  {{0x49,0x77,0xbb,0x7b,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2529  {{0x49,0x77,0xbb,0x7b,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2530  {{0x49,0x77,0xbb,0x7b,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2531  {{0x49,0x77,0xbb,0x7b,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2532  {{0x69,0x77,0xbb,0x6e,0x84,0x1e,0x00,0x5a,0x04,0x00,0x80,0x25,0x1a,0x43,0x04,0x00}},
2533  {{0xce,0x77,0xb7,0xb6,0x83,0x2c,0x02,0x5a,0x04,0x00,0x80,0x1c,0x00,0x82,0x97,0x00}},
2534  {{0xed,0x77,0xbb,0x66,0x8c,0x21,0x02,0x5a,0x04,0x00,0x80,0x1f,0x9f,0xc1,0x0c,0x00}}
2535 };
2536
2537 static const SiS_CHTVRegDataStruct SiS310_CHTVReg_UPAL[] =
2538 {
2539  {{0x41,0x7f,0xb7,0x34,0xad,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2540  {{0x41,0x7f,0xb7,0x80,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2541  {{0x41,0x7f,0xb7,0x34,0xad,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2542  {{0x41,0x7f,0xb7,0x12,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2543  {{0x61,0x7f,0xb7,0x99,0x84,0x35,0x04,0x5a,0x05,0x00,0x80,0x26,0x2a,0x55,0x5d,0x00}},
2544  {{0xc3,0x7f,0xb7,0x7a,0x84,0x40,0x02,0x5a,0x05,0x00,0x80,0x1f,0x84,0x3d,0x28,0x00}},
2545  {{0xe5,0x7f,0xb7,0x1d,0xa7,0x3e,0x04,0x5a,0x05,0x00,0x80,0x20,0x3e,0xe4,0x22,0x00}}
2546 };
2547
2548 static const SiS_CHTVRegDataStruct SiS310_CHTVReg_OPAL[] =
2549 {
2550  {{0x41,0x7f,0xb7,0x36,0xad,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2551  {{0x41,0x7f,0xb7,0x86,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2552  {{0x41,0x7f,0xb7,0x36,0xad,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2553  {{0x41,0x7f,0xb7,0x86,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2554  {{0x61,0x7f,0xb7,0x99,0x84,0x35,0x04,0x5a,0x05,0x00,0x80,0x26,0x2a,0x55,0x5d,0x00}},
2555  {{0xc1,0x7f,0xb7,0x4d,0x8c,0x1e,0x31,0x5a,0x05,0x00,0x80,0x26,0x78,0x19,0x34,0x00}},
2556  {{0xe4,0x7f,0xb7,0x1e,0xaf,0x29,0x37,0x5a,0x05,0x00,0x80,0x25,0x8c,0xb2,0x2a,0x00}}
2557 };
2558
2559 static const SiS_CHTVRegDataStruct SiS310_CHTVReg_UPALM[] =
2560 {
2561  {{0x52,0x77,0xbb,0x94,0x84,0x48,0xfe,0x83,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2562  {{0x52,0x77,0xbb,0x94,0x84,0x48,0xfe,0x83,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2563  {{0x52,0x77,0xbb,0x94,0x84,0x48,0xfe,0x83,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2564  {{0x52,0x77,0xbb,0x94,0x84,0x48,0xfe,0x83,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2565  {{0x72,0x77,0xfb,0x6e,0x84,0x2e,0x02,0x83,0x04,0x00,0x80,0x20,0x76,0xdb,0x6e,0x00}},
2566  {{0xd7,0x77,0xf7,0xc8,0x84,0x3b,0x02,0x83,0x04,0x00,0x80,0x19,0x84,0x0a,0xc7,0x00}},
2567  {{0xf6,0x77,0xfb,0x66,0x87,0x32,0x01,0x83,0x04,0x00,0x80,0x1b,0xdc,0xb0,0x8d,0x00}}
2568 #if 0 /* Correct blacklevel and CFRB */
2569  {{0x72,0x77,0xbb,0x6e,0x84,0x2e,0x02,0x5a,0x04,0x00,0x80,0x20,0x76,0xdb,0x6e,0x00}},
2570  {{0xd7,0x77,0xb7,0xc8,0x84,0x3b,0x02,0x5a,0x04,0x00,0x80,0x19,0x84,0x0a,0xc7,0x00}},
2571  {{0xf6,0x77,0xbb,0x66,0x87,0x32,0x01,0x5a,0x04,0x00,0x80,0x1b,0xdc,0xb0,0x8d,0x00}}
2572 #endif
2573 };
2574
2575 static const SiS_CHTVRegDataStruct SiS310_CHTVReg_OPALM[] =
2576 {
2577  {{0x51,0x77,0xbb,0x7b,0x84,0x34,0x00,0x83,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2578  {{0x51,0x77,0xbb,0x7b,0x84,0x34,0x00,0x83,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2579  {{0x51,0x77,0xbb,0x7b,0x84,0x34,0x00,0x83,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2580  {{0x51,0x77,0xbb,0x7b,0x84,0x34,0x00,0x83,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01}},
2581  {{0x71,0x77,0xfb,0x6e,0x84,0x1e,0x00,0x83,0x04,0x00,0x80,0x25,0x1a,0x1f,0x59,0x00}},
2582  {{0xd6,0x77,0xf7,0xb6,0x83,0x2c,0x02,0x83,0x04,0x00,0x80,0x1b,0xf8,0x1f,0x82,0x00}},
2583  {{0xf5,0x77,0xfb,0x66,0x8c,0x21,0x02,0x83,0x04,0x00,0x80,0x1f,0x58,0x46,0x9f,0x00}}
2584 #if 0 /* Correct blacklevel and CFRB */
2585  {{0x71,0x77,0xbb,0x6e,0x84,0x1e,0x00,0x5a,0x04,0x00,0x80,0x25,0x1a,0x1f,0x59,0x00}},
2586  {{0xd6,0x77,0xb7,0xb6,0x83,0x2c,0x02,0x5a,0x04,0x00,0x80,0x1b,0xf8,0x1f,0x82,0x00}},
2587  {{0xf5,0x77,0xbb,0x66,0x8c,0x21,0x02,0x5a,0x04,0x00,0x80,0x1f,0x58,0x46,0x9f,0x00}}
2588 #endif
2589 };
2590
2591 static const SiS_CHTVRegDataStruct SiS310_CHTVReg_UPALN[] =
2592 {
2593  {{0x41,0x7f,0xb7,0x34,0xad,0x50,0x34,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2594  {{0x41,0x7f,0xb7,0x80,0x85,0x50,0x00,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2595  {{0x41,0x7f,0xb7,0x34,0xad,0x50,0x34,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2596  {{0x41,0x7f,0xb7,0x12,0x85,0x50,0x00,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2597  {{0x61,0x7f,0xb7,0x99,0x84,0x35,0x04,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2598  {{0xc3,0x7f,0xb7,0x7a,0x84,0x40,0x02,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2599  {{0xe5,0x7f,0xb7,0x1d,0xa7,0x3e,0x04,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}}
2600 #if 0 /* Correct blacklevel, CIV and CFRB */
2601  {{0x61,0x7f,0xb7,0x99,0x84,0x35,0x04,0x5a,0x05,0x00,0x80,0x1f,0x0d,0x54,0x5e,0x00}},
2602  {{0xc3,0x7f,0xb7,0x7a,0x84,0x40,0x02,0x5a,0x05,0x00,0x80,0x19,0x78,0xef,0x35,0x00}},
2603  {{0xe5,0x7f,0xb7,0x1d,0xa7,0x3e,0x04,0x5a,0x05,0x00,0x80,0x1a,0x33,0x3f,0x2f,0x00}}
2604 #endif
2605 };
2606
2607 static const SiS_CHTVRegDataStruct SiS310_CHTVReg_OPALN[] =
2608 {
2609  {{0x41,0x7f,0xb7,0x36,0xad,0x50,0x34,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2610  {{0x41,0x7f,0xb7,0x86,0x85,0x50,0x00,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2611  {{0x41,0x7f,0xb7,0x36,0xad,0x50,0x34,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2612  {{0x41,0x7f,0xb7,0x86,0x85,0x50,0x00,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2613  {{0x61,0x7f,0xb7,0x99,0x84,0x35,0x04,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2614  {{0xc1,0x7f,0xb7,0x4d,0x8c,0x1e,0x31,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}},
2615  {{0xe4,0x7f,0xb7,0x1e,0xaf,0x29,0x37,0x6e,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x03}}
2616 #if 0 /* Correct blacklevel, CIV and CFRB */
2617  {{0x61,0x7f,0xb7,0x99,0x84,0x35,0x04,0x5a,0x05,0x00,0x80,0x1f,0x0d,0x54,0x5e,0x00}},
2618  {{0xc1,0x7f,0xb7,0x4d,0x8c,0x1e,0x31,0x5a,0x05,0x00,0x80,0x1f,0x15,0xc0,0x1e,0x00}},
2619  {{0xe4,0x7f,0xb7,0x1e,0xaf,0x29,0x37,0x5a,0x05,0x00,0x80,0x1d,0xf1,0x6c,0xcb,0x00}}
2620 #endif
2621 };
2622
2623 static const UCHAR SiS310_CHTVVCLKUNTSC[] = {0x41,0x41,0x41,0x41,0x42,0x46,0x53};
2624 static const UCHAR SiS310_CHTVVCLKONTSC[] = {0x48,0x48,0x48,0x48,0x45,0x43,0x51};
2625
2626 static const UCHAR SiS310_CHTVVCLKUPAL[]  = {0x47,0x47,0x47,0x47,0x48,0x4a,0x54};
2627 static const UCHAR SiS310_CHTVVCLKOPAL[]  = {0x47,0x47,0x47,0x47,0x48,0x4f,0x52};
2628
2629 static const UCHAR SiS310_CHTVVCLKUPALM[] = {0x41,0x41,0x41,0x41,0x42,0x46,0x53};
2630 static const UCHAR SiS310_CHTVVCLKOPALM[] = {0x48,0x48,0x48,0x48,0x45,0x43,0x51};
2631
2632 static const UCHAR SiS310_CHTVVCLKUPALN[] = {0x47,0x47,0x47,0x47,0x48,0x4a,0x54};
2633 static const UCHAR SiS310_CHTVVCLKOPALN[] = {0x47,0x47,0x47,0x47,0x48,0x4f,0x52};
2634
2635