brintos

brintos / linux-shallow public Read only

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