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