xref: /linux/drivers/usb/misc/sisusbvga/sisusb_tables.h (revision 164666fa66669d437bdcc8d5f1744a2aee73be41)
1 /* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
2 /* $XFree86$ */
3 /* $XdotOrg$ */
4 /*
5  * Data tables for init.c
6  *
7  * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
8  *
9  * If distributed as part of the Linux kernel, the following license terms
10  * apply:
11  *
12  * * This program is free software; you can redistribute it and/or modify
13  * * it under the terms of the GNU General Public License as published by
14  * * the Free Software Foundation; either version 2 of the named License,
15  * * or any later version.
16  * *
17  * * This program is distributed in the hope that it will be useful,
18  * * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * * GNU General Public License for more details.
21  * *
22  * * You should have received a copy of the GNU General Public License
23  * * along with this program; if not, write to the Free Software
24  * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
25  *
26  * Otherwise, the following license terms apply:
27  *
28  * * Redistribution and use in source and binary forms, with or without
29  * * modification, are permitted provided that the following conditions
30  * * are met:
31  * * 1) Redistributions of source code must retain the above copyright
32  * *    notice, this list of conditions and the following disclaimer.
33  * * 2) Redistributions in binary form must reproduce the above copyright
34  * *    notice, this list of conditions and the following disclaimer in the
35  * *    documentation and/or other materials provided with the distribution.
36  * * 3) The name of the author may not be used to endorse or promote products
37  * *    derived from this software without specific prior written permission.
38  * *
39  * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
40  * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
41  * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
42  * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
43  * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
44  * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
45  * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
46  * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
47  * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
48  * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
49  *
50  * Author:	Thomas Winischhofer <thomas@winischhofer.net>
51  *
52  */
53 
54 #ifndef _SISUSB_TABLES_H_
55 #define _SISUSB_TABLES_H_
56 
57 static const unsigned char SiS_MDA_DAC[] = {
58 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
59 	0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
60 	0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
61 	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
62 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63 	0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
64 	0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
65 	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F
66 };
67 
68 static const unsigned char SiS_CGA_DAC[] = {
69 	0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
70 	0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
71 	0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
72 	0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
73 	0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
74 	0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
75 	0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
76 	0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F
77 };
78 
79 static const unsigned char SiS_EGA_DAC[] = {
80 	0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x05, 0x15,
81 	0x20, 0x30, 0x24, 0x34, 0x21, 0x31, 0x25, 0x35,
82 	0x08, 0x18, 0x0C, 0x1C, 0x09, 0x19, 0x0D, 0x1D,
83 	0x28, 0x38, 0x2C, 0x3C, 0x29, 0x39, 0x2D, 0x3D,
84 	0x02, 0x12, 0x06, 0x16, 0x03, 0x13, 0x07, 0x17,
85 	0x22, 0x32, 0x26, 0x36, 0x23, 0x33, 0x27, 0x37,
86 	0x0A, 0x1A, 0x0E, 0x1E, 0x0B, 0x1B, 0x0F, 0x1F,
87 	0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F
88 };
89 
90 static const unsigned char SiS_VGA_DAC[] = {
91 	0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
92 	0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
93 	0x00, 0x05, 0x08, 0x0B, 0x0E, 0x11, 0x14, 0x18,
94 	0x1C, 0x20, 0x24, 0x28, 0x2D, 0x32, 0x38, 0x3F,
95 	0x00, 0x10, 0x1F, 0x2F, 0x3F, 0x1F, 0x27, 0x2F,
96 	0x37, 0x3F, 0x2D, 0x31, 0x36, 0x3A, 0x3F, 0x00,
97 	0x07, 0x0E, 0x15, 0x1C, 0x0E, 0x11, 0x15, 0x18,
98 	0x1C, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x00, 0x04,
99 	0x08, 0x0C, 0x10, 0x08, 0x0A, 0x0C, 0x0E, 0x10,
100 	0x0B, 0x0C, 0x0D, 0x0F, 0x10
101 };
102 
103 static const struct SiS_St SiSUSB_SModeIDTable[] = {
104 	{0x03, 0x0010, 0x18, 0x02, 0x02, 0x00, 0x01, 0x03, 0x40},
105 	{0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
106 };
107 
108 static const struct SiS_ModeResInfo SiSUSB_ModeResInfo[] = {
109 	{320, 200, 8, 8},	/* 0x00 */
110 	{320, 240, 8, 8},	/* 0x01 */
111 	{320, 400, 8, 8},	/* 0x02 */
112 	{400, 300, 8, 8},	/* 0x03 */
113 	{512, 384, 8, 8},	/* 0x04 */
114 	{640, 400, 8, 16},	/* 0x05 */
115 	{640, 480, 8, 16},	/* 0x06 */
116 	{800, 600, 8, 16},	/* 0x07 */
117 	{1024, 768, 8, 16},	/* 0x08 */
118 	{1280, 1024, 8, 16},	/* 0x09 */
119 	{1600, 1200, 8, 16},	/* 0x0a */
120 	{1920, 1440, 8, 16},	/* 0x0b */
121 	{2048, 1536, 8, 16},	/* 0x0c */
122 	{720, 480, 8, 16},	/* 0x0d */
123 	{720, 576, 8, 16},	/* 0x0e */
124 	{1280, 960, 8, 16},	/* 0x0f */
125 	{800, 480, 8, 16},	/* 0x10 */
126 	{1024, 576, 8, 16},	/* 0x11 */
127 	{1280, 720, 8, 16},	/* 0x12 */
128 	{856, 480, 8, 16},	/* 0x13 */
129 	{1280, 768, 8, 16},	/* 0x14 */
130 	{1400, 1050, 8, 16},	/* 0x15 */
131 	{1152, 864, 8, 16},	/* 0x16 */
132 	{848, 480, 8, 16},	/* 0x17 */
133 	{1360, 768, 8, 16},	/* 0x18 */
134 	{1024, 600, 8, 16},	/* 0x19 */
135 	{1152, 768, 8, 16},	/* 0x1a */
136 	{768, 576, 8, 16},	/* 0x1b */
137 	{1360, 1024, 8, 16},	/* 0x1c */
138 	{1680, 1050, 8, 16},	/* 0x1d */
139 	{1280, 800, 8, 16},	/* 0x1e */
140 	{1920, 1080, 8, 16},	/* 0x1f */
141 	{960, 540, 8, 16},	/* 0x20 */
142 	{960, 600, 8, 16}	/* 0x21 */
143 };
144 
145 static const struct SiS_StandTable SiSUSB_StandTable[] = {
146 	/* MD_3_400 - mode 0x03 - 400 */
147 	{
148 	 0x50, 0x18, 0x10, 0x1000,
149 	 {0x00, 0x03, 0x00, 0x02},
150 	 0x67,
151 	 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
152 	  0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
153 	  0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
154 	  0xff},
155 	 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
156 	  0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
157 	  0x0c, 0x00, 0x0f, 0x08},
158 	 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00, 0xff}
159 	 },
160 	/* Generic for VGA and higher */
161 	{
162 	 0x00, 0x00, 0x00, 0x0000,
163 	 {0x01, 0x0f, 0x00, 0x0e},
164 	 0x23,
165 	 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
166 	  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 	  0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
168 	  0xff},
169 	 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
170 	  0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
171 	  0x01, 0x00, 0x00, 0x00},
172 	 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, 0xff}
173 	 }
174 };
175 
176 static const struct SiS_Ext SiSUSB_EModeIDTable[] = {
177 	{0x2e, 0x0a1b, 0x0101, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},	/* 640x480x8 */
178 	{0x2f, 0x0a1b, 0x0100, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x05, 0x10, 0},	/* 640x400x8 */
179 	{0x30, 0x2a1b, 0x0103, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},	/* 800x600x8 */
180 	{0x31, 0x4a1b, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},	/* 720x480x8 */
181 	{0x32, 0x4a1b, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},	/* 720x576x8 */
182 	{0x33, 0x4a1d, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},	/* 720x480x16 */
183 	{0x34, 0x6a1d, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},	/* 720x576x16 */
184 	{0x35, 0x4a1f, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},	/* 720x480x32 */
185 	{0x36, 0x6a1f, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},	/* 720x576x32 */
186 	{0x38, 0x0a1b, 0x0105, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},	/* 1024x768x8 */
187 	{0x3a, 0x0e3b, 0x0107, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},	/* 1280x1024x8 */
188 	{0x41, 0x9a1d, 0x010e, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},	/* 320x200x16 */
189 	{0x44, 0x0a1d, 0x0111, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},	/* 640x480x16 */
190 	{0x47, 0x2a1d, 0x0114, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},	/* 800x600x16 */
191 	{0x4a, 0x0a3d, 0x0117, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},	/* 1024x768x16 */
192 	{0x4d, 0x0e7d, 0x011a, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},	/* 1280x1024x16 */
193 	{0x50, 0x9a1b, 0x0132, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},	/* 320x240x8  */
194 	{0x51, 0xba1b, 0x0133, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},	/* 400x300x8  */
195 	{0x52, 0xba1b, 0x0134, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},	/* 512x384x8  */
196 	{0x56, 0x9a1d, 0x0135, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},	/* 320x240x16 */
197 	{0x57, 0xba1d, 0x0136, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},	/* 400x300x16 */
198 	{0x58, 0xba1d, 0x0137, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},	/* 512x384x16 */
199 	{0x59, 0x9a1b, 0x0138, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},	/* 320x200x8  */
200 	{0x5c, 0xba1f, 0x0000, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},	/* 512x384x32 */
201 	{0x5d, 0x0a1d, 0x0139, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x07, 0x10, 0},	/* 640x400x16 */
202 	{0x5e, 0x0a1f, 0x0000, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x07, 0x10, 0},	/* 640x400x32 */
203 	{0x62, 0x0a3f, 0x013a, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},	/* 640x480x32 */
204 	{0x63, 0x2a3f, 0x013b, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},	/* 800x600x32 */
205 	{0x64, 0x0a7f, 0x013c, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},	/* 1024x768x32 */
206 	{0x65, 0x0eff, 0x013d, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},	/* 1280x1024x32 */
207 	{0x70, 0x6a1b, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},	/* 800x480x8 */
208 	{0x71, 0x4a1b, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},	/* 1024x576x8 */
209 	{0x74, 0x4a1d, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},	/* 1024x576x16 */
210 	{0x75, 0x0a3d, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},	/* 1280x720x16 */
211 	{0x76, 0x6a1f, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},	/* 800x480x32 */
212 	{0x77, 0x4a1f, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},	/* 1024x576x32 */
213 	{0x78, 0x0a3f, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},	/* 1280x720x32 */
214 	{0x79, 0x0a3b, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},	/* 1280x720x8 */
215 	{0x7a, 0x6a1d, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},	/* 800x480x16 */
216 	{0x23, 0x0e3b, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},	/* 1280x768x8 */
217 	{0x24, 0x0e7d, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},	/* 1280x768x16 */
218 	{0x25, 0x0eff, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},	/* 1280x768x32 */
219 	{0x39, 0x6a1b, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28, -1},	/* 848x480 */
220 	{0x3b, 0x6a3d, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28,
221 	 -1},
222 	{0x3e, 0x6a7f, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28,
223 	 -1},
224 	{0x3f, 0x6a1b, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a, -1},	/* 856x480 */
225 	{0x42, 0x6a3d, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a,
226 	 -1},
227 	{0x45, 0x6a7f, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a,
228 	 -1},
229 	{0x4f, 0x9a1f, 0x0000, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},	/* 320x200x32 */
230 	{0x53, 0x9a1f, 0x0000, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},	/* 320x240x32 */
231 	{0x54, 0xba1f, 0x0000, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},	/* 400x300x32 */
232 	{0x5f, 0x6a1b, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c, -1},	/* 768x576 */
233 	{0x60, 0x6a1d, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c,
234 	 -1},
235 	{0x61, 0x6a3f, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c,
236 	 -1},
237 	{0x1d, 0x6a1b, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d, -1},	/* 960x540 */
238 	{0x1e, 0x6a3d, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d,
239 	 -1},
240 	{0x1f, 0x6a7f, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d,
241 	 -1},
242 	{0x20, 0x6a1b, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e, -1},	/* 960x600 */
243 	{0x21, 0x6a3d, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e,
244 	 -1},
245 	{0x22, 0x6a7f, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e,
246 	 -1},
247 	{0x29, 0x4e1b, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33, -1},	/* 1152x864 */
248 	{0x2a, 0x4e3d, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33,
249 	 -1},
250 	{0x2b, 0x4e7f, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33,
251 	 -1},
252 	{0xff, 0x0000, 0x0000, 0, 0x00, 0x00, 0x00, 0x00, 0x00, -1}
253 };
254 
255 static const struct SiS_Ext2 SiSUSB_RefIndex[] = {
256 	{0x085f, 0x0d, 0x03, 0x05, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},	/* 0x0 */
257 	{0x0067, 0x0e, 0x04, 0x05, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},	/* 0x1 */
258 	{0x0067, 0x0f, 0x08, 0x48, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},	/* 0x2 */
259 	{0x0067, 0x10, 0x07, 0x8b, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},	/* 0x3 */
260 	{0x0047, 0x11, 0x0a, 0x00, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},	/* 0x4 */
261 	{0x0047, 0x12, 0x0d, 0x00, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},	/* 0x5 */
262 	{0x0047, 0x13, 0x13, 0x00, 0x05, 0x30, 800, 600, 0x20, 0x00, 0x00},	/* 0x6 */
263 	{0x0107, 0x14, 0x1c, 0x00, 0x05, 0x30, 800, 600, 0x20, 0x00, 0x00},	/* 0x7 */
264 	{0xc85f, 0x05, 0x00, 0x04, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},	/* 0x8 */
265 	{0xc067, 0x06, 0x02, 0x04, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},	/* 0x9 */
266 	{0xc067, 0x07, 0x02, 0x47, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},	/* 0xa */
267 	{0xc067, 0x08, 0x03, 0x8a, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},	/* 0xb */
268 	{0xc047, 0x09, 0x05, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},	/* 0xc */
269 	{0xc047, 0x0a, 0x09, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},	/* 0xd */
270 	{0xc047, 0x0b, 0x0e, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},	/* 0xe */
271 	{0xc047, 0x0c, 0x15, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},	/* 0xf */
272 	{0x487f, 0x04, 0x00, 0x00, 0x00, 0x2f, 640, 400, 0x30, 0x55, 0x6e},	/* 0x10 */
273 	{0xc06f, 0x3c, 0x01, 0x06, 0x13, 0x31, 720, 480, 0x30, 0x00, 0x00},	/* 0x11 */
274 	{0x006f, 0x3d, 0x6f, 0x06, 0x14, 0x32, 720, 576, 0x30, 0x00, 0x00},	/* 0x12 (6f was 03) */
275 	{0x0087, 0x15, 0x06, 0x00, 0x06, 0x38, 1024, 768, 0x30, 0x00, 0x00},	/* 0x13 */
276 	{0xc877, 0x16, 0x0b, 0x06, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},	/* 0x14 */
277 	{0xc067, 0x17, 0x0f, 0x49, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},	/* 0x15 */
278 	{0x0067, 0x18, 0x11, 0x00, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},	/* 0x16 */
279 	{0x0047, 0x19, 0x16, 0x8c, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},	/* 0x17 */
280 	{0x0107, 0x1a, 0x1b, 0x00, 0x06, 0x38, 1024, 768, 0x10, 0x00, 0x00},	/* 0x18 */
281 	{0x0107, 0x1b, 0x1f, 0x00, 0x06, 0x38, 1024, 768, 0x10, 0x00, 0x00},	/* 0x19 */
282 	{0x407f, 0x00, 0x00, 0x00, 0x00, 0x41, 320, 200, 0x30, 0x56, 0x4e},	/* 0x1a */
283 	{0xc07f, 0x01, 0x00, 0x04, 0x04, 0x50, 320, 240, 0x30, 0x00, 0x00},	/* 0x1b */
284 	{0x007f, 0x02, 0x04, 0x05, 0x05, 0x51, 400, 300, 0x30, 0x00, 0x00},	/* 0x1c */
285 	{0xc077, 0x03, 0x0b, 0x06, 0x06, 0x52, 512, 384, 0x30, 0x00, 0x00},	/* 0x1d */
286 	{0x0077, 0x32, 0x40, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},	/* 0x1e */
287 	{0x0047, 0x33, 0x07, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},	/* 0x1f */
288 	{0x0047, 0x34, 0x0a, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},	/* 0x20 */
289 	{0x0077, 0x35, 0x0b, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},	/* 0x21 */
290 	{0x0047, 0x36, 0x11, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},	/* 0x22 */
291 	{0x0047, 0x37, 0x16, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},	/* 0x23 */
292 	{0x1137, 0x38, 0x19, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},	/* 0x24 */
293 	{0x1107, 0x39, 0x1e, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},	/* 0x25 */
294 	{0x1307, 0x3a, 0x20, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},	/* 0x26 */
295 	{0x0077, 0x42, 0x5b, 0x08, 0x11, 0x23, 1280, 768, 0x30, 0x00, 0x00},	/* 0x27 */
296 	{0x0087, 0x45, 0x57, 0x00, 0x16, 0x39, 848, 480, 0x30, 0x00, 0x00},	/* 0x28 38Hzi  */
297 	{0xc067, 0x46, 0x55, 0x0b, 0x16, 0x39, 848, 480, 0x30, 0x00, 0x00},	/* 0x29 848x480-60Hz   */
298 	{0x0087, 0x47, 0x57, 0x00, 0x17, 0x3f, 856, 480, 0x30, 0x00, 0x00},	/* 0x2a 856x480-38Hzi  */
299 	{0xc067, 0x48, 0x57, 0x00, 0x17, 0x3f, 856, 480, 0x30, 0x00, 0x00},	/* 0x2b 856x480-60Hz   */
300 	{0x006f, 0x4d, 0x71, 0x06, 0x15, 0x5f, 768, 576, 0x30, 0x00, 0x00},	/* 0x2c 768x576-56Hz   */
301 	{0x0067, 0x52, 0x6a, 0x00, 0x1c, 0x1d, 960, 540, 0x30, 0x00, 0x00},	/* 0x2d 960x540 60Hz */
302 	{0x0077, 0x53, 0x6b, 0x0b, 0x1d, 0x20, 960, 600, 0x30, 0x00, 0x00},	/* 0x2e 960x600 60Hz */
303 	{0x0087, 0x1c, 0x11, 0x00, 0x07, 0x3a, 1280, 1024, 0x30, 0x00, 0x00},	/* 0x2f */
304 	{0x0137, 0x1d, 0x19, 0x07, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},	/* 0x30 */
305 	{0x0107, 0x1e, 0x1e, 0x00, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},	/* 0x31 */
306 	{0x0207, 0x1f, 0x20, 0x00, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},	/* 0x32 */
307 	{0x0127, 0x54, 0x6d, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},	/* 0x33 1152x864-60Hz  */
308 	{0x0127, 0x44, 0x19, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},	/* 0x34 1152x864-75Hz  */
309 	{0x0127, 0x4a, 0x1e, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},	/* 0x35 1152x864-85Hz  */
310 	{0xffff, 0x00, 0x00, 0x00, 0x00, 0x00, 0, 0, 0, 0x00, 0x00}
311 };
312 
313 static const struct SiS_CRT1Table SiSUSB_CRT1Table[] = {
314 	{{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
315 	  0x9c, 0x8e, 0x8f, 0x96, 0xb9, 0x30, 0x00, 0x00,
316 	  0x00}},		/* 0x0 */
317 	{{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0x0b, 0x3e,
318 	  0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x00,
319 	  0x00}},		/* 0x1 */
320 	{{0x3d, 0x31, 0x31, 0x81, 0x37, 0x1f, 0x72, 0xf0,
321 	  0x58, 0x8c, 0x57, 0x57, 0x73, 0x20, 0x00, 0x05,
322 	  0x01}},		/* 0x2 */
323 	{{0x4f, 0x3f, 0x3f, 0x93, 0x45, 0x0d, 0x24, 0xf5,
324 	  0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x01,
325 	  0x01}},		/* 0x3 */
326 	{{0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
327 	  0x9c, 0x8e, 0x8f, 0x96, 0xb9, 0x30, 0x00, 0x05,
328 	  0x00}},		/* 0x4 */
329 	{{0x5f, 0x4f, 0x4f, 0x83, 0x55, 0x81, 0x0b, 0x3e,
330 	  0xe9, 0x8b, 0xdf, 0xe8, 0x0c, 0x00, 0x00, 0x05,
331 	  0x00}},		/* 0x5 */
332 	{{0x63, 0x4f, 0x4f, 0x87, 0x56, 0x9b, 0x06, 0x3e,
333 	  0xe8, 0x8a, 0xdf, 0xe7, 0x07, 0x00, 0x00, 0x01,
334 	  0x00}},		/* 0x6 */
335 	{{0x64, 0x4f, 0x4f, 0x88, 0x55, 0x9d, 0xf2, 0x1f,
336 	  0xe0, 0x83, 0xdf, 0xdf, 0xf3, 0x10, 0x00, 0x01,
337 	  0x00}},		/* 0x7 */
338 	{{0x63, 0x4f, 0x4f, 0x87, 0x5a, 0x81, 0xfb, 0x1f,
339 	  0xe0, 0x83, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x05,
340 	  0x00}},		/* 0x8 */
341 	{{0x65, 0x4f, 0x4f, 0x89, 0x58, 0x80, 0xfb, 0x1f,
342 	  0xe0, 0x83, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x05,
343 	  0x61}},		/* 0x9 */
344 	{{0x65, 0x4f, 0x4f, 0x89, 0x58, 0x80, 0x01, 0x3e,
345 	  0xe0, 0x83, 0xdf, 0xdf, 0x02, 0x00, 0x00, 0x05,
346 	  0x61}},		/* 0xa */
347 	{{0x67, 0x4f, 0x4f, 0x8b, 0x58, 0x81, 0x0d, 0x3e,
348 	  0xe0, 0x83, 0xdf, 0xdf, 0x0e, 0x00, 0x00, 0x05,
349 	  0x61}},		/* 0xb */
350 	{{0x65, 0x4f, 0x4f, 0x89, 0x57, 0x9f, 0xfb, 0x1f,
351 	  0xe6, 0x8a, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x01,
352 	  0x00}},		/* 0xc */
353 	{{0x7b, 0x63, 0x63, 0x9f, 0x6a, 0x93, 0x6f, 0xf0,
354 	  0x58, 0x8a, 0x57, 0x57, 0x70, 0x20, 0x00, 0x05,
355 	  0x01}},		/* 0xd */
356 	{{0x7f, 0x63, 0x63, 0x83, 0x6c, 0x1c, 0x72, 0xf0,
357 	  0x58, 0x8c, 0x57, 0x57, 0x73, 0x20, 0x00, 0x06,
358 	  0x01}},		/* 0xe */
359 	{{0x7d, 0x63, 0x63, 0x81, 0x6e, 0x1d, 0x98, 0xf0,
360 	  0x7c, 0x82, 0x57, 0x57, 0x99, 0x00, 0x00, 0x06,
361 	  0x01}},		/* 0xf */
362 	{{0x7f, 0x63, 0x63, 0x83, 0x69, 0x13, 0x6f, 0xf0,
363 	  0x58, 0x8b, 0x57, 0x57, 0x70, 0x20, 0x00, 0x06,
364 	  0x01}},		/* 0x10 */
365 	{{0x7e, 0x63, 0x63, 0x82, 0x6b, 0x13, 0x75, 0xf0,
366 	  0x58, 0x8b, 0x57, 0x57, 0x76, 0x20, 0x00, 0x06,
367 	  0x01}},		/* 0x11 */
368 	{{0x81, 0x63, 0x63, 0x85, 0x6d, 0x18, 0x7a, 0xf0,
369 	  0x58, 0x8b, 0x57, 0x57, 0x7b, 0x20, 0x00, 0x06,
370 	  0x61}},		/* 0x12 */
371 	{{0x83, 0x63, 0x63, 0x87, 0x6e, 0x19, 0x81, 0xf0,
372 	  0x58, 0x8b, 0x57, 0x57, 0x82, 0x20, 0x00, 0x06,
373 	  0x61}},		/* 0x13 */
374 	{{0x85, 0x63, 0x63, 0x89, 0x6f, 0x1a, 0x91, 0xf0,
375 	  0x58, 0x8b, 0x57, 0x57, 0x92, 0x20, 0x00, 0x06,
376 	  0x61}},		/* 0x14 */
377 	{{0x99, 0x7f, 0x7f, 0x9d, 0x84, 0x1a, 0x96, 0x1f,
378 	  0x7f, 0x83, 0x7f, 0x7f, 0x97, 0x10, 0x00, 0x02,
379 	  0x00}},		/* 0x15 */
380 	{{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf5,
381 	  0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
382 	  0x01}},		/* 0x16 */
383 	{{0xa1, 0x7f, 0x7f, 0x85, 0x86, 0x97, 0x24, 0xf5,
384 	  0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
385 	  0x01}},		/* 0x17 */
386 	{{0x9f, 0x7f, 0x7f, 0x83, 0x85, 0x91, 0x1e, 0xf5,
387 	  0x00, 0x83, 0xff, 0xff, 0x1f, 0x10, 0x00, 0x02,
388 	  0x01}},		/* 0x18 */
389 	{{0xa7, 0x7f, 0x7f, 0x8b, 0x89, 0x95, 0x26, 0xf5,
390 	  0x00, 0x83, 0xff, 0xff, 0x27, 0x10, 0x00, 0x02,
391 	  0x01}},		/* 0x19 */
392 	{{0xa9, 0x7f, 0x7f, 0x8d, 0x8c, 0x9a, 0x2c, 0xf5,
393 	  0x00, 0x83, 0xff, 0xff, 0x2d, 0x14, 0x00, 0x02,
394 	  0x62}},		/* 0x1a */
395 	{{0xab, 0x7f, 0x7f, 0x8f, 0x8d, 0x9b, 0x35, 0xf5,
396 	  0x00, 0x83, 0xff, 0xff, 0x36, 0x14, 0x00, 0x02,
397 	  0x62}},		/* 0x1b */
398 	{{0xcf, 0x9f, 0x9f, 0x93, 0xb2, 0x01, 0x14, 0xba,
399 	  0x00, 0x83, 0xff, 0xff, 0x15, 0x00, 0x00, 0x03,
400 	  0x00}},		/* 0x1c */
401 	{{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x28, 0x5a,
402 	  0x00, 0x83, 0xff, 0xff, 0x29, 0x09, 0x00, 0x07,
403 	  0x01}},		/* 0x1d */
404 	{{0xce, 0x9f, 0x9f, 0x92, 0xa5, 0x17, 0x28, 0x5a,
405 	  0x00, 0x83, 0xff, 0xff, 0x29, 0x09, 0x00, 0x07,
406 	  0x01}},		/* 0x1e */
407 	{{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0x2e, 0x5a,
408 	  0x00, 0x83, 0xff, 0xff, 0x2f, 0x09, 0x00, 0x07,
409 	  0x01}},		/* 0x1f */
410 	{{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
411 	  0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
412 	  0x00}},		/* 0x20 */
413 	{{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
414 	  0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
415 	  0x00}},		/* 0x21 */
416 	{{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
417 	  0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
418 	  0x00}},		/* 0x22 */
419 	{{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
420 	  0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
421 	  0x00}},		/* 0x23 */
422 	{{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
423 	  0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
424 	  0x00}},		/* 0x24 */
425 	{{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
426 	  0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
427 	  0x00}},		/* 0x25 */
428 	{{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
429 	  0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
430 	  0x00}},		/* 0x26 */
431 	{{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
432 	  0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
433 	  0x00}},		/* 0x27 */
434 	{{0x43, 0xef, 0xef, 0x87, 0x06, 0x00, 0xd4, 0x1f,
435 	  0xa0, 0x83, 0x9f, 0x9f, 0xd5, 0x1f, 0x41, 0x05,
436 	  0x63}},		/* 0x28 */
437 	{{0x45, 0xef, 0xef, 0x89, 0x07, 0x01, 0xd9, 0x1f,
438 	  0xa0, 0x83, 0x9f, 0x9f, 0xda, 0x1f, 0x41, 0x05,
439 	  0x63}},		/* 0x29 */
440 	{{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
441 	  0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
442 	  0x00}},		/* 0x2a */
443 	{{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
444 	  0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
445 	  0x00}},		/* 0x2b */
446 	{{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
447 	  0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
448 	  0x00}},		/* 0x2c */
449 	{{0x59, 0xff, 0xff, 0x9d, 0x17, 0x13, 0x33, 0xba,
450 	  0x00, 0x83, 0xff, 0xff, 0x34, 0x0f, 0x41, 0x05,
451 	  0x44}},		/* 0x2d */
452 	{{0x5b, 0xff, 0xff, 0x9f, 0x18, 0x14, 0x38, 0xba,
453 	  0x00, 0x83, 0xff, 0xff, 0x39, 0x0f, 0x41, 0x05,
454 	  0x44}},		/* 0x2e */
455 	{{0x5b, 0xff, 0xff, 0x9f, 0x18, 0x14, 0x3d, 0xba,
456 	  0x00, 0x83, 0xff, 0xff, 0x3e, 0x0f, 0x41, 0x05,
457 	  0x44}},		/* 0x2f */
458 	{{0x5d, 0xff, 0xff, 0x81, 0x19, 0x95, 0x41, 0xba,
459 	  0x00, 0x84, 0xff, 0xff, 0x42, 0x0f, 0x41, 0x05,
460 	  0x44}},		/* 0x30 */
461 	{{0x55, 0xff, 0xff, 0x99, 0x0d, 0x0c, 0x3e, 0xba,
462 	  0x00, 0x84, 0xff, 0xff, 0x3f, 0x0f, 0x41, 0x05,
463 	  0x00}},		/* 0x31 */
464 	{{0x7f, 0x63, 0x63, 0x83, 0x6c, 0x1c, 0x72, 0xba,
465 	  0x27, 0x8b, 0xdf, 0xdf, 0x73, 0x00, 0x00, 0x06,
466 	  0x01}},		/* 0x32 */
467 	{{0x7f, 0x63, 0x63, 0x83, 0x69, 0x13, 0x6f, 0xba,
468 	  0x26, 0x89, 0xdf, 0xdf, 0x6f, 0x00, 0x00, 0x06,
469 	  0x01}},		/* 0x33 */
470 	{{0x7f, 0x63, 0x63, 0x82, 0x6b, 0x13, 0x75, 0xba,
471 	  0x29, 0x8c, 0xdf, 0xdf, 0x75, 0x00, 0x00, 0x06,
472 	  0x01}},		/* 0x34 */
473 	{{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf1,
474 	  0xaf, 0x85, 0x3f, 0x3f, 0x25, 0x30, 0x00, 0x02,
475 	  0x01}},		/* 0x35 */
476 	{{0x9f, 0x7f, 0x7f, 0x83, 0x85, 0x91, 0x1e, 0xf1,
477 	  0xad, 0x81, 0x3f, 0x3f, 0x1f, 0x30, 0x00, 0x02,
478 	  0x01}},		/* 0x36 */
479 	{{0xa7, 0x7f, 0x7f, 0x88, 0x89, 0x95, 0x26, 0xf1,
480 	  0xb1, 0x85, 0x3f, 0x3f, 0x27, 0x30, 0x00, 0x02,
481 	  0x01}},		/* 0x37 */
482 	{{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x28, 0xc4,
483 	  0x7a, 0x8e, 0xcf, 0xcf, 0x29, 0x21, 0x00, 0x07,
484 	  0x01}},		/* 0x38 */
485 	{{0xce, 0x9f, 0x9f, 0x92, 0xa5, 0x17, 0x28, 0xd4,
486 	  0x7a, 0x8e, 0xcf, 0xcf, 0x29, 0x21, 0x00, 0x07,
487 	  0x01}},		/* 0x39 */
488 	{{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0x2e, 0xd4,
489 	  0x7d, 0x81, 0xcf, 0xcf, 0x2f, 0x21, 0x00, 0x07,
490 	  0x01}},		/* 0x3a */
491 	{{0xdc, 0x9f, 0x9f, 0x80, 0xaf, 0x9d, 0xe6, 0xff,
492 	  0xc0, 0x83, 0xbf, 0xbf, 0xe7, 0x10, 0x00, 0x07,
493 	  0x01}},		/* 0x3b */
494 	{{0x6b, 0x59, 0x59, 0x8f, 0x5e, 0x8c, 0x0b, 0x3e,
495 	  0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x05,
496 	  0x00}},		/* 0x3c */
497 	{{0x6d, 0x59, 0x59, 0x91, 0x60, 0x89, 0x53, 0xf0,
498 	  0x41, 0x84, 0x3f, 0x3f, 0x54, 0x00, 0x00, 0x05,
499 	  0x41}},		/* 0x3d */
500 	{{0x86, 0x6a, 0x6a, 0x8a, 0x74, 0x06, 0x8c, 0x15,
501 	  0x4f, 0x83, 0xef, 0xef, 0x8d, 0x30, 0x00, 0x02,
502 	  0x00}},		/* 0x3e */
503 	{{0x81, 0x6a, 0x6a, 0x85, 0x70, 0x00, 0x0f, 0x3e,
504 	  0xeb, 0x8e, 0xdf, 0xdf, 0x10, 0x00, 0x00, 0x02,
505 	  0x00}},		/* 0x3f */
506 	{{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x1e, 0xf1,
507 	  0xae, 0x85, 0x57, 0x57, 0x1f, 0x30, 0x00, 0x02,
508 	  0x01}},		/* 0x40 */
509 	{{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf5,
510 	  0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
511 	  0x01}},		/* 0x41 */
512 	{{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x20, 0xf5,
513 	  0x03, 0x88, 0xff, 0xff, 0x21, 0x10, 0x00, 0x07,
514 	  0x01}},		/* 0x42 */
515 	{{0xe6, 0xae, 0xae, 0x8a, 0xbd, 0x90, 0x3d, 0x10,
516 	  0x1a, 0x8d, 0x19, 0x19, 0x3e, 0x2f, 0x00, 0x03,
517 	  0x00}},		/* 0x43 */
518 	{{0xc3, 0x8f, 0x8f, 0x87, 0x9b, 0x0b, 0x82, 0xef,
519 	  0x60, 0x83, 0x5f, 0x5f, 0x83, 0x10, 0x00, 0x07,
520 	  0x01}},		/* 0x44 */
521 	{{0x86, 0x69, 0x69, 0x8A, 0x74, 0x06, 0x8C, 0x15,
522 	  0x4F, 0x83, 0xEF, 0xEF, 0x8D, 0x30, 0x00, 0x02,
523 	  0x00}},		/* 0x45 */
524 	{{0x83, 0x69, 0x69, 0x87, 0x6f, 0x1d, 0x03, 0x3E,
525 	  0xE5, 0x8d, 0xDF, 0xe4, 0x04, 0x00, 0x00, 0x06,
526 	  0x00}},		/* 0x46 */
527 	{{0x86, 0x6A, 0x6A, 0x8A, 0x74, 0x06, 0x8C, 0x15,
528 	  0x4F, 0x83, 0xEF, 0xEF, 0x8D, 0x30, 0x00, 0x02,
529 	  0x00}},		/* 0x47 */
530 	{{0x81, 0x6A, 0x6A, 0x85, 0x70, 0x00, 0x0F, 0x3E,
531 	  0xEB, 0x8E, 0xDF, 0xDF, 0x10, 0x00, 0x00, 0x02,
532 	  0x00}},		/* 0x48 */
533 	{{0xdd, 0xa9, 0xa9, 0x81, 0xb4, 0x97, 0x26, 0xfd,
534 	  0x01, 0x8d, 0xff, 0x00, 0x27, 0x10, 0x00, 0x03,
535 	  0x01}},		/* 0x49 */
536 	{{0xd9, 0x8f, 0x8f, 0x9d, 0xba, 0x0a, 0x8a, 0xff,
537 	  0x60, 0x8b, 0x5f, 0x5f, 0x8b, 0x10, 0x00, 0x03,
538 	  0x01}},		/* 0x4a */
539 	{{0xea, 0xae, 0xae, 0x8e, 0xba, 0x82, 0x40, 0x10,
540 	  0x1b, 0x87, 0x19, 0x1a, 0x41, 0x0f, 0x00, 0x03,
541 	  0x00}},		/* 0x4b */
542 	{{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0xf1, 0xff,
543 	  0xc0, 0x83, 0xbf, 0xbf, 0xf2, 0x10, 0x00, 0x07,
544 	  0x01}},		/* 0x4c */
545 	{{0x75, 0x5f, 0x5f, 0x99, 0x66, 0x90, 0x53, 0xf0,
546 	  0x41, 0x84, 0x3f, 0x3f, 0x54, 0x00, 0x00, 0x05,
547 	  0x41}},
548 	{{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0x0b, 0x3e,
549 	  0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x00,
550 	  0x00}},		/* 0x4e */
551 	{{0xcd, 0x9f, 0x9f, 0x91, 0xab, 0x1c, 0x3a, 0xff,
552 	  0x20, 0x83, 0x1f, 0x1f, 0x3b, 0x10, 0x00, 0x07,
553 	  0x21}},		/* 0x4f */
554 	{{0x15, 0xd1, 0xd1, 0x99, 0xe2, 0x19, 0x3d, 0x10,
555 	  0x1a, 0x8d, 0x19, 0x19, 0x3e, 0x2f, 0x01, 0x0c,
556 	  0x20}},		/* 0x50 */
557 	{{0x0e, 0xef, 0xef, 0x92, 0xfe, 0x03, 0x30, 0xf0,
558 	  0x1e, 0x83, 0x1b, 0x1c, 0x31, 0x00, 0x01, 0x00,
559 	  0x61}},		/* 0x51 */
560 	{{0x85, 0x77, 0x77, 0x89, 0x7d, 0x01, 0x31, 0xf0,
561 	  0x1e, 0x84, 0x1b, 0x1c, 0x32, 0x00, 0x00, 0x02,
562 	  0x41}},		/* 0x52 */
563 	{{0x87, 0x77, 0x77, 0x8b, 0x81, 0x0b, 0x68, 0xf0,
564 	  0x5a, 0x80, 0x57, 0x57, 0x69, 0x00, 0x00, 0x02,
565 	  0x01}},		/* 0x53 */
566 	{{0xcd, 0x8f, 0x8f, 0x91, 0x9b, 0x1b, 0x7a, 0xff,
567 	  0x64, 0x8c, 0x5f, 0x62, 0x7b, 0x10, 0x00, 0x07,
568 	  0x41}}		/* 0x54 */
569 };
570 
571 static const struct SiS_VCLKData SiSUSB_VCLKData[] = {
572 	{0x1b, 0xe1, 25},	/* 0x00 */
573 	{0x4e, 0xe4, 28},	/* 0x01 */
574 	{0x57, 0xe4, 31},	/* 0x02 */
575 	{0xc3, 0xc8, 36},	/* 0x03 */
576 	{0x42, 0xe2, 40},	/* 0x04 */
577 	{0xfe, 0xcd, 43},	/* 0x05 */
578 	{0x5d, 0xc4, 44},	/* 0x06 */
579 	{0x52, 0xe2, 49},	/* 0x07 */
580 	{0x53, 0xe2, 50},	/* 0x08 */
581 	{0x74, 0x67, 52},	/* 0x09 */
582 	{0x6d, 0x66, 56},	/* 0x0a */
583 	{0x5a, 0x64, 65},	/* 0x0b */
584 	{0x46, 0x44, 67},	/* 0x0c */
585 	{0xb1, 0x46, 68},	/* 0x0d */
586 	{0xd3, 0x4a, 72},	/* 0x0e */
587 	{0x29, 0x61, 75},	/* 0x0f */
588 	{0x6e, 0x46, 76},	/* 0x10 */
589 	{0x2b, 0x61, 78},	/* 0x11 */
590 	{0x31, 0x42, 79},	/* 0x12 */
591 	{0xab, 0x44, 83},	/* 0x13 */
592 	{0x46, 0x25, 84},	/* 0x14 */
593 	{0x78, 0x29, 86},	/* 0x15 */
594 	{0x62, 0x44, 94},	/* 0x16 */
595 	{0x2b, 0x41, 104},	/* 0x17 */
596 	{0x3a, 0x23, 105},	/* 0x18 */
597 	{0x70, 0x44, 108},	/* 0x19 */
598 	{0x3c, 0x23, 109},	/* 0x1a */
599 	{0x5e, 0x43, 113},	/* 0x1b */
600 	{0xbc, 0x44, 116},	/* 0x1c */
601 	{0xe0, 0x46, 132},	/* 0x1d */
602 	{0x54, 0x42, 135},	/* 0x1e */
603 	{0xea, 0x2a, 139},	/* 0x1f */
604 	{0x41, 0x22, 157},	/* 0x20 */
605 	{0x70, 0x24, 162},	/* 0x21 */
606 	{0x30, 0x21, 175},	/* 0x22 */
607 	{0x4e, 0x22, 189},	/* 0x23 */
608 	{0xde, 0x26, 194},	/* 0x24 */
609 	{0x62, 0x06, 202},	/* 0x25 */
610 	{0x3f, 0x03, 229},	/* 0x26 */
611 	{0xb8, 0x06, 234},	/* 0x27 */
612 	{0x34, 0x02, 253},	/* 0x28 */
613 	{0x58, 0x04, 255},	/* 0x29 */
614 	{0x24, 0x01, 265},	/* 0x2a */
615 	{0x9b, 0x02, 267},	/* 0x2b */
616 	{0x70, 0x05, 270},	/* 0x2c */
617 	{0x25, 0x01, 272},	/* 0x2d */
618 	{0x9c, 0x02, 277},	/* 0x2e */
619 	{0x27, 0x01, 286},	/* 0x2f */
620 	{0x3c, 0x02, 291},	/* 0x30 */
621 	{0xef, 0x0a, 292},	/* 0x31 */
622 	{0xf6, 0x0a, 310},	/* 0x32 */
623 	{0x95, 0x01, 315},	/* 0x33 */
624 	{0xf0, 0x09, 324},	/* 0x34 */
625 	{0xfe, 0x0a, 331},	/* 0x35 */
626 	{0xf3, 0x09, 332},	/* 0x36 */
627 	{0xea, 0x08, 340},	/* 0x37 */
628 	{0xe8, 0x07, 376},	/* 0x38 */
629 	{0xde, 0x06, 389},	/* 0x39 */
630 	{0x52, 0x2a, 54},	/* 0x3a 301 TV */
631 	{0x52, 0x6a, 27},	/* 0x3b 301 TV */
632 	{0x62, 0x24, 70},	/* 0x3c 301 TV */
633 	{0x62, 0x64, 70},	/* 0x3d 301 TV */
634 	{0xa8, 0x4c, 30},	/* 0x3e 301 TV */
635 	{0x20, 0x26, 33},	/* 0x3f 301 TV */
636 	{0x31, 0xc2, 39},	/* 0x40 */
637 	{0x60, 0x36, 30},	/* 0x41 Chrontel */
638 	{0x40, 0x4a, 28},	/* 0x42 Chrontel */
639 	{0x9f, 0x46, 44},	/* 0x43 Chrontel */
640 	{0x97, 0x2c, 26},	/* 0x44 */
641 	{0x44, 0xe4, 25},	/* 0x45 Chrontel */
642 	{0x7e, 0x32, 47},	/* 0x46 Chrontel */
643 	{0x8a, 0x24, 31},	/* 0x47 Chrontel */
644 	{0x97, 0x2c, 26},	/* 0x48 Chrontel */
645 	{0xce, 0x3c, 39},	/* 0x49 */
646 	{0x52, 0x4a, 36},	/* 0x4a Chrontel */
647 	{0x34, 0x61, 95},	/* 0x4b */
648 	{0x78, 0x27, 108},	/* 0x4c - was 102 */
649 	{0x66, 0x43, 123},	/* 0x4d Modes 0x26-0x28 (1400x1050) */
650 	{0x41, 0x4e, 21},	/* 0x4e */
651 	{0xa1, 0x4a, 29},	/* 0x4f Chrontel */
652 	{0x19, 0x42, 42},	/* 0x50 */
653 	{0x54, 0x46, 58},	/* 0x51 Chrontel */
654 	{0x25, 0x42, 61},	/* 0x52 */
655 	{0x44, 0x44, 66},	/* 0x53 Chrontel */
656 	{0x3a, 0x62, 70},	/* 0x54 Chrontel */
657 	{0x62, 0xc6, 34},	/* 0x55 848x480-60 */
658 	{0x6a, 0xc6, 37},	/* 0x56 848x480-75 - TEMP */
659 	{0xbf, 0xc8, 35},	/* 0x57 856x480-38i,60 */
660 	{0x30, 0x23, 88},	/* 0x58 1360x768-62 (is 60Hz!) */
661 	{0x52, 0x07, 149},	/* 0x59 1280x960-85 */
662 	{0x56, 0x07, 156},	/* 0x5a 1400x1050-75 */
663 	{0x70, 0x29, 81},	/* 0x5b 1280x768 LCD */
664 	{0x45, 0x25, 83},	/* 0x5c 1280x800  */
665 	{0x70, 0x0a, 147},	/* 0x5d 1680x1050 */
666 	{0x70, 0x24, 162},	/* 0x5e 1600x1200 */
667 	{0x5a, 0x64, 65},	/* 0x5f 1280x720 - temp */
668 	{0x63, 0x46, 68},	/* 0x60 1280x768_2 */
669 	{0x31, 0x42, 79},	/* 0x61 1280x768_3 - temp */
670 	{0, 0, 0},		/* 0x62 - custom (will be filled out at run-time) */
671 	{0x5a, 0x64, 65},	/* 0x63 1280x720 (LCD LVDS) */
672 	{0x70, 0x28, 90},	/* 0x64 1152x864@60 */
673 	{0x41, 0xc4, 32},	/* 0x65 848x480@60 */
674 	{0x5c, 0xc6, 32},	/* 0x66 856x480@60 */
675 	{0x76, 0xe7, 27},	/* 0x67 720x480@60 */
676 	{0x5f, 0xc6, 33},	/* 0x68 720/768x576@60 */
677 	{0x52, 0x27, 75},	/* 0x69 1920x1080i 60Hz interlaced */
678 	{0x7c, 0x6b, 38},	/* 0x6a 960x540@60 */
679 	{0xe3, 0x56, 41},	/* 0x6b 960x600@60 */
680 	{0x45, 0x25, 83},	/* 0x6c 1280x800 */
681 	{0x70, 0x28, 90},	/* 0x6d 1152x864@60 */
682 	{0x15, 0xe1, 20},	/* 0x6e 640x400@60 (fake, not actually used) */
683 	{0x5f, 0xc6, 33},	/* 0x6f 720x576@60 */
684 	{0x37, 0x5a, 10},	/* 0x70 320x200@60 (fake, not actually used) */
685 	{0x2b, 0xc2, 35}	/* 0x71 768@576@60 */
686 };
687 
688 #endif
689