Kernel  |  3.0

下载     查看原文件
C++程序  |  4336行  |  172.19 KB
#define  Tap4

/* yilin modify for xgi20 */
static struct XGI_MCLKDataStruct XGI340New_MCLKData[] = {
	{0x16, 0x01, 0x01, 166},
	{0x19, 0x02, 0x01, 124},
	{0x7C, 0x08, 0x01, 200},
	{0x79, 0x06, 0x01, 250},
	{0x29, 0x01, 0x81, 301},
	{0x5c, 0x23, 0x01, 166},
	{0x5c, 0x23, 0x01, 166},
	{0x5c, 0x23, 0x01, 166}
};

static struct 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}
};

/* yilin modify for xgi20 */
static struct XGI_ECLKDataStruct XGI340_ECLKData[] = {
	{0x5c, 0x23, 0x01, 166},
	{0x55, 0x84, 0x01, 123},
	{0x7C, 0x08, 0x01, 200},
	{0x79, 0x06, 0x01, 250},
	{0x29, 0x01, 0x81, 301},
	{0x5c, 0x23, 0x01, 166},
	{0x5c, 0x23, 0x01, 166},
	{0x5c, 0x23, 0x01, 166}
};

static unsigned char XGI340_SR13[4][8] = {
	{0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
	{0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
	{0x31, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
	{0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}  /* SR1B */
};

static unsigned char XGI340_cr41[24][8] = {
	{0x20, 0x50, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
	{0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
	{0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
	{0xb5, 0xa4, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x90, 0x90, 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 */
	{0x88, 0xa8, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
	{0x44, 0x44, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
	{0x48, 0x48, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
	{0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
	{0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
	{0x0a, 0x0a, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
	{0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
	{0x10, 0x10, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
	{0x11, 0x11, 0x0a, 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 */
	{0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}  /* 23 CRC5 */
};

static unsigned char XGI27_cr41[24][8] = {
	{0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
	{0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
	{0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
	{0xB5, 0x13, 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 */
	{0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
	{0x77, 0x67, 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 */
	{0x88, 0xcc, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
	{0x44, 0x88, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
	{0x48, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
	{0x54, 0x32, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
	{0x54, 0x33, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
	{0x0a, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
	{0x44, 0x63, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
	{0x10, 0x14, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
	{0x11, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
	{0x05, 0x22, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
	{0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
	{0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}  /* 23 CRC5 */
};

static unsigned char 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 unsigned char XGI340_CR6E[8][4] = {
	{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 unsigned char XGI340_CR6F[8][32] = {
	{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 unsigned char XGI340_CR89[8][2] = {
	{0x00, 0x00},
	{0x00, 0x00},
	{0x00, 0x00},
	{0x00, 0x00},
	{0x00, 0x00},
	{0x00, 0x00},
	{0x00, 0x00},
	{0x00, 0x00}
};
/* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
static unsigned char XGI340_AGPReg[12] = {
	0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
	0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
};

static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83};

#if 0
static unsigned char XGI330_SR15_1[8][8] = {
	{0x0, 0x0, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00},
	{0x5, 0x15, 0x15, 0x15, 0x15, 0x15, 0x00, 0x00},
	{0xba, 0xba, 0xba, 0xba, 0xBA, 0xBA, 0x00, 0x00},
	{0x55, 0x57, 0x57, 0xAB, 0xAB, 0xAB, 0x00, 0x00},
	{0x60, 0x34, 0x34, 0x34, 0x34, 0x34, 0x00, 0x00},
	{0x0, 0x80, 0x80, 0x80, 0x83, 0x83, 0x00, 0x00},
	{0x50, 0x50, 0x50, 0x3C, 0x3C, 0x3C, 0x00, 0x00},
	{0x0, 0xa5, 0xfb, 0xf6, 0xF6, 0xF6, 0x00, 0x00}
};

static unsigned char XGI330_cr40_1[15][8] = {
	{0x66, 0x40, 0x40, 0x28, 0x24, 0x24, 0x00, 0x00},
	{0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00},
	{0x00, 0xf0, 0xf0, 0xf0, 0xF0, 0xF0, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x88, 0x88, 0x88, 0xAA, 0xAC, 0xAC, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x00, 0xA2, 0x00, 0x00, 0xA2, 0xA2, 0x00, 0x00},
};
#endif

static unsigned char XGI330_sr25[] = {0x00, 0x0};
static unsigned char XGI330_sr31 = 0xc0;
static unsigned char XGI330_sr32 = 0x11;
static unsigned char XGI330_SR33 = 0x00;
static unsigned char XG40_CRCF = 0x13;
static unsigned char XG40_DRAMTypeDefinition = 0xFF ;

static struct 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 struct 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}
};

static struct 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 struct XGI_TimingHStruct XGI_TimingH[] = {
	{ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }
};

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

static struct 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 struct 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 */
};

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

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

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

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

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

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

/*struct 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 struct 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 struct 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 struct 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}
};

#if 0
static struct XGI330_LCDDataStruct  XGI_St2LCD1280x1024Data[] = {
	{22,  5,  800,  510,  1650, 1088},
	{22,  5,  800,  510,  1650, 1088},
	{176, 45, 900,  510,  1650, 1088},
	{176, 45, 900,  510,  1650, 1088},
	{22,  5,  800,  510,  1650, 1088},
	{13,  5,  1024, 675,  1560, 1152},
	{16,  9,  1266, 804,  1688, 1072},
	{1,   1,  1688, 1066, 1688, 1066}
};
#endif

static struct 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 struct 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 struct 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 struct 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 */
};

static struct 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) */
};

static struct 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 struct XGI330_LCDDataStruct  XGI_NoScalingData[] = {
	{1, 1, 800,  449,  800,  449},
	{1, 1, 800,  449,  800,  449},
	{1, 1, 900,  449,  900,  449},
	{1, 1, 900,  449,  900,  449},
	{1, 1, 800,  525,  800,  525},
	{1, 1, 1056, 628,  1056, 628},
	{1, 1, 1344, 806,  1344, 806},
	{1, 1, 1688, 1066, 1688, 1066}
};

static struct 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) */
};

#if 0
static struct XGI330_LCDDataStruct  XGI_StLCD1024x768x75Data[] = {
	{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) */
};
#endif

static struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct XGI330_LCDDataDesStruct  XGI_ExtLCDDLDes1600x1200Data[] = {
	{18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
	{18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
	{18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
	{18, 1682, 0, 1201}, /* 03 (720x350) */
	{18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
	{18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
	{18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
	{18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
	{18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
	{18, 1682, 0, 1201}  /* 09 (1600x1200x60Hz) */
};

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

static struct 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) */
	{9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
	{9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
	{9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
	{9, 1673, 0, 1201}  /* 09 (1600x1200x60Hz) */
};

static struct 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) */
};

static struct 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, 657,  448, 405,  96,   2}, /* 02 (360x400,720x400) */
	{9, 657,  448, 355,  96,   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) */
	{9, 1337, 0,   1025, 112,  3}, /* 07 (1280x1024x60Hz) */
	{9, 1457, 0,   1051, 112,  3}, /* 08 (1400x1050x60Hz) },
					//;[ycchen] 12/19/02 */
	{9, 1673, 0,   1201, 192,  3}, /* 09 (1600x1200x60Hz) */
	{9, 1337, 0,   771,  112,  6}  /* 0A (1280x768x60Hz) */
};

/* ;;1024x768x75Hz */
static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDes1024x768x75Data[] = {
	{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 struct 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) */
};

/* ;;1024x768x75Hz */
static struct XGI330_LCDDataDesStruct  XGI_CetLCDDes1024x768x75Data[] = {
	{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) */
};

/* ;;1280x1024x75Hz */
static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDLDes1280x1024x75Data[] = {
	{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 struct 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) */
};

/* 1280x1024x75Hz */
static struct XGI330_LCDDataDesStruct  XGI_CetLCDDLDes1280x1024x75Data[] = {
	{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) */
};

/* ;;1280x1024x75Hz */
static struct XGI330_LCDDataDesStruct  XGI_ExtLCDDes1280x1024x75Data[] = {
	{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 struct 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) */
};

/* 1280x1024x75Hz */
static struct XGI330_LCDDataDesStruct  XGI_CetLCDDes1280x1024x75Data[] = {
	{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) */
};

/* Scaling LCD 75Hz */
static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] =  {
	{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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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
};

#if 0
static struct XGI_PanelDelayTblStruct XGI330_PanelDelayTbl[] = {
	{ {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 struct XGI330_LVDSDataStruct  XGI330_LVDS320x480Data_1[] = {
	{848,  433, 400,  525},
	{848,  389, 400,  525},
	{848,  433, 400,  525},
	{848,  389, 400,  525},
	{848,  518, 400,  525},
	{1056, 628, 400,  525},
	{400,  525, 400,  525},
	{800,  449, 1000, 644},
	{800,  525, 1000, 635}
};

static struct XGI330_LVDSDataStruct  XGI330_LVDS800x600Data_1[] = {
	{848,  433, 1060, 629},
	{848,  389, 1060, 629},
	{848,  433, 1060, 629},
	{848,  389, 1060, 629},
	{848,  518, 1060, 629},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{800,  449, 1000, 644},
	{800,  525, 1000, 635}
};

static struct XGI330_LVDSDataStruct  XGI330_LVDS800x600Data_2[] = {
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{800,  449, 1000, 644},
	{800,  525, 1000, 635}
};
#endif

static struct 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 struct 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 struct 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 struct 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}
};
/*
struct XGI330_LVDSDataStruct  XGI_LVDS1280x768Data_1[] = {
	{768,  438, 1408, 806},
	{768,  388, 1408, 806},
	{768,  438, 1408, 806},
	{768,  388, 1408, 806},
	{768,  518, 1408, 806},
	{928,  638, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806}
};

struct XGI330_LVDSDataStruct  XGI_LVDS1280x768Data_2[] = {
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806},
	{1408, 806, 1408, 806}
};

struct XGI330_LVDSDataStruct  XGI_LVDS1280x768NData_1[] = {
	{704,  438, 1344, 806},
	{704,  388, 1344, 806},
	{704,  438, 1344, 806},
	{704,  388, 1344, 806},
	{704,  518, 1344, 806},
	{864,  638, 1344, 806},
	{1088, 806, 1344, 806},
	{1344, 806, 1344, 806},
	{1344, 806, 1344, 806}
};

struct XGI330_LVDSDataStruct  XGI_LVDS1280x768NData_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},
	{1344, 806, 1344, 806},
	{1344, 806, 1344, 806}
};

struct XGI330_LVDSDataStruct  XGI_LVDS1280x768SData_1[] = {
	{1048, 438, 1688, 806},
	{1048, 388, 1688, 806},
	{1148, 438, 1688, 806},
	{1148, 388, 1688, 806},
	{1048, 518, 1688, 806},
	{1208, 638, 1688, 806},
	{1432, 806, 1688, 806},
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806}
};

struct XGI330_LVDSDataStruct  XGI_LVDS1280x768SData_2[] = {
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806},
	{1688, 806, 1688, 806}
};
*/
static struct 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 struct 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}
};

/* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1[] = {
	{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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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) */
};

/* ; 1024x768 Full-screen */
static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75[] = {
	{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) */
};

/* ; 1024x768 center-screen (Enh. Mode) */
static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75[] = {
	{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) */
};

/* ; 1024x768 center-screen (St.Mode) */
static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75[] =  {
	{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 struct 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 */
/* [ycchen] 02/18/03 Set DE as default */
static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75[] = {
	{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) */
};

/* Scaling LCD 75Hz */
static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
	{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) */
};

#if 0
static struct XGI330_LVDSDataStruct  XGI330_LVDS640x480Data_1[] = {
	{ 800, 449,  800, 449},
	{ 800, 449,  800, 449},
	{ 800, 449,  800, 449},
	{ 800, 449,  800, 449},
	{ 800, 525,  800, 525},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628},
	{1056, 628, 1056, 628}
};
#endif

static struct 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 struct 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 struct 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 struct 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}
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11024x768_1_H[] = {
	{ {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) */
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11280x1024_1_H[] = {
	{ {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) */
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11024x768_2_H[] = {
	{ {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) */
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct  XGI_LVDSCRT11280x1024_2_H[] = {
	{ {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) */
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = {
	{ {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) */
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = {
	{ {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) */
};

/* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
/* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = {
	{ {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) */
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = {
	{ {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) */
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = {
	{ {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) */
};

/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = {
	{ {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) */
};
/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = {
	{ {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) */
};

/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
	{ {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) */
};

#if 0
static struct 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,
	  x90, 0x8c, 0x57, 0xed, 0x20, 0x00, 0x06, 0x01 } }
};

static struct 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,
	  x7f, 0x86, 0x57, 0xbb, 0x00, 0x00, 0x06, 0x01 } }
};

static struct 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,
	  xc8, 0x8c, 0x57, 0xe9, 0x20, 0x00, 0x05, 0x01 } }
};

static struct 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,
	  x90, 0x8c, 0x57, 0xed, 0x20, 0x00, 0x05, 0x01 } }
};
#endif

/*add for new UNIVGABIOS*/
static struct 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 */
	{0xFF, 0x0000, 0x0000, 0} /* End of table */
};

static struct 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*/
	/* XGI_ExtLCDDes1280x1024x75Data */
	{Panel1280x1024x75, 0x0019, 0x0001, 16},
	/* XGI_StLCDDes1280x1024x75Data */
	{Panel1280x1024x75, 0x0019, 0x0000, 17},
	/* XGI_CetLCDDes1280x1024x75Data */
	{Panel1280x1024x75, 0x0018, 0x0010, 18},
	{PanelRef75Hz, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
	{0xFF, 0x0000, 0x0000, 0}
};

static struct 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 struct 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 struct 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 struct 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 struct XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr[] = {
	{Panel1024x768, 0x0000, 0x0000, 0}, /* XGI_CH7017LV1024x768 */
	{Panel1400x1050, 0x0000, 0x0000, 1}, /* XGI_CH7017LV1400x1050 */
	{0xFF, 0x0000, 0x0000, 0}
};

static struct 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 */
};

#if 0
static unsigned short TVLenList[] = {
	LVDSCRT1Len_H,
	LVDSCRT1Len_V,
	LVDSDataLen,
	0,
	TVDataLen,
	0,
	0,
	CHTVRegLen
};
#endif

/* Chrontel 7017 TV CRT1 Timing List */
static struct XGI330_TVDataTablStruct XGI_EPLCHTVCRT1Ptr[] = {
	{0x0011, 0x0000, 0}, /* XGI_CHTVCRT1UNTSC */
	{0x0011, 0x0010, 1}, /* XGI_CHTVCRT1ONTSC */
	{0x0011, 0x0001, 2}, /* XGI_CHTVCRT1UPAL */
	{0x0011, 0x0011, 3}, /* XGI_CHTVCRT1OPAL */
	{0xFFFF, 0x0000, 4}
};

/* ;;Chrontel 7017 TV Timing List */
static struct 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 struct 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 unsigned short LCDLenList[] = {
	LVDSCRT1Len_H,
	LVDSCRT1Len_V,
	LVDSDataLen,
	LCDDesDataLen,
	LCDDataLen,
	LCDDesDataLen,
	0,
	LCDDesDataLen,
	LCDDesDataLen,
	0
};

#if 0
/* 660, Dual link */
static struct XGI330_LCDCapStruct  XGI660_LCDDLCapList[] = {
/* LCDCap1024x768 */
	{Panel1024x768, DefaultLCDCap, 0, 0x014, 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,
	0x053, 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,
	0x053, 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,
	0x053, 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, 0x014, 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,
	0x053, 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, 0x053, 0x88, 0x06, VCLK65,
	0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
	0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
};
#endif

/* Dual link only */
static struct XGI330_LCDCapStruct  XGI_LCDDLCapList[] = {
/* 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}
};

#if 0
static struct XGI330_LCDCapStruct  XGI660_LCDCapList[] = {
/* LCDCap1024x768 */
	{Panel1024x768, DefaultLCDCap, 0, 0x014, 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, 0x053, 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, 0x053, 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, 0x053, 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, 0x014, 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,
	0x053, 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, 0x053, 0x88, 0x06, VCLK65,
	0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
	0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
};
#endif

static struct 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,
	0x012, 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}
};

struct 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
	}
};

static struct 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 */
	/* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
	{Support32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES1024x768x60,
	VCLK65, 0x06, 0x47, 0x37, 1024, 768},
	{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,
	0x08, 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 */
	/* 22 1600x1200x60Hz */
	{Support32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,
	RES1600x1200x60, VCLK162, 0x09, 0x7A, 0x3c, 1600, 1200},
	{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 */
};


#if 0
static struct XGI330_VCLKDataStruct XGI330_VCLKData[] = {
	{0x1b, 0xe1,  25}, /* 0x0 */
	{0x4e, 0xe4,  28}, /* 0x1 */
	{0x57, 0xe4,  31}, /* 0x2 */
	{0xc3, 0xc8,  36}, /* 0x3 */
	{0x42, 0xe2,  40}, /* 0x4 */
	{0xfe, 0xcd,  43}, /* 0x5 */
	{0x5d, 0xc4,  44}, /* 0x6 */
	{0x52, 0xe2,  49}, /* 0x7 */
	{0x53, 0xe2,  50}, /* 0x8 */
	{0x74, 0x67,  52}, /* 0x9 */
	{0x6d, 0x66,  56}, /* 0xa */
	{0x6c, 0xc3,  65}, /* 0xb */
	{0x46, 0x44,  67}, /* 0xc */
	{0xb1, 0x46,  68}, /* 0xd */
	{0xd3, 0x4a,  72}, /* 0xe */
	{0x29, 0x61,  75}, /* 0xf */
	{0x6e, 0x46,  76}, /* 0x10 */
	{0x2b, 0x61,  78}, /* 0x11 */
	{0x31, 0x42,  79}, /* 0x12 */
	{0xab, 0x44,  83}, /* 0x13 */
	{0x46, 0x25,  84}, /* 0x14 */
	{0x78, 0x29,  86}, /* 0x15 */
	{0x62, 0x44,  94}, /* 0x16 */
	{0x2b, 0x41, 104}, /* 0x17 */
	{0x3a, 0x23, 105}, /* 0x18 */
	{0x70, 0x44, 108}, /* 0x19 */
	{0x3c, 0x23, 109}, /* 0x1a */
	{0x5e, 0x43, 113}, /* 0x1b */
	{0xbc, 0x44, 116}, /* 0x1c */
	{0xe0, 0x46, 132}, /* 0x1d */
	{0x54, 0x42, 135}, /* 0x1e */
	{0xea, 0x2a, 139}, /* 0x1f */
	{0x41, 0x22, 157}, /* 0x20 */
	{0x70, 0x24, 162}, /* 0x21 */
	{0x30, 0x21, 175}, /* 0x22 */
	{0x4e, 0x22, 189}, /* 0x23 */
	{0xde, 0x26, 194}, /* 0x24 */
	{0x62, 0x06, 202}, /* 0x25 */
	{0x3f, 0x03, 229}, /* 0x26 */
	{0xb8, 0x06, 234}, /* 0x27 */
	{0x34, 0x02, 253}, /* 0x28 */
	{0x58, 0x04, 255}, /* 0x29 */
	{0x24, 0x01, 265}, /* 0x2a */
	{0x9b, 0x02, 267}, /* 0x2b */
	{0x70, 0x05, 270}, /* 0x2c */
	{0x25, 0x01, 272}, /* 0x2d */
	{0x9c, 0x02, 277}, /* 0x2e */
	{0x27, 0x01, 286}, /* 0x2f */
	{0x3c, 0x02, 291}, /* 0x30 */
	{0xef, 0x0a, 292}, /* 0x31 */
	{0xf6, 0x0a, 310}, /* 0x32 */
	{0x95, 0x01, 315}, /* 0x33 */
	{0xf0, 0x09, 324}, /* 0x34 */
	{0xfe, 0x0a, 331}, /* 0x35 */
	{0xf3, 0x09, 332}, /* 0x36 */
	{0xea, 0x08, 340}, /* 0x37 */
	{0xe8, 0x07, 376}, /* 0x38 */
	{0xde, 0x06, 389}, /* 0x39 */
	{0x52, 0x2a,  54}, /* 0x3a */
	{0x52, 0x6a,  27}, /* 0x3b */
	{0x62, 0x24,  70}, /* 0x3c */
	{0x62, 0x64,  70}, /* 0x3d */
	{0xa8, 0x4c,  30}, /* 0x3e */
	{0x20, 0x26,  33}, /* 0x3f */
	{0x31, 0xc2,  39}, /* 0x40 */
	{0x60, 0x36,  30}, /* 0x41 */
	{0x40, 0x4A,  28}, /* 0x42 */
	{0x9F, 0x46,  44}, /* 0x43 */
	{0x97, 0x2C,  26}, /* 0x44 */
	{0x44, 0xE4,  25}, /* 0x45 */
	{0x7E, 0x32,  47}, /* 0x46 */
	{0x08, 0x24,  31}, /* 0x47 */
	{0x97, 0x2c,  26}, /* 0x48 */
	{0xCE, 0x3c,  39}, /* 0x49 */
	{0x52, 0x4A,  36}, /* 0x4a */
	{0x2C, 0x61,  95}, /* 0x4b */
	{0x78, 0x27, 108}, /* 0x4c */
	{0x66, 0x43, 123},  /* 0x4d */
	{0x2c, 0x61,  80},  /* 0x4e */
	{0x3b, 0x61, 108}  /* 0x4f */
};

static struct XGI_VBVCLKDataStruct XGI330_VBVCLKData[] = {
	{0x1b, 0xe1,  25}, /* 0x0 */
	{0x4e, 0xe4,  28}, /* 0x1 */
	{0x57, 0xe4,  31}, /* 0x2 */
	{0xc3, 0xc8,  36}, /* 0x3 */
	{0x42, 0x47,  40}, /* 0x4 */
	{0xfe, 0xcd,  43}, /* 0x5 */
	{0x5d, 0xc4,  44}, /* 0x6 */
	{0x52, 0x47,  49}, /* 0x7 */
	{0x53, 0x47,  50}, /* 0x8 */
	{0x74, 0x67,  52}, /* 0x9 */
	{0x6d, 0x66,  56}, /* 0xa */
	{0x5a, 0x64,  65}, /* 0xb */
	{0x46, 0x44,  67}, /* 0xc */
	{0xb1, 0x46,  68}, /* 0xd */
	{0xd3, 0x4a,  72}, /* 0xe */
	{0x29, 0x61,  75}, /* 0xf */
	{0x6d, 0x46,  75}, /* 0x10 */
	{0x41, 0x43,  78}, /* 0x11 */
	{0x31, 0x42,  79}, /* 0x12 */
	{0xab, 0x44,  83}, /* 0x13 */
	{0x46, 0x25,  84}, /* 0x14 */
	{0x78, 0x29,  86}, /* 0x15 */
	{0x62, 0x44,  94}, /* 0x16 */
	{0x2b, 0x22, 104}, /* 0x17 */
	{0x49, 0x24, 105}, /* 0x18 */
	{0xf8, 0x2f, 108}, /* 0x19 */
	{0x3c, 0x23, 109}, /* 0x1a */
	{0x5e, 0x43, 113}, /* 0x1b */
	{0xbc, 0x44, 116}, /* 0x1c */
	{0xe0, 0x46, 132}, /* 0x1d */
	{0xd4, 0x28, 135}, /* 0x1e */
	{0xea, 0x2a, 139}, /* 0x1f */
	{0x41, 0x22, 157}, /* 0x20 */
	{0x70, 0x24, 162}, /* 0x21 */
	{0x30, 0x21, 175}, /* 0x22 */
	{0x4e, 0x22, 189}, /* 0x23 */
	{0xde, 0x26, 194}, /* 0x24 */
	{0x70, 0x07, 202}, /* 0x25 */
	{0x3f, 0x03, 229}, /* 0x26 */
	{0xb8, 0x06, 234}, /* 0x27 */
	{0x34, 0x02, 253}, /* 0x28 */
	{0x58, 0x04, 255}, /* 0x29 */
	{0x24, 0x01, 265}, /* 0x2a */
	{0x9b, 0x02, 267}, /* 0x2b */
	{0x70, 0x05, 270}, /* 0x2c */
	{0x25, 0x01, 272}, /* 0x2d */
	{0x9c, 0x02, 277}, /* 0x2e */
	{0x27, 0x01, 286}, /* 0x2f */
	{0x3c, 0x02, 291}, /* 0x30 */
	{0xef, 0x0a, 292}, /* 0x31 */
	{0xf6, 0x0a, 310}, /* 0x32 */
	{0x95, 0x01, 315}, /* 0x33 */
	{0xf0, 0x09, 324}, /* 0x34 */
	{0xfe, 0x0a, 331}, /* 0x35 */
	{0xf3, 0x09, 332}, /* 0x36 */
	{0xea, 0x08, 340}, /* 0x37 */
	{0xe8, 0x07, 376}, /* 0x38 */
	{0xde, 0x06, 389}, /* 0x39 */
	{0x52, 0x2a,  54}, /* 0x3a */
	{0x52, 0x6a,  27}, /* 0x3b */
	{0x62, 0x24,  70}, /* 0x3c */
	{0x62, 0x64,  70}, /* 0x3d */
	{0xa8, 0x4c,  30}, /* 0x3e */
	{0x20, 0x26,  33}, /* 0x3f */
	{0x31, 0xc2,  39}, /* 0x40 */
	{0x2e, 0x48,  25}, /* 0x41 */
	{0x24, 0x46,  25}, /* 0x42 */
	{0x26, 0x64,  28}, /* 0x43 */
	{0x37, 0x64,  40}, /* 0x44 */
	{0xa1, 0x42, 108}, /* 0x45 */
	{0x37, 0x61, 100}, /* 0x46 */
	{0x78, 0x27, 108}, /* 0x47 */
	{0x5e, 0x64, 68},  /* 0x48 chiawen for fuj1280x768*/
	{0x70, 0x44, 108}, /* 0x49 chiawen for 1400x1050*/
};
#endif

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

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

static struct 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 unsigned char XGI330_OutputSelect = 0x40;
static unsigned char XGI330_SoftSetting = 0x30;
static unsigned char XGI330_SR07 = 0x18;

#if 0
static unsigned char XGI330New_SR15[8][8] = {
	{ 0x0,  0x4, 0x60, 0x60},
	{ 0xf,  0xf,  0xf,  0xf},
	{0xba, 0xba, 0xba, 0xba},
	{0xa9, 0xa9, 0xac, 0xac},
	{0xa0, 0xa0, 0xa0, 0xa8},
	{ 0x0,  0x0,  0x2,  0x2},
	{0x30, 0x30, 0x40, 0x40},
	{ 0x0, 0xa5, 0xfb, 0xf6}
};

static unsigned char XGI330New_CR40[5][8] = {
	{0x77, 0x77, 0x44, 0x44},
	{0x77, 0x77, 0x44, 0x44},
	{ 0x0,  0x0,  0x0,  0x0},
	{0x5b, 0x5b, 0xab, 0xab},
	{ 0x0,  0x0, 0xf0, 0xf8}
};
#endif

static unsigned char XGI330_CR49[] = {0xaa, 0x88};
static unsigned char XGI330_SR1F = 0x0;
static unsigned char XGI330_SR21 = 0xa3;
#if 0
static unsigned char XGI330_650_SR21 = 0xa7;
#endif
static unsigned char XGI330_SR22 = 0xfb;
static unsigned char XGI330_SR23 = 0xf6;
static unsigned char XGI330_SR24 = 0xd;

#if 0
static unsigned char XGI660_SR21 = 0xa3;/* 2003.0312 */
static unsigned char XGI660_SR22 = 0xf3;/* 2003.0312 */

static unsigned char XGI330_LVDS_SR32 = 0x00;   /* ynlai for 650 LVDS */
static unsigned char XGI330_LVDS_SR33 = 0x00;	/* chiawen for 650 LVDS */
static unsigned char XGI330_650_SR31 = 0x40;
static unsigned char XGI330_650_SR33 = 0x04;
#endif
static unsigned char XGI330_CRT2Data_1_2 = 0x0;
static unsigned char XGI330_CRT2Data_4_D = 0x0;
static unsigned char XGI330_CRT2Data_4_E = 0x0;
static unsigned char XGI330_CRT2Data_4_10 = 0x80;
static unsigned short XGI330_RGBSenseData = 0xd1;
static unsigned short XGI330_VideoSenseData = 0xb9;
static unsigned short XGI330_YCSenseData = 0xb3;
static unsigned short XGI330_RGBSenseData2 = 0x0190;     /*301b*/
static unsigned short XGI330_VideoSenseData2 = 0x0110;
static unsigned short XGI330_YCSenseData2 = 0x016B;
#if 0
static unsigned char XGI330_NTSCPhase[] = {0x21, 0xed, 0x8a, 0x8};
static unsigned char XGI330_PALPhase[] = {0x2a, 0x5, 0xd3, 0x0};
static unsigned char XGI330_NTSCPhase2[] = {0x21, 0xF0, 0x7B, 0xD6};/*301b*/
static unsigned char XGI330_PALPhase2[] = {0x2a, 0x09, 0x86, 0xe9};
static unsigned char XGI330_PALMPhase[] = {0x21, 0xE4, 0x2E, 0x9B};   /*palmn*/
static unsigned char XGI330_PALNPhase[] = {0x21, 0xF4, 0x3E, 0xBA};
#endif
static unsigned char XG40_I2CDefinition = 0x00 ;
static unsigned char XG20_CR97 = 0x10 ;

static unsigned char XG21_DVOSetting = 0x00 ;
static unsigned char XG21_CR2E = 0x00 ;
static unsigned char XG21_CR2F = 0x00 ;
static unsigned char XG21_CR46 = 0x00 ;
static unsigned char XG21_CR47 = 0x00 ;

static unsigned char XG27_CR97 = 0xC1 ;
static unsigned char XG27_SR36 = 0x30 ;
static unsigned char XG27_CR8F = 0x0C ;
static unsigned char XG27_CRD0[] = {
	0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00
};
static unsigned char XG27_CRDE[] = {0, 0};
static unsigned char XG27_SR40 = 0x04 ;
static unsigned char XG27_SR41 = 0x00 ;

static unsigned char XGI330_CHTVVCLKUNTSC[] = {0x00};

static unsigned char XGI330_CHTVVCLKONTSC[] = {0x00};

static unsigned char XGI330_CHTVVCLKUPAL[] = {0x00};

static unsigned char XGI330_CHTVVCLKOPAL[] = {0x00};

static unsigned char XGI7007_CHTVVCLKUNTSC[] = {
	CH7007TVVCLK30_2,
	CH7007TVVCLK30_2,
	CH7007TVVCLK30_2,
	CH7007TVVCLK30_2,
	CH7007TVVCLK28_1,
	CH7007TVVCLK47_8
};

static unsigned char XGI7007_CHTVVCLKONTSC[] = {
	CH7007TVVCLK26_4,
	CH7007TVVCLK26_4,
	CH7007TVVCLK26_4,
	CH7007TVVCLK26_4,
	CH7007TVVCLK24_6,
	CH7007TVVCLK43_6
};

static unsigned char XGI7007_CHTVVCLKUPAL[] = {
	CH7007TVVCLK31_5,
	CH7007TVVCLK31_5,
	CH7007TVVCLK31_5,
	CH7007TVVCLK31_5,
	CH7007TVVCLK26_2,
	CH7007TVVCLK39
};

static unsigned char XGI7007_CHTVVCLKOPAL[] = {
	CH7007TVVCLK31_5,
	CH7007TVVCLK31_5,
	CH7007TVVCLK31_5,
	CH7007TVVCLK31_5,
	CH7007TVVCLK26_2,
	CH7007TVVCLK36
};

static struct XGI330_VCLKDataStruct XGI_CH7007VCLKData[] = {
	{0x60, 0x36, 30},  /* 0 30.2 MHZ */
	{0x40, 0x4A, 28},  /* 1 28.19 MHZ */
	{0x9F, 0x46, 44},  /* 2 43.6 MHZ */
	{0x97, 0x2C, 26},  /* 3 26.4 MHZ */
	{0x44, 0xE4, 25},  /* 4 24.6 MHZ */
	{0x7E, 0x32, 47},  /* 5 47.832 MHZ */
	{0x8A, 0x24, 31},  /* 6 31.5 MHZ */
	{0x97, 0x2C, 26},  /* 7 26.2 MHZ */
	{0xCE, 0x3C, 39},  /* 8 39 MHZ   */
	{0x52, 0x4A, 36},  /* 9 36 MHZ   */
	{0xFF, 0x00,  0}   /* End mark      */
};

static struct 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 struct 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 */
};

#if 0
static unsigned char XGI660_TVDelayList[] = {
	0x44, /* ; 0 ExtNTSCDelay */
	0x44, /* ; 1 StNTSCDelay */
	0x44, /* ; 2 ExtPALDelay */
	0x44, /* ; 3 StPALDelay */
	0x44, /* ; 4 ExtHiTVDelay(1080i) */
	0x44, /* ; 5 StHiTVDelay(1080i) */
	0x44, /* ; 6 ExtYPbPrDelay(525i) */
	0x44, /* ; 7 StYPbPrDealy(525i) */
	0x44, /* ; 8 ExtYPbPrDelay(525p) */
	0x44, /* ; 9 StYPbPrDealy(525p) */
	0x44, /* ; A ExtYPbPrDelay(750p) */
	0x44  /* ; B StYPbPrDealy(750p) */
};

static unsigned char XGI660_TVDelayList2[] = {
	0x44, /* ; 0 ExtNTSCDelay */
	0x44, /* ; 1 StNTSCDelay */
	0x44, /* ; 2 ExtPALDelay */
	0x44, /* ; 3 StPALDelay */
	0x44, /* ; 4 ExtHiTVDelay */
	0x44, /* ; 5 StHiTVDelay */
	0x44, /* ; 6 ExtYPbPrDelay(525i) */
	0x44, /* ; 7 StYPbPrDealy(525i) */
	0x44, /* ; 8 ExtYPbPrDelay(525p) */
	0x44, /* ; 9 StYPbPrDealy(525p) */
	0x44, /* ; A ExtYPbPrDelay(750p) */
	0x44  /* ; B StYPbPrDealy(750p) */
};
#endif

static unsigned char 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 unsigned char 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 unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
	0x04, /* ; 0 Adaptive */
	0x00, /* ; 1 new anti-flicker ? */

	0x04, /* ; 0 Adaptive */
	0x08, /* ; 1 new anti-flicker ? */

	0x04, /* ; 0 ? */
	0x00  /* ; 1 new anti-flicker ? */
};


static unsigned char 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 unsigned long 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char 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 unsigned char XGI_NTSC1024AdjTime[] = {
	0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
	0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
	0x58, 0xe4, 0x73, 0xd0, 0x13
};

static struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 struct 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 */
		 }
	}
};