cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

oem310.h (12667B)


      1/* $XFree86$ */
      2/* $XdotOrg$ */
      3/*
      4 * OEM Data for 315/330/340 series
      5 *
      6 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
      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
     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,0x00
     70};
     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,0x02
     90};
     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,0x33
    109};
    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,0x33
    128};
    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,0x02
    147};
    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,0x02
    166};
    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,0x03
    180};
    181
    182static const unsigned char SiS310_TVDelayCompensation_740301B[] =	/* 740 + 30xB (30xLV?) */
    183{
    184	0x05,0x05,
    185	0x05,0x05,
    186	0x05,0x05
    187};
    188
    189static const unsigned char SiS310_TVDelayCompensation_651301LV[] =	/* M650, 651, 301LV */
    190{
    191	0x33,0x33,
    192	0x33,0x33,
    193	0x33,0x33
    194};
    195
    196static const unsigned char SiS310_TVDelayCompensation_651302LV[] =	/* M650, 651, 302LV */
    197{
    198	0x33,0x33,
    199	0x33,0x33,
    200	0x33,0x33
    201};
    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,0x44
    212};
    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,0x44
    222};
    223#endif
    224
    225static const unsigned char SiS310_TVDelayCompensation_LVDS[] =		/* LVDS */
    226{
    227	0x0a,0x0a,
    228	0x0a,0x0a,
    229	0x0a,0x0a
    230};
    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