xref: /openbmc/linux/drivers/video/fbdev/sis/oem310.h (revision e8a25436)
1f7018c21STomi Valkeinen /* $XFree86$ */
2f7018c21STomi Valkeinen /* $XdotOrg$ */
3f7018c21STomi Valkeinen /*
4f7018c21STomi Valkeinen  * OEM Data for 315/330/340 series
5f7018c21STomi Valkeinen  *
6f7018c21STomi Valkeinen  * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
7f7018c21STomi Valkeinen  *
8f7018c21STomi Valkeinen  * If distributed as part of the Linux kernel, the following license terms
9f7018c21STomi Valkeinen  * apply:
10f7018c21STomi Valkeinen  *
11f7018c21STomi Valkeinen  * * This program is free software; you can redistribute it and/or modify
12f7018c21STomi Valkeinen  * * it under the terms of the GNU General Public License as published by
13f7018c21STomi Valkeinen  * * the Free Software Foundation; either version 2 of the named License,
14f7018c21STomi Valkeinen  * * or any later version.
15f7018c21STomi Valkeinen  * *
16f7018c21STomi Valkeinen  * * This program is distributed in the hope that it will be useful,
17f7018c21STomi Valkeinen  * * but WITHOUT ANY WARRANTY; without even the implied warranty of
18f7018c21STomi Valkeinen  * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19f7018c21STomi Valkeinen  * * GNU General Public License for more details.
20f7018c21STomi Valkeinen  * *
21f7018c21STomi Valkeinen  * * You should have received a copy of the GNU General Public License
22f7018c21STomi Valkeinen  * * along with this program; if not, write to the Free Software
23f7018c21STomi Valkeinen  * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
24f7018c21STomi Valkeinen  *
25f7018c21STomi Valkeinen  * Otherwise, the following license terms apply:
26f7018c21STomi Valkeinen  *
27f7018c21STomi Valkeinen  * * Redistribution and use in source and binary forms, with or without
28f7018c21STomi Valkeinen  * * modification, are permitted provided that the following conditions
29f7018c21STomi Valkeinen  * * are met:
30f7018c21STomi Valkeinen  * * 1) Redistributions of source code must retain the above copyright
31f7018c21STomi Valkeinen  * *    notice, this list of conditions and the following disclaimer.
32f7018c21STomi Valkeinen  * * 2) Redistributions in binary form must reproduce the above copyright
33f7018c21STomi Valkeinen  * *    notice, this list of conditions and the following disclaimer in the
34f7018c21STomi Valkeinen  * *    documentation and/or other materials provided with the distribution.
35f7018c21STomi Valkeinen  * * 3) The name of the author may not be used to endorse or promote products
36f7018c21STomi Valkeinen  * *    derived from this software without specific prior written permission.
37f7018c21STomi Valkeinen  * *
38f7018c21STomi Valkeinen  * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
39f7018c21STomi Valkeinen  * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40f7018c21STomi Valkeinen  * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
41f7018c21STomi Valkeinen  * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
42f7018c21STomi Valkeinen  * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43f7018c21STomi Valkeinen  * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
44f7018c21STomi Valkeinen  * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
45f7018c21STomi Valkeinen  * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
46f7018c21STomi Valkeinen  * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
47f7018c21STomi Valkeinen  * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48f7018c21STomi Valkeinen  *
49f7018c21STomi Valkeinen  * Author: 	Thomas Winischhofer <thomas@winischhofer.net>
50f7018c21STomi Valkeinen  *
51f7018c21STomi Valkeinen  */
52f7018c21STomi Valkeinen 
53f7018c21STomi Valkeinen static const unsigned char SiS310_LCDDelayCompensation_301[] =	    		/* 301 */
54f7018c21STomi Valkeinen {
55f7018c21STomi Valkeinen 	0x00,0x00,0x00,    /*   800x600 */
56f7018c21STomi Valkeinen 	0x0b,0x0b,0x0b,    /*  1024x768 */
57f7018c21STomi Valkeinen 	0x08,0x08,0x08,    /* 1280x1024 */
58f7018c21STomi Valkeinen 	0x00,0x00,0x00,    /*   640x480 (unknown) */
59f7018c21STomi Valkeinen 	0x00,0x00,0x00,    /*  1024x600 (unknown) */
60f7018c21STomi Valkeinen 	0x00,0x00,0x00,    /*  1152x864 (unknown) */
61f7018c21STomi Valkeinen 	0x08,0x08,0x08,    /*  1280x960 (guessed) */
62f7018c21STomi Valkeinen 	0x00,0x00,0x00,    /*  1152x768 (unknown) */
63f7018c21STomi Valkeinen 	0x08,0x08,0x08,    /* 1400x1050 */
64f7018c21STomi Valkeinen 	0x08,0x08,0x08,    /*  1280x768  (guessed) */
65f7018c21STomi Valkeinen 	0x00,0x00,0x00,    /* 1600x1200 */
66f7018c21STomi Valkeinen 	0x00,0x00,0x00,    /*   320x480 (unknown) */
67f7018c21STomi Valkeinen 	0x00,0x00,0x00,
68f7018c21STomi Valkeinen 	0x00,0x00,0x00,
69f7018c21STomi Valkeinen 	0x00,0x00,0x00
70f7018c21STomi Valkeinen };
71f7018c21STomi Valkeinen 
72f7018c21STomi Valkeinen /* This is contained in 650+301B BIOSes, but it is wrong - so we don't use it */
73f7018c21STomi Valkeinen static const unsigned char SiS310_LCDDelayCompensation_650301LV[] =	   	/* 650 + 30xLV */
74f7018c21STomi Valkeinen {
75f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*   800x600 */
76f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*  1024x768 */
77f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /* 1280x1024 */
78f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*   640x480 (unknown) */
79f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*  1024x600 (unknown) */
80f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*  1152x864 (unknown) */
81f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*  1280x960 (guessed) */
82f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*  1152x768 (unknown) */
83f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /* 1400x1050 */
84f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*  1280x768  (guessed) */
85f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /* 1600x1200 */
86f7018c21STomi Valkeinen 	0x02,0x02,0x02,
87f7018c21STomi Valkeinen 	0x02,0x02,0x02,
88f7018c21STomi Valkeinen 	0x02,0x02,0x02,
89f7018c21STomi Valkeinen 	0x02,0x02,0x02
90f7018c21STomi Valkeinen };
91f7018c21STomi Valkeinen 
92f7018c21STomi Valkeinen static const unsigned char SiS310_LCDDelayCompensation_651301LV[] =	  	/* M650/651 301LV */
93f7018c21STomi Valkeinen {
94f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*   800x600 (guessed) - new: PanelType, not PanelRes ! */
95f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1024x768 */
96f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /* 1280x1024 */
97f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*   640x480 (unknown) */
98f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1024x600 (unknown) */
99f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1152x864 (unknown) */
100f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1280x960 (guessed) */
101f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1152x768 (unknown) */
102f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /* 1400x1050 */
103f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1280x768  (guessed) */
104f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /* 1600x1200 */
105f7018c21STomi Valkeinen 	0x33,0x33,0x33,
106f7018c21STomi Valkeinen 	0x33,0x33,0x33,
107f7018c21STomi Valkeinen 	0x33,0x33,0x33,
108f7018c21STomi Valkeinen 	0x33,0x33,0x33
109f7018c21STomi Valkeinen };
110f7018c21STomi Valkeinen 
111f7018c21STomi Valkeinen static const unsigned char SiS310_LCDDelayCompensation_651302LV[] =	   	/* M650/651 302LV */
112f7018c21STomi Valkeinen {
113f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*   800x600 (guessed) */
114f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1024x768 */
115f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /* 1280x1024 */
116f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*   640x480 (unknown) */
117f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1024x600 (unknown) */
118f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1152x864 (unknown) */
119f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1280x960 (guessed) */
120f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1152x768 (unknown) */
121f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /* 1400x1050 */
122f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /*  1280x768  (guessed) */
123f7018c21STomi Valkeinen 	0x33,0x33,0x33,    /* 1600x1200 */
124f7018c21STomi Valkeinen 	0x33,0x33,0x33,
125f7018c21STomi Valkeinen 	0x33,0x33,0x33,
126f7018c21STomi Valkeinen 	0x33,0x33,0x33,
127f7018c21STomi Valkeinen 	0x33,0x33,0x33
128f7018c21STomi Valkeinen };
129f7018c21STomi Valkeinen 
130f7018c21STomi Valkeinen static const unsigned char SiS310_LCDDelayCompensation_3xx301B[] =	   	/* 30xB */
131f7018c21STomi Valkeinen {
132f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*   800x600 */
133f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1024x768 */
134f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /* 1280x1024 */
135f7018c21STomi Valkeinen 	0x08,0x08,0x08,    /*   640x480 */
136f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1024x600 (guessed) */
137f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1152x864 (guessed) */
138f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1280x960 (guessed) */
139f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1152x768 (guessed) */
140f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /* 1400x1050 (guessed) */
141f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1280x768 (guessed) */
142f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /* 1600x1200 (guessed) */
143f7018c21STomi Valkeinen 	0x02,0x02,0x02,
144f7018c21STomi Valkeinen 	0x02,0x02,0x02,
145f7018c21STomi Valkeinen 	0x02,0x02,0x02,
146f7018c21STomi Valkeinen 	0x02,0x02,0x02
147f7018c21STomi Valkeinen };
148f7018c21STomi Valkeinen 
149f7018c21STomi Valkeinen static const unsigned char SiS310_LCDDelayCompensation_3xx301LV[] =	   	/* 315+30xLV */
150f7018c21STomi Valkeinen {
151f7018c21STomi Valkeinen 	0x01,0x01,0x01,    /*   800x600 */
152f7018c21STomi Valkeinen 	0x04,0x04,0x04,    /*  1024x768 (A531/BIOS 1.14.05f: 4 - works with 6 */
153f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /* 1280x1024 */
154f7018c21STomi Valkeinen 	0x08,0x08,0x08,    /*   640x480 */
155f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1024x600 (guessed) */
156f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1152x864 (guessed) */
157f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1280x960 (guessed) */
158f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1152x768 (guessed) */
159f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /* 1400x1050 (guessed) */
160f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /*  1280x768 (guessed) */
161f7018c21STomi Valkeinen 	0x0C,0x0C,0x0C,    /* 1600x1200 (guessed) */
162f7018c21STomi Valkeinen 	0x02,0x02,0x02,
163f7018c21STomi Valkeinen 	0x02,0x02,0x02,
164f7018c21STomi Valkeinen 	0x02,0x02,0x02,
165f7018c21STomi Valkeinen 	0x02,0x02,0x02
166f7018c21STomi Valkeinen };
167f7018c21STomi Valkeinen 
168f7018c21STomi Valkeinen static const unsigned char SiS310_TVDelayCompensation_301[] = 		/* 301 */
169f7018c21STomi Valkeinen {
170f7018c21STomi Valkeinen 	0x02,0x02,    /* NTSC Enhanced, Standard */
171f7018c21STomi Valkeinen 	0x02,0x02,    /* PAL */
172f7018c21STomi Valkeinen 	0x08,0x0b     /* HiVision */
173f7018c21STomi Valkeinen };
174f7018c21STomi Valkeinen 
175f7018c21STomi Valkeinen static const unsigned char SiS310_TVDelayCompensation_301B[] =		/* 30xB, 30xLV */
176f7018c21STomi Valkeinen {
177f7018c21STomi Valkeinen 	0x03,0x03,
178f7018c21STomi Valkeinen 	0x03,0x03,
179f7018c21STomi Valkeinen 	0x03,0x03
180f7018c21STomi Valkeinen };
181f7018c21STomi Valkeinen 
182f7018c21STomi Valkeinen static const unsigned char SiS310_TVDelayCompensation_740301B[] =	/* 740 + 30xB (30xLV?) */
183f7018c21STomi Valkeinen {
184f7018c21STomi Valkeinen 	0x05,0x05,
185f7018c21STomi Valkeinen 	0x05,0x05,
186f7018c21STomi Valkeinen 	0x05,0x05
187f7018c21STomi Valkeinen };
188f7018c21STomi Valkeinen 
189f7018c21STomi Valkeinen static const unsigned char SiS310_TVDelayCompensation_651301LV[] =	/* M650, 651, 301LV */
190f7018c21STomi Valkeinen {
191f7018c21STomi Valkeinen 	0x33,0x33,
192f7018c21STomi Valkeinen 	0x33,0x33,
193f7018c21STomi Valkeinen 	0x33,0x33
194f7018c21STomi Valkeinen };
195f7018c21STomi Valkeinen 
196f7018c21STomi Valkeinen static const unsigned char SiS310_TVDelayCompensation_651302LV[] =	/* M650, 651, 302LV */
197f7018c21STomi Valkeinen {
198f7018c21STomi Valkeinen 	0x33,0x33,
199f7018c21STomi Valkeinen 	0x33,0x33,
200f7018c21STomi Valkeinen 	0x33,0x33
201f7018c21STomi Valkeinen };
202f7018c21STomi Valkeinen 
203*e8a25436SSam Ravnborg #if 0 /* Not used */
204f7018c21STomi Valkeinen static const unsigned char SiS_TVDelay661_301[] =			/* 661, 301 */
205f7018c21STomi Valkeinen {
206f7018c21STomi Valkeinen 	0x44,0x44,
207f7018c21STomi Valkeinen 	0x44,0x44,
208f7018c21STomi Valkeinen 	0x00,0x00,
209f7018c21STomi Valkeinen 	0x44,0x44,
210f7018c21STomi Valkeinen 	0x44,0x44,
211f7018c21STomi Valkeinen 	0x44,0x44
212f7018c21STomi Valkeinen };
213f7018c21STomi Valkeinen 
214f7018c21STomi Valkeinen static const unsigned char SiS_TVDelay661_301B[] =			/* 661, 301B et al */
215f7018c21STomi Valkeinen {
216f7018c21STomi Valkeinen 	0x44,0x44,
217f7018c21STomi Valkeinen 	0x44,0x44,
218f7018c21STomi Valkeinen 	0x00,0x00,
219f7018c21STomi Valkeinen 	0x44,0x44,
220f7018c21STomi Valkeinen 	0x44,0x44,
221f7018c21STomi Valkeinen 	0x44,0x44
222f7018c21STomi Valkeinen };
223*e8a25436SSam Ravnborg #endif
224f7018c21STomi Valkeinen 
225f7018c21STomi Valkeinen static const unsigned char SiS310_TVDelayCompensation_LVDS[] =		/* LVDS */
226f7018c21STomi Valkeinen {
227f7018c21STomi Valkeinen 	0x0a,0x0a,
228f7018c21STomi Valkeinen 	0x0a,0x0a,
229f7018c21STomi Valkeinen 	0x0a,0x0a
230f7018c21STomi Valkeinen };
231f7018c21STomi Valkeinen 
232f7018c21STomi Valkeinen static const unsigned char SiS310_TVAntiFlick1[6][2] =
233f7018c21STomi Valkeinen {
234f7018c21STomi Valkeinen 	{0x4,0x0},
235f7018c21STomi Valkeinen 	{0x4,0x8},
236f7018c21STomi Valkeinen 	{0x0,0x0},
237f7018c21STomi Valkeinen 	{0x0,0x0},
238f7018c21STomi Valkeinen 	{0x0,0x0},
239f7018c21STomi Valkeinen 	{0x0,0x0}
240f7018c21STomi Valkeinen };
241f7018c21STomi Valkeinen 
242f7018c21STomi Valkeinen static const unsigned char SiS310_TVEdge1[6][2] =
243f7018c21STomi Valkeinen {
244f7018c21STomi Valkeinen 	{0x0,0x4},
245f7018c21STomi Valkeinen 	{0x0,0x4},
246f7018c21STomi Valkeinen 	{0x0,0x0},
247f7018c21STomi Valkeinen 	{0x0,0x0},
248f7018c21STomi Valkeinen 	{0x0,0x0},
249f7018c21STomi Valkeinen 	{0x0,0x0}
250f7018c21STomi Valkeinen };
251f7018c21STomi Valkeinen 
252f7018c21STomi Valkeinen static const unsigned char SiS310_TVYFilter1[5][8][4] =
253f7018c21STomi Valkeinen {
254f7018c21STomi Valkeinen    {
255f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},	/* NTSC */
256f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
257f7018c21STomi Valkeinen 	{0xeb,0x04,0x25,0x18},
258f7018c21STomi Valkeinen 	{0xf1,0x04,0x1f,0x18},
259f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
260f7018c21STomi Valkeinen 	{0xeb,0x04,0x25,0x18},
261f7018c21STomi Valkeinen 	{0xee,0x0c,0x22,0x08},
262f7018c21STomi Valkeinen 	{0xeb,0x15,0x25,0xf6}
263f7018c21STomi Valkeinen    },
264f7018c21STomi Valkeinen    {
265f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},	/* PAL */
266f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
267f7018c21STomi Valkeinen 	{0xf1,0xf7,0x1f,0x32},
268f7018c21STomi Valkeinen 	{0xf3,0x00,0x1d,0x20},
269f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
270f7018c21STomi Valkeinen 	{0xf1,0xf7,0x1f,0x32},
271f7018c21STomi Valkeinen 	{0xf3,0x00,0x1d,0x20},
272f7018c21STomi Valkeinen 	{0xfc,0xfb,0x14,0x2a}
273f7018c21STomi Valkeinen    },
274f7018c21STomi Valkeinen    {
275f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0x00},	/* HiVision */
276f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
277f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
278f7018c21STomi Valkeinen 	{0xeb,0x04,0x25,0x18},
279f7018c21STomi Valkeinen 	{0xf7,0x06,0x19,0x14},
280f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
281f7018c21STomi Valkeinen 	{0xeb,0x04,0x25,0x18},
282f7018c21STomi Valkeinen 	{0xee,0x0c,0x22,0x08}
283f7018c21STomi Valkeinen    },
284f7018c21STomi Valkeinen    {
285f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},	/* PAL-M */
286f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
287f7018c21STomi Valkeinen 	{0xeb,0x04,0x10,0x18},
288f7018c21STomi Valkeinen 	{0xf7,0x06,0x19,0x14},
289f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
290f7018c21STomi Valkeinen 	{0xeb,0x04,0x25,0x18},
291f7018c21STomi Valkeinen 	{0xeb,0x04,0x25,0x18},
292f7018c21STomi Valkeinen 	{0xeb,0x15,0x25,0xf6}
293f7018c21STomi Valkeinen    },
294f7018c21STomi Valkeinen    {
295f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},	/* PAL-N */
296f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
297f7018c21STomi Valkeinen 	{0xeb,0x04,0x10,0x18},
298f7018c21STomi Valkeinen 	{0xf7,0x06,0x19,0x14},
299f7018c21STomi Valkeinen 	{0x00,0xf4,0x10,0x38},
300f7018c21STomi Valkeinen 	{0xeb,0x04,0x25,0x18},
301f7018c21STomi Valkeinen 	{0xeb,0x04,0x25,0x18},
302f7018c21STomi Valkeinen 	{0xeb,0x15,0x25,0xf6}
303f7018c21STomi Valkeinen    }
304f7018c21STomi Valkeinen };
305f7018c21STomi Valkeinen 
306f7018c21STomi Valkeinen static const unsigned char SiS310_TVYFilter2[5][9][7] =
307f7018c21STomi Valkeinen {
308f7018c21STomi Valkeinen    {
309f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},	/* NTSC */
310f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
311f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
312f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
313f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
314f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
315f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
316f7018c21STomi Valkeinen 	{0x01,0x01,0xFC,0xF8,0x08,0x26,0x38},
317f7018c21STomi Valkeinen 	{0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28}
318f7018c21STomi Valkeinen    },
319f7018c21STomi Valkeinen    {
320f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},   /* PAL */
321f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
322f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
323f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
324f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
325f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
326f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
327f7018c21STomi Valkeinen 	{0x01,0x01,0xFC,0xF8,0x08,0x26,0x38},
328f7018c21STomi Valkeinen 	{0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28}
329f7018c21STomi Valkeinen    },
330f7018c21STomi Valkeinen    {
331f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22},	/* HiVision */
332f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22},
333f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22},
334f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22},
335f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22},
336f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22},
337f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22},
338f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22},
339f7018c21STomi Valkeinen 	{0x00,0x00,0x00,0xF4,0xFF,0x1C,0x22}
340f7018c21STomi Valkeinen    },
341f7018c21STomi Valkeinen    {
342f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46}, 	/* PAL-M */
343f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
344f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
345f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
346f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
347f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
348f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
349f7018c21STomi Valkeinen 	{0x01,0x01,0xFC,0xF8,0x08,0x26,0x38},
350f7018c21STomi Valkeinen 	{0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28}
351f7018c21STomi Valkeinen    },
352f7018c21STomi Valkeinen    {
353f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},	/* PAL-N */
354f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
355f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
356f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
357f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
358f7018c21STomi Valkeinen 	{0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
359f7018c21STomi Valkeinen 	{0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C},
360f7018c21STomi Valkeinen 	{0x01,0x01,0xFC,0xF8,0x08,0x26,0x38},
361f7018c21STomi Valkeinen 	{0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28}
362f7018c21STomi Valkeinen    }
363f7018c21STomi Valkeinen };
364f7018c21STomi Valkeinen 
365f7018c21STomi Valkeinen static const unsigned char SiS310_TVPhaseIncr1[3][2][4] =
366f7018c21STomi Valkeinen {
367f7018c21STomi Valkeinen    {
368f7018c21STomi Valkeinen 	{0x21,0xed,0xba,0x08},
369f7018c21STomi Valkeinen 	{0x21,0xed,0xba,0x08}
370f7018c21STomi Valkeinen    },
371f7018c21STomi Valkeinen    {
372f7018c21STomi Valkeinen 	{0x2a,0x05,0xe3,0x00},
373f7018c21STomi Valkeinen 	{0x2a,0x05,0xe3,0x00}
374f7018c21STomi Valkeinen    },
375f7018c21STomi Valkeinen    {
376f7018c21STomi Valkeinen 	{0x2a,0x05,0xd3,0x00},
377f7018c21STomi Valkeinen 	{0x2a,0x05,0xd3,0x00}
378f7018c21STomi Valkeinen    }
379f7018c21STomi Valkeinen };
380f7018c21STomi Valkeinen 
381f7018c21STomi Valkeinen static const unsigned char SiS310_TVPhaseIncr2[3][2][4] =
382f7018c21STomi Valkeinen {
383f7018c21STomi Valkeinen    {
384f7018c21STomi Valkeinen 	{0x21,0xf0,0x7b,0xd6},
385f7018c21STomi Valkeinen 	{0x21,0xf0,0x7b,0xd6}
386f7018c21STomi Valkeinen    },
387f7018c21STomi Valkeinen    {
388f7018c21STomi Valkeinen 	{0x2a,0x0a,0x41,0xe9},
389f7018c21STomi Valkeinen 	{0x2a,0x0a,0x41,0xe9}
390f7018c21STomi Valkeinen    },
391f7018c21STomi Valkeinen    {
392f7018c21STomi Valkeinen 	{0x2a,0x05,0xd3,0x00},
393f7018c21STomi Valkeinen 	{0x2a,0x05,0xd3,0x00}
394f7018c21STomi Valkeinen    }
395f7018c21STomi Valkeinen };
396f7018c21STomi Valkeinen 
397f7018c21STomi Valkeinen /**************************************************************/
398f7018c21STomi Valkeinen /* CUSTOM TIMING DATA --------------------------------------- */
399f7018c21STomi Valkeinen /**************************************************************/
400f7018c21STomi Valkeinen 
401f7018c21STomi Valkeinen /* Inventec / Compaq Presario 3045US, 3017 */
402f7018c21STomi Valkeinen 
403f7018c21STomi Valkeinen static const struct SiS_LCDData SiS310_ExtCompaq1280x1024Data[] =
404f7018c21STomi Valkeinen {
405f7018c21STomi Valkeinen 	{  211,  60,1024, 501,1688,1066},
406f7018c21STomi Valkeinen 	{  211,  60,1024, 508,1688,1066},
407f7018c21STomi Valkeinen 	{  211,  60,1024, 501,1688,1066},
408f7018c21STomi Valkeinen 	{  211,  60,1024, 508,1688,1066},
409f7018c21STomi Valkeinen 	{   32,  15,1696, 501,1696,1066},
410f7018c21STomi Valkeinen 	{  212,  75,1024, 621,1696,1066},
411f7018c21STomi Valkeinen 	{    4,   3,1696, 810,1696,1066},
412f7018c21STomi Valkeinen 	{    1,   1,1696,1066,1696,1066}
413f7018c21STomi Valkeinen };
414f7018c21STomi Valkeinen 
415f7018c21STomi Valkeinen /* Asus A2xxxH _2 */
416f7018c21STomi Valkeinen 
417f7018c21STomi Valkeinen static const struct SiS_Part2PortTbl SiS310_CRT2Part2_Asus1024x768_3[] =
418f7018c21STomi Valkeinen {
419f7018c21STomi Valkeinen 	{{0x25,0x13,0xc9,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
420f7018c21STomi Valkeinen 	{{0x2c,0x13,0x9a,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
421f7018c21STomi Valkeinen 	{{0x25,0x13,0xc9,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
422f7018c21STomi Valkeinen 	{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
423f7018c21STomi Valkeinen 	{{0x38,0x13,0x13,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}},
424f7018c21STomi Valkeinen 	{{0x38,0x13,0x16,0x25,0xff,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}},
425f7018c21STomi Valkeinen 	{{0x36,0x13,0x13,0x25,0xff,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}},
426f7018c21STomi Valkeinen 	{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
427f7018c21STomi Valkeinen 	{{0x25,0x13,0xc9,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}}
428f7018c21STomi Valkeinen };
429f7018c21STomi Valkeinen 
430f7018c21STomi Valkeinen 
431f7018c21STomi Valkeinen 
432f7018c21STomi Valkeinen 
433