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