/* $XFree86$ */
/* $XdotOrg$ */
/*
* Data and prototypes for init.c
*
* 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>
*
*/
#ifndef _INIT_H_
#define _INIT_H_
#include "initdef.h"
#include "vgatypes.h"
#include "vstruct.h"
#ifdef SIS_CP
#undef SIS_CP
#endif
#include <linux/types.h>
#include <asm /io.h>
#include <linux/fb.h>
#include "sis.h"
#include <video/sisfb.h>
/* Mode numbers */
static const unsigned short ModeIndex_320x200[] = {0 x59, 0 x41, 0 x00, 0 x4f};
static const unsigned short ModeIndex_320x240[] = {0 x50, 0 x56, 0 x00, 0 x53};
static const unsigned short ModeIndex_320x240_FSTN[] = {0 x5a, 0 x5b, 0 x00, 0 x00}; /* FSTN */
static const unsigned short ModeIndex_400x300[] = {0 x51, 0 x57, 0 x00, 0 x54};
static const unsigned short ModeIndex_512x384[] = {0 x52, 0 x58, 0 x00, 0 x5c};
static const unsigned short ModeIndex_640x400[] = {0 x2f, 0 x5d, 0 x00, 0 x5e};
static const unsigned short ModeIndex_640x480[] = {0 x2e, 0 x44, 0 x00, 0 x62};
static const unsigned short ModeIndex_720x480[] = {0 x31, 0 x33, 0 x00, 0 x35};
static const unsigned short ModeIndex_720x576[] = {0 x32, 0 x34, 0 x00, 0 x36};
static const unsigned short ModeIndex_768x576[] = {0 x5f, 0 x60, 0 x00, 0 x61};
static const unsigned short ModeIndex_800x480[] = {0 x70, 0 x7a, 0 x00, 0 x76};
static const unsigned short ModeIndex_800x600[] = {0 x30, 0 x47, 0 x00, 0 x63};
static const unsigned short ModeIndex_848x480[] = {0 x39, 0 x3b, 0 x00, 0 x3e};
static const unsigned short ModeIndex_856x480[] = {0 x3f, 0 x42, 0 x00, 0 x45};
static const unsigned short ModeIndex_960x540[] = {0 x1d, 0 x1e, 0 x00, 0 x1f}; /* 315 series only */
static const unsigned short ModeIndex_960x600[] = {0 x20, 0 x21, 0 x00, 0 x22}; /* 315 series only */
static const unsigned short ModeIndex_1024x768[] = {0 x38, 0 x4a, 0 x00, 0 x64};
static const unsigned short ModeIndex_1024x576[] = {0 x71, 0 x74, 0 x00, 0 x77};
static const unsigned short ModeIndex_1024x600[] = {0 x20, 0 x21, 0 x00, 0 x22}; /* 300 series only */
static const unsigned short ModeIndex_1280x1024[] = {0 x3a, 0 x4d, 0 x00, 0 x65};
static const unsigned short ModeIndex_1280x960[] = {0 x7c, 0 x7d, 0 x00, 0 x7e};
static const unsigned short ModeIndex_1152x768[] = {0 x23, 0 x24, 0 x00, 0 x25}; /* 300 series only */
static const unsigned short ModeIndex_1152x864[] = {0 x29, 0 x2a, 0 x00, 0 x2b};
static const unsigned short ModeIndex_300_1280x768[] = {0 x55, 0 x5a, 0 x00, 0 x5b};
static const unsigned short ModeIndex_310_1280x768[] = {0 x23, 0 x24, 0 x00, 0 x25};
static const unsigned short ModeIndex_1280x720[] = {0 x79, 0 x75, 0 x00, 0 x78};
static const unsigned short ModeIndex_1280x800[] = {0 x14, 0 x15, 0 x00, 0 x16};
static const unsigned short ModeIndex_1280x854[] = {0 x1a, 0 x1b, 0 x00, 0 x1c};
static const unsigned short ModeIndex_1360x768[] = {0 x48, 0 x4b, 0 x00, 0 x4e};
static const unsigned short ModeIndex_300_1360x1024[]= {0 x67, 0 x6f, 0 x00, 0 x72}; /* 300 series, BARCO only */
static const unsigned short ModeIndex_1400x1050[] = {0 x26, 0 x27, 0 x00, 0 x28}; /* 315 series only */
static const unsigned short ModeIndex_1680x1050[] = {0 x17, 0 x18, 0 x00, 0 x19}; /* 315 series only */
static const unsigned short ModeIndex_1600x1200[] = {0 x3c, 0 x3d, 0 x00, 0 x66};
static const unsigned short ModeIndex_1920x1080[] = {0 x2c, 0 x2d, 0 x00, 0 x73}; /* 315 series only */
static const unsigned short ModeIndex_1920x1440[] = {0 x68, 0 x69, 0 x00, 0 x6b};
static const unsigned short ModeIndex_300_2048x1536[]= {0 x6c, 0 x6d, 0 x00, 0 x00};
static const unsigned short ModeIndex_310_2048x1536[]= {0 x6c, 0 x6d, 0 x00, 0 x6e};
static const unsigned char SiS_MDA_DAC[] =
{
0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,
0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,
0 x3F,0 x3F,0 x3F,0 x3F,0 x3F,0 x3F,0 x3F,0 x3F,
0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,
0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,
0 x3F,0 x3F,0 x3F,0 x3F,0 x3F,0 x3F,0 x3F,0 x3F
};
static const unsigned char SiS_CGA_DAC[] =
{
0 x00,0 x10,0 x04,0 x14,0 x01,0 x11,0 x09,0 x15,
0 x00,0 x10,0 x04,0 x14,0 x01,0 x11,0 x09,0 x15,
0 x2A,0 x3A,0 x2E,0 x3E,0 x2B,0 x3B,0 x2F,0 x3F,
0 x2A,0 x3A,0 x2E,0 x3E,0 x2B,0 x3B,0 x2F,0 x3F,
0 x00,0 x10,0 x04,0 x14,0 x01,0 x11,0 x09,0 x15,
0 x00,0 x10,0 x04,0 x14,0 x01,0 x11,0 x09,0 x15,
0 x2A,0 x3A,0 x2E,0 x3E,0 x2B,0 x3B,0 x2F,0 x3F,
0 x2A,0 x3A,0 x2E,0 x3E,0 x2B,0 x3B,0 x2F,0 x3F
};
static const unsigned char SiS_EGA_DAC[] =
{
0 x00,0 x10,0 x04,0 x14,0 x01,0 x11,0 x05,0 x15,
0 x20,0 x30,0 x24,0 x34,0 x21,0 x31,0 x25,0 x35,
0 x08,0 x18,0 x0C,0 x1C,0 x09,0 x19,0 x0D,0 x1D,
0 x28,0 x38,0 x2C,0 x3C,0 x29,0 x39,0 x2D,0 x3D,
0 x02,0 x12,0 x06,0 x16,0 x03,0 x13,0 x07,0 x17,
0 x22,0 x32,0 x26,0 x36,0 x23,0 x33,0 x27,0 x37,
0 x0A,0 x1A,0 x0E,0 x1E,0 x0B,0 x1B,0 x0F,0 x1F,
0 x2A,0 x3A,0 x2E,0 x3E,0 x2B,0 x3B,0 x2F,0 x3F
};
static const unsigned char SiS_VGA_DAC[] =
{
0 x00,0 x10,0 x04,0 x14,0 x01,0 x11,0 x09,0 x15,
0 x2A,0 x3A,0 x2E,0 x3E,0 x2B,0 x3B,0 x2F,0 x3F,
0 x00,0 x05,0 x08,0 x0B,0 x0E,0 x11,0 x14,0 x18,
0 x1C,0 x20,0 x24,0 x28,0 x2D,0 x32,0 x38,0 x3F,
0 x00,0 x10,0 x1F,0 x2F,0 x3F,0 x1F,0 x27,0 x2F,
0 x37,0 x3F,0 x2D,0 x31,0 x36,0 x3A,0 x3F,0 x00,
0 x07,0 x0E,0 x15,0 x1C,0 x0E,0 x11,0 x15,0 x18,
0 x1C,0 x14,0 x16,0 x18,0 x1A,0 x1C,0 x00,0 x04,
0 x08,0 x0C,0 x10,0 x08,0 x0A,0 x0C,0 x0E,0 x10,
0 x0B,0 x0C,0 x0D,0 x0F,0 x10
};
static const struct SiS_St SiS_SModeIDTable[] =
{
{0 x01,0 x9208,0 x01,0 x00,0 x00,0 x00,0 x01,0 x00,0 x40},
{0 x01,0 x1210,0 x14,0 x01,0 x01,0 x00,0 x01,0 x00,0 x40},
{0 x01,0 x1010,0 x17,0 x02,0 x02,0 x00,0 x01,0 x01,0 x40},
{0 x03,0 x8208,0 x03,0 x00,0 x00,0 x00,0 x01,0 x02,0 x40},
{0 x03,0 x0210,0 x16,0 x01,0 x01,0 x00,0 x01,0 x02,0 x40},
{0 x03,0 x0010,0 x18,0 x02,0 x02,0 x00,0 x01,0 x03,0 x40},
{0 x05,0 x9209,0 x05,0 x00,0 x00,0 x00,0 x00,0 x04,0 x40},
{0 x06,0 x8209,0 x06,0 x00,0 x00,0 x00,0 x00,0 x05,0 x40},
{0 x07,0 x0000,0 x07,0 x03,0 x03,0 x00,0 x01,0 x03,0 x40},
{0 x07,0 x0000,0 x19,0 x02,0 x02,0 x00,0 x01,0 x03,0 x40},
{0 x0d,0 x920a,0 x0d,0 x00,0 x00,0 x00,0 x00,0 x04,0 x40},
{0 x0e,0 x820a,0 x0e,0 x00,0 x00,0 x00,0 x00,0 x05,0 x40},
{0 x0f,0 x0202,0 x11,0 x01,0 x01,0 x00,0 x00,0 x05,0 x40},
{0 x10,0 x0212,0 x12,0 x01,0 x01,0 x00,0 x00,0 x05,0 x40},
{0 x11,0 x0212,0 x1a,0 x04,0 x04,0 x00,0 x00,0 x05,0 x40},
{0 x12,0 x0212,0 x1b,0 x04,0 x04,0 x00,0 x00,0 x05,0 x40},
{0 x13,0 x021b,0 x1c,0 x00,0 x00,0 x00,0 x00,0 x04,0 x40},
{0 x12,0 x0010,0 x18,0 x02,0 x02,0 x00,0 x00,0 x05,0 x40},
{0 x12,0 x0210,0 x18,0 x01,0 x01,0 x00,0 x00,0 x05,0 x40},
{0 xff,0 x0000,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00}
};
static const struct SiS_StResInfo_S SiS_StResInfo[]=
{
{ 640 ,400 },
{ 640 ,350 },
{ 720 ,400 },
{ 720 ,350 },
{ 640 ,480 }
};
static const struct SiS_ModeResInfo_S SiS_ModeResInfo[] =
{
{ 320 , 200 , 8 , 8 }, /* 0x00 */
{ 320 , 240 , 8 , 8 }, /* 0x01 */
{ 320 , 400 , 8 , 8 }, /* 0x02 */
{ 400 , 300 , 8 , 8 }, /* 0x03 */
{ 512 , 384 , 8 , 8 }, /* 0x04 */
{ 640 , 400 , 8 ,16 }, /* 0x05 */
{ 640 , 480 , 8 ,16 }, /* 0x06 */
{ 800 , 600 , 8 ,16 }, /* 0x07 */
{ 1024 , 768 , 8 ,16 }, /* 0x08 */
{ 1280 ,1024 , 8 ,16 }, /* 0x09 */
{ 1600 ,1200 , 8 ,16 }, /* 0x0a */
{ 1920 ,1440 , 8 ,16 }, /* 0x0b */
{ 2048 ,1536 , 8 ,16 }, /* 0x0c */
{ 720 , 480 , 8 ,16 }, /* 0x0d */
{ 720 , 576 , 8 ,16 }, /* 0x0e */
{ 1280 , 960 , 8 ,16 }, /* 0x0f */
{ 800 , 480 , 8 ,16 }, /* 0x10 */
{ 1024 , 576 , 8 ,16 }, /* 0x11 */
{ 1280 , 720 , 8 ,16 }, /* 0x12 */
{ 856 , 480 , 8 ,16 }, /* 0x13 */
{ 1280 , 768 , 8 ,16 }, /* 0x14 */
{ 1400 ,1050 , 8 ,16 }, /* 0x15 */
{ 1152 , 864 , 8 ,16 }, /* 0x16 */
{ 848 , 480 , 8 ,16 }, /* 0x17 */
{ 1360 , 768 , 8 ,16 }, /* 0x18 */
{ 1024 , 600 , 8 ,16 }, /* 0x19 */
{ 1152 , 768 , 8 ,16 }, /* 0x1a */
{ 768 , 576 , 8 ,16 }, /* 0x1b */
{ 1360 ,1024 , 8 ,16 }, /* 0x1c */
{ 1680 ,1050 , 8 ,16 }, /* 0x1d */
{ 1280 , 800 , 8 ,16 }, /* 0x1e */
{ 1920 ,1080 , 8 ,16 }, /* 0x1f */
{ 960 , 540 , 8 ,16 }, /* 0x20 */
{ 960 , 600 , 8 ,16 }, /* 0x21 */
{ 1280 , 854 , 8 ,16 } /* 0x22 */
};
#if defined (CONFIG_FB_SIS_300) || defined (CONFIG_FB_SIS_315)
static const struct SiS_StandTable_S SiS_StandTable[]=
{
/* 0x00: MD_0_200 */
{
0 x28,0 x18,0 x08,0 x0800,
{0 x09,0 x03,0 x00,0 x02},
0 x63,
{0 x2d,0 x27,0 x28,0 x90,0 x2b,0 xa0,0 xbf,0 x1f,
0 x00,0 xc7,0 x06,0 x07,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x14,0 x1f,0 x96,0 xb9,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,
0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,
0 x08,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x01: MD_1_200 */
{
0 x28,0 x18,0 x08,0 x0800,
{0 x09,0 x03,0 x00,0 x02},
0 x63,
{0 x2d,0 x27,0 x28,0 x90,0 x2b,0 xa0,0 xbf,0 x1f,
0 x00,0 xc7,0 x06,0 x07,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x14,0 x1f,0 x96,0 xb9,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,
0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,
0 x08,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x02: MD_2_200 */
{
0 x50,0 x18,0 x08,0 x1000,
{0 x01,0 x03,0 x00,0 x02},
0 x63,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f,
0 x00,0 xc7,0 x06,0 x07,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x28,0 x1f,0 x96,0 xb9,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,
0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,
0 x08,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x03: MD_3_200 - mode 0x03 - 0 */
{
0 x50,0 x18,0 x08,0 x1000,
{0 x01,0 x03,0 x00,0 x02},
0 x63,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f,
0 x00,0 xc7,0 x06,0 x07,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x28,0 x1f,0 x96,0 xb9,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,
0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,
0 x08,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x04: MD_4 */
{
0 x28,0 x18,0 x08,0 x4000,
{0 x09,0 x03,0 x00,0 x02},
0 x63,
{0 x2d,0 x27,0 x28,0 x90,0 x2c,0 x80,0 xbf,0 x1f, /* 0x2c is 2b for 300 */
0 x00,0 xc1,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x14,0 x00,0 x96,0 xb9,0 xa2,
0 xff},
{0 x00,0 x13,0 x15,0 x17,0 x02,0 x04,0 x06,0 x07,
0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,
0 x01,0 x00,0 x03,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x30,0 x0f,0 x00,
0 xff}
},
/* 0x05: MD_5 */
{
0 x28,0 x18,0 x08,0 x4000,
{0 x09,0 x03,0 x00,0 x02},
0 x63,
{0 x2d,0 x27,0 x28,0 x90,0 x2c,0 x80,0 xbf,0 x1f, /* 0x2c is 2b for 300 */
0 x00,0 xc1,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x14,0 x00,0 x96,0 xb9,0 xa2,
0 xff},
{0 x00,0 x13,0 x15,0 x17,0 x02,0 x04,0 x06,0 x07,
0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,
0 x01,0 x00,0 x03,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x30,0 x0f,0 x00,
0 xff}
},
/* 0x06: MD_6 */
{
0 x50,0 x18,0 x08,0 x4000,
{0 x01,0 x01,0 x00,0 x06},
0 x63,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f, /* 55,81 is 54,80 for 300 */
0 x00,0 xc1,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x28,0 x00,0 x96,0 xb9,0 xc2,
0 xff},
{0 x00,0 x17,0 x17,0 x17,0 x17,0 x17,0 x17,0 x17,
0 x17,0 x17,0 x17,0 x17,0 x17,0 x17,0 x17,0 x17,
0 x01,0 x00,0 x01,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0d,0 x00,
0 xff}
},
/* 0x07: MD_7 */
{
0 x50,0 x18,0 x0e,0 x1000,
{0 x00,0 x03,0 x00,0 x03},
0 xa6,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f,
0 x00,0 x4d,0 x0b,0 x0c,0 x00,0 x00,0 x00,0 x00,
0 x83,0 x85,0 x5d,0 x28,0 x0d,0 x63,0 xba,0 xa3,
0 xff},
{0 x00,0 x08,0 x08,0 x08,0 x08,0 x08,0 x08,0 x08,
0 x10,0 x18,0 x18,0 x18,0 x18,0 x18,0 x18,0 x18,
0 x0e,0 x00,0 x0f,0 x08},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0a,0 x00,
0 xff}
},
/* 0x08: MDA_DAC */
{
0 x00,0 x00,0 x00,0 x0000,
{0 x00,0 x00,0 x00,0 x15},
0 x15,
{0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,
0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x3f,0 x3f,
0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x00,0 x00,
0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x15,0 x15,0 x15,
0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,0 x15,
0 x15,0 x15,0 x15,0 x15},
{0 x15,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,
0 x3f}
},
/* 0x09: CGA_DAC */
{
0 x00,0 x10,0 x04,0 x0114,
{0 x11,0 x09,0 x15,0 x00},
0 x10,
{0 x04,0 x14,0 x01,0 x11,0 x09,0 x15,0 x2a,0 x3a,
0 x2e,0 x3e,0 x2b,0 x3b,0 x2f,0 x3f,0 x2a,0 x3a,
0 x2e,0 x3e,0 x2b,0 x3b,0 x2f,0 x3f,0 x00,0 x10,
0 x04},
{0 x14,0 x01,0 x11,0 x09,0 x15,0 x00,0 x10,0 x04,
0 x14,0 x01,0 x11,0 x09,0 x15,0 x2a,0 x3a,0 x2e,
0 x3e,0 x2b,0 x3b,0 x2f},
{0 x3f,0 x2a,0 x3a,0 x2e,0 x3e,0 x2b,0 x3b,0 x2f,
0 x3f}
},
/* 0x0a: EGA_DAC */
{
0 x00,0 x10,0 x04,0 x0114,
{0 x11,0 x05,0 x15,0 x20},
0 x30,
{0 x24,0 x34,0 x21,0 x31,0 x25,0 x35,0 x08,0 x18,
0 x0c,0 x1c,0 x09,0 x19,0 x0d,0 x1d,0 x28,0 x38,
0 x2c,0 x3c,0 x29,0 x39,0 x2d,0 x3d,0 x02,0 x12,
0 x06},
{0 x16,0 x03,0 x13,0 x07,0 x17,0 x22,0 x32,0 x26,
0 x36,0 x23,0 x33,0 x27,0 x37,0 x0a,0 x1a,0 x0e,
0 x1e,0 x0b,0 x1b,0 x0f},
{0 x1f,0 x2a,0 x3a,0 x2e,0 x3e,0 x2b,0 x3b,0 x2f,
0 x3f}
},
/* 0x0b: VGA_DAC */
{
0 x00,0 x10,0 x04,0 x0114,
{0 x11,0 x09,0 x15,0 x2a},
0 x3a,
{0 x2e,0 x3e,0 x2b,0 x3b,0 x2f,0 x3f,0 x00,0 x05,
0 x08,0 x0b,0 x0e,0 x11,0 x14,0 x18,0 x1c,0 x20,
0 x24,0 x28,0 x2d,0 x32,0 x38,0 x3f,0 x00,0 x10,
0 x1f},
{0 x2f,0 x3f,0 x1f,0 x27,0 x2f,0 x37,0 x3f,0 x2d,
0 x31,0 x36,0 x3a,0 x3f,0 x00,0 x07,0 x0e,0 x15,
0 x1c,0 x0e,0 x11,0 x15},
{0 x18,0 x1c,0 x14,0 x16,0 x18,0 x1a,0 x1c,0 x00,
0 x04}
},
/* 0x0c */
{
0 x08,0 x0c,0 x10,0 x0a08,
{0 x0c,0 x0e,0 x10,0 x0b},
0 x0c,
{0 x0d,0 x0f,0 x10,0 x10,0 x01,0 x08,0 x00,0 x00,
0 x00,0 x00,0 x01,0 x00,0 x02,0 x02,0 x01,0 x00,
0 x04,0 x04,0 x01,0 x00,0 x05,0 x02,0 x05,0 x00,
0 x06},
{0 x01,0 x06,0 x05,0 x06,0 x00,0 x08,0 x01,0 x08,
0 x00,0 x07,0 x02,0 x07,0 x06,0 x07,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,0 x00,
0 x00}
},
/* 0x0d: MD_D */
{
0 x28,0 x18,0 x08,0 x2000,
{0 x09,0 x0f,0 x00,0 x06},
0 x63,
{0 x2d,0 x27,0 x28,0 x90,0 x2c,0 x80,0 xbf,0 x1f, /* 2c is 2b for 300 */
0 x00,0 xc0,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x14,0 x00,0 x96,0 xb9,0 xe3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,
0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,
0 x01,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x05,0 x0f,
0 xff}
},
/* 0x0e: MD_E */
{
0 x50,0 x18,0 x08,0 x4000,
{0 x01,0 x0f,0 x00,0 x06},
0 x63,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f, /* 55,81 is 54,80 for 300 */
0 x00,0 xc0,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x28,0 x00,0 x96,0 xb9,0 xe3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,
0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,
0 x01,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x05,0 x0f,
0 xff}
},
/* 0x0f: ExtVGATable - modes > 0x13 */
{
0 x00,0 x00,0 x00,0 x0000,
{0 x01,0 x0f,0 x00,0 x0e},
0 x23,
{0 x5f,0 x4f,0 x50,0 x82,0 x54,0 x80,0 x0b,0 x3e,
0 x00,0 x40,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 xea,0 x8c,0 xdf,0 x28,0 x40,0 xe7,0 x04,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,
0 x08,0 x09,0 x0a,0 x0b,0 x0c,0 x0d,0 x0e,0 x0f,
0 x01,0 x00,0 x00,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x40,0 x05,0 x0f,
0 xff}
},
/* 0x10: ROM_SAVEPTR - totally different for 300 */
{
0 x9f,0 x3b,0 x00,0 x00c0,
{0 x00,0 x00,0 x00,0 x00},
0 x00,
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 xbb,0 x3f,
0 x00,0 xc0,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x00,0 x00,0 x1a,0 x00,0 xac,0 x3e,0 x00,0 xc0,
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,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,0 x00,0 x00,0 x00,
0 x00}
},
/* 0x11: MD_F */
{
0 x50,0 x18,0 x0e,0 x8000,
{0 x01,0 x0f,0 x00,0 x06},
0 xa2,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f, /* 55,81 is 54,80 on 300 */
0 x00,0 x40,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x82,0 x84,0 x5d,0 x28,0 x0f,0 x63,0 xba,0 xe3, /* 82,84 is 83,85 on 300 */
0 xff},
{0 x00,0 x08,0 x00,0 x00,0 x18,0 x18,0 x00,0 x00,
0 x00,0 x08,0 x00,0 x00,0 x00,0 x18,0 x00,0 x00,
0 x0b,0 x00,0 x05,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x05,0 x05,
0 xff}
},
/* 0x12: MD_10 */
{
0 x50,0 x18,0 x0e,0 x8000,
{0 x01,0 x0f,0 x00,0 x06},
0 xa3,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f, /* 55,81 is 54,80 on 300 */
0 x00,0 x40,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x82,0 x84,0 x5d,0 x28,0 x0f,0 x63,0 xba,0 xe3, /* 82,84 is 83,85 on 300 */
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x14,0 x07,
0 x38,0 x39,0 x3a,0 x3b,0 x3c,0 x3d,0 x3e,0 x3f,
0 x01,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x05,0 x0f,
0 xff}
},
/* 0x13: MD_0_350 */
{
0 x28,0 x18,0 x0e,0 x0800,
{0 x09,0 x03,0 x00,0 x02},
0 xa3,
{0 x2d,0 x27,0 x28,0 x90,0 x2b,0 xb1,0 xbf,0 x1f, /* b1 is a0 on 300 */
0 x00,0 x4d,0 x0b,0 x0c,0 x00,0 x00,0 x00,0 x00,
0 x83,0 x85,0 x5d,0 x14,0 x1f,0 x63,0 xba,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x14,0 x07,
0 x38,0 x39,0 x3a,0 x3b,0 x3c,0 x3d,0 x3e,0 x3f,
0 x08,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x14: MD_1_350 */
{
0 x28,0 x18,0 x0e,0 x0800,
{0 x09,0 x03,0 x00,0 x02},
0 xa3,
{0 x2d,0 x27,0 x28,0 x90,0 x2b,0 xa0,0 xbf,0 x1f,
0 x00,0 x4d,0 x0b,0 x0c,0 x00,0 x00,0 x00,0 x00,
0 x83,0 x85,0 x5d,0 x14,0 x1f,0 x63,0 xba,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x14,0 x07,
0 x38,0 x39,0 x3a,0 x3b,0 x3c,0 x3d,0 x3e,0 x3f,
0 x08,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x15: MD_2_350 */
{
0 x50,0 x18,0 x0e,0 x1000,
{0 x01,0 x03,0 x00,0 x02},
0 xa3,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f,
0 x00,0 x4d,0 x0b,0 x0c,0 x00,0 x00,0 x00,0 x00,
0 x83,0 x85,0 x5d,0 x28,0 x1f,0 x63,0 xba,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x14,0 x07,
0 x38,0 x39,0 x3a,0 x3b,0 x3c,0 x3d,0 x3e,0 x3f,
0 x08,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x16: MD_3_350 - mode 0x03 - 1 */
{
0 x50,0 x18,0 x0e,0 x1000,
{0 x01,0 x03,0 x00,0 x02},
0 xa3,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f,
0 x00,0 x4d,0 x0b,0 x0c,0 x00,0 x00,0 x00,0 x00,
0 x83,0 x85,0 x5d,0 x28,0 x1f,0 x63,0 xba,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x14,0 x07,
0 x38,0 x39,0 x3a,0 x3b,0 x3c,0 x3d,0 x3e,0 x3f,
0 x08,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x17: MD_0_1_400 */
{
0 x28,0 x18,0 x10,0 x0800,
{0 x08,0 x03,0 x00,0 x02},
0 x67,
{0 x2d,0 x27,0 x28,0 x90,0 x2b,0 xb1,0 xbf,0 x1f, /* b1 is a0 on 300 */
0 x00,0 x4f,0 x0d,0 x0e,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x14,0 x1f,0 x96,0 xb9,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x14,0 x07,
0 x38,0 x39,0 x3a,0 x3b,0 x3c,0 x3d,0 x3e,0 x3f,
0 x0c,0 x00,0 x0f,0 x08},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x18: MD_2_3_400 - mode 0x03 - 2 */
{
0 x50,0 x18,0 x10,0 x1000,
{0 x00,0 x03,0 x00,0 x02},
0 x67,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f,
0 x00,0 x4f,0 x0d,0 x0e,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x28,0 x1f,0 x96,0 xb9,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x14,0 x07,
0 x38,0 x39,0 x3a,0 x3b,0 x3c,0 x3d,0 x3e,0 x3f,
0 x0c,0 x00,0 x0f,0 x08},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0e,0 x00,
0 xff}
},
/* 0x19: MD_7_400 */
{
0 x50,0 x18,0 x10,0 x1000,
{0 x00,0 x03,0 x00,0 x02},
0 x66,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f,
0 x00,0 x4f,0 x0d,0 x0e,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x28,0 x0f,0 x96,0 xb9,0 xa3,
0 xff},
{0 x00,0 x08,0 x08,0 x08,0 x08,0 x08,0 x08,0 x08,
0 x10,0 x18,0 x18,0 x18,0 x18,0 x18,0 x18,0 x18,
0 x0e,0 x00,0 x0f,0 x08},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x10,0 x0a,0 x00,
0 xff}
},
/* 0x1a: MD_11 */
{
0 x50,0 x1d,0 x10,0 xa000,
{0 x01,0 x0f,0 x00,0 x06},
0 xe3,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 x0b,0 x3e, /* 55,81 is 54,80 on 300 */
0 x00,0 x40,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 xe9,0 x8b,0 xdf,0 x28,0 x00,0 xe7,0 x04,0 xc3, /* e9,8b is ea,8c on 300 */
0 xff},
{0 x00,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,
0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,0 x3f,
0 x01,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x05,0 x01,
0 xff}
},
/* 0x1b: ExtEGATable - Modes <= 0x02 */
{
0 x50,0 x1d,0 x10,0 xa000,
{0 x01,0 x0f,0 x00,0 x06},
0 xe3,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 x0b,0 x3e, /* 55,81 is 54,80 on 300 */
0 x00,0 x40,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 xe9,0 x8b,0 xdf,0 x28,0 x00,0 xe7,0 x04,0 xe3, /* e9,8b is ea,8c on 300 */
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x14,0 x07,
0 x38,0 x39,0 x3a,0 x3b,0 x3c,0 x3d,0 x3e,0 x3f,
0 x01,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x05,0 x0f,
0 xff}
},
/* 0x1c: MD_13 */
{
0 x28,0 x18,0 x08,0 x2000,
{0 x01,0 x0f,0 x00,0 x0e},
0 x63,
{0 x5f,0 x4f,0 x50,0 x82,0 x55,0 x81,0 xbf,0 x1f, /* 55,81 is 54,80 on 300 */
0 x00,0 x41,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,
0 x9c,0 x8e,0 x8f,0 x28,0 x40,0 x96,0 xb9,0 xa3,
0 xff},
{0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,
0 x08,0 x09,0 x0a,0 x0b,0 x0c,0 x0d,0 x0e,0 x0f,
0 x41,0 x00,0 x0f,0 x00},
{0 x00,0 x00,0 x00,0 x00,0 x00,0 x40,0 x05,0 x0f,
0 xff}
}
};
#endif
/**************************************************************/
/* SIS VIDEO BRIDGE ----------------------------------------- */
/**************************************************************/
static const unsigned char SiS_SoftSetting = 0 x30; /* RAM setting */
static const unsigned char SiS_OutputSelect = 0 x40;
static const unsigned char SiS_NTSCTiming[] = {
0 x17,0 x1d,0 x03,0 x09,0 x05,0 x06,0 x0c,0 x0c,
0 x94,0 x49,0 x01,0 x0a,0 x06,0 x0d,0 x04,0 x0a,
0 x06,0 x14,0 x0d,0 x04,0 x0a,0 x00,0 x85,0 x1b,
0 x0c,0 x50,0 x00,0 x97,0 x00,0 xda,0 x4a,0 x17,
0 x7d,0 x05,0 x4b,0 x00,0 x00,0 xe2,0 x00,0 x02,
0 x03,0 x0a,0 x65,0 x9d,0 x08,0 x92,0 x8f,0 x40,
0 x60,0 x80,0 x14,0 x90,0 x8c,0 x60,0 x14,0 x50,
0 x00,0 x40,0 x44,0 x00,0 xdb,0 x02,0 x3b,0 x00
};
static const unsigned char SiS_PALTiming[] = {
0 x19,0 x52,0 x35,0 x6e,0 x04,0 x38,0 x3d,0 x70,
0 x94,0 x49,0 x01,0 x12,0 x06,0 x3e,0 x35,0 x6d,
0 x06,0 x14,0 x3e,0 x35,0 x6d,0 x00,0 x45,0 x2b,
0 x70,0 x50,0 x00,0 x9b,0 x00,0 xd9,0 x5d,0 x17,
0 x7d,0 x05,0 x45,0 x00,0 x00,0 xe8,0 x00,0 x02,
0 x0d,0 x00,0 x68,0 xb0,0 x0b,0 x92,0 x8f,0 x40,
0 x60,0 x80,0 x14,0 x90,0 x8c,0 x60,0 x14,0 x63,
0 x00,0 x40,0 x3e,0 x00,0 xe1,0 x02,0 x28,0 x00
};
static const unsigned char SiS_HiTVExtTiming[] = {
0 x32,0 x65,0 x2c,0 x5f,0 x08,0 x31,0 x3a,0 x64,
0 x28,0 x02,0 x01,0 x3d,0 x06,0 x3e,0 x35,0 x6d,
0 x06,0 x14,0 x3e,0 x35,0 x6d,0 x00,0 xc5,0 x3f,
0 x64,0 x90,0 x33,0 x8c,0 x18,0 x36,0 x3e,0 x13,
0 x2a,0 xde,0 x2a,0 x44,0 x40,0 x2a,0 x44,0 x40,
0 x8e,0 x8e,0 x82,0 x07,0 x0b,0 x92,0 x0f,0 x40,
0 x60,0 x80,0 x14,0 x90,0 x8c,0 x60,0 x14,0 x3d,
0 x63,0 x4f,0 x27,0 x00,0 xfc,0 xff,0 x6a,0 x00
};
static const unsigned char SiS_HiTVSt1Timing[] = {
0 x32,0 x65,0 x2c,0 x5f,0 x08,0 x31,0 x3a,0 x65,
0 x28,0 x02,0 x01,0 x3d,0 x06,0 x3e,0 x35,0 x6d,
0 x06,0 x14,0 x3e,0 x35,0 x6d,0 x00,0 xc5,0 x3f,
0 x65,0 x90,0 x7b,0 xa8,0 x03,0 xf0,0 x87,0 x03,
0 x11,0 x15,0 x11,0 xcf,0 x10,0 x11,0 xcf,0 x10,
0 x35,0 x35,0 x3b,0 x69,0 x1d,0 x92,0 x0f,0 x40,
0 x60,0 x80,0 x14,0 x90,0 x8c,0 x60,0 x04,0 x86,
0 xaf,0 x5d,0 x0e,0 x00,0 xfc,0 xff,0 x2d,0 x00
};
static const unsigned char SiS_HiTVSt2Timing[] = {
0 x32,0 x65,0 x2c,0 x5f,0 x08,0 x31,0 x3a,0 x64,
0 x28,0 x02,0 x01,0 x3d,0 x06,0 x3e,0 x35,0 x6d,
0 x06,0 x14,0 x3e,0 x35,0 x6d,0 x00,0 xc5,0 x3f,
0 x64,0 x90,0 x33,0 x8c,0 x18,0 x36,0 x3e,0 x13,
0 x2a,0 xde,0 x2a,0 x44,0 x40,0 x2a,0 x44,0 x40,
0 x8e,0 x8e,0 x82,0 x07,0 x0b,0 x92,0 x0f,0 x40,
0 x60,0 x80,0 x14,0 x90,0 x8c,0 x60,0 x14,0 x3d,
0 x63,0 x4f,0 x27,0 x00,0 xfc,0 xff,0 x6a,0 x00
};
#if 0
static const unsigned char SiS_HiTVTextTiming[] = {
0 x32,0 x65,0 x2c,0 x5f,0 x08,0 x31,0 x3a,0 x65,
0 x28,0 x02,0 x01,0 x3d,0 x06,0 x3e,0 x35,0 x6d,
0 x06,0 x14,0 x3e,0 x35,0 x6d,0 x00,0 xc5,0 x3f,
0 x65,0 x90,0 xe7,0 xbc,0 x03,0 x0c,0 x97,0 x03,
0 x14,0 x78,0 x14,0 x08,0 x20,0 x14,0 x08,0 x20,
0 xc8,0 xc8,0 x3b,0 xd2,0 x26,0 x92,0 x0f,0 x40,
0 x60,0 x80,0 x14,0 x90,0 x8c,0 x60,0 x04,0 x96,
0 x72,0 x5c,0 x11,0 x00,0 xfc,0 xff,0 x32,0 x00
};
#endif
static const unsigned char SiS_HiTVGroup3Data[] = {
0 x00,0 x1a,0 x22,0 x63,0 x62,0 x22,0 x08,0 x5f,
0 x05,0 x21,0 xb2,0 xb2,0 x55,0 x77,0 x2a,0 xa6,
0 x25,0 x2f,0 x47,0 xfa,0 xc8,0 xff,0 x8e,0 x20,
0 x8c,0 x6e,0 x60,0 x2e,0 x58,0 x48,0 x72,0 x44,
0 x56,0 x36,0 x4f,0 x6e,0 x3f,0 x80,0 x00,0 x80,
0 x4f,0 x7f,0 x03,0 xa8,0 x7d,0 x20,0 x1a,0 xa9,
0 x14,0 x05,0 x03,0 x7e,0 x64,0 x31,0 x14,0 x75,
0 x18,0 x05,0 x18,0 x05,0 x4c,0 xa8,0 x01
};
static const unsigned char SiS_HiTVGroup3Simu[] = {
0 x00,0 x1a,0 x22,0 x63,0 x62,0 x22,0 x08,0 x95,
0 xdb,0 x20,0 xb8,0 xb8,0 x55,0 x47,0 x2a,0 xa6,
0 x25,0 x2f,0 x47,0 xfa,0 xc8,0 xff,0 x8e,0 x20,
0 x8c,0 x6e,0 x60,0 x15,0 x26,0 xd3,0 xe4,0 x11,
0 x56,0 x36,0 x4f,0 x6e,0 x3f,0 x80,0 x00,0 x80,
0 x67,0 x36,0 x01,0 x47,0 x0e,0 x10,0 xbe,0 xb4,
0 x01,0 x05,0 x03,0 x7e,0 x65,0 x31,0 x14,0 x75,
0 x18,0 x05,0 x18,0 x05,0 x4c,0 xa8,0 x01
};
#if 0
static const unsigned char SiS_HiTVGroup3Text[] = {
0 x00,0 x1a,0 x22,0 x63,0 x62,0 x22,0 x08,0 xa7,
0 xf5,0 x20,0 xce,0 xce,0 x55,0 x47,0 x2a,0 xa6,
0 x25,0 x2f,0 x47,0 xfa,0 xc8,0 xff,0 x8e,0 x20,
0 x8c,0 x6e,0 x60,0 x18,0 x2c,0 x0c,0 x20,0 x22,
0 x56,0 x36,0 x4f,0 x6e,0 x3f,0 x80,0 x00,0 x80,
0 x93,0 x3c,0 x01,0 x50,0 x2f,0 x10,0 xf4,0 xca,
0 x01,0 x05,0 x03,0 x7e,0 x65,0 x31,0 x14,0 x75,
0 x18,0 x05,0 x18,0 x05,0 x4c,0 xa8,0 x01
};
#endif
static const struct SiS_TVData SiS_StPALData[] =
{
{ 1 , 1 , 864 , 525 ,1270 , 400 , 100 , 0 , 760 , 0 ,0 xf4,0 xff,0 x1c,0 x22},
{ 1 , 1 , 864 , 525 ,1270 , 350 , 100 , 0 , 760 , 0 ,0 xf4,0 xff,0 x1c,0 x22},
{ 1 , 1 , 864 , 525 ,1270 , 400 , 0 , 0 , 720 , 0 ,0 xf1,0 x04,0 x1f,0 x18},
{ 1 , 1 , 864 , 525 ,1270 , 350 , 0 , 0 , 720 , 0 ,0 xf4,0 x0b,0 x1c,0 x0a},
{ 1 , 1 , 864 , 525 ,1270 , 480 , 50 , 0 , 760 , 0 ,0 xf4,0 xff,0 x1c,0 x22},
{ 1 , 1 , 864 , 525 ,1270 , 600 , 50 , 0 , 0 ,0 x300,0 xf4,0 xff,0 x1c,0 x22}
};
static const struct SiS_TVData SiS_ExtPALData[] =
{
{ 27 , 10 , 848 , 448 ,1270 , 530 , 50 , 0 , 50 , 0 ,0 xf4,0 xff,0 x1c,0 x22}, /* 640x400, 320x200 */
{ 108 , 35 , 848 , 398 ,1270 , 530 , 50 , 0 , 50 , 0 ,0 xf4,0 xff,0 x1c,0 x22},
{ 12 , 5 , 954 , 448 ,1270 , 530 , 50 , 0 , 50 , 0 ,0 xf1,0 x04,0 x1f,0 x18},
{ 9 , 4 , 960 , 463 ,1644 , 438 , 50 , 0 , 50 , 0 ,0 xf4,0 x0b,0 x1c,0 x0a},
{ 9 , 4 , 848 , 528 ,1270 , 530 , 0 , 0 , 50 , 0 ,0 xf5,0 xfb,0 x1b,0 x2a}, /* 640x480, 320x240 */
{ 36 , 25 ,1060 , 648 ,1270 , 530 , 438 , 0 , 438 , 0 ,0 xeb,0 x05,0 x25,0 x16}, /* 800x600, 400x300 */
{ 3 , 2 ,1080 , 619 ,1270 , 540 , 438 , 0 , 438 , 0 ,0 xf3,0 x00,0 x1d,0 x20}, /* 720x576 */
{ 1 , 1 ,1170 , 821 ,1270 , 520 , 686 , 0 , 686 , 0 ,0 xF3,0 x00,0 x1D,0 x20}, /* 1024x768 */
{ 1 , 1 ,1170 , 821 ,1270 , 520 , 686 , 0 , 686 , 0 ,0 xF3,0 x00,0 x1D,0 x20}, /* 1024x768 (for NTSC equ) */
{ 9 , 4 , 848 , 528 ,1270 , 530 , 0 , 0 , 50 , 0 ,0 xf5,0 xfb,0 x1b,0 x2a} /* 720x480 */
};
static const struct SiS_TVData SiS_StNTSCData[] =
{
{ 1 , 1 , 858 , 525 ,1270 , 400 , 50 , 0 , 760 , 0 ,0 xf1,0 x04,0 x1f,0 x18},
{ 1 , 1 , 858 , 525 ,1270 , 350 , 50 , 0 , 640 , 0 ,0 xf1,0 x04,0 x1f,0 x18},
{ 1 , 1 , 858 , 525 ,1270 , 400 , 0 , 0 , 720 , 0 ,0 xf1,0 x04,0 x1f,0 x18},
{ 1 , 1 , 858 , 525 ,1270 , 350 , 0 , 0 , 720 , 0 ,0 xf4,0 x0b,0 x1c,0 x0a},
{ 1 , 1 , 858 , 525 ,1270 , 480 , 0 , 0 , 760 , 0 ,0 xf1,0 x04,0 x1f,0 x18}
};
static const struct SiS_TVData SiS_ExtNTSCData[] =
{
{ 143 , 65 , 858 , 443 ,1270 , 440 , 171 , 0 , 171 , 0 ,0 xf1,0 x04,0 x1f,0 x18}, /* 640x400, 320x200 */
{ 88 , 35 , 858 , 393 ,1270 , 440 , 171 , 0 , 171 , 0 ,0 xf1,0 x04,0 x1f,0 x18},
{ 143 , 70 , 924 , 443 ,1270 , 440 , 92 , 0 , 92 , 0 ,0 xf1,0 x04,0 x1f,0 x18},
{ 143 , 70 , 924 , 393 ,1270 , 440 , 92 , 0 , 92 , 0 ,0 xf4,0 x0b,0 x1c,0 x0a},
{ 143 , 76 , 836 , 523 ,1270 , 440 , 224 , 0 , 0 , 0 ,0 xf1,0 x05,0 x1f,0 x16}, /* 640x480, 320x240 */
{ 143 , 120 ,1056 , 643 ,1270 , 440 , 0 , 1 , 0 , 0 ,0 xf4,0 x10,0 x1c,0 x00}, /* 800x600, 400x300 */
{ 143 , 76 , 836 , 523 ,1270 , 440 , 0 , 1 , 0 , 0 ,0 xee,0 x0c,0 x22,0 x08}, /* 720x480 - BETTER (from 300 series) */
{ 1 , 1 ,1100 , 811 ,1412 , 440 , 0 , 1 , 0 , 0 ,0 xee,0 x0c,0 x22,0 x08}, /* 1024x768 (525i) CORRECTED */
#if 0 /* flimmert und ist unten abgeschnitten (NTSCHT, NTSC clock) */
{ 65 , 64 ,1056 , 791 ,1270 , 480 , 455 , 0 , 0 , 0 ,0 x00,0 x00,0 x00,0 x00} /* 1024x768 (525p) */
#endif
#if 0
{ 1 , 1 ,1100 , 811 ,1412 , 440 , 0 , 1 , 0 , 0 ,0 x00,0 x00,0 x00,0 x00} /* 1024x768 (525p) */
#endif
#if 0
{ 1 , 1 ,1120 , 821 ,1516 , 420 , 0 , 1 , 0 , 0 ,0 x00,0 x00,0 x00,0 x00} /* 1024x768 (525p) */
#endif
#if 0
{ 1 , 1 , 938 , 821 ,1516 , 420 , 0 , 1 , 0 , 0 ,0 x00,0 x00,0 x00,0 x00} /* 1024x768 (525p) */
#endif
#if 0 /* zoom hin, unten abgeschnitten (NTSC2HT, NTSC1024 clock) */
{ 1 , 1 ,1072 , 791 ,1270 , 480 , 455 , 0 , 0 , 0 ,0 x00,0 x00,0 x00,0 x00} /* 1024x768 (525p) */
#endif
#if 1 /* zu weit links (squeezed) (NTSC2HT, NTSC1024 clock) */
{ 1 , 1 ,1100 , 846 ,1270 , 440 , 455 , 0 , 0 , 0 ,0 x00,0 x00,0 x00,0 x00} /* 1024x768 (525p) */
#endif
#if 0 /* zu weit links, rechts abgeschnitten (NTSC2HT, NTSC1024 clock) */
{ 1 , 1 ,1100 , 846 ,1412 , 440 , 455 , 0 , 0 , 0 ,0 x00,0 x00,0 x00,0 x00} /* 1024x768 (525p) */
#endif
};
static const struct SiS_TVData SiS_StHiTVData[] = /* Slave + TVSimu */
{
{ 1 , 1 , 0 x37c,0 x233,0 x2b2,0 x320, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x37c,0 x233,0 x2b2,0 x2bc, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x37c,0 x233,0 x2b2,0 x320, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x37c,0 x233,0 x2b2,0 x2bc, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x37c,0 x233,0 x2b2,0 x3c0, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 8 , 5 , 0 x41a,0 x2ab,0 x670,0 x3c0,0 x150, 1 , 0 , 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_TVData SiS_St2HiTVData[] = /* Slave */
{
{ 3 , 1 , 0 x348,0 x1e3,0 x670,0 x3c0,0 x032, 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x37c,0 x233,0 x2b2,0 x2bc, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 3 , 1 , 0 x348,0 x1e3,0 x670,0 x3c0,0 x032, 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x37c,0 x233,0 x2b2,0 x2bc, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 5 , 2 , 0 x348,0 x233,0 x670,0 x3c0,0 x08d, 1 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 8 , 5 , 0 x41a,0 x2ab,0 x670,0 x3c0,0 x17c, 1 , 0 , 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_TVData SiS_ExtHiTVData[] =
{ /* all ok */
{ 6 , 1 , 0 x348,0 x233,0 x660,0 x3c0, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 3 , 1 , 0 x3c0,0 x233,0 x660,0 x3c0, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 6 , 1 , 0 x348,0 x233,0 x660,0 x3c0, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 3 , 1 , 0 x3c0,0 x233,0 x660,0 x3c0, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 5 , 1 , 0 x348,0 x233,0 x670,0 x3c0,0 x166, 1 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 640x480 */
{ 16 , 5 , 0 x41a,0 x2ab,0 x670,0 x3c0,0 x143, 1 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 800x600 */
{ 25 , 12 , 0 x4ec,0 x353,0 x670,0 x3c0,0 x032, 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 1024x768 */
{ 5 , 4 , 0 x627,0 x464,0 x670,0 x3c0,0 x128, 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x1024 */
{ 4 , 1 , 0 x41a,0 x233,0 x60c,0 x3c0,0 x143, 1 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 800x480 */
{ 5 , 2 , 0 x578,0 x293,0 x670,0 x3c0,0 x032, 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 1024x576 */
{ 8 , 5 , 0 x6d6,0 x323,0 x670,0 x3c0,0 x128, 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x720 */
{ 8 , 3 , 0 x4ec,0 x353,0 x670,0 x3c0,0 x032, 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 960x600 */
};
static const struct SiS_TVData SiS_St525pData[] =
{
{ 1 , 1 , 0 x6b4,0 x20d,0 x4f6,0 x190, 50 , 0 , 0 x2f8, 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x6b4,0 x20d,0 x4f6,0 x15e, 50 , 0 , 0 x280, 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x6b4,0 x20d,0 x4f6,0 x190, 50 , 0 , 0 x2f8, 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x6b4,0 x20d,0 x4f6,0 x15e, 50 , 0 , 0 x280, 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x6b4,0 x20d,0 x4f6,0 x1e0, 0 , 0 , 0 x2f8, 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_TVData SiS_St750pData[] =
{
{ 1 , 1 , 0 x672,0 x2ee,0 x500,0 x190, 50 , 0 , 0 x2f8, 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x672,0 x2ee,0 x500,0 x15e, 50 , 0 , 0 x280, 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x672,0 x2ee,0 x500,0 x190, 0 , 0 , 0 x2d0, 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x672,0 x2ee,0 x500,0 x15e, 0 , 0 , 0 x2d0, 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 0 x672,0 x2ee,0 x500,0 x1e0, 0 , 0 , 0 x2f8, 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_TVData SiS_Ext750pData[] =
{ /* all ok */
{ 3 , 1 , 935 , 470 , 1130 , 680 , 50 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 320x200/640x400 */
{ 24 , 7 , 935 , 420 , 1130 , 680 , 50 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 3 , 1 , 935 , 470 , 1130 , 680 , 50 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 24 , 7 , 935 , 420 , 1130 , 680 , 50 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
{ 2 , 1 , 1100 , 590 , 1130 , 640 , 50 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 640x480 */
{ 3 , 2 , 1210 , 690 , 1130 , 660 , 50 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 800x600 OK */
{ 2 , 1 , 1100 , 562 , 1130 , 640 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 720x480 OK */
{ 1 , 1 , 1375 , 878 , 1130 , 640 , 638 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 1024x768 OK */
{ 5 , 3 , 1100 , 675 , 1130 , 640 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 }, /* 720/768x576 OK */
{ 25 , 24 , 1496 , 755 , 1120 , 680 , 50 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } /* 1280x720 OK */
};
static const struct SiS_LCDData SiS_LCD1280x720Data[] = /* 2.03.00 */
{
{ 44 , 15 , 864 , 430 , 1408 , 806 }, /* 640x400 */
{ 128 , 35 , 792 , 385 , 1408 , 806 },
{ 44 , 15 , 864 , 430 , 1408 , 806 },
{ 128 , 35 , 792 , 385 , 1408 , 806 },
{ 22 , 9 , 864 , 516 , 1408 , 806 }, /* 640x480 */
{ 8 , 5 , 1056 , 655 , 1408 , 806 }, /* 800x600 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x1024 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 1408 , 806 , 1408 , 806 } /* 1280x720 */
};
/* About 1280x768: For TMDS, Panel_1280x768 will only be set if
* the panel is a Fujitsu 7911 (VL-17WDX8) (with clock 81, 1688x802)
* Other TMDS panels of this resolution will be treated as custom.
* For LVDS, we know another type (_2).
* (Note: 1280x768_3 is now special for SiS301/NetVista
*/
static const struct SiS_LCDData SiS_StLCD1280x768_2Data[] = /* 2.03.00 */
{
{ 64 , 21 , 858 , 434 , 1408 , 806 }, /* 640x400 */
{ 32 , 9 , 858 , 372 , 1408 , 806 },
{ 64 , 21 , 858 , 434 , 1408 , 806 },
{ 32 , 9 , 858 , 372 , 1408 , 806 },
{ 143 , 68 , 1024 , 527 , 1408 , 806 }, /* 640x480 */
{ 64 , 51 , 1364 , 663 , 1408 , 806 }, /* 800x600 */
{ 88 , 81 , 1296 , 806 , 1408 , 806 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 1408 , 806 , 1408 , 806 }, /* 1280x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 16 , 15 , 1600 , 750 , 1600 , 806 } /* 1280x720 - from Ext */
};
static const struct SiS_LCDData SiS_ExtLCD1280x768_2Data[] = /* 2.03.00 */
{
{ 16 , 5 , 960 , 410 , 1600 , 806 }, /* 640x400 */
{ 64 , 21 , 1152 , 364 , 1600 , 806 },
{ 16 , 5 , 960 , 410 , 1600 , 806 },
{ 64 , 21 , 1152 , 364 , 1600 , 806 },
{ 32 , 13 , 1040 , 493 , 1600 , 806 }, /* 640x480 */
{ 16 , 9 , 1152 , 618 , 1600 , 806 }, /* 800x600 */
{ 25 , 21 , 1344 , 796 , 1600 , 806 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 1600 , 806 , 1600 , 806 }, /* 1280x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 16 , 15 , 1600 , 750 , 1600 , 806 } /* 1280x720 */
};
#if 0 /* Not used; _3 now reserved for NetVista (SiS301) */
static const struct SiS_LCDData SiS_LCD1280x768_3Data[] =
{
{ 64 , 25 , 1056 , 422 , 1664 , 798 }, /* 640x400 */
{ 128 , 39 , 884 , 396 , 1408 , 806 }, /* ,640 */
{ 64 , 25 , 1056 , 422 , 1664 , 798 }, /* 640x400 */
{ 128 , 39 , 884 , 396 , 1408 , 806 }, /* ,640 */
{ 32 , 15 , 1056 , 513 , 1408 , 806 }, /* ,664 */ /* 640x480 */
{ 176 , 125 , 1280 , 640 , 1408 , 806 }, /* ,768 */ /* 800x600 */
{ 64 , 61 , 1342 , 806 , 1408 , 806 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 1408 , 806 , 1408 , 806 }, /* 1280x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 16 , 15 , 1600 , 750 , 1600 , 806 } /* 1280x720 from above */
};
#endif
static const struct SiS_LCDData SiS_LCD1280x800Data[] = /* 0.93.12a (TMDS) */
{
{ 128 , 51 , 1122 , 412 , 1408 , 816 }, /* 640x400 */
{ 128 , 49 , 1232 , 361 , 1408 , 816 },
{ 128 , 51 , 1122 , 412 , 1408 , 816 },
{ 128 , 49 , 1232 , 361 , 1408 , 816 },
{ 8 , 3 , 880 , 491 , 1408 , 816 }, /* 640x480 */
{ 11 , 6 , 1024 , 612 , 1408 , 816 }, /* 800x600 */
{ 22 , 21 , 1400 , 784 , 1408 , 816 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x1024 */
{ 1 , 1 , 1408 , 816 , 1408 , 816 }, /* 1280x800 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x768 (patch index) */
{ 0 , 0 , 0 , 0 , 0 , 0 } /* 1280x720 */
};
static const struct SiS_LCDData SiS_LCD1280x800_2Data[] = /* 2.03.00 (LVDS) */
{
{ 97 , 42 , 1344 , 409 , 1552 , 812 }, /* 640x400 */
{ 97 , 35 , 1280 , 358 , 1552 , 812 },
{ 97 , 42 , 1344 , 409 , 1552 , 812 },
{ 97 , 35 , 1280 , 358 , 1552 , 812 },
{ 97 , 39 , 1040 , 488 , 1552 , 812 }, /* 640x480 */
{ 194 , 105 , 1120 , 608 , 1552 , 812 }, /* 800x600 */
{ 97 , 84 , 1400 , 780 , 1552 , 812 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x1024 */
{ 1 , 1 , 1552 , 812 , 1552 , 812 }, /* 1280x800 */
{ 97 , 96 , 1600 , 780 , 1552 , 812 }, /* 1280x768 - patch index */
{ 97 , 90 , 1600 , 730 , 1552 , 812 } /* 1280x720 */
};
#if 0
static const struct SiS_LCDData SiS_LCD1280x800_3Data[] = /* 2.02.05a (LVDS); m250 */
{
{ 128 , 51 , 1122 , 412 , 1408 , 816 }, /* 640x400 */
{ 128 , 49 , 1232 , 361 , 1408 , 816 },
{ 128 , 51 , 1122 , 412 , 1408 , 816 },
{ 128 , 49 , 1232 , 361 , 1408 , 816 },
{ 8 , 3 , 880 , 491 , 1408 , 816 }, /* 640x480 */
{ 11 , 6 , 1024 , 612 , 1408 , 816 }, /* 800x600 */
{ 22 , 21 , 1400 , 784 , 1408 , 816 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x1024 */
{ 1 , 1 , 1408 , 816 , 1408 , 816 }, /* 1280x800 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x768 - patch index */
{ 0 , 0 , 0 , 0 , 0 , 0 } /* 1280x720 */
};
#endif
static const struct SiS_LCDData SiS_LCD1280x854Data[] = /* 2.21.00CS (LVDS) */
{
{ 56 , 15 , 936 , 410 , 1664 , 861 }, /* 640x400 */
{ 64 , 25 , 1586 , 355 , 1664 , 861 },
{ 56 , 15 , 936 , 410 , 1664 , 861 },
{ 64 , 25 , 1586 , 355 , 1664 , 861 },
{ 91 , 45 , 1464 , 485 , 1664 , 861 }, /* 640x480 */
{ 182 , 75 , 976 , 605 , 1664 , 861 }, /* 800x600 */
{ 91 , 66 , 1342 , 774 , 1664 , 861 }, /* 1024x768 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* 1280x1024 */
{ 26 , 25 , 1708 , 807 , 1664 , 861 }, /* 1280x800 */
{ 13 , 12 , 1708 , 774 , 1664 , 861 }, /* 1280x768 - patch index */
{ 52 , 45 , 1708 , 725 , 1664 , 861 }, /* 1280x720 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 1 , 1 , 1664 , 861 , 1664 , 861 } /* 1280x854 */
};
static const struct SiS_LCDData SiS_LCD1280x960Data[] =
{
{ 9 , 2 , 800 , 500 , 1800 , 1000 },
{ 9 , 2 , 800 , 500 , 1800 , 1000 },
{ 4 , 1 , 900 , 500 , 1800 , 1000 },
{ 4 , 1 , 900 , 500 , 1800 , 1000 },
{ 9 , 2 , 800 , 500 , 1800 , 1000 },
{ 30 , 11 , 1056 , 625 , 1800 , 1000 },
{ 5 , 3 , 1350 , 800 , 1800 , 1000 },
{ 1 , 1 , 1576 , 1050 , 1576 , 1050 },
{ 1 , 1 , 1800 , 1000 , 1800 , 1000 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_LCDData SiS_StLCD1400x1050Data[] =
{
{ 211 , 100 , 2100 , 408 , 1688 , 1066 },
{ 211 , 64 , 1536 , 358 , 1688 , 1066 },
{ 211 , 100 , 2100 , 408 , 1688 , 1066 },
{ 211 , 64 , 1536 , 358 , 1688 , 1066 },
{ 211 , 48 , 840 , 488 , 1688 , 1066 },
{ 211 , 72 , 1008 , 609 , 1688 , 1066 },
{ 211 , 128 , 1400 , 776 , 1688 , 1066 },
{ 211 , 205 , 1680 , 1041 , 1688 , 1066 },
{ 1 , 1 , 1688 , 1066 , 1688 , 1066 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_LCDData SiS_ExtLCD1400x1050Data[] =
{
/* { 211, 60, 1260, 410, 1688, 1066 }, 640x400 (6330) */
{ 211 , 100 , 2100 , 408 , 1688 , 1066 }, /* 640x400 (6325) WORKS */
{ 211 , 64 , 1536 , 358 , 1688 , 1066 },
{ 211 , 100 , 2100 , 408 , 1688 , 1066 },
{ 211 , 64 , 1536 , 358 , 1688 , 1066 },
/* { 211, 80, 1400, 490, 1688, 1066 }, 640x480 (6330) */
{ 211 , 48 , 840 , 488 , 1688 , 1066 }, /* 640x480 (6325) WORKS */
/* { 211, 117, 1638, 613, 1688, 1066 }, 800x600 (6330) */
{ 211 , 72 , 1008 , 609 , 1688 , 1066 }, /* 800x600 (6325) WORKS */
{ 211 , 128 , 1400 , 776 , 1688 , 1066 }, /* 1024x768 */
{ 211 , 205 , 1680 , 1041 , 1688 , 1066 }, /* 1280x1024 - not used (always unscaled) */
{ 1 , 1 , 1688 , 1066 , 1688 , 1066 }, /* 1400x1050 */
{ 0 , 0 , 0 , 0 , 0 , 0 }, /* kludge */
{ 211 , 120 , 1400 , 730 , 1688 , 1066 }, /* 1280x720 */
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_LCDData SiS_LCD1680x1050Data[] =
{
{ 95 , 24 , 1260 , 410 , 1900 , 1066 }, /* 0 640x400 */
{ 10 , 3 , 1710 , 362 , 1900 , 1066 },
{ 95 , 24 , 1260 , 410 , 1900 , 1066 },
{ 10 , 3 , 1710 , 362 , 1900 , 1066 },
{ 95 , 32 , 1400 , 490 , 1900 , 1066 }, /* 4 640x480 */
{ 95 , 42 , 1470 , 610 , 1900 , 1066 }, /* 5 800x600 */
{ 95 , 64 , 1750 , 784 , 1900 , 1066 }, /* 6 1024x768 */
{ 95 , 94 , 1900 , 1055 , 1900 , 1066 }, /* 7 1280x1024 */
{ 41 , 31 , 1900 , 806 , 1900 , 1066 }, /* 8 1280x768 */
{ 95 , 69 , 1800 , 817 , 1900 , 1066 }, /* 9 1280x800 patch index */
{ 13 , 9 , 1900 , 739 , 1900 , 1066 }, /* 10 1280x720 */
{ 95 , 94 , 1880 , 1066 , 1900 , 1066 }, /* 11 1400x1050 patch index */
{ 1 , 1 , 1900 , 1066 , 1900 , 1066 }, /* 12 1680x1050 */
{ 0 , 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_LCDData SiS_StLCD1600x1200Data[] =
{
{27 , 4 , 800 , 500 , 2160 , 1250 },
{27 , 4 , 800 , 500 , 2160 , 1250 },
{ 6 , 1 , 900 , 500 , 2160 , 1250 },
{ 6 , 1 , 900 , 500 , 2160 , 1250 },
{27 , 1 , 800 , 500 , 2160 , 1250 },
{ 4 , 1 ,1080 , 625 , 2160 , 1250 },
{ 5 , 2 ,1350 , 800 , 2160 , 1250 },
{135 ,88 ,1600 ,1100 , 2160 , 1250 },
{72 , 49 ,1680 ,1092 , 2160 , 1250 },
{ 1 , 1 ,2160 ,1250 , 2160 , 1250 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_LCDData SiS_ExtLCD1600x1200Data[] =
{
{72 ,11 , 990 , 422 , 2160 , 1250 }, /* 640x400 (6330) WORKS */
/* {27, 4, 800, 500, 2160, 1250 }, 640x400 (6235) */
{27 , 4 , 800 , 500 , 2160 , 1250 },
{ 6 , 1 , 900 , 500 , 2160 , 1250 },
{ 6 , 1 , 900 , 500 , 2160 , 1250 },
{45 , 8 , 960 , 505 , 2160 , 1250 }, /* 640x480 (6330) WORKS */
/* {27, 1, 800, 500, 2160, 1250 }, 640x480 (6325) */
{ 4 , 1 ,1080 , 625 , 2160 , 1250 },
{ 5 , 2 ,1350 , 800 , 2160 , 1250 },
{27 ,16 ,1500 ,1064 , 2160 , 1250 }, /* 1280x1024 */
{72 ,49 ,1680 ,1092 , 2160 , 1250 }, /* 1400x1050 (6330, was not supported on 6325) */
{ 1 , 1 ,2160 ,1250 , 2160 , 1250 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 , 0 , 0 }
};
static const struct SiS_LCDData SiS_NoScaleData[] =
{
{ 1 , 1 , 800 , 449 , 800 , 449 }, /* 0x00: 320x200, 640x400 */
{ 1 , 1 , 800 , 449 , 800 , 449 },
{ 1 , 1 , 900 , 449 , 900 , 449 },
{ 1 , 1 , 900 , 449 , 900 , 449 },
{ 1 , 1 , 800 , 525 , 800 , 525 }, /* 0x04: 320x240, 640x480 */
{ 1 , 1 ,1056 , 628 ,1056 , 628 }, /* 0x05: 400x300, 800x600 */
{ 1 , 1 ,1344 , 806 ,1344 , 806 }, /* 0x06: 512x384, 1024x768 */
{ 1 , 1 ,1688 ,1066 ,1688 ,1066 }, /* 0x07: 1280x1024 */
{ 1 , 1 ,1688 , 802 ,1688 , 802 }, /* 0x08: 1280x768: Fujitsu, TMDS only */
{ 1 , 1 ,2160 ,1250 ,2160 ,1250 }, /* 0x09: 1600x1200 */
{ 1 , 1 ,1800 ,1000 ,1800 ,1000 }, /* 0x0a: 1280x960 */
{ 1 , 1 ,1688 ,1066 ,1688 ,1066 }, /* 0x0b: 1400x1050 */
{ 1 , 1 ,1650 , 750 ,1650 , 750 }, /* 0x0c: 1280x720 (TMDS, projector) */
{ 1 , 1 ,1552 , 812 ,1552 , 812 }, /* 0x0d: 1280x800_2 (LVDS) (was: 1408,816/ 1656,841) */
{ 1 , 1 ,1900 ,1066 ,1900 ,1066 }, /* 0x0e: 1680x1050 (LVDS) */
{ 1 , 1 ,1660 , 806 ,1660 , 806 }, /* 0x0f: 1280x768_2 (LVDS) */
{ 1 , 1 ,1664 , 798 ,1664 , 798 }, /* 0x10: 1280x768_3 (NetVista SiS 301) - TODO */
{ 1 , 1 ,1688 , 802 ,1688 , 802 }, /* 0x11: 1280x768 (TMDS Fujitsu) */
{ 1 , 1 ,1408 , 806 ,1408 , 806 }, /* 0x12: 1280x720 (LVDS) */
{ 1 , 1 , 896 , 497 , 896 , 497 }, /* 0x13: 720x480 */
{ 1 , 1 , 912 , 597 , 912 , 597 }, /* 0x14: 720x576 */
{ 1 , 1 , 912 , 597 , 912 , 597 }, /* 0x15: 768x576 */
{ 1 , 1 ,1056 , 497 ,1056 , 497 }, /* 0x16: 848x480 */
{ 1 , 1 ,1064 , 497 ,1064 , 497 }, /* 0x17: 856x480 */
{ 1 , 1 ,1056 , 497 ,1056 , 497 }, /* 0x18: 800x480 */
{ 1 , 1 ,1328 , 739 ,1328 , 739 }, /* 0x19: 1024x576 */
{ 1 , 1 ,1680 , 892 ,1680 , 892 }, /* 0x1a: 1152x864 */
{ 1 , 1 ,1808 , 808 ,1808 , 808 }, /* 0x1b: 1360x768 */
{ 1 , 1 ,1104 , 563 ,1104 , 563 }, /* 0x1c: 960x540 */
{ 1 , 1 ,1120 , 618 ,1120 , 618 }, /* 0x1d: 960x600 */
{ 1 , 1 ,1408 , 816 ,1408 , 816 }, /* 0x1f: 1280x800 (TMDS special) */
{ 1 , 1 ,1760 ,1235 ,1760 ,1235 }, /* 0x20: 1600x1200 for LCDA */
{ 1 , 1 ,2048 ,1320 ,2048 ,1320 }, /* 0x21: 1600x1200 for non-SiS LVDS */
{ 1 , 1 ,1664 , 861 ,1664 , 861 } /* 0x22: 1280x854 */
};
/**************************************************************/
/* LVDS ----------------------------------------------------- */
/**************************************************************/
/* FSTN/DSTN 320x240, 2 variants */
static const struct SiS_LVDSData SiS_LVDS320x240Data_1[]=
{
{ 848 , 433 , 400 , 525 },
{ 848 , 389 , 400 , 525 },
{ 848 , 433 , 400 , 525 },
{ 848 , 389 , 400 , 525 },
{ 848 , 518 , 400 , 525 },
{1056 , 628 , 400 , 525 },
{ 400 , 525 , 400 , 525 } /* xSTN */
};
static const struct SiS_LVDSData SiS_LVDS320x240Data_2[]=
{
{ 800 , 445 , 800 , 525 },
{ 800 , 395 , 800 , 525 },
{ 800 , 445 , 800 , 525 },
{ 800 , 395 , 800 , 525 },
{ 800 , 525 , 800 , 525 },
{1056 , 628 ,1056 , 628 },
{ 480 , 525 , 480 , 525 } /* xSTN */
};
static const struct SiS_LVDSData SiS_LVDS640x480Data_1[]=
{
{ 800 , 445 , 800 , 525 }, /* 800, 449, 800, 449 */
{ 800 , 395 , 800 , 525 },
{ 800 , 445 , 800 , 525 },
{ 800 , 395 , 800 , 525 },
{ 800 , 525 , 800 , 525 }
};
static const struct SiS_LVDSData SiS_LVDS800x600Data_1[]=
{
{ 848 , 433 ,1060 , 629 },
{ 848 , 389 ,1060 , 629 },
{ 848 , 433 ,1060 , 629 },
{ 848 , 389 ,1060 , 629 },
{ 848 , 518 ,1060 , 629 },
{1056 , 628 ,1056 , 628 }
};
static const struct SiS_LVDSData SiS_LVDS1024x600Data_1[] =
{
{ 840 , 604 ,1344 , 800 },
{ 840 , 560 ,1344 , 800 },
{ 840 , 604 ,1344 , 800 },
{ 840 , 560 ,1344 , 800 },
{ 840 , 689 ,1344 , 800 },
{1050 , 800 ,1344 , 800 },
{1344 , 800 ,1344 , 800 }
};
static const struct SiS_LVDSData SiS_LVDS1024x768Data_1[]=
{
{ 840 , 438 ,1344 , 806 },
{ 840 , 409 ,1344 , 806 },
{ 840 , 438 ,1344 , 806 },
{ 840 , 409 ,1344 , 806 },
{ 840 , 518 ,1344 , 806 }, /* 640x480 */
{1050 , 638 ,1344 , 806 }, /* 800x600 */
{1344 , 806 ,1344 , 806 }, /* 1024x768 */
};
static const struct SiS_LVDSData SiS_CHTVUNTSCData[]=
{
{ 840 , 600 , 840 , 600 },
{ 840 , 600 , 840 , 600 },
{ 840 , 600 , 840 , 600 },
{ 840 , 600 , 840 , 600 },
{ 784 , 600 , 784 , 600 },
{1064 , 750 ,1064 , 750 },
{1160 , 945 ,1160 , 945 }
};
static const struct SiS_LVDSData SiS_CHTVONTSCData[]=
{
{ 840 , 525 , 840 , 525 },
{ 840 , 525 , 840 , 525 },
{ 840 , 525 , 840 , 525 },
{ 840 , 525 , 840 , 525 },
{ 784 , 525 , 784 , 525 },
{1040 , 700 ,1040 , 700 },
{1160 , 840 ,1160 , 840 }
};
/* CRT1 CRTC data for slave modes */
static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_1[] =
{
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 xaa,0 x1f,
0 x90,0 x85,0 x8f,0 xab,0 x30,0 x00,0 x05,
0 x00 }},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x83,0 x1f,
0 x5e,0 x83,0 x5d,0 x79,0 x10,0 x00,0 x05,
0 x00 }},
{{0 x65,0 x4f,0 x89,0 x54,0 x9f,0 xc4,0 x1f,
0 x92,0 x89,0 x8f,0 xb5,0 x30,0 x00,0 x01,
0 x00 }},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x83,0 x1f,
0 x5e,0 x83,0 x5d,0 x79,0 x10,0 x00,0 x05,
0 x00 }},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x04,0 x3e,
0 xe0,0 x85,0 xdf,0 xfb,0 x10,0 x00,0 x05,
0 x00 }},
{{0 x7f,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xf0,
0 x58,0 x8c,0 x57,0 x73,0 x20,0 x00,0 x06,
0 x01 }},
{{0 x2d,0 x27,0 x90,0 x2c,0 x80,0 x0b,0 x3e,
0 xe9,0 x8b,0 xe7,0 x04,0 x00,0 x00,0 x00,
0 x00 }}
};
static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_2[] =
{
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x7f,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xf0,
0 x58,0 x8c,0 x57,0 x73,0 x20,0 x00,0 x06,
0 x01}},
#if 0
{{0 x2d,0 x27,0 x90,0 x2c,0 x80,0 x0b,0 x3e,
0 xe9,0 x8b,0 xe7,0 x04,0 x00,0 x00,0 x00,
0 x00}}
#endif
{{0 x5f,0 x4f,0 x83,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xe8,0 x0c,0 x00,0 x00,0 x05,
0 x00}},
};
static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_2_H[] =
{
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 xaa,0 x1f,
0 x90,0 x85,0 x8f,0 xab,0 x30,0 x00,0 x05,
0 x00}},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x83,0 x1f,
0 x5e,0 x83,0 x5d,0 x79,0 x10,0 x00,0 x05,
0 x00}},
{{0 x65,0 x4f,0 x89,0 x54,0 x9f,0 xc4,0 x1f,
0 x92,0 x89,0 x8f,0 xb5,0 x30,0 x00,0 x01,
0 x00}},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x83,0 x1f,
0 x5e,0 x83,0 x5d,0 x79,0 x10,0 x00,0 x05,
0 x00}},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x04,0 x3e,
0 xe0,0 x85,0 xdf,0 xfb,0 x10,0 x00,0 x05,
0 x00}},
{{0 x7f,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xf0,
0 x58,0 x8c,0 x57,0 x73,0 x20,0 x00,0 x06,
0 x01}},
{{0 x2d,0 x27,0 x90,0 x2c,0 x80,0 x0b,0 x3e,
0 xe9,0 x8b,0 xe7,0 x04,0 x00,0 x00,0 x00,
0 x00}}
};
static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_3[] =
{
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x00,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x00,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x00,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x00,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x00,0 x00,0 x05,
0 x00}},
{{0 x7f,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xf0,
0 x58,0 x8c,0 x57,0 x73,0 x20,0 x00,0 x06,
0 x01}},
{{0 x2d,0 x27,0 x90,0 x2c,0 x80,0 x0b,0 x3e,
0 xe9,0 x8b,0 xe7,0 x04,0 x00,0 x00,0 x00,
0 x00}}
};
static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_3_H[] =
{
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 xaa,0 x1f,
0 x90,0 x85,0 x8f,0 xab,0 x30,0 x00,0 x05,
0 x00}},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x83,0 x1f,
0 x5e,0 x83,0 x5d,0 x79,0 x10,0 x00,0 x05,
0 x00}},
{{0 x65,0 x4f,0 x89,0 x54,0 x9f,0 xc4,0 x1f,
0 x92,0 x89,0 x8f,0 xb5,0 x30,0 x00,0 x01,
0 x00}},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x83,0 x1f,
0 x5e,0 x83,0 x5d,0 x79,0 x10,0 x00,0 x05,
0 x00}},
{{0 x65,0 x4f,0 x89,0 x56,0 x83,0 x04,0 x3e,
0 xe0,0 x85,0 xdf,0 xfb,0 x10,0 x00,0 x05,
0 x00}},
{{0 x7f,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xf0,
0 x58,0 x8c,0 x57,0 x73,0 x20,0 x00,0 x06,
0 x01}},
{{0 x2d,0 x27,0 x90,0 x2c,0 x80,0 x0b,0 x3e,
0 xe9,0 x8b,0 xe7,0 x04,0 x00,0 x00,0 x00,
0 x00}}
};
static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1640x480_1[] =
{
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x5f,0 x4f,0 x82,0 x55,0 x81,0 x0b,0 x3e,
0 xe9,0 x8b,0 xdf,0 x04,0 x30,0 x00,0 x05,
0 x00}},
{{0 x7f,0 x63,0 x83,0 x6c,0 x1c,0 x72,0 xf0,
0 x58,0 x8c,0 x57,0 x73,0 x20,0 x00,0 x06,
0 x01}}
};
static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1640x480_1_H[] =
{
{{0 x2d,0 x28,0 x90,0 x2b,0 xa0,0 xbf,0 x1f,
0 x9c,0 x8e,0 x96,0 xb9,0 x00,0 x00,0 x00,
0 x00}},
{{0 x2d,0 x28,0 x90,0 x2b,0 xa0,0 xbf,0 x1f,
0 x83,0 x85,0 x63,0 xba,0 x00,0 x00,0 x00,
0 x00}},
{{0 x2d,0 x28,0 x90,0 x2b,0 xa0,0 xbf,0 x1f,
0 x9c,0 x8e,0 x96,0 xb9,0 x00,0 x00,0 x00,
0 x00}},
{{0 x2d,0 x28,0 x90,0 x2b,0 xa0,0 xbf,0 x1f,
0 x83,0 x85,0 x63,0 xba,0 x00,0 x00,0 x00,
0 x00}},
{{0 x2d,0 x28,0 x90,0 x2c,0 x80,0 x0b,0 x3e,
0 xe9,0 x8b,0 xe7,0 x04,0 x00,0 x00,0 x00,
0 x00}}
};
#endif
Messung V0.5 in Prozent C=95 H=93 G=93