/* $XFree86$ */
/* $XdotOrg$ */
/*
* Register settings for SiS 300 series
*
* Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
*
* If distributed as part of the Linux kernel, the following license terms
* apply:
*
* * This program is free software; you can redistribute it and/or modify
* * it under the terms of the GNU General Public License as published by
* * the Free Software Foundation; either version 2 of the named License,
* * or any later version.
* *
* * This program is distributed in the hope that it will be useful,
* * but WITHOUT ANY WARRANTY; without even the implied warranty of
* * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* * GNU General Public License for more details.
* *
* * You should have received a copy of the GNU General Public License
* * along with this program; if not, write to the Free Software
* * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
*
* Otherwise, the following license terms apply:
*
* * Redistribution and use in source and binary forms, with or without
* * modification, are permitted provided that the following conditions
* * are met:
* * 1) Redistributions of source code must retain the above copyright
* * notice, this list of conditions and the following disclaimer.
* * 2) Redistributions in binary form must reproduce the above copyright
* * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* * 3) The name of the author may not be used to endorse or promote products
* * derived from this software without specific prior written permission.
* *
* * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Author: Thomas Winischhofer <thomas@winischhofer.net>
*
*/
static const struct SiS_Ext SiS300_EModeIDTable[] =
{
{0 x6a,0 x2212,0 x0102,SIS_RI_800x600, 0 x00,0 x00,0 x00,0 x00,0 x00,-1 }, /* 800x600x? */
{0 x2e,0 x0a1b,0 x0101,SIS_RI_640x480, 0 x00,0 x00,0 x00,0 x00,0 x08,-1 },
{0 x2f,0 x021b,0 x0100,SIS_RI_640x400, 0 x00,0 x00,0 x00,0 x00,0 x10,-1 }, /* 640x400x8 */
{0 x30,0 x2a1b,0 x0103,SIS_RI_800x600, 0 x00,0 x00,0 x00,0 x00,0 x00,-1 },
{0 x31,0 x4a1b,0 x0000,SIS_RI_720x480, 0 x00,0 x00,0 x00,0 x00,0 x11,-1 }, /* 720x480x8 */
{0 x32,0 x6a1b,0 x0000,SIS_RI_720x576, 0 x00,0 x00,0 x00,0 x00,0 x12,-1 }, /* 720x576x8 */
{0 x33,0 x4a1d,0 x0000,SIS_RI_720x480, 0 x00,0 x00,0 x00,0 x00,0 x11,-1 }, /* 720x480x16 */
{0 x34,0 x6a1d,0 x0000,SIS_RI_720x576, 0 x00,0 x00,0 x00,0 x00,0 x12,-1 }, /* 720x576x16 */
{0 x35,0 x4a1f,0 x0000,SIS_RI_720x480, 0 x00,0 x00,0 x00,0 x00,0 x11,-1 }, /* 720x480x32 */
{0 x36,0 x6a1f,0 x0000,SIS_RI_720x576, 0 x00,0 x00,0 x00,0 x00,0 x12,-1 }, /* 720x576x32 */
{0 x37,0 x0212,0 x0104,SIS_RI_1024x768, 0 x00,0 x00,0 x00,0 x00,0 x13,-1 }, /* 1024x768x? */
{0 x38,0 x0a1b,0 x0105,SIS_RI_1024x768, 0 x00,0 x00,0 x00,0 x00,0 x13,-1 }, /* 1024x768x8 */
{0 x3a,0 x0e3b,0 x0107,SIS_RI_1280x1024,0 x00,0 x00,0 x00,0 x00,0 x1a,-1 }, /* 1280x1024x8 */
{0 x3c,0 x063b,0 x0130,SIS_RI_1600x1200,0 x00,0 x00,0 x00,0 x00,0 x1e,-1 },
{0 x3d,0 x067d,0 x0131,SIS_RI_1600x1200,0 x00,0 x00,0 x00,0 x00,0 x1e,-1 },
{0 x40,0 x921c,0 x010d,SIS_RI_320x200, 0 x00,0 x00,0 x00,0 x00,0 x23,-1 }, /* 320x200x15 */
{0 x41,0 x921d,0 x010e,SIS_RI_320x200, 0 x00,0 x00,0 x00,0 x00,0 x23,-1 }, /* 320x200x16 */
{0 x43,0 x0a1c,0 x0110,SIS_RI_640x480, 0 x00,0 x00,0 x00,0 x00,0 x08,-1 },
{0 x44,0 x0a1d,0 x0111,SIS_RI_640x480, 0 x00,0 x00,0 x00,0 x00,0 x08,-1 },
{0 x46,0 x2a1c,0 x0113,SIS_RI_800x600, 0 x00,0 x00,0 x00,0 x00,0 x00,-1 }, /* 800x600x15 */
{0 x47,0 x2a1d,0 x0114,SIS_RI_800x600, 0 x00,0 x00,0 x00,0 x00,0 x00,-1 }, /* 800x600x16 */
{0 x49,0 x0a3c,0 x0116,SIS_RI_1024x768, 0 x00,0 x00,0 x00,0 x00,0 x13,-1 },
{0 x4a,0 x0a3d,0 x0117,SIS_RI_1024x768, 0 x00,0 x00,0 x00,0 x00,0 x13,-1 },
{0 x4c,0 x0e7c,0 x0119,SIS_RI_1280x1024,0 x00,0 x00,0 x00,0 x00,0 x1a,-1 },
{0 x4d,0 x0e7d,0 x011a,SIS_RI_1280x1024,0 x00,0 x00,0 x00,0 x00,0 x1a,-1 },
{0 x50,0 x921b,0 x0132,SIS_RI_320x240, 0 x00,0 x00,0 x00,0 x00,0 x24,-1 }, /* 320x240x8 */
{0 x51,0 xb21b,0 x0133,SIS_RI_400x300, 0 x00,0 x00,0 x00,0 x00,0 x25,-1 }, /* 400x300x8 */
{0 x52,0 x921b,0 x0134,SIS_RI_512x384, 0 x00,0 x00,0 x00,0 x00,0 x26,-1 }, /* 512x384x8 */
{0 x56,0 x921d,0 x0135,SIS_RI_320x240, 0 x00,0 x00,0 x00,0 x00,0 x24,-1 }, /* 320x240x16 */
{0 x57,0 xb21d,0 x0136,SIS_RI_400x300, 0 x00,0 x00,0 x00,0 x00,0 x25,-1 }, /* 400x300x16 */
{0 x58,0 x921d,0 x0137,SIS_RI_512x384, 0 x00,0 x00,0 x00,0 x00,0 x26,-1 }, /* 512x384x16 */
{0 x59,0 x921b,0 x0138,SIS_RI_320x200, 0 x00,0 x00,0 x00,0 x00,0 x23,-1 }, /* 320x200x8 */
{0 x5c,0 x921f,0 x0000,SIS_RI_512x384, 0 x00,0 x00,0 x00,0 x00,0 x26,-1 }, /* 512x384x32 */
{0 x5d,0 x021d,0 x0139,SIS_RI_640x400, 0 x00,0 x00,0 x00,0 x00,0 x10,-1 }, /* 640x400x16 */
{0 x5e,0 x021f,0 x0000,SIS_RI_640x400, 0 x00,0 x00,0 x00,0 x00,0 x10,-1 }, /* 640x400x32 */
{0 x62,0 x0a3f,0 x013a,SIS_RI_640x480, 0 x00,0 x00,0 x00,0 x00,0 x08,-1 },
{0 x63,0 x2a3f,0 x013b,SIS_RI_800x600, 0 x00,0 x00,0 x00,0 x00,0 x00,-1 }, /* 800x600x32 */
{0 x64,0 x0a7f,0 x013c,SIS_RI_1024x768, 0 x00,0 x00,0 x00,0 x00,0 x13,-1 },
{0 x65,0 x0eff,0 x013d,SIS_RI_1280x1024,0 x00,0 x00,0 x00,0 x00,0 x1a,-1 },
{0 x66,0 x06ff,0 x013e,SIS_RI_1600x1200,0 x00,0 x00,0 x00,0 x00,0 x1e,-1 },
{0 x68,0 x067b,0 x013f,SIS_RI_1920x1440,0 x00,0 x00,0 x00,0 x00,0 x27,-1 },
{0 x69,0 x06fd,0 x0140,SIS_RI_1920x1440,0 x00,0 x00,0 x00,0 x00,0 x27,-1 },
{0 x6b,0 x07ff,0 x0000,SIS_RI_1920x1440,0 x00,0 x00,0 x00,0 x00,0 x27,-1 },
{0 x6c,0 x067b,0 x0000,SIS_RI_2048x1536,0 x00,0 x00,0 x00,0 x00,0 x28,-1 }, /* 2048x1536x8 */
{0 x6d,0 x06fd,0 x0000,SIS_RI_2048x1536,0 x00,0 x00,0 x00,0 x00,0 x28,-1 }, /* 2048x1536x16 */
{0 x70,0 x6a1b,0 x0000,SIS_RI_800x480, 0 x00,0 x00,0 x07,0 x00,0 x2d,-1 }, /* 800x480x8 */
{0 x71,0 x4a1b,0 x0000,SIS_RI_1024x576, 0 x00,0 x00,0 x00,0 x00,0 x30,-1 }, /* 1024x576x8 */
{0 x74,0 x4a1d,0 x0000,SIS_RI_1024x576, 0 x00,0 x00,0 x00,0 x00,0 x30,-1 }, /* 1024x576x16 */
{0 x75,0 x0e3d,0 x0000,SIS_RI_1280x720, 0 x00,0 x00,0 x00,0 x00,0 x33,-1 }, /* 1280x720x16 */
{0 x76,0 x6a1f,0 x0000,SIS_RI_800x480, 0 x00,0 x00,0 x07,0 x00,0 x2d,-1 }, /* 800x480x32 */
{0 x77,0 x4a3f,0 x0000,SIS_RI_1024x576, 0 x00,0 x00,0 x00,0 x00,0 x30,-1 }, /* 1024x576x32 */
{0 x78,0 x0eff,0 x0000,SIS_RI_1280x720, 0 x00,0 x00,0 x00,0 x00,0 x33,-1 }, /* 1280x720x32 */
{0 x79,0 x0e3b,0 x0000,SIS_RI_1280x720, 0 x00,0 x00,0 x00,0 x00,0 x33,-1 }, /* 1280x720x8 */
{0 x7a,0 x6a1d,0 x0000,SIS_RI_800x480, 0 x00,0 x00,0 x07,0 x00,0 x2d,-1 }, /* 800x480x16 */
{0 x7c,0 x0a3b,0 x0000,SIS_RI_1280x960, 0 x00,0 x00,0 x00,0 x00,0 x29,-1 }, /* 1280x960x8 */
{0 x7d,0 x0a7d,0 x0000,SIS_RI_1280x960, 0 x00,0 x00,0 x00,0 x00,0 x29,-1 }, /* 1280x960x16 */
{0 x7e,0 x0aff,0 x0000,SIS_RI_1280x960, 0 x00,0 x00,0 x00,0 x00,0 x29,-1 }, /* 1280x960x32 */
{0 x20,0 x4a1b,0 x0000,SIS_RI_1024x600, 0 x00,0 x00,0 x00,0 x00,0 x2b,-1 }, /* 1024x600 */
{0 x21,0 x4a3d,0 x0000,SIS_RI_1024x600, 0 x00,0 x00,0 x00,0 x00,0 x2b,-1 },
{0 x22,0 x4a7f,0 x0000,SIS_RI_1024x600, 0 x00,0 x00,0 x00,0 x00,0 x2b,-1 },
{0 x23,0 x4a1b,0 x0000,SIS_RI_1152x768, 0 x00,0 x00,0 x00,0 x00,0 x2c,-1 }, /* 1152x768 */
{0 x24,0 x4a3d,0 x0000,SIS_RI_1152x768, 0 x00,0 x00,0 x00,0 x00,0 x2c,-1 },
{0 x25,0 x4a7f,0 x0000,SIS_RI_1152x768, 0 x00,0 x00,0 x00,0 x00,0 x2c,-1 },
{0 x29,0 x4e1b,0 x0000,SIS_RI_1152x864, 0 x00,0 x00,0 x00,0 x00,0 x36,-1 }, /* 1152x864 */
{0 x2a,0 x4e3d,0 x0000,SIS_RI_1152x864, 0 x00,0 x00,0 x00,0 x00,0 x36,-1 },
{0 x2b,0 x4e7f,0 x0000,SIS_RI_1152x864, 0 x00,0 x00,0 x00,0 x00,0 x36,-1 },
{0 x39,0 x6a1b,0 x0000,SIS_RI_848x480, 0 x00,0 x00,0 x00,0 x00,0 x39,-1 }, /* 848x480 */
{0 x3b,0 x6a3d,0 x0000,SIS_RI_848x480, 0 x00,0 x00,0 x00,0 x00,0 x39,-1 },
{0 x3e,0 x6a7f,0 x0000,SIS_RI_848x480, 0 x00,0 x00,0 x00,0 x00,0 x39,-1 },
{0 x3f,0 x6a1b,0 x0000,SIS_RI_856x480, 0 x00,0 x00,0 x00,0 x00,0 x3b,-1 }, /* 856x480 */
{0 x42,0 x6a3d,0 x0000,SIS_RI_856x480, 0 x00,0 x00,0 x00,0 x00,0 x3b,-1 },
{0 x45,0 x6a7f,0 x0000,SIS_RI_856x480, 0 x00,0 x00,0 x00,0 x00,0 x3b,-1 },
{0 x48,0 x6a3b,0 x0000,SIS_RI_1360x768, 0 x00,0 x00,0 x00,0 x00,0 x3d,-1 }, /* 1360x768 */
{0 x4b,0 x6a7d,0 x0000,SIS_RI_1360x768, 0 x00,0 x00,0 x00,0 x00,0 x3d,-1 },
{0 x4e,0 x6aff,0 x0000,SIS_RI_1360x768, 0 x00,0 x00,0 x00,0 x00,0 x3d,-1 },
{0 x4f,0 x921f,0 x0000,SIS_RI_320x200, 0 x00,0 x00,0 x00,0 x00,0 x23,-1 }, /* 320x200x32 */
{0 x53,0 x921f,0 x0000,SIS_RI_320x240, 0 x00,0 x00,0 x00,0 x00,0 x24,-1 }, /* 320x240x32 */
{0 x54,0 xb21f,0 x0000,SIS_RI_400x300, 0 x00,0 x00,0 x00,0 x00,0 x25,-1 }, /* 400x300x32 */
{0 x55,0 x2e3b,0 x0000,SIS_RI_1280x768, 0 x00,0 x00,0 x00,0 x00,0 x3e,-1 }, /* 1280x768 */
{0 x5a,0 x2e7d,0 x0000,SIS_RI_1280x768, 0 x00,0 x00,0 x00,0 x00,0 x3e,-1 },
{0 x5b,0 x2eff,0 x0000,SIS_RI_1280x768, 0 x00,0 x00,0 x00,0 x00,0 x3e,-1 },
{0 x5f,0 x6a1b,0 x0000,SIS_RI_768x576, 0 x00,0 x00,0 x00,0 x00,0 x3f,-1 }, /* 768x576x8 */
{0 x60,0 x6a1d,0 x0000,SIS_RI_768x576, 0 x00,0 x00,0 x00,0 x00,0 x3f,-1 }, /* 768x576x16 */
{0 x61,0 x6a1f,0 x0000,SIS_RI_768x576, 0 x00,0 x00,0 x00,0 x00,0 x3f,-1 }, /* 768x576x32 */
{0 x67,0 x6e3b,0 x0000,SIS_RI_1360x1024,0 x00,0 x00,0 x00,0 x00,0 x40,-1 }, /* 1360x1024x8 (BARCO) */
{0 x6f,0 x6e7d,0 x0000,SIS_RI_1360x1024,0 x00,0 x00,0 x00,0 x00,0 x40,-1 }, /* 1360x1024x16 (BARCO) */
{0 x72,0 x6eff,0 x0000,SIS_RI_1360x1024,0 x00,0 x00,0 x00,0 x00,0 x40,-1 }, /* 1360x1024x32 (BARCO) */
{0 xff,0 x0000,0 xffff,0 , 0 x00,0 x00,0 x00,0 x00,0 x00}
};
static const struct SiS_Ext2 SiS300_RefIndex[] =
{
{0 x085f,0 x0d,0 x03,0 x05,0 x05,0 x6a, 800 , 600 , 0 , 0 x00, 0 x00}, /* 00 */
{0 x0467,0 x0e,0 x04,0 x05,0 x05,0 x6a, 800 , 600 , 0 , 0 x00, 0 x00}, /* 01 */
{0 x0067,0 x0f,0 x07,0 x48,0 x05,0 x6a, 800 , 600 , 0 , 0 x00, 0 x00}, /* 02 - CRT1CRTC was 0x4f */
{0 x0067,0 x10,0 x06,0 x8b,0 x05,0 x6a, 800 , 600 , 0 , 0 x00, 0 x00}, /* 03 */
{0 x0147,0 x11,0 x08,0 x00,0 x05,0 x6a, 800 , 600 , 0 , 0 x00, 0 x00}, /* 04 */
{0 x0147,0 x12,0 x0c,0 x00,0 x05,0 x6a, 800 , 600 , 0 , 0 x00, 0 x00}, /* 05 */
{0 x0047,0 x11,0 x0e,0 x00,0 x05,0 x6a, 800 , 600 , 0 , 0 x00, 0 x00}, /* 06 - CRT1CRTC was 0x51 */
{0 x0047,0 x11,0 x13,0 x00,0 x05,0 x6a, 800 , 600 , 0 , 0 x00, 0 x00}, /* 07 */
{0 xc85f,0 x05,0 x00,0 x04,0 x04,0 x2e, 640 , 480 , 0 , 0 x00, 0 x00}, /* 08 */
{0 xc067,0 x06,0 x02,0 x04,0 x04,0 x2e, 640 , 480 , 0 , 0 x00, 0 x00}, /* 09 */
{0 xc067,0 x07,0 x02,0 x47,0 x04,0 x2e, 640 , 480 , 0 , 0 x00, 0 x00}, /* 0a */
{0 xc067,0 x08,0 x03,0 x8a,0 x04,0 x2e, 640 , 480 , 0 , 0 x00, 0 x00}, /* 0b */
{0 xc047,0 x09,0 x05,0 x00,0 x04,0 x2e, 640 , 480 , 0 , 0 x00, 0 x00}, /* 0c */
{0 xc047,0 x0a,0 x08,0 x00,0 x04,0 x2e, 640 , 480 , 0 , 0 x00, 0 x00}, /* 0d */
{0 xc047,0 x0b,0 x0a,0 x00,0 x04,0 x2e, 640 , 480 , 0 , 0 x00, 0 x00}, /* 0e */
{0 xc047,0 x0c,0 x10,0 x00,0 x04,0 x2e, 640 , 480 , 0 , 0 x00, 0 x00}, /* 0f */
{0 x487f,0 x04,0 x00,0 x00,0 x00,0 x2f, 640 , 400 , 0 , 0 x4a, 0 x49}, /* 10 */
{0 xc06f,0 x31,0 x01,0 x06,0 x13,0 x31, 720 , 480 , 0 , 0 x00, 0 x00}, /* 11 */
{0 x006f,0 x32,0 x4a,0 x06,0 x14,0 x32, 720 , 576 , 0 , 0 x00, 0 x00}, /* 12 */ /* 4a was 03 */
{0 x0187,0 x15,0 x05,0 x00,0 x06,0 x37,1024 , 768 , 0 , 0 x00, 0 x00}, /* 13 */
{0 xc877,0 x16,0 x09,0 x06,0 x06,0 x37,1024 , 768 , 0 , 0 x00, 0 x00}, /* 14 */
{0 xc067,0 x17,0 x0b,0 x49,0 x06,0 x37,1024 , 768 , 0 , 0 x00, 0 x00}, /* 15 - CRT1CRTC was 0x97 */
{0 x0267,0 x18,0 x0d,0 x00,0 x06,0 x37,1024 , 768 , 0 , 0 x00, 0 x00}, /* 16 */
{0 x0047,0 x19,0 x11,0 x8c,0 x06,0 x37,1024 , 768 , 0 , 0 x00, 0 x00}, /* 17 - CRT1CRTC was 0x59 */
{0 x0047,0 x1a,0 x12,0 x00,0 x06,0 x37,1024 , 768 , 0 , 0 x00, 0 x00}, /* 18 */
{0 x0007,0 x1b,0 x16,0 x00,0 x06,0 x37,1024 , 768 , 0 , 0 x00, 0 x00}, /* 19 - CRT1CRTC was 0x5b */
{0 x0387,0 x1c,0 x0d,0 x00,0 x07,0 x3a,1280 ,1024 , 0 , 0 x00, 0 x00}, /* 1a - CRT1CRTC was 0x5c */
{0 x0077,0 x1d,0 x14,0 x07,0 x07,0 x3a,1280 ,1024 , 0 , 0 x00, 0 x00}, /* 1b */
{0 x0047,0 x1e,0 x17,0 x00,0 x07,0 x3a,1280 ,1024 , 0 , 0 x00, 0 x00}, /* 1c */
{0 x0007,0 x1f,0 x18,0 x00,0 x07,0 x3a,1280 ,1024 , 0 , 0 x00, 0 x00}, /* 1d */
{0 x0007,0 x20,0 x19,0 x00,0 x00,0 x3c,1600 ,1200 , 0 , 0 x00, 0 x00}, /* 1e - CRT1CRTC was 0x60 */
{0 x0007,0 x21,0 x1a,0 x00,0 x00,0 x3c,1600 ,1200 , 0 , 0 x00, 0 x00}, /* 1f */
{0 x0007,0 x22,0 x1b,0 x00,0 x00,0 x3c,1600 ,1200 , 0 , 0 x00, 0 x00}, /* 20 */
{0 x0007,0 x23,0 x1d,0 x00,0 x00,0 x3c,1600 ,1200 , 0 , 0 x00, 0 x00}, /* 21 - CRT1CRTC was 0x63 */
{0 x0007,0 x24,0 x1e,0 x00,0 x00,0 x3c,1600 ,1200 , 0 , 0 x00, 0 x00}, /* 22 */
{0 x407f,0 x00,0 x00,0 x00,0 x00,0 x40, 320 , 200 , 0 , 0 x4b, 0 x4b}, /* 23 */
{0 xc07f,0 x01,0 x00,0 x04,0 x04,0 x50, 320 , 240 , 0 , 0 x00, 0 x00}, /* 24 */
{0 x0077,0 x02,0 x04,0 x05,0 x05,0 x51, 400 , 300 , 0 , 0 x00, 0 x00}, /* 25 */
{0 xc877,0 x03,0 x09,0 x06,0 x06,0 x52, 512 , 384 , 0 , 0 x00, 0 x00}, /* 26 */ /* was c077 */
{0 x8207,0 x25,0 x1f,0 x00,0 x00,0 x68,1920 ,1440 , 0 , 0 x00, 0 x00}, /* 27 */
{0 x0007,0 x26,0 x20,0 x00,0 x00,0 x6c,2048 ,1536 , 0 , 0 x00, 0 x00}, /* 28 */
{0 x0067,0 x27,0 x14,0 x08,0 x0a,0 x6e,1280 , 960 , 0 , 0 x00, 0 x00}, /* 29 - 1280x960-60 */
{0 x0027,0 x45,0 x3c,0 x08,0 x0a,0 x6e,1280 , 960 , 0 , 0 x00, 0 x00}, /* 2a - 1280x960-85 */
{0 xc077,0 x33,0 x09,0 x06,0 x00,0 x20,1024 , 600 , 0 , 0 x00, 0 x00}, /* 2b */
{0 xc077,0 x34,0 x0b,0 x06,0 x00,0 x23,1152 , 768 , 0 , 0 x00, 0 x00}, /* 2c */ /* VCLK 0x09 */
{0 x0077,0 x35,0 x27,0 x08,0 x18,0 x70, 800 , 480 , 0 , 0 x00, 0 x00}, /* 2d */
{0 x0047,0 x36,0 x37,0 x08,0 x18,0 x70, 800 , 480 , 0 , 0 x00, 0 x00}, /* 2e */
{0 x0047,0 x37,0 x08,0 x08,0 x18,0 x70, 800 , 480 , 0 , 0 x00, 0 x00}, /* 2f */
{0 x0077,0 x38,0 x09,0 x09,0 x19,0 x71,1024 , 576 , 0 , 0 x00, 0 x00}, /* 30 */
{0 x0047,0 x39,0 x38,0 x09,0 x19,0 x71,1024 , 576 , 0 , 0 x00, 0 x00}, /* 31 */
{0 x0047,0 x3a,0 x11,0 x09,0 x19,0 x71,1024 , 576 , 0 , 0 x00, 0 x00}, /* 32 */
{0 x0077,0 x3b,0 x39,0 x0a,0 x0c,0 x75,1280 , 720 , 0 , 0 x00, 0 x00}, /* 33 */
{0 x0047,0 x3c,0 x3a,0 x0a,0 x0c,0 x75,1280 , 720 , 0 , 0 x00, 0 x00}, /* 34 */
{0 x0007,0 x3d,0 x3b,0 x0a,0 x0c,0 x75,1280 , 720 , 0 , 0 x00, 0 x00}, /* 35 */
{0 x0067,0 x49,0 x35,0 x06,0 x1a,0 x29,1152 , 864 , 0 , 0 x00, 0 x00}, /* 36 1152x864-60Hz */
{0 x0067,0 x3e,0 x34,0 x06,0 x1a,0 x29,1152 , 864 , 0 , 0 x00, 0 x00}, /* 37 1152x864-75Hz */
{0 x0047,0 x44,0 x3a,0 x06,0 x1a,0 x29,1152 , 864 , 0 , 0 x00, 0 x00}, /* 38 1152x864-85Hz */
{0 x00c7,0 x3f,0 x28,0 x00,0 x16,0 x39, 848 , 480 , 0 , 0 x00, 0 x00}, /* 39 848x480-38Hzi */
{0 xc067,0 x40,0 x3d,0 x0b,0 x16,0 x39, 848 , 480 , 0 , 0 x00, 0 x00}, /* 3a 848x480-60Hz */
{0 x00c7,0 x41,0 x28,0 x00,0 x17,0 x3f, 856 , 480 , 0 , 0 x00, 0 x00}, /* 3b 856x480-38Hzi */
{0 xc067,0 x42,0 x28,0 x0c,0 x17,0 x3f, 856 , 480 , 0 , 0 x00, 0 x00}, /* 3c 856x480-60Hz */
{0 x0067,0 x43,0 x3e,0 x0d,0 x1b,0 x48,1360 , 768 , 0 , 0 x00, 0 x00}, /* 3d 1360x768-60Hz */
{0 x0077,0 x46,0 x3f,0 x08,0 x08,0 x55,1280 , 768 , 0 , 0 x00, 0 x00}, /* 3e 1280x768-60Hz */
{0 x006f,0 x47,0 x4c,0 x06,0 x15,0 x5f, 768 , 576 , 0 , 0 x00, 0 x00}, /* 3f 768x576 */
{0 x0027,0 x48,0 x13,0 x08,0 x00,0 x67,1360 ,1024 , 0 , 0 x00, 0 x00}, /* 40 1360x1024-59Hz (BARCO1366 only) */
{0 xffff, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 x00, 0 x00}
};
static const struct SiS_VBMode SiS300_VBModeIDTable[] =
{
{0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00},
{0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x01},
{0 x01,0 x00,0 x00,0 x00,0 x01,0 x00,0 x01,0 x02},
{0 x03,0 x00,0 x00,0 x00,0 x02,0 x00,0 x02,0 x00},
{0 x03,0 x00,0 x00,0 x00,0 x02,0 x00,0 x02,0 x01},
{0 x03,0 x00,0 x00,0 x00,0 x03,0 x00,0 x03,0 x02},
{0 x05,0 x00,0 x00,0 x01,0 x04,0 x00,0 x00,0 x00},
{0 x06,0 x00,0 x00,0 x01,0 x05,0 x00,0 x02,0 x00},
{0 x07,0 x00,0 x00,0 x00,0 x03,0 x00,0 x03,0 x01},
{0 x07,0 x00,0 x00,0 x00,0 x03,0 x00,0 x03,0 x02},
{0 x0d,0 x00,0 x00,0 x01,0 x04,0 x00,0 x00,0 x00},
{0 x0e,0 x00,0 x00,0 x01,0 x05,0 x00,0 x02,0 x00},
{0 x0f,0 x00,0 x00,0 x01,0 x05,0 x00,0 x02,0 x01},
{0 x10,0 x00,0 x00,0 x01,0 x05,0 x00,0 x02,0 x01},
{0 x11,0 x00,0 x00,0 x01,0 x05,0 x00,0 x02,0 x03},
{0 x12,0 x00,0 x00,0 x01,0 x05,0 x00,0 x02,0 x03},
{0 x13,0 x00,0 x00,0 x01,0 x04,0 x00,0 x04,0 x00},
{0 x6a,0 x00,0 x00,0 x01,0 x07,0 x00,0 x08,0 x0a},
{0 x2e,0 x00,0 x00,0 x01,0 x05,0 x00,0 x06,0 x08},
{0 x2f,0 x00,0 x00,0 x01,0 x05,0 x00,0 x06,0 x06},
{0 x30,0 x00,0 x00,0 x01,0 x07,0 x00,0 x08,0 x0a},
{0 x31,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x32,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x33,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x34,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x35,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x36,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x37,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0a,0 x0c},
{0 x38,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0a,0 x0c},
{0 x3a,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0b,0 x0d},
{0 x40,0 x00,0 x00,0 x01,0 x04,0 x00,0 x05,0 x05},
{0 x41,0 x00,0 x00,0 x01,0 x04,0 x00,0 x05,0 x05},
{0 x43,0 x00,0 x00,0 x01,0 x05,0 x00,0 x06,0 x08},
{0 x44,0 x00,0 x00,0 x01,0 x05,0 x00,0 x06,0 x08},
{0 x46,0 x00,0 x00,0 x01,0 x07,0 x00,0 x08,0 x0a},
{0 x47,0 x00,0 x00,0 x01,0 x07,0 x00,0 x08,0 x0a},
{0 x49,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0a,0 x0c},
{0 x4a,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0a,0 x0c},
{0 x4c,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0b,0 x0d},
{0 x4d,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0b,0 x0d},
{0 x4f,0 x00,0 x00,0 x01,0 x04,0 x00,0 x05,0 x05},
{0 x50,0 x00,0 x00,0 x01,0 x04,0 x00,0 x05,0 x07},
{0 x51,0 x00,0 x00,0 x01,0 x07,0 x00,0 x07,0 x09},
{0 x52,0 x00,0 x00,0 x01,0 x00,0 x00,0 x09,0 x0b},
{0 x53,0 x00,0 x00,0 x01,0 x04,0 x00,0 x05,0 x07},
{0 x54,0 x00,0 x00,0 x01,0 x07,0 x00,0 x07,0 x09},
{0 x56,0 x00,0 x00,0 x01,0 x04,0 x00,0 x05,0 x07},
{0 x57,0 x00,0 x00,0 x01,0 x07,0 x00,0 x07,0 x09},
{0 x58,0 x00,0 x00,0 x01,0 x00,0 x00,0 x09,0 x0b},
{0 x59,0 x00,0 x00,0 x01,0 x04,0 x00,0 x05,0 x05},
{0 x5c,0 x00,0 x00,0 x01,0 x00,0 x00,0 x09,0 x0b},
{0 x5d,0 x00,0 x00,0 x01,0 x05,0 x00,0 x06,0 x06},
{0 x5e,0 x00,0 x00,0 x01,0 x05,0 x00,0 x06,0 x06},
{0 x5f,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x60,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x61,0 x00,0 x00,0 x01,0 x06,0 x00,0 x00,0 x00},
{0 x62,0 x00,0 x00,0 x01,0 x05,0 x00,0 x06,0 x08},
{0 x63,0 x00,0 x00,0 x01,0 x07,0 x00,0 x08,0 x0a},
{0 x64,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0a,0 x0c},
{0 x65,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0b,0 x0d},
{0 x6c,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0b,0 x0d},
{0 x6d,0 x00,0 x00,0 x01,0 x00,0 x00,0 x0b,0 x0d},
{0 xff,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00}
};
static const struct SiS_CRT1Table SiS300_CRT1Table[] =
{
{{0 x2d,0 x27,0 x28,0 x90,0 x2c,0 x80,0 xbf,0 x1f, /* 0x00 - 320x200 */
0 x9c,0 x8e,0 x8f,0 x96,0 xb9,0 x30,0 x00,0 x00, /* HRE [4],[15] is invalid - but correcting it does not work */
0 x00}},
{{0 x2d,0 x27,0 x28,0 x90,0 x2c,0 x80,0 x0b,0 x3e, /* 0x01 */
0 xe9,0 x8b,0 xdf,0 xe7,0 x04,0 x00,0 x00,0 x00, /* HRE [4],[15] is invalid - but correcting it does not work */
0 x00}},
{{0 x3d,0 x31,0 x31,0 x81,0 x37,0 x1f,0 x72,0 xf0, /* 0x02 */
0 x58,0 x8c,0 x57,0 x57,0 x73,0 x20,0 x00,0 x05,
0 x01}},
{{0 x4f,0 x3f,0 x3f,0 x93,0 x45,0 x0d,0 x24,0 xf5,
0 x02,0 x88,0 xff,0 xff,0 x25,0 x10,0 x00,0 x01,
0 x01}},
{{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f,
0 x9c,0 x8e,0 x8f,0 x96,0 xb9,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x4f,0 x83,0 x55,0 x81,0 x0b,0 x3e, /* 0x05 - corrected 640x480-60 */
0 xe9,0 x8b,0 xdf,0 xe8,0 x0c,0 x00,0 x00,0 x05,
0 x00}},
{{0 x63,0 x4f,0 x4f,0 x87,0 x56,0 x9b,0 x06,0 x3e, /* 0x06 - corrected 640x480-72 */
0 xe8,0 x8a,0 xdf,0 xe7,0 x07,0 x00,0 x00,0 x01,
0 x00}},
{{0 x64,0 x4f,0 x4f,0 x88,0 x55,0 x9d,0 xf2,0 x1f,
0 xe0,0 x83,0 xdf,0 xdf,0 xf3,0 x10,0 x00,0 x01,
0 x00}},
{{0 x63,0 x4f,0 x4f,0 x87,0 x5a,0 x81,0 xfb,0 x1f,
0 xe0,0 x83,0 xdf,0 xdf,0 xfc,0 x10,0 x00,0 x05,
0 x00}},
{{0 x67,0 x4f,0 x4f,0 x8b,0 x57,0 x83,0 x10,0 x3e, /* 0x09 - corrected 640x480-100 */
0 xe7,0 x8d,0 xdf,0 xe6,0 x11,0 x00,0 x00,0 x05,
0 x00}},
{{0 x67,0 x4f,0 x4f,0 x8b,0 x57,0 x83,0 x10,0 x3e, /* 0x0a - corrected 640x480-120 */
0 xe7,0 x8d,0 xdf,0 xe6,0 x11,0 x00,0 x00,0 x05,
0 x00}},
{{0 x63,0 x4f,0 x4f,0 x87,0 x56,0 x9d,0 xfb,0 x1f,
0 xe0,0 x83,0 xdf,0 xdf,0 xfc,0 x10,0 x00,0 x01,
0 x00}},
{{0 x65,0 x4f,0 x4f,0 x89,0 x57,0 x9f,0 xfb,0 x1f,
0 xe6,0 x8a,0 xdf,0 xdf,0 xfc,0 x10,0 x00,0 x01, /* Corrected VDE, VBE */
0 x00}},
{{0 x7b,0 x63,0 x63,0 x9f,0 x6a,0 x93,0 x6f,0 xf0,
0 x58,0 x8a,0 x57,0 x57,0 x70,0 x20,0 x00,0 x05,
0 x01}},
{{0 x7f,0 x63,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xf0,
0 x58,0 x8c,0 x57,0 x57,0 x73,0 x20,0 x00,0 x06,
0 x01}},
{{0 x7d,0 x63,0 x63,0 x81,0 x6e,0 x1d,0 x98,0 xf0,
0 x7c,0 x82,0 x57,0 x57,0 x99,0 x00,0 x00,0 x06,
0 x01}},
{{0 x7f,0 x63,0 x63,0 x83,0 x69,0 x13,0 x6f,0 xf0,
0 x58,0 x8b,0 x57,0 x57,0 x70,0 x20,0 x00,0 x06,
0 x01}},
{{0 x7e,0 x63,0 x63,0 x82,0 x6b,0 x13,0 x75,0 xf0,
0 x58,0 x8b,0 x57,0 x57,0 x76,0 x20,0 x00,0 x06,
0 x01}},
{{0 x8c,0 x63,0 x63,0 x87,0 x72,0 x16,0 x7e,0 xf0,
0 x59,0 x8d,0 x57,0 x57,0 x7f,0 x00,0 x00,0 x06,
0 x01}},
{{0 x7e,0 x63,0 x63,0 x82,0 x6c,0 x14,0 x75,0 xe0,
0 x58,0 x0b,0 x57,0 x57,0 x76,0 x20,0 x00,0 x06,
0 x01}},
{{0 x7e,0 x63,0 x63,0 x82,0 x6c,0 x14,0 x75,0 xe0, /* 0x14 */
0 x58,0 x0b,0 x57,0 x57,0 x76,0 x20,0 x00,0 x06,
0 x01}},
{{0 x99,0 x7f,0 x7f,0 x9d,0 x84,0 x1a,0 x96,0 x1f,
0 x7f,0 x83,0 x7f,0 x7f,0 x97,0 x10,0 x00,0 x02,
0 x00}},
{{0 xa3,0 x7f,0 x7f,0 x87,0 x86,0 x97,0 x24,0 xf5,
0 x02,0 x88,0 xff,0 xff,0 x25,0 x10,0 x00,0 x02,
0 x01}},
{{0 xa1,0 x7f,0 x7f,0 x85,0 x86,0 x97,0 x24,0 xf5,
0 x02,0 x88,0 xff,0 xff,0 x25,0 x10,0 x00,0 x02,
0 x01}},
{{0 x9f,0 x7f,0 x7f,0 x83,0 x85,0 x91,0 x1e,0 xf5,
0 x00,0 x83,0 xff,0 xff,0 x1f,0 x10,0 x00,0 x02,
0 x01}},
{{0 xa7,0 x7f,0 x7f,0 x8b,0 x89,0 x95,0 x26,0 xf5,
0 x00,0 x83,0 xff,0 xff,0 x27,0 x10,0 x00,0 x02,
0 x01}},
{{0 x9f,0 x7f,0 x7f,0 x83,0 x83,0 x93,0 x1e,0 xf5, /* 0x1a */
0 x00,0 x84,0 xff,0 xff,0 x1f,0 x10,0 x00,0 x02,
0 x01}},
{{0 xa2,0 x7f,0 x7f,0 x86,0 x84,0 x94,0 x37,0 xf5,
0 x0b,0 x82,0 xff,0 xff,0 x38,0 x10,0 x00,0 x02,
0 x01}},
{{0 xcf,0 x9f,0 x9f,0 x93,0 xb2,0 x01,0 x14,0 xba,
0 x00,0 x83,0 xff,0 xff,0 x15,0 x00,0 x00,0 x03,
0 x00}},
{{0 xce,0 x9f,0 x9f,0 x92,0 xa9,0 x17,0 x28,0 x5a,
0 x00,0 x83,0 xff,0 xff,0 x29,0 x09,0 x00,0 x07,
0 x01}},
{{0 xce,0 x9f,0 x9f,0 x92,0 xa5,0 x17,0 x28,0 x5a, /* 0x1e */
0 x00,0 x83,0 xff,0 xff,0 x29,0 x09,0 x00,0 x07,
0 x01}},
{{0 xd3,0 x9f,0 x9f,0 x97,0 xab,0 x1f,0 x2e,0 x5a,
0 x00,0 x83,0 xff,0 xff,0 x2f,0 x09,0 x00,0 x07,
0 x01}},
{{0 x09,0 xc7,0 xc7,0 x8d,0 xd3,0 x0b,0 xe0,0 x10,
0 xb0,0 x83,0 xaf,0 xaf,0 xe1,0 x2f,0 x01,0 x04,
0 x00}},
{{0 x09,0 xc7,0 xc7,0 x8d,0 xd3,0 x0b,0 xe0,0 x10,
0 xb0,0 x83,0 xaf,0 xaf,0 xe1,0 x2f,0 x01,0 x04,
0 x00}},
{{0 x09,0 xc7,0 xc7,0 x8d,0 xd3,0 x0b,0 xe0,0 x10,
0 xb0,0 x83,0 xaf,0 xaf,0 xe1,0 x2f,0 x01,0 x04,
0 x00}},
{{0 x09,0 xc7,0 xc7,0 x8d,0 xd3,0 x0b,0 xe0,0 x10,
0 xb0,0 x83,0 xaf,0 xaf,0 xe1,0 x2f,0 x01,0 x04,
0 x00}},
{{0 x09,0 xc7,0 xc7,0 x8d,0 xd3,0 x0b,0 xe0,0 x10, /* 36: 1600x1200x85Hz */
0 xb0,0 x83,0 xaf,0 xaf,0 xe1,0 x2f,0 x01,0 x04,
0 x00}},
{{0 x3f,0 xef,0 xef,0 x83,0 xfd,0 x1a,0 xda,0 x1f, /* 37: 1920x1440x60Hz */
0 xa0,0 x84,0 x9f,0 x9f,0 xdb,0 x1f,0 x01,0 x01,
0 x00}},
{{0 x55,0 xff,0 xff,0 x99,0 x0d,0 x0c,0 x3e,0 xba,
0 x00,0 x84,0 xff,0 xff,0 x3f,0 x0f,0 x41,0 x05,
0 x00}},
{{0 xdc,0 x9f,0 x9f,0 x80,0 xaf,0 x9d,0 xe6,0 xff, /* 0x27: 1280x960-60 - correct */
0 xc0,0 x83,0 xbf,0 xbf,0 xe7,0 x10,0 x00,0 x07,
0 x01}},
{{0 x7f,0 x63,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xba, /* 0x28 */
0 x27,0 x8b,0 xdf,0 xdf,0 x73,0 x00,0 x00,0 x06,
0 x01}},
{{0 x7f,0 x63,0 x63,0 x83,0 x69,0 x13,0 x6f,0 xba,
0 x26,0 x89,0 xdf,0 xdf,0 x6f,0 x00,0 x00,0 x06,
0 x01}},
{{0 x7f,0 x63,0 x63,0 x82,0 x6b,0 x13,0 x75,0 xba,
0 x29,0 x8c,0 xdf,0 xdf,0 x75,0 x00,0 x00,0 x06,
0 x01}},
{{0 xa3,0 x7f,0 x7f,0 x87,0 x86,0 x97,0 x24,0 xf1,
0 xaf,0 x85,0 x3f,0 x3f,0 x25,0 x30,0 x00,0 x02,
0 x01}},
{{0 x9f,0 x7f,0 x7f,0 x83,0 x85,0 x91,0 x1e,0 xf1,
0 xad,0 x81,0 x3f,0 x3f,0 x1f,0 x30,0 x00,0 x02,
0 x01}},
{{0 xa7,0 x7f,0 x7f,0 x88,0 x89,0 x15,0 x26,0 xf1,
0 xb1,0 x85,0 x3f,0 x3f,0 x27,0 x30,0 x00,0 x02,
0 x01}},
{{0 xce,0 x9f,0 x9f,0 x92,0 xa9,0 x17,0 x28,0 xc4,
0 x7a,0 x8e,0 xcf,0 xcf,0 x29,0 x21,0 x00,0 x07,
0 x01}},
{{0 xce,0 x9f,0 x9f,0 x92,0 xa5,0 x17,0 x28,0 xd4,
0 x7a,0 x8e,0 xcf,0 xcf,0 x29,0 x21,0 x00,0 x07,
0 x01}},
{{0 xd3,0 x9f,0 x9f,0 x97,0 xab,0 x1f,0 x2e,0 xd4,
0 x7d,0 x81,0 xcf,0 xcf,0 x2f,0 x21,0 x00,0 x07,
0 x01}},
{{0 x6b,0 x59,0 x59,0 x8f,0 x5e,0 x8c,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 xe7,0 x04,0 x00,0 x00,0 x05,
0 x00}},
{{0 x6d,0 x59,0 x59,0 x91,0 x60,0 x89,0 x53,0 xf0, /* 0x32: 720x576, corrected to 60Hz */
0 x41,0 x84,0 x3f,0 x3f,0 x54,0 x00,0 x00,0 x05,
0 x41}},
{{0 xa3,0 x7f,0 x7f,0 x87,0 x86,0 x97,0 x1e,0 xf1, /* 0x33 - 1024x600 */
0 xae,0 x85,0 x57,0 x57,0 x1f,0 x30,0 x00,0 x02,
0 x01}},
{{0 xa3,0 x8f,0 x8f,0 x97,0 x96,0 x97,0 x24,0 xf5, /* 0x34 - 1152x768 - corrected */
0 x02,0 x88,0 xff,0 xff,0 x25,0 x10,0 x00,0 x02,
0 x01}},
{{0 x7f,0 x63,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xba, /* 0x35 */
0 x27,0 x8b,0 xdf,0 xdf,0 x73,0 x00,0 x00,0 x06,
0 x01}}, /* 0x35 */
{{0 x7f,0 x63,0 x63,0 x83,0 x69,0 x13,0 x6f,0 xba,
0 x26,0 x89,0 xdf,0 xdf,0 x6f,0 x00,0 x00,0 x06,
0 x01}}, /* 0x36 */
{{0 x7f,0 x63,0 x63,0 x82,0 x6b,0 x13,0 x75,0 xba,
0 x29,0 x8c,0 xdf,0 xdf,0 x75,0 x00,0 x00,0 x06,
0 x01}}, /* 0x37 */
{{0 xa3,0 x7f,0 x7f,0 x87,0 x86,0 x97,0 x24,0 xf1,
0 xaf,0 x85,0 x3f,0 x3f,0 x25,0 x30,0 x00,0 x02,
0 x01}}, /* 0x38 */
{{0 x9f,0 x7f,0 x7f,0 x83,0 x85,0 x91,0 x1e,0 xf1,
0 xad,0 x81,0 x3f,0 x3f,0 x1f,0 x30,0 x00,0 x02,
0 x01}}, /* 0x39 */
{{0 xa7,0 x7f,0 x7f,0 x88,0 x89,0 x95,0 x26,0 xf1, /* 95 was 15 - illegal HBE! */
0 xb1,0 x85,0 x3f,0 x3f,0 x27,0 x30,0 x00,0 x02,
0 x01}}, /* 0x3a */
{{0 xce,0 x9f,0 x9f,0 x92,0 xa9,0 x17,0 x28,0 xc4,
0 x7a,0 x8e,0 xcf,0 xcf,0 x29,0 x21,0 x00,0 x07,
0 x01}}, /* 0x3b */
{{0 xce,0 x9f,0 x9f,0 x92,0 xa5,0 x17,0 x28,0 xd4,
0 x7a,0 x8e,0 xcf,0 xcf,0 x29,0 x21,0 x00,0 x07,
0 x01}}, /* 0x3c */
{{0 xd3,0 x9f,0 x9f,0 x97,0 xab,0 x1f,0 x2e,0 xd4,
0 x7d,0 x81,0 xcf,0 xcf,0 x2f,0 x21,0 x00,0 x07,
0 x01}}, /* 0x3d */
{{0 xc3,0 x8f,0 x8f,0 x87,0 x9b,0 x0b,0 x82,0 xef, /* 1152x864-75 */
0 x60,0 x83,0 x5f,0 x5f,0 x83,0 x10,0 x00,0 x07,
0 x01}}, /* 0x3e */
{{0 x86,0 x69,0 x69,0 x8A,0 x74,0 x06,0 x8C,0 x15, /* 848x480-38i */
0 x4F,0 x83,0 xEF,0 xEF,0 x8D,0 x30,0 x00,0 x02,
0 x00}}, /* 0x3f */
{{0 x83,0 x69,0 x69,0 x87,0 x6f,0 x1d,0 x03,0 x3E, /* 848x480-60 */
0 xE5,0 x8d,0 xDF,0 xe4,0 x04,0 x00,0 x00,0 x06,
0 x00}}, /* 0x40 */
{{0 x86,0 x6A,0 x6A,0 x8A,0 x74,0 x06,0 x8C,0 x15, /* 856x480-38i */
0 x4F,0 x83,0 xEF,0 xEF,0 x8D,0 x30,0 x00,0 x02,
0 x00}}, /* 0x41 */
{{0 x81,0 x6A,0 x6A,0 x85,0 x70,0 x00,0 x0F,0 x3E, /* 856x480-60 */
0 xEB,0 x8E,0 xDF,0 xDF,0 x10,0 x00,0 x00,0 x02,
0 x00}}, /* 0x42 */
{{0 xdd,0 xa9,0 xa9,0 x81,0 xb4,0 x97,0 x26,0 xfd, /* 1360x768-60 */
0 x01,0 x8d,0 xff,0 x00,0 x27,0 x10,0 x00,0 x03,
0 x01}}, /* 0x43 */
{{0 xd9,0 x8f,0 x8f,0 x9d,0 xba,0 x0a,0 x8a,0 xff, /* 1152x864-84 */
0 x60,0 x8b,0 x5f,0 x5f,0 x8b,0 x10,0 x00,0 x03,
0 x01}}, /* 0x44 */
{{0 xd3,0 x9f,0 x9f,0 x97,0 xab,0 x1f,0 xf1,0 xff, /* 1280x960-85 */
0 xc0,0 x83,0 xbf,0 xbf,0 xf2,0 x10,0 x00,0 x07,
0 x01}}, /* 0x45 */
{{0 xce,0 x9f,0 x9f,0 x92,0 xa9,0 x17,0 x20,0 xf5, /* 1280x768-60 */
0 x03,0 x88,0 xff,0 xff,0 x21,0 x10,0 x00,0 x07,
0 x01}}, /* 0x46 */
{{0 x75,0 x5f,0 x5f,0 x99,0 x66,0 x90,0 x53,0 xf0, /* 768x576, corrected to 60Hz */
0 x41,0 x84,0 x3f,0 x3f,0 x54,0 x00,0 x00,0 x05,
0 x41}}, /* 0x47 */
{{0 xce,0 xa9,0 xa9,0 x92,0 xb1,0 x07,0 x28,0 x52, /* 1360x1024 (Barco iQ Pro R300) */
0 x02,0 x8e,0 xff,0 x00,0 x29,0 x0d,0 x00,0 x03,
0 x00}}, /* 0x48 */
{{0 xcd,0 x8f,0 x8f,0 x91,0 x9b,0 x1b,0 x7a,0 xff, /* 1152x864-60 */
0 x64,0 x8c,0 x5f,0 x62,0 x7b,0 x10,0 x00,0 x07,
0 x41}}, /* 0x49 */
{{0 x5c,0 x4f,0 x4f,0 x80,0 x57,0 x80,0 xa3,0 x1f, /* fake 640x400@60Hz (for LCD and TV, not actually used) */
0 x98,0 x8c,0 x8f,0 x96,0 xa4,0 x30,0 x00,0 x05,
0 x40}}, /* 0x4a */
{{0 x2c,0 x27,0 x27,0 x90,0 x2d,0 x92,0 xa4,0 x1f, /* fake 320x200@60Hz (for LCD and TV, not actually used) */
0 x98,0 x8c,0 x8f,0 x96,0 xa5,0 x30,0 x00,0 x04,
0 x00}} /* 0x4b */
};
static const struct SiS_MCLKData SiS300_MCLKData_630[] =
{
{ 0 x5a,0 x64,0 x80, 66 },
{ 0 xb3,0 x45,0 x80, 83 },
{ 0 x37,0 x61,0 x80,100 },
{ 0 x37,0 x22,0 x80,133 },
{ 0 x37,0 x61,0 x80,100 },
{ 0 x37,0 x61,0 x80,100 },
{ 0 x37,0 x61,0 x80,100 },
{ 0 x37,0 x61,0 x80,100 }
};
static const struct SiS_MCLKData SiS300_MCLKData_300[] =
{
{ 0 x68,0 x43,0 x80,125 },
{ 0 x68,0 x43,0 x80,125 },
{ 0 x68,0 x43,0 x80,125 },
{ 0 x37,0 x61,0 x80,100 },
{ 0 x37,0 x61,0 x80,100 },
{ 0 x37,0 x61,0 x80,100 },
{ 0 x37,0 x61,0 x80,100 },
{ 0 x37,0 x61,0 x80,100 }
};
static struct SiS_VCLKData SiS300_VCLKData[] =
{
{ 0 x1b,0 xe1, 25 }, /* 0x00 */
{ 0 x4e,0 xe4, 28 }, /* 0x01 */
{ 0 x57,0 xe4, 32 }, /* 0x02 */
{ 0 xc3,0 xc8, 36 }, /* 0x03 */
{ 0 x42,0 xc3, 40 }, /* 0x04 */
{ 0 x5d,0 xc4, 45 }, /* 0x05 */
{ 0 x52,0 x65, 50 }, /* 0x06 */
{ 0 x53,0 x65, 50 }, /* 0x07 */
{ 0 x6d,0 x66, 56 }, /* 0x08 */
{ 0 x5a,0 x64, 65 }, /* 0x09 */
{ 0 x46,0 x44, 68 }, /* 0x0a */
{ 0 x3e,0 x43, 75 }, /* 0x0b */
{ 0 x6d,0 x46, 76 }, /* 0x0c */ /* 800x600 | LVDS_2(CH), MITAC(CH); - 730, A901(301B): 0xb1,0x46, 76 */
{ 0 x41,0 x43, 79 }, /* 0x0d */
{ 0 x31,0 x42, 79 }, /* 0x0e */
{ 0 x46,0 x25, 85 }, /* 0x0f */
{ 0 x78,0 x29, 87 }, /* 0x10 */
{ 0 x62,0 x44, 95 }, /* 0x11 */
{ 0 x2b,0 x22,105 }, /* 0x12 */
{ 0 x49,0 x24,106 }, /* 0x13 */
{ 0 xc3,0 x28,108 }, /* 0x14 */
{ 0 x3c,0 x23,109 }, /* 0x15 */
{ 0 xf7,0 x2c,132 }, /* 0x16 */
{ 0 xd4,0 x28,136 }, /* 0x17 */
{ 0 x41,0 x05,158 }, /* 0x18 */
{ 0 x43,0 x05,162 }, /* 0x19 */
{ 0 xe1,0 x0f,175 }, /* 0x1a */
{ 0 xfc,0 x12,189 }, /* 0x1b */
{ 0 xde,0 x26,194 }, /* 0x1c */
{ 0 x54,0 x05,203 }, /* 0x1d */
{ 0 x3f,0 x03,230 }, /* 0x1e */
{ 0 x30,0 x02,234 }, /* 0x1f */
{ 0 x24,0 x01,266 }, /* 0x20 */
{ 0 x52,0 x2a, 54 }, /* 0x21 */ /* 301 TV */
{ 0 x52,0 x6a, 27 }, /* 0x22 */ /* 301 TV */
{ 0 x62,0 x24, 70 }, /* 0x23 */ /* 301 TV */
{ 0 x62,0 x64, 70 }, /* 0x24 */ /* 301 TV */
{ 0 xa8,0 x4c, 30 }, /* 0x25 */ /* 301 TV */
{ 0 x20,0 x26, 33 }, /* 0x26 */ /* 301 TV */
{ 0 x31,0 xc2, 39 }, /* 0x27 */
{ 0 xbf,0 xc8, 35 }, /* 0x28 */ /* 856x480 */
{ 0 x60,0 x36, 30 }, /* 0x29 */ /* CH/UNTSC TEXT | LVDS_2(CH) - 730, A901(301B), Mitac(CH): 0xe0, 0xb6, 30 */
{ 0 x40,0 x4a, 28 }, /* 0x2a */ /* CH-TV */
{ 0 x9f,0 x46, 44 }, /* 0x2b */ /* CH-TV */
{ 0 x97,0 x2c, 26 }, /* 0x2c */ /* CH-TV */
{ 0 x44,0 xe4, 25 }, /* 0x2d */ /* CH-TV */
{ 0 x7e,0 x32, 47 }, /* 0x2e */ /* CH-TV */
{ 0 x8a,0 x24, 31 }, /* 0x2f */ /* CH/PAL TEXT | LVDS_2(CH), Mitac(CH) - 730, A901(301B): 0x57, 0xe4, 31 */
{ 0 x97,0 x2c, 26 }, /* 0x30 */ /* CH-TV */
{ 0 xce,0 x3c, 39 }, /* 0x31 */ /* CH-TV */
{ 0 x52,0 x4a, 36 }, /* 0x32 */ /* CH/PAL 800x600 5/6 */
{ 0 x34,0 x61, 95 }, /* 0x33 */
{ 0 x78,0 x27,108 }, /* 0x34 */ /* Replacement for index 0x14 for 630 (?) */
{ 0 x70,0 x28, 90 }, /* 0x35 */ /* 1152x864@60 */
{ 0 x45,0 x6b, 21 }, /* 0x36 */ /* Chrontel SuperOverscan */
{ 0 x52,0 xe2, 49 }, /* 0x37 */ /* 16:9 modes */
{ 0 x2b,0 x61, 78 }, /* 0x38 */ /* 16:9 modes */
{ 0 x70,0 x44,108 }, /* 0x39 */ /* 16:9 modes */
{ 0 x54,0 x42,135 }, /* 0x3a */ /* 16:9 modes */
{ 0 x41,0 x22,157 }, /* 0x3b */ /* 16:9 modes */
{ 0 x52,0 x07,149 }, /* 0x3c */ /* 1280x960-85 */
{ 0 x62,0 xc6, 34 }, /* 0x3d */ /* 848x480-60 */
{ 0 x30,0 x23, 88 }, /* 0x3e */ /* 1360x768-60 */
{ 0 x70,0 x29, 81 }, /* 0x3f */ /* 1280x768-60 */
{ 0 x72,0 x2a, 76 }, /* 0x40 */ /* test for SiS730 --- LIMIT for table (&0x3f) */
{ 0 x15,0 x21, 79 }, /* 0x41 */ /* test for SiS730 */
{ 0 xa1,0 x42,108 }, /* 0x42 */ /* 1280x960 LCD */
{ 0 x37,0 x61,100 }, /* 0x43 */ /* 1280x960 LCD */
{ 0 xe3,0 x9a,106 }, /* 0x44 */ /* 1360x1024 - special for Barco iQ R300 */
{ 0 xe2,0 x46,135 }, /* 0x45 */ /* 1280x1024-75, better clock for VGA2 */
{ 0 x70,0 x29, 81 }, /* 0x46 */ /* unused */
{ 0 , 0 , 0 }, /* 0x47 custom (will be filled out) */
{ 0 xce,0 x25,189 }, /* 0x48 */ /* Replacement for index 0x1b for 730 (and 540?) */
{ 0 x15,0 xe1, 20 }, /* 0x49 */ /* 640x400@60 (fake, not actually used) */
{ 0 x5f,0 xc6, 33 }, /* 0x4a */ /* 720x576@60 */
{ 0 x37,0 x5a, 10 }, /* 0x4b */ /* 320x200@60 (fake, not actually used) */
{ 0 x2b,0 xc2, 35 } /* 0x4c */ /* 768@576@60 */
};
static const unsigned char SiS300_SR15[4 * 8 ] =
{
0 x01,0 x09,0 xa3,0 x00,
0 x43,0 x43,0 x43,0 x00,
0 x1e,0 x1e,0 x1e,0 x00,
0 x2a,0 x2a,0 x2a,0 x00,
0 x06,0 x06,0 x06,0 x00,
0 x00,0 x00,0 x00,0 x00,
0 x00,0 x00,0 x00,0 x00,
0 x00,0 x00,0 x00,0 x00
};
static const struct SiS_PanelDelayTbl SiS300_PanelDelayTbl[] =
{
{{0 x05,0 xaa}},
{{0 x05,0 x14}},
{{0 x05,0 x36}},
{{0 x05,0 x14}},
{{0 x05,0 x14}},
{{0 x05,0 x14}},
{{0 x05,0 x90}},
{{0 x05,0 x90}},
{{0 x05,0 x14}},
{{0 x05,0 x14}},
{{0 x05,0 x14}},
{{0 x05,0 x14}},
{{0 x20,0 x80}},
{{0 x05,0 x14}},
{{0 x05,0 x40}},
{{0 x05,0 x60}}
};
/**************************************************************/
/* SIS VIDEO BRIDGE ----------------------------------------- */
/**************************************************************/
static const struct SiS_LCDData SiS300_St2LCD1024x768Data[] =
{
{ 62 , 25 , 800 , 546 ,1344 , 806 },
{ 32 , 15 , 930 , 546 ,1344 , 806 },
{ 32 , 15 , 930 , 546 ,1344 , 806 },
{ 104 , 45 , 945 , 496 ,1344 , 806 },
{ 62 , 25 , 800 , 546 ,1344 , 806 },
{ 31 , 18 ,1008 , 624 ,1344 , 806 },
{ 1 , 1 ,1344 , 806 ,1344 , 806 }
};
static const struct SiS_LCDData SiS300_ExtLCD1024x768Data[] =
{
{ 12 , 5 , 896 , 512 ,1344 , 806 },
{ 12 , 5 , 896 , 510 ,1344 , 806 },
{ 32 , 15 ,1008 , 505 ,1344 , 806 },
{ 32 , 15 ,1008 , 514 ,1344 , 806 },
{ 12 , 5 , 896 , 500 ,1344 , 806 },
{ 42 , 25 ,1024 , 625 ,1344 , 806 },
{ 1 , 1 ,1344 , 806 ,1344 , 806 },
{ 12 , 5 , 896 , 500 ,1344 , 806 },
{ 42 , 25 ,1024 , 625 ,1344 , 806 },
{ 1 , 1 ,1344 , 806 ,1344 , 806 },
{ 12 , 5 , 896 , 500 ,1344 , 806 },
{ 42 , 25 ,1024 , 625 ,1344 , 806 },
{ 1 , 1 ,1344 , 806 ,1344 , 806 }
};
static const struct SiS_LCDData SiS300_St2LCD1280x1024Data[] =
{
{ 22 , 5 , 800 , 510 ,1650 ,1088 },
{ 22 , 5 , 800 , 510 ,1650 ,1088 },
{ 176 , 45 , 900 , 510 ,1650 ,1088 },
{ 176 , 45 , 900 , 510 ,1650 ,1088 },
{ 22 , 5 , 800 , 510 ,1650 ,1088 },
{ 13 , 5 ,1024 , 675 ,1560 ,1152 },
{ 16 , 9 ,1266 , 804 ,1688 ,1072 },
{ 1 , 1 ,1688 ,1066 ,1688 ,1066 }
};
static const struct SiS_LCDData SiS300_ExtLCD1280x1024Data[] =
{
{ 211 , 60 ,1024 , 501 ,1688 ,1066 },
{ 211 , 60 ,1024 , 508 ,1688 ,1066 },
{ 211 , 60 ,1024 , 501 ,1688 ,1066 },
{ 211 , 60 ,1024 , 508 ,1688 ,1066 },
{ 211 , 60 ,1024 , 500 ,1688 ,1066 },
{ 211 , 75 ,1024 , 625 ,1688 ,1066 },
{ 211 , 120 ,1280 , 798 ,1688 ,1066 },
{ 1 , 1 ,1688 ,1066 ,1688 ,1066 }
};
static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_1[] =
{ /* VESA Timing */
{{0 x21,0 x12,0 xbf,0 xe4,0 xc0,0 x21,0 x45,0 x09,0 x00,0 xa9,0 x09,0 x04}},
{{0 x2c,0 x12,0 x9a,0 xae,0 x88,0 x21,0 x45,0 x09,0 x00,0 xa9,0 x09,0 x04}},
{{0 x21,0 x12,0 xbf,0 xe4,0 xc0,0 x21,0 x45,0 x09,0 x00,0 xa9,0 x09,0 x04}},
{{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00}},
{{0 x22,0 x13,0 xfe,0 x25,0 xff,0 x21,0 x45,0 x0a,0 x00,0 xa9,0 x0d,0 x04}},
{{0 x22,0 x13,0 xfe,0 x25,0 xff,0 x21,0 x45,0 x0a,0 x00,0 xa9,0 x0d,0 x04}},
{{0 x22,0 x13,0 xfe,0 x25,0 xff,0 x21,0 x45,0 x0a,0 x00,0 xa9,0 x0d,0 x04}}
};
static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_2[] =
{ /* Non-VESA */
{{0 x28,0 x12,0 xa3,0 xd0,0 xaa,0 x5a,0 x45,0 x0a,0 x07,0 xfa,0 x0a,0 x24}},
{{0 x2c,0 x12,0 x9a,0 xae,0 x88,0 x5a,0 x45,0 x0a,0 x07,0 xfa,0 x0a,0 x24}},
{{0 x28,0 x12,0 xa3,0 xd0,0 xaa,0 x5a,0 x45,0 x0a,0 x07,0 xfa,0 x0a,0 x24}},
{{0 x2c,0 x12,0 x9a,0 xae,0 x88,0 x5a,0 x45,0 x0a,0 x07,0 xfa,0 x0a,0 x24}},
{{0 x28,0 x13,0 xe7,0 x0b,0 xe8,0 x5a,0 x45,0 x0a,0 x07,0 xfa,0 x0a,0 x24}},
{{0 x38,0 x18,0 x16,0 x00,0 x00,0 x5a,0 x45,0 x0a,0 x07,0 xfa,0 x0a,0 x24}},
{{0 x36,0 x13,0 x13,0 x25,0 xff,0 x5a,0 x45,0 x0a,0 x07,0 xfa,0 x0a,0 x24}}
};
static const struct SiS_Part2PortTbl SiS300_CRT2Part2_1024x768_3[] =
{
{{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00}}
};
/**************************************************************/
/* LVDS/Chrontel -------------------------------------------- */
/**************************************************************/
/* Custom data for Barco iQ R series */
static const struct SiS_LVDSData SiS300_LVDSBARCO1366Data_1[]=
{
{ 832 , 438 ,1331 , 806 },
{ 832 , 388 ,1331 , 806 },
{ 832 , 438 ,1331 , 806 },
{ 832 , 388 ,1331 , 806 },
{ 832 , 518 ,1331 , 806 },
{1050 , 638 ,1344 , 806 },
{1344 , 806 ,1344 , 806 },
{1688 ,1066 ,1688 ,1066 },
{1688 ,1066 ,1688 ,1066 } /* 1360x1024 */
};
/* Custom data for Barco iQ R series */
static const struct SiS_LVDSData SiS300_LVDSBARCO1366Data_2[]=
{
{1344 , 806 ,1344 , 806 },
{1344 , 806 ,1344 , 806 },
{1344 , 806 ,1344 , 806 },
{1344 , 806 ,1344 , 806 },
{1344 , 806 ,1344 , 806 },
{1344 , 806 ,1344 , 806 },
{1344 , 806 ,1344 , 806 },
{1688 ,1066 ,1688 ,1066 },
{1688 ,1066 ,1688 ,1066 } /* 1360x1024 */
};
/* Custom data for Barco iQ G series */
static const struct SiS_LVDSData SiS300_LVDSBARCO1024Data_1[]=
{
{ 832 , 438 ,1331 , 806 },
{ 832 , 409 ,1331 , 806 },
{ 832 , 438 ,1331 , 806 },
{ 832 , 409 ,1331 , 806 },
{ 832 , 518 ,1331 , 806 }, /* 640x480 */
{1050 , 638 ,1344 , 806 }, /* 800x600 */
{1344 , 806 ,1344 , 806 }, /* 1024x768 */
};
/* Custom data for 848x480 and 856x480 parallel LVDS panels */
static const struct SiS_LVDSData SiS300_LVDS848x480Data_1[]=
{
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{1088 , 525 ,1088 , 525 }, /* 640x480 TODO */
{1088 , 525 ,1088 , 525 }, /* 800x600 TODO */
{1088 , 525 ,1088 , 525 }, /* 1024x768 TODO */
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{1088 , 525 ,1088 , 525 }, /* 848x480 */
{1088 , 525 ,1088 , 525 }, /* 856x480 */
{1088 , 525 ,1088 , 525 } /* 1360x768 TODO */
};
/* Custom data for 848x480 parallel panel */
static const struct SiS_LVDSData SiS300_LVDS848x480Data_2[]=
{
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{1088 , 525 ,1088 , 525 }, /* 640x480 */
{1088 , 525 ,1088 , 525 }, /* 800x600 */
{1088 , 525 ,1088 , 525 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{1088 , 525 ,1088 , 525 }, /* 848x480 */
{1088 , 525 ,1088 , 525 }, /* 856x480 */
{1088 , 525 ,1088 , 525 } /* 1360x768 TODO */
};
static const struct SiS_LVDSData SiS300_CHTVUPALData[] =
{
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{ 840 , 750 , 840 , 750 },
{ 936 , 836 , 936 , 836 }
};
static const struct SiS_LVDSData SiS300_CHTVOPALData[] =
{
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{ 840 , 625 , 840 , 625 },
{ 960 , 750 , 960 , 750 }
};
static const struct SiS_LVDSData SiS300_CHTVSOPALData[] =
{
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{1008 , 625 ,1008 , 625 },
{ 840 , 500 , 840 , 500 },
{ 944 , 625 , 944 , 625 }
};
/* Custom des data for Barco iQ R200/300/400 (BIOS 2.00.07) */
static const struct SiS_LVDSDes SiS300_PanelType04_1a[] = /* 1280x1024 (1366x1024) */
{
{1330 , 798 }, /* 320x200 */
{1330 , 794 },
{1330 , 798 },
{1330 , 794 },
{1330 , 0 }, /* 640x480 / 320x240 */
{1343 , 0 }, /* 800x600 / 400x300 */
{ 0 , 805 }, /* 1024x768 / 512x384 */
{1688 ,1066 }, /* 1280x1024 */
{ 0 , 0 } /* 1360x1024 */
};
static const struct SiS_LVDSDes SiS300_PanelType04_2a[] =
{
{1152 , 622 },
{1152 , 597 },
{1152 , 622 },
{1152 , 597 },
{1152 , 662 },
{1232 , 722 },
{ 0 , 805 },
{1688 ,1066 },
{ 0 , 0 }
};
/* Custom des data for Barco iQ G200/300/400 (BIOS 2.00.07) */
static const struct SiS_LVDSDes SiS300_PanelType04_1b[] = /* 1024x768 */
{
{1330 , 798 }, /* 320x200 */
{1330 , 794 },
{1330 , 798 },
{1330 , 794 },
{1330 , 0 }, /* 640x480 / 320x240 */
{1343 , 0 }, /* 800x600 / 400x300 */
{ 0 , 805 } /* 1024x768 / 512x384 */
};
static const struct SiS_LVDSDes SiS300_PanelType04_2b[] =
{
{1152 , 622 },
{1152 , 597 },
{1152 , 622 },
{1152 , 597 },
{1152 , 662 },
{1232 , 722 },
{ 0 , 805 }
};
/* CRT1 CRTC for slave modes */
static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1UNTSC[] =
{
{{0 x64,0 x4f,0 x88,0 x56,0 x9f,0 x56,0 x3e,
0 xe8,0 x84,0 x8f,0 x57,0 x20,0 x00,0 x01,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x56,0 x9f,0 x56,0 x3e,
0 xd0,0 x82,0 x5d,0 x57,0 x00,0 x00,0 x01,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x56,0 x9f,0 x56,0 x3e,
0 xe8,0 x84,0 x8f,0 x57,0 x20,0 x00,0 x01,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x56,0 x9f,0 x56,0 x3e,
0 xd0,0 x82,0 x5d,0 x57,0 x00,0 x00,0 x01,
0 x00 }},
{{0 x5d,0 x4f,0 x81,0 x53,0 x9c,0 x56,0 xba,
0 x18,0 x84,0 xdf,0 x57,0 x00,0 x00,0 x01,
0 x00 }},
{{0 x80,0 x63,0 x84,0 x6c,0 x17,0 xec,0 xf0,
0 x90,0 x8c,0 x57,0 xed,0 x20,0 x00,0 x06,
0 x01 }}
};
static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1ONTSC[] =
{
{{0 x64,0 x4f,0 x88,0 x5a,0 x9f,0 x0b,0 x3e,
0 xc0,0 x84,0 x8f,0 x0c,0 x20,0 x00,0 x01,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x5a,0 x9f,0 x0b,0 x3e,
0 xb0,0 x8d,0 x5d,0 x0c,0 x00,0 x00,0 x01,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x5a,0 x9f,0 x0b,0 x3e,
0 xc0,0 x84,0 x8f,0 x0c,0 x20,0 x00,0 x01,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x5a,0 x9f,0 x0b,0 x3e,
0 xb0,0 x8d,0 x5d,0 x0c,0 x00,0 x00,0 x01,
0 x00 }},
{{0 x5d,0 x4f,0 x81,0 x56,0 x9c,0 x0b,0 x3e,
0 xe8,0 x84,0 xdf,0 x0c,0 x00,0 x00,0 x01,
0 x00 }},
{{0 x7d,0 x63,0 x81,0 x6a,0 x16,0 xba,0 xf0,
0 x7f,0 x86,0 x57,0 xbb,0 x00,0 x00,0 x06,
0 x01 }}
};
static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1UPAL[] =
{
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xf8,0 x83,0 x8f,0 x70,0 x20,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xde,0 x81,0 x5d,0 x70,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xf8,0 x83,0 x8f,0 x70,0 x20,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xde,0 x81,0 x5d,0 x70,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x55,0 x80,0 xec,0 xba,
0 x50,0 x84,0 xdf,0 xed,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x70,0 x63,0 x94,0 x68,0 x8d,0 x42,0 xf1,
0 xc8,0 x8c,0 x57,0 xe9,0 x20,0 x00,0 x05,
0 x01 }}
};
static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1OPAL[] =
{
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xf0,0 x83,0 x8f,0 x70,0 x20,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xde,0 x81,0 x5d,0 x70,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xf0,0 x83,0 x8f,0 x70,0 x20,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xde,0 x81,0 x5d,0 x70,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x55,0 x80,0 x6f,0 xba,
0 x20,0 x83,0 xdf,0 x70,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x73,0 x63,0 x97,0 x69,0 x8e,0 xec,0 xf0,
0 x90,0 x8c,0 x57,0 xed,0 x20,0 x00,0 x05,
0 x01 }}
};
static const struct SiS_LVDSCRT1Data SiS300_CHTVCRT1SOPAL[] =
{
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xf0,0 x83,0 x8f,0 x70,0 x20,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xde,0 x81,0 x5d,0 x70,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xf0,0 x83,0 x8f,0 x70,0 x20,0 x00,0 x05,
0 x00 }},
{{0 x79,0 x4f,0 x9d,0 x5a,0 x90,0 x6f,0 x3e,
0 xde,0 x81,0 x5d,0 x70,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x64,0 x4f,0 x88,0 x55,0 x80,0 x6f,0 xba, /* TODO */
0 x20,0 x83,0 xdf,0 x70,0 x00,0 x00,0 x05,
0 x00 }},
{{0 x73,0 x63,0 x97,0 x69,0 x8e,0 xec,0 xf0, /* TODO */
0 x90,0 x8c,0 x57,0 xed,0 x20,0 x00,0 x05,
0 x01 }}
};
static const struct SiS_CHTVRegData SiS300_CHTVReg_UNTSC[] =
{
{{0 x4a,0 x94,0 x00,0 x48,0 xfe,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x4a,0 x94,0 x00,0 x48,0 xfe,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x4a,0 x94,0 x00,0 x48,0 xfe,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x4a,0 x94,0 x00,0 x48,0 xfe,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x6a,0 x6a,0 x00,0 x2d,0 xfa,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }}, /* Mode 17: 640x480 NTSC 7/8 */
{{0 x8d,0 xc4,0 x00,0 x3b,0 xfb,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }} /* Mode 24: 800x600 NTSC 7/10 */
};
static const struct SiS_CHTVRegData SiS300_CHTVReg_ONTSC[] =
{
{{0 x49,0 x94,0 x00,0 x34,0 xfe,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x49,0 x94,0 x00,0 x34,0 xfe,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x49,0 x94,0 x00,0 x34,0 xfe,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x49,0 x94,0 x00,0 x34,0 xfe,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x69,0 x6a,0 x00,0 x1e,0 xfd,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }}, /* Mode 16: 640x480 NTSC 1/1 */
{{0 x8c,0 xb4,0 x00,0 x32,0 xf9,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }} /* Mode 23: 800x600 NTSC 3/4 */
};
static const struct SiS_CHTVRegData SiS300_CHTVReg_UPAL[] =
{
{{0 x41,0 x12,0 x01,0 x50,0 x34,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x41,0 x12,0 x00,0 x50,0 x00,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x41,0 x12,0 x01,0 x50,0 x34,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x41,0 x12,0 x00,0 x50,0 x00,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x63,0 x94,0 x01,0 x50,0 x30,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }}, /* Mode 15: 640x480 PAL 5/6 */
{{0 x84,0 x64,0 x01,0 x4e,0 x2f,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }} /* Mode 21: 800x600 PAL 3/4 */
};
static const struct SiS_CHTVRegData SiS300_CHTVReg_OPAL[] =
{
{{0 x41,0 x12,0 x01,0 x50,0 x34,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }}, /* Mode 9: 640x400 PAL 1/1 */
{{0 x41,0 x12,0 x00,0 x50,0 x00,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x41,0 x12,0 x01,0 x50,0 x34,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x41,0 x12,0 x00,0 x50,0 x00,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x61,0 x94,0 x01,0 x36,0 x30,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }}, /* Mode 14: 640x480 PAL 1/1 */
{{0 x83,0 x76,0 x01,0 x40,0 x31,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }} /* Mode 20: 800x600 PAL 5/6 */
};
static const struct SiS_CHTVRegData SiS300_CHTVReg_SOPAL[] =
{
{{0 x41,0 x12,0 x01,0 x50,0 x34,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }}, /* Mode 9: 640x400 PAL 1/1 */
{{0 x41,0 x12,0 x00,0 x50,0 x00,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x41,0 x12,0 x01,0 x50,0 x34,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x41,0 x12,0 x00,0 x50,0 x00,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }},
{{0 x60,0 x30,0 x00,0 x10,0 x00,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }}, /* Mode 13: 640x480 PAL 5/4 */
{{0 x81,0 x50,0 x00,0 x1b,0 x00,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }} /* Mode 19: 800x600 PAL 1/1 */
};
static const unsigned char SiS300_CHTVVCLKUNTSC[] = { 0 x29,0 x29,0 x29,0 x29,0 x2a,0 x2e };
static const unsigned char SiS300_CHTVVCLKONTSC[] = { 0 x2c,0 x2c,0 x2c,0 x2c,0 x2d,0 x2b };
static const unsigned char SiS300_CHTVVCLKUPAL[] = { 0 x2f,0 x2f,0 x2f,0 x2f,0 x2f,0 x31 };
static const unsigned char SiS300_CHTVVCLKOPAL[] = { 0 x2f,0 x2f,0 x2f,0 x2f,0 x30,0 x32 };
static const unsigned char SiS300_CHTVVCLKSOPAL[] = { 0 x2f,0 x2f,0 x2f,0 x2f,0 x36,0 x29 };
Messung V0.5 in Prozent C=94 H=95 G=94