Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* $XFree86$ */ |
2 | /* $XdotOrg$ */ | |
3 | /* | |
4 | * Data and prototypes for init301.c | |
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 TW |
53 | #ifndef _INIT301_H_ |
54 | #define _INIT301_H_ | |
1da177e4 LT |
55 | |
56 | #include "osdef.h" | |
57 | #include "initdef.h" | |
58 | ||
544393fe | 59 | #ifdef SIS_XORG_XF86 |
1da177e4 LT |
60 | #include "sis.h" |
61 | #include "sis_regs.h" | |
62 | #endif | |
63 | ||
544393fe | 64 | #ifdef SIS_LINUX_KERNEL |
1da177e4 LT |
65 | #include "vgatypes.h" |
66 | #include "vstruct.h" | |
67 | #ifdef SIS_CP | |
68 | #undef SIS_CP | |
69 | #endif | |
1da177e4 | 70 | #include <linux/version.h> |
1da177e4 | 71 | #include <linux/types.h> |
544393fe TW |
72 | #include <asm/io.h> |
73 | #include <linux/fb.h> | |
544393fe | 74 | #include "sis.h" |
1da177e4 LT |
75 | #include <video/sisfb.h> |
76 | #endif | |
1da177e4 | 77 | |
544393fe | 78 | static const unsigned char SiS_YPbPrTable[3][64] = { |
1da177e4 LT |
79 | { |
80 | 0x17,0x1d,0x03,0x09,0x05,0x06,0x0c,0x0c, | |
81 | 0x94,0x49,0x01,0x0a,0x06,0x0d,0x04,0x0a, | |
82 | 0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x1b, | |
83 | 0x0c,0x50,0x00,0x97,0x00,0xda,0x4a,0x17, | |
84 | 0x7d,0x05,0x4b,0x00,0x00,0xe2,0x00,0x02, | |
85 | 0x03,0x0a,0x65,0x9d /*0x8d*/,0x08,0x92,0x8f,0x40, | |
86 | 0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x53 /*0x50*/, | |
87 | 0x00,0x40,0x44,0x00,0xdb,0x02,0x3b,0x00 | |
88 | }, | |
89 | { | |
544393fe | 90 | 0x33,0x06,0x06,0x09,0x0b,0x0c,0x0c,0x0c, |
1da177e4 LT |
91 | 0x98,0x0a,0x01,0x0d,0x06,0x0d,0x04,0x0a, |
92 | 0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f, | |
544393fe | 93 | 0x0c,0x50,0xb2,0x9f,0x16,0x59,0x4f,0x13, |
1da177e4 | 94 | 0xad,0x11,0xad,0x1d,0x40,0x8a,0x3d,0xb8, |
544393fe TW |
95 | 0x51,0x5e,0x60,0x49,0x7d,0x92,0x0f,0x40, |
96 | 0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x4e, | |
1da177e4 LT |
97 | 0x43,0x41,0x11,0x00,0xfc,0xff,0x32,0x00 |
98 | }, | |
99 | { | |
544393fe | 100 | #if 0 /* OK, but sticks to left edge */ |
1da177e4 LT |
101 | 0x13,0x1d,0xe8,0x09,0x09,0xed,0x0c,0x0c, |
102 | 0x98,0x0a,0x01,0x0c,0x06,0x0d,0x04,0x0a, | |
103 | 0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f, | |
104 | 0xed,0x50,0x70,0x9f,0x16,0x59,0x21 /*0x2b*/,0x13, | |
105 | 0x27,0x0b,0x27,0xfc,0x30,0x27,0x1c,0xb0, | |
106 | 0x4b,0x4b,0x65 /*0x6f*/,0x2f,0x63,0x92,0x0f,0x40, | |
107 | 0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x27, | |
108 | 0x00,0x40,0x11,0x00,0xfc,0xff,0x32,0x00 | |
109 | #endif | |
544393fe TW |
110 | #if 1 /* Perfect */ |
111 | 0x23,0x2d,0xe8,0x09,0x09,0xed,0x0c,0x0c, | |
1da177e4 LT |
112 | 0x98,0x0a,0x01,0x0c,0x06,0x0d,0x04,0x0a, |
113 | 0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f, | |
544393fe TW |
114 | 0xed,0x50,0x70,0x9f,0x16,0x59,0x60,0x13, |
115 | 0x27,0x0b,0x27,0xfc,0x30,0x27,0x1c,0xb0, | |
116 | 0x4b,0x4b,0x6f,0x2f,0x63,0x92,0x0f,0x40, | |
117 | 0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x73, | |
118 | 0x00,0x40,0x11,0x00,0xfc,0xff,0x32,0x00 | |
1da177e4 LT |
119 | #endif |
120 | } | |
121 | }; | |
122 | ||
544393fe TW |
123 | static const unsigned char SiS_TVPhase[] = |
124 | { | |
125 | 0x21,0xED,0xBA,0x08, /* 0x00 SiS_NTSCPhase */ | |
126 | 0x2A,0x05,0xE3,0x00, /* 0x01 SiS_PALPhase */ | |
127 | 0x21,0xE4,0x2E,0x9B, /* 0x02 SiS_PALMPhase */ | |
128 | 0x21,0xF4,0x3E,0xBA, /* 0x03 SiS_PALNPhase */ | |
129 | 0x1E,0x8B,0xA2,0xA7, | |
130 | 0x1E,0x83,0x0A,0xE0, /* 0x05 SiS_SpecialPhaseM */ | |
131 | 0x00,0x00,0x00,0x00, | |
132 | 0x00,0x00,0x00,0x00, | |
133 | 0x21,0xF0,0x7B,0xD6, /* 0x08 SiS_NTSCPhase2 */ | |
134 | 0x2A,0x09,0x86,0xE9, /* 0x09 SiS_PALPhase2 */ | |
135 | 0x21,0xE6,0xEF,0xA4, /* 0x0a SiS_PALMPhase2 */ | |
136 | 0x21,0xF6,0x94,0x46, /* 0x0b SiS_PALNPhase2 */ | |
137 | 0x1E,0x8B,0xA2,0xA7, | |
138 | 0x1E,0x83,0x0A,0xE0, /* 0x0d SiS_SpecialPhaseM */ | |
139 | 0x00,0x00,0x00,0x00, | |
140 | 0x00,0x00,0x00,0x00, | |
141 | 0x1e,0x8c,0x5c,0x7a, /* 0x10 SiS_SpecialPhase */ | |
142 | 0x25,0xd4,0xfd,0x5e /* 0x11 SiS_SpecialPhaseJ */ | |
143 | }; | |
144 | ||
145 | static const unsigned char SiS_HiTVGroup3_1[] = { | |
1da177e4 LT |
146 | 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x13, |
147 | 0xb1, 0x41, 0x62, 0x62, 0xff, 0xf4, 0x45, 0xa6, | |
148 | 0x25, 0x2f, 0x67, 0xf6, 0xbf, 0xff, 0x8e, 0x20, | |
149 | 0xac, 0xda, 0x60, 0xfe, 0x6a, 0x9a, 0x06, 0x10, | |
150 | 0xd1, 0x04, 0x18, 0x0a, 0xff, 0x80, 0x00, 0x80, | |
151 | 0x3b, 0x77, 0x00, 0xef, 0xe0, 0x10, 0xb0, 0xe0, | |
152 | 0x10, 0x4f, 0x0f, 0x0f, 0x05, 0x0f, 0x08, 0x6e, | |
153 | 0x1a, 0x1f, 0x25, 0x2a, 0x4c, 0xaa, 0x01 | |
154 | }; | |
155 | ||
544393fe | 156 | static const unsigned char SiS_HiTVGroup3_2[] = { |
1da177e4 LT |
157 | 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x7a, |
158 | 0x54, 0x41, 0xe7, 0xe7, 0xff, 0xf4, 0x45, 0xa6, | |
159 | 0x25, 0x2f, 0x67, 0xf6, 0xbf, 0xff, 0x8e, 0x20, | |
160 | 0xac, 0x6a, 0x60, 0x2b, 0x52, 0xcd, 0x61, 0x10, | |
161 | 0x51, 0x04, 0x18, 0x0a, 0x1f, 0x80, 0x00, 0x80, | |
162 | 0xff, 0xa4, 0x04, 0x2b, 0x94, 0x21, 0x72, 0x94, | |
163 | 0x26, 0x05, 0x01, 0x0f, 0xed, 0x0f, 0x0a, 0x64, | |
164 | 0x18, 0x1d, 0x23, 0x28, 0x4c, 0xaa, 0x01 | |
165 | }; | |
166 | ||
167 | /* 301C / 302ELV extended Part2 TV registers (4 tap scaler) */ | |
168 | ||
544393fe | 169 | static const unsigned char SiS_Part2CLVX_1[] = { |
1da177e4 LT |
170 | 0x00,0x00, |
171 | 0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, | |
172 | 0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, | |
173 | 0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, | |
174 | 0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E | |
175 | }; | |
176 | ||
544393fe | 177 | static const unsigned char SiS_Part2CLVX_2[] = { |
1da177e4 LT |
178 | 0x00,0x00, |
179 | 0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, | |
180 | 0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, | |
181 | 0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, | |
182 | 0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E | |
183 | }; | |
184 | ||
544393fe | 185 | static const unsigned char SiS_Part2CLVX_3[] = { /* NTSC, 525i, 525p */ |
1da177e4 LT |
186 | 0xE0,0x01, |
187 | 0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D,0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, | |
188 | 0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C,0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, | |
189 | 0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, | |
190 | 0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00,0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02, | |
191 | 0x58,0x02, | |
192 | 0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D,0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, | |
193 | 0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F,0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, | |
194 | 0x00,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01,0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, | |
195 | 0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04,0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06, | |
196 | 0x00,0x03, | |
197 | 0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00,0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, | |
198 | 0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02,0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, | |
199 | 0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05,0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, | |
200 | 0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07,0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08, | |
201 | 0xFF,0xFF | |
202 | }; | |
203 | ||
544393fe | 204 | static const unsigned char SiS_Part2CLVX_4[] = { /* PAL */ |
1da177e4 LT |
205 | 0x58,0x02, |
206 | 0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E,0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D, | |
207 | 0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C,0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D, | |
208 | 0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E, | |
209 | 0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01,0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04, | |
210 | 0x00,0x03, | |
211 | 0x08,0x12,0x08,0x7E,0x07,0x12,0x09,0x7E,0x06,0x12,0x0A,0x7E,0x05,0x11,0x0B,0x7F, | |
212 | 0x04,0x11,0x0C,0x7F,0x03,0x11,0x0C,0x00,0x03,0x10,0x0D,0x00,0x02,0x0F,0x0E,0x01, | |
213 | 0x01,0x0F,0x0F,0x01,0x01,0x0E,0x0F,0x02,0x00,0x0D,0x10,0x03,0x7F,0x0C,0x11,0x04, | |
214 | 0x7F,0x0C,0x11,0x04,0x7F,0x0B,0x11,0x05,0x7E,0x0A,0x12,0x06,0x7E,0x09,0x12,0x07, | |
215 | 0x40,0x02, | |
216 | 0x04,0x1A,0x04,0x7E,0x02,0x1B,0x05,0x7E,0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D, | |
217 | 0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D,0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C, | |
218 | 0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F, | |
219 | 0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00,0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1B,0x02, | |
220 | 0xFF,0xFF | |
221 | }; | |
222 | ||
544393fe | 223 | static const unsigned char SiS_Part2CLVX_5[] = { /* 750p */ |
1da177e4 LT |
224 | 0x00,0x03, |
225 | 0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E,0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D, | |
226 | 0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C,0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D, | |
227 | 0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E, | |
228 | 0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01,0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04, | |
229 | 0xFF,0xFF | |
230 | }; | |
231 | ||
544393fe | 232 | static const unsigned char SiS_Part2CLVX_6[] = { /* 1080i */ |
1da177e4 LT |
233 | 0x00,0x04, |
234 | 0x04,0x1A,0x04,0x7E,0x02,0x1B,0x05,0x7E,0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D, | |
235 | 0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D,0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C, | |
236 | 0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F, | |
237 | 0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00,0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1B,0x02, | |
238 | 0xFF,0xFF, | |
239 | }; | |
240 | ||
241 | #ifdef SIS315H | |
242 | /* 661 et al LCD data structure (2.03.00) */ | |
544393fe | 243 | static const unsigned char SiS_LCDStruct661[] = { |
1da177e4 LT |
244 | /* 1024x768 */ |
245 | /* type|CR37| HDE | VDE | HT | VT | hss | hse */ | |
246 | 0x02,0xC0,0x00,0x04,0x00,0x03,0x40,0x05,0x26,0x03,0x10,0x00,0x88, | |
247 | 0x00,0x02,0x00,0x06,0x00,0x41,0x5A,0x64,0x00,0x00,0x00,0x00,0x04, | |
248 | /* | vss | vse |clck| clock |CRT2DataP|CRT2DataP|idx */ | |
249 | /* VESA non-VESA noscale */ | |
250 | /* 1280x1024 */ | |
251 | 0x03,0xC0,0x00,0x05,0x00,0x04,0x98,0x06,0x2A,0x04,0x30,0x00,0x70, | |
252 | 0x00,0x01,0x00,0x03,0x00,0x6C,0xF8,0x2F,0x00,0x00,0x00,0x00,0x08, | |
253 | /* 1400x1050 */ | |
254 | 0x09,0x20,0x78,0x05,0x1A,0x04,0x98,0x06,0x2A,0x04,0x18,0x00,0x38, | |
255 | 0x00,0x01,0x00,0x03,0x00,0x6C,0xF8,0x2F,0x00,0x00,0x00,0x00,0x09, | |
256 | /* 1600x1200 */ | |
257 | 0x0B,0xE0,0x40,0x06,0xB0,0x04,0x70,0x08,0xE2,0x04,0x40,0x00,0xC0, | |
258 | 0x00,0x01,0x00,0x03,0x00,0xA2,0x70,0x24,0x00,0x00,0x00,0x00,0x0A, | |
259 | /* 1280x768 (_2) */ | |
260 | 0x0A,0xE0,0x00,0x05,0x00,0x03,0x7C,0x06,0x26,0x03,0x30,0x00,0x70, | |
261 | 0x00,0x03,0x00,0x06,0x00,0x4D,0xC8,0x48,0x00,0x00,0x00,0x00,0x06, | |
262 | /* 1280x720 */ | |
263 | 0x0E,0xE0,0x00,0x05,0xD0,0x02,0x80,0x05,0x26,0x03,0x10,0x00,0x20, | |
264 | 0x00,0x01,0x00,0x06,0x00,0x45,0x9C,0x62,0x00,0x00,0x00,0x00,0x05, | |
265 | /* 1280x800 (_2) */ | |
266 | 0x0C,0xE0,0x00,0x05,0x20,0x03,0x10,0x06,0x2C,0x03,0x30,0x00,0x70, | |
267 | 0x00,0x04,0x00,0x03,0x00,0x49,0xCE,0x1E,0x00,0x00,0x00,0x00,0x09, | |
268 | /* 1680x1050 */ | |
269 | 0x0D,0xE0,0x90,0x06,0x1A,0x04,0x6C,0x07,0x2A,0x04,0x1A,0x00,0x4C, | |
270 | 0x00,0x03,0x00,0x06,0x00,0x79,0xBE,0x44,0x00,0x00,0x00,0x00,0x06, | |
544393fe TW |
271 | /* 1280x800_3 */ |
272 | 0x0C,0xE0,0x00,0x05,0x20,0x03,0xAA,0x05,0x2E,0x03,0x30,0x00,0x50, | |
273 | 0x00,0x04,0x00,0x03,0x00,0x47,0xA9,0x10,0x00,0x00,0x00,0x00,0x07, | |
274 | /* 800x600 */ | |
275 | 0x01,0xC0,0x20,0x03,0x58,0x02,0x20,0x04,0x74,0x02,0x2A,0x00,0x80, | |
276 | 0x00,0x06,0x00,0x04,0x00,0x28,0x63,0x4B,0x00,0x00,0x00,0x00,0x00, | |
277 | /* 1280x854 */ | |
278 | 0x08,0xE0,0x00,0x05,0x56,0x03,0x80,0x06,0x5d,0x03,0x10,0x00,0x70, | |
279 | 0x00,0x01,0x00,0x03,0x00,0x54,0x75,0x13,0x00,0x00,0x00,0x00,0x08 | |
1da177e4 LT |
280 | }; |
281 | #endif | |
282 | ||
283 | #ifdef SIS300 | |
544393fe | 284 | static unsigned char SiS300_TrumpionData[14][80] = { |
1da177e4 LT |
285 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x0D,0x00,0x0D,0x10,0x7F,0x00,0x80,0x02, |
286 | 0x20,0x03,0x0B,0x00,0x90,0x01,0xC1,0x01,0x60,0x0C,0x30,0x10,0x00,0x00,0x04,0x23, | |
287 | 0x00,0x00,0x03,0x28,0x03,0x10,0x05,0x08,0x40,0x10,0x00,0x10,0x04,0x23,0x00,0x23, | |
288 | 0x03,0x11,0x60,0xBC,0x01,0xFF,0x03,0xFF,0x19,0x01,0x00,0x05,0x09,0x04,0x04,0x05, | |
289 | 0x04,0x0C,0x09,0x05,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x5A,0x01,0xBE,0x01,0x00 }, | |
290 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x0D,0x00,0x0D,0x10,0x27,0x00,0x80,0x02, | |
291 | 0x20,0x03,0x07,0x00,0x5E,0x01,0x0D,0x02,0x60,0x0C,0x30,0x11,0x00,0x00,0x04,0x23, | |
292 | 0x00,0x00,0x03,0x80,0x03,0x28,0x06,0x08,0x40,0x11,0x00,0x11,0x04,0x23,0x00,0x23, | |
293 | 0x03,0x11,0x60,0x90,0x01,0xFF,0x0F,0xF4,0x19,0x01,0x00,0x05,0x01,0x00,0x04,0x05, | |
294 | 0x04,0x0C,0x02,0x01,0x02,0xB0,0x00,0x00,0x02,0xBA,0xEC,0x57,0x01,0xBE,0x01,0x00 }, | |
295 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x0D,0x00,0x0D,0x10,0x8A,0x00,0xD8,0x02, | |
296 | 0x84,0x03,0x16,0x00,0x90,0x01,0xC1,0x01,0x60,0x0C,0x30,0x1C,0x00,0x20,0x04,0x23, | |
297 | 0x00,0x01,0x03,0x53,0x03,0x28,0x06,0x08,0x40,0x1C,0x00,0x16,0x04,0x23,0x00,0x23, | |
298 | 0x03,0x11,0x60,0xD9,0x01,0xFF,0x0F,0xF4,0x18,0x07,0x05,0x05,0x13,0x04,0x04,0x05, | |
299 | 0x01,0x0B,0x13,0x0A,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x59,0x01,0xBE,0x01,0x00 }, | |
300 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x0D,0x00,0x0D,0x10,0x72,0x00,0xD8,0x02, | |
301 | 0x84,0x03,0x16,0x00,0x90,0x01,0xC1,0x01,0x60,0x0C,0x30,0x1C,0x00,0x20,0x04,0x23, | |
302 | 0x00,0x01,0x03,0x53,0x03,0x28,0x06,0x08,0x40,0x1C,0x00,0x16,0x04,0x23,0x00,0x23, | |
303 | 0x03,0x11,0x60,0xDA,0x01,0xFF,0x0F,0xF4,0x18,0x07,0x05,0x05,0x13,0x04,0x04,0x05, | |
304 | 0x01,0x0B,0x13,0x0A,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x55,0x01,0xBE,0x01,0x00 }, | |
305 | { 0x02,0x0A,0x02,0x00,0x04,0x01,0x00,0x03,0x0D,0x00,0x0D,0x10,0x7F,0x00,0x80,0x02, | |
306 | 0x20,0x03,0x16,0x00,0xE0,0x01,0x0D,0x02,0x60,0x0C,0x30,0x98,0x00,0x00,0x04,0x23, | |
307 | 0x00,0x01,0x03,0x45,0x03,0x48,0x06,0x08,0x40,0x98,0x00,0x98,0x04,0x23,0x00,0x23, | |
308 | 0x03,0x11,0x60,0xF4,0x01,0xFF,0x0F,0xF4,0x18,0x01,0x00,0x05,0x01,0x00,0x05,0x05, | |
309 | 0x04,0x0C,0x08,0x05,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x5B,0x01,0xBE,0x01,0x00 }, | |
310 | { 0x02,0x0A,0x02,0x01,0x04,0x01,0x00,0x03,0x0D,0x00,0x0D,0x10,0xBF,0x00,0x20,0x03, | |
311 | 0x20,0x04,0x0D,0x00,0x58,0x02,0x71,0x02,0x80,0x0C,0x30,0x9A,0x00,0xFA,0x03,0x1D, | |
312 | 0x00,0x01,0x03,0x22,0x03,0x28,0x06,0x08,0x40,0x98,0x00,0x98,0x04,0x1D,0x00,0x1D, | |
313 | 0x03,0x11,0x60,0x39,0x03,0x40,0x05,0xF4,0x18,0x07,0x02,0x06,0x04,0x01,0x06,0x0B, | |
314 | 0x02,0x0A,0x20,0x19,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x5B,0x01,0xBE,0x01,0x00 }, | |
315 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x0D,0x00,0x0D,0x10,0xEF,0x00,0x00,0x04, | |
316 | 0x40,0x05,0x13,0x00,0x00,0x03,0x26,0x03,0x88,0x0C,0x30,0x90,0x00,0x00,0x04,0x23, | |
317 | 0x00,0x01,0x03,0x24,0x03,0x28,0x06,0x08,0x40,0x90,0x00,0x90,0x04,0x23,0x00,0x23, | |
318 | 0x03,0x11,0x60,0x40,0x05,0xFF,0x0F,0xF4,0x18,0x01,0x00,0x08,0x01,0x00,0x08,0x01, | |
544393fe TW |
319 | 0x00,0x08,0x01,0x01,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x5B,0x01,0xBE,0x01,0x00 }, |
320 | /* variant 2 */ | |
321 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x11,0x00,0x0D,0x10,0x7F,0x00,0x80,0x02, | |
322 | 0x20,0x03,0x15,0x00,0x90,0x01,0xC1,0x01,0x60,0x0C,0x30,0x18,0x00,0x00,0x04,0x23, | |
323 | 0x00,0x01,0x03,0x44,0x03,0x28,0x06,0x08,0x40,0x18,0x00,0x18,0x04,0x23,0x00,0x23, | |
324 | 0x03,0x11,0x60,0xA6,0x01,0xFF,0x03,0xFF,0x19,0x01,0x00,0x05,0x13,0x04,0x04,0x05, | |
325 | 0x04,0x0C,0x13,0x0A,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x55,0x01,0xBE,0x01,0x00 }, | |
326 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x11,0x00,0x0D,0x10,0x7F,0x00,0x80,0x02, | |
327 | 0x20,0x03,0x15,0x00,0x90,0x01,0xC1,0x01,0x60,0x0C,0x30,0x18,0x00,0x00,0x04,0x23, | |
328 | 0x00,0x01,0x03,0x44,0x03,0x28,0x06,0x08,0x40,0x18,0x00,0x18,0x04,0x23,0x00,0x23, | |
329 | 0x03,0x11,0x60,0xA6,0x01,0xFF,0x03,0xFF,0x19,0x01,0x00,0x05,0x13,0x04,0x04,0x05, | |
330 | 0x04,0x0C,0x13,0x0A,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x55,0x01,0xBE,0x01,0x00 }, | |
331 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x11,0x00,0x0D,0x10,0x8A,0x00,0xD8,0x02, | |
332 | 0x84,0x03,0x16,0x00,0x90,0x01,0xC1,0x01,0x60,0x0C,0x30,0x1C,0x00,0x20,0x04,0x23, | |
333 | 0x00,0x01,0x03,0x53,0x03,0x28,0x06,0x08,0x40,0x1C,0x00,0x16,0x04,0x23,0x00,0x23, | |
334 | 0x03,0x11,0x60,0xDA,0x01,0xFF,0x0F,0xF4,0x18,0x07,0x05,0x05,0x13,0x04,0x04,0x05, | |
335 | 0x01,0x0B,0x13,0x0A,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x55,0x01,0xBE,0x01,0x00 }, | |
336 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x11,0x00,0x0D,0x10,0x72,0x00,0xD8,0x02, | |
337 | 0x84,0x03,0x16,0x00,0x90,0x01,0xC1,0x01,0x60,0x0C,0x30,0x1C,0x00,0x20,0x04,0x23, | |
338 | 0x00,0x01,0x03,0x53,0x03,0x28,0x06,0x08,0x40,0x1C,0x00,0x16,0x04,0x23,0x00,0x23, | |
339 | 0x03,0x11,0x60,0xDA,0x01,0xFF,0x0F,0xF4,0x18,0x07,0x05,0x05,0x13,0x04,0x04,0x05, | |
340 | 0x01,0x0B,0x13,0x0A,0x02,0xB0,0x00,0x00,0x02,0xBA,0xF0,0x55,0x01,0xBE,0x01,0x00 }, | |
341 | { 0x02,0x0A,0x02,0x00,0x04,0x01,0x00,0x03,0x11,0x00,0x0D,0x10,0x7F,0x00,0x80,0x02, | |
342 | 0x20,0x03,0x16,0x00,0xE0,0x01,0x0D,0x02,0x60,0x0C,0x30,0x98,0x00,0x00,0x04,0x23, | |
343 | 0x00,0x01,0x03,0x45,0x03,0x48,0x06,0x08,0x40,0x98,0x00,0x98,0x04,0x23,0x00,0x23, | |
344 | 0x03,0x11,0x60,0xF4,0x01,0xFF,0x0F,0xF4,0x18,0x01,0x00,0x05,0x01,0x00,0x05,0x05, | |
345 | 0x04,0x0C,0x08,0x05,0x02,0xB0,0x00,0x00,0x02,0xBA,0xEA,0x58,0x01,0xBE,0x01,0x00 }, | |
346 | { 0x02,0x0A,0x02,0x01,0x04,0x01,0x00,0x03,0x11,0x00,0x0D,0x10,0xBF,0x00,0x20,0x03, | |
347 | 0x20,0x04,0x0D,0x00,0x58,0x02,0x71,0x02,0x80,0x0C,0x30,0x9A,0x00,0xFA,0x03,0x1D, | |
348 | 0x00,0x01,0x03,0x22,0x03,0x28,0x06,0x08,0x40,0x98,0x00,0x98,0x04,0x1D,0x00,0x1D, | |
349 | 0x03,0x11,0x60,0x39,0x03,0x40,0x05,0xF4,0x18,0x07,0x02,0x06,0x04,0x01,0x06,0x0B, | |
350 | 0x02,0x0A,0x20,0x19,0x02,0xB0,0x00,0x00,0x02,0xBA,0xEA,0x58,0x01,0xBE,0x01,0x00 }, | |
351 | { 0x02,0x0A,0x0A,0x01,0x04,0x01,0x00,0x03,0x11,0x00,0x0D,0x10,0xEF,0x00,0x00,0x04, | |
352 | 0x40,0x05,0x13,0x00,0x00,0x03,0x26,0x03,0x88,0x0C,0x30,0x90,0x00,0x00,0x04,0x23, | |
353 | 0x00,0x01,0x03,0x24,0x03,0x28,0x06,0x08,0x40,0x90,0x00,0x90,0x04,0x23,0x00,0x23, | |
354 | 0x03,0x11,0x60,0x40,0x05,0xFF,0x0F,0xF4,0x18,0x01,0x00,0x08,0x01,0x00,0x08,0x01, | |
355 | 0x00,0x08,0x01,0x01,0x02,0xB0,0x00,0x00,0x02,0xBA,0xEA,0x58,0x01,0xBE,0x01,0x00 } | |
1da177e4 LT |
356 | }; |
357 | #endif | |
358 | ||
544393fe TW |
359 | void SiS_UnLockCRT2(struct SiS_Private *SiS_Pr); |
360 | #ifndef SIS_LINUX_KERNEL | |
361 | void SiS_LockCRT2(struct SiS_Private *SiS_Pr); | |
362 | #endif | |
363 | void SiS_EnableCRT2(struct SiS_Private *SiS_Pr); | |
364 | unsigned short SiS_GetRatePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex); | |
365 | void SiS_WaitRetrace1(struct SiS_Private *SiS_Pr); | |
366 | BOOLEAN SiS_IsDualEdge(struct SiS_Private *SiS_Pr); | |
367 | BOOLEAN SiS_IsVAMode(struct SiS_Private *SiS_Pr); | |
368 | void SiS_GetVBInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | |
369 | unsigned short ModeIdIndex, int checkcrt2mode); | |
370 | void SiS_SetYPbPr(struct SiS_Private *SiS_Pr); | |
371 | void SiS_SetTVMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | |
372 | unsigned short ModeIdIndex); | |
373 | void SiS_GetLCDResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | |
374 | unsigned short ModeIdIndex); | |
375 | unsigned short SiS_GetVCLK2Ptr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, | |
376 | unsigned short RefreshRateTableIndex); | |
377 | unsigned short SiS_GetResInfo(struct SiS_Private *SiS_Pr,unsigned short ModeNo,unsigned short ModeIdIndex); | |
378 | void SiS_DisableBridge(struct SiS_Private *SiS_Pr); | |
379 | #ifndef SIS_LINUX_KERNEL | |
380 | void SiS_EnableBridge(struct SiS_Private *SiS_Pr); | |
381 | #endif | |
382 | BOOLEAN SiS_SetCRT2Group(struct SiS_Private *SiS_Pr, unsigned short ModeNo); | |
383 | void SiS_SiS30xBLOn(struct SiS_Private *SiS_Pr); | |
384 | void SiS_SiS30xBLOff(struct SiS_Private *SiS_Pr); | |
1da177e4 | 385 | |
544393fe TW |
386 | void SiS_SetCH700x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); |
387 | unsigned short SiS_GetCH700x(struct SiS_Private *SiS_Pr, unsigned short tempax); | |
388 | void SiS_SetCH701x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); | |
389 | unsigned short SiS_GetCH701x(struct SiS_Private *SiS_Pr, unsigned short tempax); | |
390 | #ifndef SIS_LINUX_KERNEL | |
391 | void SiS_SetCH70xx(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); | |
392 | unsigned short SiS_GetCH70xx(struct SiS_Private *SiS_Pr, unsigned short tempax); | |
393 | #endif | |
394 | void SiS_SetCH70xxANDOR(struct SiS_Private *SiS_Pr, unsigned short reg, | |
395 | unsigned char orval,unsigned short andval); | |
1da177e4 | 396 | #ifdef SIS315H |
544393fe TW |
397 | static void SiS_Chrontel701xOn(struct SiS_Private *SiS_Pr); |
398 | static void SiS_Chrontel701xOff(struct SiS_Private *SiS_Pr); | |
399 | static void SiS_ChrontelInitTVVSync(struct SiS_Private *SiS_Pr); | |
400 | static void SiS_ChrontelDoSomething1(struct SiS_Private *SiS_Pr); | |
401 | void SiS_Chrontel701xBLOn(struct SiS_Private *SiS_Pr); | |
402 | void SiS_Chrontel701xBLOff(struct SiS_Private *SiS_Pr); | |
1da177e4 LT |
403 | #endif /* 315 */ |
404 | ||
405 | #ifdef SIS300 | |
544393fe TW |
406 | static BOOLEAN SiS_SetTrumpionBlock(struct SiS_Private *SiS_Pr, unsigned char *dataptr); |
407 | void SiS_SetChrontelGPIO(struct SiS_Private *SiS_Pr, unsigned short myvbinfo); | |
1da177e4 LT |
408 | #endif |
409 | ||
544393fe TW |
410 | void SiS_DDC2Delay(struct SiS_Private *SiS_Pr, unsigned int delaytime); |
411 | unsigned short SiS_ReadDDC1Bit(struct SiS_Private *SiS_Pr); | |
412 | unsigned short SiS_HandleDDC(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine, | |
413 | unsigned short adaptnum, unsigned short DDCdatatype, | |
414 | unsigned char *buffer, unsigned int VBFlags2); | |
1da177e4 | 415 | |
544393fe TW |
416 | #ifdef SIS_XORG_XF86 |
417 | unsigned short SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, | |
418 | int VGAEngine, unsigned short adaptnum, unsigned short DDCdatatype, | |
419 | BOOLEAN checkcr32, unsigned int VBFlags2); | |
420 | unsigned short SiS_ProbeDDC(struct SiS_Private *SiS_Pr); | |
421 | unsigned short SiS_ReadDDC(struct SiS_Private *SiS_Pr, unsigned short DDCdatatype, | |
422 | unsigned char *buffer); | |
423 | #else | |
424 | static unsigned short SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, | |
425 | int VGAEngine, unsigned short adaptnum, unsigned short DDCdatatype, | |
426 | BOOLEAN checkcr32, unsigned int VBFlags2); | |
427 | static unsigned short SiS_ProbeDDC(struct SiS_Private *SiS_Pr); | |
428 | static unsigned short SiS_ReadDDC(struct SiS_Private *SiS_Pr, unsigned short DDCdatatype, | |
429 | unsigned char *buffer); | |
430 | #endif | |
431 | static void SiS_SetSwitchDDC2(struct SiS_Private *SiS_Pr); | |
432 | static unsigned short SiS_SetStart(struct SiS_Private *SiS_Pr); | |
433 | static unsigned short SiS_SetStop(struct SiS_Private *SiS_Pr); | |
434 | static unsigned short SiS_SetSCLKLow(struct SiS_Private *SiS_Pr); | |
435 | static unsigned short SiS_SetSCLKHigh(struct SiS_Private *SiS_Pr); | |
436 | static unsigned short SiS_ReadDDC2Data(struct SiS_Private *SiS_Pr); | |
437 | static unsigned short SiS_WriteDDC2Data(struct SiS_Private *SiS_Pr, unsigned short tempax); | |
438 | static unsigned short SiS_CheckACK(struct SiS_Private *SiS_Pr); | |
439 | static unsigned short SiS_WriteDABDDC(struct SiS_Private *SiS_Pr); | |
440 | static unsigned short SiS_PrepareReadDDC(struct SiS_Private *SiS_Pr); | |
441 | static unsigned short SiS_PrepareDDC(struct SiS_Private *SiS_Pr); | |
442 | static void SiS_SendACK(struct SiS_Private *SiS_Pr, unsigned short yesno); | |
443 | static unsigned short SiS_DoProbeDDC(struct SiS_Private *SiS_Pr); | |
1da177e4 | 444 | |
544393fe TW |
445 | #ifdef SIS300 |
446 | static void SiS_OEM300Setting(struct SiS_Private *SiS_Pr, | |
447 | unsigned short ModeNo, unsigned short ModeIdIndex, unsigned short RefTabindex); | |
448 | static void SetOEMLCDData2(struct SiS_Private *SiS_Pr, | |
449 | unsigned short ModeNo, unsigned short ModeIdIndex,unsigned short RefTableIndex); | |
450 | #endif | |
1da177e4 | 451 | #ifdef SIS315H |
544393fe TW |
452 | static void SiS_OEM310Setting(struct SiS_Private *SiS_Pr, |
453 | unsigned short ModeNo,unsigned short ModeIdIndex, unsigned short RRTI); | |
454 | static void SiS_OEM661Setting(struct SiS_Private *SiS_Pr, | |
455 | unsigned short ModeNo,unsigned short ModeIdIndex, unsigned short RRTI); | |
456 | static void SiS_FinalizeLCD(struct SiS_Private *, unsigned short, unsigned short); | |
1da177e4 | 457 | #endif |
544393fe TW |
458 | |
459 | extern void SiS_SetReg(SISIOADDRESS, unsigned short, unsigned short); | |
460 | extern void SiS_SetRegByte(SISIOADDRESS, unsigned short); | |
461 | extern void SiS_SetRegShort(SISIOADDRESS, unsigned short); | |
462 | extern void SiS_SetRegLong(SISIOADDRESS, unsigned int); | |
463 | extern unsigned char SiS_GetReg(SISIOADDRESS, unsigned short); | |
464 | extern unsigned char SiS_GetRegByte(SISIOADDRESS); | |
465 | extern unsigned short SiS_GetRegShort(SISIOADDRESS); | |
466 | extern unsigned int SiS_GetRegLong(SISIOADDRESS); | |
467 | extern void SiS_SetRegANDOR(SISIOADDRESS, unsigned short, unsigned short, unsigned short); | |
468 | extern void SiS_SetRegOR(SISIOADDRESS, unsigned short, unsigned short); | |
469 | extern void SiS_SetRegAND(SISIOADDRESS, unsigned short, unsigned short); | |
470 | extern void SiS_DisplayOff(struct SiS_Private *SiS_Pr); | |
471 | extern void SiS_DisplayOn(struct SiS_Private *SiS_Pr); | |
472 | extern BOOLEAN SiS_SearchModeID(struct SiS_Private *, unsigned short *, unsigned short *); | |
473 | extern unsigned short SiS_GetModeFlag(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | |
474 | unsigned short ModeIdIndex); | |
475 | extern unsigned short SiS_GetModePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex); | |
476 | extern unsigned short SiS_GetColorDepth(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex); | |
477 | extern unsigned short SiS_GetOffset(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, | |
478 | unsigned short RefreshRateTableIndex); | |
479 | extern void SiS_LoadDAC(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | |
480 | unsigned short ModeIdIndex); | |
481 | extern void SiS_CalcLCDACRT1Timing(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | |
482 | unsigned short ModeIdIndex); | |
483 | extern void SiS_CalcCRRegisters(struct SiS_Private *SiS_Pr, int depth); | |
484 | extern unsigned short SiS_GetRefCRTVCLK(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide); | |
485 | extern unsigned short SiS_GetRefCRT1CRTC(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide); | |
1da177e4 | 486 | #ifdef SIS300 |
544393fe TW |
487 | extern void SiS_GetFIFOThresholdIndex300(struct SiS_Private *SiS_Pr, unsigned short *tempbx, |
488 | unsigned short *tempcl); | |
489 | extern unsigned short SiS_GetFIFOThresholdB300(unsigned short tempbx, unsigned short tempcl); | |
490 | extern unsigned short SiS_GetLatencyFactor630(struct SiS_Private *SiS_Pr, unsigned short index); | |
491 | #ifdef SIS_LINUX_KERNEL | |
492 | extern unsigned int sisfb_read_nbridge_pci_dword(struct SiS_Private *SiS_Pr, int reg); | |
493 | extern unsigned int sisfb_read_lpc_pci_dword(struct SiS_Private *SiS_Pr, int reg); | |
1da177e4 | 494 | #endif |
1da177e4 LT |
495 | #endif |
496 | ||
497 | #endif |