1 /* $XFree86$ */ 2 /* $XdotOrg$ */ 3 /* 4 * Register settings for SiS 300 series 5 * 6 * Copyright (C) 2001-2004 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 EXPRESSED 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 53 static const SiS_StStruct SiS300_SModeIDTable[] = 54 { 55 {0x01,0x9208,0x01,0x00,0x00,0x00,0x00,0x00, 0}, 56 {0x01,0x1210,0x14,0x01,0x01,0x00,0x00,0x00, 0}, 57 {0x01,0x1010,0x17,0x02,0x02,0x00,0x00,0x00, 0}, 58 {0x03,0x8208,0x03,0x00,0x00,0x00,0x00,0x00, 0}, 59 {0x03,0x0210,0x16,0x01,0x01,0x00,0x00,0x00, 0}, 60 {0x03,0x0010,0x18,0x02,0x02,0x00,0x00,0x00, 0}, 61 {0x05,0x9209,0x05,0x00,0x00,0x00,0x00,0x00, 0}, 62 {0x06,0x8209,0x06,0x00,0x00,0x00,0x00,0x00, 0}, 63 {0x07,0x0000,0x07,0x03,0x03,0x00,0x00,0x00, 0}, 64 {0x07,0x0000,0x19,0x02,0x02,0x00,0x00,0x00, 0}, 65 {0x0d,0x920a,0x0d,0x00,0x00,0x00,0x00,0x00, 0}, 66 {0x0e,0x820a,0x0e,0x00,0x00,0x00,0x00,0x00, 0}, 67 {0x0f,0x0202,0x11,0x01,0x01,0x00,0x00,0x00, 0}, 68 {0x10,0x0212,0x12,0x01,0x01,0x00,0x00,0x00, 0}, 69 {0x11,0x0212,0x1a,0x04,0x04,0x00,0x00,0x00, 0}, 70 {0x12,0x0212,0x1b,0x04,0x04,0x00,0x00,0x00, 0}, 71 {0x13,0x021b,0x1c,0x00,0x00,0x00,0x00,0x00, 0}, 72 {0x12,0x0010,0x18,0x02,0x02,0x00,0x00,0x00, 0}, 73 {0x12,0x0210,0x18,0x01,0x01,0x00,0x00,0x00, 0}, 74 {0xff, 0, 0, 0, 0, 0, 0, 0, 0} 75 }; 76 77 static const SiS_ExtStruct SiS300_EModeIDTable[] = 78 { 79 {0x6a,0x2212,0x0102,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x? */ 80 {0x2e,0x0a1b,0x0101,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, 81 {0x2f,0x021b,0x0100,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x8 */ 82 {0x30,0x2a1b,0x0103,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, 83 {0x31,0x0a1b,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x8 */ 84 {0x32,0x2a1b,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x8 */ 85 {0x33,0x0a1d,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x16 */ 86 {0x34,0x2a1d,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x16 */ 87 {0x35,0x0a1f,0x0000,SIS_RI_720x480, 0x00,0x00,0x00,0x00,0x11,-1}, /* 720x480x32 */ 88 {0x36,0x2a1f,0x0000,SIS_RI_720x576, 0x00,0x00,0x00,0x00,0x12,-1}, /* 720x576x32 */ 89 {0x37,0x0212,0x0104,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, /* 1024x768x? */ 90 {0x38,0x0a1b,0x0105,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, /* 1024x768x8 */ 91 {0x3a,0x0e3b,0x0107,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, /* 1280x1024x8 */ 92 {0x3c,0x063b,0x0130,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, 93 {0x3d,0x067d,0x0131,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, 94 {0x40,0x921c,0x010d,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x15 */ 95 {0x41,0x921d,0x010e,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x16 */ 96 {0x43,0x0a1c,0x0110,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, 97 {0x44,0x0a1d,0x0111,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, 98 {0x46,0x2a1c,0x0113,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x15 */ 99 {0x47,0x2a1d,0x0114,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x16 */ 100 {0x49,0x0a3c,0x0116,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, 101 {0x4a,0x0a3d,0x0117,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, 102 {0x4c,0x0e7c,0x0119,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, 103 {0x4d,0x0e7d,0x011a,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, 104 {0x50,0x921b,0x0132,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x8 */ 105 {0x51,0xb21b,0x0133,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x8 */ 106 {0x52,0x921b,0x0134,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x8 */ 107 {0x56,0x921d,0x0135,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x16 */ 108 {0x57,0xb21d,0x0136,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x16 */ 109 {0x58,0x921d,0x0137,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x16 */ 110 {0x59,0x921b,0x0138,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x8 */ 111 {0x5c,0x921f,0x0000,SIS_RI_512x384, 0x00,0x00,0x00,0x00,0x26,-1}, /* 512x384x32 */ 112 {0x5d,0x021d,0x0139,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x16 */ 113 {0x5e,0x021f,0x0000,SIS_RI_640x400, 0x00,0x00,0x00,0x00,0x10,-1}, /* 640x400x32 */ 114 {0x62,0x0a3f,0x013a,SIS_RI_640x480, 0x00,0x00,0x00,0x00,0x08,-1}, 115 {0x63,0x2a3f,0x013b,SIS_RI_800x600, 0x00,0x00,0x00,0x00,0x00,-1}, /* 800x600x32 */ 116 {0x64,0x0a7f,0x013c,SIS_RI_1024x768, 0x00,0x00,0x00,0x00,0x13,-1}, 117 {0x65,0x0eff,0x013d,SIS_RI_1280x1024,0x00,0x00,0x00,0x00,0x1a,-1}, 118 {0x66,0x06ff,0x013e,SIS_RI_1600x1200,0x00,0x00,0x00,0x00,0x1e,-1}, 119 {0x68,0x067b,0x013f,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, 120 {0x69,0x06fd,0x0140,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, 121 {0x6b,0x07ff,0x0000,SIS_RI_1920x1440,0x00,0x00,0x00,0x00,0x27,-1}, 122 {0x6c,0x067b,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x28,-1}, /* 2048x1536x8 - not in BIOS! */ 123 {0x6d,0x06fd,0x0000,SIS_RI_2048x1536,0x00,0x00,0x00,0x00,0x28,-1}, /* 2048x1536x16 - not in BIOS! */ 124 {0x70,0x2a1b,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x8 */ 125 {0x71,0x0a1b,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x8 */ 126 {0x74,0x0a1d,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x16 */ 127 {0x75,0x0e3d,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x16 */ 128 {0x76,0x2a1f,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x32 */ 129 {0x77,0x0a3f,0x0000,SIS_RI_1024x576, 0x00,0x00,0x00,0x00,0x30,-1}, /* 1024x576x32 */ 130 {0x78,0x0eff,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x32 */ 131 {0x79,0x0e3b,0x0000,SIS_RI_1280x720, 0x00,0x00,0x00,0x00,0x33,-1}, /* 1280x720x8 */ 132 {0x7a,0x2a1d,0x0000,SIS_RI_800x480, 0x00,0x00,0x07,0x00,0x2d,-1}, /* 800x480x16 */ 133 {0x7c,0x0a3b,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x8 */ 134 {0x7d,0x0a7d,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x16 */ 135 {0x7e,0x0aff,0x0000,SIS_RI_1280x960, 0x00,0x00,0x00,0x00,0x29,-1}, /* 1280x960x32 */ 136 {0x20,0x0a1b,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, /* 1024x600 */ 137 {0x21,0x0a3d,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, 138 {0x22,0x0a7f,0x0000,SIS_RI_1024x600, 0x00,0x00,0x00,0x00,0x2b,-1}, 139 {0x23,0x0a1b,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, /* 1152x768 */ 140 {0x24,0x0a3d,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, 141 {0x25,0x0a7f,0x0000,SIS_RI_1152x768, 0x00,0x00,0x00,0x00,0x2c,-1}, 142 {0x29,0x0e1b,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, /* 1152x864 */ 143 {0x2a,0x0e3d,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, 144 {0x2b,0x0e7f,0x0000,SIS_RI_1152x864, 0x00,0x00,0x00,0x00,0x36,-1}, 145 {0x39,0x2a1b,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x38,-1}, /* 848x480 */ 146 {0x3b,0x2a3d,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x38,-1}, 147 {0x3e,0x2a7f,0x0000,SIS_RI_848x480, 0x00,0x00,0x00,0x00,0x38,-1}, 148 {0x3f,0x2a1b,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3a,-1}, /* 856x480 */ 149 {0x42,0x2a3d,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3a,-1}, 150 {0x45,0x2a7f,0x0000,SIS_RI_856x480, 0x00,0x00,0x00,0x00,0x3a,-1}, 151 {0x48,0x223b,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3c,-1}, /* 1360x768 */ 152 {0x4b,0x227d,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3c,-1}, 153 {0x4e,0x22ff,0x0000,SIS_RI_1360x768, 0x00,0x00,0x00,0x00,0x3c,-1}, 154 {0x4f,0x921f,0x0000,SIS_RI_320x200, 0x00,0x00,0x00,0x00,0x23,-1}, /* 320x200x32 */ 155 {0x53,0x921f,0x0000,SIS_RI_320x240, 0x00,0x00,0x00,0x00,0x24,-1}, /* 320x240x32 */ 156 {0x54,0xb21f,0x0000,SIS_RI_400x300, 0x00,0x00,0x00,0x00,0x25,-1}, /* 400x300x32 */ 157 {0x55,0x2e3b,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3d,-1}, /* 1280x768 */ 158 {0x5a,0x2e7d,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3d,-1}, 159 {0x5b,0x2eff,0x0000,SIS_RI_1280x768, 0x00,0x00,0x00,0x00,0x3d,-1}, 160 {0x5f,0x2a1b,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3e,-1}, /* 768x576x8 */ 161 {0x60,0x2a1d,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3e,-1}, /* 768x576x16 */ 162 {0x61,0x2a1f,0x0000,SIS_RI_768x576, 0x00,0x00,0x00,0x00,0x3e,-1}, /* 768x576x32 */ 163 {0x67,0x2e3b,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x3f,-1}, /* 1360x1024x8 (BARCO) */ 164 {0x6f,0x2e7d,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x3f,-1}, /* 1360x1024x16 (BARCO) */ 165 {0x72,0x2eff,0x0000,SIS_RI_1360x1024,0x00,0x00,0x00,0x00,0x3f,-1}, /* 1360x1024x32 (BARCO) */ 166 {0xff,0x0000,0xffff,0, 0x00,0x00,0x00,0x00,0x00} 167 }; 168 169 static const SiS_Ext2Struct SiS300_RefIndex[] = 170 { 171 {0x085f,0x0d,0x03,0x05,0x05,0x6a, 800, 600, 0}, /* 00 */ 172 {0x0467,0x0e,0x44,0x05,0x05,0x6a, 800, 600, 0}, /* 01 */ 173 {0x0067,0x0f,0x07,0x48,0x00,0x6a, 800, 600, 0}, /* 02 - CRT1CRTC was 0x4f */ 174 {0x0067,0x10,0x06,0x8b,0x00,0x6a, 800, 600, 0}, /* 03 */ 175 {0x0147,0x11,0x08,0x00,0x00,0x6a, 800, 600, 0}, /* 04 */ 176 {0x0147,0x12,0x0c,0x00,0x00,0x6a, 800, 600, 0}, /* 05 */ 177 {0x0047,0x11,0x4e,0x00,0x00,0x6a, 800, 600, 0}, /* 06 - CRT1CRTC was 0x51 */ 178 {0x0047,0x11,0x13,0x00,0x00,0x6a, 800, 600, 0}, /* 07 */ 179 {0xc85f,0x05,0x00,0x04,0x04,0x2e, 640, 480, 0}, /* 08 */ 180 {0xc067,0x06,0x02,0x04,0x04,0x2e, 640, 480, 0}, /* 09 */ 181 {0xc067,0x07,0x02,0x47,0x04,0x2e, 640, 480, 0}, /* 0a */ 182 {0xc067,0x08,0x03,0x8a,0x04,0x2e, 640, 480, 0}, /* 0b */ 183 {0xc047,0x09,0x05,0x00,0x00,0x2e, 640, 480, 0}, /* 0c */ 184 {0xc047,0x0a,0x08,0x00,0x00,0x2e, 640, 480, 0}, /* 0d */ 185 {0xc047,0x0b,0x0a,0x00,0x00,0x2e, 640, 480, 0}, /* 0e */ 186 {0xc047,0x0c,0x10,0x00,0x00,0x2e, 640, 480, 0}, /* 0f */ 187 {0x487f,0x04,0x00,0x00,0x00,0x2f, 640, 400, 0}, /* 10 */ 188 {0xc04f,0x31,0x01,0x06,0x00,0x31, 720, 480, 0}, /* 11 */ 189 {0x004f,0x32,0x03,0x06,0x00,0x32, 720, 576, 0}, /* 12 */ 190 {0x0187,0x15,0x05,0x00,0x00,0x37,1024, 768, 0}, /* 13 */ 191 {0xc877,0x16,0x09,0x06,0x06,0x37,1024, 768, 0}, /* 14 */ 192 {0xc067,0x17,0x0b,0x49,0x06,0x37,1024, 768, 0}, /* 15 - CRT1CRTC was 0x97 */ 193 {0x0267,0x18,0x0d,0x00,0x06,0x37,1024, 768, 0}, /* 16 */ 194 {0x0047,0x19,0x11,0x8c,0x00,0x37,1024, 768, 0}, /* 17 - CRT1CRTC was 0x59 */ 195 {0x0047,0x1a,0x52,0x00,0x00,0x37,1024, 768, 0}, /* 18 */ 196 {0x0007,0x1b,0x16,0x00,0x00,0x37,1024, 768, 0}, /* 19 - CRT1CRTC was 0x5b */ 197 {0x0387,0x1c,0x4d,0x00,0x00,0x3a,1280,1024, 0}, /* 1a - CRT1CRTC was 0x5c */ 198 {0x0077,0x1d,0x14,0x07,0x00,0x3a,1280,1024, 0}, /* 1b */ 199 {0x0047,0x1e,0x17,0x00,0x00,0x3a,1280,1024, 0}, /* 1c */ 200 {0x0007,0x1f,0x98,0x00,0x00,0x3a,1280,1024, 0}, /* 1d */ 201 {0x0007,0x20,0x59,0x00,0x00,0x3c,1600,1200, 0}, /* 1e - CRT1CRTC was 0x60 */ 202 {0x0007,0x21,0x5a,0x00,0x00,0x3c,1600,1200, 0}, /* 1f */ 203 {0x0007,0x22,0x1b,0x00,0x00,0x3c,1600,1200, 0}, /* 20 */ 204 {0x0007,0x23,0x1d,0x00,0x00,0x3c,1600,1200, 0}, /* 21 - CRT1CRTC was 0x63 */ 205 {0x0007,0x24,0x1e,0x00,0x00,0x3c,1600,1200, 0}, /* 22 */ 206 {0x407f,0x00,0x00,0x00,0x00,0x40, 320, 200, 0}, /* 23 */ 207 {0xc07f,0x01,0x00,0x04,0x04,0x50, 320, 240, 0}, /* 24 */ 208 {0x0077,0x02,0x04,0x05,0x05,0x51, 400, 300, 0}, /* 25 */ 209 {0xc877,0x03,0x09,0x06,0x06,0x52, 512, 384, 0}, /* 26 */ /* was c077 */ 210 {0x8207,0x25,0x1f,0x00,0x00,0x68,1920,1440, 0}, /* 27 */ 211 {0x0007,0x26,0x20,0x00,0x00,0x6c,2048,1536, 0}, /* 28 */ 212 {0x0067,0x27,0x14,0x08,0x0a,0x6e,1280, 960, 0}, /* 29 - 1280x960-60 */ 213 {0x0027,0x45,0x3c,0x08,0x0a,0x6e,1280, 960, 0}, /* 2a - 1280x960-85 */ 214 {0xc077,0x33,0x09,0x06,0x00,0x20,1024, 600, 0}, /* 2b */ 215 {0xc077,0x34,0x0b,0x06,0x00,0x23,1152, 768, 0}, /* 2c */ /* VCLK 0x09 */ 216 {0x0057,0x35,0x27,0x08,0x00,0x70, 800, 480, 0}, /* 2d */ 217 {0x0047,0x36,0x37,0x08,0x00,0x70, 800, 480, 0}, /* 2e */ 218 {0x0047,0x37,0x08,0x08,0x00,0x70, 800, 480, 0}, /* 2f */ 219 {0x0057,0x38,0x09,0x09,0x00,0x71,1024, 576, 0}, /* 30 */ 220 {0x0047,0x39,0x38,0x09,0x00,0x71,1024, 576, 0}, /* 31 */ 221 {0x0047,0x3a,0x11,0x09,0x00,0x71,1024, 576, 0}, /* 32 */ 222 {0x0057,0x3b,0x39,0x0a,0x00,0x75,1280, 720, 0}, /* 33 */ 223 {0x0047,0x3c,0x3a,0x0a,0x00,0x75,1280, 720, 0}, /* 34 */ 224 {0x0007,0x3d,0x3b,0x0a,0x00,0x75,1280, 720, 0}, /* 35 */ 225 {0x0047,0x3e,0x34,0x06,0x00,0x29,1152, 864, 0}, /* 36 1152x864-75Hz */ 226 {0x0047,0x44,0x3a,0x06,0x00,0x29,1152, 864, 0}, /* 37 1152x864-85Hz */ 227 {0x00c7,0x3f,0x28,0x00,0x00,0x39, 848, 480, 0}, /* 38 848x480-38Hzi */ 228 {0xc067,0x40,0x3d,0x0b,0x0b,0x39, 848, 480, 0}, /* 39 848x480-60Hz */ 229 {0x00c7,0x41,0x28,0x00,0x00,0x3f, 856, 480, 0}, /* 3a 856x480-38Hzi */ 230 {0xc047,0x42,0x28,0x00,0x00,0x3f, 856, 480, 0}, /* 3b 856x480-60Hz */ 231 {0x0067,0x43,0x3e,0x0c,0x0b,0x48,1360, 768, 0}, /* 3c 1360x768-60Hz */ 232 {0x0077,0x46,0x3f,0x08,0x00,0x55,1280, 768, 0}, /* 3d 1280x768-60Hz */ 233 {0x004f,0x47,0x03,0x06,0x00,0x5f, 768, 576, 0}, /* 3e 768x576 */ 234 {0x0027,0x48,0x13,0x08,0x08,0x67,1360,1024, 0}, /* 3f 1360x1024-59Hz (BARCO1366 only) */ 235 {0xffff, 0, 0, 0, 0, 0, 0, 0, 0} 236 }; 237 238 static const SiS_VBModeStruct SiS300_VBModeIDTable[] = 239 { 240 {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 241 {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 242 {0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x02}, 243 {0x03,0x00,0x00,0x00,0x02,0x00,0x02,0x00}, 244 {0x03,0x00,0x00,0x00,0x02,0x00,0x02,0x01}, 245 {0x03,0x00,0x00,0x00,0x03,0x00,0x03,0x02}, 246 {0x05,0x00,0x00,0x01,0x04,0x00,0x00,0x00}, 247 {0x06,0x00,0x00,0x01,0x05,0x00,0x02,0x00}, 248 {0x07,0x00,0x00,0x00,0x03,0x00,0x03,0x01}, 249 {0x07,0x00,0x00,0x00,0x03,0x00,0x03,0x02}, 250 {0x0d,0x00,0x00,0x01,0x04,0x00,0x00,0x00}, 251 {0x0e,0x00,0x00,0x01,0x05,0x00,0x02,0x00}, 252 {0x0f,0x00,0x00,0x01,0x05,0x00,0x02,0x01}, 253 {0x10,0x00,0x00,0x01,0x05,0x00,0x02,0x01}, 254 {0x11,0x00,0x00,0x01,0x05,0x00,0x02,0x03}, 255 {0x12,0x00,0x00,0x01,0x05,0x00,0x02,0x03}, 256 {0x13,0x00,0x00,0x01,0x04,0x00,0x04,0x00}, 257 {0x6a,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 258 {0x2e,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, 259 {0x2f,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, 260 {0x30,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 261 {0x31,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 262 {0x32,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 263 {0x33,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 264 {0x34,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 265 {0x35,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 266 {0x36,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 267 {0x37,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 268 {0x38,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 269 {0x3a,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 270 {0x40,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, 271 {0x41,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, 272 {0x43,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, 273 {0x44,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, 274 {0x46,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 275 {0x47,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 276 {0x49,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 277 {0x4a,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 278 {0x4c,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 279 {0x4d,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 280 {0x4f,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, 281 {0x50,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, 282 {0x51,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, 283 {0x52,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, 284 {0x53,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, 285 {0x54,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, 286 {0x56,0x00,0x00,0x01,0x04,0x00,0x05,0x07}, 287 {0x57,0x00,0x00,0x01,0x07,0x00,0x07,0x09}, 288 {0x58,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, 289 {0x59,0x00,0x00,0x01,0x04,0x00,0x05,0x05}, 290 {0x5c,0x00,0x00,0x01,0x00,0x00,0x09,0x0b}, 291 {0x5d,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, 292 {0x5e,0x00,0x00,0x01,0x05,0x00,0x06,0x06}, 293 {0x5f,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 294 {0x60,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 295 {0x61,0x00,0x00,0x01,0x06,0x00,0x00,0x00}, 296 {0x62,0x00,0x00,0x01,0x05,0x00,0x06,0x08}, 297 {0x63,0x00,0x00,0x01,0x07,0x00,0x08,0x0a}, 298 {0x64,0x00,0x00,0x01,0x00,0x00,0x0a,0x0c}, 299 {0x65,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 300 {0x6c,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 301 {0x6d,0x00,0x00,0x01,0x00,0x00,0x0b,0x0d}, 302 {0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00} 303 }; 304 305 static const SiS_CRT1TableStruct SiS300_CRT1Table[] = 306 { 307 #if 1 308 {{0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f, /* 0x00 - 320x200 */ 309 0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x00, /* HRE [4],[15] is invalid - but correcting it does not work */ 310 0x00}}, 311 #endif 312 #if 0 313 {{0x2d,0x27,0x27,0x91,0x2c,0x92,0xbf,0x1f, /* 0x00 - corrected 320x200-72 - does not work */ 314 0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x04, 315 0x00}}, 316 #endif 317 {{0x2d,0x27,0x28,0x90,0x2c,0x80,0x0b,0x3e, /* 0x01 */ 318 0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x00, /* HRE [4],[15] is invalid - but correcting it does not work */ 319 0x00}}, 320 #if 0 321 {{0x2d,0x27,0x27,0x91,0x2c,0x92,0x0b,0x3e, /* 0x01 - corrected 320x240-60 - does not work */ 322 0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x04, 323 0x00}}, 324 #endif 325 {{0x3d,0x31,0x31,0x81,0x37,0x1f,0x72,0xf0, /* 0x02 */ 326 0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x05, 327 0x01}}, 328 #if 0 329 {{0x3d,0x31,0x31,0x81,0x37,0x1f,0x72,0xf0, /* 0x02 - corrected 400x300-60 */ 330 0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x05, 331 0x01}}, 332 #endif 333 {{0x4f,0x3f,0x3f,0x93,0x45,0x0d,0x24,0xf5, 334 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x01, 335 0x01}}, 336 {{0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 337 0x9c,0x8e,0x8f,0x96,0xb9,0x30,0x00,0x05, 338 0x00}}, 339 #if 0 340 {{0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e, /* 0x05 */ 341 0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x05, 342 0x00}}, 343 #endif 344 {{0x5f,0x4f,0x4f,0x83,0x55,0x81,0x0b,0x3e, /* 0x05 - corrected 640x480-60 */ 345 0xe9,0x8b,0xdf,0xe8,0x0c,0x00,0x00,0x05, 346 0x00}}, 347 #if 0 348 {{0x63,0x4f,0x50,0x86,0x56,0x9b,0x06,0x3e, /* 0x06 */ 349 0xe8,0x8b,0xdf,0xe7,0xff,0x10,0x00,0x01, 350 0x00}}, 351 #endif 352 {{0x63,0x4f,0x4f,0x87,0x56,0x9b,0x06,0x3e, /* 0x06 - corrected 640x480-72 */ 353 0xe8,0x8a,0xdf,0xe7,0x07,0x00,0x00,0x01, 354 0x00}}, 355 {{0x64,0x4f,0x4f,0x88,0x55,0x9d,0xf2,0x1f, 356 0xe0,0x83,0xdf,0xdf,0xf3,0x10,0x00,0x01, 357 0x00}}, 358 {{0x63,0x4f,0x4f,0x87,0x5a,0x81,0xfb,0x1f, 359 0xe0,0x83,0xdf,0xdf,0xfc,0x10,0x00,0x05, 360 0x00}}, 361 #if 0 362 {{0x66,0x4f,0x4f,0x86,0x56,0x9e,0x03,0x3e, /* 0x09 */ 363 0xe4,0x87,0xdf,0xdf,0x04,0x00,0x00,0x01, 364 0x00}}, 365 #endif 366 {{0x67,0x4f,0x4f,0x8b,0x57,0x83,0x10,0x3e, /* 0x09 - corrected 640x480-100 */ 367 0xe7,0x8d,0xdf,0xe6,0x11,0x00,0x00,0x05, 368 0x00}}, 369 #if 0 370 {{0x6c,0x4f,0x4f,0x83,0x59,0x9e,0x00,0x3e, /* 0x0a */ 371 0xe5,0x8d,0xdf,0xdf,0x01,0x00,0x00,0x01, 372 0x00}}, 373 #endif 374 {{0x67,0x4f,0x4f,0x8b,0x57,0x83,0x10,0x3e, /* 0x0a - corrected 640x480-120 */ 375 0xe7,0x8d,0xdf,0xe6,0x11,0x00,0x00,0x05, 376 0x00}}, 377 {{0x63,0x4f,0x4f,0x87,0x56,0x9d,0xfb,0x1f, 378 0xe0,0x83,0xdf,0xdf,0xfc,0x10,0x00,0x01, 379 0x00}}, 380 {{0x65,0x4f,0x4f,0x89,0x57,0x9f,0xfb,0x1f, 381 0xe6,0x8a,0xdf,0xdf,0xfc,0x10,0x00,0x01, /* TW: Corrected VDE, VBE */ 382 0x00}}, 383 {{0x7b,0x63,0x63,0x9f,0x6a,0x93,0x6f,0xf0, 384 0x58,0x8a,0x57,0x57,0x70,0x20,0x00,0x05, 385 0x01}}, 386 {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xf0, 387 0x58,0x8c,0x57,0x57,0x73,0x20,0x00,0x06, 388 0x01}}, 389 {{0x7d,0x63,0x63,0x81,0x6e,0x1d,0x98,0xf0, 390 0x7c,0x82,0x57,0x57,0x99,0x00,0x00,0x06, 391 0x01}}, 392 {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xf0, 393 0x58,0x8b,0x57,0x57,0x70,0x20,0x00,0x06, 394 0x01}}, 395 {{0x7e,0x63,0x63,0x82,0x6b,0x13,0x75,0xf0, 396 0x58,0x8b,0x57,0x57,0x76,0x20,0x00,0x06, 397 0x01}}, 398 {{0x8c,0x63,0x63,0x87,0x72,0x16,0x7e,0xf0, 399 0x59,0x8d,0x57,0x57,0x7f,0x00,0x00,0x06, 400 0x01}}, 401 {{0x7e,0x63,0x63,0x82,0x6c,0x14,0x75,0xe0, 402 0x58,0x0b,0x57,0x57,0x76,0x20,0x00,0x06, 403 0x01}}, 404 {{0x7e,0x63,0x63,0x82,0x6c,0x14,0x75,0xe0, /* 0x14 */ 405 0x58,0x0b,0x57,0x57,0x76,0x20,0x00,0x06, 406 0x01}}, 407 {{0x99,0x7f,0x7f,0x9d,0x84,0x1a,0x96,0x1f, 408 0x7f,0x83,0x7f,0x7f,0x97,0x10,0x00,0x02, 409 0x00}}, 410 {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf5, 411 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, 412 0x01}}, 413 {{0xa1,0x7f,0x7f,0x85,0x86,0x97,0x24,0xf5, 414 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, 415 0x01}}, 416 {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf5, 417 0x00,0x83,0xff,0xff,0x1f,0x10,0x00,0x02, 418 0x01}}, 419 {{0xa7,0x7f,0x7f,0x8b,0x89,0x95,0x26,0xf5, 420 0x00,0x83,0xff,0xff,0x27,0x10,0x00,0x02, 421 0x01}}, 422 {{0x9f,0x7f,0x7f,0x83,0x83,0x93,0x1e,0xf5, /* 0x1a */ 423 0x00,0x84,0xff,0xff,0x1f,0x10,0x00,0x02, 424 0x01}}, 425 {{0xa2,0x7f,0x7f,0x86,0x84,0x94,0x37,0xf5, 426 0x0b,0x82,0xff,0xff,0x38,0x10,0x00,0x02, 427 0x01}}, 428 {{0xcf,0x9f,0x9f,0x93,0xb2,0x01,0x14,0xba, 429 0x00,0x83,0xff,0xff,0x15,0x00,0x00,0x03, 430 0x00}}, 431 {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0x5a, 432 0x00,0x83,0xff,0xff,0x29,0x09,0x00,0x07, 433 0x01}}, 434 {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0x5a, /* 0x1e */ 435 0x00,0x83,0xff,0xff,0x29,0x09,0x00,0x07, 436 0x01}}, 437 {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0x5a, 438 0x00,0x83,0xff,0xff,0x2f,0x09,0x00,0x07, 439 0x01}}, 440 {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, 441 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 442 0x00}}, 443 {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, 444 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 445 0x00}}, 446 {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, 447 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 448 0x00}}, 449 {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, 450 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 451 0x00}}, 452 {{0x09,0xc7,0xc7,0x8d,0xd3,0x0b,0xe0,0x10, /* 36: 1600x1200x85Hz */ 453 0xb0,0x83,0xaf,0xaf,0xe1,0x2f,0x01,0x04, 454 0x00}}, 455 {{0x3f,0xef,0xef,0x83,0xfd,0x1a,0xda,0x1f, /* 37: 1920x1440x60Hz */ 456 0xa0,0x84,0x9f,0x9f,0xdb,0x1f,0x01,0x01, 457 0x00}}, 458 {{0x55,0xff,0xff,0x99,0x0d,0x0c,0x3e,0xba, 459 0x00,0x84,0xff,0xff,0x3f,0x0f,0x41,0x05, 460 0x00}}, 461 #if 0 462 {{0xdc,0x9f,0x9f,0x00,0xab,0x19,0xe6,0xef, /* 0x27: 1280x960-70 - invalid! */ 463 0xc0,0xc3,0xbf,0xbf,0xe7,0x10,0x00,0x07, 464 0x01}}, 465 #endif 466 {{0xdc,0x9f,0x9f,0x80,0xaf,0x9d,0xe6,0xff, /* 0x27: 1280x960-60 - correct */ 467 0xc0,0x83,0xbf,0xbf,0xe7,0x10,0x00,0x07, 468 0x01}}, 469 {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xba, /* 0x28 */ 470 0x27,0x8b,0xdf,0xdf,0x73,0x00,0x00,0x06, 471 0x01}}, 472 {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xba, 473 0x26,0x89,0xdf,0xdf,0x6f,0x00,0x00,0x06, 474 0x01}}, 475 {{0x7f,0x63,0x63,0x82,0x6b,0x13,0x75,0xba, 476 0x29,0x8c,0xdf,0xdf,0x75,0x00,0x00,0x06, 477 0x01}}, 478 {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf1, 479 0xaf,0x85,0x3f,0x3f,0x25,0x30,0x00,0x02, 480 0x01}}, 481 {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf1, 482 0xad,0x81,0x3f,0x3f,0x1f,0x30,0x00,0x02, 483 0x01}}, 484 {{0xa7,0x7f,0x7f,0x88,0x89,0x15,0x26,0xf1, 485 0xb1,0x85,0x3f,0x3f,0x27,0x30,0x00,0x02, 486 0x01}}, 487 {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0xc4, 488 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, 489 0x01}}, 490 {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0xd4, 491 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, 492 0x01}}, 493 {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0xd4, 494 0x7d,0x81,0xcf,0xcf,0x2f,0x21,0x00,0x07, 495 0x01}}, 496 {{0x6b,0x59,0x59,0x8f,0x5e,0x8c,0x0b,0x3e, 497 0xe9,0x8b,0xdf,0xe7,0x04,0x00,0x00,0x05, 498 0x00}}, 499 {{0x7b,0x59,0x63,0x9f,0x6a,0x93,0x6f,0xf0, /* 0x32 */ 500 0x58,0x8a,0x3f,0x57,0x70,0x20,0x00,0x05, 501 0x01}}, 502 {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x1e,0xf1, /* 0x33 - 1024x600 */ 503 0xae,0x85,0x57,0x57,0x1f,0x30,0x00,0x02, 504 0x01}}, 505 {{0xa3,0x8f,0x8f,0x97,0x96,0x97,0x24,0xf5, /* 0x34 - 1152x768 - corrected */ 506 0x02,0x88,0xff,0xff,0x25,0x10,0x00,0x02, 507 0x01}}, 508 {{0x7f,0x63,0x63,0x83,0x6c,0x1c,0x72,0xba, /* 0x35 */ 509 0x27,0x8b,0xdf,0xdf,0x73,0x00,0x00,0x06, 510 0x01}}, /* 0x35 */ 511 {{0x7f,0x63,0x63,0x83,0x69,0x13,0x6f,0xba, 512 0x26,0x89,0xdf,0xdf,0x6f,0x00,0x00,0x06, 513 0x01}}, /* 0x36 */ 514 {{0x7f,0x63,0x63,0x82,0x6b,0x13,0x75,0xba, 515 0x29,0x8c,0xdf,0xdf,0x75,0x00,0x00,0x06, 516 0x01}}, /* 0x37 */ 517 {{0xa3,0x7f,0x7f,0x87,0x86,0x97,0x24,0xf1, 518 0xaf,0x85,0x3f,0x3f,0x25,0x30,0x00,0x02, 519 0x01}}, /* 0x38 */ 520 {{0x9f,0x7f,0x7f,0x83,0x85,0x91,0x1e,0xf1, 521 0xad,0x81,0x3f,0x3f,0x1f,0x30,0x00,0x02, 522 0x01}}, /* 0x39 */ 523 {{0xa7,0x7f,0x7f,0x88,0x89,0x95,0x26,0xf1, /* 95 was 15 - illegal HBE! */ 524 0xb1,0x85,0x3f,0x3f,0x27,0x30,0x00,0x02, 525 0x01}}, /* 0x3a */ 526 {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x28,0xc4, 527 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, 528 0x01}}, /* 0x3b */ 529 {{0xce,0x9f,0x9f,0x92,0xa5,0x17,0x28,0xd4, 530 0x7a,0x8e,0xcf,0xcf,0x29,0x21,0x00,0x07, 531 0x01}}, /* 0x3c */ 532 {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0x2e,0xd4, 533 0x7d,0x81,0xcf,0xcf,0x2f,0x21,0x00,0x07, 534 0x01}}, /* 0x3d */ 535 {{0xc3,0x8f,0x8f,0x87,0x9b,0x0b,0x82,0xef, /* 1152x864-75 */ 536 0x60,0x83,0x5f,0x5f,0x83,0x10,0x00,0x07, 537 0x01}}, /* 0x3e */ 538 {{0x86,0x69,0x69,0x8A,0x74,0x06,0x8C,0x15, /* 848x480-38i */ 539 0x4F,0x83,0xEF,0xEF,0x8D,0x30,0x00,0x02, 540 0x00}}, /* 0x3f */ 541 {{0x83,0x69,0x69,0x87,0x6f,0x1d,0x03,0x3E, /* 848x480-60 */ 542 0xE5,0x8d,0xDF,0xe4,0x04,0x00,0x00,0x06, 543 0x00}}, /* 0x40 */ 544 {{0x86,0x6A,0x6A,0x8A,0x74,0x06,0x8C,0x15, /* 856x480-38i */ 545 0x4F,0x83,0xEF,0xEF,0x8D,0x30,0x00,0x02, 546 0x00}}, /* 0x41 */ 547 {{0x81,0x6A,0x6A,0x85,0x70,0x00,0x0F,0x3E, /* 856x480-60 */ 548 0xEB,0x8E,0xDF,0xDF,0x10,0x00,0x00,0x02, 549 0x00}}, /* 0x42 */ 550 {{0xdd,0xa9,0xa9,0x81,0xb4,0x97,0x26,0xfd, /* 1360x768-60 */ 551 0x01,0x8d,0xff,0x00,0x27,0x10,0x00,0x03, 552 0x01}}, /* 0x43 */ 553 {{0xd9,0x8f,0x8f,0x9d,0xba,0x0a,0x8a,0xff, /* 1152x864-84 */ 554 0x60,0x8b,0x5f,0x5f,0x8b,0x10,0x00,0x03, 555 0x01}}, /* 0x44 */ 556 {{0xd3,0x9f,0x9f,0x97,0xab,0x1f,0xf1,0xff, /* 1280x960-85 */ 557 0xc0,0x83,0xbf,0xbf,0xf2,0x10,0x00,0x07, 558 0x01}}, /* 0x45 */ 559 {{0xce,0x9f,0x9f,0x92,0xa9,0x17,0x20,0xf5, /* 1280x768-60 */ 560 0x03,0x88,0xff,0xff,0x21,0x10,0x00,0x07, 561 0x01}}, /* 0x46 */ 562 {{0x7b,0x5f,0x63,0x9f,0x6a,0x93,0x6f,0xf0, /* 768x576 */ 563 0x58,0x8a,0x3f,0x57,0x70,0x20,0x00,0x05, 564 0x01}}, /* 0x47 */ 565 {{0xce,0xa9,0xa9,0x92,0xb1,0x07,0x28,0x52, /* 1360x1024 (Barco iQ Pro R300) */ 566 0x02,0x8e,0xff,0x00,0x29,0x0d,0x00,0x03, 567 0x00}} /* 0x48 */ 568 }; 569 570 static const SiS_MCLKDataStruct SiS300_MCLKData_630[] = 571 { 572 { 0x5a,0x64,0x80, 66}, 573 { 0xb3,0x45,0x80, 83}, 574 { 0x37,0x61,0x80,100}, 575 { 0x37,0x22,0x80,133}, 576 { 0x37,0x61,0x80,100}, 577 { 0x37,0x61,0x80,100}, 578 { 0x37,0x61,0x80,100}, 579 { 0x37,0x61,0x80,100} 580 }; 581 582 static const SiS_MCLKDataStruct SiS300_MCLKData_300[] = 583 { 584 { 0x68,0x43,0x80,125}, 585 { 0x68,0x43,0x80,125}, 586 { 0x68,0x43,0x80,125}, 587 { 0x37,0x61,0x80,100}, 588 { 0x37,0x61,0x80,100}, 589 { 0x37,0x61,0x80,100}, 590 { 0x37,0x61,0x80,100}, 591 { 0x37,0x61,0x80,100} 592 }; 593 594 static SiS_VCLKDataStruct SiS300_VCLKData[] = 595 { 596 { 0x1b,0xe1, 25}, /* 0x00 */ 597 { 0x4e,0xe4, 28}, /* 0x01 */ 598 { 0x57,0xe4, 32}, /* 0x02 */ 599 { 0xc3,0xc8, 36}, /* 0x03 */ 600 { 0x42,0xc3, 40}, /* 0x04 */ 601 { 0x5d,0xc4, 45}, /* 0x05 */ 602 { 0x52,0x65, 50}, /* 0x06 */ 603 { 0x53,0x65, 50}, /* 0x07 */ 604 { 0x6d,0x66, 56}, /* 0x08 */ 605 { 0x5a,0x64, 65}, /* 0x09 */ 606 { 0x46,0x44, 68}, /* 0x0a */ 607 { 0x3e,0x43, 75}, /* 0x0b */ 608 { 0x6d,0x46, 76}, /* 0x0c */ /* 800x600 | LVDS_2(CH), MITAC(CH); - 730, A901(301B): 0xb1,0x46, 76 */ 609 { 0x41,0x43, 79}, /* 0x0d */ 610 { 0x31,0x42, 79}, /* 0x0e */ 611 { 0x46,0x25, 85}, /* 0x0f */ 612 { 0x78,0x29, 87}, /* 0x10 */ 613 { 0x62,0x44, 95}, /* 0x11 */ 614 { 0x2b,0x22,105}, /* 0x12 */ 615 { 0x49,0x24,106}, /* 0x13 */ 616 { 0xc3,0x28,108}, /* 0x14 */ 617 { 0x3c,0x23,109}, /* 0x15 */ 618 { 0xf7,0x2c,132}, /* 0x16 */ 619 { 0xd4,0x28,136}, /* 0x17 */ 620 { 0x41,0x05,158}, /* 0x18 */ 621 { 0x43,0x05,162}, /* 0x19 */ 622 { 0xe1,0x0f,175}, /* 0x1a */ 623 { 0xfc,0x12,189}, /* 0x1b */ 624 { 0xde,0x26,194}, /* 0x1c */ 625 { 0x54,0x05,203}, /* 0x1d */ 626 { 0x3f,0x03,230}, /* 0x1e */ 627 { 0x30,0x02,234}, /* 0x1f */ 628 { 0x24,0x01,266}, /* 0x20 */ 629 { 0x52,0x2a, 54}, /* 0x21 */ /* 301 TV */ 630 { 0x52,0x6a, 27}, /* 0x22 */ /* 301 TV */ 631 { 0x62,0x24, 70}, /* 0x23 */ /* 301 TV */ 632 { 0x62,0x64, 70}, /* 0x24 */ /* 301 TV */ 633 { 0xa8,0x4c, 30}, /* 0x25 */ /* 301 TV */ 634 { 0x20,0x26, 33}, /* 0x26 */ /* 301 TV */ 635 { 0x31,0xc2, 39}, /* 0x27 */ 636 { 0xbf,0xc8, 35}, /* 0x28 */ /* 856x480 */ 637 { 0x60,0x36, 30}, /* 0x29 */ /* CH/UNTSC TEXT | LVDS_2(CH) - 730, A901(301B), Mitac(CH): 0xe0, 0xb6, 30 */ 638 { 0x40,0x4a, 28}, /* 0x2a */ /* CH-TV */ 639 { 0x9f,0x46, 44}, /* 0x2b */ /* CH-TV */ 640 { 0x97,0x2c, 26}, /* 0x2c */ /* CH-TV */ 641 { 0x44,0xe4, 25}, /* 0x2d */ /* CH-TV */ 642 { 0x7e,0x32, 47}, /* 0x2e */ /* CH-TV */ 643 { 0x8a,0x24, 31}, /* 0x2f */ /* CH/PAL TEXT | LVDS_2(CH), Mitac(CH) - 730, A901(301B): 0x57, 0xe4, 31 */ 644 { 0x97,0x2c, 26}, /* 0x30 */ /* CH-TV */ 645 { 0xce,0x3c, 39}, /* 0x31 */ /* CH-TV */ 646 { 0x52,0x4a, 36}, /* 0x32 */ /* CH/PAL 800x600 5/6 */ 647 { 0x34,0x61, 95}, /* 0x33 */ 648 { 0x78,0x27,108}, /* 0x34 */ /* Replacement for index 0x14 for 630 (?) */ 649 { 0xce,0x25,189}, /* 0x35 */ /* Replacement for index 0x1b for 730 (and 540?) */ 650 { 0x45,0x6b, 21}, /* 0x36 */ /* Chrontel SuperOverscan */ 651 { 0x52,0xe2, 49}, /* 0x37 */ /* 16:9 modes */ 652 { 0x2b,0x61, 78}, /* 0x38 */ /* 16:9 modes */ 653 { 0x70,0x44,108}, /* 0x39 */ /* 16:9 modes */ 654 { 0x54,0x42,135}, /* 0x3a */ /* 16:9 modes */ 655 { 0x41,0x22,157}, /* 0x3b */ /* 16:9 modes */ 656 { 0x52,0x07,149}, /* 0x3c */ /* 1280x960-85 */ 657 { 0x62,0xc6, 34}, /* 0x3d */ /* 848x480-60 */ 658 { 0x30,0x23, 88}, /* 0x3e */ /* 1360x768-60 */ 659 #if 0 660 { 0x3f,0x64, 46}, /* 0x3f */ /* 640x480-100 */ 661 #endif 662 { 0x70,0x29, 81}, /* 0x3f */ /* 1280x768-60 */ 663 { 0x72,0x2a, 76}, /* 0x40 */ /* test for SiS730 */ 664 { 0x15,0x21, 79}, /* 0x41 */ /* test for SiS730 */ 665 { 0xa1,0x42,108}, /* 0x42 */ /* 1280x960 LCD */ 666 { 0x37,0x61,100}, /* 0x43 */ /* 1280x960 LCD */ 667 { 0xe3,0x9a,106}, /* 0x44 */ /* 1360x1024 - special for Barco iQ R300 */ 668 { 0xe2,0x46,135}, /* 0x45 */ /* 1280x1024-75, better clock for VGA2 */ 669 { 0, 0, 0} /* 0x46 custom (will be filled out) */ 670 }; 671 672 #ifndef LINUX_XF86 673 static UCHAR SiS300_SR07 = 0x10; 674 #endif 675 676 static const DRAM4Type SiS300_SR15[8] = 677 { 678 {0x01,0x09,0xa3,0x00}, 679 {0x43,0x43,0x43,0x00}, 680 {0x1e,0x1e,0x1e,0x00}, 681 {0x2a,0x2a,0x2a,0x00}, 682 {0x06,0x06,0x06,0x00}, 683 {0x00,0x00,0x00,0x00}, 684 {0x00,0x00,0x00,0x00}, 685 {0x00,0x00,0x00,0x00} 686 }; 687 688 #ifndef LINUX_XF86 689 static UCHAR SiS300_SR1F = 0x00; 690 static UCHAR SiS300_SR21 = 0x16; 691 static UCHAR SiS300_SR22 = 0xb2; 692 static UCHAR SiS300_SR23 = 0xf6; 693 static UCHAR SiS300_SR24 = 0x0d; 694 static UCHAR SiS300_SR25[] = {0x0,0x0}; 695 static UCHAR SiS300_SR31 = 0x00; 696 static UCHAR SiS300_SR32 = 0x11; 697 static UCHAR SiS300_SR33 = 0x00; 698 static UCHAR SiS300_CRT2Data_1_2 = 0x40; 699 static UCHAR SiS300_CRT2Data_4_D = 0x00; 700 static UCHAR SiS300_CRT2Data_4_E = 0x00; 701 static UCHAR SiS300_CRT2Data_4_10 = 0x80; 702 703 static const USHORT SiS300_RGBSenseData = 0xd1; 704 static const USHORT SiS300_VideoSenseData = 0xb3; 705 static const USHORT SiS300_YCSenseData = 0xb9; 706 static const USHORT SiS300_RGBSenseData2 = 0x0190; 707 static const USHORT SiS300_VideoSenseData2 = 0x0174; 708 static const USHORT SiS300_YCSenseData2 = 0x016b; 709 710 static const DRAM4Type SiS300_CR40[5]; 711 712 static UCHAR SiS300_CR49[2]; 713 #endif 714 715 static const SiS_PanelDelayTblStruct SiS300_PanelDelayTbl[] = 716 { 717 {{0x05,0xaa}}, 718 {{0x05,0x14}}, 719 {{0x05,0x36}}, 720 {{0x05,0x14}}, 721 {{0x05,0x14}}, 722 {{0x05,0x14}}, 723 {{0x05,0x90}}, 724 {{0x05,0x90}}, 725 {{0x05,0x14}}, 726 {{0x05,0x14}}, 727 {{0x05,0x14}}, 728 {{0x05,0x14}}, 729 {{0x20,0x80}}, 730 {{0x05,0x14}}, 731 {{0x05,0x40}}, 732 {{0x05,0x60}} 733 }; 734 735 #if 0 736 static const SiS_PanelDelayTblStruct SiS300_PanelDelayTblLVDS[] = 737 { 738 {{0x05,0xaa}}, 739 {{0x05,0x14}}, 740 {{0x05,0x36}}, 741 {{0x05,0x14}}, 742 {{0x05,0x14}}, 743 {{0x05,0x14}}, 744 {{0x05,0x90}}, 745 {{0x05,0x90}}, 746 {{0x05,0x14}}, 747 {{0x05,0x14}}, 748 {{0x05,0x14}}, 749 {{0x05,0x14}}, /* 2.07a (JVC): 14,96 */ 750 {{0x05,0x28}}, /* 2.04.5c: 20, 80 - Clevo (2.04.2c): 05, 28 */ 751 {{0x05,0x14}}, 752 {{0x05,0x14}}, /* Some BIOSes: 05, 40 */ 753 {{0x05,0x60}} 754 }; 755 #endif 756 757 /**************************************************************/ 758 /* SIS VIDEO BRIDGE ----------------------------------------- */ 759 /**************************************************************/ 760 761 static const SiS_LCDDataStruct SiS300_St2LCD1024x768Data[] = 762 { 763 { 62, 25, 800, 546,1344, 806}, 764 { 32, 15, 930, 546,1344, 806}, 765 { 32, 15, 930, 546,1344, 806}, 766 { 104, 45, 945, 496,1344, 806}, 767 { 62, 25, 800, 546,1344, 806}, 768 { 31, 18,1008, 624,1344, 806}, 769 { 1, 1,1344, 806,1344, 806} 770 }; 771 772 static const SiS_LCDDataStruct SiS300_ExtLCD1024x768Data[] = 773 { 774 { 12, 5, 896, 512,1344, 806}, 775 { 12, 5, 896, 510,1344, 806}, 776 { 32, 15,1008, 505,1344, 806}, 777 { 32, 15,1008, 514,1344, 806}, 778 { 12, 5, 896, 500,1344, 806}, 779 { 42, 25,1024, 625,1344, 806}, 780 { 1, 1,1344, 806,1344, 806}, 781 { 12, 5, 896, 500,1344, 806}, 782 { 42, 25,1024, 625,1344, 806}, 783 { 1, 1,1344, 806,1344, 806}, 784 { 12, 5, 896, 500,1344, 806}, 785 { 42, 25,1024, 625,1344, 806}, 786 { 1, 1,1344, 806,1344, 806} 787 }; 788 789 static const SiS_LCDDataStruct SiS300_St2LCD1280x1024Data[] = 790 { 791 { 22, 5, 800, 510,1650,1088}, 792 { 22, 5, 800, 510,1650,1088}, 793 { 176, 45, 900, 510,1650,1088}, 794 { 176, 45, 900, 510,1650,1088}, 795 { 22, 5, 800, 510,1650,1088}, 796 { 13, 5,1024, 675,1560,1152}, 797 { 16, 9,1266, 804,1688,1072}, 798 { 1, 1,1688,1066,1688,1066} 799 }; 800 801 static const SiS_LCDDataStruct SiS300_ExtLCD1280x1024Data[] = 802 { 803 { 211, 60,1024, 501,1688,1066}, 804 { 211, 60,1024, 508,1688,1066}, 805 { 211, 60,1024, 501,1688,1066}, 806 { 211, 60,1024, 508,1688,1066}, 807 { 211, 60,1024, 500,1688,1066}, 808 { 211, 75,1024, 625,1688,1066}, 809 { 211, 120,1280, 798,1688,1066}, 810 { 1, 1,1688,1066,1688,1066} 811 }; 812 813 static const SiS_Part2PortTblStruct SiS300_CRT2Part2_1024x768_1[] = 814 { /* VESA Timing */ 815 {{0x21,0x12,0xbf,0xe4,0xc0,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, 816 {{0x2c,0x12,0x9a,0xae,0x88,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, 817 {{0x21,0x12,0xbf,0xe4,0xc0,0x21,0x45,0x09,0x00,0xa9,0x09,0x04}}, 818 {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, 819 {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}}, 820 {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}}, 821 {{0x22,0x13,0xfe,0x25,0xff,0x21,0x45,0x0a,0x00,0xa9,0x0d,0x04}} 822 }; 823 824 static const SiS_Part2PortTblStruct SiS300_CRT2Part2_1024x768_2[] = 825 { /* Non-VESA */ 826 {{0x28,0x12,0xa3,0xd0,0xaa,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 827 {{0x2c,0x12,0x9a,0xae,0x88,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 828 {{0x28,0x12,0xa3,0xd0,0xaa,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 829 {{0x2c,0x12,0x9a,0xae,0x88,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 830 {{0x28,0x13,0xe7,0x0b,0xe8,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 831 {{0x38,0x18,0x16,0x00,0x00,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, 832 {{0x36,0x13,0x13,0x25,0xff,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}} 833 }; 834 835 static const SiS_Part2PortTblStruct SiS300_CRT2Part2_1024x768_3[] = 836 { 837 {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} 838 }; 839 840 static const SiS_Part2PortTblStruct SiS300_CRT2Part2_1280x1024_1[] = 841 { 842 {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} 843 }; 844 845 static const SiS_Part2PortTblStruct SiS300_CRT2Part2_1280x1024_2[] = 846 { 847 {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} 848 }; 849 850 static const SiS_Part2PortTblStruct SiS300_CRT2Part2_1280x1024_3[] = 851 { 852 {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} 853 }; 854 855 /**************************************************************/ 856 /* LVDS/Chrontel -------------------------------------------- */ 857 /**************************************************************/ 858 859 static const SiS_LVDSDataStruct SiS300_CHTVUPALData[] = 860 { 861 {1008, 625,1008, 625}, 862 {1008, 625,1008, 625}, 863 {1008, 625,1008, 625}, 864 {1008, 625,1008, 625}, 865 { 840, 750, 840, 750}, 866 { 936, 836, 936, 836} 867 }; 868 869 static const SiS_LVDSDataStruct SiS300_CHTVOPALData[] = 870 { 871 {1008, 625,1008, 625}, 872 {1008, 625,1008, 625}, 873 {1008, 625,1008, 625}, 874 {1008, 625,1008, 625}, 875 { 840, 625, 840, 625}, 876 { 960, 750, 960, 750} 877 }; 878 879 static const SiS_LVDSDataStruct SiS300_CHTVSOPALData[] = 880 { 881 {1008, 625,1008, 625}, 882 {1008, 625,1008, 625}, 883 {1008, 625,1008, 625}, 884 {1008, 625,1008, 625}, 885 { 840, 500, 840, 500}, 886 { 944, 625, 944, 625} 887 }; 888 889 890 static const SiS_LVDSDesStruct SiS300_PanelType00_1[] = 891 { 892 { 1059, 626 }, /* 2.08 */ 893 { 1059, 624 }, 894 { 1059, 626 }, 895 { 1059, 624 }, 896 { 1059, 624 }, 897 { 0, 627 }, 898 { 0, 627 }, 899 { 0, 0 }, 900 { 0, 0 } 901 #if 0 902 {0, 626}, 903 {0, 624}, 904 {0, 626}, 905 {0, 624}, 906 {0, 624}, 907 {0, 627}, 908 {0, 627}, 909 {0, 0}, 910 {0, 0} 911 #endif 912 }; 913 914 static const SiS_LVDSDesStruct SiS300_PanelType01_1[] = 915 { 916 { 0, 0 }, /* 2.08 */ 917 { 0, 0 }, 918 { 0, 0 }, 919 { 0, 0 }, 920 { 0, 0 }, 921 { 0, 0 }, 922 { 0, 0 }, 923 { 0, 0 }, 924 { 0, 0 } 925 #if 0 926 {1343, 798}, 927 {1343, 794}, 928 {1343, 798}, 929 {1343, 794}, 930 {1343, 0}, 931 {1343, 0}, 932 { 0, 805}, 933 { 0, 794}, 934 { 0, 0} 935 #endif 936 }; 937 938 static const SiS_LVDSDesStruct SiS300_PanelType02_1[] = 939 { 940 { 1059, 626 }, /* 2.08 */ 941 { 1059, 624 }, 942 { 1059, 626 }, 943 { 1059, 624 }, 944 { 1059, 624 }, 945 { 0, 627 }, 946 { 0, 627 }, 947 { 0, 0 }, 948 { 0, 0 } 949 #if 0 950 {0, 626}, 951 {0, 624}, 952 {0, 626}, 953 {0, 624}, 954 {0, 624}, 955 {0, 627}, 956 {0, 627}, 957 {0, 0}, 958 {0, 0} 959 #endif 960 }; 961 962 static const SiS_LVDSDesStruct SiS300_PanelType03_1[] = 963 { 964 { 8, 436}, 965 { 8, 440}, 966 { 8, 436}, 967 { 8, 440}, 968 { 8, 512}, 969 {1343, 798}, 970 {1343, 794}, 971 {1343, 798}, 972 {1343, 794} 973 }; 974 975 static const SiS_LVDSDesStruct SiS300_PanelType04_1[] = /* 1280x1024 */ 976 { 977 {1343, 798}, 978 {1343, 794}, 979 {1343, 798}, 980 {1343, 794}, 981 {1343, 0}, 982 {1343, 0}, 983 { 0, 805}, 984 { 0, 794}, 985 { 0, 0} 986 }; 987 988 static const SiS_LVDSDesStruct SiS300_PanelType05_1[] = 989 { 990 {1343, 798}, 991 {1343, 794}, 992 {1343, 798}, 993 {1343, 794}, 994 {1343, 0}, 995 {1343, 0}, 996 { 0, 805}, 997 { 0, 794}, 998 { 0, 0} 999 }; 1000 1001 static const SiS_LVDSDesStruct SiS300_PanelType06_1[] = /* Clevo Trumpion 1024x768 */ 1002 { 1003 {1343, 798}, 1004 {1343, 794}, 1005 {1343, 798}, 1006 {1343, 794}, 1007 {1343, 0}, 1008 {1343, 0}, 1009 { 0, 805}, 1010 { 0, 794}, 1011 { 0, 0} 1012 }; 1013 1014 static const SiS_LVDSDesStruct SiS300_PanelType07_1[] = 1015 { 1016 {1343, 798}, 1017 {1343, 794}, 1018 {1343, 798}, 1019 {1343, 794}, 1020 {1343, 0}, 1021 {1343, 0}, 1022 { 0, 805}, 1023 { 0, 794}, 1024 { 0, 0} 1025 }; 1026 1027 static const SiS_LVDSDesStruct SiS300_PanelType08_1[] = 1028 { 1029 {1059, 626}, 1030 {1059, 624}, 1031 {1059, 626}, 1032 {1059, 624}, 1033 {1059, 624}, 1034 { 0, 627}, 1035 { 0, 627}, 1036 { 0, 0}, 1037 { 0, 0} 1038 }; 1039 1040 static const SiS_LVDSDesStruct SiS300_PanelType09_1[] = 1041 { 1042 {1343, 798}, 1043 {1343, 794}, 1044 {1343, 798}, 1045 {1343, 794}, 1046 {1343, 0}, 1047 {1343, 0}, 1048 { 0, 805}, 1049 { 0, 794}, 1050 { 0, 0} 1051 }; 1052 1053 static const SiS_LVDSDesStruct SiS300_PanelType0a_1[] = 1054 { 1055 {1059, 626}, 1056 {1059, 624}, 1057 {1059, 626}, 1058 {1059, 624}, 1059 {1059, 624}, 1060 { 0, 627}, 1061 { 0, 627}, 1062 { 0, 0}, 1063 { 0, 0} 1064 }; 1065 1066 static const SiS_LVDSDesStruct SiS300_PanelType0b_1[] = 1067 { 1068 {1343, 0}, 1069 {1343, 0}, 1070 {1343, 0}, 1071 {1343, 0}, 1072 {1343, 0}, 1073 {1343, 0}, 1074 { 0, 799}, 1075 { 0, 0}, 1076 { 0, 0} 1077 }; 1078 1079 static const SiS_LVDSDesStruct SiS300_PanelType0c_1[] = 1080 { 1081 {1343, 798}, 1082 {1343, 794}, 1083 {1343, 798}, 1084 {1343, 794}, 1085 {1343, 0}, 1086 {1343, 0}, 1087 { 0, 805}, 1088 { 0, 794}, 1089 { 0, 0} 1090 }; 1091 1092 static const SiS_LVDSDesStruct SiS300_PanelType0d_1[] = 1093 { 1094 {1343, 798}, 1095 {1343, 794}, 1096 {1343, 798}, 1097 {1343, 794}, 1098 {1343, 0}, 1099 {1343, 0}, 1100 { 0, 805}, 1101 { 0, 794}, 1102 { 0, 0} 1103 }; 1104 1105 static const SiS_LVDSDesStruct SiS300_PanelType0e_1[] = 1106 { 1107 {1343, 798}, 1108 {1343, 794}, 1109 {1343, 798}, 1110 {1343, 794}, 1111 {1343, 0}, /* 640x480 */ 1112 {1343, 0}, /* 800x600 */ 1113 { 0, 805}, /* 1024x768 */ 1114 { 0, 794}, /* 1280x1024 */ 1115 { 0, 0} /* 1280x960 - not applicable */ 1116 }; 1117 1118 static const SiS_LVDSDesStruct SiS300_PanelType0f_1[] = 1119 { 1120 {1343, 798}, 1121 {1343, 794}, 1122 {1343, 798}, 1123 {1343, 794}, 1124 {1343, 0}, 1125 {1343, 0}, 1126 { 0, 805}, 1127 { 0, 794}, 1128 { 0, 0} 1129 }; 1130 1131 static const SiS_LVDSDesStruct SiS300_PanelType00_2[] = 1132 { 1133 {976, 527}, 1134 {976, 502}, 1135 {976, 527}, 1136 {976, 502}, 1137 {976, 567}, 1138 { 0, 627}, 1139 { 0, 627}, 1140 { 0, 0}, 1141 { 0, 0} 1142 }; 1143 1144 static const SiS_LVDSDesStruct SiS300_PanelType01_2[] = 1145 { 1146 {1152, 622}, 1147 {1152, 597}, 1148 {1152, 622}, 1149 {1152, 597}, 1150 {1152, 662}, 1151 {1232, 722}, 1152 { 0, 805}, 1153 { 0, 794}, 1154 { 0, 0} 1155 }; 1156 1157 static const SiS_LVDSDesStruct SiS300_PanelType02_2[] = 1158 { 1159 {976, 527}, 1160 {976, 502}, 1161 {976, 527}, 1162 {976, 502}, 1163 {976, 567}, 1164 { 0, 627}, 1165 { 0, 627}, 1166 { 0, 0}, 1167 { 0, 0} 1168 }; 1169 1170 static const SiS_LVDSDesStruct SiS300_PanelType03_2[] = 1171 { 1172 {1152, 622}, 1173 {1152, 597}, 1174 {1152, 622}, 1175 {1152, 597}, 1176 {1152, 662}, 1177 {1232, 722}, 1178 { 0, 805}, 1179 {1152, 622}, 1180 {1152, 597} 1181 }; 1182 1183 static const SiS_LVDSDesStruct SiS300_PanelType04_2[] = 1184 { 1185 {1152, 622}, 1186 {1152, 597}, 1187 {1152, 622}, 1188 {1152, 597}, 1189 {1152, 662}, 1190 {1232, 722}, 1191 { 0, 805}, 1192 { 0, 794}, 1193 { 0, 0} 1194 }; 1195 1196 static const SiS_LVDSDesStruct SiS300_PanelType05_2[] = 1197 { 1198 {1152, 622}, 1199 {1152, 597}, 1200 {1152, 622}, 1201 {1152, 597}, 1202 {1152, 662}, 1203 {1232, 722}, 1204 { 0, 805}, 1205 { 0, 794}, 1206 { 0, 0} 1207 }; 1208 1209 static const SiS_LVDSDesStruct SiS300_PanelType06_2[] = 1210 { 1211 {1152, 622}, 1212 {1152, 597}, 1213 {1152, 622}, 1214 {1152, 597}, 1215 {1152, 662}, 1216 {1232, 722}, 1217 { 0, 805}, 1218 { 0, 794}, 1219 { 0, 0} 1220 }; 1221 1222 static const SiS_LVDSDesStruct SiS300_PanelType07_2[] = 1223 { 1224 {1152, 622}, 1225 {1152, 597}, 1226 {1152, 622}, 1227 {1152, 597}, 1228 {1152, 662}, 1229 {1232, 722}, 1230 { 0, 805}, 1231 { 0, 794}, 1232 { 0, 0} 1233 }; 1234 1235 static const SiS_LVDSDesStruct SiS300_PanelType08_2[] = 1236 { 1237 {976, 527}, 1238 {976, 502}, 1239 {976, 527}, 1240 {976, 502}, 1241 {976, 567}, 1242 { 0, 627}, 1243 { 0, 627}, 1244 { 0, 0}, 1245 { 0, 0} 1246 }; 1247 1248 static const SiS_LVDSDesStruct SiS300_PanelType09_2[] = 1249 { 1250 {1152, 622}, 1251 {1152, 597}, 1252 {1152, 622}, 1253 {1152, 597}, 1254 {1152, 662}, 1255 {1232, 722}, 1256 { 0, 805}, 1257 { 0, 794}, 1258 { 0, 0} 1259 }; 1260 1261 static const SiS_LVDSDesStruct SiS300_PanelType0a_2[] = 1262 { 1263 {976, 527}, 1264 {976, 502}, 1265 {976, 527}, 1266 {976, 502}, 1267 {976, 567}, 1268 { 0, 627}, 1269 { 0, 627}, 1270 { 0, 0}, 1271 { 0, 0} 1272 }; 1273 1274 static const SiS_LVDSDesStruct SiS300_PanelType0b_2[] = 1275 { 1276 { 1152, 700}, 1277 { 1152, 675}, 1278 { 1152, 700}, 1279 { 1152, 675}, 1280 { 1152, 740}, 1281 { 1232, 799}, 1282 { 0, 799}, 1283 { 0, 0}, 1284 { 0, 0} 1285 }; 1286 1287 static const SiS_LVDSDesStruct SiS300_PanelType0c_2[] = 1288 { 1289 {1152, 622}, 1290 {1152, 597}, 1291 {1152, 622}, 1292 {1152, 597}, 1293 {1152, 662}, 1294 {1232, 722}, 1295 { 0, 805}, 1296 { 0, 794}, 1297 { 0, 0} 1298 }; 1299 1300 static const SiS_LVDSDesStruct SiS300_PanelType0d_2[] = 1301 { 1302 {1152, 622}, 1303 {1152, 597}, 1304 {1152, 622}, 1305 {1152, 597}, 1306 {1152, 662}, 1307 {1232, 722}, 1308 { 0, 805}, 1309 { 0, 794}, 1310 { 0, 0} 1311 }; 1312 1313 static const SiS_LVDSDesStruct SiS300_PanelType0e_2[] = 1314 { 1315 {1152, 622}, 1316 {1152, 597}, 1317 {1152, 622}, 1318 {1152, 597}, 1319 {1152, 662}, 1320 {1232, 722}, 1321 { 0, 805}, 1322 { 0, 794}, 1323 { 0, 0} 1324 }; 1325 1326 static const SiS_LVDSDesStruct SiS300_PanelType0f_2[] = 1327 { 1328 {1152, 622}, 1329 {1152, 597}, 1330 {1152, 622}, 1331 {1152, 597}, 1332 {1152, 662}, 1333 {1232, 722}, 1334 { 0, 805}, 1335 { 0, 794}, 1336 { 0, 0} 1337 }; 1338 1339 static const SiS_LVDSDesStruct SiS300_PanelTypeNS_1[]= 1340 { 1341 { 0, 0}, 1342 { 0, 0}, 1343 { 0, 0}, 1344 { 0, 0}, 1345 { 0, 0}, 1346 { 0, 0}, 1347 { 0, 805}, 1348 { 0, 0}, 1349 { 0, 0}, 1350 { 0, 0} 1351 }; 1352 1353 static const SiS_LVDSDesStruct SiS300_PanelTypeNS_2[] = 1354 { 1355 { 0 , 0}, 1356 { 0 , 0}, 1357 { 0 , 0}, 1358 { 0 , 0}, 1359 { 0 , 0}, 1360 { 0 , 0}, 1361 { 0 , 0}, 1362 { 0 , 0}, 1363 { 0 , 0}, 1364 { 0 , 0} 1365 }; 1366 1367 /* Custom data for Barco iQ R200/300/400 (BIOS 2.00.07) */ 1368 static const SiS_LVDSDesStruct SiS300_PanelType04_1a[] = /* 1280x1024 (1366x1024) */ 1369 { 1370 {1330, 798}, /* 320x200 */ 1371 {1330, 794}, 1372 {1330, 798}, 1373 {1330, 794}, 1374 {1330, 0}, /* 640x480 / 320x240 */ 1375 {1343, 0}, /* 800x600 / 400x300 */ 1376 { 0, 805}, /* 1024x768 / 512x384 */ 1377 {1688,1066}, /* 1280x1024 */ 1378 { 0, 0} /* 1360x1024 */ 1379 }; 1380 1381 static const SiS_LVDSDesStruct SiS300_PanelType04_2a[] = 1382 { 1383 {1152, 622}, 1384 {1152, 597}, 1385 {1152, 622}, 1386 {1152, 597}, 1387 {1152, 662}, 1388 {1232, 722}, 1389 { 0, 805}, 1390 {1688,1066}, 1391 { 0, 0} 1392 }; 1393 1394 /* Custom data for Barco iQ G200/300/400 (BIOS 2.00.07) */ 1395 static const SiS_LVDSDesStruct SiS300_PanelType04_1b[] = /* 1024x768 */ 1396 { 1397 {1330, 798}, /* 320x200 */ 1398 {1330, 794}, 1399 {1330, 798}, 1400 {1330, 794}, 1401 {1330, 0}, /* 640x480 / 320x240 */ 1402 {1343, 0}, /* 800x600 / 400x300 */ 1403 { 0, 805} /* 1024x768 / 512x384 */ 1404 }; 1405 1406 static const SiS_LVDSDesStruct SiS300_PanelType04_2b[] = 1407 { 1408 {1152, 622}, 1409 {1152, 597}, 1410 {1152, 622}, 1411 {1152, 597}, 1412 {1152, 662}, 1413 {1232, 722}, 1414 { 0, 805} 1415 }; 1416 1417 /* CRT1 CRTC for slave modes */ 1418 1419 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT1800x600_1[] = 1420 { 1421 {{0x65,0x4f,0x89,0x56,0x83,0xaf,0x1f, 1422 0x90,0x85,0x8f,0xab,0x30,0x00,0x05, 1423 0x00 }}, 1424 {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f, 1425 0x5e,0x83,0x5d,0x79,0x10,0x00,0x05, 1426 0x00 }}, 1427 {{0x65,0x4f,0x89,0x56,0x83,0xaf,0x1f, 1428 0x90,0x85,0x8f,0xab,0x30,0x00,0x05, 1429 0x00 }}, 1430 {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f, 1431 0x5e,0x83,0x5d,0x79,0x10,0x00,0x05, 1432 0x00 }}, 1433 {{0x65,0x4f,0x89,0x56,0x83,0x04,0x3e, 1434 0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05, 1435 0x00 }}, 1436 {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 1437 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 1438 0x01 }} 1439 }; 1440 1441 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT1800x600_1_H[] = 1442 { 1443 {{0x30,0x27,0x94,0x2c,0x92,0xaf,0x1f, 1444 0x90,0x85,0x8f,0xab,0x30,0x00,0x04, 1445 0x00 }}, 1446 {{0x30,0x27,0x94,0x2c,0x92,0x83,0x1f, 1447 0x5e,0x83,0x5d,0x79,0x10,0x00,0x04, 1448 0x00 }}, 1449 {{0x30,0x27,0x94,0x2c,0x92,0xaf,0x1f, 1450 0x90,0x85,0x8f,0xab,0x30,0x00,0x04, 1451 0x00 }}, 1452 {{0x30,0x27,0x94,0x2c,0x92,0x83,0x1f, 1453 0x5e,0x83,0x5d,0x79,0x10,0x00,0x04, 1454 0x00 }}, 1455 {{0x30,0x27,0x94,0x2c,0x92,0x04,0x3e, 1456 0xe0,0x85,0xdf,0xfb,0x10,0x00,0x04, 1457 0x00 }}, 1458 {{0x3d,0x31,0x81,0x37,0x1f,0x72,0xf0, 1459 0x58,0x8c,0x57,0x73,0x20,0x00,0x05, 1460 0x01 }} 1461 }; 1462 1463 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT11024x768_1[] = 1464 { 1465 {{0x64,0x4f,0x88,0x54,0x9f,0xc4,0x1f, 1466 0x92,0x89,0x8f,0xb5,0x30,0x00,0x01, 1467 0x00}}, 1468 {{0x64,0x4f,0x88,0x54,0x9f,0x97,0x1f, 1469 0x60,0x87,0x5d,0x83,0x10,0x00,0x01, 1470 0x00}}, 1471 {{0x64,0x4f,0x88,0x54,0x9f,0xc4,0x1f, 1472 0x92,0x89,0x8f,0xb5,0x30,0x00,0x01, 1473 0x00}}, 1474 {{0x64,0x4f,0x88,0x54,0x9f,0x97,0x1f, 1475 0x60,0x87,0x5d,0x83,0x10,0x00,0x01, 1476 0x00}}, 1477 {{0x64,0x4f,0x88,0x54,0x9f,0x04,0x3e, 1478 0xe2,0x89,0xdf,0x05,0x00,0x00,0x01, 1479 0x00}}, 1480 {{0x7e,0x63,0x82,0x68,0x15,0x7c,0xf0, 1481 0x5a,0x8f,0x57,0x7d,0x20,0x00,0x26, 1482 0x01}}, 1483 {{0xa3,0x7f,0x87,0x86,0x97,0x24,0xf5, 1484 0x02,0x88,0xff,0x25,0x10,0x00,0x02, 1485 0x01}} 1486 }; 1487 1488 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT11024x768_1_H[] = 1489 { 1490 {{0x2f,0x27,0x93,0x2b,0x90,0xc4,0x1f, 1491 0x92,0x89,0x8f,0xb5,0x30,0x00,0x44, 1492 0x00 }}, 1493 {{0x2f,0x27,0x93,0x2b,0x90,0x97,0x1f, 1494 0x60,0x87,0x5D,0x83,0x10,0x00,0x44, 1495 0x00}}, 1496 {{0x2f,0x27,0x93,0x2b,0x90,0xc4,0x1f, 1497 0x92,0x89,0x8f,0xb5,0x30,0x00,0x44, 1498 0x00}}, 1499 {{0x2f,0x27,0x93,0x2b,0x90,0x97,0x1f, 1500 0x60,0x87,0x5D,0x83,0x10,0x00,0x44, 1501 0x00}}, 1502 {{0x2f,0x27,0x93,0x2b,0x90,0x04,0x3e, 1503 0xE2,0x89,0xdf,0x05,0x00,0x00,0x44, 1504 0x00}}, 1505 {{0x3c,0x31,0x80,0x35,0x1c,0x7c,0xf0, 1506 0x5A,0x8F,0x57,0x7D,0x20,0x00,0x55, 1507 0x01}}, 1508 {{0x4f,0x3F,0x93,0x45,0x0D,0x24,0xf5, 1509 0x02,0x88,0xff,0x25,0x10,0x00,0x01, 1510 0x01 }} 1511 1512 #if 0 1513 {{0x37,0x27,0x9B,0x2b,0x94,0xc4,0x1f, 1514 0x92,0x89,0x8f,0xb5,0x30,0x00,0x44, 1515 0x00 }}, 1516 {{0x37,0x27,0x9B,0x2b,0x94,0x97,0x1f, 1517 0x60,0x87,0x5D,0x83,0x01,0x00,0x44, 1518 0x00}}, 1519 {{0x37,0x27,0x9B,0x2b,0x94,0xc4,0x1f, 1520 0x92,0x89,0x8f,0xb5,0x30,0x00,0x44, 1521 0x00}}, 1522 {{0x37,0x27,0x9B,0x2b,0x94,0x97,0x1f, 1523 0x60,0x87,0x5D,0x83,0x01,0x00,0x44, 1524 0x00}}, 1525 {{0x37,0x27,0x9B,0x2b,0x94,0x04,0x3e, 1526 0xE2,0x89,0xDf,0x05,0x00,0x00,0x44, 1527 0x00}}, 1528 {{0x41,0x31,0x85,0x35,0x1d,0x7c,0xf0, 1529 0x5A,0x8F,0x57,0x7D,0x20,0x00,0x55, 1530 0x01}}, 1531 {{0x4f,0x3F,0x93,0x45,0x0D,0x24,0xf5, 1532 0x02,0x88,0xFf,0x25,0x10,0x00,0x01, 1533 0x01 }} 1534 #endif 1535 }; 1536 1537 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT11280x1024_1[] = 1538 { 1539 {{0x63,0x4f,0x87,0x54,0x9f,0xb4,0x1f, 1540 0x92,0x89,0x8f,0xb5,0x30,0x00,0x01, 1541 0x00 }}, 1542 {{0x63,0x4f,0x87,0x54,0x9f,0x82,0x1f, 1543 0x60,0x87,0x5d,0x83,0x10,0x00,0x01, 1544 0x00 }}, 1545 {{0x63,0x4f,0x87,0x54,0x9f,0xb4,0x1f, 1546 0x92,0x89,0x8f,0xb5,0x30,0x00,0x01, 1547 0x00 }}, 1548 {{0x63,0x4f,0x87,0x54,0x9f,0x82,0x1f, 1549 0x60,0x87,0x5d,0x83,0x10,0x00,0x01, 1550 0x00 }}, 1551 {{0x63,0x4f,0x87,0x54,0x9f,0x04,0x3e, 1552 0xe2,0x89,0xdf,0x05,0x00,0x00,0x01, 1553 0x00 }}, 1554 {{0x7e,0x63,0x82,0x68,0x15,0x7c,0xf0, 1555 0x5a,0x8f,0x57,0x7d,0x20,0x00,0x26, 1556 0x01 }}, 1557 {{0xa3,0x7f,0x87,0x86,0x97,0x24,0xf5, 1558 0x02,0x88,0xff,0x25,0x10,0x00,0x02, 1559 0x01 }} 1560 }; 1561 1562 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT11280x1024_1_H[] = 1563 { 1564 {{0x2f,0x27,0x93,0x2b,0x90,0xb4,0x1f, 1565 0x92,0x89,0x8f,0xb5,0x30,0x00,0x04, 1566 0x00 }}, 1567 {{0x2f,0x27,0x93,0x2b,0x90,0x82,0x1f, 1568 0x60,0x87,0x5d,0x83,0x10,0x00,0x04, 1569 0x00 }}, 1570 {{0x2f,0x27,0x93,0x2b,0x90,0xb4,0x1f, 1571 0x92,0x89,0x8f,0xb5,0x30,0x00,0x04, 1572 0x00 }}, 1573 {{0x2f,0x27,0x93,0x2b,0x90,0x82,0x1f, 1574 0x60,0x87,0x5d,0x83,0x10,0x00,0x04, 1575 0x00 }}, 1576 {{0x2f,0x27,0x93,0x2b,0x90,0x04,0x3e, 1577 0xe2,0x89,0xdf,0x05,0x00,0x00,0x04, 1578 0x00 }}, 1579 {{0x3c,0x31,0x80,0x35,0x1c,0x7c,0xf0, 1580 0x5a,0x8f,0x57,0x7d,0x20,0x00,0x55, 1581 0x01 }}, 1582 {{0x4f,0x3f,0x93,0x45,0x0d,0x24,0xf5, 1583 0x02,0x88,0xff,0x25,0x10,0x00,0x01, 1584 0x01 }} 1585 }; 1586 1587 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT1800x600_2[] = 1588 { 1589 {{0x7f,0x4f,0x83,0x62,0x12,0x72,0x3e, 1590 0xf4,0x88,0x8f,0x73,0x20,0x00,0x06, 1591 0x00 }}, 1592 {{0x7f,0x4f,0x83,0x62,0x12,0x72,0x3e, 1593 0xdb,0x8f,0x5d,0x73,0x20,0x00,0x06, 1594 0x00 }}, 1595 {{0x7f,0x4f,0x83,0x62,0x12,0x72,0x3e, 1596 0xf4,0x88,0x8f,0x73,0x20,0x00,0x06, 1597 0x00 }}, 1598 {{0x7f,0x4f,0x83,0x62,0x12,0x72,0x3e, 1599 0xdb,0x8f,0x5d,0x73,0x20,0x00,0x06, 1600 0x00 }}, 1601 {{0x7f,0x4f,0x83,0x62,0x12,0x72,0xba, 1602 0x1c,0x80,0xdf,0x73,0x00,0x00,0x06, 1603 0x00 }}, 1604 {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 1605 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 1606 0x01 }} 1607 }; 1608 1609 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT1800x600_2_H[] = 1610 { 1611 {{0x3d,0x27,0x81,0x32,0x1a,0x72,0x3e, 1612 0xf4,0x88,0x8f,0x73,0x20,0x00,0x05, 1613 0x00 }}, 1614 {{0x3d,0x27,0x81,0x32,0x1a,0x72,0x3e, 1615 0xdb,0x8f,0x5d,0x73,0x20,0x00,0x05, 1616 0x00 }}, 1617 {{0x3d,0x27,0x81,0x32,0x1a,0x72,0x3e, 1618 0xf4,0x88,0x8f,0x73,0x20,0x00,0x05, 1619 0x00 }}, 1620 {{0x3d,0x27,0x81,0x3a,0x1a,0x72,0x3e, 1621 0xdb,0x8f,0x5d,0x73,0x20,0x00,0x05, 1622 0x00 }}, 1623 {{0x3d,0x27,0x81,0x32,0x1a,0x72,0xba, 1624 0x1c,0x80,0xdf,0x73,0x00,0x00,0x05, 1625 0x00 }}, 1626 {{0x3d,0x31,0x81,0x37,0x1f,0x72,0xf0, 1627 0x58,0x8c,0x57,0x73,0x20,0x00,0x05, 1628 0x01 }} 1629 }; 1630 1631 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT11024x768_2[] = 1632 { 1633 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1634 0x4a,0x80,0x8f,0x25,0x30,0x00,0x06, 1635 0x00 }}, 1636 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1637 0x31,0x87,0x5d,0x25,0x30,0x00,0x06, 1638 0x00 }}, 1639 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1640 0x4a,0x80,0x8f,0x25,0x30,0x00,0x06, 1641 0x00 }}, 1642 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1643 0x31,0x87,0x5d,0x25,0x30,0x00,0x06, 1644 0x00 }}, 1645 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1646 0x72,0x88,0xdf,0x25,0x30,0x00,0x06, 1647 0x00 }}, 1648 {{0xa3,0x63,0x87,0x78,0x89,0x24,0xf1, 1649 0xae,0x84,0x57,0x25,0x30,0x00,0x02, 1650 0x01 }}, 1651 {{0xa3,0x7f,0x87,0x86,0x97,0x24,0xf5, 1652 0x02,0x88,0xff,0x25,0x10,0x00,0x02, 1653 0x01 }} 1654 }; 1655 1656 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT11024x768_2_H[] = 1657 { 1658 {{0x4f,0x27,0x93,0x39,0x01,0x24,0xbb, 1659 0x4a,0x80,0x8f,0x25,0x30,0x00,0x01, 1660 0x00 }}, 1661 {{0x4f,0x27,0x93,0x39,0x01,0x24,0xbb, 1662 0x31,0x87,0x5d,0x25,0x30,0x00,0x01, 1663 0x00 }}, 1664 {{0x4f,0x27,0x93,0x39,0x01,0x24,0xbb, 1665 0x4a,0x80,0x8f,0x25,0x30,0x00,0x01, 1666 0x00 }}, 1667 {{0x4f,0x27,0x93,0x39,0x01,0x24,0xbb, 1668 0x31,0x87,0x5d,0x25,0x30,0x00,0x01, 1669 0x00 }}, 1670 {{0x4f,0x27,0x93,0x39,0x01,0x24,0xbb, 1671 0x72,0x88,0xdf,0x25,0x30,0x00,0x01, 1672 0x00 }}, 1673 {{0x4f,0x31,0x93,0x3e,0x06,0x24,0xf1, 1674 0xae,0x84,0x57,0x25,0x30,0x00,0x01, 1675 0x01 }}, 1676 {{0x4f,0x3f,0x93,0x45,0x0d,0x24,0xf5, 1677 0x02,0x88,0xff,0x25,0x10,0x00,0x01, 1678 0x01 }} 1679 }; 1680 1681 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT11280x1024_2[] = 1682 { 1683 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1684 0x4a,0x80,0x8f,0x25,0x30,0x00,0x06, 1685 0x00 }}, 1686 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1687 0x31,0x87,0x5d,0x25,0x30,0x00,0x06, 1688 0x00 }}, 1689 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1690 0x4a,0x80,0x8f,0x25,0x30,0x00,0x06, 1691 0x00 }}, 1692 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1693 0x31,0x87,0x5d,0x25,0x30,0x00,0x06, 1694 0x00 }}, 1695 {{0xa3,0x4f,0x87,0x6e,0x9f,0x24,0xbb, 1696 0x72,0x88,0xdf,0x25,0x30,0x00,0x06, 1697 0x00 }}, 1698 {{0xa3,0x63,0x87,0x78,0x89,0x24,0xf1, 1699 0xae,0x84,0x57,0x25,0x30,0x00,0x02, 1700 0x01 }}, 1701 {{0xa3,0x7f,0x87,0x86,0x97,0x24,0xf5, 1702 0x02,0x88,0xff,0x25,0x10,0x00,0x02, 1703 0x01 }} 1704 }; 1705 1706 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT11280x1024_2_H[] = 1707 { 1708 {{0x4f,0x27,0x93,0x39,0x81,0x24,0xbb, 1709 0x4a,0x80,0x8f,0x25,0x30,0x00,0x01, 1710 0x00 }}, 1711 {{0x4f,0x27,0x93,0x39,0x81,0x24,0xbb, 1712 0x31,0x87,0x5d,0x25,0x30,0x00,0x01, 1713 0x00 }}, 1714 {{0x4f,0x27,0x93,0x39,0x81,0x24,0xbb, 1715 0x4a,0x80,0x8f,0x25,0x30,0x00,0x01, 1716 0x00 }}, 1717 {{0x4f,0x27,0x93,0x39,0x81,0x24,0xbb, 1718 0x31,0x87,0x5d,0x25,0x30,0x00,0x01, 1719 0x00 }}, 1720 {{0x4f,0x27,0x93,0x39,0x81,0x24,0xbb, 1721 0x72,0x88,0xdf,0x25,0x30,0x00,0x01, 1722 0x00 }}, 1723 {{0x4f,0x31,0x93,0x3e,0x86,0x24,0xf1, 1724 0xae,0x84,0x57,0x25,0x30,0x00,0x01, 1725 0x01 }}, 1726 {{0x4f,0x3f,0x93,0x45,0x0d,0x24,0xf5, 1727 0x02,0x88,0xff,0x25,0x10,0x00,0x01, 1728 0x01}} 1729 }; 1730 1731 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT1XXXxXXX_1[] = 1732 { 1733 {{0x5f,0x4f,0x82,0x55,0x81,0xbf,0x1f, 1734 0x9c,0x8e,0x96,0xb9,0x30,0x00,0x05, 1735 0x00}}, 1736 {{0x5f,0x4f,0x82,0x55,0x81,0xbf,0x1f, 1737 0x9c,0x8e,0x96,0xb9,0x30,0x00,0x05, 1738 0x00}}, 1739 {{0x5f,0x4f,0x82,0x55,0x81,0xbf,0x1f, 1740 0x9c,0x8e,0x96,0xb9,0x30,0x00,0x05, 1741 0x00}}, 1742 {{0x5f,0x4f,0x82,0x55,0x81,0xbf,0x1f, 1743 0x9c,0x8e,0x96,0xb9,0x30,0x00,0x05, 1744 0x00}}, 1745 {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 1746 0xe9,0x8b,0xe7,0x04,0x00,0x00,0x05, 1747 0x00}}, 1748 {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 1749 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 1750 0x01}}, 1751 {{0xa3,0x7f,0x87,0x86,0x97,0x24,0xf5, 1752 0x02,0x88,0xff,0x25,0x10,0x00,0x02, 1753 0x01}}, 1754 {{0xce,0x9f,0x92,0xa8,0x14,0x28,0x5a, 1755 0x00,0x84,0xff,0x29,0x09,0x00,0x07, 1756 0x01}}, 1757 {{0xce,0x9f,0x92,0xa9,0x17,0x24,0xf5, 1758 0x02,0x88,0xff,0x25,0x10,0x00,0x07, 1759 0x01}} 1760 }; 1761 1762 static const SiS_LVDSCRT1DataStruct SiS300_LVDSCRT1XXXxXXX_1_H[] = 1763 { 1764 {{0x38,0x27,0x9c,0x2c,0x80,0xbf,0x1f, 1765 0x9c,0x8e,0x96,0xb9,0x30,0x00,0x00, 1766 0x00}}, 1767 {{0x38,0x27,0x9c,0x2c,0x80,0xbf,0x1f, 1768 0x9c,0x8e,0x96,0xb9,0x30,0x00,0x00, 1769 0x00}}, 1770 {{0x38,0x27,0x9c,0x2c,0x80,0xbf,0x1f, 1771 0x9c,0x8e,0x96,0xb9,0x30,0x00,0x00, 1772 0x00}}, 1773 {{0x38,0x27,0x9c,0x2c,0x80,0xbf,0x1f, 1774 0x9c,0x8e,0x96,0xb9,0x30,0x00,0x00, 1775 0x00}}, 1776 {{0x38,0x27,0x9c,0x2c,0x80,0x0b,0x3e, 1777 0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00, 1778 0x00}}, 1779 {{0x4d,0x31,0x91,0x3b,0x03,0x72,0xf0, 1780 0x58,0x8c,0x57,0x73,0x20,0x00,0x01, 1781 0x01}}, 1782 {{0x63,0x3f,0x87,0x4a,0x92,0x24,0xf5, 1783 0x02,0x88,0xff,0x25,0x10,0x00,0x01, 1784 0x01}} 1785 }; 1786 1787 1788 static const SiS_LVDSCRT1DataStruct SiS300_CHTVCRT1UNTSC[] = 1789 { 1790 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 1791 0xe8,0x84,0x8f,0x57,0x20,0x00,0x01, 1792 0x00 }}, 1793 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 1794 0xd0,0x82,0x5d,0x57,0x00,0x00,0x01, 1795 0x00 }}, 1796 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 1797 0xe8,0x84,0x8f,0x57,0x20,0x00,0x01, 1798 0x00 }}, 1799 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 1800 0xd0,0x82,0x5d,0x57,0x00,0x00,0x01, 1801 0x00 }}, 1802 {{0x5d,0x4f,0x81,0x53,0x9c,0x56,0xba, 1803 0x18,0x84,0xdf,0x57,0x00,0x00,0x01, 1804 0x00 }}, 1805 {{0x80,0x63,0x84,0x6c,0x17,0xec,0xf0, 1806 0x90,0x8c,0x57,0xed,0x20,0x00,0x06, 1807 0x01 }} 1808 }; 1809 1810 static const SiS_LVDSCRT1DataStruct SiS300_CHTVCRT1ONTSC[] = 1811 { 1812 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 1813 0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01, 1814 0x00 }}, 1815 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 1816 0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01, 1817 0x00 }}, 1818 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 1819 0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01, 1820 0x00 }}, 1821 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 1822 0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01, 1823 0x00 }}, 1824 {{0x5d,0x4f,0x81,0x56,0x9c,0x0b,0x3e, 1825 0xe8,0x84,0xdf,0x0c,0x00,0x00,0x01, 1826 0x00 }}, 1827 {{0x7d,0x63,0x81,0x6a,0x16,0xba,0xf0, 1828 0x7f,0x86,0x57,0xbb,0x00,0x00,0x06, 1829 0x01 }} 1830 }; 1831 1832 static const SiS_LVDSCRT1DataStruct SiS300_CHTVCRT1UPAL[] = 1833 { 1834 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1835 0xf8,0x83,0x8f,0x70,0x20,0x00,0x05, 1836 0x00 }}, 1837 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1838 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 1839 0x00 }}, 1840 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1841 0xf8,0x83,0x8f,0x70,0x20,0x00,0x05, 1842 0x00 }}, 1843 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1844 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 1845 0x00 }}, 1846 {{0x64,0x4f,0x88,0x55,0x80,0xec,0xba, 1847 0x50,0x84,0xdf,0xed,0x00,0x00,0x05, 1848 0x00 }}, 1849 {{0x70,0x63,0x94,0x68,0x8d,0x42,0xf1, 1850 0xc8,0x8c,0x57,0xe9,0x20,0x00,0x05, 1851 0x01 }} 1852 }; 1853 1854 static const SiS_LVDSCRT1DataStruct SiS300_CHTVCRT1OPAL[] = 1855 { 1856 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1857 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, 1858 0x00 }}, 1859 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1860 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 1861 0x00 }}, 1862 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1863 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, 1864 0x00 }}, 1865 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1866 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 1867 0x00 }}, 1868 {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba, 1869 0x20,0x83,0xdf,0x70,0x00,0x00,0x05, 1870 0x00 }}, 1871 {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0, 1872 0x90,0x8c,0x57,0xed,0x20,0x00,0x05, 1873 0x01 }} 1874 }; 1875 1876 static const SiS_LVDSCRT1DataStruct SiS300_CHTVCRT1SOPAL[] = 1877 { 1878 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1879 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, 1880 0x00 }}, 1881 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1882 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 1883 0x00 }}, 1884 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1885 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05, 1886 0x00 }}, 1887 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 1888 0xde,0x81,0x5d,0x70,0x00,0x00,0x05, 1889 0x00 }}, 1890 {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba, /* TODO */ 1891 0x20,0x83,0xdf,0x70,0x00,0x00,0x05, 1892 0x00 }}, 1893 {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0, /* TODO */ 1894 0x90,0x8c,0x57,0xed,0x20,0x00,0x05, 1895 0x01 }} 1896 }; 1897 1898 static const SiS_CHTVRegDataStruct SiS300_CHTVReg_UNTSC[] = 1899 { 1900 {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1901 {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1902 {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1903 {{0x4a,0x94,0x00,0x48,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1904 {{0x6a,0x6a,0x00,0x2d,0xfa,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 17: 640x480 NTSC 7/8 */ 1905 {{0x8d,0xc4,0x00,0x3b,0xfb,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 24: 800x600 NTSC 7/10 */ 1906 }; 1907 1908 static const SiS_CHTVRegDataStruct SiS300_CHTVReg_ONTSC[] = 1909 { 1910 {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1911 {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1912 {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1913 {{0x49,0x94,0x00,0x34,0xfe,0,0,0,0,0,0,0,0,0,0,0}}, 1914 {{0x69,0x6a,0x00,0x1e,0xfd,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 16: 640x480 NTSC 1/1 */ 1915 {{0x8c,0xb4,0x00,0x32,0xf9,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 23: 800x600 NTSC 3/4 */ 1916 }; 1917 1918 static const SiS_CHTVRegDataStruct SiS300_CHTVReg_UPAL[] = 1919 { 1920 {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, 1921 {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1922 {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, 1923 {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1924 {{0x63,0x94,0x01,0x50,0x30,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 15: 640x480 PAL 5/6 */ 1925 {{0x84,0x64,0x01,0x4e,0x2f,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 21: 800x600 PAL 3/4 */ 1926 1927 }; 1928 1929 static const SiS_CHTVRegDataStruct SiS300_CHTVReg_OPAL[] = 1930 { 1931 {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 9: 640x400 PAL 1/1 */ 1932 {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1933 {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, 1934 {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1935 {{0x61,0x94,0x01,0x36,0x30,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 14: 640x480 PAL 1/1 */ 1936 {{0x83,0x76,0x01,0x40,0x31,0,0,0,0,0,0,0,0,0,0,0}} /* Mode 20: 800x600 PAL 5/6 */ 1937 1938 }; 1939 1940 static const SiS_CHTVRegDataStruct SiS300_CHTVReg_SOPAL[] = 1941 { 1942 {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, /* Mode 9: 640x400 PAL 1/1 */ 1943 {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1944 {{0x41,0x12,0x01,0x50,0x34,0,0,0,0,0,0,0,0,0,0,0}}, 1945 {{0x41,0x12,0x00,0x50,0x00,0,0,0,0,0,0,0,0,0,0,0}}, 1946 {{0x60,0x30,0x00,0x10,0x00,0,0,0,0,0,0,0,0,0,0,0}}, /* TW: Mode 13: 640x480 PAL 5/4 */ 1947 {{0x81,0x50,0x00,0x1b,0x00,0,0,0,0,0,0,0,0,0,0,0}} /* TW: Mode 19: 800x600 PAL 1/1 */ 1948 }; 1949 1950 static const UCHAR SiS300_CHTVVCLKUNTSC[] = {0x29,0x29,0x29,0x29,0x2a,0x2e}; 1951 1952 static const UCHAR SiS300_CHTVVCLKONTSC[] = {0x2c,0x2c,0x2c,0x2c,0x2d,0x2b}; 1953 1954 static const UCHAR SiS300_CHTVVCLKSONTSC[] = {0x2c,0x2c,0x2c,0x2c,0x2d,0x2b}; 1955 1956 static const UCHAR SiS300_CHTVVCLKUPAL[] = {0x2f,0x2f,0x2f,0x2f,0x2f,0x31}; 1957 1958 static const UCHAR SiS300_CHTVVCLKOPAL[] = {0x2f,0x2f,0x2f,0x2f,0x30,0x32}; 1959 1960 static const UCHAR SiS300_CHTVVCLKSOPAL[] = {0x2f,0x2f,0x2f,0x2f,0x36,0x29}; 1961 1962 1963