/* Copyright (C) 2003-2006 by XGI Technology, Taiwan.
 *
 * All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation on the rights to use, copy, modify, merge,
 * publish, distribute, sublicense, and/or sell copies of the Software,
 * and to permit persons to whom the Software is furnished to do so,
 * subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the
 * next paragraph) shall be included in all copies or substantial
 * portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NON-INFRINGEMENT.  IN NO EVENT SHALL XGI AND/OR
 *  ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 */
 
 
#define  Tap4
static const XGI_ECLKDataStruct XGI330_ECLKData[ECLK_SIZE]=
{
 { 0x5c,0x23,0x01,166},
 { 0x5c,0x23,0x01,166},
 { 0x7C,0x08,0x80,200},
 { 0x79,0x06,0x80,250},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300}
};

static const XGI_ECLKDataStruct XGI340_ECLKData[ECLK_SIZE]=
{
 { 0x7c,0x08,0x01,200},
 { 0x7c,0x08,0x01,200},
 { 0x7C,0x08,0x80,200},
 { 0x79,0x06,0x80,250},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300}
};

static const DRAM8Type XGI340_SR13[SR15_SIZE] = {
    {0xb1, 0xb1, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
    {0x6a, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
    {0x31, 0x72, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}  /* SR1B */
};

static const DRAM8Type XGI340_CR41[CR40_SIZE] = {
    {0x20, 0x91, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
    {0x04, 0x04, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
    {0x04, 0x04, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
    {0xb5, 0xc6, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, 
    {0xf0, 0x90, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, 
    {0xa4, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
    {0x77, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
    {0x77, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
    {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
    {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
    {0x48, 0xaa, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
    {0x77, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
    {0x88, 0x78, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
    {0x44, 0x43, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
    {0x44, 0x55, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
    {0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
    {0x44, 0x45, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
    {0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
    {0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
    {0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
    {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
    {0x03, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}  /* 23 CRC5 */
};

/* Jong 10/04/2007; merge code */
UCHAR XGI27_cr41[24][8]=
{
{0x20,0x60,0x60,0x00,0x00,0x00,0x00,0x00},/* 0 CR41 */
{0x04,0x44,0x84,0x00,0x00,0x00,0x00,0x00},/* 1 CR8A */
{0x04,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 2 CR8B */
{0xb5,0x03,0xa4,0x00,0x00,0x00,0x00,0x00},/* 3 CR40[7],CR99[2:0],CR45[3:0]*/
{0xf0,0xf5,0xf0,0x00,0x00,0x00,0x00,0x00},/* 4 CR59 */
{0xa4,0x1C,0x24,0x00,0x00,0x00,0x00,0x00},/* 5 CR68 */
{0x77,0x77,0x44,0x00,0x00,0x00,0x00,0x00},/* 6 CR69 */
{0x77,0x77,0x44,0x00,0x00,0x00,0x00,0x00},/* 7 CR6A */
{0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00},/* 8 CR6D */
{0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00},/* 9 CR80 */
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/* 10 CR81 */
{0x48,0xa8,0x48,0x00,0x00,0x00,0x00,0x00},/* 11 CR82 */
{0x77,0x88,0x77,0x00,0x00,0x00,0x00,0x00},/* 12 CR85 */
{0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00},/* 13 CR86 */
{0x44,0x32,0x44,0x00,0x00,0x00,0x00,0x00},/* 14 CR90 */
{0x44,0x33,0x44,0x00,0x00,0x00,0x00,0x00},/* 15 CR91 */
{0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00},/* 16 CR92 */
{0x44,0x63,0x44,0x00,0x00,0x00,0x00,0x00},/* 17 CR93 */
{0x0A,0x14,0x0A,0x00,0x00,0x00,0x00,0x00},/* 18 CR94 */
{0x0C,0x0B,0x0C,0x00,0x00,0x00,0x00,0x00},/* 19 CR95 */
{0x05,0x22,0x05,0x00,0x00,0x00,0x00,0x00},/* 20 CR96 */
{0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00},/* 21 CRC3 */
{0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00},/* 22 CRC4 */
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}/* 23 CRC5 */
};

UCHAR XGI340_CR6B[8][4]={
    {0xaa, 0xaa, 0xaa, 0xaa},
    {0xaa, 0xaa, 0xaa, 0xaa},
    {0xaa, 0xaa, 0xaa, 0xaa},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00}
};

static const UCHAR XGI45_CR6E[CR6E_SIZE] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};


static const DRAM4Type XGI340_CR6E[CR6E_SIZE] = {
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00}
};

static const UCHAR XGI45_CR6F[CR6F_SIZE] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

static const DRAM32Type XGI340_CR6F[CR6F_SIZE] = {
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
};

static const DRAM2Type XGI340_CR89[CR89_SIZE]={
    {0xa0, 0x00},
    {0xa0, 0x00},
    {0xa0, 0x00},
    {0x00, 0x00},
    {0x00, 0x00},
    {0x00, 0x00},
    {0x00, 0x00},
    {0x00, 0x00}
};

static const UCHAR XGI340_AGPReg[AGP_REG_SIZE] = {
 /* CR47, CR48, CR49, CR4A */
    0x28, 0x23, 0x00, 0x20,
 /* CR4B, CR4C, CR70, CR71 */
    0x00, 0x20, 0x00, 0x05,
 /* CR74, CR75, CR76, CR77 */
    0xd0, 0x10, 0x10, 0x00
};

static const UCHAR XGI340_SR16[4] = { 0x03, 0x83, 0x03, 0x83 };

static const UCHAR XGI330_SR25[2] = { 0x00, 0x00 };
static const UCHAR XGI330_SR31 = 0x40;
static const UCHAR XGI330_SR32 = 0x11;
static const UCHAR XG40_CRCF = 0x13;
static const UCHAR XG40_DRAMTypeDefinition = 0xFF;

static const XGI_StStruct XGI330_SModeIDTable[]=
{
 {0x01,0x9208,0x01,0x00,0x10,0x00,0x00,0x01,0x00},
 {0x01,0x1210,0x14,0x01,0x00,0x01,0x00,0x01,0x00},
 {0x01,0x1010,0x17,0x02,0x11,0x00,0x00,0x01,0x01},
 {0x03,0x8208,0x03,0x00,0x14,0x00,0x00,0x01,0x02},
 {0x03,0x0210,0x16,0x01,0x04,0x01,0x00,0x01,0x02},
 {0x03,0x0010,0x18,0x02,0x15,0x00,0x00,0x01,0x03},
 {0x05,0x9209,0x05,0x00,0x10,0x00,0x00,0x00,0x04},
 {0x06,0x8209,0x06,0x00,0x14,0x00,0x00,0x00,0x05},
 {0x07,0x0000,0x07,0x03,0x05,0x03,0x00,0x01,0x03},
 {0x07,0x0000,0x19,0x02,0x15,0x02,0x00,0x01,0x03},
 {0x0d,0x920a,0x0d,0x00,0x10,0x00,0x00,0x00,0x04},
 {0x0e,0x820a,0x0e,0x00,0x14,0x00,0x00,0x00,0x05},
 {0x0f,0x0202,0x11,0x01,0x04,0x01,0x00,0x00,0x05},
 {0x10,0x0212,0x12,0x01,0x04,0x01,0x00,0x00,0x05},
 {0x11,0x0212,0x1a,0x04,0x24,0x04,0x00,0x00,0x05},
 {0x12,0x0212,0x1b,0x04,0x24,0x04,0x00,0x00,0x05},
 {0x13,0x021b,0x1c,0x00,0x14,0x00,0x00,0x00,0x04},
 {0x12,0x0010,0x18,0x02,0x24,0x02,0x00,0x00,0x05},/* St_CRT2CRTC2 not sure */
 {0x12,0x0210,0x18,0x01,0x24,0x01,0x00,0x00,0x05},/* St_CRT2CRTC2 not sure */
 {0xff,0x0000,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
};


static const XGI_ExtStruct  XGI330_EModeIDTable[]=
{
 {0x6a,0x2212,0x0407,0x3a81,0x0102,0x08,0x07,0x00,0x00,0x07,0x0e},
 {0x2e,0x0a1b,0x0306,0x3a57,0x0101,0x08,0x06,0x00,0x00,0x05,0x06},
 {0x2f,0x0a1b,0x0305,0x3a50,0x0100,0x08,0x05,0x00,0x00,0x05,0x05},
 {0x30,0x2a1b,0x0407,0x3a81,0x0103,0x08,0x07,0x00,0x00,0x07,0x0e},
 {0x31,0x0a1b,0x030d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d},
 {0x32,0x0a1b,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e},
 {0x33,0x0a1d,0x0a0d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d},
 {0x34,0x2a1d,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e},
 {0x35,0x0a1f,0x0a0d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d},
 {0x36,0x2a1f,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e},
 {0x37,0x0212,0x0508,0x3aab,0x0104,0x08,0x08,0x00,0x00,0x00,0x16},
 {0x38,0x0a1b,0x0508,0x3aab,0x0105,0x08,0x08,0x00,0x00,0x00,0x16},
 {0x3a,0x0e3b,0x0609,0x3adc,0x0107,0x08,0x09,0x00,0x00,0x00,0x1e},
 {0x3c,0x0e3b,0x070a,0x3af2,0x0130,0x08,0x0a,0x00,0x00,0x00,0x22},	/* mode 1600x1200 add CRT2MODE [2003/10/07] */
 {0x3d,0x0e7d,0x070a,0x3af2,0x0131,0x08,0x0a,0x00,0x00,0x00,0x22},	/* mode 1600x1200 add CRT2MODE */
 {0x40,0x9a1c,0x0000,0x3a34,0x010d,0x08,0x00,0x00,0x00,0x04,0x00},
 {0x41,0x9a1d,0x0000,0x3a34,0x010e,0x08,0x00,0x00,0x00,0x04,0x00},	/* ModeIdIndex = 0x10 */
 {0x43,0x0a1c,0x0306,0x3a57,0x0110,0x08,0x06,0x00,0x00,0x05,0x06},
 {0x44,0x0a1d,0x0306,0x3a57,0x0111,0x08,0x06,0x00,0x00,0x05,0x06},
 {0x46,0x2a1c,0x0407,0x3a81,0x0113,0x08,0x07,0x00,0x00,0x07,0x0e},
 {0x47,0x2a1d,0x0407,0x3a81,0x0114,0x08,0x07,0x00,0x00,0x07,0x0e},
 {0x49,0x0a3c,0x0508,0x3aab,0x0116,0x08,0x08,0x00,0x00,0x00,0x16},
 {0x4a,0x0a3d,0x0508,0x3aab,0x0117,0x08,0x08,0x00,0x00,0x00,0x16},
 {0x4c,0x0e7c,0x0609,0x3adc,0x0119,0x08,0x09,0x00,0x00,0x00,0x1e},
 {0x4d,0x0e7d,0x0609,0x3adc,0x011a,0x08,0x09,0x00,0x00,0x00,0x1e},
 {0x50,0x9a1b,0x0001,0x3a3b,0x0132,0x08,0x01,0x00,0x00,0x04,0x02},
 {0x51,0xba1b,0x0103,0x3a42,0x0133,0x08,0x03,0x00,0x00,0x07,0x03},
 {0x52,0x9a1b,0x0204,0x3a49,0x0134,0x08,0x04,0x00,0x00,0x00,0x04},
 {0x56,0x9a1d,0x0001,0x3a3b,0x0135,0x08,0x01,0x00,0x00,0x04,0x02},
 {0x57,0xba1d,0x0103,0x3a42,0x0136,0x08,0x03,0x00,0x00,0x07,0x03},
 {0x58,0x9a1d,0x0204,0x3a49,0x0137,0x08,0x04,0x00,0x00,0x00,0x04},
 {0x59,0x9a1b,0x0000,0x3a34,0x0138,0x08,0x00,0x00,0x00,0x04,0x00},
 {0x5A,0x021b,0x0014,0x3b83,0x0138,0x08,0x01,0x00,0x00,0x04,0x3f},	/* ModeIdIndex = 0x20 */
 {0x5B,0x0a1d,0x0014,0x3b83,0x0135,0x08,0x01,0x00,0x00,0x04,0x3f},
 {0x5d,0x0a1d,0x0305,0x3a50,0x0139,0x08,0x05,0x00,0x00,0x07,0x05},
 {0x62,0x0a3f,0x0306,0x3a57,0x013a,0x08,0x06,0x00,0x00,0x05,0x06},
 {0x63,0x2a3f,0x0407,0x3a81,0x013b,0x08,0x07,0x00,0x00,0x07,0x0e},
 {0x64,0x0a7f,0x0508,0x3aab,0x013c,0x08,0x08,0x00,0x00,0x00,0x16},
 {0x65,0x0eff,0x0609,0x3adc,0x013d,0x08,0x09,0x00,0x00,0x00,0x1e},
 {0x66,0x0eff,0x070a,0x3af2,0x013e,0x08,0x0a,0x00,0x00,0x00,0x22},	/* mode 1600x1200 add CRT2MODE */
 {0x68,0x067b,0x080b,0x3b17,0x013f,0x08,0x0b,0x00,0x00,0x00,0x29},
 {0x69,0x06fd,0x080b,0x3b17,0x0140,0x08,0x0b,0x00,0x00,0x00,0x29},
 {0x6b,0x07ff,0x080b,0x3b17,0x0141,0x10,0x0b,0x00,0x00,0x00,0x29},
 {0x6c,0x067b,0x090c,0x3b37,0x0000,0x08,0x0c,0x00,0x00,0x00,0x2f},
 {0x6d,0x06fd,0x090c,0x3b37,0x0000,0x10,0x0c,0x00,0x00,0x00,0x2f},
 {0x6e,0x07ff,0x090c,0x3b37,0x0000,0x10,0x0c,0x00,0x00,0x00,0x2f},
 {0x70,0x2a1b,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34},
 {0x71,0x0a1b,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37},
 {0x74,0x0a1d,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37},	/* ModeIdIndex = 0x30 */
 {0x75,0x0a3d,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a},
 {0x76,0x2a1f,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34},
 {0x77,0x0a1f,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37},
 {0x78,0x0a3f,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a},
 {0x79,0x0a3b,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a},
 {0x7a,0x2a1d,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34},
 {0x7b,0x0e3b,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d},
 {0x7c,0x0e7d,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d},
 {0x7d,0x0eff,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d},
 {0x20,0x0e3b,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43},
 {0x21,0x0e7d,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43},
 {0x22,0x0eff,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43},
 {0x23,0x0e3b,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41},
 {0x24,0x0e7d,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41},
 {0x25,0x0eff,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41},
 {0x26,0x063b,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42},	/* ModeIdIndex = 0x40 */
 {0x27,0x067d,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42},
 {0x28,0x06ff,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42},
 {0xff,0x0000,0x0000,0x0000,0x0000,0x00,0x00,0x00,0x00,0x00,0x00}
};

/* Jong 10/04/2007; merge code */
TimingInfo SpecialModeTiming[]=
{
  {1280,110, 40,220,    720, 5,  5, 20,
      74.18,     60,      0, 0
  },
  {1440, 80,152,232,    900, 1,  3, 28,
    106.472,     60,      0, 0
  },
  {1920, 88, 44,148,    540, 2,  5, 15,
      74.11,     60,      1, 0
  },
  {1920,120,208,328,   1080, 1,  3, 34,
      172.8,     60,      0, 0
  },
  {1920,128,208,336,   1200, 1,  3, 38,
     193.16,     60,      0, 0
  },
  {   0,  0,  0,  0,      0, 0,  0,  0,
          0,      0,      0, 0
  }
};



XGI_StandTableStruct XGI330_StandTable[]=
{
/* MD_0_200 */
 {
  0x28,0x18,0x08,0x0800,
  {0x09,0x03,0x00,0x02},
  0x63,
  {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
   0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
   0x08,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_1_200 */
 {
  0x28,0x18,0x08,0x0800,
  {0x09,0x03,0x00,0x02},
  0x63,
  {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
   0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
   0x08,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_2_200 */
 {
  0x50,0x18,0x08,0x1000,
  {0x01,0x03,0x00,0x02},
  0x63,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
   0x08,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_3_200 */
 {
  0x50,0x18,0x08,0x1000,
  {0x01,0x03,0x00,0x02},
  0x63,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
   0x08,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_4 */
 {
  0x28,0x18,0x08,0x4000,
  {0x09,0x03,0x00,0x02},
  0x63,
  {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,
   0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2,
   0xff},
  {0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07,
   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
   0x01,0x00,0x03,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00,
   0xff}
 },
/* MD_5 */
 {
  0x28,0x18,0x08,0x4000,
  {0x09,0x03,0x00,0x02},
  0x63,
  {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,
   0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2,
   0xff},
  {0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07,
   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
   0x01,0x00,0x03,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00,
   0xff}
 },
/* MD_6 */
 {
  0x50,0x18,0x08,0x4000,
  {0x01,0x01,0x00,0x06},
  0x63,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xc2,
   0xff},
  {0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
   0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
   0x01,0x00,0x01,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,
   0xff}
 },
/* MD_7 */
 {
  0x50,0x18,0x0e,0x1000,
  {0x00,0x03,0x00,0x03},
  0xa6,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
   0x83,0x85,0x5d,0x28,0x0d,0x63,0xba,0xa3,
   0xff},
  {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
   0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
   0x0e,0x00,0x0f,0x08},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00,
   0xff}
 },
/* MDA_DAC */
 {
  0x00,0x00,0x00,0x0000,
  {0x00,0x00,0x00,0x15},
  0x15,
  {0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
   0x15,0x15,0x15,0x15,0x15,0x15,0x3f,0x3f,
   0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00,0x00,
   0x00},
  {0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x15,
   0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
   0x15,0x15,0x15,0x15},
  {0x15,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
   0x3f}
 },
/* CGA_DAC */
 {
  0x00,0x10,0x04,0x0114,
  {0x11,0x09,0x15,0x00},
  0x10,
  {0x04,0x14,0x01,0x11,0x09,0x15,0x2a,0x3a,
   0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x2a,0x3a,
   0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x00,0x10,
   0x04},
  {0x14,0x01,0x11,0x09,0x15,0x00,0x10,0x04,
   0x14,0x01,0x11,0x09,0x15,0x2a,0x3a,0x2e,
   0x3e,0x2b,0x3b,0x2f},
  {0x3f,0x2a,0x3a,0x2e,0x3e,0x2b,0x3b,0x2f,
   0x3f}
 },
/* EGA_DAC */
 {
  0x00,0x10,0x04,0x0114,
  {0x11,0x05,0x15,0x20},
  0x30,
  {0x24,0x34,0x21,0x31,0x25,0x35,0x08,0x18,
   0x0c,0x1c,0x09,0x19,0x0d,0x1d,0x28,0x38,
   0x2c,0x3c,0x29,0x39,0x2d,0x3d,0x02,0x12,
   0x06},
  {0x16,0x03,0x13,0x07,0x17,0x22,0x32,0x26,
   0x36,0x23,0x33,0x27,0x37,0x0a,0x1a,0x0e,
   0x1e,0x0b,0x1b,0x0f},
  {0x1f,0x2a,0x3a,0x2e,0x3e,0x2b,0x3b,0x2f,
   0x3f}
 },
/* VGA_DAC */
 {
  0x00,0x10,0x04,0x0114,
  {0x11,0x09,0x15,0x2a},
  0x3a,
  {0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x00,0x05,
   0x08,0x0b,0x0e,0x11,0x14,0x18,0x1c,0x20,
   0x24,0x28,0x2d,0x32,0x38,0x3f,0x00,0x10,
   0x1f},
  {0x2f,0x3f,0x1f,0x27,0x2f,0x37,0x3f,0x2d,
   0x31,0x36,0x3a,0x3f,0x00,0x07,0x0e,0x15,
   0x1c,0x0e,0x11,0x15},
  {0x18,0x1c,0x14,0x16,0x18,0x1a,0x1c,0x00,
   0x04}
 },
 {
  0x08,0x0c,0x10,0x0a08,
  {0x0c,0x0e,0x10,0x0b},
  0x0c,
  {0x0d,0x0f,0x10,0x10,0x01,0x08,0x00,0x00,
   0x00,0x00,0x01,0x00,0x02,0x02,0x01,0x00,
   0x04,0x04,0x01,0x00,0x05,0x02,0x05,0x00,
   0x06},
  {0x01,0x06,0x05,0x06,0x00,0x08,0x01,0x08,
   0x00,0x07,0x02,0x07,0x06,0x07,0x00,0x00,
   0x00,0x00,0x00,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   0x00}
 },
/* MD_D */
 {
  0x28,0x18,0x08,0x2000,
  {0x09,0x0f,0x00,0x06},
  0x63,
  {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f,
   0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xe3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
   0x01,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
   0xff}
 },
/* MD_E */
 {
  0x50,0x18,0x08,0x4000,
  {0x01,0x0f,0x00,0x06},
  0x63,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xe3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
   0x01,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
   0xff}
 },
/* ExtVGATable */
 {
  0x00,0x00,0x00,0x0000,
  {0x01,0x0f,0x00,0x0e},
  0x23,
  {0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,
   0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
   0xea,0x8c,0xdf,0x28,0x40,0xe7,0x04,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
   0x01,0x00,0x00,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,
   0xff}
 },
/* ROM_SAVEPTR */
 {
  0x9f,0x3b,0x00,0x00c0,
  {0x00,0x00,0x00,0x00},
  0x00,
  {0x00,0x00,0x00,0x00,0x00,0x00,0xbb,0x3f,
   0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
   0x00,0x00,0x1a,0x00,0xac,0x3e,0x00,0xc0,
   0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   0x00,0x00,0x00,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   0x00}
 },
/* MD_F */
 {
  0x50,0x18,0x0e,0x8000,
  {0x01,0x0f,0x00,0x06},
  0xa2,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
   0x82,0x84,0x5d,0x28,0x0f,0x63,0xba,0xe3,
   0xff},
  {0x00,0x08,0x00,0x00,0x18,0x18,0x00,0x00,
   0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00,
   0x0b,0x00,0x05,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,
   0xff}
 },
/* MD_10 */
 {
  0x50,0x18,0x0e,0x8000,
  {0x01,0x0f,0x00,0x06},
  0xa3,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
   0x82,0x84,0x5d,0x28,0x0f,0x63,0xba,0xe3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
   0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
   0x01,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
   0xff}
 },
/* MD_0_350 */
 {
  0x28,0x18,0x0e,0x0800,
  {0x09,0x03,0x00,0x02},
  0xa3,
  {0x2d,0x27,0x28,0x90,0x2b,0xb1,0xbf,0x1f,
   0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
   0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
   0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
   0x08,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_1_350 */
 {
  0x28,0x18,0x0e,0x0800,
  {0x09,0x03,0x00,0x02},
  0xa3,
  {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,
   0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
   0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
   0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
   0x08,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_2_350 */
 {
  0x50,0x18,0x0e,0x1000,
  {0x01,0x03,0x00,0x02},
  0xa3,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
   0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
   0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
   0x08,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_3_350 */
 {
  0x50,0x18,0x0e,0x1000,
  {0x01,0x03,0x00,0x02},
  0xa3,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,
   0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
   0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
   0x08,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_0_1_400 */
 {
  0x28,0x18,0x10,0x0800,
  {0x08,0x03,0x00,0x02},
  0x67,
  {0x2d,0x27,0x28,0x90,0x2b,0xb1,0xbf,0x1f,
   0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
   0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
   0x0c,0x00,0x0f,0x08},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_2_3_400 */
 {
  0x50,0x18,0x10,0x1000,
  {0x00,0x03,0x00,0x02},
  0x67,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
   0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
   0x0c,0x00,0x0f,0x08},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
   0xff}
 },
/* MD_7_400 */
 {
  0x50,0x18,0x10,0x1000,
  {0x00,0x03,0x00,0x02},
  0x66,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x28,0x0f,0x96,0xb9,0xa3,
   0xff},
  {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
   0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
   0x0e,0x00,0x0f,0x08},
  {0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00,
   0xff}
 },
/* MD_11 */
 {
  0x50,0x1d,0x10,0xa000,
  {0x01,0x0f,0x00,0x06},
  0xe3,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e,
   0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
   0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xc3,
   0xff},
  {0x00,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
   0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
   0x01,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x01,
   0xff}
 },
/* ExtEGATable */
 {
  0x50,0x1d,0x10,0xa000,
  {0x01,0x0f,0x00,0x06},
  0xe3,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e,
   0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
   0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xe3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
   0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
   0x01,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
   0xff}
 },
/* MD_13 */
 {
  0x28,0x18,0x08,0x2000,
  {0x01,0x0f,0x00,0x0e},
  0x63,
  {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
   0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,
   0x9c,0x8e,0x8f,0x28,0x40,0x96,0xb9,0xa3,
   0xff},
  {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
   0x41,0x00,0x0f,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,
   0xff}
 }
};

static const XGI_TimingHStruct XGI_TimingH[]=
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}};

static const XGI_TimingVStruct XGI_TimingV[]=
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00}}};

/* Jong 10/04/2007; merge code */
XGI_XG21CRT1Struct XGI_UpdateCRT1Table[]=
{
 {0x01,0x27,0x91,0x8f,0xc0},	/* 00 */
 {0x03,0x4f,0x83,0x8f,0xc0},	/* 01 */
 {0x05,0x27,0x91,0x8f,0xc0},	/* 02 */
 {0x06,0x4f,0x83,0x8f,0xc0},	/* 03 */
 {0x07,0x4f,0x83,0x8f,0xc0},	/* 04 */
 {0x0d,0x27,0x91,0x8f,0xc0},	/* 05 */
 {0x0e,0x4f,0x83,0x8f,0xc0},	/* 06 */
 {0x0f,0x4f,0x83,0x5d,0xc0},	/* 07 */
 {0x10,0x4f,0x83,0x5d,0xc0},	/* 08 */
 {0x11,0x4f,0x83,0xdf,0x0c},	/* 09 */
 {0x12,0x4f,0x83,0xdf,0x0c},	/* 10 */
 {0x13,0x4f,0x83,0x8f,0xc0},	/* 11 */
 {0x2e,0x4f,0x83,0xdf,0x0c},	/* 12 */
 {0x2e,0x4f,0x87,0xdf,0xc0},	/* 13 */
 {0x2f,0x4f,0x83,0x8f,0xc0},	/* 14 */
 {0x50,0x27,0x91,0xdf,0x0c},	/* 15 */
 {0x59,0x27,0x91,0x8f,0xc0}	/* 16 */
};

static const XGI_CRT1TableStruct XGI_CRT1Table[]=
{
 {{0x2d,0x28,0x90,0x2c,0x90,0x00,0x04,0x00,
    0xbf,0x1f,0x9c,0x8e,0x96,0xb9,0x30}}, /* 0x0 */
 {{0x2d,0x28,0x90,0x2c,0x90,0x00,0x04,0x00,
    0x0b,0x3e,0xe9,0x8b,0xe7,0x04,0x00}}, /* 0x1 */
 {{0x3D,0x31,0x81,0x37,0x1F,0x00,0x05,0x00,
    0x72,0xF0,0x58,0x8C,0x57,0x73,0xA0}}, /* 0x2 */
 {{0x4F,0x3F,0x93,0x45,0x0D,0x00,0x01,0x00,
    0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x3 */
 {{0x5F,0x50,0x82,0x55,0x81,0x00,0x05,0x00,
    0xBF,0x1F,0x9C,0x8E,0x96,0xB9,0x30}}, /* 0x4 */
 {{0x5F,0x50,0x82,0x55,0x81,0x00,0x05,0x00,
    0x0B,0x3E,0xE9,0x8B,0xE7,0x04,0x00}}, /* 0x5 */
 {{0x63,0x50,0x86,0x56,0x9B,0x00,0x01,0x00,
    0x06,0x3E,0xE8,0x8B,0xE7,0xFF,0x10}}, /* 0x6 */
 {{0x64,0x4F,0x88,0x55,0x9D,0x00,0x01,0x00,
    0xF2,0x1F,0xE0,0x83,0xDF,0xF3,0x10}}, /* 0x7 */
 {{0x63,0x4F,0x87,0x5A,0x81,0x00,0x05,0x00,
    0xFB,0x1F,0xE0,0x83,0xDF,0xFC,0x10}}, /* 0x8 */
 {{0x65,0x4F,0x89,0x58,0x80,0x00,0x05,0x60,
    0xFB,0x1F,0xE0,0x83,0xDF,0xFC,0x80}}, /* 0x9 */
 {{0x65,0x4F,0x89,0x58,0x80,0x00,0x05,0x60,
    0x01,0x3E,0xE0,0x83,0xDF,0x02,0x80}}, /* 0xa */
 {{0x67,0x4F,0x8B,0x58,0x81,0x00,0x05,0x60,
    0x0D,0x3E,0xE0,0x83,0xDF,0x0E,0x90}}, /* 0xb */
 {{0x65,0x4F,0x89,0x57,0x9F,0x00,0x01,0x00,
   0xFB,0x1F,0xE6,0x8A,0xDF,0xFC,0x10}}, /* 0xc */
 {{0x7B,0x63,0x9F,0x6A,0x93,0x00,0x05,0x00,    /* ; 0D (800x600,56Hz) */
    0x6F,0xF0,0x58,0x8A,0x57,0x70,0xA0}},         /* ; (VCLK 36.0MHz) */
 {{0x7F,0x63,0x83,0x6C,0x1C,0x00,0x06,0x00,    /* ; 0E (800x600,60Hz) */
    0x72,0xF0,0x58,0x8C,0x57,0x73,0xA0}},         /* ; (VCLK 40.0MHz) */
 {{0x7D,0x63,0x81,0x6E,0x1D,0x00,0x06,0x00,    /* ; 0F (800x600,72Hz) */
    0x98,0xF0,0x7C,0x82,0x57,0x99,0x80}},         /* ; (VCLK 50.0MHz) */
 {{0x7F,0x63,0x83,0x69,0x13,0x00,0x06,0x00,    /* ; 10 (800x600,75Hz) */
    0x6F,0xF0,0x58,0x8B,0x57,0x70,0xA0}},         /* ; (VCLK 49.5MHz) */
 {{0x7E,0x63,0x82,0x6B,0x13,0x00,0x06,0x00,    /* ; 11 (800x600,85Hz) */
    0x75,0xF0,0x58,0x8B,0x57,0x76,0xA0}},         /* ; (VCLK 56.25MHz) */
 {{0x81,0x63,0x85,0x6D,0x18,0x00,0x06,0x60,    /* ; 12 (800x600,100Hz) */
    0x7A,0xF0,0x58,0x8B,0x57,0x7B,0xA0}},         /* ; (VCLK 75.8MHz) */
 {{0x83,0x63,0x87,0x6E,0x19,0x00,0x06,0x60,    /* ; 13 (800x600,120Hz) */
    0x81,0xF0,0x58,0x8B,0x57,0x82,0xA0}},         /* ; (VCLK 79.411MHz) */
 {{0x85,0x63,0x89,0x6F,0x1A,0x00,0x06,0x60,    /* ; 14 (800x600,160Hz) */
   0x91,0xF0,0x58,0x8B,0x57,0x92,0xA0}},         /* ; (VCLK 105.822MHz) */
 {{0x99,0x7F,0x9D,0x84,0x1A,0x00,0x02,0x00,
    0x96,0x1F,0x7F,0x83,0x7F,0x97,0x10}}, /* 0x15 */
 {{0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00,
    0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x16 */
 {{0xA1,0x7F,0x85,0x86,0x97,0x00,0x02,0x00,
    0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x17 */
 {{0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00,
    0x1E,0xF5,0x00,0x83,0xFF,0x1F,0x90}}, /* 0x18 */
 {{0xA7,0x7F,0x8B,0x89,0x95,0x00,0x02,0x00,
    0x26,0xF5,0x00,0x83,0xFF,0x27,0x90}}, /* 0x19 */
 {{0xA9,0x7F,0x8D,0x8C,0x9A,0x00,0x02,0x62,
    0x2C,0xF5,0x00,0x83,0xFF,0x2D,0x14}}, /* 0x1a */
 {{0xAB,0x7F,0x8F,0x8D,0x9B,0x00,0x02,0x62,
    0x35,0xF5,0x00,0x83,0xFF,0x36,0x14}}, /* 0x1b */
 {{0xCF,0x9F,0x93,0xB2,0x01,0x00,0x03,0x00,
    0x14,0xBA,0x00,0x83,0xFF,0x15,0x00}}, /* 0x1c */
 {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00,
    0x28,0x5A,0x00,0x83,0xFF,0x29,0x89}}, /* 0x1d */
 {{0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00,
    0x28,0x5A,0x00,0x83,0xFF,0x29,0x89}}, /* 0x1e */
 {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x00,
    0x2E,0x5A,0x00,0x83,0xFF,0x2F,0x89}}, /* 0x1f */
 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
    0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x20 */
 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
    0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x21 */
 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
    0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x22 */
 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
    0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x23 */
 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
    0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x24 */
 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
    0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x25 */
 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00,
    0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x26 */
 {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00,
    0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x27 */
 {{0x43,0xEF,0x87,0x06,0x00,0x41,0x05,0x62,
    0xD4,0x1F,0xA0,0x83,0x9F,0xD5,0x9F}}, /* 0x28 */
 {{0x45,0xEF,0x89,0x07,0x01,0x41,0x05,0x62,
    0xD9,0x1F,0xA0,0x83,0x9F,0xDA,0x9F}}, /* 0x29 */
 {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00,
    0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2a */
 {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00,
    0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2b */
 {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00,
    0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2c */
 {{0x59,0xFF,0x9D,0x17,0x13,0x41,0x05,0x44,
    0x33,0xBA,0x00,0x83,0xFF,0x34,0x0F}}, /* 0x2d */
 {{0x5B,0xFF,0x9F,0x18,0x14,0x41,0x05,0x44,
    0x38,0xBA,0x00,0x83,0xFF,0x39,0x0F}}, /* 0x2e */
 {{0x5B,0xFF,0x9F,0x18,0x14,0x41,0x05,0x44,
    0x3D,0xBA,0x00,0x83,0xFF,0x3E,0x0F}}, /* 0x2f */
 {{0x5D,0xFF,0x81,0x19,0x95,0x41,0x05,0x44,
    0x41,0xBA,0x00,0x84,0xFF,0x42,0x0F}}, /* 0x30 */
 {{0x55,0xFF,0x99,0x0D,0x0C,0x41,0x05,0x00,
    0x3E,0xBA,0x00,0x84,0xFF,0x3F,0x0F}}, /* 0x31 */
 {{0x7F,0x63,0x83,0x6C,0x1C,0x00,0x06,0x00,
    0x72,0xBA,0x27,0x8B,0xDF,0x73,0x80}}, /* 0x32 */
 {{0x7F,0x63,0x83,0x69,0x13,0x00,0x06,0x00,
    0x6F,0xBA,0x26,0x89,0xDF,0x6F,0x80}}, /* 0x33 */
 {{0x7F,0x63,0x82,0x6B,0x13,0x00,0x06,0x00,
    0x75,0xBA,0x29,0x8C,0xDF,0x75,0x80}}, /* 0x34 */
 {{0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00,
    0x24,0xF1,0xAF,0x85,0x3F,0x25,0xB0}}, /* 0x35 */
 {{0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00,
    0x1E,0xF1,0xAD,0x81,0x3F,0x1F,0xB0}}, /* 0x36 */
 {{0xA7,0x7F,0x88,0x89,0x15,0x00,0x02,0x00,
    0x26,0xF1,0xB1,0x85,0x3F,0x27,0xB0}}, /* 0x37 */
 {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00,
    0x28,0xC4,0x7A,0x8E,0xCF,0x29,0xA1}}, /* 0x38 */
 {{0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00,
    0x28,0xD4,0x7A,0x8E,0xCF,0x29,0xA1}}, /* 0x39 */
 {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x00,
    0x2E,0xD4,0x7D,0x81,0xCF,0x2F,0xA1}}, /* 0x3a */
 {{0xDC,0x9F,0x00,0xAB,0x19,0x00,0x07,0x00,
    0xE6,0xEF,0xC0,0xC3,0xBF,0xE7,0x90}}, /* 0x3b */
 {{0x6B,0x59,0x8F,0x5E,0x8C,0x00,0x05,0x00,
    0x0B,0x3E,0xE9,0x8B,0xE7,0x04,0x00}}, /* 0x3c */
 {{0x7B,0x63,0x9F,0x6A,0x93,0x00,0x05,0x00,
    0x6F,0xF0,0x58,0x8A,0x57,0x70,0xA0}}, /* 0x3d */
 {{0x86,0x6A,0x8a,0x74,0x06,0x00,0x02,0x00,
    0x8c,0x15,0x4f,0x83,0xef,0x8d,0x30}}, /* 0x3e */
 {{0x81,0x6A,0x85,0x70,0x00,0x00,0x02,0x00,
    0x0f,0x3e,0xeb,0x8e,0xdf,0x10,0x00}}, /* 0x3f */
 {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00,
    0x20,0xF5,0x03,0x88,0xFF,0x21,0x90}}, /* 0x40 */
 {{0xE6,0xAE,0x8A,0xBD,0x90,0x00,0x03,0x00,
    0x3D,0x10,0x1A,0x8D,0x19,0x3E,0x2F}}, /* 0x41 */
 {{0xB9,0x8F,0x9D,0x9B,0x8A,0x00,0x06,0x00,
    0x7D,0xFF,0x60,0x83,0x5F,0x7E,0x90}}, /* 0x42 */
 {{0xC3,0x8F,0x87,0x9B,0x0B,0x00,0x07,0x00,
    0x82,0xFF,0x60,0x83,0x5F,0x83,0x90}},  /* 0x43 */
 {{0xAD,0x7F,0x91,0x8E,0x9C,0x00,0x02,0x82,
    0x49,0xF5,0x00,0x83,0xFF,0x4A,0x90}},  /* 0x44 */
 {{0xCD,0x9F,0x91,0xA7,0x19,0x00,0x07,0x60,
    0xE6,0xFF,0xC0,0x83,0xBF,0xE7,0x90}},  /* 0x45 */
 {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x60,
    0xF1,0xFF,0xC0,0x83,0xBF,0xF2,0x90}},  /* 0x46 */
 {{0xD7,0x9F,0x9B,0xAC,0x1E,0x00,0x07,0x00,
    0x03,0xDE,0xC0,0x84,0xBF,0x04,0x90}}  /* 0x47 */
};

static const XGI330_CHTVRegDataStruct XGI_CHTVRegUNTSC[] = {
                /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */
                {{      0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 00 (640x200,640x400) */
                {{      0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 01 (640x350) */
                {{      0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 02 (720x400) */
                {{      0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 03 (720x350) */
                {{      0x6A,0x77,0xBB,0x6E,0x84,0x2E,0x02,0x5A,0x04,0x00,0x80,0x20,0x7E,0x80,0x97,0x00  }},/* 04 (640x480) ;;5/6/02 */
                {{      0xCF,0x77,0xB7,0xC8,0x84,0x3B,0x02,0x5A,0x04,0x00,0x80,0x19,0x88,0xAE,0xA3,0x00  }},/* 05 (800x600) ;;1/12/02 */
                {{      0xEE,0x77,0xBB,0x66,0x87,0x32,0x01,0x5A,0x04,0x00,0x80,0x1B,0xD4,0x2F,0x6F,0x00  }}/* 06 (1024x768) ;;5/6/02 */
          };

static const XGI330_CHTVRegDataStruct XGI_CHTVRegONTSC[]= {
                /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */
                {{      0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 00 (640x200,640x400) */
                {{      0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 01 (640x350) */
                {{      0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 02 (720x400) */
                {{      0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* 03 (720x350) */
                {{      0x69,0x77,0xBB,0x6E,0x84,0x1E,0x00,0x5A,0x04,0x00,0x80,0x25,0x1A,0x80,0x26,0x00  }},/* 04 (640x480) ;;5/6/02 */
                {{      0xCE,0x77,0xB7,0xB6,0x83,0x2C,0x02,0x5A,0x04,0x00,0x80,0x1C,0x00,0x82,0x97,0x00  }},/* 05 (800x600) ;;5/6/02 */
                {{      0xED,0x77,0xBB,0x66,0x8C,0x21,0x02,0x5A,0x04,0x00,0x80,0x1F,0xA0,0x7E,0x73,0x00  }}/* 06 (1024x768) ;;5/6/02 */
          };

static const XGI330_CHTVRegDataStruct XGI_CHTVRegUPAL[]=  {
                /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */
                {{      0x41,0x7F,0xB7,0x34,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* ; 00 (640x200,640x400) */
                {{      0x41,0x7F,0xB7,0x80,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* ; 01 (640x350) */
                {{      0x41,0x7F,0xB7,0x34,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* ; 02 (720x400) */
                {{      0x41,0x7F,0xB7,0x12,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01  }},/* ; 03 (720x350) */
                {{      0x61,0x7F,0xB7,0x99,0x84,0x35,0x04,0x5A,0x05,0x00,0x80,0x26,0x2A,0x55,0x5D,0x00  }},/* ; 04 (640x480) */
                {{      0xC3,0x7F,0xB7,0x7A,0x84,0x40,0x02,0x5A,0x05,0x00,0x80,0x1F,0x84,0x3D,0x28,0x00  }},/* ; 05 (800x600) ;;1/12/02 */
                {{      0xE5,0x7F,0xB7,0x1D,0xA7,0x3E,0x04,0x5A,0x05,0x00,0x80,0x20,0x3E,0xE4,0x22,0x00  }}/* ; 06 (1024x768) ;;1/12/02 */
	  };

static const XGI330_CHTVRegDataStruct XGI_CHTVRegOPAL[]={
                /* Index:000,0x01,0x02,0x04,0x03,0x05,0x06,0x07,0x08,0x15,0x1F,0x0C,0x0D,0x0E,0x0F,0x10h */
                {{      0x41,0x7F,0xB7,0x36,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 00 (640x200,640x400) */
                {{      0x41,0x7F,0xB7,0x86,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 01 (640x350) */
                {{      0x41,0x7F,0xB7,0x36,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 02 (720x400) */
                {{      0x41,0x7F,0xB7,0x86,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 03 (720x350) */
                {{      0x61,0x7F,0xB7,0x99,0x84,0x35,0x04,0x5A,0x05,0x00,0x80,0x26,0x2A,0x55,0x5D,0x00 }},/* 04 (640x480) */
                {{      0xC1,0x7F,0xB7,0x4D,0x8C,0x1E,0x31,0x5A,0x05,0x00,0x80,0x26,0x78,0x19,0x34,0x00 }},/* 05 (800x600) ;;1/12/02 */
                {{      0xE4,0x7F,0xB7,0x1E,0xAF,0x29,0x37,0x5A,0x05,0x00,0x80,0x25,0x8C,0xB2,0x2A,0x00 }}/* 06 (1024x768) ;;1/12/02 */
	     };

static const UCHAR XGI_CH7017LV1024x768[]={0x60,0x02,0x00,0x07,0x40,0xED,0xA3,
                   			0xC8,0xC7,0xAC,0xE0,0x02};
static const UCHAR XGI_CH7017LV1400x1050[]={0x60,0x03,0x11,0x00,0x40,0xE3,0xAD,
                   			0xDB,0xF6,0xAC,0xE0,0x02};


/*add for new UNIVGABIOS*/
static const XGI330_LCDDataStruct  XGI_StLCD1024x768Data[]=
{
 {   62,  25, 800, 546,1344, 806},
 {   32,  15, 930, 546,1344, 806},
 {   62,  25, 800, 546,1344, 806}, /* chiawen for dot9 -> dot8 */
 {  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 XGI330_LCDDataStruct  XGI_ExtLCD1024x768Data[]=
{
 {   42,  25,1536, 419,1344, 806}, /* { 12, 5, 896, 512,1344, 806}, // alan 09/12/2003 */
 {   48,  25,1536, 369,1344, 806}, /* { 12, 5, 896, 510,1344, 806}, // alan 09/12/2003 */
 {   42,  25,1536, 419,1344, 806}, /* { 32, 15,1008, 505,1344, 806}, // alan 09/12/2003 */
 {   48,  25,1536, 369,1344, 806}, /* { 32, 15,1008, 514,1344, 806}, // alan 09/12/2003 */
 {   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}
};

/*XGI330_LCDDataStruct  XGI_St2LCD1024x768Data[]=
{
 {   62,  25, 800, 546,1344, 806},
 {   32,  15, 930, 546,1344, 806},
 {   62,  25, 800, 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 XGI330_LCDDataStruct  XGI_CetLCD1024x768Data[]=
{
	{         1,1,1344,806,1344,806           }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {         1,1,1344,806,1344,806           }, /* 01 (320x350,640x350) */
        {         1,1,1344,806,1344,806           }, /* 02 (360x400,720x400) */
        {         1,1,1344,806,1344,806           }, /* 03 (720x350) */
        {         1,1,1344,806,1344,806           }, /* 04 (640x480x60Hz) */
        {         1,1,1344,806,1344,806           }, /* 05 (800x600x60Hz) */
        {         1,1,1344,806,1344,806           }  /* 06 (1024x768x60Hz) */
};

static const XGI330_LCDDataStruct  XGI_StLCD1280x1024Data[]=
{
 {   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 XGI330_LCDDataStruct  XGI_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 XGI330_LCDDataStruct  XGI_CetLCD1280x1024Data[]=
{
	{         1,1,1688,1066,1688,1066         }, /* 00 (320x200,320x400,640x200,640x400) */
        {         1,1,1688,1066,1688,1066         }, /* 01 (320x350,640x350) */
        {         1,1,1688,1066,1688,1066         }, /* 02 (360x400,720x400) */
        {         1,1,1688,1066,1688,1066         }, /* 03 (720x350) */
        {         1,1,1688,1066,1688,1066         }, /* 04 (640x480x60Hz) */
        {         1,1,1688,1066,1688,1066         }, /* 05 (800x600x60Hz) */
        {         1,1,1688,1066,1688,1066         }, /* 06 (1024x768x60Hz) */
        {         1,1,1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz) */
        {         1,1,1688,1066,1688,1066         } /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataStruct  XGI_StLCD1400x1050Data[]=
{
	{         211,100,2100,408,1688,1066      }, /* 00 (320x200,320x400,640x200,640x400) */
        {         211,64,1536,358,1688,1066       }, /* 01 (320x350,640x350) */
        {         211,100,2100,408,1688,1066      }, /* 02 (360x400,720x400) */
        {         211,64,1536,358,1688,1066       }, /* 03 (720x350) */
        {         211,48,840,488,1688,1066        }, /* 04 (640x480x60Hz) */
        {         211,72,1008,609,1688,1066       }, /* 05 (800x600x60Hz) */
        {         211,128,1400,776,1688,1066      }, /* 06 (1024x768x60Hz) */
        {         1,1,1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz w/o Scaling) */
        {         1,1,1688,1066,1688,1066         }  /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataStruct  XGI_ExtLCD1400x1050Data[]=
{
	{         211,100,2100,408,1688,1066      }, /* 00 (320x200,320x400,640x200,640x400) */
        {         211,64,1536,358,1688,1066       }, /* 01 (320x350,640x350) */
        {         211,100,2100,408,1688,1066      }, /* 02 (360x400,720x400) */
        {         211,64,1536,358,1688,1066       }, /* 03 (720x350) */
        {         211,48,840,488,1688,1066        }, /* 04 (640x480x60Hz) */
        {         211,72,1008,609,1688,1066       }, /* 05 (800x600x60Hz) */
        {         211,128,1400,776,1688,1066      }, /* 06 (1024x768x60Hz) */
        {         1,1,1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz w/o Scaling) */
        {         1,1,1688,1066,1688,1066         }  /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataStruct  XGI_ExtLCD1600x1200Data[]=
{
        {         4,1,1620,420,2160,1250          }, /* { 3,1,2160,425,2160,1250 }, // 00 (320x200,320x400,640x200,640x400) // alan 10/14/2003 */
        {         27,7,1920,375,2160,1250         }, /* 01 (320x350,640x350) */
        {         4,1,1620,420,2160,1250          }, /* { 3,1,2160,425,2160,1250 }, // 02 (360x400,720x400) // alan 10/14/2003 */
        {         27,7,1920,375,2160,1250         }, /* 03 (720x350) */
        {         27,4,800,500,2160,1250          }, /* 04 (640x480x60Hz) */
        {         4,1,1080,625,2160,1250          }, /* 05 (800x600x60Hz) */
        {         5,2,1350,800,2160,1250          }, /* 06 (1024x768x60Hz) */
        {         27,16,1500,1064,2160,1250       }, /* 07 (1280x1024x60Hz) */
        {         9,7,1920,1106,2160,1250         }, /* 08 (1400x1050x60Hz) */
        {         1,1,2160,1250,2160,1250         }, /* 09 (1600x1200x60Hz) ;302lv */
        {	  3,2,1800,1000,2160,1250         }  /* 0A (1280x960) */
};

static const XGI330_LCDDataStruct  XGI_StLCD1600x1200Data[]=
{
        {         27,4,800,500,2160,1250          },/* 00 (320x200,320x400,640x200,640x400) */
        {         27,4,800,500,2160,1250          },/* 01 (320x350,640x350) */
        {         27,4,800,500,2160,1250          },/* 02 (360x400,720x400) */
        {         27,4,800,500,2160,1250          },/* 03 (720x350) */
        {         27,4,800,500,2160,1250          },/* 04 (320x240,640x480) */
        {         4,1,1080,625,2160,1250          },/* 05 (400x300,800x600) */
        {         5,2,1350,800,2160,1250          },/* 06 (512x384,1024x768) */
        {         135,88,1600,1100,2160,1250      },/* 07 (1280x1024) */
        {         1,1,1800,1500,2160,1250         },/* 08 (1400x1050) */
        {         1,1,2160,1250,2160,1250         },/* 09 (1600x1200) */
        {	  3,2,1800,1000,2160,1250	  } /* 0A (1280x960) */ 		
};

static const XGI330_LCDDataStruct  XGI_CetLCD1400x1050Data[]=
{
	{         1,1,1688,1066,1688,1066         }, /* 00 (320x200,320x400,640x200,640x400) */
        {         1,1,1688,1066,1688,1066         }, /* 01 (320x350,640x350) */
        {         1,1,1688,1066,1688,1066         }, /* 02 (360x400,720x400) */
        {         1,1,1688,1066,1688,1066         }, /* 03 (720x350) */
        {         1,1,1688,1066,1688,1066         }, /* 04 (640x480x60Hz) */
        {         1,1,1688,1066,1688,1066         }, /* 05 (800x600x60Hz) */
        {         1,1,1688,1066,1688,1066         }, /* 06 (1024x768x60Hz) */
        {         1,1,1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz) */
        {         1,1,1688,1066,1688,1066         }  /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataStruct  XGI_NoScalingData[]=
{
 {    1,   1, 800, 449, 800, 449},   	/* 00 (320x200,320x400,640x200,640x400) */  						 
 {    1,   1, 800, 449, 800, 449},      /* 01 (320x350,640x350) */                                                                  
 {    1,   1, 900, 449, 900, 449},      /* 02 (360x400,720x400) */                                                                  
 {    1,   1, 900, 449, 900, 449},      /* 03 (720x350) */                                                                          
 {    1,   1, 800, 525, 800, 525},      /* 04 (320x240,640x480) */                                                                   
 {    1,   1,1056, 628,1056, 628},      /* 05 (400x300,800x600) */                                                                   
 {    1,   1,1344, 806,1344, 806},      /* 06 (512x384,1024x768) */                                                                  
 {    1,   1,1688,1066,1688,1066},      /* 07 (1280x1024) */    
 {    1,   1,1688,1066,1688,1066},      /* 08 (1400x1050) */     
 {    1,   1,2160,1250,2160,1250},      /* 09 (1600x1200) */ 
 {    1,   1,1688, 806,1688, 806},      /* 0A (1280x768) */  
 {    1,   1,1800,1000,1800,1000}       /* 0B (1280x960) */                                               
};                                                                                                           
                                                                                                             
static const XGI330_LCDDataStruct  XGI_NoScalingData_1[]=                                                                 
{
 {    1,   1, 800, 449, 800, 449},	/* 00 (320x200,320x400,640x200,640x400) */   
 {    1,   1, 800, 449, 800, 449},      /* 01 (320x350,640x350) */                  
 {    1,   1, 900, 449, 900, 449},      /* 02 (360x400,720x400) */                  
 {    1,   1, 900, 449, 900, 449},      /* 03 (720x350) */                          
 {    1,   1, 800, 525, 800, 525},      /* 04 (320x240,640x480) */                  
 {    1,   1,1056, 628,1056, 628},      /* 05 (400x300,800x600) */                  
 {    1,   1,1344, 806,1344, 806},      /* 06 (512x384,1024x768) */                 
 {    1,   1,1688,1066,1688,1066},      /* 07 (1280x1024) */   
 {    1,   1,1688,1066,1688,1066},      /* 08 (1400x1050) */  
 {    1,   1,1760,1235,1760,1235},      /* 09 (1600x1200) */  
 {    1,   1,1688, 806,1688, 806},      /* 0A (1280x768) */  
 {    1,   1,1800,1000,1800,1000}       /* 0B (1280x960) */
};                                                              
                                                               
static const XGI330_LCDDataStruct  XGI_ExtLCD1024x768x75Data[]=
{
        {42,25,1536,419,1344,806 }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {48,25,1536,369,1344,806 }, /* ; 01 (320x350,640x350) */
        {42,25,1536,419,1344,806 }, /* ; 02 (360x400,720x400) */
        {48,25,1536,369,1344,806 }, /* ; 03 (720x350) */
        {8,5,1312,500,1312,800   }, /* ; 04 (640x480x75Hz) */
        {41,25,1024,625,1312,800 }, /* ; 05 (800x600x75Hz) */
        {1,1,1312,800,1312,800   }  /* ; 06 (1024x768x75Hz) */
};

static const XGI330_LCDDataStruct  XGI_CetLCD1024x768x75Data[]=
{
        {1,1,1312,800,1312,800}, /* ; 00 (320x200,320x400,640x200,640x400) */
        {1,1,1312,800,1312,800}, /* ; 01 (320x350,640x350) */
        {1,1,1312,800,1312,800}, /* ; 02 (360x400,720x400) */
        {1,1,1312,800,1312,800}, /* ; 03 (720x350) */
        {1,1,1312,800,1312,800}, /* ; 04 (640x480x75Hz) */
        {1,1,1312,800,1312,800}, /* ; 05 (800x600x75Hz) */
        {1,1,1312,800,1312,800} /* ; 06 (1024x768x75Hz) */
};

static const XGI330_LCDDataStruct  XGI_ExtLCD1280x1024x75Data[]=
{
        {211,60,1024,501,1688,1066   }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {211,60,1024,508,1688,1066   }, /* ; 01 (320x350,640x350) */
        {211,60,1024,501,1688,1066   }, /* ; 02 (360x400,720x400) */
        {211,60,1024,508,1688,1066   }, /* ; 03 (720x350) */
        {211,45,768,498,1688,1066    }, /* ; 04 (640x480x75Hz) */
        {211,75,1024,625,1688,1066   }, /* ; 05 (800x600x75Hz) */
        {211,120,1280,798,1688,1066  }, /* ; 06 (1024x768x75Hz) */
        {1,1,1688,1066,1688,1066     }  /* ; 07 (1280x1024x75Hz) */
};

static const XGI330_LCDDataStruct  XGI_StLCD1280x1024x75Data[]=
{
        {211,60,1024,501,1688,1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {211,60,1024,508,1688,1066 }, /* ; 01 (320x350,640x350) */
        {211,60,1024,501,1688,1066 }, /* ; 02 (360x400,720x400) */
        {211,60,1024,508,1688,1066 }, /* ; 03 (720x350) */
        {211,45,768,498,1688,1066  }, /* ; 04 (640x480x75Hz) */
        {211,75,1024,625,1688,1066 }, /* ; 05 (800x600x75Hz) */
        {211,120,1280,798,1688,1066}, /* ; 06 (1024x768x75Hz) */
        {1,1,1688,1066,1688,1066   }  /* ; 07 (1280x1024x75Hz) */
};

static const XGI330_LCDDataStruct  XGI_CetLCD1280x1024x75Data[]=
{
        {1,1,1688,1066,1688,1066}, /* ; 00 (320x200,320x400,640x200,640x400) */
        {1,1,1688,1066,1688,1066}, /* ; 01 (320x350,640x350) */
        {1,1,1688,1066,1688,1066}, /* ; 02 (360x400,720x400) */
        {1,1,1688,1066,1688,1066}, /* ; 03 (720x350) */
        {1,1,1688,1066,1688,1066}, /* ; 04 (640x480x75Hz) */
        {1,1,1688,1066,1688,1066}, /* ; 05 (800x600x75Hz) */
        {1,1,1688,1066,1688,1066}, /* ; 06 (1024x768x75Hz) */
        {1,1,1688,1066,1688,1066}  /* ; 07 (1280x1024x75Hz) */
};

static const XGI330_LCDDataStruct  XGI_NoScalingDatax75[]=
{
        {1,1,800,449,800,449    }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {1,1,800,449,800,449    }, /* ; 01 (320x350,640x350) */
        {1,1,900,449,900,449    }, /* ; 02 (360x400,720x400) */
        {1,1,900,449,900,449    }, /* ; 03 (720x350) */
        {1,1,840,500,840,500    }, /* ; 04 (640x480x75Hz) */
        {1,1,1056,625,1056,625  }, /* ; 05 (800x600x75Hz) */
        {1,1,1312,800,1312,800  }, /* ; 06 (1024x768x75Hz) */
        {1,1,1688,1066,1688,1066}, /* ; 07 (1280x1024x75Hz) */
        {1,1,1688,1066,1688,1066}, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */
        {1,1,2160,1250,2160,1250}, /* ; 09 (1600x1200x75Hz) */
        {1,1,1688,806,1688,806  }  /* ; 0A (1280x768x75Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_ExtLCDDes1024x768Data[]=
{
   {  9,1057,0, 771  }, /* ; 00 (320x200,320x400,640x200,640x400) */
   {  9,1057,0, 771  }, /* ; 01 (320x350,640x350) */
   {  9,1057,0, 771  }, /* ; 02 (360x400,720x400) */
   {  9,1057,0, 771  }, /* ; 03 (720x350) */
   {  9,1057,0, 771  }, /* ; 04 (640x480x60Hz) */
   {  9,1057,0, 771  }, /* ; 05 (800x600x60Hz) */
   {  9,1057,805, 770  }  /* ; 06 (1024x768x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDes1024x768Data[]=
{
        { 9,1057,737,703   }, /* ; 00 (320x200,320x400,640x200,640x400) */
        { 9,1057,686,651   }, /* ; 01 (320x350,640x350) */
        { 9,1057,737,703   }, /* ; 02 (360x400,720x400) */
        { 9,1057,686,651   }, /* ; 03 (720x350) */
        { 9,1057,776,741   }, /* ; 04 (640x480x60Hz) */
        { 9,1057, 0 ,771   }, /* ; 05 (800x600x60Hz) */
        { 9,1057,805,770   }  /* ; 06 (1024x768x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_CetLCDDes1024x768Data[]=
{
       	{      1152,856,622,587   }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {      1152,856,597,562   }, /* ; 01 (320x350,640x350) */
        {      1152,856,622,587   }, /* ; 02 (360x400,720x400) */
        {      1152,856,597,562   }, /* ; 03 (720x350) */
        {      1152,856,662,627   }, /* ; 04 (640x480x60Hz) */
        {      1232,936,722,687   }, /* ; 05 (800x600x60Hz) */
        {      0,1048,805,770   }  /* ; 06 (1024x768x60Hz) */
};

static const XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024Data[]=
{
        {      18,1346,981,940     },/* 00 (320x200,320x400,640x200,640x400) */
        {      18,1346,926,865     },/* 01 (320x350,640x350) */
        {      18,1346,981,940     },/* 02 (360x400,720x400) */
        {      18,1346,926,865     },/* 03 (720x350) */
        {      18,1346,0,1025     },/* 04 (640x480x60Hz) */
        {      18,1346,0,1025     },/* 05 (800x600x60Hz) */
        {      18,1346,1065,1024     },/* 06 (1024x768x60Hz) */
        {      18,1346,1065,1024     }/* 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024Data[]=
{
        {      18,1346,970,907     },/* 00 (320x200,320x400,640x200,640x400) */
        {      18,1346,917,854     },/* 01 (320x350,640x350) */
        {      18,1346,970,907     },/* 02 (360x400,720x400) */
        {      18,1346,917,854     },/* 03 (720x350) */
        {      18,1346,0,1025     },/* 04 (640x480x60Hz) */
        {      18,1346,0,1025     },/* 05 (800x600x60Hz) */
        {      18,1346,1065,1024     },/* 06 (1024x768x60Hz) */
        {      18,1346,1065,1024     }/* 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_CetLCDDLDes1280x1024Data[]=
{
        {      1368,1008,752,711    }, /* 00 (320x200,320x400,640x200,640x400) */
        {      1368,1008,729,688    }, /* 01 (320x350,640x350) */
        {      1368,1008,752,711    }, /* 02 (360x400,720x400) */
    	{      1368,1008,729,688    }, /* 03 (720x350) */
        {      1368,1008,794,753    }, /* 04 (640x480x60Hz) */
        {      1448,1068,854,813    }, /* 05 (800x600x60Hz) */
        {      1560,1200,938,897    }, /* 06 (1024x768x60Hz) */
        {      18,1346,1065,1024    }  /* 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_ExtLCDDes1280x1024Data[]=
{
        {      9,1337,981,940    }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {      9,1337,926,884    }, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
        {      9,1337,981,940    }, /* ; 02 (360x400,720x400) */
        {      9,1337,926,884    }, /* ; 03 (720x350) alan, 2003/09/30 */
        {      9,1337,0,1025    }, /* ; 04 (640x480x60Hz) */
        {      9,1337,0,1025    }, /* ; 05 (800x600x60Hz) */
        {      9,1337,1065,1024    }, /* ; 06 (1024x768x60Hz) */
        {      9,1337,1065,1024    }  /* ; 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDes1280x1024Data[]=
{
        {      9,1337,970,907    }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {      9,1337,917,854    }, /* ; 01 (320x350,640x350) */
        {      9,1337,970,907    }, /* ; 02 (360x400,720x400) */
        {      9,1337,917,854    }, /* ; 03 (720x350) */
        {      9,1337,0,1025    }, /* ; 04 (640x480x60Hz) */
        {      9,1337,0,1025    }, /* ; 05 (800x600x60Hz) */
        {      9,1337,1065,1024    }, /* ; 06 (1024x768x60Hz) */
        {      9,1337,1065,1024    }  /* ; 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_CetLCDDes1280x1024Data[]=
{
        {      1368,1008,752,711    }, /* 00 (320x200,320x400,640x200,640x400) */
        {      1368,1008,729,688    }, /* 01 (320x350,640x350) */
        {      1368,1008,752,711    }, /* 02 (360x400,720x400) */
    	{      1368,1008,729,688    }, /* 03 (720x350) */
        {      1368,1008,794,753    }, /* 04 (640x480x60Hz) */
        {      1448,1068,854,813    }, /* 05 (800x600x60Hz) */
        {      1560,1200,938,897    }, /* 06 (1024x768x60Hz) */
        {      9,1337,1065,1024    }  /* 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDLDes1400x1050Data[]=
{
        {      18,1464,0,1051    }, /* 00 (320x200,320x400,640x200,640x400) */
        {      18,1464,0,1051    }, /* 01 (320x350,640x350) */
        {      18,1464,0,1051    }, /* 02 (360x400,720x400) */
        {      18,1464,0,1051    }, /* 03 (720x350) */
        {      18,1464,0,1051    }, /* 04 (640x480x60Hz) */
        {      18,1464,0,1051    }, /* 05 (800x600x60Hz) */
        {      18,1464,0,1051    }, /* 06 (1024x768x60Hz) */
        {      1646,1406,1053,1038    }, /* 07 (1280x1024x60Hz) */
        {      18,1464,0,1051    }  /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_ExtLCDDLDes1400x1050Data[]=
{
        {      18,1464,0,1051    }, /* 00 (320x200,320x400,640x200,640x400) */
        {      18,1464,0,1051    }, /* 01 (320x350,640x350) */
        {      18,1464,0,1051    }, /* 02 (360x400,720x400) */
        {      18,1464,0,1051    }, /* 03 (720x350) */
        {      18,1464,0,1051    }, /* 04 (640x480x60Hz) */
        {      18,1464,0,1051    }, /* 05 (800x600x60Hz) */
        {      18,1464,0,1051    }, /* 06 (1024x768x60Hz) */
        {      1646,1406,1053,1038    }, /* 07 (1280x1024x60Hz) */
        {      18,1464,0,1051    }  /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDes1400x1050Data[]=
{
        {      9,1455,0,1051     },/* 00 (320x200,320x400,640x200,640x400) */
        {      9,1455,0,1051     },/* 01 (320x350,640x350) */
        {      9,1455,0,1051     },/* 02 (360x400,720x400) */
        {      9,1455,0,1051     },/* 03 (720x350) */
        {      9,1455,0,1051     },/* 04 (640x480x60Hz) */
        {      9,1455,0,1051     },/* 05 (800x600x60Hz) */
        {      9,1455,0,1051     },/* 06 (1024x768x60Hz) */
        {      1637,1397,1053,1038     },/* 07 (1280x1024x60Hz) */
        {      9,1455,0,1051     } /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_ExtLCDDes1400x1050Data[]=
{
        {      9,1455,0,1051     },/* 00 (320x200,320x400,640x200,640x400) */
        {      9,1455,0,1051     },/* 01 (320x350,640x350) */
        {      9,1455,0,1051     },/* 02 (360x400,720x400) */
        {      9,1455,0,1051     },/* 03 (720x350) */
        {      9,1455,0,1051     },/* 04 (640x480x60Hz) */
        {      9,1455,0,1051     },/* 05 (800x600x60Hz) */
        {      9,1455,0,1051     },/* 06 (1024x768x60Hz) */
        {      1637,1397,1053,1038     },/* 07 (1280x1024x60Hz) */
        {      9,1455,0,1051     } /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_CetLCDDes1400x1050Data[]=
{
        {      1308,1068,781,766    }, /* 00 (320x200,320x400,640x200,640x400) */
        {      1308,1068,781,766    }, /* 01 (320x350,640x350) */
        {      1308,1068,781,766    }, /* 02 (360x400,720x400) */
        {      1308,1068,781,766    }, /* 03 (720x350) */
        {      1308,1068,781,766    }, /* 04 (640x480x60Hz) */
        {      1388,1148,841,826    }, /* 05 (800x600x60Hz) */
        {      1490,1250,925,910    }, /* 06 (1024x768x60Hz) */
        {      1646,1406,1053,1038    }, /* 07 (1280x1024x60Hz) */
        {      18,1464,0,1051    } /* 08 (1400x1050x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_CetLCDDes1400x1050Data2[]=
{
        {      0,1448,0,1051    }, /* 00 (320x200,320x400,640x200,640x400) */
        {      0,1448,0,1051    }, /* 01 (320x350,640x350) */
        {      0,1448,0,1051    }, /* 02 (360x400,720x400) */
        {      0,1448,0,1051    }, /* 03 (720x350) */
        {      0,1448,0,1051    }  /* 04 (640x480x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_ExtLCDDLDes1600x1200Data[]=						
{                                                                                                       
	{       9,1673,0,1201    }, /* 00 (320x200,320x400,640x200,640x400) */             
        {       9,1673,0,1201    }, /* 01 (320x350,640x350) */                             
        {       9,1673,0,1201    }, /* 02 (360x400,720x400) */                             
        {       9,1673,0,1201    }, /* 03 (720x350) */                                     
        {       9,1673,0,1201    }, /* 04 (640x480x60Hz) */                                
        {       9,1673,0,1201    }, /* 05 (800x600x60Hz) */                                
        {      10,1673,0,1201    }, /* 06 (1024x768x60Hz) */                               
        {      10,1673,0,1201    }, /* 07 (1280x1024x60Hz) */                              
        {      10,1673,0,1201    }, /* 08 (1400x1050x60Hz) */                              
        {      10,1673,0,1201    }, /* 09 (1600x1200x60Hz) */                              
        {      10,1673,0,1201    }  /* 0A (1280x960x60Hz) */                                                               
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDLDes1600x1200Data[]=
{
        {      9,1673,1150,1101    }, /* 00 (320x200,320x400,640x200,640x400) */	
        {      9,1673,1083,1034    }, /* 01 (320x350,640x350) */                       
        {      9,1673,1150,1101    }, /* 02 (360x400,720x400) */                       
        {      9,1673,1083,1034    }, /* 03 (720x350) */                               
        {      9,1673,0,1201    }, /* 04 (640x480x60Hz) */                             
        {      9,1673,0,1201    }, /* 05 (800x600x60Hz) */                             
        {      9,1673,0,1201    }, /* 06 (1024x768x60Hz) */                            
        {      9,1673,1232,1183    }, /* 07 (1280x1024x60Hz) */                        
        {      9,1673,0,1201    }, /* 08 (1400x1050x60Hz) */                           
        {      9,1673,0,1201    }, /* 09 (1600x1200x60Hz) */                           
        {      9,1673,0,1201    }  /* 0A (1280x960x60Hz) */    
};                                                                                      

static const XGI330_LCDDataDesStruct  XGI_ExtLCDDes1600x1200Data[]=
{
        {      9,1673,0,1201     },/* 00 (320x200,320x400,640x200,640x400) */
        {      9,1673,0,1201     },/* 01 (320x350,640x350) */
        {      9,1673,0,1201     },/* 02 (360x400,720x400) */
        {      9,1673,0,1201     },/* 03 (720x350) */
        {      9,1673,0,1201     },/* 04 (640x480x60Hz) */
        {      9,1673,0,1201     },/* 05 (800x600x60Hz) */
        {      10,1673,0,1201     },/* 06 (1024x768x60Hz) */
        {      10,1673,0,1201     },/* 07 (1280x1024x60Hz) */
        {      10,1673,0,1201     },/* 08 (1400x1050x60Hz) */
        {      10,1673,1249,1201     }, /* 09 (1600x1200x60Hz) */
        {      10,1673,0,1201    }  /* 0A (1280x960x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDes1600x1200Data[]=
{
	{      9,1673,1150,1101     },/* 00 (320x200,320x400,640x200,640x400) */
        {      9,1673,1083,1034     },/* 01 (320x350,640x350) */
        {      9,1673,1150,1101     },/* 02 (360x400,720x400) */
        {      9,1673,1083,1034     },/* 03 (720x350) */
        {      9,1673,0,1201     },/* 04 (640x480x60Hz) */
        {      9,1673,0,1201     },/* 05 (800x600x60Hz) */
        {      9,1673,0,1201     },/* 06 (1024x768x60Hz) */
        {      9,1673,1232,1183     },/* 07 (1280x1024x60Hz) */
        {      9,1673,0,1201     },/* 08 (1400x1050x60Hz) */
        {      9,1673,0,1201     }, /* 09 (1600x1200x60Hz) */
        {      9,1673,0,1201    }  /* 0A (1280x960x60Hz) */ 
};

static const XGI330_LCDDataDesStruct2  XGI_NoScalingDesData[]=
{
        {     9,657,448,405,96,2  }, /* 00 (320x200,320x400,640x200,640x400) */				 
        {     9,657,448,355,96,2  }, /* 01 (320x350,640x350) */                                          
        {     9,747,448,413,108,2  }, /* 02 (360x400,720x400) */						
        {     9,747,448,413,108,2  }, /* 03 (720x350) */                                                 
        {     9,657,1,483,96,2  }, /* 04 (640x480x60Hz) */						 
        {     9,849,627,600,128,4  }, /* 05 (800x600x60Hz) */                                            
        {     9,1057,805,770,0136,6  }, /* 06 (1024x768x60Hz) */                                         
        {    10,1337,0,1025,112,3  }, /* 07 (1280x1024x60Hz) */                                          
        {    10,1457,0,1051,112,3  }, /* 08 (1400x1050x60Hz) }, //;[ycchen] 12/19/02 */                  
        {    10,1673,0,1201,192,3  }, /* 09 (1600x1200x60Hz) */                                          
        {    10,1337,0,771,112,6  },  /* 0A (1280x768x60Hz) */                                           
        {    10,1385,999,959,112,3}  /* 0B (1280x960x60Hz) */							                                     
};

static const XGI330_LCDDataDesStruct2  XGI_NoScalingDesData_1[]=
{
        {     9,657,448,405,96,2  }, /* 00 (320x200,320x400,640x200,640x400) */				
        {     9,657,448,355,96,2  }, /* 01 (320x350,640x350) */                                         
        {     9,657,448,405,96,2  }, /* 02 (360x400,720x400) */                                         
        {     9,657,448,355,96,2  }, /* 03 (720x350) */                                                 
        {     10,657,1,483,96,2  }, /* 04 (640x480x60Hz) */                                             
        {     10,849,627,600,128,4  }, /* 05 (800x600x60Hz) */                                          
        {     10,1057,805,770,0136,6  }, /* 06 (1024x768x60Hz) */                                       
        {     10,1337,1065,1025,112,3  }, /* 07 (1280x1024x60Hz) */                                  	   
        {     10,1457,0,1051,112,3  }, /* 08 (1400x1050x60Hz) }, //;[ycchen] 12/19/02 */             
        {     10,1658,1234,1202,32,4  }, /* 09 (1600x1200x60Hz) */                                     
        {     10,1337,0,771,112,6  },  /* 0A (1280x768x60Hz) */                                       
	{     10,1385,999,959,112,3  }  /* 0B (1280x960x60Hz) */ 
};                                                                                                      
                                                                                                     
static const XGI330_LCDDataDesStruct  XGI_ExtLCDDes1024x768x75Data[]=		/* ;;1024x768x75Hz */
{
        {9,1049,0,769},    /* ; 00 (320x200,320x400,640x200,640x400) */
        {9,1049,0,769},    /* ; 01 (320x350,640x350) */
        {9,1049,0,769},    /* ; 02 (360x400,720x400) */
        {9,1049,0,769},    /* ; 03 (720x350) */
        {9,1049,0,769},    /* ; 04 (640x480x75Hz) */
        {9,1049,0,769},    /* ; 05 (800x600x75Hz) */
        {9,1049,0,769}     /* ; 06 (1024x768x75Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDes1024x768x75Data[]=
{
        {9,1049,0,769},    /* ; 00 (320x200,320x400,640x200,640x400) */
        {9,1049,0,769},    /* ; 01 (320x350,640x350) */
        {9,1049,0,769},    /* ; 02 (360x400,720x400) */
        {9,1049,0,769},    /* ; 03 (720x350) */
        {9,1049,0,769},    /* ; 04 (640x480x75Hz) */
        {9,1049,0,769},    /* ; 05 (800x600x75Hz) */
        {9,1049,0,769}     /* ; 06 (1024x768x75Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_CetLCDDes1024x768x75Data[]=	/* ;;1024x768x75Hz */
{
        {1152,856,622,587},     /* ; 00 (320x200,320x400,640x200,640x400) */
        {1152,856,597,562},     /* ; 01 (320x350,640x350) */
        {1192,896,622,587},     /* ; 02 (360x400,720x400) */
        {1192,896,597,562},     /* ; 03 (720x350) */
        {1129,857,656,625},     /* ; 04 (640x480x75Hz) */
        {1209,937,716,685},     /* ; 05 (800x600x75Hz) */
        {9,1049,0,769} 	   	/* ; 06 (1024x768x75Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_ExtLCDDLDes1280x1024x75Data[]=         /* ;;1280x1024x75Hz */
{
        {18,1314,0,1025     },/* ; 00 (320x200,320x400,640x200,640x400) */
        {18,1314,0,1025     },/* ; 01 (320x350,640x350) */
        {18,1314,0,1025     },/* ; 02 (360x400,720x400) */
        {18,1314,0,1025     },/* ; 03 (720x350) */
        {18,1314,0,1025     },/* ; 04 (640x480x60Hz) */
        {18,1314,0,1025     },/* ; 05 (800x600x60Hz) */
        {18,1314,0,1025     },/* ; 06 (1024x768x60Hz) */
        {18,1314,0,1025     }/* ; 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDLDes1280x1024x75Data[]=
{
        {18,1314,0,1025     },/* ; 00 (320x200,320x400,640x200,640x400) */
        {18,1314,0,1025     },/* ; 01 (320x350,640x350) */
        {18,1314,0,1025     },/* ; 02 (360x400,720x400) */
        {18,1314,0,1025     },/* ; 03 (720x350) */
        {18,1314,0,1025     },/* ; 04 (640x480x60Hz) */
        {18,1314,0,1025     },/* ; 05 (800x600x60Hz) */
        {18,1314,0,1025     },/* ; 06 (1024x768x60Hz) */
        {18,1314,0,1025     }/* ; 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_CetLCDDLDes1280x1024x75Data[]=	/* 1280x1024x75Hz */
{
        {1368,1008,752,711},    /* ; 00 (320x200,320x400,640x200,640x400) */
        {1368,1008,729,688},    /* ; 01 (320x350,640x350) */
        {1408,1048,752,711},    /* ; 02 (360x400,720x400) */
        {1408,1048,729,688},    /* ; 03 (720x350) */
        {1377,985,794,753},    /* ; 04 (640x480x75Hz) */
        {1457,1065,854,813},    /* ; 05 (800x600x75Hz) */
        {1569,1177,938,897},    /* ; 06 (1024x768x75Hz) */
        {18,1314,0,1025}     	  /* ; 07 (1280x1024x75Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_ExtLCDDes1280x1024x75Data[]=         /* ;;1280x1024x75Hz */
{
	{9,1305,0,1025},/* ; 00 (320x200,320x400,640x200,640x400) */
        {9,1305,0,1025},/* ; 01 (320x350,640x350) */
        {9,1305,0,1025},/* ; 02 (360x400,720x400) */
        {9,1305,0,1025},/* ; 03 (720x350) */
        {9,1305,0,1025},/* ; 04 (640x480x60Hz) */
        {9,1305,0,1025},/* ; 05 (800x600x60Hz) */
        {9,1305,0,1025},/* ; 06 (1024x768x60Hz) */
        {9,1305,0,1025} /* ; 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_StLCDDes1280x1024x75Data[]=
{
	{9,1305,0,1025},/* ; 00 (320x200,320x400,640x200,640x400) */
        {9,1305,0,1025},/* ; 01 (320x350,640x350) */
        {9,1305,0,1025},/* ; 02 (360x400,720x400) */
        {9,1305,0,1025},/* ; 03 (720x350) */
        {9,1305,0,1025},/* ; 04 (640x480x60Hz) */
        {9,1305,0,1025},/* ; 05 (800x600x60Hz) */
        {9,1305,0,1025},/* ; 06 (1024x768x60Hz) */
        {9,1305,0,1025} /* ; 07 (1280x1024x60Hz) */
};

static const XGI330_LCDDataDesStruct  XGI_CetLCDDes1280x1024x75Data[]=	/* 1280x1024x75Hz */
{
        {1368,1008,752,711},    /* ; 00 (320x200,320x400,640x200,640x400) */
        {1368,1008,729,688},    /* ; 01 (320x350,640x350) */
        {1408,1048,752,711},    /* ; 02 (360x400,720x400) */
        {1408,1048,729,688},    /* ; 03 (720x350) */
        {1377,985,794,753},    /* ; 04 (640x480x75Hz) */
        {1457,1065,854,813},    /* ; 05 (800x600x75Hz) */
        {1569,1177,938,897},    /* ; 06 (1024x768x75Hz) */
        {9,1305,0,1025}     	  /* ; 07 (1280x1024x75Hz) */
};

static const XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[]= /* Scaling LCD 75Hz */
{
	{9,657,448,405,96,2},   /* ; 00 (320x200,320x400,640x200,640x400) */
        {9,657,448,355,96,2},   /* ; 01 (320x350,640x350) */
        {9,738,448,405,108,2},   /* ; 02 (360x400,720x400) */
        {9,738,448,355,108,2},   /* ; 03 (720x350) */
        {9,665,0,481,64,3},   /* ; 04 (640x480x75Hz) */
        {9,825,0,601,80,3},   /* ; 05 (800x600x75Hz) */
        {9,1049,0,769,96,3},   /* ; 06 (1024x768x75Hz) */
        {9,1305,0,1025,144,3},   /* ; 07 (1280x1024x75Hz) */
        {9,1457,0,1051,112,3},   /* ; 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
        {9,1673,0,1201,192,3},   /* ; 09 (1600x1200x75Hz) */
        {9,1337,0,771,112,6}    /* ; 0A (1280x768x60Hz) */
};

static const XGI330_TVDataStruct  XGI_StPALData[]=
{
 {    1,   1, 864, 525,1270, 400, 100,   0, 760},
 {    1,   1, 864, 525,1270, 350, 100,   0, 760},
 {    1,   1, 864, 525,1270, 400,   0,   0, 720},
 {    1,   1, 864, 525,1270, 350,   0,   0, 720},
 {    1,   1, 864, 525,1270, 480,  50,   0, 760},
 {    1,   1, 864, 525,1270, 600,  50,   0,   0}
};

static const XGI330_TVDataStruct  XGI_ExtPALData[]=
{
 {    2,   1,1080, 463,1270, 500,  50,   0,  50},
 {   15,   7,1152, 413,1270, 500,  50,   0,  50},
 {    2,   1,1080, 463,1270, 500,  50,   0,  50},
 {   15,   7,1152, 413,1270, 500,  50,   0,  50},
 {    2,   1, 900, 543,1270, 500,   0,   0,  50},
 {    4,   3,1080, 663,1270, 500, 438,   0, 438},
 {    1,   1,1125, 831,1270, 500, 686,   0, 686},     /*301b*/
 {    3,   2,1080, 619,1270, 540, 438,   0, 438}
};

static const XGI330_TVDataStruct  XGI_StNTSCData[]=
{
 {    1,   1, 858, 525,1270, 400,  50,   0, 760},
 {    1,   1, 858, 525,1270, 350,  50,   0, 640},
 {    1,   1, 858, 525,1270, 400,   0,   0, 720},
 {    1,   1, 858, 525,1270, 350,   0,   0, 720},
 {    1,   1, 858, 525,1270, 480,   0,   0, 760}
};

static const XGI330_TVDataStruct  XGI_ExtNTSCData[]=
{
 {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
 {   12,  5,  858, 403,1270, 420, 171,   0, 171},
 {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
 {   12,  5,  858, 403,1270, 420, 171,   0, 171},
 {  143,  80, 836, 523,1270, 420, 224,   0,   0},
 {  143, 120,1008, 643,1270, 420,   0,   1,   0},
 {   1,    1,1120, 821,1516, 420,   0,   1,   0}, /*301b*/
 {    2,   1, 858, 503,1584, 480,   0,   1,   0},
 {    3,   2,1001, 533,1270, 420,   0,   0,   0}
};

static const XGI330_TVDataStruct  XGI_St1HiTVData[]=
{
    	{        1,1,892,563,690,800,0,0,0               }, /* 00 (320x200,320x400,640x200,640x400) */
        {        1,1,892,563,690,700,0,0,0               }, /* 01 (320x350,640x350) */
        {        1,1,1000,563,785,800,0,0,0              }, /* 02 (360x400,720x400) */
        {        1,1,1000,563,785,700,0,0,0              }, /* 03 (720x350) */
        {        1,1,892,563,690,960,0,0,0               }, /* 04 (320x240,640x480) */
        {        8,5,1050,683,1648,960,0x150,1,0         }  /* 05 (400x300,800x600) */
};

static const XGI330_TVDataStruct  XGI_St2HiTVData[]=
{
        {        3,1,840,483,1648,960,0x032,0,0          }, /* 00 (320x200,320x400,640x200,640x400) */
        {        1,1,892,563,690,700,0,0,0               }, /* 01 (320x350,640x350) */
        {        3,1,840,483,1648,960,0x032,0,0          }, /* 02 (360x400,720x400) */
        {        1,1,1000,563,785,700,0,0,0              }, /* 03 (720x350) */
        {        5,2,840,563,1648,960,0x08D,1,0          }, /* 04 (320x240,640x480) */
        {        8,5,1050,683,1648,960,0x17C,1,0         }  /* 05 (400x300,800x600) */

};

static const XGI330_TVDataStruct  XGI_ExtHiTVData[]=
{
        {        6,1,840,563,1632,960,0,0,0              }, /* 00 (320x200,320x400,640x200,640x400) */
        {        3,1,960,563,1632,960,0,0,0              }, /* 01 (320x350,640x350) */
        {        3,1,840,483,1632,960,0,0,0              }, /* 02 (360x400,720x400) */
        {        3,1,960,563,1632,960,0,0,0              }, /* 03 (720x350) */
        {        5,1,840,563,1648,960,0x166,1,0          }, /* 04 (320x240,640x480) */
        {        16,5,1050,683,1648,960,0x143,1,0        }, /* 05 (400x300,800x600) */
        {        25,12,1260,851,1648,960,0x032,0,0       }, /* 06 (512x384,1024x768) */
        {        5,4,1575,1124,1648,960,0x128,0,0        }, /* 07 (1280x1024) */
        {        4,1,1050,563,1548,960,0x143,1,0         }, /* 08 (800x480) */
        {        5,2,1400,659,1648,960,0x032,0,0         }, /* 09 (1024x576) */
        {        8,5,1750,803,1648,960,0x128,0,0         }  /* 0A (1280x720) */

};

static const XGI330_TVDataStruct  XGI_ExtYPbPr525iData[]=
{
 {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
 {   12,  5,  858, 403,1270, 420, 171,   0, 171},
 {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
 {   12,  5,  858, 403,1270, 420, 171,   0, 171},
 {  143,  80, 836, 523,1250, 420, 224,   0,   0},
 {  143, 120,1008, 643,1250, 420,   0,   1,   0},
 {   1,    1,1120, 821,1516, 420,   0,   1,   0}, /*301b*/
 {    2,   1, 858, 503,1584, 480,   0,   1,   0},
 {    3,   2,1001, 533,1250, 420,   0,   0,   0}
};

static const XGI330_TVDataStruct  XGI_StYPbPr525iData[]=
{
 {    1,   1, 858, 525,1270, 400,  50,   0, 760},
 {    1,   1, 858, 525,1270, 350,  50,   0, 640},
 {    1,   1, 858, 525,1270, 400,   0,   0, 720},
 {    1,   1, 858, 525,1270, 350,   0,   0, 720},
 {    1,   1, 858, 525,1270, 480,   0,   0, 760},
};

static const XGI330_TVDataStruct  XGI_ExtYPbPr525pData[]=
{
 {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
 {   12,  5,  858, 403,1270, 420, 171,   0, 171},
 {    9,  5, 1001, 453,1270, 420, 171,   0, 171},
 {   12,  5,  858, 403,1270, 420, 171,   0, 171},
 {  143,  80, 836, 523,1270, 420, 224,   0,   0},
 {  143, 120,1008, 643,1270, 420,   0,   1,   0},
 {   1,    1,1120, 821,1516, 420,   0,   1,   0}, /*301b*/
 {    2,   1, 858, 503,1584, 480,   0,   1,   0},
 {    3,   2,1001, 533,1270, 420,   0,   0,   0}
 };

static const XGI330_TVDataStruct  XGI_StYPbPr525pData[]=
{
 {    1,   1,1716, 525,1270, 400,  50,   0, 760},
 {    1,   1,1716, 525,1270, 350,  50,   0, 640},
 {    1,   1,1716, 525,1270, 400,   0,   0, 720},
 {    1,   1,1716, 525,1270, 350,   0,   0, 720},
 {    1,   1,1716, 525,1270, 480,   0,   0, 760},
};

static const XGI330_TVDataStruct  XGI_ExtYPbPr750pData[]=
{
 {    3,   1, 935, 470,1130, 680,  50,   0,   0},       /* 00 (320x200,320x400,640x200,640x400) */
 {   24,   7, 935, 420,1130, 680,  50,   0,   0},       /* 01 (320x350,640x350) */
 {    3,   1, 935, 470,1130, 680,  50,   0,   0},       /* 02 (360x400,720x400) */
 {   24,   7, 935, 420,1130, 680,  50,   0,   0},       /* 03 (720x350) */
 {    2,   1,1100, 590,1130, 640,  50,   0,   0},       /* 04 (320x240,640x480) */
 {    3,   2,1210, 690,1130, 660,  50,   0,   0},       /* 05 (400x300,800x600) */
 {    1,   1,1375, 878,1130, 640, 638,   0,   0},       /* 06 (1024x768) */
 {    2,   1, 858, 503,1130, 480,   0,   1,   0},        /* 07 (720x480) */
 {    5,   4,1815, 570,1130, 660,  50,   0,   0},
 {    5,   3,1100, 686,1130, 640,  50,   1,   0},
 {   10,   9,1320, 830,1130, 640,  50,   0,   0}
};

static const XGI330_TVDataStruct  XGI_StYPbPr750pData[]=
{
 {    1,   1,1650, 750,1280, 400,  50,   0, 760},
 {    1,   1,1650, 750,1280, 350,  50,   0, 640},
 {    1,   1,1650, 750,1280, 400,   0,   0, 720},
 {    1,   1,1650, 750,1280, 350,   0,   0, 720},
 {    1,   1,1650, 750,1280, 480,   0,   0, 760},
};

static const UCHAR XGI330_NTSCTiming[] = {
  0x17,0x1d,0x03,0x09,0x05,0x06,0x0c,0x0c,
  0x94,0x49,0x01,0x0a,0x06,0x0d,0x04,0x0a,
  0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x1b,
  0x0c,0x50,0x00,0x97,0x00,0xda,0x4a,0x17,
  0x7d,0x05,0x4b,0x00,0x00,0xe2,0x00,0x02,
  0x03,0x0a,0x65,0x9d,0x08,0x92,0x8f,0x40,
  0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x50,
  0x00,0x40,0x44,0x00,0xdb,0x02,0x3b,0x00};

static const UCHAR XGI330_PALTiming[] = {
  0x21,0x5A,0x35,0x6e,0x04,0x38,0x3d,0x70,
  0x94,0x49,0x01,0x12,0x06,0x3e,0x35,0x6d,
  0x06,0x14,0x3e,0x35,0x6d,0x00,0x45,0x2b,
  0x70,0x50,0x00,0x9b,0x00,0xd9,0x5d,0x17,
  0x7d,0x05,0x45,0x00,0x00,0xe8,0x00,0x02,
  0x0d,0x00,0x68,0xb0,0x0b,0x92,0x8f,0x40,
  0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x63,
  0x00,0x40,0x3e,0x00,0xe1,0x02,0x28,0x00};

static const UCHAR XGI330_HiTVExtTiming[] =
{
      0x2D,0x60,0x2C,0x5F,0x08,0x31,0x3A,0x64,
      0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D,
      0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F,
      0x64,0x90,0x33,0x8C,0x18,0x36,0x3E,0x13,
      0x2A,0xDE,0x2A,0x44,0x40,0x2A,0x44,0x40,
      0x8E,0x8E,0x82,0x07,0x0B,
      0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
      0x60,0x14,0x3D,0x63,0x4F,
      0x27,0x00,0xfc,0xff,0x6a,0x00

};

static const UCHAR XGI330_HiTVSt1Timing[] =
{
      0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x65,
      0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D,
      0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F,
      0x65,0x90,0x7B,0xA8,0x03,0xF0,0x87,0x03,
      0x11,0x15,0x11,0xCF,0x10,0x11,0xCF,0x10,
      0x35,0x35,0x3B,0x69,0x1D,
      0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
      0x60,0x04,0x86,0xAF,0x5D,
      0x0E,0x00,0xfc,0xff,0x2d,0x00
};

static const UCHAR XGI330_HiTVSt2Timing[] =
{
      0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x64,
      0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D,
      0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F,
      0x64,0x90,0x33,0x8C,0x18,0x36,0x3E,0x13,
      0x2A,0xDE,0x2A,0x44,0x40,0x2A,0x44,0x40,
      0x8E,0x8E,0x82,0x07,0x0B,
      0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
      0x60,0x14,0x3D,0x63,0x4F,
      0x27,0x00,0xFC,0xff,0x6a,0x00
};

static const UCHAR XGI330_HiTVTextTiming[] =
{
      0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x65,
      0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D,
      0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F,
      0x65,0x90,0xE7,0xBC,0x03,0x0C,0x97,0x03,
      0x14,0x78,0x14,0x08,0x20,0x14,0x08,0x20,
      0xC8,0xC8,0x3B,0xD2,0x26,
      0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
      0x60,0x04,0x96,0x72,0x5C,
      0x11,0x00,0xFC,0xFF,0x32,0x00
};

static const UCHAR XGI330_YPbPr750pTiming[] =
{
      0x30,0x1d,0xe8,0x09,0x09,0xed,0x0c,0x0c,
      0x98,0x0a,0x01,0x0c,0x06,0x0d,0x04,0x0a,
      0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f,
      0xed,0x50,0x70,0x9f,0x16,0x59,0x60,0x13,
      0x27,0x0b,0x27,0xfc,0x30,0x27,0x1c,0xb0,
      0x4b,0x4b,0x6f,0x2f,0x63,
      0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
      0x60,0x14,0x73,0x00,0x40,
      0x11,0x00,0xfc,0xff,0x32,0x00
};

static const UCHAR XGI330_YPbPr525pTiming[] =
{
      0x3E,0x11,0x06,0x09,0x0b,0x0c,0x0c,0x0c,
      0x98,0x0a,0x01,0x0d,0x06,0x0d,0x04,0x0a,
      0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f,
      0x0c,0x50,0xb2,0x9f,0x16,0x59,0x4f,0x13,
      0xad,0x11,0xad,0x1d,0x40,0x8a,0x3d,0xb8,
      0x51,0x5e,0x60,0x49,0x7d,
      0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C,
      0x60,0x14,0x4B,0x43,0x41,
      0x11,0x00,0xFC,0xFF,0x32,0x00
};

static const UCHAR XGI330_YPbPr525iTiming[] =
{
      0x1B,0x21,0x03,0x09,0x05,0x06,0x0C,0x0C,
      0x94,0x49,0x01,0x0A,0x06,0x0D,0x04,0x0A,
      0x06,0x14,0x0D,0x04,0x0A,0x00,0x85,0x1B,
      0x0C,0x50,0x00,0x97,0x00,0xDA,0x4A,0x17,
      0x7D,0x05,0x4B,0x00,0x00,0xE2,0x00,0x02,
      0x03,0x0A,0x65,0x9D,0x08,
      0x92,0x8F,0x40,0x60,0x80,0x14,0x90,0x8C,
      0x60,0x14,0x4B,0x00,0x40,
      0x44,0x00,0xDB,0x02,0x3B,0x00

};

static const UCHAR XGI330_HiTVGroup3Data[] =
{
      0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0x5F,
      0x05,0x21,0xB2,0xB2,0x55,0x77,0x2A,0xA6,
      0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20,
      0x8C,0x6E,0x60,0x2E,0x58,0x48,0x72,0x44,
      0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80,
      0x4F,0x7F,0x03,0xA8,0x7D,0x20,0x1A,0xA9,
      0x14,0x05,0x03,0x7E,0x64,0x31,0x14,0x75,
      0x18,0x05,0x18,0x05,0x4C,0xA8,0x01
};

static const UCHAR XGI330_HiTVGroup3Simu[] =
{
      0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0x95,
      0xDB,0x20,0xB8,0xB8,0x55,0x47,0x2A,0xA6,
      0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20,
      0x8C,0x6E,0x60,0x15,0x26,0xD3,0xE4,0x11,
      0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80,
      0x67,0x36,0x01,0x47,0x0E,0x10,0xBE,0xB4,
      0x01,0x05,0x03,0x7E,0x65,0x31,0x14,0x75,
      0x18,0x05,0x18,0x05,0x4C,0xA8,0x01
};

static const UCHAR XGI330_HiTVGroup3Text[] =
{
      0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0xA7,
      0xF5,0x20,0xCE,0xCE,0x55,0x47,0x2A,0xA6,
      0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20,
      0x8C,0x6E,0x60,0x18,0x2C,0x0C,0x20,0x22,
      0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80,
      0x93,0x3C,0x01,0x50,0x2F,0x10,0xF4,0xCA,
      0x01,0x05,0x03,0x7E,0x65,0x31,0x14,0x75,
      0x18,0x05,0x18,0x05,0x4C,0xA8,0x01
};

static const UCHAR XGI330_Ren525pGroup3[] =
{
  0x00,0x14,0x15,0x25,0x55,0x15,0x0b,0x13,
  0xB1,0x41,0x62,0x62,0xFF,0xF4,0x45,0xa6,
  0x25,0x2F,0x67,0xF6,0xbf,0xFF,0x8E,0x20,
  0xAC,0xDA,0x60,0xFe,0x6A,0x9A,0x06,0x10,
  0xd1,0x04,0x18,0x0a,0xFF,0x80,0x00,0x80,
  0x3c,0x77,0x00,0xEF,0xE0,0x10,0xB0,0xE0,
  0x10,0x4F,0x0F,0x0F,0x05,0x0F,0x08,0x6E,
  0x1a,0x1F,0x25,0x2a,0x4C,0xAA,0x01
};

static const UCHAR XGI330_Ren750pGroup3[] =
{
  0x00,0x14,0x15,0x25,0x55,0x15,0x0b,0x7a,
  0x54,0x41,0xE7,0xE7,0xFF,0xF4,0x45,0xa6,
  0x25,0x2F,0x67,0xF6,0xbf,0xFF,0x8E,0x20,
  0xAC,0x6A,0x60,0x2b,0x52,0xCD,0x61,0x10,
  0x51,0x04,0x18,0x0a,0x1F,0x80,0x00,0x80,
  0xFF,0xA4,0x04,0x2B,0x94,0x21,0x72,0x94,
  0x26,0x05,0x01,0x0F,0xed,0x0F,0x0A,0x64,
  0x18,0x1D,0x23,0x28,0x4C,0xAA,0x01
};

static const XGI330_LVDSDataStruct  XGI_LVDS1024x768Data_1[]=
{
 { 960 , 438 , 1344 , 806 } ,	/* 00 (320x200,320x400,640x200,640x400) */
 { 960 , 388 , 1344 , 806 } ,	/* 01 (320x350,640x350) */
 { 1040, 438 , 1344 , 806 } ,	/* 02 (360x400,720x400) */
 { 1040, 388 , 1344 , 806 } ,	/* 03 (720x350) */
 { 960 , 518 , 1344 , 806 } ,	/* 04 (320x240,640x480) */
 {1120 , 638 , 1344 , 806 } ,	/* 05 (400x300,800x600) */
 {1344 , 806 , 1344 , 806 }	/* 06 (512x384,1024x768) */
};


static const XGI330_LVDSDataStruct  XGI_LVDS1024x768Data_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},
 {800, 449,1280, 801},
 {800, 525,1280, 813}
};

static const XGI330_LVDSDataStruct  XGI_LVDS1280x1024Data_1[]=
{
 {1048, 442,1688, 1066},
 {1048, 392,1688, 1066},
 {1048, 442,1688, 1066},
 {1048, 392,1688, 1066},
 {1048, 522,1688, 1066},
 {1208, 642,1688, 1066},
 {1432, 810,1688, 1066},
 {1688, 1066,1688, 1066}
};

static const XGI330_LVDSDataStruct  XGI_LVDS1280x1024Data_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},
 {800, 449,1280, 801},
 {800, 525,1280, 813}
};

static const XGI330_LVDSDataStruct  XGI_LVDS1400x1050Data_1[]=
{
 {928,416,1688,1066},
 {928,366,1688,1066},
 {928,416,1688,1066},
 {928,366,1688,1066},
 {928,496,1688,1066},
 {1088,616,1688,1066},
 {1312,784,1688,1066},
 {1568,1040,1688,1066},
 {1688,1066,1688,1066}
};

static const XGI330_LVDSDataStruct  XGI_LVDS1400x1050Data_2[]=
{
 {1688,1066,1688,1066},
 {1688,1066,1688,1066},
 {1688,1066,1688,1066},
 {1688,1066,1688,1066},
 {1688,1066,1688,1066},
 {1688,1066,1688,1066},
 {1688,1066,1688,1066},
 {1688,1066,1688,1066},
 {1688,1066,1688,1066}
};

static const XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1[]=
{      /* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
        {        1088,520,2048,1320      },/* 00 (320x200,320x400,640x200,640x400) */
        {        1088,470,2048,1320      },/* 01 (320x350,640x350) */
        {        1088,520,2048,1320      },/* 02 (360x400,720x400) */
        {        1088,470,2048,1320      },/* 03 (720x350) */
        {        1088,600,2048,1320      },/* 04 (320x240,640x480) */
        {        1248,720,2048,1320      },/* 05 (400x300,800x600) */
        {        1472,888,2048,1320      },/* 06 (512x384,1024x768) */
        {        1728,1144,2048,1320     },/* 07 (640x512,1280x1024) */
        {        1848,1170,2048,1320     },/* 08 (1400x1050) */
        {        2048,1320,2048,1320     } /* 09 (1600x1200) */
};

static const XGI330_LVDSDataStruct XGI_LVDSNoScalingData[]=
{
        {        800,449,800,449             }, /* 00 (320x200,320x400,640x200,640x400) */
        {        800,449,800,449             }, /* 01 (320x350,640x350) */
        {        800,449,800,449             }, /* 02 (360x400,720x400) */
        {        800,449,800,449             }, /* 03 (720x350) */
        {        800,525,800,525             }, /* 04 (640x480x60Hz) */
        {        1056,628,1056,628           }, /* 05 (800x600x60Hz) */
        {        1344,806,1344,806           }, /* 06 (1024x768x60Hz) */
        {        1688,1066,1688,1066         }, /* 07 (1280x1024x60Hz) */
        {        1688,1066,1688,1066         }, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
        {        2160,1250,2160,1250         }, /* 09 (1600x1200x60Hz) */
        {        1688,806,1688,806           }  /* 0A (1280x768x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1x75[]=
{
	{960,438,1312,800  }, /* 00 (320x200,320x400,640x200,640x400) */
        {960,388,1312,800  }, /* 01 (320x350,640x350) */
        {1040,438,1312,800 }, /* 02 (360x400,720x400) */
        {1040,388,1312,800 }, /* 03 (720x350) */
        {928,512,1312,800  }, /* 04 (320x240,640x480) */
        {1088,632,1312,800 }, /* 05 (400x300,800x600) */
        {1312,800,1312,800 }, /* 06 (512x384,1024x768) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2x75[]=
{
        {1312,800,1312,800}, /* ; 00 (320x200,320x400,640x200,640x400) */
        {1312,800,1312,800}, /* ; 01 (320x350,640x350) */
        {1312,800,1312,800}, /* ; 02 (360x400,720x400) */
        {1312,800,1312,800}, /* ; 03 (720x350) */
        {1312,800,1312,800}, /* ; 04 (320x240,640x480) */
        {1312,800,1312,800}, /* ; 05 (400x300,800x600) */
        {1312,800,1312,800}, /* ; 06 (512x384,1024x768) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1x75[]=
{
        {1048,442,1688,1066  }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {1048,392,1688,1066  }, /* ; 01 (320x350,640x350) */
        {1128,442,1688,1066  }, /* ; 02 (360x400,720x400) */
        {1128,392,1688,1066  }, /* ; 03 (720x350) */
        {1048,522,1688,1066  }, /* ; 04 (320x240,640x480) */
        {1208,642,1688,1066  }, /* ; 05 (400x300,800x600) */
        {1432,810,1688,1066  }, /* ; 06 (512x384,1024x768) */
        {1688,1066,1688,1066 }, /* ; 06; 07 (640x512,1280x1024) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2x75[]=
{
        {1688,1066,1688,1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {1688,1066,1688,1066 }, /* ; 01 (320x350,640x350) */
        {1688,1066,1688,1066 }, /* ; 02 (360x400,720x400) */
        {1688,1066,1688,1066 }, /* ; 03 (720x350) */
        {1688,1066,1688,1066 }, /* ; 04 (320x240,640x480) */
        {1688,1066,1688,1066 }, /* ; 05 (400x300,800x600) */
        {1688,1066,1688,1066 }, /* ; 06 (512x384,1024x768) */
        {1688,1066,1688,1066 }, /* ; 06; 07 (640x512,1280x1024) */
};

static const XGI330_LVDSDataStruct XGI_LVDSNoScalingDatax75[]=
{
        {800,449,800,449     }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {800,449,800,449     }, /* ; 01 (320x350,640x350) */
        {900,449,900,449     }, /* ; 02 (360x400,720x400) */
        {900,449,900,449     }, /* ; 03 (720x350) */
        {800,500,800,500     }, /* ; 04 (640x480x75Hz) */
        {1056,625,1056,625   }, /* ; 05 (800x600x75Hz) */
        {1312,800,1312,800   }, /* ; 06 (1024x768x75Hz) */
        {1688,1066,1688,1066 }, /* ; 07 (1280x1024x75Hz) */
        {1688,1066,1688,1066 }, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */
        {2160,1250,2160,1250 }, /* ; 09 (1600x1200x75Hz) */
        {1688,806,1688,806   }, /* ; 0A (1280x768x75Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1[]=
{
	{      0,1048,   0, 771     }, /* 00 (320x200,320x400,640x200,640x400) */
        {      0,1048,   0, 771     }, /* 01 (320x350,640x350) */
        {      0,1048,   0, 771     }, /* 02 (360x400,720x400) */
        {      0,1048,   0, 771     }, /* 03 (720x350) */
        {      0,1048,   0, 771     }, /* 04 (640x480x60Hz) */
        {      0,1048,   0, 771     }, /* 05 (800x600x60Hz) */
        {      0,1048, 805, 770     }  /* 06 (1024x768x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2[]=
{
    	{      1142, 856, 622, 587     }, /* 00 (320x200,320x400,640x200,640x400) */
        {      1142, 856, 597, 562     }, /* 01 (320x350,640x350) */
        {      1142, 856, 622, 587     }, /* 02 (360x400,720x400) */
        {      1142, 856, 597, 562     }, /* 03 (720x350) */
        {      1142,1048, 722, 687     }, /* 04 (640x480x60Hz) */
        {      1232, 936, 722, 687     }, /* 05 (800x600x60Hz) */
        {         0,1048, 805, 771     }  /* 06 (1024x768x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3[]=
{
    	{       320,  24, 622, 587     }, /* 00 (320x200,320x400,640x200,640x400) */
        {       320,  24, 597, 562     }, /* 01 (320x350,640x350) */
        {       320,  24, 622, 587     }, /* 02 (360x400,720x400) */
        {       320,  24, 597, 562     }, /* 03 (720x350) */
        {       320,  24, 722, 687     }  /* 04 (640x480x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1[]=
{
    	{      0,1328,    0, 1025     }, /* 00 (320x200,320x400,640x200,640x400) */
        {      0,1328,    0, 1025     }, /* 01 (320x350,640x350) */
        {      0,1328,    0, 1025     }, /* 02 (360x400,720x400) */
        {      0,1328,    0, 1025     }, /* 03 (720x350) */
        {      0,1328,    0, 1025     }, /* 04 (640x480x60Hz) */
        {      0,1328,    0, 1025     }, /* 05 (800x600x60Hz) */
        {      0,1328,    0, 1025     }, /* 06 (1024x768x60Hz) */
        {      0,1328, 1065, 1024     }  /* 07 (1280x1024x60Hz) */
};

 /* The Display setting for DE Mode Panel */
static const XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2[]=
{
    	{      1368,1008,752,711     }, /* 00 (320x200,320x400,640x200,640x400) */
        {      1368,1008,729,688     }, /* 01 (320x350,640x350) */
        {      1408,1048,752,711     }, /* 02 (360x400,720x400) */
        {      1408,1048,729,688     }, /* 03 (720x350) */
        {      1368,1008,794,753     }, /* 04 (640x480x60Hz) */
        {      1448,1068,854,813     }, /* 05 (800x600x60Hz) */
        {      1560,1200,938,897     }, /* 06 (1024x768x60Hz) */
        {      0000,1328,0,1025     }  /* 07 (1280x1024x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_1[]=
{
    	{      0,1448,0,1051     }, /* 00 (320x200,320x400,640x200,640x400) */
        {      0,1448,0,1051     }, /* 01 (320x350,640x350) */
        {      0,1448,0,1051     }, /* 02 (360x400,720x400) */
        {      0,1448,0,1051     }, /* 03 (720x350) */
        {      0,1448,0,1051     }, /* 04 (640x480x60Hz) */
        {      0,1448,0,1051     }, /* 05 (800x600x60Hz) */
        {      0,1448,0,1051     }, /* 06 (1024x768x60Hz) */
        {      0,1448,0,1051     }, /* 07 (1280x1024x60Hz) */
        {      0,1448,0,1051     }  /* 08 (1400x1050x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_2[]=
{
    	{      1308,1068, 781, 766     }, /* 00 (320x200,320x400,640x200,640x400) */
        {      1308,1068, 781, 766     }, /* 01 (320x350,640x350) */
        {      1308,1068, 781, 766     }, /* 02 (360x400,720x400) */
        {      1308,1068, 781, 766     }, /* 03 (720x350) */
        {      1308,1068, 781, 766     }, /* 04 (640x480x60Hz) */
        {      1388,1148, 841, 826     }, /* 05 (800x600x60Hz) */
        {      1490,1250, 925, 910     }, /* 06 (1024x768x60Hz) */
        {      1608,1368,1053,1038     }, /* 07 (1280x1024x60Hz) */
        {      0,1448,0,1051     }  /* 08 (1400x1050x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1600x1200Des_1[]=
{
    	{      0,1664,0,1201     }, /* 00 (320x200,320x400,640x200,640x400) */
        {      0,1664,0,1201     }, /* 01 (320x350,640x350) */
        {      0,1664,0,1201     }, /* 02 (360x400,720x400) */
        {      0,1664,0,1201     }, /* 03 (720x350) */
        {      0,1664,0,1201     }, /* 04 (640x480x60Hz) */
        {      0,1664,0,1201     }, /* 05 (800x600x60Hz) */
        {      0,1664,0,1201     }, /* 06 (1024x768x60Hz) */
        {      0,1664,0,1201     }, /* 07 (1280x1024x60Hz) */
        {      0,1664,0,1201     }, /* 08 (1400x1050x60Hz) */
        {      0,1664,0,1201     }  /* 09 (1600x1200x60Hz) */
};

static const XGI330_LCDDataDesStruct2  XGI_LVDSNoScalingDesData[]=
{
    	{     0, 648, 448, 405,  96,   2   }, /* 00 (320x200,320x400,640x200,640x400) */
        {     0, 648, 448, 355,  96,   2   }, /* 01 (320x350,640x350) */
        {     0, 648, 448, 405,  96,   2   }, /* 02 (360x400,720x400) */
        {     0, 648, 448, 355,  96,   2   }, /* 03 (720x350) */
        {     0, 648,  1, 483,  96,   2   }, /* 04 (640x480x60Hz) */
        {     0, 840, 627, 600, 128,   4   }, /* 05 (800x600x60Hz) */
        {     0,1048, 805, 770, 136,   6   }, /* 06 (1024x768x60Hz) */
        {     0,1328,0,1025, 112,   3   }, /* 07 (1280x1024x60Hz) */
        {     0,1438,0,1051, 112,   3   }, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
        {     0,1664,0,1201, 192,   3   }, /* 09 (1600x1200x60Hz) */
        {     0,1328,0,0771, 112,   6   }  /* 0A (1280x768x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75[]=			/* ; 1024x768 Full-screen */
{
        {0,1040,0,769}, /* ; 00 (320x200,320x400,640x200,640x400) */
        {0,1040,0,769}, /* ; 01 (320x350,640x350) */
        {0,1040,0,769}, /* ; 02 (360x400,720x400) */
        {0,1040,0,769}, /* ; 03 (720x350) */
        {0,1040,0,769}, /* ; 04 (640x480x75Hz) */
        {0,1040,0,769}, /* ; 05 (800x600x75Hz) */
        {0,1040,0,769} /* ; 06 (1024x768x75Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75[]= /* ; 1024x768 center-screen (Enh. Mode) */
{
        {1142, 856,622,587 }, /* 00 (320x200,320x400,640x200,640x400) */
        {1142, 856,597,562 }, /* 01 (320x350,640x350) */
        {1142, 856,622,587 }, /* 02 (360x400,720x400) */
        {1142, 856,597,562 }, /* 03 (720x350) */
        {1142,1048,722,687 }, /* 04 (640x480x60Hz) */
        {1232, 936,722,687 }, /* 05 (800x600x60Hz) */
        {   0,1048,805,771 }  /* 06 (1024x768x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75[]= /* ; 1024x768 center-screen (St.Mode) */
{
        {320,24,622,587  }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {320,24,597,562  }, /* ; 01 (320x350,640x350) */
        {320,24,622,587  }, /* ; 02 (360x400,720x400) */
        {320,24,597,562  }, /* ; 03 (720x350) */
        {320,24,722,687  } /* ; 04 (640x480x60Hz) */
};

static const XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1x75[]=
{
        {0,1296,0,1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
        {0,1296,0,1025}, /* ; 01 (320x350,640x350) */
        {0,1296,0,1025}, /* ; 02 (360x400,720x400) */
        {0,1296,0,1025}, /* ; 03 (720x350) */
        {0,1296,0,1025}, /* ; 04 (640x480x75Hz) */
        {0,1296,0,1025}, /* ; 05 (800x600x75Hz) */
        {0,1296,0,1025}, /* ; 06 (1024x768x75Hz) */
        {0,1296,0,1025} /* ; 07 (1280x1024x75Hz) */
};

/* The Display setting for DE Mode Panel */
static const XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75[]=   /* [ycchen] 02/18/03 Set DE as default */
{
        {1368,976,752,711 }, /* ; 00 (320x200,320x400,640x200,640x400) */
        {1368,976,729,688 }, /* ; 01 (320x350,640x350) */
        {1408,976,752,711 }, /* ; 02 (360x400,720x400) */
        {1408,976,729,688 }, /* ; 03 (720x350) */
        {1368,976,794,753 }, /* ; 04 (640x480x75Hz) */
        {1448,1036,854,813}, /* ; 05 (800x600x75Hz) */
        {1560,1168,938,897}, /* ; 06 (1024x768x75Hz) */
        {0,1296,0,1025    } /* ; 07 (1280x1024x75Hz) */
};

static const XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[]=  /* Scaling LCD 75Hz */
{
       { 0,648,448,405,96,2  }, /* ; 00 (320x200,320x400,640x200,640x400) */
       { 0,648,448,355,96,2  }, /* ; 01 (320x350,640x350) */
       { 0,729,448,405,108,2 }, /* ; 02 (360x400,720x400) */
       { 0,729,448,355,108,2 }, /* ; 03 (720x350) */
       { 0,656,0,481,64,3    }, /* ; 04 (640x480x75Hz) */
       { 0,816,0,601,80,3    }, /* ; 05 (800x600x75Hz) */
       { 0,1040,0,769,96,3   }, /* ; 06 (1024x768x75Hz) */
       { 0,1296,0,1025,144,3 }, /* ; 07 (1280x1024x75Hz) */
       { 0,1448,0,1051,112,3 }, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */
       { 0,1664,0,1201,192,3 }, /* ; 09 (1600x1200x75Hz) */
       { 0,1328,0,771,112,6  }  /* ; 0A (1280x768x75Hz) */
};

static const XGI330_CHTVDataStruct  XGI_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}
};

static const XGI330_CHTVDataStruct  XGI_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}
};

static const XGI330_CHTVDataStruct  XGI_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 XGI330_CHTVDataStruct  XGI_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 XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11024x768_1_H[]=
{
	        /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
                {{      0x4B,0x27,0x8F,0x32,0x1B,0x00,0x45,0x00 }}, /* 00 (320x) */
                {{      0x4B,0x27,0x8F,0x2B,0x03,0x00,0x44,0x00 }}, /* 01 (360x) */
                {{      0x55,0x31,0x99,0x46,0x1D,0x00,0x55,0x00 }}, /* 02 (400x) */
                {{      0x63,0x3F,0x87,0x4A,0x93,0x00,0x01,0x00 }}, /* 03 (512x) */
                {{      0x73,0x4F,0x97,0x55,0x86,0x00,0x05,0x00 }}, /* 04 (640x) */
                {{      0x73,0x4F,0x97,0x55,0x86,0x00,0x05,0x00 }}, /* 05 (720x) */
                {{      0x87,0x63,0x8B,0x69,0x1A,0x00,0x26,0x00 }}, /* 06 (800x) */
                {{      0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* 07 (1024x) */
};

static const XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11280x1024_1_H[]=
{
		/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
                {{      0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }}, /* 00 (320x) */
                {{      0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }}, /* 01 (360x) */
                {{      0x60,0x31,0x84,0x3A,0x88,0x00,0x01,0x00 }}, /* 02 (400x) */
                {{      0x6E,0x3F,0x92,0x48,0x96,0x00,0x01,0x00 }}, /* 03 (512x) */
                {{      0x7E,0x4F,0x82,0x58,0x06,0x00,0x06,0x00 }}, /* 04 (640x) */
                {{      0x7E,0x4F,0x82,0x58,0x06,0x00,0x06,0x00 }}, /* 05 (720x) */
                {{      0x92,0x63,0x96,0x6C,0x1A,0x00,0x06,0x00 }}, /* 06 (800x) */
                {{      0xAE,0x7F,0x92,0x88,0x96,0x00,0x02,0x00 }}, /* 07 (1024x) */
                {{      0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* 08 (1280x) */
};

static const XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11024x768_2_H[]=
{
		/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
                {{      0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }}, /* 00 (320x) */
                {{      0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }}, /* 01 (360x) */
                {{      0x63,0x31,0x87,0x3D,0x8E,0x00,0x01,0x00 }}, /* 02 (400x) */
                {{      0x63,0x3F,0x87,0x45,0x96,0x00,0x01,0x00 }}, /* 03 (512x) */
                {{      0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }}, /* 04 (640x) */
                {{      0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }}, /* 05 (720x) */
                {{      0xA3,0x63,0x87,0x78,0x89,0x00,0x02,0x00 }}, /* 06 (800x) */
                {{      0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* 07 (1024x) */
};

static const XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11280x1024_2_H[]=
{
                /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
                {{      0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }}, /* 00 (320x) */
                {{      0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }}, /* 01 (360x) */
                {{      0x7E,0x40,0x84,0x49,0x91,0x00,0x01,0x00 }}, /* 02 (400x) */
                {{      0x7E,0x47,0x93,0x50,0x9E,0x00,0x01,0x00 }}, /* 03 (512x) */
                {{      0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }}, /* 04 (640x) */
                {{      0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }}, /* 05 (720x) */
                {{      0xCE,0x81,0x94,0x8A,0x98,0x00,0x02,0x00 }}, /* 06 (800x) */
                {{      0xCE,0x8F,0x82,0x98,0x06,0x00,0x07,0x00 }}, /* 07 (1024x) */
                {{      0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* 08 (1280x) */
};

static const XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[]=
{               /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
                {{      0x47,0x27,0x8B,0x2C,0x1A,0x00,0x05,0x00 }}, /* 00 (320x) */
                {{      0x47,0x27,0x8B,0x30,0x1E,0x00,0x05,0x00 }}, /* 01 (360x) */
                {{      0x51,0x31,0x95,0x36,0x04,0x00,0x01,0x00 }}, /* 02 (400x) */
                {{      0x5F,0x3F,0x83,0x44,0x92,0x00,0x01,0x00 }}, /* 03 (512x) */
                {{      0x6F,0x4F,0x93,0x54,0x82,0x00,0x05,0x00 }}, /* 04 (640x) */
                {{      0x6F,0x4F,0x93,0x54,0x82,0x00,0x05,0x00 }}, /* 05 (720x) */
                {{      0x83,0x63,0x87,0x68,0x16,0x00,0x06,0x00 }}, /* 06 (800x) */
                {{      0x9F,0x7F,0x83,0x84,0x92,0x00,0x02,0x00 }}, /* 07 (1024x) */
                {{      0xBF,0x9F,0x83,0xA4,0x12,0x00,0x07,0x00 }}, /* 08 (1280x) */
                {{      0xCE,0xAE,0x92,0xB3,0x01,0x00,0x03,0x00 }} /* 09 (1400x) */
};

static const XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[]=
{               /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
                {{      0x76,0x3F,0x83,0x45,0x8C,0x00,0x41,0x00 }}, /* 00 (320x) */
                {{      0x76,0x3F,0x83,0x45,0x8C,0x00,0x41,0x00 }}, /* 01 (360x) */
                {{      0x76,0x31,0x9A,0x48,0x9F,0x00,0x41,0x00 }}, /* 02 (400x) */
                {{      0x76,0x3F,0x9A,0x4F,0x96,0x00,0x41,0x00 }}, /* 03 (512x) */
                {{      0xCE,0x7E,0x82,0x87,0x9E,0x00,0x02,0x00 }}, /* 04 (640x) */
                {{      0xCE,0x7E,0x82,0x87,0x9E,0x00,0x02,0x00 }}, /* 05 (720x) */
                {{      0xCE,0x63,0x92,0x96,0x04,0x00,0x07,0x00 }}, /* 06 (800x) */
                {{      0xCE,0x7F,0x92,0xA4,0x12,0x00,0x07,0x00 }}, /* 07 (1024x) */
                {{      0xCE,0x9F,0x92,0xB4,0x02,0x00,0x03,0x00 }}, /* 08 (1280x) */
                {{      0xCE,0xAE,0x92,0xBC,0x0A,0x00,0x03,0x00 }} /* 09 (1400x) */
};

static const XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[]=
/* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
{   /* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
                {{      0x5B,0x27,0x9F,0x32,0x0A,0x00,0x01,0x00 }},/* 00 (320x) */
                {{      0x5B,0x27,0x9F,0x32,0x0A,0x00,0x01,0x00 }},/* 01 (360x) */
                {{      0x65,0x31,0x89,0x3C,0x94,0x00,0x01,0x00 }},/* 02 (400x) */
                {{      0x73,0x3F,0x97,0x4A,0x82,0x00,0x05,0x00 }},/* 03 (512x) */
                {{      0x83,0x4F,0x87,0x51,0x09,0x00,0x06,0x00 }},/* 04 (640x) */
		{{      0x83,0x4F,0x87,0x51,0x09,0x00,0x06,0x00 }},/* 05 (720x) */
		{{      0x97,0x63,0x9B,0x65,0x1D,0x00,0x06,0xF0 }},/* 06 (800x) */
		{{      0xB3,0x7F,0x97,0x81,0x99,0x00,0x02,0x00 }},/* 07 (1024x) */
		{{      0xD3,0x9F,0x97,0xA1,0x19,0x00,0x07,0x00 }},/* 08 (1280x) */
		{{      0xE2,0xAE,0x86,0xB9,0x91,0x00,0x03,0x00 }},/* 09 (1400x) */
		{{      0xFB,0xC7,0x9F,0xC9,0x81,0x00,0x07,0x00 }} /* 0A (1600x) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[]=
{               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
                {{      0x97,0x1F,0x60,0x87,0x5D,0x83,0x10      }}, /* 00 (x350) */
                {{      0xB4,0x1F,0x92,0x89,0x8F,0xB5,0x30      }}, /* 01 (x400) */
                {{      0x04,0x3E,0xE2,0x89,0xDF,0x05,0x00      }}, /* 02 (x480) */
                {{      0x7C,0xF0,0x5A,0x8F,0x57,0x7D,0xA0      }}, /* 03 (x600) */
                {{      0x24,0xF5,0x02,0x88,0xFF,0x25,0x90      }} /* 04 (x768) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[]=
{               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
                {{      0x24,0xBB,0x31,0x87,0x5D,0x25,0x30      }}, /* 00 (x350) */
                {{      0x24,0xBB,0x4A,0x80,0x8F,0x25,0x30      }}, /* 01 (x400) */
                {{      0x24,0xBB,0x72,0x88,0xDF,0x25,0x30      }}, /* 02 (x480) */
                {{      0x24,0xF1,0xAE,0x84,0x57,0x25,0xB0      }}, /* 03 (x600) */
                {{      0x24,0xF5,0x02,0x88,0xFF,0x25,0x90      }} /* 04 (x768) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[]=
{               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
                {{       0x86,0x1F,0x5E,0x82,0x5D,0x87,0x00     }}, /* 00 (x350) */
                {{       0xB8,0x1F,0x90,0x84,0x8F,0xB9,0x30     }}, /* 01 (x400) */
                {{       0x08,0x3E,0xE0,0x84,0xDF,0x09,0x00     }}, /* 02 (x480) */
                {{       0x80,0xF0,0x58,0x8C,0x57,0x81,0xA0     }}, /* 03 (x600) */
                {{       0x28,0xF5,0x00,0x84,0xFF,0x29,0x90     }}, /* 04 (x768) */
                {{       0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9     }} /* 05 (x1024) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[]=
{               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
                {{      0x28,0xD2,0xAF,0x83,0xAE,0xD8,0xA1      }}, /* 00 (x350) */
                {{      0x28,0xD2,0xC8,0x8C,0xC7,0xF2,0x81      }}, /* 01 (x400) */
                {{      0x28,0xD2,0xF0,0x84,0xEF,0x1A,0xB1      }}, /* 02 (x480) */
                {{      0x28,0xDE,0x2C,0x8F,0x2B,0x56,0x91      }}, /* 03 (x600) */
                {{      0x28,0xDE,0x80,0x83,0x7F,0xAA,0x91      }}, /* 04 (x768) */
                {{      0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9      }} /* 05 (x1024) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[]=
{               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
                {{      0x6C,0x1F,0x60,0x84,0x5D,0x6D,0x10      }}, /* 00 (x350) */
                {{      0x9E,0x1F,0x93,0x86,0x8F,0x9F,0x30      }}, /* 01 (x400) */
                {{      0xEE,0x1F,0xE2,0x86,0xDF,0xEF,0x10      }}, /* 02 (x480) */
                {{      0x66,0xF0,0x5A,0x8e,0x57,0x67,0xA0      }}, /* 03 (x600) */
                {{      0x0E,0xF5,0x02,0x86,0xFF,0x0F,0x90      }}, /* 04 (x768) */
                {{      0x0E,0x5A,0x02,0x86,0xFF,0x0F,0x89      }}, /* 05 (x1024) */
                {{      0x28,0x10,0x1A,0x80,0x19,0x29,0x0F      }} /* 06 (x1050) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[]=
{              /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
                {{      0x28,0x92,0xB6,0x83,0xB5,0xCF,0x81      }}, /* 00 (x350) */
                {{      0x28,0x92,0xD5,0x82,0xD4,0xEE,0x81      }}, /* 01 (x400) */
                {{      0x28,0x92,0xFD,0x8A,0xFC,0x16,0xB1      }}, /* 02 (x480) */
                {{      0x28,0xD4,0x39,0x86,0x57,0x29,0x81      }}, /* 03 (x600) */
                {{      0x28,0xD4,0x8D,0x9A,0xFF,0x29,0xA1      }}, /* 04 (x768) */
                {{      0x28,0x5A,0x0D,0x9A,0xFF,0x29,0xA9      }}, /* 05 (x1024) */
                {{      0x28,0x10,0x1A,0x87,0x19,0x29,0x8F      }} /* 06 (x1050) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[]=
{
               /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
                {{      0xd4,0x1F,0x81,0x84,0x5D,0xd5,0x10      }}, /* 00 (x350) */
                {{      0x06,0x3e,0xb3,0x86,0x8F,0x07,0x20      }}, /* 01 (x400) */
                {{      0x56,0xba,0x03,0x86,0xDF,0x57,0x00      }}, /* 02 (x480) */
                {{      0xce,0xF0,0x7b,0x8e,0x57,0xcf,0xa0      }}, /* 03 (x600) */
                {{      0x76,0xF5,0x23,0x86,0xFF,0x77,0x90      }}, /* 04 (x768) */
                {{      0x76,0x5A,0x23,0x86,0xFF,0x77,0x89      }}, /* 05 (x1024) */
                {{      0x90,0x10,0x1A,0x8E,0x19,0x91,0x2F      }}, /* 06 (x1050) */
                {{      0x26,0x11,0xd3,0x86,0xaF,0x27,0x3f      }} /* 07 (x1200) */
};

static const XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[]=
{ 	/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
    {{      0x4B,0x27,0x8F,0x32,0x1B,0x00,0x45,0x00 }},/* ; 00 (320x) */
    {{      0x4B,0x27,0x8F,0x2B,0x03,0x00,0x44,0x00 }},/* ; 01 (360x) */
    {{      0x55,0x31,0x99,0x46,0x1D,0x00,0x55,0x00 }},/* ; 02 (400x) */
    {{      0x63,0x3F,0x87,0x4A,0x93,0x00,0x01,0x00 }},/* ; 03 (512x) */
    {{      0x6F,0x4F,0x93,0x54,0x80,0x00,0x05,0x00 }},/* ; 04 (640x) */
    {{      0x6F,0x4F,0x93,0x54,0x80,0x00,0x05,0x00 }},/* ; 05 (720x) */
    {{      0x83,0x63,0x87,0x68,0x14,0x00,0x26,0x00 }},/* ; 06 (800x) */
    {{      0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00 }} /* ; 07 (1024x) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[]=
{	/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
    {{      0x97,0x1F,0x60,0x87,0x5D,0x83,0x10      }},/* ; 00 (x350) */
    {{      0xB4,0x1F,0x92,0x89,0x8F,0xB5,0x30      }},/* ; 01 (x400) */
    {{      0xFE,0x1F,0xE0,0x84,0xDF,0xFF,0x10      }},/* ; 02 (x480) */
    {{      0x76,0xF0,0x58,0x8C,0x57,0x77,0xA0      }},/* ; 03 (x600) */
    {{      0x1E,0xF5,0x00,0x83,0xFF,0x1F,0x90      }} /* ; 04 (x768) */
};

static const XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[]=
{       /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
    {{      0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }},/* ; 00 (320x) */
    {{      0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }},/* ; 01 (360x) */
    {{      0x63,0x31,0x87,0x3D,0x8E,0x00,0x01,0x00 }},/* ; 02 (400x) */
    {{      0x63,0x3F,0x87,0x45,0x96,0x00,0x01,0x00 }},/* ; 03 (512x) */
    {{      0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }},/* ; 04 (640x) */
    {{      0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }},/* ; 05 (720x) */
    {{      0xA3,0x63,0x87,0x78,0x89,0x00,0x02,0x00 }},/* ; 06 (800x) */
    {{      0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* ; 07 (1024x) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[]=
{       /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
    {{      0x24,0xBB,0x31,0x87,0x5D,0x25,0x30      }},/* ; 00 (x350) */
    {{      0x24,0xBB,0x4A,0x80,0x8F,0x25,0x30      }},/* ; 01 (x400) */
    {{      0x24,0xBB,0x72,0x88,0xDF,0x25,0x30      }},/* ; 02 (x480) */
    {{      0x24,0xF1,0xAE,0x84,0x57,0x25,0xB0      }},/* ; 03 (x600) */
    {{      0x24,0xF5,0x02,0x88,0xFF,0x25,0x90      }} /* ; 04 (x768) */
};

static const XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[]=
{      /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
    {{      0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }},/* ; 00 (320x) */
    {{      0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }},/* ; 01 (360x) */
    {{      0x60,0x31,0x84,0x3A,0x88,0x00,0x01,0x00 }},/* ; 02 (400x) */
    {{      0x6E,0x3F,0x92,0x48,0x96,0x00,0x01,0x00 }},/* ; 03 (512x) */
    {{      0x7E,0x4F,0x82,0x54,0x06,0x00,0x06,0x00 }},/* ; 04 (640x) */
    {{      0x7E,0x4F,0x82,0x54,0x06,0x00,0x06,0x00 }},/* ; 05 (720x) */
    {{      0x92,0x63,0x96,0x68,0x1A,0x00,0x06,0x00 }},/* ; 06 (800x) */
    {{      0xAE,0x7F,0x92,0x84,0x96,0x00,0x02,0x00 }},/* ; 07 (1024x) */
    {{      0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00 }} /* ; 08 (1280x) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[]=
{	/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
    {{      0x86,0xD1,0xBC,0x80,0xBB,0xE5,0x00      }},/* ; 00 (x350) */
    {{      0xB8,0x1F,0x90,0x84,0x8F,0xB9,0x30      }},/* ; 01 (x400) */
    {{      0x08,0x3E,0xE0,0x84,0xDF,0x09,0x00      }},/* ; 02 (x480) */
    {{      0x80,0xF0,0x58,0x8C,0x57,0x81,0xA0      }},/* ; 03 (x600) */
    {{      0x28,0xF5,0x00,0x84,0xFF,0x29,0x90      }},/* ; 04 (x768) */
    {{      0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9      }} /* ; 05 (x1024) */
};

static const XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[]=
{
	/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
    {{      0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }},/* ; 00 (320x) */
    {{      0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }},/* ; 01 (360x) */
    {{      0x7E,0x40,0x84,0x49,0x91,0x00,0x01,0x00 }},/* ; 02 (400x) */
    {{      0x7E,0x47,0x93,0x50,0x9E,0x00,0x01,0x00 }},/* ; 03 (512x) */
    {{      0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }},/* ; 04 (640x) */
    {{      0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }},/* ; 05 (720x) */
    {{      0xCE,0x81,0x94,0x8A,0x98,0x00,0x02,0x00 }},/* ; 06 (800x) */
    {{      0xCE,0x8F,0x82,0x98,0x06,0x00,0x07,0x00 }},/* ; 07 (1024x) */
    {{      0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* ; 08 (1280x) */
};

static const XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[]=
{
        /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
     {{     0x28,0xD2,0xAF,0x83,0xAE,0xD8,0xA1     }},/* ; 00 (x350) */
     {{     0x28,0xD2,0xC8,0x8C,0xC7,0xF2,0x81     }},/* ; 01 (x400) */
     {{     0x28,0xD2,0xF0,0x84,0xEF,0x1A,0xB1     }},/* ; 02 (x480) */
     {{     0x28,0xDE,0x2C,0x8F,0x2B,0x56,0x91     }},/* ; 03 (x600) */
     {{     0x28,0xDE,0x80,0x83,0x7F,0xAA,0x91     }},/* ; 04 (x768) */
     {{     0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9     }} /* ; 05 (x1024) */
};

/* Jong 10/04/2007; merge code */
XGI_LVDSCRT1DataStruct  XGI_CHTVCRT1UNTSC[]=
{
 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
    0xe8,0x84,0x8f,0x57,0x20,0x00,0x01,0x00 }},
 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
    0xd0,0x82,0x5d,0x57,0x00,0x00,0x01,0x00 }},
 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
    0xe8,0x84,0x8f,0x57,0x20,0x00,0x01,0x00 }},
 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e,
    0xd0,0x82,0x5d,0x57,0x00,0x00,0x01,0x00 }},
 {{0x5d,0x4f,0x81,0x53,0x9c,0x56,0xba,
    0x18,0x84,0xdf,0x57,0x00,0x00,0x01,0x00 }},
 {{0x80,0x63,0x84,0x6c,0x17,0xec,0xf0,
   0x90,0x8c,0x57,0xed,0x20,0x00,0x06,0x01 }}
};

/* Jong 10/04/2007; merge code */
XGI_LVDSCRT1DataStruct  XGI_CHTVCRT1ONTSC[]=
{
 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e,
    0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01,0x00 }},
 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e,
    0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01,0x00 }},
 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e,
    0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01,0x00 }},
 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e,
    0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01,0x00 }},
 {{0x5d,0x4f,0x81,0x56,0x9c,0x0b,0x3e,
    0xe8,0x84,0xdf,0x0c,0x00,0x00,0x01,0x00 }},
 {{0x7d,0x63,0x81,0x6a,0x16,0xba,0xf0,
   0x7f,0x86,0x57,0xbb,0x00,0x00,0x06,0x01 }}
};

/* Jong 10/04/2007; merge code */
XGI_LVDSCRT1DataStruct  XGI_CHTVCRT1UPAL[]=
{
 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
    0xf8,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }},
 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
    0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }},
 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
    0xf8,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }},
 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
    0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }},
 {{0x64,0x4f,0x88,0x55,0x80,0xec,0xba,
    0x50,0x84,0xdf,0xed,0x00,0x00,0x05,0x00 }},
 {{0x70,0x63,0x94,0x68,0x8d,0x42,0xf1,
   0xc8,0x8c,0x57,0xe9,0x20,0x00,0x05,0x01 }}
};

/* Jong 10/04/2007; merge code */
XGI_LVDSCRT1DataStruct  XGI_CHTVCRT1OPAL[]=
{
 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
    0xf0,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }},
 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
    0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }},
 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
    0xf0,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }},
 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e,
    0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }},
 {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba,
    0x20,0x83,0xdf,0x70,0x00,0x00,0x05,0x00 }},
 {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0,
   0x90,0x8c,0x57,0xed,0x20,0x00,0x05,0x01 }}
};

/*add for new UNIVGABIOS*/
static const XGI330_LCDDataTablStruct XGI_LCDDataTable[]=
{
  {Panel1024x768,0x0019,0x0001,0},  /* XGI_ExtLCD1024x768Data */
  {Panel1024x768,0x0019,0x0000,1},  /* XGI_StLCD1024x768Data */
  {Panel1024x768,0x0018,0x0010,2},  /* XGI_CetLCD1024x768Data */
  {Panel1280x1024,0x0019,0x0001,3},  /* XGI_ExtLCD1280x1024Data */
  {Panel1280x1024,0x0019,0x0000,4},  /* XGI_StLCD1280x1024Data */
  {Panel1280x1024,0x0018,0x0010,5},  /* XGI_CetLCD1280x1024Data */
  {Panel1400x1050,0x0019,0x0001,6},  /* XGI_ExtLCD1400x1050Data */
  {Panel1400x1050,0x0019,0x0000,7},  /* XGI_StLCD1400x1050Data */
  {Panel1400x1050,0x0018,0x0010,8},  /* XGI_CetLCD1400x1050Data */
  {Panel1600x1200,0x0019,0x0001,9},   /* XGI_ExtLCD1600x1200Data */
  {Panel1600x1200,0x0019,0x0000,10},  /* XGI_StLCD1600x1200Data */
  {PanelRef60Hz,0x0008,0x0008,11},  	/* XGI_NoScalingData */
  {Panel1024x768x75,0x0019,0x0001,12}, 	/* XGI_ExtLCD1024x768x75Data */
  {Panel1024x768x75,0x0019,0x0000,13}, 	/* XGI_StLCD1024x768x75Data */
  {Panel1024x768x75,0x0018,0x0010,14}, 	/* XGI_CetLCD1024x768x75Data */
  {Panel1280x1024x75,0x0019,0x0001,15}, /* XGI_ExtLCD1280x1024x75Data */
  {Panel1280x1024x75,0x0019,0x0000,16}, /* XGI_StLCD1280x1024x75Data */
  {Panel1280x1024x75,0x0018,0x0010,17}, /* XGI_CetLCD1280x1024x75Data */
  {PanelRef75Hz,0x0008,0x0008,18},	/* XGI_NoScalingDatax75 */
  {Panel1600x1200_1,0x0008,0x0008,19},  /* XGI_NoScalingData_1 */
  {0xFF,0x0000,0x0000,0}   		/* End of table */
};

static const XGI330_LCDDataTablStruct XGI_LCDDesDataTable[]=
{
  {Panel1024x768,0x0019,0x0001,0}, /* XGI_ExtLCDDes1024x768Data */
  {Panel1024x768,0x0019,0x0000,1}, /* XGI_StLCDDes1024x768Data */
  {Panel1024x768,0x0018,0x0010,2}, /* XGI_CetLCDDes1024x768Data */
  {Panel1280x1024,0x0019,0x0001,3}, /* XGI_ExtLCDDes1280x1024Data */
  {Panel1280x1024,0x0019,0x0000,4}, /* XGI_StLCDDes1280x1024Data */
  {Panel1280x1024,0x0018,0x0010,5}, /* XGI_CetLCDDes1280x1024Data */
  {Panel1400x1050,0x0019,0x0001,6}, /* XGI_ExtLCDDes1400x1050Data */
  {Panel1400x1050,0x0019,0x0000,7}, /* XGI_StLCDDes1400x1050Data */
  {Panel1400x1050,0x0418,0x0010,8}, /* XGI_CetLCDDes1400x1050Data */
  {Panel1400x1050,0x0418,0x0410,9}, /* XGI_CetLCDDes1400x1050Data2 */
  {Panel1600x1200,0x0019,0x0001,10}, /* XGI_ExtLCDDes1600x1200Data */
  {Panel1600x1200,0x0019,0x0000,11}, /* XGI_StLCDDes1600x1200Data */
  {PanelRef60Hz,0x0008,0x0008,12}, 	/* XGI_NoScalingDesData */
  {Panel1024x768x75,0x0019,0x0001,13}, 	/* XGI_ExtLCDDes1024x768x75Data */
  {Panel1024x768x75,0x0019,0x0000,14},	/* XGI_StLCDDes1024x768x75Data */
  {Panel1024x768x75,0x0018,0x0010,15},  /* XGI_CetLCDDes1024x768x75Data */
  {Panel1280x1024x75,0x0019,0x0001,16},	/* XGI_ExtLCDDes1280x1024x75Data */
  {Panel1280x1024x75,0x0019,0x0000,17}, /* XGI_StLCDDes1280x1024x75Data */
  {Panel1280x1024x75,0x0018,0x0010,18},	/* XGI_CetLCDDes1280x1024x75Data */
  {PanelRef75Hz,0x0008,0x0008,19},	/* XGI_NoScalingDesDatax75 */
  {Panel1600x1200_1,0x0008,0x0008,20}, 	/* XGI_NoScalingDesData_1 */
  {0xFF,0x0000,0x0000,0}
};

static const XGI330_LCDDataTablStruct XGI_EPLLCDCRT1Ptr_H[]=
{
  {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDSCRT11024x768_1_H */
  {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDSCRT11024x768_2_H */
  {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDSCRT11280x1024_1_H */
  {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDSCRT11280x1024_2_H */
  {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDSCRT11400x1050_1_H */
  {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDSCRT11400x1050_2_H */
  {Panel1600x1200,0x0018,0x0000,6},  /* XGI_LVDSCRT11600x1200_1_H */
  {Panel1024x768x75,0x0018,0x0000,7},	/* XGI_LVDSCRT11024x768_1_Hx75 */
  {Panel1024x768x75,0x0018,0x0010,8},	/* XGI_LVDSCRT11024x768_2_Hx75 */
  {Panel1280x1024x75,0x0018,0x0000,9},	/* XGI_LVDSCRT11280x1024_1_Hx75 */
  {Panel1280x1024x75,0x0018,0x0010,10},	/* XGI_LVDSCRT11280x1024_2_Hx75 */
  {0xFF,0x0000,0x0000,0}
};

static const XGI330_LCDDataTablStruct XGI_EPLLCDCRT1Ptr_V[]=
{
  {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDSCRT11024x768_1_V */
  {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDSCRT11024x768_2_V */
  {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDSCRT11280x1024_1_V */
  {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDSCRT11280x1024_2_V */
  {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDSCRT11400x1050_1_V */
  {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDSCRT11400x1050_2_V */
  {Panel1600x1200,0x0018,0x0000,6}, /* XGI_LVDSCRT11600x1200_1_V */
  {Panel1024x768x75,0x0018,0x0000,7},	/* XGI_LVDSCRT11024x768_1_Vx75 */
  {Panel1024x768x75,0x0018,0x0010,8},	/* XGI_LVDSCRT11024x768_2_Vx75 */
  {Panel1280x1024x75,0x0018,0x0000,9},	/* XGI_LVDSCRT11280x1024_1_Vx75 */
  {Panel1280x1024x75,0x0018,0x0010,10},	/* XGI_LVDSCRT11280x1024_2_Vx75 */
  {0xFF,0x0000,0x0000,0}
};

static const XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[]=
{
  {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDS1024x768Data_1 */
  {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDS1024x768Data_2 */
  {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDS1280x1024Data_1 */
  {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDS1280x1024Data_2 */
  {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDS1400x1050Data_1 */
  {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDS1400x1050Data_2 */
  {Panel1600x1200,0x0018,0x0000,6}, /* XGI_LVDS1600x1200Data_1 */
  {PanelRef60Hz,0x0008,0x0008,7}, /* XGI_LVDSNoScalingData */
  {Panel1024x768x75,0x0018,0x0000,8},	/* XGI_LVDS1024x768Data_1x75 */
  {Panel1024x768x75,0x0018,0x0010,9},	/* XGI_LVDS1024x768Data_2x75 */
  {Panel1280x1024x75,0x0018,0x0000,10},	/* XGI_LVDS1280x1024Data_1x75 */
  {Panel1280x1024x75,0x0018,0x0010,11}, /* XGI_LVDS1280x1024Data_2x75 */
  {PanelRef75Hz,0x0008,0x0008,12},	/* XGI_LVDSNoScalingDatax75 */
  {0xFF,0x0000,0x0000,0}
};

static const XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[]=
{
  {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDS1024x768Des_1 */
  {Panel1024x768,0x0618,0x0410,1}, /* XGI_LVDS1024x768Des_3 */
  {Panel1024x768,0x0018,0x0010,2}, /* XGI_LVDS1024x768Des_2 */
  {Panel1280x1024,0x0018,0x0000,3}, /* XGI_LVDS1280x1024Des_1 */
  {Panel1280x1024,0x0018,0x0010,4}, /* XGI_LVDS1280x1024Des_2 */
  {Panel1400x1050,0x0018,0x0000,5}, /* XGI_LVDS1400x1050Des_1 */
  {Panel1400x1050,0x0018,0x0010,6}, /* XGI_LVDS1400x1050Des_2 */
  {Panel1600x1200,0x0018,0x0000,7}, /* XGI_LVDS1600x1200Des_1 */
  {PanelRef60Hz,0x0008,0x0008,8}, 	/* XGI_LVDSNoScalingDesData */
  {Panel1024x768x75,0x0018,0x0000,9},	/* XGI_LVDS1024x768Des_1x75 */
  {Panel1024x768x75,0x0618,0x0410,10},	/* XGI_LVDS1024x768Des_3x75 */
  {Panel1024x768x75,0x0018,0x0010,11},	/* XGI_LVDS1024x768Des_2x75 */
  {Panel1280x1024x75,0x0018,0x0000,12},	/* XGI_LVDS1280x1024Des_1x75 */
  {Panel1280x1024x75,0x0018,0x0010,13},	/* XGI_LVDS1280x1024Des_2x75 */
  {PanelRef75Hz,0x0008,0x0008,14},	/* XGI_LVDSNoScalingDesDatax75 */
  {0xFF,0x0000,0x0000,0}
};

static const XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr[]=
{
  {Panel1024x768,0x0000,0x0000,0}, /* XGI_CH7017LV1024x768 */
  {Panel1400x1050,0x0000,0x0000,1}, /* XGI_CH7017LV1400x1050 */
  {0xFF,0x0000,0x0000,0}
};

static const XGI330_TVDataTablStruct XGI_TVDataTable[]=
{
 {0x09E1,0x0001,0},	/* XGI_ExtPALData */
 {0x09E1,0x0000,1},	/* XGI_ExtNTSCData */
 {0x09E1,0x0801,2},	/* XGI_StPALData */
 {0x09E1,0x0800,3},	/* XGI_StNTSCData */
 {0x49E0,0x0100,4},	/* XGI_ExtHiTVData */
 {0x49E0,0x4100,5},	/* XGI_St2HiTVData */
 {0x49E0,0x4900,13},	/* XGI_St1HiTVData */
 {0x09E0,0x0020,6},	/* XGI_ExtYPbPr525iData */
 {0x09E0,0x0040,7},	/* XGI_ExtYPbPr525pData */
 {0x09E0,0x0080,8},	/* XGI_ExtYPbPr750pData */
 {0x09E0,0x0820,9},	/* XGI_StYPbPr525iData */
 {0x09E0,0x0840,10},	/* XGI_StYPbPr525pData */
 {0x09E0,0x0880,11}, 	/* XGI_StYPbPr750pData */
 {0xffff,0x0000,12}  	/* END */
};

/* ;;Chrontel 7017 TV Timing List */
static const XGI330_TVDataTablStruct XGI_EPLCHTVDataPtr[]=
{
  {0x0011,0x0000,0}, /* XGI_CHTVUNTSCData */
  {0x0011,0x0010,1}, /* XGI_CHTVONTSCData */
  {0x0011,0x0001,2}, /* XGI_CHTVUPALData */
  {0x0011,0x0011,3}, /* XGI_CHTVOPALData */
  {0xFFFF,0x0000,4}
};

/* ;;Chrontel 7017 TV Reg. List */
static const XGI330_TVDataTablStruct XGI_EPLCHTVRegPtr[]=
{
  {0x0011,0x0000,0}, /* XGI_CHTVRegUNTSC */
  {0x0011,0x0010,1}, /* XGI_CHTVRegONTSC */
  {0x0011,0x0001,2}, /* XGI_CHTVRegUPAL */
  {0x0011,0x0011,3}, /* XGI_CHTVRegOPAL */
  {0xFFFF,0x0000,4}
};

static const USHORT LCDLenList[]=
{
   LVDSCRT1Len_H,
   LVDSCRT1Len_V,
   LVDSDataLen,
   LCDDesDataLen,
   LCDDataLen,
   LCDDesDataLen,
   0,
   LCDDesDataLen,
   LCDDesDataLen,
   0
};

static const XGI330_LCDCapStruct  XGI_LCDDLCapList[]=  /* Dual link only */
{
/* LCDCap1024x768 */
		{Panel1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65,
		0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
		0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
/* LCDCap1280x1024 */
		{Panel1280x1024, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2,
		0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
		0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
/* LCDCap1400x1050 */
		{Panel1400x1050, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2,
		 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
		 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
/* LCDCap1600x1200 */
		{Panel1600x1200, LCDDualLink+DefaultLCDCap, LCDToFull, 0x012, 0xC0, 0x03, VCLK162,
		 0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
		 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
/* LCDCap1024x768x75 */
		{Panel1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
		 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
		 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
/* LCDCap1280x1024x75 */
		{Panel1280x1024x75, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x90, 0x03, VCLK135_5,
		 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
		 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
/* LCDCapDefault */
		{0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65,
		0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
		0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
};

static const XGI330_LCDCapStruct  XGI_LCDCapList[]=
{
/* LCDCap1024x768 */
		{Panel1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65,
		0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
		0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
/* LCDCap1280x1024 */
		{Panel1280x1024, DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2,
		0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
		0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
/* LCDCap1400x1050 */
		{Panel1400x1050, DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2,
		 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
		 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
/* LCDCap1600x1200 */
		{Panel1600x1200, DefaultLCDCap, LCDToFull, 0x010, 0xC0, 0x03, VCLK162,
		 0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
		 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
/* LCDCap1024x768x75 */
		{Panel1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
		 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
		 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
/* LCDCap1280x1024x75 */
		{Panel1280x1024x75, DefaultLCDCap, StLCDBToA, 0x012, 0x90, 0x03, VCLK135_5,
		 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
		 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
/* LCDCapDefault */
		{0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65,
		0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
		0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
};

/* Jong 10/04/2007; merge code */
XGI21_LVDSCapStruct XGI21_LCDCapList[]=
{
    {DisableLCD24bpp + LCDPolarity,
     2160,1250,1600,1200,  64,  1,  192,   3,
     0x70,0x24,0x20,0x04,0x0A,0x02,0xC8
    },
    {DisableLCD24bpp + LCDPolarity,
     1688,1066,1280,1024,  48,  1,  112,   3,
     0x70,0x44,0x20,0x04,0x0A,0x02,0xC8
    },
    {DisableLCD24bpp + LCDPolarity + (LCDPolarity << 8),
     1344, 806,1024, 768,  24,  3,  136,   6,
     0x6C,0x65,0x20,0x04,0x0A,0x02,0xC8
    },
    {DisableLCD24bpp + LCDPolarity,
     1056, 628, 800, 600,  40,   1, 128,   4,
     0x42,0xE2,0x20,0x14,0x0A,0x02,0x00
    },
    {DisableLCD24bpp + LCDPolarity,
      928, 525, 800, 480,  40,  13,  48,   3,
     0x52,0xC5,0x20,0x14,0x0A,0x02,0x00
    },
    {DisableLCD24bpp + LCDPolarity + (LCDPolarity << 8),
      800, 525, 640, 480,  16,  10,  96,   2,
     0x1B,0xE1,0x20,0x04,0x0A,0x02,0xC8
    }
    
};

XGI_Ext2Struct XGI330_RefIndex[]=
{
{Support32Bpp + SupportAllCRT2 + SyncPN,			RES320x200,	 VCLK25_175, 0x00,0x10,0x59, 320, 200},/* 00 */
{Support32Bpp + SupportAllCRT2 + SyncPN,			RES320x200,	 VCLK25_175, 0x00,0x10,0x00, 320, 400},/* 01 */
{Support32Bpp + SupportAllCRT2 + SyncNN,			RES320x240,	 VCLK25_175, 0x04,0x20,0x50, 320, 240},/* 02 */
{Support32Bpp + SupportAllCRT2 + SyncPP,			RES400x300,	 VCLK40,     0x05,0x32,0x51, 400, 300},/* 03 */
{Support32Bpp + NoSupportTV + SyncNN + SupportTV1024,		RES512x384,	 VCLK65,     0x06,0x43,0x52, 512, 384},/* 04 */
{Support32Bpp + SupportAllCRT2 + SyncPN,			RES640x400,	 VCLK25_175, 0x00,0x14,0x2f, 640, 400},/* 05 */
{Support32Bpp + SupportAllCRT2 + SyncNN,			RES640x480x60,	 VCLK25_175, 0x04,0x24,0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
{Support32Bpp + NoSupportHiVisionTV + SyncNN,			RES640x480x72,	 VCLK31_5,   0x04,0x24,0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
{Support32Bpp + NoSupportHiVisionTV + SyncNN,			RES640x480x75,	 VCLK31_5,   0x47,0x24,0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
{Support32Bpp + SupportRAMDAC2 + SyncNN,			RES640x480x85,	 VCLK36,     0x8A,0x24,0x2e, 640, 480},/* 09 640x480x85Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES640x480x100,	 VCLK43_163, 0x00,0x24,0x2e, 640, 480},/* 0a 640x480x100Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES640x480x120,	 VCLK52_406, 0x00,0x24,0x2e, 640, 480},/* 0b 640x480x120Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES640x480x160,	 VCLK72_852, 0x00,0x24,0x2e, 640, 480},/* 0c 640x480x160Hz */
{Support32Bpp + SupportRAMDAC2 + SyncNN,			RES640x480x200,	 VCLK86_6,   0x00,0x24,0x2e, 640, 480},/* 0d 640x480x200Hz */
{Support32Bpp + NoSupportLCD + SyncPP,				RES800x600x56,	 VCLK36,     0x05,0x36,0x6a, 800, 600},/* 0e 800x600x56Hz */
{Support32Bpp + NoSupportTV + SyncPP,				RES800x600x60,	 VCLK40,     0x05,0x36,0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
{Support32Bpp + NoSupportHiVisionTV + SyncPP,			RES800x600x72,	 VCLK50,     0x48,0x36,0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
{Support32Bpp + NoSupportHiVisionTV + SyncPP,			RES800x600x75,	 VCLK49_5,   0x8B,0x36,0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES800x600x85,	 VCLK56_25,  0x00,0x36,0x6a, 800, 600},/* 12 800x600x85Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES800x600x100,	 VCLK68_179, 0x00,0x36,0x6a, 800, 600},/* 13 800x600x100Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES800x600x120,	 VCLK83_95,  0x00,0x36,0x6a, 800, 600},/* 14 800x600x120Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES800x600x160,	 VCLK116_406,0x00,0x36,0x6a, 800, 600},/* 15 800x600x160Hz */
{Support32Bpp + InterlaceMode + SyncPP,				RES1024x768x43,	 VCLK44_9,   0x00,0x47,0x37,1024, 768},/* 16 1024x768x43Hz */
{Support32Bpp + NoSupportTV + SyncNN + SupportTV1024,		RES1024x768x60,	 VCLK65,     0x06,0x47,0x37,1024, 768},/* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
{Support32Bpp + NoSupportHiVisionTV + SyncNN,			RES1024x768x70,	 VCLK75,     0x49,0x47,0x37,1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
{Support32Bpp + NoSupportHiVisionTV + SyncPP,			RES1024x768x75,	 VCLK78_75,  0x00,0x47,0x37,1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES1024x768x85,	 VCLK94_5,   0x8C,0x47,0x37,1024, 768},/* 1a 1024x768x85Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES1024x768x100, VCLK113_309,0x00,0x47,0x37,1024, 768},/* 1b 1024x768x100Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES1024x768x120, VCLK139_054,0x00,0x47,0x37,1024, 768},/* 1c 1024x768x120Hz */
{Support32Bpp + SupportLCD + SyncPP,				RES1280x960x60,	 VCLK108_2,  0x3A,0x58,0x7b,1280, 960},/* 1d 1280x960x60Hz */
{Support32Bpp + InterlaceMode + SyncPP,				RES1280x1024x43, VCLK78_75,  0x00,0x58,0x3a,1280,1024},/* 1e 1280x1024x43Hz */
{Support32Bpp + NoSupportTV + SyncPP,				RES1280x1024x60, VCLK108_2,  0x07,0x58,0x3a,1280,1024},/* 1f 1280x1024x60Hz (LCD 1280x1024x60Hz) */
{Support32Bpp + NoSupportTV + SyncPP,				RES1280x1024x75, VCLK135_5,  0x00,0x58,0x3a,1280,1024},/* 20 1280x1024x75Hz (LCD 1280x1024x75Hz) */
{Support32Bpp + SyncPP,						RES1280x1024x85, VCLK157_5,  0x00,0x58,0x3a,1280,1024},/* 21 1280x1024x85Hz */
{Support32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,	RES1600x1200x60, VCLK162,    0x09,0x7A,0x3c,1600,1200},/* 22 1600x1200x60Hz */
{Support32Bpp + SyncPP + SupportCRT2in301C,			RES1600x1200x65, VCLK175,    0x00,0x69,0x3c,1600,1200},/* 23 1600x1200x65Hz */
{Support32Bpp + SyncPP + SupportCRT2in301C,			RES1600x1200x70, VCLK189,    0x00,0x69,0x3c,1600,1200},/* 24 1600x1200x70Hz */
{Support32Bpp + SyncPP + SupportCRT2in301C,			RES1600x1200x75, VCLK202_5,  0x00,0x69,0x3c,1600,1200},/* 25 1600x1200x75Hz */
{Support32Bpp + SyncPP,						RES1600x1200x85, VCLK229_5,  0x00,0x69,0x3c,1600,1200},/* 26 1600x1200x85Hz */
{Support32Bpp + SyncPP,						RES1600x1200x100,VCLK269_655,0x00,0x69,0x3c,1600,1200},/* 27 1600x1200x100Hz */
{Support32Bpp + SyncPP,						RES1600x1200x120,VCLK323_586,0x00,0x69,0x3c,1600,1200},/* 28 1600x1200x120Hz */
{Support32Bpp + SupportLCD + SyncNP,				RES1920x1440x60, VCLK234,    0x00,0x00,0x68,1920,1440},/* 29 1920x1440x60Hz */
{Support32Bpp + SyncPN,						RES1920x1440x65, VCLK254_817,0x00,0x00,0x68,1920,1440},/* 2a 1920x1440x65Hz */
{Support32Bpp + SyncPN,						RES1920x1440x70, VCLK277_015,0x00,0x00,0x68,1920,1440},/* 2b 1920x1440x70Hz */
{Support32Bpp + SyncPN,						RES1920x1440x75, VCLK291_132,0x00,0x00,0x68,1920,1440},/* 2c 1920x1440x75Hz */
{Support32Bpp + SyncPN,						RES1920x1440x85, VCLK330_615,0x00,0x00,0x68,1920,1440},/* 2d 1920x1440x85Hz */
{Support16Bpp + SyncPN,						RES1920x1440x100,VCLK388_631,0x00,0x00,0x68,1920,1440},/* 2e 1920x1440x100Hz */
{Support32Bpp + SupportLCD + SyncPN,				RES2048x1536x60, VCLK266_952,0x00,0x00,0x6c,2048,1536},/* 2f 2048x1536x60Hz */
{Support32Bpp + SyncPN,						RES2048x1536x65, VCLK291_766,0x00,0x00,0x6c,2048,1536},/* 30 2048x1536x65Hz */
{Support32Bpp + SyncPN,						RES2048x1536x70, VCLK315_195,0x00,0x00,0x6c,2048,1536},/* 31 2048x1536x70Hz */
{Support32Bpp + SyncPN,						RES2048x1536x75, VCLK340_477,0x00,0x00,0x6c,2048,1536},/* 32 2048x1536x75Hz */
{Support16Bpp + SyncPN,						RES2048x1536x85, VCLK375_847,0x00,0x00,0x6c,2048,1536},/* 33 2048x1536x85Hz */
{Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr,	RES800x480x60,	 VCLK39_77,  0x08,0x00,0x70, 800, 480},/* 34 800x480x60Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES800x480x75,	 VCLK49_5,   0x08,0x00,0x70, 800, 480},/* 35 800x480x75Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES800x480x85,	 VCLK56_25,  0x08,0x00,0x70, 800, 480},/* 36 800x480x85Hz */
{Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr,	RES1024x576x60,	 VCLK65,     0x09,0x00,0x71,1024, 576},/* 37 1024x576x60Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES1024x576x75,	 VCLK78_75,  0x09,0x00,0x71,1024, 576},/* 38 1024x576x75Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES1024x576x85,	 VCLK94_5,   0x09,0x00,0x71,1024, 576},/* 39 1024x576x85Hz */
{Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr,	RES1280x720x60,	 VCLK108_2,  0x0A,0x00,0x75,1280, 720},/* 3a 1280x720x60Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES1280x720x75,	 VCLK135_5,  0x0A,0x00,0x75,1280, 720},/* 3b 1280x720x75Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES1280x720x85,	 VCLK157_5,  0x0A,0x00,0x75,1280, 720},/* 3c 1280x720x85Hz */
{Support32Bpp + SupportTV + SyncNN,				RES720x480x60,	 VCLK28_322, 0x06,0x00,0x31, 720, 480},/* 3d 720x480x60Hz */
{Support32Bpp + SupportTV + SyncPP,				RES720x576x56,	 VCLK36,     0x06,0x00,0x32, 720, 576},/* 3e 720x576x56Hz */
{Support32Bpp + InterlaceMode + NoSupportLCD + SyncPP,		RES856x480x79I,	 VCLK35_2,   0x00,0x00,0x00, 856, 480},/* 3f 856x480x79I */
{Support32Bpp + NoSupportLCD + SyncNN,				RES856x480x60,	 VCLK35_2,   0x00,0x00,0x00, 856, 480},/* 40 856x480x60Hz */
{Support32Bpp + NoSupportHiVisionTV + SyncPP,			RES1280x768x60,	 VCLK79_411, 0x08,0x48,0x23,1280, 768},/* 41 1280x768x60Hz */
{Support32Bpp + NoSupportHiVisionTV + SyncPP,			RES1400x1050x60, VCLK122_61, 0x08,0x69,0x26,1400,1050},/* 42 1400x1050x60Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES1152x864x60,	 VCLK80_350, 0x37,0x00,0x20,1152, 864},/* 43 1152x864x60Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPP,			RES1152x864x75,	 VCLK107_385,0x37,0x00,0x20,1152, 864},/* 44 1152x864x75Hz */
{Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP,		RES1280x960x75,	 VCLK125_999,0x3A,0x88,0x7b,1280, 960},/* 45 1280x960x75Hz */
{Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP,		RES1280x960x85,	 VCLK148_5,  0x0A,0x88,0x7b,1280, 960},/* 46 1280x960x85Hz */
{Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP,		RES1280x960x120, VCLK217_325,0x3A,0x88,0x7b,1280, 960},/* 47 1280x960x120Hz */
{Support32Bpp + SupportRAMDAC2 + SyncPN,			RES1024x768x160, VCLK139_054,0x30,0x47,0x37,1024, 768},/* 48 1024x768x160Hz */
};

static const XGI_MCLKDataStruct XGI330New_MCLKData[MCLK_SIZE]=
{
 { 0x5c,0x23,0x01,166},
 { 0x5c,0x23,0x01,166},
 { 0x7C,0x08,0x80,200},
 { 0x79,0x06,0x80,250},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300}
};

static const XGI_MCLKDataStruct XGI340New_MCLKData[MCLK_SIZE]=
{
 { 0x79,0x06,0x01,250},
 { 0x7c,0x08,0x01,200},
 { 0x7C,0x08,0x80,200},
 { 0x79,0x06,0x80,250},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300},
 { 0x29,0x01,0x81,300}
};

/* Jong 10/04/2007; merge code */
static const XGI_MCLKDataStruct XGI27New_MCLKData[]=
{
 { 0x5c,0x23,0x01,166},
 { 0x19,0x02,0x01,124},
 { 0x7C,0x08,0x80,200},
 { 0x79,0x06,0x80,250},
 { 0x29,0x01,0x81,300},
 { 0x5c,0x23,0x01,166},
 { 0x5c,0x23,0x01,166},
 { 0x5c,0x23,0x01,166}
};

static const UCHAR XGI330_ScreenOffset[]={ 0x14,0x19,0x20,0x28,0x32,0x40,0x50,0x64,0x78,0x80,0x2d,0x35,0x57,0x48 };

static const XGI_StResInfoStruct XGI330_StResInfo[]=
{
 { 640,400},
 { 640,350},
 { 720,400},
 { 720,350},
 { 640,480}
};

static const XGI_ModeResInfoStruct XGI330_ModeResInfo[]=
{
 {  320, 200, 8, 8},
 {  320, 240, 8, 8},
 {  320, 400, 8, 8},
 {  400, 300, 8, 8},
 {  512, 384, 8, 8},
 {  640, 400, 8,16},
 {  640, 480, 8,16},
 {  800, 600, 8,16},
 { 1024, 768, 8,16},
 { 1280,1024, 8,16},
 { 1600,1200, 8,16},
 { 1920,1440, 8,16},
 { 2048,1536, 8,16},
 {  720, 480, 8,16},
 {  720, 576, 8,16},
 { 1280, 960, 8,16},
 {  800, 480, 8,16},
 { 1024, 576, 8,16},
 { 1280, 720, 8,16},
 {  856, 480, 8,16},
 { 1280, 768, 8,16},
 { 1400,1050, 8,16},
 { 1152, 864, 8,16}
};

static UCHAR XGI330_OutputSelect = 0x40;
static UCHAR XGI330_SoftSetting = 0x30;
static UCHAR XGI330_SR07 = 0x18;
static UCHAR XG21_DVOSetting = 0x00 ;
static UCHAR XG21_CR2E = 0x00 ;
static UCHAR XG21_CR2F = 0x00 ;
static UCHAR XG21_CR46 = 0x00 ;
static UCHAR XG21_CR47 = 0x00 ;

UCHAR XG27_CR97 = 0xC1 ;
UCHAR XG27_SR36 = 0x30 ;
UCHAR XG27_CR8F = 0x09 ;
UCHAR XG27_CRD0[] = {0,0,0,0,0,0,0,0x82,0x00,0x66,0x01,0x00} ;
UCHAR XG27_CRDE[] = {0,0} ;
UCHAR XG27_SR40 = 0x04 ;
UCHAR XG27_SR41 = 0x00 ;


static const UCHAR XGI330_CR49[2] = { 0xaa, 0x88 };
static const UCHAR XGI330_SR1F = 0x00;
static const UCHAR XGI330_SR21 = 0xa5;
static const UCHAR XGI330_SR22 = 0xfb;
static const UCHAR XGI330_SR23 = 0xf6;
static const UCHAR XGI330_SR24 = 0x0d;

static const UCHAR XGI330_SR33 = 0x00;
static const UCHAR XGI330_CRT2Data_1_2 = 0x0;
static const UCHAR XGI330_CRT2Data_4_D = 0x0;
static const UCHAR XGI330_CRT2Data_4_E = 0x0;
static const UCHAR XGI330_CRT2Data_4_10 = 0x80;
static const USHORT XGI330_RGBSenseData = 0xd1;
static const USHORT XGI330_VideoSenseData = 0xb9;
static const USHORT XGI330_YCSenseData = 0xb3;
static const USHORT XGI330_RGBSenseData2 = 0x0190;     /*301b*/
static const USHORT XGI330_VideoSenseData2 = 0x0110;
static const USHORT XGI330_YCSenseData2 = 0x016B;
static const UCHAR XG40_I2CDefinition = 0x00;
static const UCHAR XG20_CR97 = 0x10;

static const UCHAR XGI330_CHTVVCLKUNTSC[]={0x00 };

static const UCHAR XGI330_CHTVVCLKONTSC[]={0x00 };

static const UCHAR XGI330_CHTVVCLKUPAL[]={0x00 };

static const UCHAR XGI330_CHTVVCLKOPAL[]={0x00 };

static const XGI330_VCLKDataStruct XGI_VCLKData[]=
{
               	/* SR2B,SR2C,SR2D */
 		{      0x1B,0xE1,25               },/* 00 (25.175MHz) */

		{      0x4E,0xE4,28               },/* 01 (28.322MHz) */

                {      0x57,0xE4,31               },/* 02 (31.500MHz) */

                {      0xC3,0xC8,36               },/* 03 (36.000MHz) */

                {      0x42,0xE2,40               },/* 04 (40.000MHz) */

                {      0xFE,0xCD,43               },/* 05 (43.163MHz) */

                {      0x5D,0xC4,44               },/* 06 (44.900MHz) */

                {      0x52,0xE2,49               },/* 07 (49.500MHz) */

                {      0x53,0xE2,50               },/* 08 (50.000MHz) */

                {      0x74,0x67,52               },/* 09 (52.406MHz) */

                {      0x6D,0x66,56               },/* 0A (56.250MHz) */

                {      0x6C,0xC3,65               },/* 0B (65.000MHz) */

                {      0x46,0x44,67               },/* 0C (67.765MHz) */

                {      0xB1,0x46,68               },/* 0D (68.179MHz) */

                {      0xD3,0x4A,72               },/* 0E (72.852MHz) */

                {      0x29,0x61,75              },/* 0F (75.000MHz) */

                {      0x6E,0x46,76               },/* 10 (75.800MHz) */

                {      0x2B,0x61,78               },/* 11 (78.750MHz) */

                {      0x31,0x42,79               },/* 12 (79.411MHz) */

                {      0xAB,0x44,83               },/* 13 (83.950MHz) */

                {      0x46,0x25,84               },/* 14 (84.800MHz) */

                {      0x78,0x29,86               },/* 15 (86.600MHz) */

                {      0x62,0x44,94               },/* 16 (94.500MHz) */

                {      0x2B,0x41,104               },/* 17 (104.998MHz) */

                {      0x3A,0x23,105               },/* 18 (105.882MHz) */

                {      0x70,0x44,108               },/* 19 (107.862MHz) */

                {      0x3C,0x23,109               },/* 1A (109.175MHz) */

                {      0x5E,0x43,113              },/* 1B (113.309MHz) */

                {      0xBC,0x44,116              },/* 1C (116.406MHz) */

                {      0xE0,0x46,132              },/* 1D (132.258MHz) */

                {      0x54,0x42,135               },/* 1E (135.500MHz) */

                {      0x9C,0x22,139               },/* 1F (139.275MHz) */

                {      0x41,0x22,157               },/* 20 (157.500MHz) */

                {      0x70,0x24,162               },/* 21 (161.793MHz) */

                {      0x30,0x21,175               },/* 22 (175.000MHz) */

                {      0x4E,0x22,189              },/* 23 (188.520MHz) */

                {      0xDE,0x26,194              },/* 24 (194.400MHz) */

                {      0x62,0x06,202               },/* 25 (202.500MHz) */

                {      0x3F,0x03,229               },/* 26 (229.500MHz) */

                {      0xB8,0x06,234               },/* 27 (233.178MHz) */

                {      0x34,0x02,253               },/* 28 (252.699MHz) */

                {      0x58,0x04,255               },/* 29 (254.817MHz) */

                {      0x24,0x01,265              },/* 2A (265.728MHz) */

                {      0x9B,0x02,267               },/* 2B (266.952MHz) */

                {      0x70,0x05,270               },/* 2C (269.65567MHz) */

                {      0x25,0x01,272               },/* 2D (272.04199MHz) */

                {      0x9C,0x02,277               },/* 2E (277.015MHz) */

                {      0x27,0x01,286               },/* 2F (286.359985MHz) */

                {      0xB3,0x04,291               },/* 30 (291.13266MHz) */

                {      0xBC,0x05,292               },/* 31 (291.766MHz) */

                {      0xF6,0x0A,310               },/* 32 (309.789459MHz) */

                {      0x95,0x01,315               },/* 33 (315.195MHz) */

                {      0xF0,0x09,324               },/* 34 (323.586792MHz) */

                {      0xFE,0x0A,331               },/* 35 (330.615631MHz) */

                {      0xF3,0x09,332              },/* 36 (332.177612MHz) */

                {      0x5E,0x03,340              },/* 37 (340.477MHz) */

                {      0xE8,0x07,376              },/* 38 (375.847504MHz) */

                {      0xDE, 0x06,389             },/* 39 (388.631439MHz) */

                {      0x52,0x2A,54               },/* 3A (54.000MHz) */

                {      0x52,0x6A,27              },/* 3B (27.000MHz) */

                {      0x62,0x24,70               },/* 3C (70.874991MHz) */

                {      0x62,0x64,70               },/* 3D (70.1048912MHz) */

                {      0xA8,0x4C,30               },/* 3E (30.1048912MHz) */

                {      0x20,0x26,33               },/* 3F (33.7499957MHz) */

                {      0x31,0xc2,39               },/* 40 (39.77MHz) */

                {      0x11,0x21,30               },/* 41 (30MHz) }// NTSC 1024X768 */

                {      0x2E,0x48,25               },/* 42 (25.175MHz) }// ScaleLCD */

                {      0x24,0x46,25               },/* 43 (25.175MHz) */

                {      0x26,0x64,28               },/* 44 (28.322MHz) */

                {      0x37,0x64,40               },/* 45 (40.000MHz) */

                {      0xA1,0x42,108               },/* 46 (95.000MHz) }// QVGA */

                {      0x37,0x61,100               },/* 47 (100.00MHz) */

                {      0x78,0x27,108               },/* 48 (108.200MHz) */

                {      0xBF,0xC8,35               },/* 49 (35.2MHz) */

                {      0x66,0x43,123               },/* 4A (122.61Mhz) */

                {      0x2C,0x61,80               },/* 4B (80.350Mhz) */

                {      0x3B,0x61,108               },/* 4C (107.385Mhz) */


/*                {      0x60,0x36,30               },// 4D (30.200MHz)   }// No use

                {      0x60,0x36,30               },// 4E (30.200MHz)   }// No use

                {      0x60,0x36,30               },// 4F (30.200MHz)   }// No use

                {      0x60,0x36,30               },// 50 (30.200MHz)   }// CHTV

                {      0x40,0x4A,28               },// 51 (28.190MHz)

                {      0x9F,0x46,44               },// 52 (43.600MHz)

                {      0x97,0x2C,26               },// 53 (26.400MHz)

                {      0x44,0xE4,25               },// 54 (24.600MHz)

                {      0x7E,0x32,47               },// 55 (47.832MHz)

                {      0x8A,0x24,31               },// 56 (31.500MHz)

                {      0x97,0x2C,26               },// 57 (26.200MHz)

                {      0xCE,0x3C,39               },// 58 (39.000MHz)

                {      0x52,0x4A,36               },// 59 (36.000MHz)

*/
		{      0x69,0x61,191		  }, /* 4D (190.96MHz ) */
		{      0x4F,0x22,192		  }, /* 4E (192.069MHz) */
		{      0x28,0x26,322		  }, /* 4F (322.273MHz) */
		{      0x5C,0x6B,27		  }, /* 50 (27.74HMz) */
		{      0x57,0x24,126		  }, /* 51 (125.999MHz) */
		{      0x5C,0x42,148		  }, /* 52 (148.5MHz) */
		{      0x42,0x61,120		  }, /* 53 (120.839MHz) */
		{      0x62,0x61,178		  }, /* 54 (178.992MHz) */
		{      0x59,0x22,217		  }, /* 55 (217.325MHz) */
		{      0x29,0x01,300		  }, /* 56 (299.505Mhz) */
		{      0x52,0x63,74		  }, /* 57 (74.25MHz) */


                {      0xFF,0x00,0                }/* End mark */
};

static const XGI330_VCLKDataStruct XGI_VBVCLKData[]=
{
                {      0x1B,0xE1,25               },/* 00 (25.175MHz) */

                {      0x4E,0xE4,28               },/* 01 (28.322MHz) */

                {      0x57,0xE4,31               },/* 02 (31.500MHz) */

                {      0xC3,0xC8,36               },/* 03 (36.000MHz) */

                {      0x42,0x47,40               },/* 04 (40.000MHz) */

                {      0xFE,0xCD,43               },/* 05 (43.163MHz) */

                {      0x5D,0xC4,44               },/* 06 (44.900MHz) */

                {      0x52,0x47,49               },/* 07 (49.500MHz) */

                {      0x53,0x47,50               },/* 08 (50.000MHz) */

                {      0x74,0x67,52               },/* 09 (52.406MHz) */

                {      0x6D,0x66,56               },/* 0A (56.250MHz) */

                {      0x35,0x62,65               },/* 0B (65.000MHz) */

                {      0x46,0x44,67               },/* 0C (67.765MHz) */

                {      0xB1,0x46,68               },/* 0D (68.179MHz) */

                {      0xD3,0x4A,72               },/* 0E (72.852MHz) */

                {      0x29,0x61,75               },/* 0F (75.000MHz) */

                {      0x6D,0x46,75               },/* 10 (75.800MHz) */

                {      0x41,0x43,78               },/* 11 (78.750MHz) */

                {      0x31,0x42,79               },/* 12 (79.411MHz) */

                {      0xAB,0x44,83               },/* 13 (83.950MHz) */

                {      0x46,0x25,84               },/* 14 (84.800MHz) */

                {      0x78,0x29,86               },/* 15 (86.600MHz) */

                {      0x62,0x44,94               },/* 16 (94.500MHz) */

                {      0x2B,0x22,104               },/* 17 (104.998MHz) */

                {      0x49,0x24,105               },/* 18 (105.882MHz) */

                {      0xF8,0x2F,108               },/* 19 (108.279MHz) */

                {      0x3C,0x23,109               },/* 1A (109.175MHz) */

                {      0x5E,0x43,113               },/* 1B (113.309MHz) */

                {      0xBC,0x44,116               },/* 1C (116.406MHz) */

                {      0xE0,0x46,132               },/* 1D (132.258MHz) */

                {      0xD4,0x28,135               },/* 1E (135.220MHz) */

                {      0xEA,0x2A,139               },/* 1F (139.275MHz) */

                {      0x41,0x22,157               },/* 20 (157.500MHz) */

                {      0x70,0x24,162               },/* 21 (161.793MHz) */

                {      0x30,0x21,175               },/* 22 (175.000MHz) */

                {      0x4E,0x22,189               },/* 23 (188.520MHz) */

                {      0xDE,0x26,194               },/* 24 (194.400MHz) */

                {      0x70,0x07,202               },/* 25 (202.500MHz) */

                {      0x3F,0x03,229               },/* 26 (229.500MHz) */

                {      0xB8,0x06,234               },/* 27 (233.178MHz) */

                {      0x34,0x02,253               },/* 28 (252.699997 MHz) */

                {      0x58,0x04,255               },/* 29 (254.817MHz) */

                {      0x24,0x01,265               },/* 2A (265.728MHz) */

                {      0x9B,0x02,267               },/* 2B (266.952MHz) */

                {      0x70,0x05,270               },/* 2C (269.65567 MHz) */

                {      0x25,0x01,272               },/* 2D (272.041992 MHz) */

                {      0x9C,0x02,277               },/* 2E (277.015MHz) */

                {      0x27,0x01,286               },/* 2F (286.359985 MHz) */

                {      0x3C,0x02,291               },/* 30 (291.132660 MHz) */

                {      0xEF,0x0A,292               },/* 31 (291.766MHz) */

                {      0xF6,0x0A,310               },/* 32 (309.789459 MHz) */

                {      0x95,0x01,315               },/* 33 (315.195MHz) */

                {      0xF0,0x09,324               },/* 34 (323.586792 MHz) */

                {      0xFE,0x0A,331               },/* 35 (330.615631 MHz) */

                {      0xF3,0x09,332               },/* 36 (332.177612 MHz) */

                {      0xEA,0x08,340               },/* 37 (340.477MHz) */

                {      0xE8,0x07,376               },/* 38 (375.847504 MHz) */

                {      0xDE,0x06,389               },/* 39 (388.631439 MHz) */

                {      0x52,0x2A,54                },/* 3A (54.000MHz) */

                {      0x52,0x6A,27                },/* 3B (27.000MHz) */


                {      0x62,0x24,70                },/* 3C (70.874991MHz) */


                {      0x62,0x64,70                },/* 3D (70.1048912MHz) */

                {      0xA8,0x4C,30                },/* 3E (30.1048912MHz) */

                {      0x20,0x26,33                },/* 3F (33.7499957MHz) */

                {      0x31,0xc2,39                },/* 40 (39.77MHz) */

                {      0x11,0x21,30                },/* 41 (30MHz) }// NTSC 1024X768 */

                {      0x2E,0x48,25                },/* 42 (25.175MHz) }// ScaleLCD */

                {      0x24,0x46,25                },/* 43 (25.175MHz) */

                {      0x26,0x64,28                },/* 44 (28.322MHz) */

                {      0x37,0x64,40                },/* 45 (40.000MHz) */

                {      0xA1,0x42,108               },/* 46 (95.000MHz) }// QVGA */

                {      0x37,0x61,100               },/* 47 (100.00MHz) */

                {      0x78,0x27,108               },/* 48 (108.200MHz) */

                {      0xBF,0xC8,35                },/* 49 (35.2MHz) */

                {      0x66,0x43,123               },/* 4A (122.61Mhz) */

                {      0x2C,0x61,80                },/* 4B (80.350Mhz) */

                {      0x3B,0x61,108               },/* 4C (107.385Mhz) */

/*
                {      0x60,0x36,30               },// 4D (30.200MHz)   }// No use

                {      0x60,0x36,30               },// 4E (30.200MHz)   }// No use

                {      0x60,0x36,30               },// 4F (30.200MHz)   }// No use

                {      0x60,0x36,30               },// 50 (30.200MHz)   }// CHTV

                {      0x40,0x4A,28               },// 51 (28.190MHz)

                {      0x9F,0x46,44               },// 52 (43.600MHz)

                {      0x97,0x2C,26               },// 53 (26.400MHz)

                {      0x44,0xE4,25               },// 54 (24.600MHz)

                {      0x7E,0x32,47               },// 55 (47.832MHz)

                {      0x8A,0x24,31               },// 56 (31.500MHz)

                {      0x97,0x2C,26               },// 57 (26.200MHz)

                {      0xCE,0x3C,39               },// 58 (39.000MHz)

                {      0x52,0x4A,36               },// 59 (36.000MHz)
*/
		{      0x69,0x61,191		  }, /* 4D (190.96MHz ) */
		{      0x4F,0x22,192		  }, /* 4E (192.069MHz) */
		{      0x28,0x26,322		  }, /* 4F (322.273MHz) */
		{      0x5C,0x6B,27		  }, /* 50 (27.74HMz) */
		{      0x57,0x24,126		  }, /* 51 (125.999MHz) */
		{      0x5C,0x42,148		  }, /* 52 (148.5MHz) */
		{      0x42,0x61,120		  }, /* 53 (120.839MHz) */
		{      0x62,0x61,178		  }, /* 54 (178.992MHz) */
		{      0x59,0x22,217		  }, /* 55 (217.325MHz) */
		{      0x29,0x01,300		  }, /* 56 (299.505Mhz) */
		{      0x52,0x63,74		  }, /* 57 (74.25MHz) */


                {      0xFF,0x00,0                }      /* End mark */
};

static const UCHAR XGI301TVDelayList[]=
{
	0x22,            /* ; 0 ExtNTSCDelay */
	0x22,            /* ; 1 StNTSCDelay */
	0x22,            /* ; 2 ExtPALDelay */
	0x22,            /* ; 3 StPALDelay */
	0x88,            /* ; 4 ExtHiTVDelay(1080i) */
	0xBB,            /* ; 5 StHiTVDelay(1080i) */
	0x22,            /* ; 6 ExtYPbPrDelay(525i) */
	0x22,            /* ; 7 StYPbPrDealy(525i) */
	0x22,            /* ; 8 ExtYPbPrDelay(525p) */
	0x22,            /* ; 9 StYPbPrDealy(525p) */
	0x22,            /* ; A ExtYPbPrDelay(750p) */
	0x22            /* B StYPbPrDealy(750p) */
};

static const UCHAR XGI301TVDelayList2[]=
{
	0x22,           /* ; 0 ExtNTSCDelay */
	0x22,           /* ; 1 StNTSCDelay */
	0x22,           /* ; 2 ExtPALDelay */
	0x22,           /* ; 3 StPALDelay */
	0x22,           /* ; 4 ExtHiTVDelay */
	0x22,           /* ; 5 StHiTVDelay */
	0x22,           /* ; 6 ExtYPbPrDelay(525i) */
	0x22,           /* ; 7 StYPbPrDealy(525i) */
	0x22,           /* ; 8 ExtYPbPrDelay(525p) */
	0x22,           /* ; 9 StYPbPrDealy(525p) */
	0x22,           /* ; A ExtYPbPrDelay(750p) */
	0x22            /* ; B StYPbPrDealy(750p) */
};


static const UCHAR TVAntiFlickList[]=
{/* NTSCAntiFlicker */
                      0x04,           /* ; 0 Adaptive */
                      0x00,           /* ; 1 new anti-flicker ? */
/* PALAntiFlicker */
                      0x04,           /* ; 0 Adaptive */
                      0x08,           /* ; 1 new anti-flicker ? */
/* HiTVAntiFlicker */
                      0x04,           /* ; 0 ? */
                      0x00            /* ; 1 new anti-flicker ? */
};


static const UCHAR TVEdgeList[]=
{
      0x00,            /* ; 0 NTSC No Edge enhance */
      0x04,            /* ; 1 NTSC Adaptive Edge enhance */
      0x00,            /* ; 0 PAL No Edge enhance */
      0x04,            /* ; 1 PAL Adaptive Edge enhance */
      0x00,            /* ; 0 HiTV */
      0x00             /* ; 1 HiTV */
};

static const ULONG TVPhaseList[]=
{      0x08BAED21, /* ; 0 NTSC phase */
       0x00E3052A, /* ; 1 PAL phase */
       0x9B2EE421, /* ; 2 PAL-M phase */
       0xBA3EF421, /* ; 3 PAL-N phase */
       0xA7A28B1E, /* ; 4 NTSC 1024x768 */
       0xE00A831E, /* ; 5 PAL-M 1024x768 */
       0x00000000, /* ; 6 reserved */
       0x00000000, /* ; 7 reserved */
       0xD67BF021, /* ; 8 NTSC phase */
       0xE986092A, /* ; 9 PAL phase */
       0xA4EFE621, /* ; A PAL-M phase */
       0x4694F621, /* ; B PAL-N phase */
       0x8BDE711C, /* ; C NTSC 1024x768 */
       0xE00A831E  /* ; D PAL-M 1024x768 */
};

static const UCHAR NTSCYFilter1[]=
{
		      0x00,0xF4,0x10,0x38     ,/* 0 : 320x text mode */
                      0x00,0xF4,0x10,0x38     ,/* 1 : 360x text mode */
                      0xEB,0x04,0x25,0x18     ,/* 2 : 640x text mode */
                      0xF1,0x04,0x1F,0x18     ,/* 3 : 720x text mode */
                      0x00,0xF4,0x10,0x38     ,/* 4 : 320x gra. mode */
                      0xEB,0x04,0x25,0x18     ,/* 5 : 640x gra. mode */
                      0xEB,0x15,0x25,0xF6     /* 6 : 800x gra. mode */
};

static const UCHAR PALYFilter1[]=
{
		      0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */
                      0x00,0xF4,0x10,0x38     ,/* 1 : 360x text mode */
                      0xF1,0xF7,0x1F,0x32     ,/* 2 : 640x text mode */
                      0xF3,0x00,0x1D,0x20     ,/* 3 : 720x text mode */
                      0x00,0xF4,0x10,0x38     ,/* 4 : 320x gra. mode */
                      0xF1,0xF7,0x1F,0x32     ,/* 5 : 640x gra. mode */
                      0xFC,0xFB,0x14,0x2A     /* 6 : 800x gra. mode */
};

static const UCHAR PALMYFilter1[]=
{
		      0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */
                      0x00,0xF4,0x10,0x38, /* 1 : 360x text mode */
                      0xEB,0x04,0x10,0x18, /* 2 : 640x text mode */
                      0xF7,0x06,0x19,0x14, /* 3 : 720x text mode */
                      0x00,0xF4,0x10,0x38, /* 4 : 320x gra. mode */
                      0xEB,0x04,0x25,0x18, /* 5 : 640x gra. mode */
                      0xEB,0x15,0x25,0xF6, /* 6 : 800x gra. mode */
                      0xFF,0xFF,0xFF,0xFF  /* End of Table */
};

static const UCHAR PALNYFilter1[]=
{
		      0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */
                      0x00,0xF4,0x10,0x38, /* 1 : 360x text mode */
                      0xEB,0x04,0x10,0x18, /* 2 : 640x text mode */
                      0xF7,0x06,0x19,0x14, /* 3 : 720x text mode */
                      0x00,0xF4,0x10,0x38, /* 4 : 320x gra. mode */
                      0xEB,0x04,0x25,0x18, /* 5 : 640x gra. mode */
                      0xEB,0x15,0x25,0xF6, /* 6 : 800x gra. mode */
                      0xFF,0xFF,0xFF,0xFF  /* End of Table */
};

static const UCHAR NTSCYFilter2[]=
{
		      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */
                      0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */
                      0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */
                      0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */
                      0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28  /* 7 : 1024xgra. mode */
};

static const UCHAR PALYFilter2[]=
{
		      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */
                      0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */
                      0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */
                      0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */
                      0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28  /* 7 : 1024xgra. mode */
};

static const UCHAR PALMYFilter2[]=
{
		      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */
                      0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */
                      0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */
                      0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */
                      0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28  /* 7 : 1024xgra. mode */
};

static const UCHAR PALNYFilter2[]=
{
		      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */
                      0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */
                      0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */
                      0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */
                      0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */
                      0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28  /* 7 : 1024xgra. mode */
};

static const UCHAR XGI_NTSC1024AdjTime[]=
{
      0xa7,0x07,0xf2,0x6e,0x17,0x8b,0x73,0x53,
      0x13,0x40,0x34,0xF4,0x63,0xBB,0xCC,0x7A,
      0x58,0xe4,0x73,0xd0,0x13
};

static const XGI301C_Tap4TimingStruct HiTVTap4Timing[]=
{
	{0,{
	0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* C0-C7 */
	0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* C8-CF */
	0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* D0-D7 */
	0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* D8-DF */
	0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* E0-E7 */
	0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* EA-EF */
	0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* F0-F7 */
	0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E  /* F8-FF */
	}
	}
};

static const XGI301C_Tap4TimingStruct EnlargeTap4Timing[]=
{
	{0,{
	0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* C0-C7 */
	0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* C8-CF */
	0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* D0-D7 */
	0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* D8-DF */
	0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* E0-E7 */
	0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* EA-EF */
	0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* F0-F7 */
	0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E   /* F8-FF */
	}
	}
};

static const XGI301C_Tap4TimingStruct NoScaleTap4Timing[]=
{
	{0,{
	0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* C0-C7 */
	0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* C8-CF */
	0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* D0-D7 */
	0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* D8-DF */
	0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* E0-E7 */
	0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* EA-EF */
	0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* F0-F7 */
	0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E  /* F8-FF */
	}
	}
};

static const XGI301C_Tap4TimingStruct PALTap4Timing[]=
{
	{600,  {
                0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E, /* C0-C7 */
                0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D, /* C8-CF */
                0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C, /* D0-D7 */
                0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D, /* D8-DF */
                0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E, /* E0-E7 */
                0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E, /* EA-EF */
                0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01, /* F0-F7 */
                0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04  /* F8-FF */
                }
 	},
        {768,	{
                0x08,0x12,0x08,0x7E,0x07,0x12,0x09,0x7E, /* C0-C7 */
                0x06,0x12,0x0A,0x7E,0x05,0x11,0x0B,0x7F, /* C8-CF */
                0x04,0x11,0x0C,0x7F,0x03,0x11,0x0C,0x00, /* D0-D7 */
                0x03,0x10,0x0D,0x00,0x02,0x0F,0x0E,0x01, /* D8-DF */
                0x01,0x0F,0x0F,0x01,0x01,0x0E,0x0F,0x02, /* E0-E7 */
                0x00,0x0D,0x10,0x03,0x7F,0x0C,0x11,0x04, /* EA-EF */
                0x7F,0x0C,0x11,0x04,0x7F,0x0B,0x11,0x05, /* F0-F7 */
                0x7E,0x0A,0x12,0x06,0x7E,0x09,0x12,0x07  /* F8-FF */
                }
        },
        {0xFFFF,
        	{
                0x04,0x1A,0x04,0x7E,0x02,0x1B,0x05,0x7E, /* C0-C7 */
                0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D, /* C8-CF */
                0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D, /* D0-D7 */
                0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C, /* D8-DF */
                0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D, /* E0-E7 */
                0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F, /* EA-EF */
                0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00, /* F0-F7 */
                0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1B,0x02  /* F8-FF */
                }
        }
};

static const XGI301C_Tap4TimingStruct NTSCTap4Timing[]=
{
	{480,	{
              	0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* C0-C7 */
              	0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* C8-CF */
              	0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* D0-D7 */
              	0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* D8-DF */
              	0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* E0-E7 */
              	0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* EA-EF */
              	0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* F0-F7 */
              	0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02  /* F8-FF */
        	}
        },
        {600,	{
              	0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* C0-C7 */
              	0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* C8-CF */
              	0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* D0-D7 */
              	0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* D8-DF */
              	0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* E0-E7 */
              	0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* EA-EF */
              	0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* F0-F7 */
              	0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06  /* F8-FF */
        	}
        },
        {0xFFFF,
        	{
              	0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* C0-C7 */
              	0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* C8-CF */
              	0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* D0-D7 */
              	0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* D8-DF */
              	0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* E0-E7 */
              	0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* EA-EF */
              	0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* F0-F7 */
              	0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08  /* F8-FF */
        	}
        }
};

static const XGI301C_Tap4TimingStruct YPbPr525pTap4Timing[]=
{
	{480,	{
              	0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* C0-C7 */
              	0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* C8-CF */
              	0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* D0-D7 */
              	0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* D8-DF */
              	0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* E0-E7 */
              	0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* EA-EF */
              	0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* F0-F7 */
              	0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02  /* F8-FF */
        	}
        },
        {600,	{
              	0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* C0-C7 */
              	0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* C8-CF */
              	0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* D0-D7 */
              	0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* D8-DF */
              	0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* E0-E7 */
              	0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* EA-EF */
              	0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* F0-F7 */
              	0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06  /* F8-FF */
        	}
        },
        {0xFFFF,
        	{
              	0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* C0-C7 */
              	0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* C8-CF */
              	0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* D0-D7 */
              	0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* D8-DF */
              	0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* E0-E7 */
              	0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* EA-EF */
              	0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* F0-F7 */
              	0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08  /* F8-FF */
        	}
        }
};

static const XGI301C_Tap4TimingStruct YPbPr525iTap4Timing[]=
{
	{480,	{
              	0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* C0-C7 */
              	0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* C8-CF */
              	0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* D0-D7 */
              	0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* D8-DF */
              	0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* E0-E7 */
              	0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* EA-EF */
              	0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* F0-F7 */
              	0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02  /* F8-FF */
        	}
        },
        {600,	{
              	0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* C0-C7 */
              	0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* C8-CF */
              	0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* D0-D7 */
              	0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* D8-DF */
              	0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* E0-E7 */
              	0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* EA-EF */
              	0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* F0-F7 */
              	0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06  /* F8-FF */
        	}
        },
        {0xFFFF,
        	{
              	0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* C0-C7 */
              	0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* C8-CF */
              	0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* D0-D7 */
              	0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* D8-DF */
              	0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* E0-E7 */
              	0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* EA-EF */
              	0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* F0-F7 */
              	0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08  /* F8-FF */
        	}
        }
};

static const XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[]=
{        {0xFFFF,
               {
               0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E, /* C0-C7 */
               0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D, /* C8-CF */
               0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C, /* D0-D7 */
               0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D, /* D8-DF */
               0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E, /* E0-E7 */
               0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E, /* EA-EF */
               0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01, /* F0-F7 */
               0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04  /* F8-FF */
               }
        }
};
