1*4882a593Smuzhiyun /* $XFree86$ */ 2*4882a593Smuzhiyun /* $XdotOrg$ */ 3*4882a593Smuzhiyun /* 4*4882a593Smuzhiyun * Register settings for SiS 300 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 struct SiS_Ext SiS300_EModeIDTable[] = 54*4882a593Smuzhiyun { 55*4882a593Smuzhiyun {0x6a,0x2212,0x0102,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x? */ 56*4882a593Smuzhiyun {0x2e,0x0a1b,0x0101,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, 57*4882a593Smuzhiyun {0x2f,0x021b,0x0100,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x8 */ 58*4882a593Smuzhiyun {0x30,0x2a1b,0x0103,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, 59*4882a593Smuzhiyun {0x31,0x4a1b,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x8 */ 60*4882a593Smuzhiyun {0x32,0x6a1b,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x8 */ 61*4882a593Smuzhiyun {0x33,0x4a1d,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x16 */ 62*4882a593Smuzhiyun {0x34,0x6a1d,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x16 */ 63*4882a593Smuzhiyun {0x35,0x4a1f,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x32 */ 64*4882a593Smuzhiyun {0x36,0x6a1f,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x32 */ 65*4882a593Smuzhiyun {0x37,0x0212,0x0104,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, /* 1024x768x? */ 66*4882a593Smuzhiyun {0x38,0x0a1b,0x0105,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, /* 1024x768x8 */ 67*4882a593Smuzhiyun {0x3a,0x0e3b,0x0107,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, /* 1280x1024x8 */ 68*4882a593Smuzhiyun {0x3c,0x063b,0x0130,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, 69*4882a593Smuzhiyun {0x3d,0x067d,0x0131,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, 70*4882a593Smuzhiyun {0x40,0x921c,0x010d,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x15 */ 71*4882a593Smuzhiyun {0x41,0x921d,0x010e,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x16 */ 72*4882a593Smuzhiyun {0x43,0x0a1c,0x0110,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, 73*4882a593Smuzhiyun {0x44,0x0a1d,0x0111,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, 74*4882a593Smuzhiyun {0x46,0x2a1c,0x0113,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x15 */ 75*4882a593Smuzhiyun {0x47,0x2a1d,0x0114,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x16 */ 76*4882a593Smuzhiyun {0x49,0x0a3c,0x0116,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, 77*4882a593Smuzhiyun {0x4a,0x0a3d,0x0117,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, 78*4882a593Smuzhiyun {0x4c,0x0e7c,0x0119,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, 79*4882a593Smuzhiyun {0x4d,0x0e7d,0x011a,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, 80*4882a593Smuzhiyun {0x50,0x921b,0x0132,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x8 */ 81*4882a593Smuzhiyun {0x51,0xb21b,0x0133,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x8 */ 82*4882a593Smuzhiyun {0x52,0x921b,0x0134,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x8 */ 83*4882a593Smuzhiyun {0x56,0x921d,0x0135,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x16 */ 84*4882a593Smuzhiyun {0x57,0xb21d,0x0136,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x16 */ 85*4882a593Smuzhiyun {0x58,0x921d,0x0137,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x16 */ 86*4882a593Smuzhiyun {0x59,0x921b,0x0138,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x8 */ 87*4882a593Smuzhiyun {0x5c,0x921f,0x0000,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x32 */ 88*4882a593Smuzhiyun {0x5d,0x021d,0x0139,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x16 */ 89*4882a593Smuzhiyun {0x5e,0x021f,0x0000,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x32 */ 90*4882a593Smuzhiyun {0x62,0x0a3f,0x013a,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, 91*4882a593Smuzhiyun {0x63,0x2a3f,0x013b,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x32 */ 92*4882a593Smuzhiyun {0x64,0x0a7f,0x013c,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, 93*4882a593Smuzhiyun {0x65,0x0eff,0x013d,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, 94*4882a593Smuzhiyun {0x66,0x06ff,0x013e,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, 95*4882a593Smuzhiyun {0x68,0x067b,0x013f,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, 96*4882a593Smuzhiyun {0x69,0x06fd,0x0140,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, 97*4882a593Smuzhiyun {0x6b,0x07ff,0x0000,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, 98*4882a593Smuzhiyun {0x6c,0x067b,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x28,-1}, /* 2048x1536x8 */ 99*4882a593Smuzhiyun {0x6d,0x06fd,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x28,-1}, /* 2048x1536x16 */ 100*4882a593Smuzhiyun {0x70,0x6a1b,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x8 */ 101*4882a593Smuzhiyun {0x71,0x4a1b,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x8 */ 102*4882a593Smuzhiyun {0x74,0x4a1d,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x16 */ 103*4882a593Smuzhiyun {0x75,0x0e3d,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x16 */ 104*4882a593Smuzhiyun {0x76,0x6a1f,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x32 */ 105*4882a593Smuzhiyun {0x77,0x4a3f,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x32 */ 106*4882a593Smuzhiyun {0x78,0x0eff,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x32 */ 107*4882a593Smuzhiyun {0x79,0x0e3b,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x8 */ 108*4882a593Smuzhiyun {0x7a,0x6a1d,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x16 */ 109*4882a593Smuzhiyun {0x7c,0x0a3b,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x8 */ 110*4882a593Smuzhiyun {0x7d,0x0a7d,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x16 */ 111*4882a593Smuzhiyun {0x7e,0x0aff,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x32 */ 112*4882a593Smuzhiyun {0x20,0x4a1b,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, /* 1024x600 */ 113*4882a593Smuzhiyun {0x21,0x4a3d,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, 114*4882a593Smuzhiyun {0x22,0x4a7f,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, 115*4882a593Smuzhiyun {0x23,0x4a1b,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, /* 1152x768 */ 116*4882a593Smuzhiyun {0x24,0x4a3d,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, 117*4882a593Smuzhiyun {0x25,0x4a7f,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, 118*4882a593Smuzhiyun {0x29,0x4e1b,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, /* 1152x864 */ 119*4882a593Smuzhiyun {0x2a,0x4e3d,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, 120*4882a593Smuzhiyun {0x2b,0x4e7f,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, 121*4882a593Smuzhiyun {0x39,0x6a1b,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x39,-1}, /* 848x480 */ 122*4882a593Smuzhiyun {0x3b,0x6a3d,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x39,-1}, 123*4882a593Smuzhiyun {0x3e,0x6a7f,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x39,-1}, 124*4882a593Smuzhiyun {0x3f,0x6a1b,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3b,-1}, /* 856x480 */ 125*4882a593Smuzhiyun {0x42,0x6a3d,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3b,-1}, 126*4882a593Smuzhiyun {0x45,0x6a7f,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3b,-1}, 127*4882a593Smuzhiyun {0x48,0x6a3b,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3d,-1}, /* 1360x768 */ 128*4882a593Smuzhiyun {0x4b,0x6a7d,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3d,-1}, 129*4882a593Smuzhiyun {0x4e,0x6aff,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3d,-1}, 130*4882a593Smuzhiyun {0x4f,0x921f,0x0000,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x32 */ 131*4882a593Smuzhiyun {0x53,0x921f,0x0000,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x32 */ 132*4882a593Smuzhiyun {0x54,0xb21f,0x0000,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x32 */ 133*4882a593Smuzhiyun {0x55,0x2e3b,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3e,-1}, /* 1280x768 */ 134*4882a593Smuzhiyun {0x5a,0x2e7d,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3e,-1}, 135*4882a593Smuzhiyun {0x5b,0x2eff,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3e,-1}, 136*4882a593Smuzhiyun {0x5f,0x6a1b,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3f,-1}, /* 768x576x8 */ 137*4882a593Smuzhiyun {0x60,0x6a1d,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3f,-1}, /* 768x576x16 */ 138*4882a593Smuzhiyun {0x61,0x6a1f,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3f,-1}, /* 768x576x32 */ 139*4882a593Smuzhiyun {0x67,0x6e3b,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x40,-1}, /* 1360x1024x8 (BARCO) */ 140*4882a593Smuzhiyun {0x6f,0x6e7d,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x40,-1}, /* 1360x1024x16 (BARCO) */ 141*4882a593Smuzhiyun {0x72,0x6eff,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x40,-1}, /* 1360x1024x32 (BARCO) */ 142*4882a593Smuzhiyun {0xff,0x0000,0xffff,0, 0x00,0x00,0x00,0x00,0x00} 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun static const struct SiS_Ext2 SiS300_RefIndex[] = 146*4882a593Smuzhiyun { 147*4882a593Smuzhiyun {0x085f,0x0d,0x03,0x05,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 00 */ 148*4882a593Smuzhiyun {0x0467,0x0e,0x04,0x05,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 01 */ 149*4882a593Smuzhiyun {0x0067,0x0f,0x07,0x48,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 02 - CRT1CRTC was 0x4f */ 150*4882a593Smuzhiyun {0x0067,0x10,0x06,0x8b,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 03 */ 151*4882a593Smuzhiyun {0x0147,0x11,0x08,0x00,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 04 */ 152*4882a593Smuzhiyun {0x0147,0x12,0x0c,0x00,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 05 */ 153*4882a593Smuzhiyun {0x0047,0x11,0x0e,0x00,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 06 - CRT1CRTC was 0x51 */ 154*4882a593Smuzhiyun {0x0047,0x11,0x13,0x00,0x05,0x6a, 800, 600, 0, 0x00, 0x00}, /* 07 */ 155*4882a593Smuzhiyun {0xc85f,0x05,0x00,0x04,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 08 */ 156*4882a593Smuzhiyun {0xc067,0x06,0x02,0x04,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 09 */ 157*4882a593Smuzhiyun {0xc067,0x07,0x02,0x47,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0a */ 158*4882a593Smuzhiyun {0xc067,0x08,0x03,0x8a,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0b */ 159*4882a593Smuzhiyun {0xc047,0x09,0x05,0x00,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0c */ 160*4882a593Smuzhiyun {0xc047,0x0a,0x08,0x00,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0d */ 161*4882a593Smuzhiyun {0xc047,0x0b,0x0a,0x00,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0e */ 162*4882a593Smuzhiyun {0xc047,0x0c,0x10,0x00,0x04,0x2e, 640, 480, 0, 0x00, 0x00}, /* 0f */ 163*4882a593Smuzhiyun {0x487f,0x04,0x00,0x00,0x00,0x2f, 640, 400, 0, 0x4a, 0x49}, /* 10 */ 164*4882a593Smuzhiyun {0xc06f,0x31,0x01,0x06,0x13,0x31, 720, 480, 0, 0x00, 0x00}, /* 11 */ 165*4882a593Smuzhiyun {0x006f,0x32,0x4a,0x06,0x14,0x32, 720, 576, 0, 0x00, 0x00}, /* 12 */ /* 4a was 03 */ 166*4882a593Smuzhiyun {0x0187,0x15,0x05,0x00,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 13 */ 167*4882a593Smuzhiyun {0xc877,0x16,0x09,0x06,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 14 */ 168*4882a593Smuzhiyun {0xc067,0x17,0x0b,0x49,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 15 - CRT1CRTC was 0x97 */ 169*4882a593Smuzhiyun {0x0267,0x18,0x0d,0x00,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 16 */ 170*4882a593Smuzhiyun {0x0047,0x19,0x11,0x8c,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 17 - CRT1CRTC was 0x59 */ 171*4882a593Smuzhiyun {0x0047,0x1a,0x12,0x00,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 18 */ 172*4882a593Smuzhiyun {0x0007,0x1b,0x16,0x00,0x06,0x37,1024, 768, 0, 0x00, 0x00}, /* 19 - CRT1CRTC was 0x5b */ 173*4882a593Smuzhiyun {0x0387,0x1c,0x0d,0x00,0x07,0x3a,1280,1024, 0, 0x00, 0x00}, /* 1a - CRT1CRTC was 0x5c */ 174*4882a593Smuzhiyun {0x0077,0x1d,0x14,0x07,0x07,0x3a,1280,1024, 0, 0x00, 0x00}, /* 1b */ 175*4882a593Smuzhiyun {0x0047,0x1e,0x17,0x00,0x07,0x3a,1280,1024, 0, 0x00, 0x00}, /* 1c */ 176*4882a593Smuzhiyun {0x0007,0x1f,0x18,0x00,0x07,0x3a,1280,1024, 0, 0x00, 0x00}, /* 1d */ 177*4882a593Smuzhiyun {0x0007,0x20,0x19,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 1e - CRT1CRTC was 0x60 */ 178*4882a593Smuzhiyun {0x0007,0x21,0x1a,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 1f */ 179*4882a593Smuzhiyun {0x0007,0x22,0x1b,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 20 */ 180*4882a593Smuzhiyun {0x0007,0x23,0x1d,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 21 - CRT1CRTC was 0x63 */ 181*4882a593Smuzhiyun {0x0007,0x24,0x1e,0x00,0x00,0x3c,1600,1200, 0, 0x00, 0x00}, /* 22 */ 182*4882a593Smuzhiyun {0x407f,0x00,0x00,0x00,0x00,0x40, 320, 200, 0, 0x4b, 0x4b}, /* 23 */ 183*4882a593Smuzhiyun {0xc07f,0x01,0x00,0x04,0x04,0x50, 320, 240, 0, 0x00, 0x00}, /* 24 */ 184*4882a593Smuzhiyun {0x0077,0x02,0x04,0x05,0x05,0x51, 400, 300, 0, 0x00, 0x00}, /* 25 */ 185*4882a593Smuzhiyun {0xc877,0x03,0x09,0x06,0x06,0x52, 512, 384, 0, 0x00, 0x00}, /* 26 */ /* was c077 */ 186*4882a593Smuzhiyun {0x8207,0x25,0x1f,0x00,0x00,0x68,1920,1440, 0, 0x00, 0x00}, /* 27 */ 187*4882a593Smuzhiyun {0x0007,0x26,0x20,0x00,0x00,0x6c,2048,1536, 0, 0x00, 0x00}, /* 28 */ 188*4882a593Smuzhiyun {0x0067,0x27,0x14,0x08,0x0a,0x6e,1280, 960, 0, 0x00, 0x00}, /* 29 - 1280x960-60 */ 189*4882a593Smuzhiyun {0x0027,0x45,0x3c,0x08,0x0a,0x6e,1280, 960, 0, 0x00, 0x00}, /* 2a - 1280x960-85 */ 190*4882a593Smuzhiyun {0xc077,0x33,0x09,0x06,0x00,0x20,1024, 600, 0, 0x00, 0x00}, /* 2b */ 191*4882a593Smuzhiyun {0xc077,0x34,0x0b,0x06,0x00,0x23,1152, 768, 0, 0x00, 0x00}, /* 2c */ /* VCLK 0x09 */ 192*4882a593Smuzhiyun {0x0077,0x35,0x27,0x08,0x18,0x70, 800, 480, 0, 0x00, 0x00}, /* 2d */ 193*4882a593Smuzhiyun {0x0047,0x36,0x37,0x08,0x18,0x70, 800, 480, 0, 0x00, 0x00}, /* 2e */ 194*4882a593Smuzhiyun {0x0047,0x37,0x08,0x08,0x18,0x70, 800, 480, 0, 0x00, 0x00}, /* 2f */ 195*4882a593Smuzhiyun {0x0077,0x38,0x09,0x09,0x19,0x71,1024, 576, 0, 0x00, 0x00}, /* 30 */ 196*4882a593Smuzhiyun {0x0047,0x39,0x38,0x09,0x19,0x71,1024, 576, 0, 0x00, 0x00}, /* 31 */ 197*4882a593Smuzhiyun {0x0047,0x3a,0x11,0x09,0x19,0x71,1024, 576, 0, 0x00, 0x00}, /* 32 */ 198*4882a593Smuzhiyun {0x0077,0x3b,0x39,0x0a,0x0c,0x75,1280, 720, 0, 0x00, 0x00}, /* 33 */ 199*4882a593Smuzhiyun {0x0047,0x3c,0x3a,0x0a,0x0c,0x75,1280, 720, 0, 0x00, 0x00}, /* 34 */ 200*4882a593Smuzhiyun {0x0007,0x3d,0x3b,0x0a,0x0c,0x75,1280, 720, 0, 0x00, 0x00}, /* 35 */ 201*4882a593Smuzhiyun {0x0067,0x49,0x35,0x06,0x1a,0x29,1152, 864, 0, 0x00, 0x00}, /* 36 1152x864-60Hz */ 202*4882a593Smuzhiyun {0x0067,0x3e,0x34,0x06,0x1a,0x29,1152, 864, 0, 0x00, 0x00}, /* 37 1152x864-75Hz */ 203*4882a593Smuzhiyun {0x0047,0x44,0x3a,0x06,0x1a,0x29,1152, 864, 0, 0x00, 0x00}, /* 38 1152x864-85Hz */ 204*4882a593Smuzhiyun {0x00c7,0x3f,0x28,0x00,0x16,0x39, 848, 480, 0, 0x00, 0x00}, /* 39 848x480-38Hzi */ 205*4882a593Smuzhiyun {0xc067,0x40,0x3d,0x0b,0x16,0x39, 848, 480, 0, 0x00, 0x00}, /* 3a 848x480-60Hz */ 206*4882a593Smuzhiyun {0x00c7,0x41,0x28,0x00,0x17,0x3f, 856, 480, 0, 0x00, 0x00}, /* 3b 856x480-38Hzi */ 207*4882a593Smuzhiyun {0xc067,0x42,0x28,0x0c,0x17,0x3f, 856, 480, 0, 0x00, 0x00}, /* 3c 856x480-60Hz */ 208*4882a593Smuzhiyun {0x0067,0x43,0x3e,0x0d,0x1b,0x48,1360, 768, 0, 0x00, 0x00}, /* 3d 1360x768-60Hz */ 209*4882a593Smuzhiyun {0x0077,0x46,0x3f,0x08,0x08,0x55,1280, 768, 0, 0x00, 0x00}, /* 3e 1280x768-60Hz */ 210*4882a593Smuzhiyun {0x006f,0x47,0x4c,0x06,0x15,0x5f, 768, 576, 0, 0x00, 0x00}, /* 3f 768x576 */ 211*4882a593Smuzhiyun {0x0027,0x48,0x13,0x08,0x00,0x67,1360,1024, 0, 0x00, 0x00}, /* 40 1360x1024-59Hz (BARCO1366 only) */ 212*4882a593Smuzhiyun {0xffff, 0, 0, 0, 0, 0, 0, 0, 0, 0x00, 0x00} 213*4882a593Smuzhiyun }; 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun static const struct SiS_VBMode SiS300_VBModeIDTable[] = 216*4882a593Smuzhiyun { 217*4882a593Smuzhiyun {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 218*4882a593Smuzhiyun {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 219*4882a593Smuzhiyun {0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x02}, 220*4882a593Smuzhiyun {0x03,0x00,0x00,0x00,0x02,0x00,0x02,0x00}, 221*4882a593Smuzhiyun {0x03,0x00,0x00,0x00,0x02,0x00,0x02,0x01}, 222*4882a593Smuzhiyun {0x03,0x00,0x00,0x00,0x03,0x00,0x03,0x02}, 223*4882a593Smuzhiyun {0x05,0x00,0x00,0x01,0x04,0x00,0x00,0x00}, 224*4882a593Smuzhiyun {0x06,0x00,0x00,0x01,0x05,0x00,0x02,0x00}, 225*4882a593Smuzhiyun {0x07,0x00,0x00,0x00,0x03,0x00,0x03,0x01}, 226*4882a593Smuzhiyun {0x07,0x00,0x00,0x00,0x03,0x00,0x03,0x02}, 227*4882a593Smuzhiyun {0x0d,0x00,0x00,0x01,0x04,0x00,0x00,0x00}, 228*4882a593Smuzhiyun {0x0e,0x00,0x00,0x01,0x05,0x00,0x02,0x00}, 229*4882a593Smuzhiyun {0x0f,0x00,0x00,0x01,0x05,0x00,0x02,0x01}, 230*4882a593Smuzhiyun {0x10,0x00,0x00,0x01,0x05,0x00,0x02,0x01}, 231*4882a593Smuzhiyun {0x11,0x00,0x00,0x01,0x05,0x00,0x02,0x03}, 232*4882a593Smuzhiyun {0x12,0x00,0x00,0x01,0x05,0x00,0x02,0x03}, 233*4882a593Smuzhiyun {0x13,0x00,0x00,0x01,0x04,0x00,0x04,0x00}, 234*4882a593Smuzhiyun {0x6a,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 235*4882a593Smuzhiyun {0x2e,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, 236*4882a593Smuzhiyun {0x2f,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, 237*4882a593Smuzhiyun {0x30,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 238*4882a593Smuzhiyun {0x31,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 239*4882a593Smuzhiyun {0x32,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 240*4882a593Smuzhiyun {0x33,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 241*4882a593Smuzhiyun {0x34,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 242*4882a593Smuzhiyun {0x35,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 243*4882a593Smuzhiyun {0x36,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 244*4882a593Smuzhiyun {0x37,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 245*4882a593Smuzhiyun {0x38,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 246*4882a593Smuzhiyun {0x3a,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 247*4882a593Smuzhiyun {0x40,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, 248*4882a593Smuzhiyun {0x41,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, 249*4882a593Smuzhiyun {0x43,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, 250*4882a593Smuzhiyun {0x44,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, 251*4882a593Smuzhiyun {0x46,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 252*4882a593Smuzhiyun {0x47,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 253*4882a593Smuzhiyun {0x49,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 254*4882a593Smuzhiyun {0x4a,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 255*4882a593Smuzhiyun {0x4c,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 256*4882a593Smuzhiyun {0x4d,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 257*4882a593Smuzhiyun {0x4f,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, 258*4882a593Smuzhiyun {0x50,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, 259*4882a593Smuzhiyun {0x51,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, 260*4882a593Smuzhiyun {0x52,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, 261*4882a593Smuzhiyun {0x53,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, 262*4882a593Smuzhiyun {0x54,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, 263*4882a593Smuzhiyun {0x56,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, 264*4882a593Smuzhiyun {0x57,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, 265*4882a593Smuzhiyun {0x58,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, 266*4882a593Smuzhiyun {0x59,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, 267*4882a593Smuzhiyun {0x5c,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, 268*4882a593Smuzhiyun {0x5d,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, 269*4882a593Smuzhiyun {0x5e,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, 270*4882a593Smuzhiyun {0x5f,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 271*4882a593Smuzhiyun {0x60,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 272*4882a593Smuzhiyun {0x61,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 273*4882a593Smuzhiyun {0x62,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, 274*4882a593Smuzhiyun {0x63,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 275*4882a593Smuzhiyun {0x64,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 276*4882a593Smuzhiyun {0x65,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 277*4882a593Smuzhiyun {0x6c,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 278*4882a593Smuzhiyun {0x6d,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 279*4882a593Smuzhiyun {0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00} 280*4882a593Smuzhiyun }; 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun static const struct SiS_CRT1Table SiS300_CRT1Table[] = 283*4882a593Smuzhiyun { 284*4882a593Smuzhiyun {{0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f, /* 0x00 - 320x200 */ 285*4882a593Smuzhiyun 0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x00, /* HRE [4],[15] is invalid - but correcting it does not work */ 286*4882a593Smuzhiyun 0x00}}, 287*4882a593Smuzhiyun {{0x2d,0x27,0x28,0x90,0x2c,0x80,0x0b,0x3e, /* 0x01 */ 288*4882a593Smuzhiyun 0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x00, /* HRE [4],[15] is invalid - but correcting it does not work */ 289*4882a593Smuzhiyun 0x00}}, 290*4882a593Smuzhiyun {{0x3d,0x31,0x31,0x81,0x37,0x1f,0x72,0xf0, /* 0x02 */ 291*4882a593Smuzhiyun 0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x05, 292*4882a593Smuzhiyun 0x01}}, 293*4882a593Smuzhiyun {{0x4f,0x3f,0x3f,0x93,0x45,0x0d,0x24,0xf5, 294*4882a593Smuzhiyun 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x01, 295*4882a593Smuzhiyun 0x01}}, 296*4882a593Smuzhiyun {{0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 297*4882a593Smuzhiyun 0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x05, 298*4882a593Smuzhiyun 0x00}}, 299*4882a593Smuzhiyun {{0x5f,0x4f,0x4f,0x83,0x55,0x81,0x0b,0x3e, /* 0x05 - corrected 640x480-60 */ 300*4882a593Smuzhiyun 0xe9,0x8b,0xdf,0xe8,0x0c,0x00,0x00,0x05, 301*4882a593Smuzhiyun 0x00}}, 302*4882a593Smuzhiyun {{0x63,0x4f,0x4f,0x87,0x56,0x9b,0x06,0x3e, /* 0x06 - corrected 640x480-72 */ 303*4882a593Smuzhiyun 0xe8,0x8a,0xdf,0xe7,0x07,0x00,0x00,0x01, 304*4882a593Smuzhiyun 0x00}}, 305*4882a593Smuzhiyun {{0x64,0x4f,0x4f,0x88,0x55,0x9d,0xf2,0x1f, 306*4882a593Smuzhiyun 0xe0,0x83,0xdf,0xdf,0xf3,0x10,0x00,0x01, 307*4882a593Smuzhiyun 0x00}}, 308*4882a593Smuzhiyun {{0x63,0x4f,0x4f,0x87,0x5a,0x81,0xfb,0x1f, 309*4882a593Smuzhiyun 0xe0,0x83,0xdf,0xdf,0xfc,0x10,0x00,0x05, 310*4882a593Smuzhiyun 0x00}}, 311*4882a593Smuzhiyun {{0x67,0x4f,0x4f,0x8b,0x57,0x83,0x10,0x3e, /* 0x09 - corrected 640x480-100 */ 312*4882a593Smuzhiyun 0xe7,0x8d,0xdf,0xe6,0x11,0x00,0x00,0x05, 313*4882a593Smuzhiyun 0x00}}, 314*4882a593Smuzhiyun {{0x67,0x4f,0x4f,0x8b,0x57,0x83,0x10,0x3e, /* 0x0a - corrected 640x480-120 */ 315*4882a593Smuzhiyun 0xe7,0x8d,0xdf,0xe6,0x11,0x00,0x00,0x05, 316*4882a593Smuzhiyun 0x00}}, 317*4882a593Smuzhiyun {{0x63,0x4f,0x4f,0x87,0x56,0x9d,0xfb,0x1f, 318*4882a593Smuzhiyun 0xe0,0x83,0xdf,0xdf,0xfc,0x10,0x00,0x01, 319*4882a593Smuzhiyun 0x00}}, 320*4882a593Smuzhiyun {{0x65,0x4f,0x4f,0x89,0x57,0x9f,0xfb,0x1f, 321*4882a593Smuzhiyun 0xe6,0x8a,0xdf,0xdf,0xfc,0x10,0x00,0x01, /* Corrected VDE, VBE */ 322*4882a593Smuzhiyun 0x00}}, 323*4882a593Smuzhiyun {{0x7b,0x63,0x63,0x9f,0x6a,0x93,0x6f,0xf0, 324*4882a593Smuzhiyun 0x58,0x8a,0x57,0x57,0x70,0x20,0x00,0x05, 325*4882a593Smuzhiyun 0x01}}, 326*4882a593Smuzhiyun {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xf0, 327*4882a593Smuzhiyun 0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x06, 328*4882a593Smuzhiyun 0x01}}, 329*4882a593Smuzhiyun {{0x7d,0x63,0x63,0x81,0x6e,0x1d,0x98,0xf0, 330*4882a593Smuzhiyun 0x7c,0x82,0x57,0x57,0x99,0x00,0x00,0x06, 331*4882a593Smuzhiyun 0x01}}, 332*4882a593Smuzhiyun {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xf0, 333*4882a593Smuzhiyun 0x58,0x8b,0x57,0x57,0x70,0x20,0x00,0x06, 334*4882a593Smuzhiyun 0x01}}, 335*4882a593Smuzhiyun {{0x7e,0x63,0x63,0x82,0x6b,0x13,0x75,0xf0, 336*4882a593Smuzhiyun 0x58,0x8b,0x57,0x57,0x76,0x20,0x00,0x06, 337*4882a593Smuzhiyun 0x01}}, 338*4882a593Smuzhiyun {{0x8c,0x63,0x63,0x87,0x72,0x16,0x7e,0xf0, 339*4882a593Smuzhiyun 0x59,0x8d,0x57,0x57,0x7f,0x00,0x00,0x06, 340*4882a593Smuzhiyun 0x01}}, 341*4882a593Smuzhiyun {{0x7e,0x63,0x63,0x82,0x6c,0x14,0x75,0xe0, 342*4882a593Smuzhiyun 0x58,0x0b,0x57,0x57,0x76,0x20,0x00,0x06, 343*4882a593Smuzhiyun 0x01}}, 344*4882a593Smuzhiyun {{0x7e,0x63,0x63,0x82,0x6c,0x14,0x75,0xe0, /* 0x14 */ 345*4882a593Smuzhiyun 0x58,0x0b,0x57,0x57,0x76,0x20,0x00,0x06, 346*4882a593Smuzhiyun 0x01}}, 347*4882a593Smuzhiyun {{0x99,0x7f,0x7f,0x9d,0x84,0x1a,0x96,0x1f, 348*4882a593Smuzhiyun 0x7f,0x83,0x7f,0x7f,0x97,0x10,0x00,0x02, 349*4882a593Smuzhiyun 0x00}}, 350*4882a593Smuzhiyun {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf5, 351*4882a593Smuzhiyun 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, 352*4882a593Smuzhiyun 0x01}}, 353*4882a593Smuzhiyun {{0xa1,0x7f,0x7f,0x85,0x86,0x97,0x24,0xf5, 354*4882a593Smuzhiyun 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, 355*4882a593Smuzhiyun 0x01}}, 356*4882a593Smuzhiyun {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf5, 357*4882a593Smuzhiyun 0x00,0x83,0xff,0xff,0x1f,0x10,0x00,0x02, 358*4882a593Smuzhiyun 0x01}}, 359*4882a593Smuzhiyun {{0xa7,0x7f,0x7f,0x8b,0x89,0x95,0x26,0xf5, 360*4882a593Smuzhiyun 0x00,0x83,0xff,0xff,0x27,0x10,0x00,0x02, 361*4882a593Smuzhiyun 0x01}}, 362*4882a593Smuzhiyun {{0x9f,0x7f,0x7f,0x83,0x83,0x93,0x1e,0xf5, /* 0x1a */ 363*4882a593Smuzhiyun 0x00,0x84,0xff,0xff,0x1f,0x10,0x00,0x02, 364*4882a593Smuzhiyun 0x01}}, 365*4882a593Smuzhiyun {{0xa2,0x7f,0x7f,0x86,0x84,0x94,0x37,0xf5, 366*4882a593Smuzhiyun 0x0b,0x82,0xff,0xff,0x38,0x10,0x00,0x02, 367*4882a593Smuzhiyun 0x01}}, 368*4882a593Smuzhiyun {{0xcf,0x9f,0x9f,0x93,0xb2,0x01,0x14,0xba, 369*4882a593Smuzhiyun 0x00,0x83,0xff,0xff,0x15,0x00,0x00,0x03, 370*4882a593Smuzhiyun 0x00}}, 371*4882a593Smuzhiyun {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0x5a, 372*4882a593Smuzhiyun 0x00,0x83,0xff,0xff,0x29,0x09,0x00,0x07, 373*4882a593Smuzhiyun 0x01}}, 374*4882a593Smuzhiyun {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0x5a, /* 0x1e */ 375*4882a593Smuzhiyun 0x00,0x83,0xff,0xff,0x29,0x09,0x00,0x07, 376*4882a593Smuzhiyun 0x01}}, 377*4882a593Smuzhiyun {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0x5a, 378*4882a593Smuzhiyun 0x00,0x83,0xff,0xff,0x2f,0x09,0x00,0x07, 379*4882a593Smuzhiyun 0x01}}, 380*4882a593Smuzhiyun {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, 381*4882a593Smuzhiyun 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 382*4882a593Smuzhiyun 0x00}}, 383*4882a593Smuzhiyun {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, 384*4882a593Smuzhiyun 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 385*4882a593Smuzhiyun 0x00}}, 386*4882a593Smuzhiyun {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, 387*4882a593Smuzhiyun 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 388*4882a593Smuzhiyun 0x00}}, 389*4882a593Smuzhiyun {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, 390*4882a593Smuzhiyun 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 391*4882a593Smuzhiyun 0x00}}, 392*4882a593Smuzhiyun {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, /* 36: 1600x1200x85Hz */ 393*4882a593Smuzhiyun 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 394*4882a593Smuzhiyun 0x00}}, 395*4882a593Smuzhiyun {{0x3f,0xef,0xef,0x83,0xfd,0x1a,0xda,0x1f, /* 37: 1920x1440x60Hz */ 396*4882a593Smuzhiyun 0xa0,0x84,0x9f,0x9f,0xdb,0x1f,0x01,0x01, 397*4882a593Smuzhiyun 0x00}}, 398*4882a593Smuzhiyun {{0x55,0xff,0xff,0x99,0x0d,0x0c,0x3e,0xba, 399*4882a593Smuzhiyun 0x00,0x84,0xff,0xff,0x3f,0x0f,0x41,0x05, 400*4882a593Smuzhiyun 0x00}}, 401*4882a593Smuzhiyun {{0xdc,0x9f,0x9f,0x80,0xaf,0x9d,0xe6,0xff, /* 0x27: 1280x960-60 - correct */ 402*4882a593Smuzhiyun 0xc0,0x83,0xbf,0xbf,0xe7,0x10,0x00,0x07, 403*4882a593Smuzhiyun 0x01}}, 404*4882a593Smuzhiyun {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xba, /* 0x28 */ 405*4882a593Smuzhiyun 0x27,0x8b,0xdf,0xdf,0x73,0x00,0x00,0x06, 406*4882a593Smuzhiyun 0x01}}, 407*4882a593Smuzhiyun {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xba, 408*4882a593Smuzhiyun 0x26,0x89,0xdf,0xdf,0x6f,0x00,0x00,0x06, 409*4882a593Smuzhiyun 0x01}}, 410*4882a593Smuzhiyun {{0x7f,0x63,0x63,0x82,0x6b,0x13,0x75,0xba, 411*4882a593Smuzhiyun 0x29,0x8c,0xdf,0xdf,0x75,0x00,0x00,0x06, 412*4882a593Smuzhiyun 0x01}}, 413*4882a593Smuzhiyun {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf1, 414*4882a593Smuzhiyun 0xaf,0x85,0x3f,0x3f,0x25,0x30,0x00,0x02, 415*4882a593Smuzhiyun 0x01}}, 416*4882a593Smuzhiyun {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf1, 417*4882a593Smuzhiyun 0xad,0x81,0x3f,0x3f,0x1f,0x30,0x00,0x02, 418*4882a593Smuzhiyun 0x01}}, 419*4882a593Smuzhiyun {{0xa7,0x7f,0x7f,0x88,0x89,0x15,0x26,0xf1, 420*4882a593Smuzhiyun 0xb1,0x85,0x3f,0x3f,0x27,0x30,0x00,0x02, 421*4882a593Smuzhiyun 0x01}}, 422*4882a593Smuzhiyun {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0xc4, 423*4882a593Smuzhiyun 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, 424*4882a593Smuzhiyun 0x01}}, 425*4882a593Smuzhiyun {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0xd4, 426*4882a593Smuzhiyun 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, 427*4882a593Smuzhiyun 0x01}}, 428*4882a593Smuzhiyun {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0xd4, 429*4882a593Smuzhiyun 0x7d,0x81,0xcf,0xcf,0x2f,0x21,0x00,0x07, 430*4882a593Smuzhiyun 0x01}}, 431*4882a593Smuzhiyun {{0x6b,0x59,0x59,0x8f,0x5e,0x8c,0x0b,0x3e, 432*4882a593Smuzhiyun 0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x05, 433*4882a593Smuzhiyun 0x00}}, 434*4882a593Smuzhiyun {{0x6d,0x59,0x59,0x91,0x60,0x89,0x53,0xf0, /* 0x32: 720x576, corrected to 60Hz */ 435*4882a593Smuzhiyun 0x41,0x84,0x3f,0x3f,0x54,0x00,0x00,0x05, 436*4882a593Smuzhiyun 0x41}}, 437*4882a593Smuzhiyun {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x1e,0xf1, /* 0x33 - 1024x600 */ 438*4882a593Smuzhiyun 0xae,0x85,0x57,0x57,0x1f,0x30,0x00,0x02, 439*4882a593Smuzhiyun 0x01}}, 440*4882a593Smuzhiyun {{0xa3,0x8f,0x8f,0x97,0x96,0x97,0x24,0xf5, /* 0x34 - 1152x768 - corrected */ 441*4882a593Smuzhiyun 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, 442*4882a593Smuzhiyun 0x01}}, 443*4882a593Smuzhiyun {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xba, /* 0x35 */ 444*4882a593Smuzhiyun 0x27,0x8b,0xdf,0xdf,0x73,0x00,0x00,0x06, 445*4882a593Smuzhiyun 0x01}}, /* 0x35 */ 446*4882a593Smuzhiyun {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xba, 447*4882a593Smuzhiyun 0x26,0x89,0xdf,0xdf,0x6f,0x00,0x00,0x06, 448*4882a593Smuzhiyun 0x01}}, /* 0x36 */ 449*4882a593Smuzhiyun {{0x7f,0x63,0x63,0x82,0x6b,0x13,0x75,0xba, 450*4882a593Smuzhiyun 0x29,0x8c,0xdf,0xdf,0x75,0x00,0x00,0x06, 451*4882a593Smuzhiyun 0x01}}, /* 0x37 */ 452*4882a593Smuzhiyun {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf1, 453*4882a593Smuzhiyun 0xaf,0x85,0x3f,0x3f,0x25,0x30,0x00,0x02, 454*4882a593Smuzhiyun 0x01}}, /* 0x38 */ 455*4882a593Smuzhiyun {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf1, 456*4882a593Smuzhiyun 0xad,0x81,0x3f,0x3f,0x1f,0x30,0x00,0x02, 457*4882a593Smuzhiyun 0x01}}, /* 0x39 */ 458*4882a593Smuzhiyun {{0xa7,0x7f,0x7f,0x88,0x89,0x95,0x26,0xf1, /* 95 was 15 - illegal HBE! */ 459*4882a593Smuzhiyun 0xb1,0x85,0x3f,0x3f,0x27,0x30,0x00,0x02, 460*4882a593Smuzhiyun 0x01}}, /* 0x3a */ 461*4882a593Smuzhiyun {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0xc4, 462*4882a593Smuzhiyun 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, 463*4882a593Smuzhiyun 0x01}}, /* 0x3b */ 464*4882a593Smuzhiyun {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0xd4, 465*4882a593Smuzhiyun 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, 466*4882a593Smuzhiyun 0x01}}, /* 0x3c */ 467*4882a593Smuzhiyun {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0xd4, 468*4882a593Smuzhiyun 0x7d,0x81,0xcf,0xcf,0x2f,0x21,0x00,0x07, 469*4882a593Smuzhiyun 0x01}}, /* 0x3d */ 470*4882a593Smuzhiyun {{0xc3,0x8f,0x8f,0x87,0x9b,0x0b,0x82,0xef, /* 1152x864-75 */ 471*4882a593Smuzhiyun 0x60,0x83,0x5f,0x5f,0x83,0x10,0x00,0x07, 472*4882a593Smuzhiyun 0x01}}, /* 0x3e */ 473*4882a593Smuzhiyun {{0x86,0x69,0x69,0x8A,0x74,0x06,0x8C,0x15, /* 848x480-38i */ 474*4882a593Smuzhiyun 0x4F,0x83,0xEF,0xEF,0x8D,0x30,0x00,0x02, 475*4882a593Smuzhiyun 0x00}}, /* 0x3f */ 476*4882a593Smuzhiyun {{0x83,0x69,0x69,0x87,0x6f,0x1d,0x03,0x3E, /* 848x480-60 */ 477*4882a593Smuzhiyun 0xE5,0x8d,0xDF,0xe4,0x04,0x00,0x00,0x06, 478*4882a593Smuzhiyun 0x00}}, /* 0x40 */ 479*4882a593Smuzhiyun {{0x86,0x6A,0x6A,0x8A,0x74,0x06,0x8C,0x15, /* 856x480-38i */ 480*4882a593Smuzhiyun 0x4F,0x83,0xEF,0xEF,0x8D,0x30,0x00,0x02, 481*4882a593Smuzhiyun 0x00}}, /* 0x41 */ 482*4882a593Smuzhiyun {{0x81,0x6A,0x6A,0x85,0x70,0x00,0x0F,0x3E, /* 856x480-60 */ 483*4882a593Smuzhiyun 0xEB,0x8E,0xDF,0xDF,0x10,0x00,0x00,0x02, 484*4882a593Smuzhiyun 0x00}}, /* 0x42 */ 485*4882a593Smuzhiyun {{0xdd,0xa9,0xa9,0x81,0xb4,0x97,0x26,0xfd, /* 1360x768-60 */ 486*4882a593Smuzhiyun 0x01,0x8d,0xff,0x00,0x27,0x10,0x00,0x03, 487*4882a593Smuzhiyun 0x01}}, /* 0x43 */ 488*4882a593Smuzhiyun {{0xd9,0x8f,0x8f,0x9d,0xba,0x0a,0x8a,0xff, /* 1152x864-84 */ 489*4882a593Smuzhiyun 0x60,0x8b,0x5f,0x5f,0x8b,0x10,0x00,0x03, 490*4882a593Smuzhiyun 0x01}}, /* 0x44 */ 491*4882a593Smuzhiyun {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0xf1,0xff, /* 1280x960-85 */ 492*4882a593Smuzhiyun 0xc0,0x83,0xbf,0xbf,0xf2,0x10,0x00,0x07, 493*4882a593Smuzhiyun 0x01}}, /* 0x45 */ 494*4882a593Smuzhiyun {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x20,0xf5, /* 1280x768-60 */ 495*4882a593Smuzhiyun 0x03,0x88,0xff,0xff,0x21,0x10,0x00,0x07, 496*4882a593Smuzhiyun 0x01}}, /* 0x46 */ 497*4882a593Smuzhiyun {{0x75,0x5f,0x5f,0x99,0x66,0x90,0x53,0xf0, /* 768x576, corrected to 60Hz */ 498*4882a593Smuzhiyun 0x41,0x84,0x3f,0x3f,0x54,0x00,0x00,0x05, 499*4882a593Smuzhiyun 0x41}}, /* 0x47 */ 500*4882a593Smuzhiyun {{0xce,0xa9,0xa9,0x92,0xb1,0x07,0x28,0x52, /* 1360x1024 (Barco iQ Pro R300) */ 501*4882a593Smuzhiyun 0x02,0x8e,0xff,0x00,0x29,0x0d,0x00,0x03, 502*4882a593Smuzhiyun 0x00}}, /* 0x48 */ 503*4882a593Smuzhiyun {{0xcd,0x8f,0x8f,0x91,0x9b,0x1b,0x7a,0xff, /* 1152x864-60 */ 504*4882a593Smuzhiyun 0x64,0x8c,0x5f,0x62,0x7b,0x10,0x00,0x07, 505*4882a593Smuzhiyun 0x41}}, /* 0x49 */ 506*4882a593Smuzhiyun {{0x5c,0x4f,0x4f,0x80,0x57,0x80,0xa3,0x1f, /* fake 640x400@60Hz (for LCD and TV, not actually used) */ 507*4882a593Smuzhiyun 0x98,0x8c,0x8f,0x96,0xa4,0x30,0x00,0x05, 508*4882a593Smuzhiyun 0x40}}, /* 0x4a */ 509*4882a593Smuzhiyun {{0x2c,0x27,0x27,0x90,0x2d,0x92,0xa4,0x1f, /* fake 320x200@60Hz (for LCD and TV, not actually used) */ 510*4882a593Smuzhiyun 0x98,0x8c,0x8f,0x96,0xa5,0x30,0x00,0x04, 511*4882a593Smuzhiyun 0x00}} /* 0x4b */ 512*4882a593Smuzhiyun }; 513*4882a593Smuzhiyun 514*4882a593Smuzhiyun static const struct SiS_MCLKData SiS300_MCLKData_630[] = 515*4882a593Smuzhiyun { 516*4882a593Smuzhiyun { 0x5a,0x64,0x80, 66}, 517*4882a593Smuzhiyun { 0xb3,0x45,0x80, 83}, 518*4882a593Smuzhiyun { 0x37,0x61,0x80,100}, 519*4882a593Smuzhiyun { 0x37,0x22,0x80,133}, 520*4882a593Smuzhiyun { 0x37,0x61,0x80,100}, 521*4882a593Smuzhiyun { 0x37,0x61,0x80,100}, 522*4882a593Smuzhiyun { 0x37,0x61,0x80,100}, 523*4882a593Smuzhiyun { 0x37,0x61,0x80,100} 524*4882a593Smuzhiyun }; 525*4882a593Smuzhiyun 526*4882a593Smuzhiyun static const struct SiS_MCLKData SiS300_MCLKData_300[] = 527*4882a593Smuzhiyun { 528*4882a593Smuzhiyun { 0x68,0x43,0x80,125}, 529*4882a593Smuzhiyun { 0x68,0x43,0x80,125}, 530*4882a593Smuzhiyun { 0x68,0x43,0x80,125}, 531*4882a593Smuzhiyun { 0x37,0x61,0x80,100}, 532*4882a593Smuzhiyun { 0x37,0x61,0x80,100}, 533*4882a593Smuzhiyun { 0x37,0x61,0x80,100}, 534*4882a593Smuzhiyun { 0x37,0x61,0x80,100}, 535*4882a593Smuzhiyun { 0x37,0x61,0x80,100} 536*4882a593Smuzhiyun }; 537*4882a593Smuzhiyun 538*4882a593Smuzhiyun static struct SiS_VCLKData SiS300_VCLKData[] = 539*4882a593Smuzhiyun { 540*4882a593Smuzhiyun { 0x1b,0xe1, 25}, /* 0x00 */ 541*4882a593Smuzhiyun { 0x4e,0xe4, 28}, /* 0x01 */ 542*4882a593Smuzhiyun { 0x57,0xe4, 32}, /* 0x02 */ 543*4882a593Smuzhiyun { 0xc3,0xc8, 36}, /* 0x03 */ 544*4882a593Smuzhiyun { 0x42,0xc3, 40}, /* 0x04 */ 545*4882a593Smuzhiyun { 0x5d,0xc4, 45}, /* 0x05 */ 546*4882a593Smuzhiyun { 0x52,0x65, 50}, /* 0x06 */ 547*4882a593Smuzhiyun { 0x53,0x65, 50}, /* 0x07 */ 548*4882a593Smuzhiyun { 0x6d,0x66, 56}, /* 0x08 */ 549*4882a593Smuzhiyun { 0x5a,0x64, 65}, /* 0x09 */ 550*4882a593Smuzhiyun { 0x46,0x44, 68}, /* 0x0a */ 551*4882a593Smuzhiyun { 0x3e,0x43, 75}, /* 0x0b */ 552*4882a593Smuzhiyun { 0x6d,0x46, 76}, /* 0x0c */ /* 800x600 | LVDS_2(CH), MITAC(CH); - 730, A901(301B): 0xb1,0x46, 76 */ 553*4882a593Smuzhiyun { 0x41,0x43, 79}, /* 0x0d */ 554*4882a593Smuzhiyun { 0x31,0x42, 79}, /* 0x0e */ 555*4882a593Smuzhiyun { 0x46,0x25, 85}, /* 0x0f */ 556*4882a593Smuzhiyun { 0x78,0x29, 87}, /* 0x10 */ 557*4882a593Smuzhiyun { 0x62,0x44, 95}, /* 0x11 */ 558*4882a593Smuzhiyun { 0x2b,0x22,105}, /* 0x12 */ 559*4882a593Smuzhiyun { 0x49,0x24,106}, /* 0x13 */ 560*4882a593Smuzhiyun { 0xc3,0x28,108}, /* 0x14 */ 561*4882a593Smuzhiyun { 0x3c,0x23,109}, /* 0x15 */ 562*4882a593Smuzhiyun { 0xf7,0x2c,132}, /* 0x16 */ 563*4882a593Smuzhiyun { 0xd4,0x28,136}, /* 0x17 */ 564*4882a593Smuzhiyun { 0x41,0x05,158}, /* 0x18 */ 565*4882a593Smuzhiyun { 0x43,0x05,162}, /* 0x19 */ 566*4882a593Smuzhiyun { 0xe1,0x0f,175}, /* 0x1a */ 567*4882a593Smuzhiyun { 0xfc,0x12,189}, /* 0x1b */ 568*4882a593Smuzhiyun { 0xde,0x26,194}, /* 0x1c */ 569*4882a593Smuzhiyun { 0x54,0x05,203}, /* 0x1d */ 570*4882a593Smuzhiyun { 0x3f,0x03,230}, /* 0x1e */ 571*4882a593Smuzhiyun { 0x30,0x02,234}, /* 0x1f */ 572*4882a593Smuzhiyun { 0x24,0x01,266}, /* 0x20 */ 573*4882a593Smuzhiyun { 0x52,0x2a, 54}, /* 0x21 */ /* 301 TV */ 574*4882a593Smuzhiyun { 0x52,0x6a, 27}, /* 0x22 */ /* 301 TV */ 575*4882a593Smuzhiyun { 0x62,0x24, 70}, /* 0x23 */ /* 301 TV */ 576*4882a593Smuzhiyun { 0x62,0x64, 70}, /* 0x24 */ /* 301 TV */ 577*4882a593Smuzhiyun { 0xa8,0x4c, 30}, /* 0x25 */ /* 301 TV */ 578*4882a593Smuzhiyun { 0x20,0x26, 33}, /* 0x26 */ /* 301 TV */ 579*4882a593Smuzhiyun { 0x31,0xc2, 39}, /* 0x27 */ 580*4882a593Smuzhiyun { 0xbf,0xc8, 35}, /* 0x28 */ /* 856x480 */ 581*4882a593Smuzhiyun { 0x60,0x36, 30}, /* 0x29 */ /* CH/UNTSC TEXT | LVDS_2(CH) - 730, A901(301B), Mitac(CH): 0xe0, 0xb6, 30 */ 582*4882a593Smuzhiyun { 0x40,0x4a, 28}, /* 0x2a */ /* CH-TV */ 583*4882a593Smuzhiyun { 0x9f,0x46, 44}, /* 0x2b */ /* CH-TV */ 584*4882a593Smuzhiyun { 0x97,0x2c, 26}, /* 0x2c */ /* CH-TV */ 585*4882a593Smuzhiyun { 0x44,0xe4, 25}, /* 0x2d */ /* CH-TV */ 586*4882a593Smuzhiyun { 0x7e,0x32, 47}, /* 0x2e */ /* CH-TV */ 587*4882a593Smuzhiyun { 0x8a,0x24, 31}, /* 0x2f */ /* CH/PAL TEXT | LVDS_2(CH), Mitac(CH) - 730, A901(301B): 0x57, 0xe4, 31 */ 588*4882a593Smuzhiyun { 0x97,0x2c, 26}, /* 0x30 */ /* CH-TV */ 589*4882a593Smuzhiyun { 0xce,0x3c, 39}, /* 0x31 */ /* CH-TV */ 590*4882a593Smuzhiyun { 0x52,0x4a, 36}, /* 0x32 */ /* CH/PAL 800x600 5/6 */ 591*4882a593Smuzhiyun { 0x34,0x61, 95}, /* 0x33 */ 592*4882a593Smuzhiyun { 0x78,0x27,108}, /* 0x34 */ /* Replacement for index 0x14 for 630 (?) */ 593*4882a593Smuzhiyun { 0x70,0x28, 90}, /* 0x35 */ /* 1152x864@60 */ 594*4882a593Smuzhiyun { 0x45,0x6b, 21}, /* 0x36 */ /* Chrontel SuperOverscan */ 595*4882a593Smuzhiyun { 0x52,0xe2, 49}, /* 0x37 */ /* 16:9 modes */ 596*4882a593Smuzhiyun { 0x2b,0x61, 78}, /* 0x38 */ /* 16:9 modes */ 597*4882a593Smuzhiyun { 0x70,0x44,108}, /* 0x39 */ /* 16:9 modes */ 598*4882a593Smuzhiyun { 0x54,0x42,135}, /* 0x3a */ /* 16:9 modes */ 599*4882a593Smuzhiyun { 0x41,0x22,157}, /* 0x3b */ /* 16:9 modes */ 600*4882a593Smuzhiyun { 0x52,0x07,149}, /* 0x3c */ /* 1280x960-85 */ 601*4882a593Smuzhiyun { 0x62,0xc6, 34}, /* 0x3d */ /* 848x480-60 */ 602*4882a593Smuzhiyun { 0x30,0x23, 88}, /* 0x3e */ /* 1360x768-60 */ 603*4882a593Smuzhiyun { 0x70,0x29, 81}, /* 0x3f */ /* 1280x768-60 */ 604*4882a593Smuzhiyun { 0x72,0x2a, 76}, /* 0x40 */ /* test for SiS730 --- LIMIT for table (&0x3f) */ 605*4882a593Smuzhiyun { 0x15,0x21, 79}, /* 0x41 */ /* test for SiS730 */ 606*4882a593Smuzhiyun { 0xa1,0x42,108}, /* 0x42 */ /* 1280x960 LCD */ 607*4882a593Smuzhiyun { 0x37,0x61,100}, /* 0x43 */ /* 1280x960 LCD */ 608*4882a593Smuzhiyun { 0xe3,0x9a,106}, /* 0x44 */ /* 1360x1024 - special for Barco iQ R300 */ 609*4882a593Smuzhiyun { 0xe2,0x46,135}, /* 0x45 */ /* 1280x1024-75, better clock for VGA2 */ 610*4882a593Smuzhiyun { 0x70,0x29, 81}, /* 0x46 */ /* unused */ 611*4882a593Smuzhiyun { 0, 0, 0}, /* 0x47 custom (will be filled out) */ 612*4882a593Smuzhiyun { 0xce,0x25,189}, /* 0x48 */ /* Replacement for index 0x1b for 730 (and 540?) */ 613*4882a593Smuzhiyun { 0x15,0xe1, 20}, /* 0x49 */ /* 640x400@60 (fake, not actually used) */ 614*4882a593Smuzhiyun { 0x5f,0xc6, 33}, /* 0x4a */ /* 720x576@60 */ 615*4882a593Smuzhiyun { 0x37,0x5a, 10}, /* 0x4b */ /* 320x200@60 (fake, not actually used) */ 616*4882a593Smuzhiyun { 0x2b,0xc2, 35} /* 0x4c */ /* 768@576@60 */ 617*4882a593Smuzhiyun }; 618*4882a593Smuzhiyun 619*4882a593Smuzhiyun static const unsigned char SiS300_SR15[4 * 8] = 620*4882a593Smuzhiyun { 621*4882a593Smuzhiyun 0x01,0x09,0xa3,0x00, 622*4882a593Smuzhiyun 0x43,0x43,0x43,0x00, 623*4882a593Smuzhiyun 0x1e,0x1e,0x1e,0x00, 624*4882a593Smuzhiyun 0x2a,0x2a,0x2a,0x00, 625*4882a593Smuzhiyun 0x06,0x06,0x06,0x00, 626*4882a593Smuzhiyun 0x00,0x00,0x00,0x00, 627*4882a593Smuzhiyun 0x00,0x00,0x00,0x00, 628*4882a593Smuzhiyun 0x00,0x00,0x00,0x00 629*4882a593Smuzhiyun }; 630*4882a593Smuzhiyun 631*4882a593Smuzhiyun static const struct SiS_PanelDelayTbl SiS300_PanelDelayTbl[] = 632*4882a593Smuzhiyun { 633*4882a593Smuzhiyun {{0x05,0xaa}}, 634*4882a593Smuzhiyun {{0x05,0x14}}, 635*4882a593Smuzhiyun {{0x05,0x36}}, 636*4882a593Smuzhiyun {{0x05,0x14}}, 637*4882a593Smuzhiyun {{0x05,0x14}}, 638*4882a593Smuzhiyun {{0x05,0x14}}, 639*4882a593Smuzhiyun {{0x05,0x90}}, 640*4882a593Smuzhiyun {{0x05,0x90}}, 641*4882a593Smuzhiyun {{0x05,0x14}}, 642*4882a593Smuzhiyun {{0x05,0x14}}, 643*4882a593Smuzhiyun {{0x05,0x14}}, 644*4882a593Smuzhiyun {{0x05,0x14}}, 645*4882a593Smuzhiyun {{0x20,0x80}}, 646*4882a593Smuzhiyun {{0x05,0x14}}, 647*4882a593Smuzhiyun {{0x05,0x40}}, 648*4882a593Smuzhiyun {{0x05,0x60}} 649*4882a593Smuzhiyun }; 650*4882a593Smuzhiyun 651*4882a593Smuzhiyun /**************************************************************/ 652*4882a593Smuzhiyun /* SIS VIDEO BRIDGE ----------------------------------------- */ 653*4882a593Smuzhiyun /**************************************************************/ 654*4882a593Smuzhiyun 655*4882a593Smuzhiyun static const struct SiS_LCDData SiS300_St2LCD1024x768Data[] = 656*4882a593Smuzhiyun { 657*4882a593Smuzhiyun { 62, 25, 800, 546,1344, 806}, 658*4882a593Smuzhiyun { 32, 15, 930, 546,1344, 806}, 659*4882a593Smuzhiyun { 32, 15, 930, 546,1344, 806}, 660*4882a593Smuzhiyun { 104, 45, 945, 496,1344, 806}, 661*4882a593Smuzhiyun { 62, 25, 800, 546,1344, 806}, 662*4882a593Smuzhiyun { 31, 18,1008, 624,1344, 806}, 663*4882a593Smuzhiyun { 1, 1,1344, 806,1344, 806} 664*4882a593Smuzhiyun }; 665*4882a593Smuzhiyun 666*4882a593Smuzhiyun static const struct SiS_LCDData SiS300_ExtLCD1024x768Data[] = 667*4882a593Smuzhiyun { 668*4882a593Smuzhiyun { 12, 5, 896, 512,1344, 806}, 669*4882a593Smuzhiyun { 12, 5, 896, 510,1344, 806}, 670*4882a593Smuzhiyun { 32, 15,1008, 505,1344, 806}, 671*4882a593Smuzhiyun { 32, 15,1008, 514,1344, 806}, 672*4882a593Smuzhiyun { 12, 5, 896, 500,1344, 806}, 673*4882a593Smuzhiyun { 42, 25,1024, 625,1344, 806}, 674*4882a593Smuzhiyun { 1, 1,1344, 806,1344, 806}, 675*4882a593Smuzhiyun { 12, 5, 896, 500,1344, 806}, 676*4882a593Smuzhiyun { 42, 25,1024, 625,1344, 806}, 677*4882a593Smuzhiyun { 1, 1,1344, 806,1344, 806}, 678*4882a593Smuzhiyun { 12, 5, 896, 500,1344, 806}, 679*4882a593Smuzhiyun { 42, 25,1024, 625,1344, 806}, 680*4882a593Smuzhiyun { 1, 1,1344, 806,1344, 806} 681*4882a593Smuzhiyun }; 682*4882a593Smuzhiyun 683*4882a593Smuzhiyun static const struct SiS_LCDData SiS300_St2LCD1280x1024Data[] = 684*4882a593Smuzhiyun { 685*4882a593Smuzhiyun { 22, 5, 800, 510,1650,1088}, 686*4882a593Smuzhiyun { 22, 5, 800, 510,1650,1088}, 687*4882a593Smuzhiyun { 176, 45, 900, 510,1650,1088}, 688*4882a593Smuzhiyun { 176, 45, 900, 510,1650,1088}, 689*4882a593Smuzhiyun { 22, 5, 800, 510,1650,1088}, 690*4882a593Smuzhiyun { 13, 5,1024, 675,1560,1152}, 691*4882a593Smuzhiyun { 16, 9,1266, 804,1688,1072}, 692*4882a593Smuzhiyun { 1, 1,1688,1066,1688,1066} 693*4882a593Smuzhiyun }; 694*4882a593Smuzhiyun 695*4882a593Smuzhiyun static const struct SiS_LCDData SiS300_ExtLCD1280x1024Data[] = 696*4882a593Smuzhiyun { 697*4882a593Smuzhiyun { 211, 60,1024, 501,1688,1066}, 698*4882a593Smuzhiyun { 211, 60,1024, 508,1688,1066}, 699*4882a593Smuzhiyun { 211, 60,1024, 501,1688,1066}, 700*4882a593Smuzhiyun { 211, 60,1024, 508,1688,1066}, 701*4882a593Smuzhiyun { 211, 60,1024, 500,1688,1066}, 702*4882a593Smuzhiyun { 211, 75,1024, 625,1688,1066}, 703*4882a593Smuzhiyun { 211, 120,1280, 798,1688,1066}, 704*4882a593Smuzhiyun { 1, 1,1688,1066,1688,1066} 705*4882a593Smuzhiyun }; 706*4882a593Smuzhiyun 707*4882a593Smuzhiyun static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_1[] = 708*4882a593Smuzhiyun { /* VESA Timing */ 709*4882a593Smuzhiyun {{0x21,0x12,0xbf,0xe4,0xc0,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, 710*4882a593Smuzhiyun {{0x2c,0x12,0x9a,0xae,0x88,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, 711*4882a593Smuzhiyun {{0x21,0x12,0xbf,0xe4,0xc0,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, 712*4882a593Smuzhiyun {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, 713*4882a593Smuzhiyun {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}}, 714*4882a593Smuzhiyun {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}}, 715*4882a593Smuzhiyun {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}} 716*4882a593Smuzhiyun }; 717*4882a593Smuzhiyun 718*4882a593Smuzhiyun static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_2[] = 719*4882a593Smuzhiyun { /* Non-VESA */ 720*4882a593Smuzhiyun {{0x28,0x12,0xa3,0xd0,0xaa,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 721*4882a593Smuzhiyun {{0x2c,0x12,0x9a,0xae,0x88,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 722*4882a593Smuzhiyun {{0x28,0x12,0xa3,0xd0,0xaa,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 723*4882a593Smuzhiyun {{0x2c,0x12,0x9a,0xae,0x88,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 724*4882a593Smuzhiyun {{0x28,0x13,0xe7,0x0b,0xe8,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 725*4882a593Smuzhiyun {{0x38,0x18,0x16,0x00,0x00,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 726*4882a593Smuzhiyun {{0x36,0x13,0x13,0x25,0xff,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}} 727*4882a593Smuzhiyun }; 728*4882a593Smuzhiyun 729*4882a593Smuzhiyun static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_3[] = 730*4882a593Smuzhiyun { 731*4882a593Smuzhiyun {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} 732*4882a593Smuzhiyun }; 733*4882a593Smuzhiyun 734*4882a593Smuzhiyun /**************************************************************/ 735*4882a593Smuzhiyun /* LVDS/Chrontel -------------------------------------------- */ 736*4882a593Smuzhiyun /**************************************************************/ 737*4882a593Smuzhiyun 738*4882a593Smuzhiyun /* Custom data for Barco iQ R series */ 739*4882a593Smuzhiyun static const struct SiS_LVDSData SiS300_LVDSBARCO1366Data_1[]= 740*4882a593Smuzhiyun { 741*4882a593Smuzhiyun { 832, 438,1331, 806}, 742*4882a593Smuzhiyun { 832, 388,1331, 806}, 743*4882a593Smuzhiyun { 832, 438,1331, 806}, 744*4882a593Smuzhiyun { 832, 388,1331, 806}, 745*4882a593Smuzhiyun { 832, 518,1331, 806}, 746*4882a593Smuzhiyun {1050, 638,1344, 806}, 747*4882a593Smuzhiyun {1344, 806,1344, 806}, 748*4882a593Smuzhiyun {1688,1066,1688,1066}, 749*4882a593Smuzhiyun {1688,1066,1688,1066} /* 1360x1024 */ 750*4882a593Smuzhiyun }; 751*4882a593Smuzhiyun 752*4882a593Smuzhiyun /* Custom data for Barco iQ R series */ 753*4882a593Smuzhiyun static const struct SiS_LVDSData SiS300_LVDSBARCO1366Data_2[]= 754*4882a593Smuzhiyun { 755*4882a593Smuzhiyun {1344, 806,1344, 806}, 756*4882a593Smuzhiyun {1344, 806,1344, 806}, 757*4882a593Smuzhiyun {1344, 806,1344, 806}, 758*4882a593Smuzhiyun {1344, 806,1344, 806}, 759*4882a593Smuzhiyun {1344, 806,1344, 806}, 760*4882a593Smuzhiyun {1344, 806,1344, 806}, 761*4882a593Smuzhiyun {1344, 806,1344, 806}, 762*4882a593Smuzhiyun {1688,1066,1688,1066}, 763*4882a593Smuzhiyun {1688,1066,1688,1066} /* 1360x1024 */ 764*4882a593Smuzhiyun }; 765*4882a593Smuzhiyun 766*4882a593Smuzhiyun /* Custom data for Barco iQ G series */ 767*4882a593Smuzhiyun static const struct SiS_LVDSData SiS300_LVDSBARCO1024Data_1[]= 768*4882a593Smuzhiyun { 769*4882a593Smuzhiyun { 832, 438,1331, 806}, 770*4882a593Smuzhiyun { 832, 409,1331, 806}, 771*4882a593Smuzhiyun { 832, 438,1331, 806}, 772*4882a593Smuzhiyun { 832, 409,1331, 806}, 773*4882a593Smuzhiyun { 832, 518,1331, 806}, /* 640x480 */ 774*4882a593Smuzhiyun {1050, 638,1344, 806}, /* 800x600 */ 775*4882a593Smuzhiyun {1344, 806,1344, 806}, /* 1024x768 */ 776*4882a593Smuzhiyun }; 777*4882a593Smuzhiyun 778*4882a593Smuzhiyun /* Custom data for 848x480 and 856x480 parallel LVDS panels */ 779*4882a593Smuzhiyun static const struct SiS_LVDSData SiS300_LVDS848x480Data_1[]= 780*4882a593Smuzhiyun { 781*4882a593Smuzhiyun { 0, 0, 0, 0}, 782*4882a593Smuzhiyun { 0, 0, 0, 0}, 783*4882a593Smuzhiyun { 0, 0, 0, 0}, 784*4882a593Smuzhiyun { 0, 0, 0, 0}, 785*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 640x480 TODO */ 786*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 800x600 TODO */ 787*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 1024x768 TODO */ 788*4882a593Smuzhiyun { 0, 0, 0, 0}, 789*4882a593Smuzhiyun { 0, 0, 0, 0}, 790*4882a593Smuzhiyun { 0, 0, 0, 0}, 791*4882a593Smuzhiyun { 0, 0, 0, 0}, 792*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 848x480 */ 793*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 856x480 */ 794*4882a593Smuzhiyun {1088, 525,1088, 525} /* 1360x768 TODO */ 795*4882a593Smuzhiyun }; 796*4882a593Smuzhiyun 797*4882a593Smuzhiyun /* Custom data for 848x480 parallel panel */ 798*4882a593Smuzhiyun static const struct SiS_LVDSData SiS300_LVDS848x480Data_2[]= 799*4882a593Smuzhiyun { 800*4882a593Smuzhiyun { 0, 0, 0, 0}, 801*4882a593Smuzhiyun { 0, 0, 0, 0}, 802*4882a593Smuzhiyun { 0, 0, 0, 0}, 803*4882a593Smuzhiyun { 0, 0, 0, 0}, 804*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 640x480 */ 805*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 800x600 */ 806*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 1024x768 */ 807*4882a593Smuzhiyun { 0, 0, 0, 0}, 808*4882a593Smuzhiyun { 0, 0, 0, 0}, 809*4882a593Smuzhiyun { 0, 0, 0, 0}, 810*4882a593Smuzhiyun { 0, 0, 0, 0}, 811*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 848x480 */ 812*4882a593Smuzhiyun {1088, 525,1088, 525}, /* 856x480 */ 813*4882a593Smuzhiyun {1088, 525,1088, 525} /* 1360x768 TODO */ 814*4882a593Smuzhiyun }; 815*4882a593Smuzhiyun 816*4882a593Smuzhiyun static const struct SiS_LVDSData SiS300_CHTVUPALData[] = 817*4882a593Smuzhiyun { 818*4882a593Smuzhiyun {1008, 625,1008, 625}, 819*4882a593Smuzhiyun {1008, 625,1008, 625}, 820*4882a593Smuzhiyun {1008, 625,1008, 625}, 821*4882a593Smuzhiyun {1008, 625,1008, 625}, 822*4882a593Smuzhiyun { 840, 750, 840, 750}, 823*4882a593Smuzhiyun { 936, 836, 936, 836} 824*4882a593Smuzhiyun }; 825*4882a593Smuzhiyun 826*4882a593Smuzhiyun static const struct SiS_LVDSData SiS300_CHTVOPALData[] = 827*4882a593Smuzhiyun { 828*4882a593Smuzhiyun {1008, 625,1008, 625}, 829*4882a593Smuzhiyun {1008, 625,1008, 625}, 830*4882a593Smuzhiyun {1008, 625,1008, 625}, 831*4882a593Smuzhiyun {1008, 625,1008, 625}, 832*4882a593Smuzhiyun { 840, 625, 840, 625}, 833*4882a593Smuzhiyun { 960, 750, 960, 750} 834*4882a593Smuzhiyun }; 835*4882a593Smuzhiyun 836*4882a593Smuzhiyun static const struct SiS_LVDSData SiS300_CHTVSOPALData[] = 837*4882a593Smuzhiyun { 838*4882a593Smuzhiyun {1008, 625,1008, 625}, 839*4882a593Smuzhiyun {1008, 625,1008, 625}, 840*4882a593Smuzhiyun {1008, 625,1008, 625}, 841*4882a593Smuzhiyun {1008, 625,1008, 625}, 842*4882a593Smuzhiyun { 840, 500, 840, 500}, 843*4882a593Smuzhiyun { 944, 625, 944, 625} 844*4882a593Smuzhiyun }; 845*4882a593Smuzhiyun 846*4882a593Smuzhiyun /* Custom des data for Barco iQ R200/300/400 (BIOS 2.00.07) */ 847*4882a593Smuzhiyun static const struct SiS_LVDSDes SiS300_PanelType04_1a[] = /* 1280x1024 (1366x1024) */ 848*4882a593Smuzhiyun { 849*4882a593Smuzhiyun {1330, 798}, /* 320x200 */ 850*4882a593Smuzhiyun {1330, 794}, 851*4882a593Smuzhiyun {1330, 798}, 852*4882a593Smuzhiyun {1330, 794}, 853*4882a593Smuzhiyun {1330, 0}, /* 640x480 / 320x240 */ 854*4882a593Smuzhiyun {1343, 0}, /* 800x600 / 400x300 */ 855*4882a593Smuzhiyun { 0, 805}, /* 1024x768 / 512x384 */ 856*4882a593Smuzhiyun {1688,1066}, /* 1280x1024 */ 857*4882a593Smuzhiyun { 0, 0} /* 1360x1024 */ 858*4882a593Smuzhiyun }; 859*4882a593Smuzhiyun 860*4882a593Smuzhiyun static const struct SiS_LVDSDes SiS300_PanelType04_2a[] = 861*4882a593Smuzhiyun { 862*4882a593Smuzhiyun {1152, 622}, 863*4882a593Smuzhiyun {1152, 597}, 864*4882a593Smuzhiyun {1152, 622}, 865*4882a593Smuzhiyun {1152, 597}, 866*4882a593Smuzhiyun {1152, 662}, 867*4882a593Smuzhiyun {1232, 722}, 868*4882a593Smuzhiyun { 0, 805}, 869*4882a593Smuzhiyun {1688,1066}, 870*4882a593Smuzhiyun { 0, 0} 871*4882a593Smuzhiyun }; 872*4882a593Smuzhiyun 873*4882a593Smuzhiyun /* Custom des data for Barco iQ G200/300/400 (BIOS 2.00.07) */ 874*4882a593Smuzhiyun static const struct SiS_LVDSDes SiS300_PanelType04_1b[] = /* 1024x768 */ 875*4882a593Smuzhiyun { 876*4882a593Smuzhiyun {1330, 798}, /* 320x200 */ 877*4882a593Smuzhiyun {1330, 794}, 878*4882a593Smuzhiyun {1330, 798}, 879*4882a593Smuzhiyun {1330, 794}, 880*4882a593Smuzhiyun {1330, 0}, /* 640x480 / 320x240 */ 881*4882a593Smuzhiyun {1343, 0}, /* 800x600 / 400x300 */ 882*4882a593Smuzhiyun { 0, 805} /* 1024x768 / 512x384 */ 883*4882a593Smuzhiyun }; 884*4882a593Smuzhiyun 885*4882a593Smuzhiyun static const struct SiS_LVDSDes SiS300_PanelType04_2b[] = 886*4882a593Smuzhiyun { 887*4882a593Smuzhiyun {1152, 622}, 888*4882a593Smuzhiyun {1152, 597}, 889*4882a593Smuzhiyun {1152, 622}, 890*4882a593Smuzhiyun {1152, 597}, 891*4882a593Smuzhiyun {1152, 662}, 892*4882a593Smuzhiyun {1232, 722}, 893*4882a593Smuzhiyun { 0, 805} 894*4882a593Smuzhiyun }; 895*4882a593Smuzhiyun 896*4882a593Smuzhiyun /* CRT1 CRTC for slave modes */ 897*4882a593Smuzhiyun 898*4882a593Smuzhiyun static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1UNTSC[] = 899*4882a593Smuzhiyun { 900*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 901*4882a593Smuzhiyun 0xe8,0x84,0x8f,0x57,0x20,0x00,0x01, 902*4882a593Smuzhiyun 0x00 }}, 903*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 904*4882a593Smuzhiyun 0xd0,0x82,0x5d,0x57,0x00,0x00,0x01, 905*4882a593Smuzhiyun 0x00 }}, 906*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 907*4882a593Smuzhiyun 0xe8,0x84,0x8f,0x57,0x20,0x00,0x01, 908*4882a593Smuzhiyun 0x00 }}, 909*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 910*4882a593Smuzhiyun 0xd0,0x82,0x5d,0x57,0x00,0x00,0x01, 911*4882a593Smuzhiyun 0x00 }}, 912*4882a593Smuzhiyun {{0x5d,0x4f,0x81,0x53,0x9c,0x56,0xba, 913*4882a593Smuzhiyun 0x18,0x84,0xdf,0x57,0x00,0x00,0x01, 914*4882a593Smuzhiyun 0x00 }}, 915*4882a593Smuzhiyun {{0x80,0x63,0x84,0x6c,0x17,0xec,0xf0, 916*4882a593Smuzhiyun 0x90,0x8c,0x57,0xed,0x20,0x00,0x06, 917*4882a593Smuzhiyun 0x01 }} 918*4882a593Smuzhiyun }; 919*4882a593Smuzhiyun 920*4882a593Smuzhiyun static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1ONTSC[] = 921*4882a593Smuzhiyun { 922*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 923*4882a593Smuzhiyun 0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01, 924*4882a593Smuzhiyun 0x00 }}, 925*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 926*4882a593Smuzhiyun 0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01, 927*4882a593Smuzhiyun 0x00 }}, 928*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 929*4882a593Smuzhiyun 0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01, 930*4882a593Smuzhiyun 0x00 }}, 931*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 932*4882a593Smuzhiyun 0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01, 933*4882a593Smuzhiyun 0x00 }}, 934*4882a593Smuzhiyun {{0x5d,0x4f,0x81,0x56,0x9c,0x0b,0x3e, 935*4882a593Smuzhiyun 0xe8,0x84,0xdf,0x0c,0x00,0x00,0x01, 936*4882a593Smuzhiyun 0x00 }}, 937*4882a593Smuzhiyun {{0x7d,0x63,0x81,0x6a,0x16,0xba,0xf0, 938*4882a593Smuzhiyun 0x7f,0x86,0x57,0xbb,0x00,0x00,0x06, 939*4882a593Smuzhiyun 0x01 }} 940*4882a593Smuzhiyun }; 941*4882a593Smuzhiyun 942*4882a593Smuzhiyun static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1UPAL[] = 943*4882a593Smuzhiyun { 944*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 945*4882a593Smuzhiyun 0xf8,0x83,0x8f,0x70,0x20,0x00,0x05, 946*4882a593Smuzhiyun 0x00 }}, 947*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 948*4882a593Smuzhiyun 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 949*4882a593Smuzhiyun 0x00 }}, 950*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 951*4882a593Smuzhiyun 0xf8,0x83,0x8f,0x70,0x20,0x00,0x05, 952*4882a593Smuzhiyun 0x00 }}, 953*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 954*4882a593Smuzhiyun 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 955*4882a593Smuzhiyun 0x00 }}, 956*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x55,0x80,0xec,0xba, 957*4882a593Smuzhiyun 0x50,0x84,0xdf,0xed,0x00,0x00,0x05, 958*4882a593Smuzhiyun 0x00 }}, 959*4882a593Smuzhiyun {{0x70,0x63,0x94,0x68,0x8d,0x42,0xf1, 960*4882a593Smuzhiyun 0xc8,0x8c,0x57,0xe9,0x20,0x00,0x05, 961*4882a593Smuzhiyun 0x01 }} 962*4882a593Smuzhiyun }; 963*4882a593Smuzhiyun 964*4882a593Smuzhiyun static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1OPAL[] = 965*4882a593Smuzhiyun { 966*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 967*4882a593Smuzhiyun 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, 968*4882a593Smuzhiyun 0x00 }}, 969*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 970*4882a593Smuzhiyun 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 971*4882a593Smuzhiyun 0x00 }}, 972*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 973*4882a593Smuzhiyun 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, 974*4882a593Smuzhiyun 0x00 }}, 975*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 976*4882a593Smuzhiyun 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 977*4882a593Smuzhiyun 0x00 }}, 978*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba, 979*4882a593Smuzhiyun 0x20,0x83,0xdf,0x70,0x00,0x00,0x05, 980*4882a593Smuzhiyun 0x00 }}, 981*4882a593Smuzhiyun {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0, 982*4882a593Smuzhiyun 0x90,0x8c,0x57,0xed,0x20,0x00,0x05, 983*4882a593Smuzhiyun 0x01 }} 984*4882a593Smuzhiyun }; 985*4882a593Smuzhiyun 986*4882a593Smuzhiyun static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1SOPAL[] = 987*4882a593Smuzhiyun { 988*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 989*4882a593Smuzhiyun 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, 990*4882a593Smuzhiyun 0x00 }}, 991*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 992*4882a593Smuzhiyun 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 993*4882a593Smuzhiyun 0x00 }}, 994*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 995*4882a593Smuzhiyun 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, 996*4882a593Smuzhiyun 0x00 }}, 997*4882a593Smuzhiyun {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 998*4882a593Smuzhiyun 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 999*4882a593Smuzhiyun 0x00 }}, 1000*4882a593Smuzhiyun {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba, /* TODO */ 1001*4882a593Smuzhiyun 0x20,0x83,0xdf,0x70,0x00,0x00,0x05, 1002*4882a593Smuzhiyun 0x00 }}, 1003*4882a593Smuzhiyun {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0, /* TODO */ 1004*4882a593Smuzhiyun 0x90,0x8c,0x57,0xed,0x20,0x00,0x05, 1005*4882a593Smuzhiyun 0x01 }} 1006*4882a593Smuzhiyun }; 1007*4882a593Smuzhiyun 1008*4882a593Smuzhiyun static const struct SiS_CHTVRegData SiS300_CHTVReg_UNTSC[] = 1009*4882a593Smuzhiyun { 1010*4882a593Smuzhiyun {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1011*4882a593Smuzhiyun {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1012*4882a593Smuzhiyun {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1013*4882a593Smuzhiyun {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1014*4882a593Smuzhiyun {{0x6a,0x6a,0x00,0x2d,0xfa,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 17: 640x480 NTSC 7/8 */ 1015*4882a593Smuzhiyun {{0x8d,0xc4,0x00,0x3b,0xfb,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 24: 800x600 NTSC 7/10 */ 1016*4882a593Smuzhiyun }; 1017*4882a593Smuzhiyun 1018*4882a593Smuzhiyun static const struct SiS_CHTVRegData SiS300_CHTVReg_ONTSC[] = 1019*4882a593Smuzhiyun { 1020*4882a593Smuzhiyun {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1021*4882a593Smuzhiyun {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1022*4882a593Smuzhiyun {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1023*4882a593Smuzhiyun {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1024*4882a593Smuzhiyun {{0x69,0x6a,0x00,0x1e,0xfd,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 16: 640x480 NTSC 1/1 */ 1025*4882a593Smuzhiyun {{0x8c,0xb4,0x00,0x32,0xf9,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 23: 800x600 NTSC 3/4 */ 1026*4882a593Smuzhiyun }; 1027*4882a593Smuzhiyun 1028*4882a593Smuzhiyun static const struct SiS_CHTVRegData SiS300_CHTVReg_UPAL[] = 1029*4882a593Smuzhiyun { 1030*4882a593Smuzhiyun {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, 1031*4882a593Smuzhiyun {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1032*4882a593Smuzhiyun {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, 1033*4882a593Smuzhiyun {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1034*4882a593Smuzhiyun {{0x63,0x94,0x01,0x50,0x30,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 15: 640x480 PAL 5/6 */ 1035*4882a593Smuzhiyun {{0x84,0x64,0x01,0x4e,0x2f,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 21: 800x600 PAL 3/4 */ 1036*4882a593Smuzhiyun 1037*4882a593Smuzhiyun }; 1038*4882a593Smuzhiyun 1039*4882a593Smuzhiyun static const struct SiS_CHTVRegData SiS300_CHTVReg_OPAL[] = 1040*4882a593Smuzhiyun { 1041*4882a593Smuzhiyun {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 9: 640x400 PAL 1/1 */ 1042*4882a593Smuzhiyun {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1043*4882a593Smuzhiyun {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, 1044*4882a593Smuzhiyun {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1045*4882a593Smuzhiyun {{0x61,0x94,0x01,0x36,0x30,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 14: 640x480 PAL 1/1 */ 1046*4882a593Smuzhiyun {{0x83,0x76,0x01,0x40,0x31,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 20: 800x600 PAL 5/6 */ 1047*4882a593Smuzhiyun 1048*4882a593Smuzhiyun }; 1049*4882a593Smuzhiyun 1050*4882a593Smuzhiyun static const struct SiS_CHTVRegData SiS300_CHTVReg_SOPAL[] = 1051*4882a593Smuzhiyun { 1052*4882a593Smuzhiyun {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 9: 640x400 PAL 1/1 */ 1053*4882a593Smuzhiyun {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1054*4882a593Smuzhiyun {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, 1055*4882a593Smuzhiyun {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1056*4882a593Smuzhiyun {{0x60,0x30,0x00,0x10,0x00,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 13: 640x480 PAL 5/4 */ 1057*4882a593Smuzhiyun {{0x81,0x50,0x00,0x1b,0x00,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 19: 800x600 PAL 1/1 */ 1058*4882a593Smuzhiyun }; 1059*4882a593Smuzhiyun 1060*4882a593Smuzhiyun static const unsigned char SiS300_CHTVVCLKUNTSC[] = { 0x29,0x29,0x29,0x29,0x2a,0x2e }; 1061*4882a593Smuzhiyun 1062*4882a593Smuzhiyun static const unsigned char SiS300_CHTVVCLKONTSC[] = { 0x2c,0x2c,0x2c,0x2c,0x2d,0x2b }; 1063*4882a593Smuzhiyun 1064*4882a593Smuzhiyun static const unsigned char SiS300_CHTVVCLKSONTSC[] = { 0x2c,0x2c,0x2c,0x2c,0x2d,0x2b }; 1065*4882a593Smuzhiyun 1066*4882a593Smuzhiyun static const unsigned char SiS300_CHTVVCLKUPAL[] = { 0x2f,0x2f,0x2f,0x2f,0x2f,0x31 }; 1067*4882a593Smuzhiyun 1068*4882a593Smuzhiyun static const unsigned char SiS300_CHTVVCLKOPAL[] = { 0x2f,0x2f,0x2f,0x2f,0x30,0x32 }; 1069*4882a593Smuzhiyun 1070*4882a593Smuzhiyun static const unsigned char SiS300_CHTVVCLKSOPAL[] = { 0x2f,0x2f,0x2f,0x2f,0x36,0x29 }; 1071*4882a593Smuzhiyun 1072*4882a593Smuzhiyun 1073