Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* $XFree86$ */ |
2 | /* $XdotOrg$ */ | |
3 | /* | |
4 | * Register settings for SiS 300 series | |
5 | * | |
544393fe | 6 | * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria |
1da177e4 LT |
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 | ||
544393fe | 53 | static const struct SiS_Ext SiS300_EModeIDTable[] = |
1da177e4 LT |
54 | { |
55 | {0x6a,0x2212,0x0102,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x? */ | |
56 | {0x2e,0x0a1b,0x0101,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, | |
57 | {0x2f,0x021b,0x0100,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x8 */ | |
58 | {0x30,0x2a1b,0x0103,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, | |
59 | {0x31,0x4a1b,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x8 */ | |
60 | {0x32,0x6a1b,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x8 */ | |
61 | {0x33,0x4a1d,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x16 */ | |
62 | {0x34,0x6a1d,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x16 */ | |
63 | {0x35,0x4a1f,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x32 */ | |
64 | {0x36,0x6a1f,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x32 */ | |
65 | {0x37,0x0212,0x0104,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, /* 1024x768x? */ | |
66 | {0x38,0x0a1b,0x0105,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, /* 1024x768x8 */ | |
67 | {0x3a,0x0e3b,0x0107,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, /* 1280x1024x8 */ | |
68 | {0x3c,0x063b,0x0130,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, | |
69 | {0x3d,0x067d,0x0131,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, | |
70 | {0x40,0x921c,0x010d,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x15 */ | |
71 | {0x41,0x921d,0x010e,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x16 */ | |
72 | {0x43,0x0a1c,0x0110,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, | |
73 | {0x44,0x0a1d,0x0111,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, | |
74 | {0x46,0x2a1c,0x0113,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x15 */ | |
75 | {0x47,0x2a1d,0x0114,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x16 */ | |
76 | {0x49,0x0a3c,0x0116,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, | |
77 | {0x4a,0x0a3d,0x0117,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, | |
78 | {0x4c,0x0e7c,0x0119,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, | |
79 | {0x4d,0x0e7d,0x011a,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, | |
80 | {0x50,0x921b,0x0132,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x8 */ | |
81 | {0x51,0xb21b,0x0133,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x8 */ | |
82 | {0x52,0x921b,0x0134,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x8 */ | |
83 | {0x56,0x921d,0x0135,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x16 */ | |
84 | {0x57,0xb21d,0x0136,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x16 */ | |
85 | {0x58,0x921d,0x0137,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x16 */ | |
86 | {0x59,0x921b,0x0138,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x8 */ | |
87 | {0x5c,0x921f,0x0000,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x32 */ | |
88 | {0x5d,0x021d,0x0139,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x16 */ | |
544393fe | 89 | {0x5e,0x021f,0x0000,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x32 */ |
1da177e4 LT |
90 | {0x62,0x0a3f,0x013a,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, |
91 | {0x63,0x2a3f,0x013b,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x32 */ | |
92 | {0x64,0x0a7f,0x013c,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, | |
93 | {0x65,0x0eff,0x013d,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, | |
94 | {0x66,0x06ff,0x013e,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, | |
95 | {0x68,0x067b,0x013f,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, | |
96 | {0x69,0x06fd,0x0140,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, | |
97 | {0x6b,0x07ff,0x0000,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, | |
544393fe TW |
98 | {0x6c,0x067b,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x28,-1}, /* 2048x1536x8 */ |
99 | {0x6d,0x06fd,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x28,-1}, /* 2048x1536x16 */ | |
1da177e4 LT |
100 | {0x70,0x6a1b,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x8 */ |
101 | {0x71,0x4a1b,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x8 */ | |
102 | {0x74,0x4a1d,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x16 */ | |
103 | {0x75,0x0e3d,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x16 */ | |
104 | {0x76,0x6a1f,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x32 */ | |
105 | {0x77,0x4a3f,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x32 */ | |
106 | {0x78,0x0eff,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x32 */ | |
107 | {0x79,0x0e3b,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x8 */ | |
108 | {0x7a,0x6a1d,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x16 */ | |
109 | {0x7c,0x0a3b,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x8 */ | |
110 | {0x7d,0x0a7d,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x16 */ | |
111 | {0x7e,0x0aff,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x32 */ | |
112 | {0x20,0x4a1b,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, /* 1024x600 */ | |
113 | {0x21,0x4a3d,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, | |
114 | {0x22,0x4a7f,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, | |
115 | {0x23,0x4a1b,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, /* 1152x768 */ | |
116 | {0x24,0x4a3d,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, | |
117 | {0x25,0x4a7f,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, | |
118 | {0x29,0x4e1b,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, /* 1152x864 */ | |
119 | {0x2a,0x4e3d,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, | |
120 | {0x2b,0x4e7f,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, | |
121 | {0x39,0x6a1b,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x39,-1}, /* 848x480 */ | |
122 | {0x3b,0x6a3d,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x39,-1}, | |
123 | {0x3e,0x6a7f,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x39,-1}, | |
124 | {0x3f,0x6a1b,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3b,-1}, /* 856x480 */ | |
125 | {0x42,0x6a3d,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3b,-1}, | |
126 | {0x45,0x6a7f,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3b,-1}, | |
127 | {0x48,0x6a3b,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3d,-1}, /* 1360x768 */ | |
128 | {0x4b,0x6a7d,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3d,-1}, | |
129 | {0x4e,0x6aff,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3d,-1}, | |
130 | {0x4f,0x921f,0x0000,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x32 */ | |
131 | {0x53,0x921f,0x0000,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x32 */ | |
132 | {0x54,0xb21f,0x0000,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x32 */ | |
133 | {0x55,0x2e3b,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3e,-1}, /* 1280x768 */ | |
134 | {0x5a,0x2e7d,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3e,-1}, | |
135 | {0x5b,0x2eff,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3e,-1}, | |
136 | {0x5f,0x6a1b,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3f,-1}, /* 768x576x8 */ | |
137 | {0x60,0x6a1d,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3f,-1}, /* 768x576x16 */ | |
138 | {0x61,0x6a1f,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3f,-1}, /* 768x576x32 */ | |
139 | {0x67,0x6e3b,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x40,-1}, /* 1360x1024x8 (BARCO) */ | |
140 | {0x6f,0x6e7d,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x40,-1}, /* 1360x1024x16 (BARCO) */ | |
141 | {0x72,0x6eff,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x40,-1}, /* 1360x1024x32 (BARCO) */ | |
142 | {0xff,0x0000,0xffff,0, 0x00,0x00,0x00,0x00,0x00} | |
143 | }; | |
144 | ||
544393fe TW |
145 | static const struct SiS_Ext2 SiS300_RefIndex[] = |
146 | { | |
147 | {0x085f,0x0d,0x03,0x05,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 00 */ | |
148 | {0x0467,0x0e,0x04,0x05,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 01 */ | |
149 | {0x0067,0x0f,0x07,0x48,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 02 - CRT1CRTC was 0x4f */ | |
150 | {0x0067,0x10,0x06,0x8b,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 03 */ | |
151 | {0x0147,0x11,0x08,0x00,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 04 */ | |
152 | {0x0147,0x12,0x0c,0x00,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 05 */ | |
153 | {0x0047,0x11,0x0e,0x00,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 06 - CRT1CRTC was 0x51 */ | |
154 | {0x0047,0x11,0x13,0x00,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 07 */ | |
155 | {0xc85f,0x05,0x00,0x04,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 08 */ | |
156 | {0xc067,0x06,0x02,0x04,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 09 */ | |
157 | {0xc067,0x07,0x02,0x47,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0a */ | |
158 | {0xc067,0x08,0x03,0x8a,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0b */ | |
159 | {0xc047,0x09,0x05,0x00,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0c */ | |
160 | {0xc047,0x0a,0x08,0x00,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0d */ | |
161 | {0xc047,0x0b,0x0a,0x00,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0e */ | |
162 | {0xc047,0x0c,0x10,0x00,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0f */ | |
163 | {0x487f,0x04,0x00,0x00,0x00,0x2f, 640, 400, 0, 0x4a, 0x49}, /* 10 */ | |
164 | {0xc06f,0x31,0x01,0x06,0x13,0x31, 720, 480, 0, 0x00, 0x00}, /* 11 */ | |
165 | {0x006f,0x32,0x4a,0x06,0x14,0x32, 720, 576, 0, 0x00, 0x00}, /* 12 */ /* 4a was 03 */ | |
166 | {0x0187,0x15,0x05,0x00,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 13 */ | |
167 | {0xc877,0x16,0x09,0x06,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 14 */ | |
168 | {0xc067,0x17,0x0b,0x49,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 15 - CRT1CRTC was 0x97 */ | |
169 | {0x0267,0x18,0x0d,0x00,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 16 */ | |
170 | {0x0047,0x19,0x11,0x8c,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 17 - CRT1CRTC was 0x59 */ | |
171 | {0x0047,0x1a,0x12,0x00,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 18 */ | |
172 | {0x0007,0x1b,0x16,0x00,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 19 - CRT1CRTC was 0x5b */ | |
173 | {0x0387,0x1c,0x0d,0x00,0x07,0x3a,1280,1024, 0, 0x00, 0x00}, /* 1a - CRT1CRTC was 0x5c */ | |
174 | {0x0077,0x1d,0x14,0x07,0x07,0x3a,1280,1024, 0, 0x00, 0x00}, /* 1b */ | |
175 | {0x0047,0x1e,0x17,0x00,0x07,0x3a,1280,1024, 0, 0x00, 0x00}, /* 1c */ | |
176 | {0x0007,0x1f,0x18,0x00,0x07,0x3a,1280,1024, 0, 0x00, 0x00}, /* 1d */ | |
177 | {0x0007,0x20,0x19,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 1e - CRT1CRTC was 0x60 */ | |
178 | {0x0007,0x21,0x1a,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 1f */ | |
179 | {0x0007,0x22,0x1b,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 20 */ | |
180 | {0x0007,0x23,0x1d,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 21 - CRT1CRTC was 0x63 */ | |
181 | {0x0007,0x24,0x1e,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 22 */ | |
182 | {0x407f,0x00,0x00,0x00,0x00,0x40, 320, 200, 0, 0x4b, 0x4b}, /* 23 */ | |
183 | {0xc07f,0x01,0x00,0x04,0x04,0x50, 320, 240, 0, 0x00, 0x00}, /* 24 */ | |
184 | {0x0077,0x02,0x04,0x05,0x05,0x51, 400, 300, 0, 0x00, 0x00}, /* 25 */ | |
185 | {0xc877,0x03,0x09,0x06,0x06,0x52, 512, 384, 0, 0x00, 0x00}, /* 26 */ /* was c077 */ | |
186 | {0x8207,0x25,0x1f,0x00,0x00,0x68,1920,1440, 0, 0x00, 0x00}, /* 27 */ | |
187 | {0x0007,0x26,0x20,0x00,0x00,0x6c,2048,1536, 0, 0x00, 0x00}, /* 28 */ | |
188 | {0x0067,0x27,0x14,0x08,0x0a,0x6e,1280, 960, 0, 0x00, 0x00}, /* 29 - 1280x960-60 */ | |
189 | {0x0027,0x45,0x3c,0x08,0x0a,0x6e,1280, 960, 0, 0x00, 0x00}, /* 2a - 1280x960-85 */ | |
190 | {0xc077,0x33,0x09,0x06,0x00,0x20,1024, 600, 0, 0x00, 0x00}, /* 2b */ | |
191 | {0xc077,0x34,0x0b,0x06,0x00,0x23,1152, 768, 0, 0x00, 0x00}, /* 2c */ /* VCLK 0x09 */ | |
192 | {0x0077,0x35,0x27,0x08,0x18,0x70, 800, 480, 0, 0x00, 0x00}, /* 2d */ | |
193 | {0x0047,0x36,0x37,0x08,0x18,0x70, 800, 480, 0, 0x00, 0x00}, /* 2e */ | |
194 | {0x0047,0x37,0x08,0x08,0x18,0x70, 800, 480, 0, 0x00, 0x00}, /* 2f */ | |
195 | {0x0077,0x38,0x09,0x09,0x19,0x71,1024, 576, 0, 0x00, 0x00}, /* 30 */ | |
196 | {0x0047,0x39,0x38,0x09,0x19,0x71,1024, 576, 0, 0x00, 0x00}, /* 31 */ | |
197 | {0x0047,0x3a,0x11,0x09,0x19,0x71,1024, 576, 0, 0x00, 0x00}, /* 32 */ | |
198 | {0x0077,0x3b,0x39,0x0a,0x0c,0x75,1280, 720, 0, 0x00, 0x00}, /* 33 */ | |
199 | {0x0047,0x3c,0x3a,0x0a,0x0c,0x75,1280, 720, 0, 0x00, 0x00}, /* 34 */ | |
200 | {0x0007,0x3d,0x3b,0x0a,0x0c,0x75,1280, 720, 0, 0x00, 0x00}, /* 35 */ | |
201 | {0x0067,0x49,0x35,0x06,0x1a,0x29,1152, 864, 0, 0x00, 0x00}, /* 36 1152x864-60Hz */ | |
202 | {0x0067,0x3e,0x34,0x06,0x1a,0x29,1152, 864, 0, 0x00, 0x00}, /* 37 1152x864-75Hz */ | |
203 | {0x0047,0x44,0x3a,0x06,0x1a,0x29,1152, 864, 0, 0x00, 0x00}, /* 38 1152x864-85Hz */ | |
204 | {0x00c7,0x3f,0x28,0x00,0x16,0x39, 848, 480, 0, 0x00, 0x00}, /* 39 848x480-38Hzi */ | |
205 | {0xc067,0x40,0x3d,0x0b,0x16,0x39, 848, 480, 0, 0x00, 0x00}, /* 3a 848x480-60Hz */ | |
206 | {0x00c7,0x41,0x28,0x00,0x17,0x3f, 856, 480, 0, 0x00, 0x00}, /* 3b 856x480-38Hzi */ | |
207 | {0xc067,0x42,0x28,0x0c,0x17,0x3f, 856, 480, 0, 0x00, 0x00}, /* 3c 856x480-60Hz */ | |
208 | {0x0067,0x43,0x3e,0x0d,0x1b,0x48,1360, 768, 0, 0x00, 0x00}, /* 3d 1360x768-60Hz */ | |
209 | {0x0077,0x46,0x3f,0x08,0x08,0x55,1280, 768, 0, 0x00, 0x00}, /* 3e 1280x768-60Hz */ | |
210 | {0x006f,0x47,0x4c,0x06,0x15,0x5f, 768, 576, 0, 0x00, 0x00}, /* 3f 768x576 */ | |
211 | {0x0027,0x48,0x13,0x08,0x00,0x67,1360,1024, 0, 0x00, 0x00}, /* 40 1360x1024-59Hz (BARCO1366 only) */ | |
212 | {0xffff, 0, 0, 0, 0, 0, 0, 0, 0, 0x00, 0x00} | |
213 | }; | |
214 | ||
215 | static const struct SiS_VBMode SiS300_VBModeIDTable[] = | |
1da177e4 LT |
216 | { |
217 | {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, | |
218 | {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, | |
219 | {0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x02}, | |
220 | {0x03,0x00,0x00,0x00,0x02,0x00,0x02,0x00}, | |
221 | {0x03,0x00,0x00,0x00,0x02,0x00,0x02,0x01}, | |
222 | {0x03,0x00,0x00,0x00,0x03,0x00,0x03,0x02}, | |
223 | {0x05,0x00,0x00,0x01,0x04,0x00,0x00,0x00}, | |
224 | {0x06,0x00,0x00,0x01,0x05,0x00,0x02,0x00}, | |
225 | {0x07,0x00,0x00,0x00,0x03,0x00,0x03,0x01}, | |
226 | {0x07,0x00,0x00,0x00,0x03,0x00,0x03,0x02}, | |
227 | {0x0d,0x00,0x00,0x01,0x04,0x00,0x00,0x00}, | |
228 | {0x0e,0x00,0x00,0x01,0x05,0x00,0x02,0x00}, | |
229 | {0x0f,0x00,0x00,0x01,0x05,0x00,0x02,0x01}, | |
230 | {0x10,0x00,0x00,0x01,0x05,0x00,0x02,0x01}, | |
231 | {0x11,0x00,0x00,0x01,0x05,0x00,0x02,0x03}, | |
232 | {0x12,0x00,0x00,0x01,0x05,0x00,0x02,0x03}, | |
233 | {0x13,0x00,0x00,0x01,0x04,0x00,0x04,0x00}, | |
234 | {0x6a,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, | |
235 | {0x2e,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, | |
236 | {0x2f,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, | |
237 | {0x30,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, | |
238 | {0x31,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
239 | {0x32,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
240 | {0x33,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
241 | {0x34,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
242 | {0x35,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
243 | {0x36,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
244 | {0x37,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, | |
245 | {0x38,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, | |
246 | {0x3a,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, | |
247 | {0x40,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, | |
248 | {0x41,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, | |
249 | {0x43,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, | |
250 | {0x44,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, | |
251 | {0x46,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, | |
252 | {0x47,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, | |
253 | {0x49,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, | |
254 | {0x4a,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, | |
255 | {0x4c,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, | |
256 | {0x4d,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, | |
257 | {0x4f,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, | |
258 | {0x50,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, | |
259 | {0x51,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, | |
260 | {0x52,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, | |
261 | {0x53,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, | |
262 | {0x54,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, | |
263 | {0x56,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, | |
264 | {0x57,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, | |
265 | {0x58,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, | |
266 | {0x59,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, | |
267 | {0x5c,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, | |
268 | {0x5d,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, | |
269 | {0x5e,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, | |
270 | {0x5f,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
271 | {0x60,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
272 | {0x61,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, | |
273 | {0x62,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, | |
274 | {0x63,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, | |
275 | {0x64,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, | |
276 | {0x65,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, | |
277 | {0x6c,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, | |
278 | {0x6d,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, | |
279 | {0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00} | |
280 | }; | |
281 | ||
544393fe | 282 | static const struct SiS_CRT1Table SiS300_CRT1Table[] = |
1da177e4 | 283 | { |
1da177e4 LT |
284 | {{0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f, /* 0x00 - 320x200 */ |
285 | 0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x00, /* HRE [4],[15] is invalid - but correcting it does not work */ | |
286 | 0x00}}, | |
1da177e4 LT |
287 | {{0x2d,0x27,0x28,0x90,0x2c,0x80,0x0b,0x3e, /* 0x01 */ |
288 | 0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x00, /* HRE [4],[15] is invalid - but correcting it does not work */ | |
289 | 0x00}}, | |
1da177e4 LT |
290 | {{0x3d,0x31,0x31,0x81,0x37,0x1f,0x72,0xf0, /* 0x02 */ |
291 | 0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x05, | |
292 | 0x01}}, | |
1da177e4 LT |
293 | {{0x4f,0x3f,0x3f,0x93,0x45,0x0d,0x24,0xf5, |
294 | 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x01, | |
295 | 0x01}}, | |
296 | {{0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, | |
297 | 0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x05, | |
298 | 0x00}}, | |
1da177e4 LT |
299 | {{0x5f,0x4f,0x4f,0x83,0x55,0x81,0x0b,0x3e, /* 0x05 - corrected 640x480-60 */ |
300 | 0xe9,0x8b,0xdf,0xe8,0x0c,0x00,0x00,0x05, | |
301 | 0x00}}, | |
1da177e4 LT |
302 | {{0x63,0x4f,0x4f,0x87,0x56,0x9b,0x06,0x3e, /* 0x06 - corrected 640x480-72 */ |
303 | 0xe8,0x8a,0xdf,0xe7,0x07,0x00,0x00,0x01, | |
304 | 0x00}}, | |
305 | {{0x64,0x4f,0x4f,0x88,0x55,0x9d,0xf2,0x1f, | |
306 | 0xe0,0x83,0xdf,0xdf,0xf3,0x10,0x00,0x01, | |
307 | 0x00}}, | |
308 | {{0x63,0x4f,0x4f,0x87,0x5a,0x81,0xfb,0x1f, | |
309 | 0xe0,0x83,0xdf,0xdf,0xfc,0x10,0x00,0x05, | |
310 | 0x00}}, | |
1da177e4 LT |
311 | {{0x67,0x4f,0x4f,0x8b,0x57,0x83,0x10,0x3e, /* 0x09 - corrected 640x480-100 */ |
312 | 0xe7,0x8d,0xdf,0xe6,0x11,0x00,0x00,0x05, | |
313 | 0x00}}, | |
1da177e4 LT |
314 | {{0x67,0x4f,0x4f,0x8b,0x57,0x83,0x10,0x3e, /* 0x0a - corrected 640x480-120 */ |
315 | 0xe7,0x8d,0xdf,0xe6,0x11,0x00,0x00,0x05, | |
316 | 0x00}}, | |
317 | {{0x63,0x4f,0x4f,0x87,0x56,0x9d,0xfb,0x1f, | |
318 | 0xe0,0x83,0xdf,0xdf,0xfc,0x10,0x00,0x01, | |
319 | 0x00}}, | |
320 | {{0x65,0x4f,0x4f,0x89,0x57,0x9f,0xfb,0x1f, | |
321 | 0xe6,0x8a,0xdf,0xdf,0xfc,0x10,0x00,0x01, /* Corrected VDE, VBE */ | |
322 | 0x00}}, | |
323 | {{0x7b,0x63,0x63,0x9f,0x6a,0x93,0x6f,0xf0, | |
324 | 0x58,0x8a,0x57,0x57,0x70,0x20,0x00,0x05, | |
325 | 0x01}}, | |
326 | {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xf0, | |
327 | 0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x06, | |
328 | 0x01}}, | |
329 | {{0x7d,0x63,0x63,0x81,0x6e,0x1d,0x98,0xf0, | |
330 | 0x7c,0x82,0x57,0x57,0x99,0x00,0x00,0x06, | |
331 | 0x01}}, | |
332 | {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xf0, | |
333 | 0x58,0x8b,0x57,0x57,0x70,0x20,0x00,0x06, | |
334 | 0x01}}, | |
335 | {{0x7e,0x63,0x63,0x82,0x6b,0x13,0x75,0xf0, | |
336 | 0x58,0x8b,0x57,0x57,0x76,0x20,0x00,0x06, | |
337 | 0x01}}, | |
338 | {{0x8c,0x63,0x63,0x87,0x72,0x16,0x7e,0xf0, | |
339 | 0x59,0x8d,0x57,0x57,0x7f,0x00,0x00,0x06, | |
340 | 0x01}}, | |
341 | {{0x7e,0x63,0x63,0x82,0x6c,0x14,0x75,0xe0, | |
342 | 0x58,0x0b,0x57,0x57,0x76,0x20,0x00,0x06, | |
343 | 0x01}}, | |
344 | {{0x7e,0x63,0x63,0x82,0x6c,0x14,0x75,0xe0, /* 0x14 */ | |
345 | 0x58,0x0b,0x57,0x57,0x76,0x20,0x00,0x06, | |
346 | 0x01}}, | |
347 | {{0x99,0x7f,0x7f,0x9d,0x84,0x1a,0x96,0x1f, | |
348 | 0x7f,0x83,0x7f,0x7f,0x97,0x10,0x00,0x02, | |
349 | 0x00}}, | |
350 | {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf5, | |
351 | 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, | |
352 | 0x01}}, | |
353 | {{0xa1,0x7f,0x7f,0x85,0x86,0x97,0x24,0xf5, | |
354 | 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, | |
355 | 0x01}}, | |
356 | {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf5, | |
357 | 0x00,0x83,0xff,0xff,0x1f,0x10,0x00,0x02, | |
358 | 0x01}}, | |
359 | {{0xa7,0x7f,0x7f,0x8b,0x89,0x95,0x26,0xf5, | |
360 | 0x00,0x83,0xff,0xff,0x27,0x10,0x00,0x02, | |
361 | 0x01}}, | |
362 | {{0x9f,0x7f,0x7f,0x83,0x83,0x93,0x1e,0xf5, /* 0x1a */ | |
363 | 0x00,0x84,0xff,0xff,0x1f,0x10,0x00,0x02, | |
364 | 0x01}}, | |
365 | {{0xa2,0x7f,0x7f,0x86,0x84,0x94,0x37,0xf5, | |
366 | 0x0b,0x82,0xff,0xff,0x38,0x10,0x00,0x02, | |
367 | 0x01}}, | |
368 | {{0xcf,0x9f,0x9f,0x93,0xb2,0x01,0x14,0xba, | |
369 | 0x00,0x83,0xff,0xff,0x15,0x00,0x00,0x03, | |
370 | 0x00}}, | |
371 | {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0x5a, | |
372 | 0x00,0x83,0xff,0xff,0x29,0x09,0x00,0x07, | |
373 | 0x01}}, | |
374 | {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0x5a, /* 0x1e */ | |
375 | 0x00,0x83,0xff,0xff,0x29,0x09,0x00,0x07, | |
376 | 0x01}}, | |
377 | {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0x5a, | |
378 | 0x00,0x83,0xff,0xff,0x2f,0x09,0x00,0x07, | |
379 | 0x01}}, | |
380 | {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, | |
381 | 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, | |
382 | 0x00}}, | |
383 | {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, | |
384 | 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, | |
385 | 0x00}}, | |
386 | {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, | |
387 | 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, | |
388 | 0x00}}, | |
389 | {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, | |
390 | 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, | |
391 | 0x00}}, | |
392 | {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, /* 36: 1600x1200x85Hz */ | |
393 | 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, | |
394 | 0x00}}, | |
395 | {{0x3f,0xef,0xef,0x83,0xfd,0x1a,0xda,0x1f, /* 37: 1920x1440x60Hz */ | |
396 | 0xa0,0x84,0x9f,0x9f,0xdb,0x1f,0x01,0x01, | |
397 | 0x00}}, | |
398 | {{0x55,0xff,0xff,0x99,0x0d,0x0c,0x3e,0xba, | |
399 | 0x00,0x84,0xff,0xff,0x3f,0x0f,0x41,0x05, | |
400 | 0x00}}, | |
1da177e4 LT |
401 | {{0xdc,0x9f,0x9f,0x80,0xaf,0x9d,0xe6,0xff, /* 0x27: 1280x960-60 - correct */ |
402 | 0xc0,0x83,0xbf,0xbf,0xe7,0x10,0x00,0x07, | |
403 | 0x01}}, | |
404 | {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xba, /* 0x28 */ | |
405 | 0x27,0x8b,0xdf,0xdf,0x73,0x00,0x00,0x06, | |
406 | 0x01}}, | |
407 | {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xba, | |
408 | 0x26,0x89,0xdf,0xdf,0x6f,0x00,0x00,0x06, | |
409 | 0x01}}, | |
410 | {{0x7f,0x63,0x63,0x82,0x6b,0x13,0x75,0xba, | |
411 | 0x29,0x8c,0xdf,0xdf,0x75,0x00,0x00,0x06, | |
412 | 0x01}}, | |
413 | {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf1, | |
414 | 0xaf,0x85,0x3f,0x3f,0x25,0x30,0x00,0x02, | |
415 | 0x01}}, | |
416 | {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf1, | |
417 | 0xad,0x81,0x3f,0x3f,0x1f,0x30,0x00,0x02, | |
418 | 0x01}}, | |
419 | {{0xa7,0x7f,0x7f,0x88,0x89,0x15,0x26,0xf1, | |
420 | 0xb1,0x85,0x3f,0x3f,0x27,0x30,0x00,0x02, | |
421 | 0x01}}, | |
422 | {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0xc4, | |
423 | 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, | |
424 | 0x01}}, | |
425 | {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0xd4, | |
426 | 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, | |
427 | 0x01}}, | |
428 | {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0xd4, | |
429 | 0x7d,0x81,0xcf,0xcf,0x2f,0x21,0x00,0x07, | |
430 | 0x01}}, | |
431 | {{0x6b,0x59,0x59,0x8f,0x5e,0x8c,0x0b,0x3e, | |
432 | 0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x05, | |
433 | 0x00}}, | |
544393fe TW |
434 | {{0x6d,0x59,0x59,0x91,0x60,0x89,0x53,0xf0, /* 0x32: 720x576, corrected to 60Hz */ |
435 | 0x41,0x84,0x3f,0x3f,0x54,0x00,0x00,0x05, | |
436 | 0x41}}, | |
1da177e4 LT |
437 | {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x1e,0xf1, /* 0x33 - 1024x600 */ |
438 | 0xae,0x85,0x57,0x57,0x1f,0x30,0x00,0x02, | |
439 | 0x01}}, | |
440 | {{0xa3,0x8f,0x8f,0x97,0x96,0x97,0x24,0xf5, /* 0x34 - 1152x768 - corrected */ | |
441 | 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, | |
442 | 0x01}}, | |
443 | {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xba, /* 0x35 */ | |
444 | 0x27,0x8b,0xdf,0xdf,0x73,0x00,0x00,0x06, | |
445 | 0x01}}, /* 0x35 */ | |
446 | {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xba, | |
447 | 0x26,0x89,0xdf,0xdf,0x6f,0x00,0x00,0x06, | |
448 | 0x01}}, /* 0x36 */ | |
449 | {{0x7f,0x63,0x63,0x82,0x6b,0x13,0x75,0xba, | |
450 | 0x29,0x8c,0xdf,0xdf,0x75,0x00,0x00,0x06, | |
451 | 0x01}}, /* 0x37 */ | |
452 | {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf1, | |
453 | 0xaf,0x85,0x3f,0x3f,0x25,0x30,0x00,0x02, | |
454 | 0x01}}, /* 0x38 */ | |
455 | {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf1, | |
456 | 0xad,0x81,0x3f,0x3f,0x1f,0x30,0x00,0x02, | |
457 | 0x01}}, /* 0x39 */ | |
458 | {{0xa7,0x7f,0x7f,0x88,0x89,0x95,0x26,0xf1, /* 95 was 15 - illegal HBE! */ | |
459 | 0xb1,0x85,0x3f,0x3f,0x27,0x30,0x00,0x02, | |
460 | 0x01}}, /* 0x3a */ | |
461 | {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0xc4, | |
462 | 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, | |
463 | 0x01}}, /* 0x3b */ | |
464 | {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0xd4, | |
465 | 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, | |
466 | 0x01}}, /* 0x3c */ | |
467 | {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0xd4, | |
468 | 0x7d,0x81,0xcf,0xcf,0x2f,0x21,0x00,0x07, | |
469 | 0x01}}, /* 0x3d */ | |
470 | {{0xc3,0x8f,0x8f,0x87,0x9b,0x0b,0x82,0xef, /* 1152x864-75 */ | |
471 | 0x60,0x83,0x5f,0x5f,0x83,0x10,0x00,0x07, | |
472 | 0x01}}, /* 0x3e */ | |
473 | {{0x86,0x69,0x69,0x8A,0x74,0x06,0x8C,0x15, /* 848x480-38i */ | |
474 | 0x4F,0x83,0xEF,0xEF,0x8D,0x30,0x00,0x02, | |
475 | 0x00}}, /* 0x3f */ | |
476 | {{0x83,0x69,0x69,0x87,0x6f,0x1d,0x03,0x3E, /* 848x480-60 */ | |
477 | 0xE5,0x8d,0xDF,0xe4,0x04,0x00,0x00,0x06, | |
478 | 0x00}}, /* 0x40 */ | |
479 | {{0x86,0x6A,0x6A,0x8A,0x74,0x06,0x8C,0x15, /* 856x480-38i */ | |
480 | 0x4F,0x83,0xEF,0xEF,0x8D,0x30,0x00,0x02, | |
481 | 0x00}}, /* 0x41 */ | |
482 | {{0x81,0x6A,0x6A,0x85,0x70,0x00,0x0F,0x3E, /* 856x480-60 */ | |
483 | 0xEB,0x8E,0xDF,0xDF,0x10,0x00,0x00,0x02, | |
484 | 0x00}}, /* 0x42 */ | |
485 | {{0xdd,0xa9,0xa9,0x81,0xb4,0x97,0x26,0xfd, /* 1360x768-60 */ | |
486 | 0x01,0x8d,0xff,0x00,0x27,0x10,0x00,0x03, | |
487 | 0x01}}, /* 0x43 */ | |
488 | {{0xd9,0x8f,0x8f,0x9d,0xba,0x0a,0x8a,0xff, /* 1152x864-84 */ | |
489 | 0x60,0x8b,0x5f,0x5f,0x8b,0x10,0x00,0x03, | |
490 | 0x01}}, /* 0x44 */ | |
491 | {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0xf1,0xff, /* 1280x960-85 */ | |
492 | 0xc0,0x83,0xbf,0xbf,0xf2,0x10,0x00,0x07, | |
493 | 0x01}}, /* 0x45 */ | |
494 | {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x20,0xf5, /* 1280x768-60 */ | |
495 | 0x03,0x88,0xff,0xff,0x21,0x10,0x00,0x07, | |
496 | 0x01}}, /* 0x46 */ | |
544393fe TW |
497 | {{0x75,0x5f,0x5f,0x99,0x66,0x90,0x53,0xf0, /* 768x576, corrected to 60Hz */ |
498 | 0x41,0x84,0x3f,0x3f,0x54,0x00,0x00,0x05, | |
499 | 0x41}}, /* 0x47 */ | |
1da177e4 LT |
500 | {{0xce,0xa9,0xa9,0x92,0xb1,0x07,0x28,0x52, /* 1360x1024 (Barco iQ Pro R300) */ |
501 | 0x02,0x8e,0xff,0x00,0x29,0x0d,0x00,0x03, | |
502 | 0x00}}, /* 0x48 */ | |
503 | {{0xcd,0x8f,0x8f,0x91,0x9b,0x1b,0x7a,0xff, /* 1152x864-60 */ | |
504 | 0x64,0x8c,0x5f,0x62,0x7b,0x10,0x00,0x07, | |
544393fe TW |
505 | 0x41}}, /* 0x49 */ |
506 | {{0x5c,0x4f,0x4f,0x80,0x57,0x80,0xa3,0x1f, /* fake 640x400@60Hz (for LCD and TV, not actually used) */ | |
507 | 0x98,0x8c,0x8f,0x96,0xa4,0x30,0x00,0x05, | |
508 | 0x40}}, /* 0x4a */ | |
509 | {{0x2c,0x27,0x27,0x90,0x2d,0x92,0xa4,0x1f, /* fake 320x200@60Hz (for LCD and TV, not actually used) */ | |
510 | 0x98,0x8c,0x8f,0x96,0xa5,0x30,0x00,0x04, | |
511 | 0x00}} /* 0x4b */ | |
1da177e4 LT |
512 | }; |
513 | ||
544393fe | 514 | static const struct SiS_MCLKData SiS300_MCLKData_630[] = |
1da177e4 LT |
515 | { |
516 | { 0x5a,0x64,0x80, 66}, | |
517 | { 0xb3,0x45,0x80, 83}, | |
518 | { 0x37,0x61,0x80,100}, | |
519 | { 0x37,0x22,0x80,133}, | |
520 | { 0x37,0x61,0x80,100}, | |
521 | { 0x37,0x61,0x80,100}, | |
522 | { 0x37,0x61,0x80,100}, | |
523 | { 0x37,0x61,0x80,100} | |
524 | }; | |
525 | ||
544393fe | 526 | static const struct SiS_MCLKData SiS300_MCLKData_300[] = |
1da177e4 LT |
527 | { |
528 | { 0x68,0x43,0x80,125}, | |
529 | { 0x68,0x43,0x80,125}, | |
530 | { 0x68,0x43,0x80,125}, | |
531 | { 0x37,0x61,0x80,100}, | |
532 | { 0x37,0x61,0x80,100}, | |
533 | { 0x37,0x61,0x80,100}, | |
534 | { 0x37,0x61,0x80,100}, | |
535 | { 0x37,0x61,0x80,100} | |
536 | }; | |
537 | ||
544393fe | 538 | static struct SiS_VCLKData SiS300_VCLKData[] = |
1da177e4 LT |
539 | { |
540 | { 0x1b,0xe1, 25}, /* 0x00 */ | |
541 | { 0x4e,0xe4, 28}, /* 0x01 */ | |
542 | { 0x57,0xe4, 32}, /* 0x02 */ | |
543 | { 0xc3,0xc8, 36}, /* 0x03 */ | |
544 | { 0x42,0xc3, 40}, /* 0x04 */ | |
545 | { 0x5d,0xc4, 45}, /* 0x05 */ | |
546 | { 0x52,0x65, 50}, /* 0x06 */ | |
547 | { 0x53,0x65, 50}, /* 0x07 */ | |
548 | { 0x6d,0x66, 56}, /* 0x08 */ | |
549 | { 0x5a,0x64, 65}, /* 0x09 */ | |
550 | { 0x46,0x44, 68}, /* 0x0a */ | |
551 | { 0x3e,0x43, 75}, /* 0x0b */ | |
552 | { 0x6d,0x46, 76}, /* 0x0c */ /* 800x600 | LVDS_2(CH), MITAC(CH); - 730, A901(301B): 0xb1,0x46, 76 */ | |
553 | { 0x41,0x43, 79}, /* 0x0d */ | |
554 | { 0x31,0x42, 79}, /* 0x0e */ | |
555 | { 0x46,0x25, 85}, /* 0x0f */ | |
556 | { 0x78,0x29, 87}, /* 0x10 */ | |
557 | { 0x62,0x44, 95}, /* 0x11 */ | |
558 | { 0x2b,0x22,105}, /* 0x12 */ | |
559 | { 0x49,0x24,106}, /* 0x13 */ | |
560 | { 0xc3,0x28,108}, /* 0x14 */ | |
561 | { 0x3c,0x23,109}, /* 0x15 */ | |
562 | { 0xf7,0x2c,132}, /* 0x16 */ | |
563 | { 0xd4,0x28,136}, /* 0x17 */ | |
564 | { 0x41,0x05,158}, /* 0x18 */ | |
565 | { 0x43,0x05,162}, /* 0x19 */ | |
566 | { 0xe1,0x0f,175}, /* 0x1a */ | |
567 | { 0xfc,0x12,189}, /* 0x1b */ | |
568 | { 0xde,0x26,194}, /* 0x1c */ | |
569 | { 0x54,0x05,203}, /* 0x1d */ | |
570 | { 0x3f,0x03,230}, /* 0x1e */ | |
571 | { 0x30,0x02,234}, /* 0x1f */ | |
572 | { 0x24,0x01,266}, /* 0x20 */ | |
573 | { 0x52,0x2a, 54}, /* 0x21 */ /* 301 TV */ | |
574 | { 0x52,0x6a, 27}, /* 0x22 */ /* 301 TV */ | |
575 | { 0x62,0x24, 70}, /* 0x23 */ /* 301 TV */ | |
576 | { 0x62,0x64, 70}, /* 0x24 */ /* 301 TV */ | |
577 | { 0xa8,0x4c, 30}, /* 0x25 */ /* 301 TV */ | |
578 | { 0x20,0x26, 33}, /* 0x26 */ /* 301 TV */ | |
579 | { 0x31,0xc2, 39}, /* 0x27 */ | |
580 | { 0xbf,0xc8, 35}, /* 0x28 */ /* 856x480 */ | |
581 | { 0x60,0x36, 30}, /* 0x29 */ /* CH/UNTSC TEXT | LVDS_2(CH) - 730, A901(301B), Mitac(CH): 0xe0, 0xb6, 30 */ | |
582 | { 0x40,0x4a, 28}, /* 0x2a */ /* CH-TV */ | |
583 | { 0x9f,0x46, 44}, /* 0x2b */ /* CH-TV */ | |
584 | { 0x97,0x2c, 26}, /* 0x2c */ /* CH-TV */ | |
585 | { 0x44,0xe4, 25}, /* 0x2d */ /* CH-TV */ | |
586 | { 0x7e,0x32, 47}, /* 0x2e */ /* CH-TV */ | |
587 | { 0x8a,0x24, 31}, /* 0x2f */ /* CH/PAL TEXT | LVDS_2(CH), Mitac(CH) - 730, A901(301B): 0x57, 0xe4, 31 */ | |
588 | { 0x97,0x2c, 26}, /* 0x30 */ /* CH-TV */ | |
589 | { 0xce,0x3c, 39}, /* 0x31 */ /* CH-TV */ | |
590 | { 0x52,0x4a, 36}, /* 0x32 */ /* CH/PAL 800x600 5/6 */ | |
591 | { 0x34,0x61, 95}, /* 0x33 */ | |
592 | { 0x78,0x27,108}, /* 0x34 */ /* Replacement for index 0x14 for 630 (?) */ | |
593 | { 0x70,0x28, 90}, /* 0x35 */ /* 1152x864@60 */ | |
594 | { 0x45,0x6b, 21}, /* 0x36 */ /* Chrontel SuperOverscan */ | |
595 | { 0x52,0xe2, 49}, /* 0x37 */ /* 16:9 modes */ | |
596 | { 0x2b,0x61, 78}, /* 0x38 */ /* 16:9 modes */ | |
597 | { 0x70,0x44,108}, /* 0x39 */ /* 16:9 modes */ | |
598 | { 0x54,0x42,135}, /* 0x3a */ /* 16:9 modes */ | |
599 | { 0x41,0x22,157}, /* 0x3b */ /* 16:9 modes */ | |
600 | { 0x52,0x07,149}, /* 0x3c */ /* 1280x960-85 */ | |
601 | { 0x62,0xc6, 34}, /* 0x3d */ /* 848x480-60 */ | |
602 | { 0x30,0x23, 88}, /* 0x3e */ /* 1360x768-60 */ | |
603 | { 0x70,0x29, 81}, /* 0x3f */ /* 1280x768-60 */ | |
604 | { 0x72,0x2a, 76}, /* 0x40 */ /* test for SiS730 --- LIMIT for table (&0x3f) */ | |
605 | { 0x15,0x21, 79}, /* 0x41 */ /* test for SiS730 */ | |
606 | { 0xa1,0x42,108}, /* 0x42 */ /* 1280x960 LCD */ | |
607 | { 0x37,0x61,100}, /* 0x43 */ /* 1280x960 LCD */ | |
608 | { 0xe3,0x9a,106}, /* 0x44 */ /* 1360x1024 - special for Barco iQ R300 */ | |
609 | { 0xe2,0x46,135}, /* 0x45 */ /* 1280x1024-75, better clock for VGA2 */ | |
610 | { 0x70,0x29, 81}, /* 0x46 */ /* unused */ | |
611 | { 0, 0, 0}, /* 0x47 custom (will be filled out) */ | |
544393fe TW |
612 | { 0xce,0x25,189}, /* 0x48 */ /* Replacement for index 0x1b for 730 (and 540?) */ |
613 | { 0x15,0xe1, 20}, /* 0x49 */ /* 640x400@60 (fake, not actually used) */ | |
614 | { 0x5f,0xc6, 33}, /* 0x4a */ /* 720x576@60 */ | |
615 | { 0x37,0x5a, 10}, /* 0x4b */ /* 320x200@60 (fake, not actually used) */ | |
616 | { 0x2b,0xc2, 35} /* 0x4c */ /* 768@576@60 */ | |
1da177e4 LT |
617 | }; |
618 | ||
544393fe | 619 | static const unsigned char SiS300_SR15[4 * 8] = |
1da177e4 | 620 | { |
544393fe TW |
621 | 0x01,0x09,0xa3,0x00, |
622 | 0x43,0x43,0x43,0x00, | |
623 | 0x1e,0x1e,0x1e,0x00, | |
624 | 0x2a,0x2a,0x2a,0x00, | |
625 | 0x06,0x06,0x06,0x00, | |
626 | 0x00,0x00,0x00,0x00, | |
627 | 0x00,0x00,0x00,0x00, | |
628 | 0x00,0x00,0x00,0x00 | |
1da177e4 LT |
629 | }; |
630 | ||
544393fe | 631 | static const struct SiS_PanelDelayTbl SiS300_PanelDelayTbl[] = |
1da177e4 LT |
632 | { |
633 | {{0x05,0xaa}}, | |
634 | {{0x05,0x14}}, | |
635 | {{0x05,0x36}}, | |
636 | {{0x05,0x14}}, | |
637 | {{0x05,0x14}}, | |
638 | {{0x05,0x14}}, | |
639 | {{0x05,0x90}}, | |
640 | {{0x05,0x90}}, | |
641 | {{0x05,0x14}}, | |
642 | {{0x05,0x14}}, | |
643 | {{0x05,0x14}}, | |
644 | {{0x05,0x14}}, | |
645 | {{0x20,0x80}}, | |
646 | {{0x05,0x14}}, | |
647 | {{0x05,0x40}}, | |
648 | {{0x05,0x60}} | |
649 | }; | |
650 | ||
1da177e4 LT |
651 | /**************************************************************/ |
652 | /* SIS VIDEO BRIDGE ----------------------------------------- */ | |
653 | /**************************************************************/ | |
654 | ||
544393fe | 655 | static const struct SiS_LCDData SiS300_St2LCD1024x768Data[] = |
1da177e4 LT |
656 | { |
657 | { 62, 25, 800, 546,1344, 806}, | |
658 | { 32, 15, 930, 546,1344, 806}, | |
659 | { 32, 15, 930, 546,1344, 806}, | |
660 | { 104, 45, 945, 496,1344, 806}, | |
661 | { 62, 25, 800, 546,1344, 806}, | |
662 | { 31, 18,1008, 624,1344, 806}, | |
663 | { 1, 1,1344, 806,1344, 806} | |
664 | }; | |
665 | ||
544393fe | 666 | static const struct SiS_LCDData SiS300_ExtLCD1024x768Data[] = |
1da177e4 LT |
667 | { |
668 | { 12, 5, 896, 512,1344, 806}, | |
669 | { 12, 5, 896, 510,1344, 806}, | |
670 | { 32, 15,1008, 505,1344, 806}, | |
671 | { 32, 15,1008, 514,1344, 806}, | |
672 | { 12, 5, 896, 500,1344, 806}, | |
673 | { 42, 25,1024, 625,1344, 806}, | |
674 | { 1, 1,1344, 806,1344, 806}, | |
675 | { 12, 5, 896, 500,1344, 806}, | |
676 | { 42, 25,1024, 625,1344, 806}, | |
677 | { 1, 1,1344, 806,1344, 806}, | |
678 | { 12, 5, 896, 500,1344, 806}, | |
679 | { 42, 25,1024, 625,1344, 806}, | |
680 | { 1, 1,1344, 806,1344, 806} | |
681 | }; | |
682 | ||
544393fe | 683 | static const struct SiS_LCDData SiS300_St2LCD1280x1024Data[] = |
1da177e4 LT |
684 | { |
685 | { 22, 5, 800, 510,1650,1088}, | |
686 | { 22, 5, 800, 510,1650,1088}, | |
687 | { 176, 45, 900, 510,1650,1088}, | |
688 | { 176, 45, 900, 510,1650,1088}, | |
689 | { 22, 5, 800, 510,1650,1088}, | |
690 | { 13, 5,1024, 675,1560,1152}, | |
691 | { 16, 9,1266, 804,1688,1072}, | |
692 | { 1, 1,1688,1066,1688,1066} | |
693 | }; | |
694 | ||
544393fe | 695 | static const struct SiS_LCDData SiS300_ExtLCD1280x1024Data[] = |
1da177e4 LT |
696 | { |
697 | { 211, 60,1024, 501,1688,1066}, | |
698 | { 211, 60,1024, 508,1688,1066}, | |
699 | { 211, 60,1024, 501,1688,1066}, | |
700 | { 211, 60,1024, 508,1688,1066}, | |
701 | { 211, 60,1024, 500,1688,1066}, | |
702 | { 211, 75,1024, 625,1688,1066}, | |
703 | { 211, 120,1280, 798,1688,1066}, | |
704 | { 1, 1,1688,1066,1688,1066} | |
705 | }; | |
706 | ||
544393fe | 707 | static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_1[] = |
1da177e4 | 708 | { /* VESA Timing */ |
544393fe TW |
709 | {{0x21,0x12,0xbf,0xe4,0xc0,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, |
710 | {{0x2c,0x12,0x9a,0xae,0x88,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, | |
711 | {{0x21,0x12,0xbf,0xe4,0xc0,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, | |
712 | {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, | |
713 | {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}}, | |
714 | {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}}, | |
715 | {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}} | |
1da177e4 LT |
716 | }; |
717 | ||
544393fe | 718 | static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_2[] = |
1da177e4 | 719 | { /* Non-VESA */ |
544393fe TW |
720 | {{0x28,0x12,0xa3,0xd0,0xaa,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, |
721 | {{0x2c,0x12,0x9a,0xae,0x88,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, | |
722 | {{0x28,0x12,0xa3,0xd0,0xaa,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, | |
723 | {{0x2c,0x12,0x9a,0xae,0x88,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, | |
724 | {{0x28,0x13,0xe7,0x0b,0xe8,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, | |
725 | {{0x38,0x18,0x16,0x00,0x00,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, | |
726 | {{0x36,0x13,0x13,0x25,0xff,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}} | |
1da177e4 LT |
727 | }; |
728 | ||
544393fe | 729 | static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_3[] = |
1da177e4 | 730 | { |
544393fe | 731 | {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} |
1da177e4 LT |
732 | }; |
733 | ||
734 | /**************************************************************/ | |
735 | /* LVDS/Chrontel -------------------------------------------- */ | |
736 | /**************************************************************/ | |
737 | ||
544393fe TW |
738 | /* Custom data for Barco iQ R series */ |
739 | static const struct SiS_LVDSData SiS300_LVDSBARCO1366Data_1[]= | |
740 | { | |
741 | { 832, 438,1331, 806}, | |
742 | { 832, 388,1331, 806}, | |
743 | { 832, 438,1331, 806}, | |
744 | { 832, 388,1331, 806}, | |
745 | { 832, 518,1331, 806}, | |
746 | {1050, 638,1344, 806}, | |
747 | {1344, 806,1344, 806}, | |
748 | {1688,1066,1688,1066}, | |
749 | {1688,1066,1688,1066} /* 1360x1024 */ | |
750 | }; | |
751 | ||
752 | /* Custom data for Barco iQ R series */ | |
753 | static const struct SiS_LVDSData SiS300_LVDSBARCO1366Data_2[]= | |
754 | { | |
755 | {1344, 806,1344, 806}, | |
756 | {1344, 806,1344, 806}, | |
757 | {1344, 806,1344, 806}, | |
758 | {1344, 806,1344, 806}, | |
759 | {1344, 806,1344, 806}, | |
760 | {1344, 806,1344, 806}, | |
761 | {1344, 806,1344, 806}, | |
762 | {1688,1066,1688,1066}, | |
763 | {1688,1066,1688,1066} /* 1360x1024 */ | |
764 | }; | |
765 | ||
766 | /* Custom data for Barco iQ G series */ | |
767 | static const struct SiS_LVDSData SiS300_LVDSBARCO1024Data_1[]= | |
768 | { | |
769 | { 832, 438,1331, 806}, | |
770 | { 832, 409,1331, 806}, | |
771 | { 832, 438,1331, 806}, | |
772 | { 832, 409,1331, 806}, | |
773 | { 832, 518,1331, 806}, /* 640x480 */ | |
774 | {1050, 638,1344, 806}, /* 800x600 */ | |
775 | {1344, 806,1344, 806}, /* 1024x768 */ | |
776 | }; | |
777 | ||
778 | /* Custom data for 848x480 and 856x480 parallel LVDS panels */ | |
779 | static const struct SiS_LVDSData SiS300_LVDS848x480Data_1[]= | |
780 | { | |
781 | { 0, 0, 0, 0}, | |
782 | { 0, 0, 0, 0}, | |
783 | { 0, 0, 0, 0}, | |
784 | { 0, 0, 0, 0}, | |
785 | {1088, 525,1088, 525}, /* 640x480 TODO */ | |
786 | {1088, 525,1088, 525}, /* 800x600 TODO */ | |
787 | {1088, 525,1088, 525}, /* 1024x768 TODO */ | |
788 | { 0, 0, 0, 0}, | |
789 | { 0, 0, 0, 0}, | |
790 | { 0, 0, 0, 0}, | |
791 | { 0, 0, 0, 0}, | |
792 | {1088, 525,1088, 525}, /* 848x480 */ | |
793 | {1088, 525,1088, 525}, /* 856x480 */ | |
794 | {1088, 525,1088, 525} /* 1360x768 TODO */ | |
795 | }; | |
796 | ||
797 | /* Custom data for 848x480 parallel panel */ | |
798 | static const struct SiS_LVDSData SiS300_LVDS848x480Data_2[]= | |
799 | { | |
800 | { 0, 0, 0, 0}, | |
801 | { 0, 0, 0, 0}, | |
802 | { 0, 0, 0, 0}, | |
803 | { 0, 0, 0, 0}, | |
804 | {1088, 525,1088, 525}, /* 640x480 */ | |
805 | {1088, 525,1088, 525}, /* 800x600 */ | |
806 | {1088, 525,1088, 525}, /* 1024x768 */ | |
807 | { 0, 0, 0, 0}, | |
808 | { 0, 0, 0, 0}, | |
809 | { 0, 0, 0, 0}, | |
810 | { 0, 0, 0, 0}, | |
811 | {1088, 525,1088, 525}, /* 848x480 */ | |
812 | {1088, 525,1088, 525}, /* 856x480 */ | |
813 | {1088, 525,1088, 525} /* 1360x768 TODO */ | |
814 | }; | |
815 | ||
816 | static const struct SiS_LVDSData SiS300_CHTVUPALData[] = | |
1da177e4 LT |
817 | { |
818 | {1008, 625,1008, 625}, | |
819 | {1008, 625,1008, 625}, | |
820 | {1008, 625,1008, 625}, | |
821 | {1008, 625,1008, 625}, | |
822 | { 840, 750, 840, 750}, | |
823 | { 936, 836, 936, 836} | |
824 | }; | |
825 | ||
544393fe | 826 | static const struct SiS_LVDSData SiS300_CHTVOPALData[] = |
1da177e4 LT |
827 | { |
828 | {1008, 625,1008, 625}, | |
829 | {1008, 625,1008, 625}, | |
830 | {1008, 625,1008, 625}, | |
831 | {1008, 625,1008, 625}, | |
832 | { 840, 625, 840, 625}, | |
833 | { 960, 750, 960, 750} | |
834 | }; | |
835 | ||
544393fe | 836 | static const struct SiS_LVDSData SiS300_CHTVSOPALData[] = |
1da177e4 LT |
837 | { |
838 | {1008, 625,1008, 625}, | |
839 | {1008, 625,1008, 625}, | |
840 | {1008, 625,1008, 625}, | |
841 | {1008, 625,1008, 625}, | |
842 | { 840, 500, 840, 500}, | |
843 | { 944, 625, 944, 625} | |
844 | }; | |
845 | ||
544393fe TW |
846 | /* Custom des data for Barco iQ R200/300/400 (BIOS 2.00.07) */ |
847 | static const struct SiS_LVDSDes SiS300_PanelType04_1a[] = /* 1280x1024 (1366x1024) */ | |
1da177e4 LT |
848 | { |
849 | {1330, 798}, /* 320x200 */ | |
850 | {1330, 794}, | |
851 | {1330, 798}, | |
852 | {1330, 794}, | |
853 | {1330, 0}, /* 640x480 / 320x240 */ | |
854 | {1343, 0}, /* 800x600 / 400x300 */ | |
855 | { 0, 805}, /* 1024x768 / 512x384 */ | |
856 | {1688,1066}, /* 1280x1024 */ | |
857 | { 0, 0} /* 1360x1024 */ | |
858 | }; | |
859 | ||
544393fe | 860 | static const struct SiS_LVDSDes SiS300_PanelType04_2a[] = |
1da177e4 LT |
861 | { |
862 | {1152, 622}, | |
863 | {1152, 597}, | |
864 | {1152, 622}, | |
865 | {1152, 597}, | |
866 | {1152, 662}, | |
867 | {1232, 722}, | |
868 | { 0, 805}, | |
869 | {1688,1066}, | |
870 | { 0, 0} | |
871 | }; | |
872 | ||
544393fe TW |
873 | /* Custom des data for Barco iQ G200/300/400 (BIOS 2.00.07) */ |
874 | static const struct SiS_LVDSDes SiS300_PanelType04_1b[] = /* 1024x768 */ | |
1da177e4 LT |
875 | { |
876 | {1330, 798}, /* 320x200 */ | |
877 | {1330, 794}, | |
878 | {1330, 798}, | |
879 | {1330, 794}, | |
880 | {1330, 0}, /* 640x480 / 320x240 */ | |
881 | {1343, 0}, /* 800x600 / 400x300 */ | |
882 | { 0, 805} /* 1024x768 / 512x384 */ | |
883 | }; | |
884 | ||
544393fe | 885 | static const struct SiS_LVDSDes SiS300_PanelType04_2b[] = |
1da177e4 LT |
886 | { |
887 | {1152, 622}, | |
888 | {1152, 597}, | |
889 | {1152, 622}, | |
890 | {1152, 597}, | |
891 | {1152, 662}, | |
892 | {1232, 722}, | |
893 | { 0, 805} | |
894 | }; | |
895 | ||
896 | /* CRT1 CRTC for slave modes */ | |
897 | ||
544393fe | 898 | static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1UNTSC[] = |
1da177e4 LT |
899 | { |
900 | {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, | |
901 | 0xe8,0x84,0x8f,0x57,0x20,0x00,0x01, | |
902 | 0x00 }}, | |
903 | {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, | |
904 | 0xd0,0x82,0x5d,0x57,0x00,0x00,0x01, | |
905 | 0x00 }}, | |
906 | {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, | |
907 | 0xe8,0x84,0x8f,0x57,0x20,0x00,0x01, | |
908 | 0x00 }}, | |
909 | {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, | |
910 | 0xd0,0x82,0x5d,0x57,0x00,0x00,0x01, | |
911 | 0x00 }}, | |
912 | {{0x5d,0x4f,0x81,0x53,0x9c,0x56,0xba, | |
913 | 0x18,0x84,0xdf,0x57,0x00,0x00,0x01, | |
914 | 0x00 }}, | |
915 | {{0x80,0x63,0x84,0x6c,0x17,0xec,0xf0, | |
916 | 0x90,0x8c,0x57,0xed,0x20,0x00,0x06, | |
917 | 0x01 }} | |
918 | }; | |
919 | ||
544393fe | 920 | static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1ONTSC[] = |
1da177e4 LT |
921 | { |
922 | {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, | |
923 | 0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01, | |
924 | 0x00 }}, | |
925 | {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, | |
926 | 0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01, | |
927 | 0x00 }}, | |
928 | {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, | |
929 | 0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01, | |
930 | 0x00 }}, | |
931 | {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, | |
932 | 0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01, | |
933 | 0x00 }}, | |
934 | {{0x5d,0x4f,0x81,0x56,0x9c,0x0b,0x3e, | |
935 | 0xe8,0x84,0xdf,0x0c,0x00,0x00,0x01, | |
936 | 0x00 }}, | |
937 | {{0x7d,0x63,0x81,0x6a,0x16,0xba,0xf0, | |
938 | 0x7f,0x86,0x57,0xbb,0x00,0x00,0x06, | |
939 | 0x01 }} | |
940 | }; | |
941 | ||
544393fe | 942 | static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1UPAL[] = |
1da177e4 LT |
943 | { |
944 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
945 | 0xf8,0x83,0x8f,0x70,0x20,0x00,0x05, | |
946 | 0x00 }}, | |
947 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
948 | 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, | |
949 | 0x00 }}, | |
950 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
951 | 0xf8,0x83,0x8f,0x70,0x20,0x00,0x05, | |
952 | 0x00 }}, | |
953 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
954 | 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, | |
955 | 0x00 }}, | |
956 | {{0x64,0x4f,0x88,0x55,0x80,0xec,0xba, | |
957 | 0x50,0x84,0xdf,0xed,0x00,0x00,0x05, | |
958 | 0x00 }}, | |
959 | {{0x70,0x63,0x94,0x68,0x8d,0x42,0xf1, | |
960 | 0xc8,0x8c,0x57,0xe9,0x20,0x00,0x05, | |
961 | 0x01 }} | |
962 | }; | |
963 | ||
544393fe | 964 | static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1OPAL[] = |
1da177e4 LT |
965 | { |
966 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
967 | 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, | |
968 | 0x00 }}, | |
969 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
970 | 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, | |
971 | 0x00 }}, | |
972 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
973 | 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, | |
974 | 0x00 }}, | |
975 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
976 | 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, | |
977 | 0x00 }}, | |
978 | {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba, | |
979 | 0x20,0x83,0xdf,0x70,0x00,0x00,0x05, | |
980 | 0x00 }}, | |
981 | {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0, | |
982 | 0x90,0x8c,0x57,0xed,0x20,0x00,0x05, | |
983 | 0x01 }} | |
984 | }; | |
985 | ||
544393fe | 986 | static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1SOPAL[] = |
1da177e4 LT |
987 | { |
988 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
989 | 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, | |
990 | 0x00 }}, | |
991 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
992 | 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, | |
993 | 0x00 }}, | |
994 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
995 | 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, | |
996 | 0x00 }}, | |
997 | {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, | |
998 | 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, | |
999 | 0x00 }}, | |
1000 | {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba, /* TODO */ | |
1001 | 0x20,0x83,0xdf,0x70,0x00,0x00,0x05, | |
1002 | 0x00 }}, | |
1003 | {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0, /* TODO */ | |
1004 | 0x90,0x8c,0x57,0xed,0x20,0x00,0x05, | |
1005 | 0x01 }} | |
1006 | }; | |
1007 | ||
544393fe | 1008 | static const struct SiS_CHTVRegData SiS300_CHTVReg_UNTSC[] = |
1da177e4 LT |
1009 | { |
1010 | {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, | |
1011 | {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, | |
1012 | {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, | |
1013 | {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, | |
1014 | {{0x6a,0x6a,0x00,0x2d,0xfa,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 17: 640x480 NTSC 7/8 */ | |
1015 | {{0x8d,0xc4,0x00,0x3b,0xfb,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 24: 800x600 NTSC 7/10 */ | |
1016 | }; | |
1017 | ||
544393fe | 1018 | static const struct SiS_CHTVRegData SiS300_CHTVReg_ONTSC[] = |
1da177e4 LT |
1019 | { |
1020 | {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, | |
1021 | {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, | |
1022 | {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, | |
1023 | {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, | |
1024 | {{0x69,0x6a,0x00,0x1e,0xfd,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 16: 640x480 NTSC 1/1 */ | |
1025 | {{0x8c,0xb4,0x00,0x32,0xf9,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 23: 800x600 NTSC 3/4 */ | |
1026 | }; | |
1027 | ||
544393fe | 1028 | static const struct SiS_CHTVRegData SiS300_CHTVReg_UPAL[] = |
1da177e4 LT |
1029 | { |
1030 | {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, | |
1031 | {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, | |
1032 | {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, | |
1033 | {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, | |
1034 | {{0x63,0x94,0x01,0x50,0x30,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 15: 640x480 PAL 5/6 */ | |
1035 | {{0x84,0x64,0x01,0x4e,0x2f,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 21: 800x600 PAL 3/4 */ | |
1036 | ||
1037 | }; | |
1038 | ||
544393fe | 1039 | static const struct SiS_CHTVRegData SiS300_CHTVReg_OPAL[] = |
1da177e4 LT |
1040 | { |
1041 | {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 9: 640x400 PAL 1/1 */ | |
1042 | {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, | |
1043 | {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, | |
1044 | {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, | |
1045 | {{0x61,0x94,0x01,0x36,0x30,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 14: 640x480 PAL 1/1 */ | |
1046 | {{0x83,0x76,0x01,0x40,0x31,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 20: 800x600 PAL 5/6 */ | |
1047 | ||
1048 | }; | |
1049 | ||
544393fe | 1050 | static const struct SiS_CHTVRegData SiS300_CHTVReg_SOPAL[] = |
1da177e4 LT |
1051 | { |
1052 | {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 9: 640x400 PAL 1/1 */ | |
1053 | {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, | |
1054 | {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, | |
1055 | {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, | |
544393fe TW |
1056 | {{0x60,0x30,0x00,0x10,0x00,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 13: 640x480 PAL 5/4 */ |
1057 | {{0x81,0x50,0x00,0x1b,0x00,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 19: 800x600 PAL 1/1 */ | |
1da177e4 LT |
1058 | }; |
1059 | ||
544393fe | 1060 | static const unsigned char SiS300_CHTVVCLKUNTSC[] = { 0x29,0x29,0x29,0x29,0x2a,0x2e }; |
1da177e4 | 1061 | |
544393fe | 1062 | static const unsigned char SiS300_CHTVVCLKONTSC[] = { 0x2c,0x2c,0x2c,0x2c,0x2d,0x2b }; |
1da177e4 | 1063 | |
544393fe | 1064 | static const unsigned char SiS300_CHTVVCLKSONTSC[] = { 0x2c,0x2c,0x2c,0x2c,0x2d,0x2b }; |
1da177e4 | 1065 | |
544393fe | 1066 | static const unsigned char SiS300_CHTVVCLKUPAL[] = { 0x2f,0x2f,0x2f,0x2f,0x2f,0x31 }; |
1da177e4 | 1067 | |
544393fe | 1068 | static const unsigned char SiS300_CHTVVCLKOPAL[] = { 0x2f,0x2f,0x2f,0x2f,0x30,0x32 }; |
1da177e4 | 1069 | |
544393fe | 1070 | static const unsigned char SiS300_CHTVVCLKSOPAL[] = { 0x2f,0x2f,0x2f,0x2f,0x36,0x29 }; |
1da177e4 LT |
1071 | |
1072 |