1 #define Tap4 2 3 //yilin modify for xgi20 4 static struct XGI_MCLKDataStruct XGI340New_MCLKData[] = 5 { 6 { 0x16,0x01,0x01,166}, 7 { 0x19,0x02,0x01,124}, 8 { 0x7C,0x08,0x01,200}, 9 { 0x79,0x06,0x01,250}, 10 { 0x29,0x01,0x81,301}, 11 { 0x5c,0x23,0x01,166}, 12 { 0x5c,0x23,0x01,166}, 13 { 0x5c,0x23,0x01,166} 14 }; 15 16 static struct XGI_MCLKDataStruct XGI27New_MCLKData[] = 17 { 18 { 0x5c,0x23,0x01,166}, 19 { 0x19,0x02,0x01,124}, 20 { 0x7C,0x08,0x80,200}, 21 { 0x79,0x06,0x80,250}, 22 { 0x29,0x01,0x81,300}, 23 { 0x5c,0x23,0x01,166}, 24 { 0x5c,0x23,0x01,166}, 25 { 0x5c,0x23,0x01,166} 26 }; 27 28 //yilin modify for xgi20 29 static struct XGI_ECLKDataStruct XGI340_ECLKData[] = 30 { 31 { 0x5c,0x23,0x01,166}, 32 { 0x55,0x84,0x01,123}, 33 { 0x7C,0x08,0x01,200}, 34 { 0x79,0x06,0x01,250}, 35 { 0x29,0x01,0x81,301}, 36 { 0x5c,0x23,0x01,166}, 37 { 0x5c,0x23,0x01,166}, 38 { 0x5c,0x23,0x01,166} 39 }; 40 41 42 43 static unsigned char XGI340_SR13[4][8] = { 44 {0x35,0x45,0xb1,0x00,0x00,0x00,0x00,0x00},/* SR13 */ 45 {0x41,0x51,0x5c,0x00,0x00,0x00,0x00,0x00},/* SR14 */ 46 {0x31,0x42,0x42,0x00,0x00,0x00,0x00,0x00},/* SR18 */ 47 {0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00}/* SR1B */ 48 }; 49 50 static unsigned char XGI340_cr41[24][8] = 51 {{0x20,0x50,0x60,0x00,0x00,0x00,0x00,0x00},/* 0 CR41 */ 52 {0xc4,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 1 CR8A */ 53 {0xc4,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 2 CR8B */ 54 {0xb5,0xa4,0xa4,0x00,0x00,0x00,0x00,0x00}, 55 {0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00}, 56 {0x90,0x90,0x24,0x00,0x00,0x00,0x00,0x00},/* 5 CR68 */ 57 {0x77,0x77,0x44,0x00,0x00,0x00,0x00,0x00},/* 6 CR69 */ 58 {0x77,0x77,0x44,0x00,0x00,0x00,0x00,0x00},/* 7 CR6A */ 59 {0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00},/* 8 CR6D */ 60 {0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00},/* 9 CR80 */ 61 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/* 10 CR81 */ 62 {0x88,0xa8,0x48,0x00,0x00,0x00,0x00,0x00},/* 11 CR82 */ 63 {0x44,0x44,0x77,0x00,0x00,0x00,0x00,0x00},/* 12 CR85 */ 64 {0x48,0x48,0x88,0x00,0x00,0x00,0x00,0x00},/* 13 CR86 */ 65 {0x54,0x54,0x44,0x00,0x00,0x00,0x00,0x00},/* 14 CR90 */ 66 {0x54,0x54,0x44,0x00,0x00,0x00,0x00,0x00},/* 15 CR91 */ 67 {0x0a,0x0a,0x07,0x00,0x00,0x00,0x00,0x00},/* 16 CR92 */ 68 {0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00},/* 17 CR93 */ 69 {0x10,0x10,0x0A,0x00,0x00,0x00,0x00,0x00},/* 18 CR94 */ 70 {0x11,0x11,0x0a,0x00,0x00,0x00,0x00,0x00},/* 19 CR95 */ 71 {0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00},/* 20 CR96 */ 72 {0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00},/* 21 CRC3 */ 73 {0x05,0x00,0x02,0x00,0x00,0x00,0x00,0x00},/* 22 CRC4 */ 74 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}/* 23 CRC5 */ 75 }; 76 77 78 static unsigned char XGI27_cr41[24][8] = 79 { 80 {0x20,0x40,0x60,0x00,0x00,0x00,0x00,0x00},/* 0 CR41 */ 81 {0xC4,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 1 CR8A */ 82 {0xC4,0x40,0x84,0x00,0x00,0x00,0x00,0x00},/* 2 CR8B */ 83 {0xB5,0x13,0xa4,0x00,0x00,0x00,0x00,0x00},/* 3 CR40[7],CR99[2:0],CR45[3:0]*/ 84 {0xf0,0xf5,0xf0,0x00,0x00,0x00,0x00,0x00},/* 4 CR59 */ 85 {0x90,0x90,0x24,0x00,0x00,0x00,0x00,0x00},/* 5 CR68 */ 86 {0x77,0x67,0x44,0x00,0x00,0x00,0x00,0x00},/* 6 CR69 */ 87 {0x77,0x77,0x44,0x00,0x00,0x00,0x00,0x00},/* 7 CR6A */ 88 {0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00},/* 8 CR6D */ 89 {0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00},/* 9 CR80 */ 90 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/* 10 CR81 */ 91 {0x88,0xcc,0x48,0x00,0x00,0x00,0x00,0x00},/* 11 CR82 */ 92 {0x44,0x88,0x77,0x00,0x00,0x00,0x00,0x00},/* 12 CR85 */ 93 {0x48,0x88,0x88,0x00,0x00,0x00,0x00,0x00},/* 13 CR86 */ 94 {0x54,0x32,0x44,0x00,0x00,0x00,0x00,0x00},/* 14 CR90 */ 95 {0x54,0x33,0x44,0x00,0x00,0x00,0x00,0x00},/* 15 CR91 */ 96 {0x0a,0x07,0x07,0x00,0x00,0x00,0x00,0x00},/* 16 CR92 */ 97 {0x44,0x63,0x44,0x00,0x00,0x00,0x00,0x00},/* 17 CR93 */ 98 {0x10,0x14,0x0A,0x00,0x00,0x00,0x00,0x00},/* 18 CR94 */ 99 {0x11,0x0B,0x0C,0x00,0x00,0x00,0x00,0x00},/* 19 CR95 */ 100 {0x05,0x22,0x05,0x00,0x00,0x00,0x00,0x00},/* 20 CR96 */ 101 {0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00},/* 21 CRC3 */ 102 {0x05,0x00,0x02,0x00,0x00,0x00,0x00,0x00},/* 22 CRC4 */ 103 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}/* 23 CRC5 */ 104 }; 105 106 static unsigned char XGI340_CR6B[8][4] = { 107 {0xaa,0xaa,0xaa,0xaa}, 108 {0xaa,0xaa,0xaa,0xaa}, 109 {0xaa,0xaa,0xaa,0xaa}, 110 {0x00,0x00,0x00,0x00}, 111 {0x00,0x00,0x00,0x00}, 112 {0x00,0x00,0x00,0x00}, 113 {0x00,0x00,0x00,0x00}, 114 {0x00,0x00,0x00,0x00} 115 }; 116 117 static unsigned char XGI340_CR6E[8][4] = { 118 {0x00,0x00,0x00,0x00}, 119 {0x00,0x00,0x00,0x00}, 120 {0x00,0x00,0x00,0x00}, 121 {0x00,0x00,0x00,0x00}, 122 {0x00,0x00,0x00,0x00}, 123 {0x00,0x00,0x00,0x00}, 124 {0x00,0x00,0x00,0x00}, 125 {0x00,0x00,0x00,0x00} 126 }; 127 128 static unsigned char XGI340_CR6F[8][32] = { 129 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 130 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 131 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 132 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 133 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 134 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 135 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 136 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} 137 }; 138 139 static unsigned char XGI340_CR89[8][2] = { 140 {0x00,0x00}, 141 {0x00,0x00}, 142 {0x00,0x00}, 143 {0x00,0x00}, 144 {0x00,0x00}, 145 {0x00,0x00}, 146 {0x00,0x00}, 147 {0x00,0x00} 148 }; 149 /* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */ 150 static unsigned char XGI340_AGPReg[12] = { 151 0x28, 0x23, 0x00, 0x20, 0x00, 0x20, 0x00, 152 0x05, 0xd0, 0x10, 0x10, 0x00}; 153 154 static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83}; 155 156 #if 0 157 static unsigned char XGI330_SR15_1[8][8] = { 158 {0x0,0x0,0x00,0x00,0x20,0x20,0x00,0x00}, 159 {0x5,0x15,0x15,0x15,0x15,0x15,0x00,0x00}, 160 {0xba,0xba,0xba,0xba,0xBA,0xBA,0x00,0x00}, 161 {0x55,0x57,0x57,0xAB,0xAB,0xAB,0x00,0x00}, 162 {0x60,0x34,0x34,0x34,0x34,0x34,0x00,0x00}, 163 {0x0,0x80,0x80,0x80,0x83,0x83,0x00,0x00}, 164 {0x50,0x50,0x50,0x3C,0x3C,0x3C,0x00,0x00}, 165 {0x0,0xa5,0xfb,0xf6,0xF6,0xF6,0x00,0x00} 166 }; 167 168 static unsigned char XGI330_cr40_1[15][8] = { 169 {0x66,0x40,0x40,0x28,0x24,0x24,0x00,0x00}, 170 {0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 171 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 172 {0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00}, 173 {0x00,0xf0,0xf0,0xf0,0xF0,0xF0,0x00,0x00}, 174 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 175 {0x10,0x10,0x10,0x10,0x20,0x20,0x00,0x00}, 176 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 177 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 178 {0x88,0x88,0x88,0xAA,0xAC,0xAC,0x00,0x00}, 179 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 180 {0x00,0x00,0x00,0x00,0x77,0x77,0x00,0x00}, 181 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 182 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 183 {0x00,0xA2,0x00,0x00,0xA2,0xA2,0x00,0x00}, 184 }; 185 #endif 186 187 static unsigned char XGI330_sr25[] = {0x00, 0x0}; 188 static unsigned char XGI330_sr31 = 0xc0; 189 static unsigned char XGI330_sr32 = 0x11; 190 static unsigned char XGI330_SR33 = 0x00; 191 static unsigned char XG40_CRCF = 0x13; 192 static unsigned char XG40_DRAMTypeDefinition = 0xFF ; 193 194 static struct XGI_StStruct XGI330_SModeIDTable[] = 195 { 196 {0x01,0x9208,0x01,0x00,0x10,0x00,0x00,0x01,0x00}, 197 {0x01,0x1210,0x14,0x01,0x00,0x01,0x00,0x01,0x00}, 198 {0x01,0x1010,0x17,0x02,0x11,0x00,0x00,0x01,0x01}, 199 {0x03,0x8208,0x03,0x00,0x14,0x00,0x00,0x01,0x02}, 200 {0x03,0x0210,0x16,0x01,0x04,0x01,0x00,0x01,0x02}, 201 {0x03,0x0010,0x18,0x02,0x15,0x00,0x00,0x01,0x03}, 202 {0x05,0x9209,0x05,0x00,0x10,0x00,0x00,0x00,0x04}, 203 {0x06,0x8209,0x06,0x00,0x14,0x00,0x00,0x00,0x05}, 204 {0x07,0x0000,0x07,0x03,0x05,0x03,0x00,0x01,0x03}, 205 {0x07,0x0000,0x19,0x02,0x15,0x02,0x00,0x01,0x03}, 206 {0x0d,0x920a,0x0d,0x00,0x10,0x00,0x00,0x00,0x04}, 207 {0x0e,0x820a,0x0e,0x00,0x14,0x00,0x00,0x00,0x05}, 208 {0x0f,0x0202,0x11,0x01,0x04,0x01,0x00,0x00,0x05}, 209 {0x10,0x0212,0x12,0x01,0x04,0x01,0x00,0x00,0x05}, 210 {0x11,0x0212,0x1a,0x04,0x24,0x04,0x00,0x00,0x05}, 211 {0x12,0x0212,0x1b,0x04,0x24,0x04,0x00,0x00,0x05}, 212 {0x13,0x021b,0x1c,0x00,0x14,0x00,0x00,0x00,0x04}, 213 {0x12,0x0010,0x18,0x02,0x24,0x02,0x00,0x00,0x05},/* St_CRT2CRTC2 not sure */ 214 {0x12,0x0210,0x18,0x01,0x24,0x01,0x00,0x00,0x05},/* St_CRT2CRTC2 not sure */ 215 {0xff,0x0000,0x00,0x00,0x00,0x00,0x00,0x00,0x00} 216 }; 217 218 219 static struct XGI_ExtStruct XGI330_EModeIDTable[] = 220 { 221 {0x6a,0x2212,0x0407,0x3a81,0x0102,0x08,0x07,0x00,0x00,0x07,0x0e}, 222 {0x2e,0x0a1b,0x0306,0x3a57,0x0101,0x08,0x06,0x00,0x00,0x05,0x06}, 223 {0x2f,0x0a1b,0x0305,0x3a50,0x0100,0x08,0x05,0x00,0x00,0x05,0x05}, 224 {0x30,0x2a1b,0x0407,0x3a81,0x0103,0x08,0x07,0x00,0x00,0x07,0x0e}, 225 {0x31,0x0a1b,0x030d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d}, 226 {0x32,0x0a1b,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e}, 227 {0x33,0x0a1d,0x0a0d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d}, 228 {0x34,0x2a1d,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e}, 229 {0x35,0x0a1f,0x0a0d,0x3b85,0x0000,0x08,0x0d,0x00,0x00,0x06,0x3d}, 230 {0x36,0x2a1f,0x0a0e,0x3b8c,0x0000,0x08,0x0e,0x00,0x00,0x06,0x3e}, 231 {0x37,0x0212,0x0508,0x3aab,0x0104,0x08,0x08,0x00,0x00,0x00,0x16}, 232 {0x38,0x0a1b,0x0508,0x3aab,0x0105,0x08,0x08,0x00,0x00,0x00,0x16}, 233 {0x3a,0x0e3b,0x0609,0x3adc,0x0107,0x08,0x09,0x00,0x00,0x00,0x1e}, 234 {0x3c,0x0e3b,0x070a,0x3af2,0x0130,0x08,0x0a,0x00,0x00,0x00,0x22}, /* mode 1600x1200 add CRT2MODE [2003/10/07] */ 235 {0x3d,0x0e7d,0x070a,0x3af2,0x0131,0x08,0x0a,0x00,0x00,0x00,0x22}, /* mode 1600x1200 add CRT2MODE */ 236 {0x40,0x9a1c,0x0000,0x3a34,0x010d,0x08,0x00,0x00,0x00,0x04,0x00}, 237 {0x41,0x9a1d,0x0000,0x3a34,0x010e,0x08,0x00,0x00,0x00,0x04,0x00}, /* ModeIdIndex = 0x10 */ 238 {0x43,0x0a1c,0x0306,0x3a57,0x0110,0x08,0x06,0x00,0x00,0x05,0x06}, 239 {0x44,0x0a1d,0x0306,0x3a57,0x0111,0x08,0x06,0x00,0x00,0x05,0x06}, 240 {0x46,0x2a1c,0x0407,0x3a81,0x0113,0x08,0x07,0x00,0x00,0x07,0x0e}, 241 {0x47,0x2a1d,0x0407,0x3a81,0x0114,0x08,0x07,0x00,0x00,0x07,0x0e}, 242 {0x49,0x0a3c,0x0508,0x3aab,0x0116,0x08,0x08,0x00,0x00,0x00,0x16}, 243 {0x4a,0x0a3d,0x0508,0x3aab,0x0117,0x08,0x08,0x00,0x00,0x00,0x16}, 244 {0x4c,0x0e7c,0x0609,0x3adc,0x0119,0x08,0x09,0x00,0x00,0x00,0x1e}, 245 {0x4d,0x0e7d,0x0609,0x3adc,0x011a,0x08,0x09,0x00,0x00,0x00,0x1e}, 246 {0x50,0x9a1b,0x0001,0x3a3b,0x0132,0x08,0x01,0x00,0x00,0x04,0x02}, 247 {0x51,0xba1b,0x0103,0x3a42,0x0133,0x08,0x03,0x00,0x00,0x07,0x03}, 248 {0x52,0x9a1b,0x0204,0x3a49,0x0134,0x08,0x04,0x00,0x00,0x00,0x04}, 249 {0x56,0x9a1d,0x0001,0x3a3b,0x0135,0x08,0x01,0x00,0x00,0x04,0x02}, 250 {0x57,0xba1d,0x0103,0x3a42,0x0136,0x08,0x03,0x00,0x00,0x07,0x03}, 251 {0x58,0x9a1d,0x0204,0x3a49,0x0137,0x08,0x04,0x00,0x00,0x00,0x04}, 252 {0x59,0x9a1b,0x0000,0x3a34,0x0138,0x08,0x00,0x00,0x00,0x04,0x00}, 253 {0x5A,0x021b,0x0014,0x3b83,0x0138,0x08,0x01,0x00,0x00,0x04,0x3f}, /* ModeIdIndex = 0x20 */ 254 {0x5B,0x0a1d,0x0014,0x3b83,0x0135,0x08,0x01,0x00,0x00,0x04,0x3f}, 255 {0x5d,0x0a1d,0x0305,0x3a50,0x0139,0x08,0x05,0x00,0x00,0x07,0x05}, 256 {0x62,0x0a3f,0x0306,0x3a57,0x013a,0x08,0x06,0x00,0x00,0x05,0x06}, 257 {0x63,0x2a3f,0x0407,0x3a81,0x013b,0x08,0x07,0x00,0x00,0x07,0x0e}, 258 {0x64,0x0a7f,0x0508,0x3aab,0x013c,0x08,0x08,0x00,0x00,0x00,0x16}, 259 {0x65,0x0eff,0x0609,0x3adc,0x013d,0x08,0x09,0x00,0x00,0x00,0x1e}, 260 {0x66,0x0eff,0x070a,0x3af2,0x013e,0x08,0x0a,0x00,0x00,0x00,0x22}, /* mode 1600x1200 add CRT2MODE */ 261 {0x68,0x067b,0x080b,0x3b17,0x013f,0x08,0x0b,0x00,0x00,0x00,0x29}, 262 {0x69,0x06fd,0x080b,0x3b17,0x0140,0x08,0x0b,0x00,0x00,0x00,0x29}, 263 {0x6b,0x07ff,0x080b,0x3b17,0x0141,0x10,0x0b,0x00,0x00,0x00,0x29}, 264 {0x6c,0x067b,0x090c,0x3b37,0x0000,0x08,0x0c,0x00,0x00,0x00,0x2f}, 265 {0x6d,0x06fd,0x090c,0x3b37,0x0000,0x10,0x0c,0x00,0x00,0x00,0x2f}, 266 {0x6e,0x07ff,0x090c,0x3b37,0x0000,0x10,0x0c,0x00,0x00,0x00,0x2f}, 267 {0x70,0x2a1b,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34}, 268 {0x71,0x0a1b,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37}, 269 {0x74,0x0a1d,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37}, /* ModeIdIndex = 0x30 */ 270 {0x75,0x0a3d,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a}, 271 {0x76,0x2a1f,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34}, 272 {0x77,0x0a1f,0x0511,0x3b63,0x0000,0x08,0x11,0x00,0x00,0x00,0x37}, 273 {0x78,0x0a3f,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a}, 274 {0x79,0x0a3b,0x0612,0x3b74,0x0000,0x08,0x12,0x00,0x00,0x00,0x3a}, 275 {0x7a,0x2a1d,0x0410,0x3b52,0x0000,0x08,0x10,0x00,0x00,0x07,0x34}, 276 {0x7b,0x0e3b,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d}, 277 {0x7c,0x0e7d,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d}, 278 {0x7d,0x0eff,0x060f,0x3ad0,0x0000,0x08,0x0f,0x00,0x00,0x00,0x1d}, 279 {0x20,0x0e3b,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43}, 280 {0x21,0x0e7d,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43}, 281 {0x22,0x0eff,0x0D16,0x49e0,0x0000,0x08,0x16,0x00,0x00,0x00,0x43}, 282 {0x23,0x0e3b,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41}, 283 {0x24,0x0e7d,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41}, 284 {0x25,0x0eff,0x0614,0x49d5,0x0000,0x08,0x14,0x00,0x00,0x00,0x41}, 285 {0x26,0x063b,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42}, /* ModeIdIndex = 0x40 */ 286 {0x27,0x067d,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42}, 287 {0x28,0x06ff,0x0c15,0x49dc,0x0000,0x08,0x15,0x00,0x00,0x00,0x42}, 288 {0xff,0x0000,0x0000,0x0000,0x0000,0x00,0x00,0x00,0x00,0x00,0x00} 289 }; 290 291 static struct XGI_StandTableStruct XGI330_StandTable[] = 292 { 293 /* MD_0_200 */ 294 { 295 0x28,0x18,0x08,0x0800, 296 {0x09,0x03,0x00,0x02}, 297 0x63, 298 {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f, 299 0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00, 300 0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3, 301 0xff}, 302 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 303 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 304 0x08,0x00,0x0f,0x00}, 305 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 306 0xff} 307 }, 308 /* MD_1_200 */ 309 { 310 0x28,0x18,0x08,0x0800, 311 {0x09,0x03,0x00,0x02}, 312 0x63, 313 {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f, 314 0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00, 315 0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3, 316 0xff}, 317 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 318 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 319 0x08,0x00,0x0f,0x00}, 320 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 321 0xff} 322 }, 323 /* MD_2_200 */ 324 { 325 0x50,0x18,0x08,0x1000, 326 {0x01,0x03,0x00,0x02}, 327 0x63, 328 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 329 0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00, 330 0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3, 331 0xff}, 332 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 333 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 334 0x08,0x00,0x0f,0x00}, 335 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 336 0xff} 337 }, 338 /* MD_3_200 */ 339 { 340 0x50,0x18,0x08,0x1000, 341 {0x01,0x03,0x00,0x02}, 342 0x63, 343 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 344 0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00, 345 0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3, 346 0xff}, 347 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 348 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 349 0x08,0x00,0x0f,0x00}, 350 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 351 0xff} 352 }, 353 /* MD_4 */ 354 { 355 0x28,0x18,0x08,0x4000, 356 {0x09,0x03,0x00,0x02}, 357 0x63, 358 {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f, 359 0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00, 360 0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2, 361 0xff}, 362 {0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07, 363 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 364 0x01,0x00,0x03,0x00}, 365 {0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00, 366 0xff} 367 }, 368 /* MD_5 */ 369 { 370 0x28,0x18,0x08,0x4000, 371 {0x09,0x03,0x00,0x02}, 372 0x63, 373 {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f, 374 0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00, 375 0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2, 376 0xff}, 377 {0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07, 378 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 379 0x01,0x00,0x03,0x00}, 380 {0x00,0x00,0x00,0x00,0x00,0x30,0x0f,0x00, 381 0xff} 382 }, 383 /* MD_6 */ 384 { 385 0x50,0x18,0x08,0x4000, 386 {0x01,0x01,0x00,0x06}, 387 0x63, 388 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 389 0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00, 390 0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xc2, 391 0xff}, 392 {0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17, 393 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, 394 0x01,0x00,0x01,0x00}, 395 {0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00, 396 0xff} 397 }, 398 /* MD_7 */ 399 { 400 0x50,0x18,0x0e,0x1000, 401 {0x00,0x03,0x00,0x03}, 402 0xa6, 403 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 404 0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00, 405 0x83,0x85,0x5d,0x28,0x0d,0x63,0xba,0xa3, 406 0xff}, 407 {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08, 408 0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 409 0x0e,0x00,0x0f,0x08}, 410 {0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00, 411 0xff} 412 }, 413 /* MDA_DAC */ 414 { 415 0x00,0x00,0x00,0x0000, 416 {0x00,0x00,0x00,0x15}, 417 0x15, 418 {0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, 419 0x15,0x15,0x15,0x15,0x15,0x15,0x3f,0x3f, 420 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00,0x00, 421 0x00}, 422 {0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x15, 423 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, 424 0x15,0x15,0x15,0x15}, 425 {0x15,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, 426 0x3f} 427 }, 428 /* CGA_DAC */ 429 { 430 0x00,0x10,0x04,0x0114, 431 {0x11,0x09,0x15,0x00}, 432 0x10, 433 {0x04,0x14,0x01,0x11,0x09,0x15,0x2a,0x3a, 434 0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x2a,0x3a, 435 0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x00,0x10, 436 0x04}, 437 {0x14,0x01,0x11,0x09,0x15,0x00,0x10,0x04, 438 0x14,0x01,0x11,0x09,0x15,0x2a,0x3a,0x2e, 439 0x3e,0x2b,0x3b,0x2f}, 440 {0x3f,0x2a,0x3a,0x2e,0x3e,0x2b,0x3b,0x2f, 441 0x3f} 442 }, 443 /* EGA_DAC */ 444 { 445 0x00,0x10,0x04,0x0114, 446 {0x11,0x05,0x15,0x20}, 447 0x30, 448 {0x24,0x34,0x21,0x31,0x25,0x35,0x08,0x18, 449 0x0c,0x1c,0x09,0x19,0x0d,0x1d,0x28,0x38, 450 0x2c,0x3c,0x29,0x39,0x2d,0x3d,0x02,0x12, 451 0x06}, 452 {0x16,0x03,0x13,0x07,0x17,0x22,0x32,0x26, 453 0x36,0x23,0x33,0x27,0x37,0x0a,0x1a,0x0e, 454 0x1e,0x0b,0x1b,0x0f}, 455 {0x1f,0x2a,0x3a,0x2e,0x3e,0x2b,0x3b,0x2f, 456 0x3f} 457 }, 458 /* VGA_DAC */ 459 { 460 0x00,0x10,0x04,0x0114, 461 {0x11,0x09,0x15,0x2a}, 462 0x3a, 463 {0x2e,0x3e,0x2b,0x3b,0x2f,0x3f,0x00,0x05, 464 0x08,0x0b,0x0e,0x11,0x14,0x18,0x1c,0x20, 465 0x24,0x28,0x2d,0x32,0x38,0x3f,0x00,0x10, 466 0x1f}, 467 {0x2f,0x3f,0x1f,0x27,0x2f,0x37,0x3f,0x2d, 468 0x31,0x36,0x3a,0x3f,0x00,0x07,0x0e,0x15, 469 0x1c,0x0e,0x11,0x15}, 470 {0x18,0x1c,0x14,0x16,0x18,0x1a,0x1c,0x00, 471 0x04} 472 }, 473 { 474 0x08,0x0c,0x10,0x0a08, 475 {0x0c,0x0e,0x10,0x0b}, 476 0x0c, 477 {0x0d,0x0f,0x10,0x10,0x01,0x08,0x00,0x00, 478 0x00,0x00,0x01,0x00,0x02,0x02,0x01,0x00, 479 0x04,0x04,0x01,0x00,0x05,0x02,0x05,0x00, 480 0x06}, 481 {0x01,0x06,0x05,0x06,0x00,0x08,0x01,0x08, 482 0x00,0x07,0x02,0x07,0x06,0x07,0x00,0x00, 483 0x00,0x00,0x00,0x00}, 484 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 485 0x00} 486 }, 487 /* MD_D */ 488 { 489 0x28,0x18,0x08,0x2000, 490 {0x09,0x0f,0x00,0x06}, 491 0x63, 492 {0x2d,0x27,0x28,0x90,0x2c,0x80,0xbf,0x1f, 493 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, 494 0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xe3, 495 0xff}, 496 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 497 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 498 0x01,0x00,0x0f,0x00}, 499 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f, 500 0xff} 501 }, 502 /* MD_E */ 503 { 504 0x50,0x18,0x08,0x4000, 505 {0x01,0x0f,0x00,0x06}, 506 0x63, 507 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 508 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, 509 0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xe3, 510 0xff}, 511 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 512 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 513 0x01,0x00,0x0f,0x00}, 514 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f, 515 0xff} 516 }, 517 /* ExtVGATable */ 518 { 519 0x00,0x00,0x00,0x0000, 520 {0x01,0x0f,0x00,0x0e}, 521 0x23, 522 {0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e, 523 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, 524 0xea,0x8c,0xdf,0x28,0x40,0xe7,0x04,0xa3, 525 0xff}, 526 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 527 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 528 0x01,0x00,0x00,0x00}, 529 {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f, 530 0xff} 531 }, 532 /* ROM_SAVEPTR */ 533 { 534 0x9f,0x3b,0x00,0x00c0, 535 {0x00,0x00,0x00,0x00}, 536 0x00, 537 {0x00,0x00,0x00,0x00,0x00,0x00,0xbb,0x3f, 538 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, 539 0x00,0x00,0x1a,0x00,0xac,0x3e,0x00,0xc0, 540 0x00}, 541 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 542 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 543 0x00,0x00,0x00,0x00}, 544 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 545 0x00} 546 }, 547 /* MD_F */ 548 { 549 0x50,0x18,0x0e,0x8000, 550 {0x01,0x0f,0x00,0x06}, 551 0xa2, 552 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 553 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, 554 0x82,0x84,0x5d,0x28,0x0f,0x63,0xba,0xe3, 555 0xff}, 556 {0x00,0x08,0x00,0x00,0x18,0x18,0x00,0x00, 557 0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00, 558 0x0b,0x00,0x05,0x00}, 559 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05, 560 0xff} 561 }, 562 /* MD_10 */ 563 { 564 0x50,0x18,0x0e,0x8000, 565 {0x01,0x0f,0x00,0x06}, 566 0xa3, 567 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 568 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, 569 0x82,0x84,0x5d,0x28,0x0f,0x63,0xba,0xe3, 570 0xff}, 571 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07, 572 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 573 0x01,0x00,0x0f,0x00}, 574 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f, 575 0xff} 576 }, 577 /* MD_0_350 */ 578 { 579 0x28,0x18,0x0e,0x0800, 580 {0x09,0x03,0x00,0x02}, 581 0xa3, 582 {0x2d,0x27,0x28,0x90,0x2b,0xb1,0xbf,0x1f, 583 0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00, 584 0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3, 585 0xff}, 586 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07, 587 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 588 0x08,0x00,0x0f,0x00}, 589 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 590 0xff} 591 }, 592 /* MD_1_350 */ 593 { 594 0x28,0x18,0x0e,0x0800, 595 {0x09,0x03,0x00,0x02}, 596 0xa3, 597 {0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f, 598 0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00, 599 0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3, 600 0xff}, 601 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07, 602 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 603 0x08,0x00,0x0f,0x00}, 604 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 605 0xff} 606 }, 607 /* MD_2_350 */ 608 { 609 0x50,0x18,0x0e,0x1000, 610 {0x01,0x03,0x00,0x02}, 611 0xa3, 612 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 613 0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00, 614 0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3, 615 0xff}, 616 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07, 617 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 618 0x08,0x00,0x0f,0x00}, 619 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 620 0xff} 621 }, 622 /* MD_3_350 */ 623 { 624 0x50,0x18,0x0e,0x1000, 625 {0x01,0x03,0x00,0x02}, 626 0xa3, 627 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 628 0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00, 629 0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3, 630 0xff}, 631 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07, 632 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 633 0x08,0x00,0x0f,0x00}, 634 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 635 0xff} 636 }, 637 /* MD_0_1_400 */ 638 { 639 0x28,0x18,0x10,0x0800, 640 {0x08,0x03,0x00,0x02}, 641 0x67, 642 {0x2d,0x27,0x28,0x90,0x2b,0xb1,0xbf,0x1f, 643 0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00, 644 0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3, 645 0xff}, 646 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07, 647 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 648 0x0c,0x00,0x0f,0x08}, 649 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 650 0xff} 651 }, 652 /* MD_2_3_400 */ 653 { 654 0x50,0x18,0x10,0x1000, 655 {0x00,0x03,0x00,0x02}, 656 0x67, 657 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 658 0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00, 659 0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3, 660 0xff}, 661 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07, 662 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 663 0x0c,0x00,0x0f,0x08}, 664 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00, 665 0xff} 666 }, 667 /* MD_7_400 */ 668 { 669 0x50,0x18,0x10,0x1000, 670 {0x00,0x03,0x00,0x02}, 671 0x66, 672 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 673 0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00, 674 0x9c,0x8e,0x8f,0x28,0x0f,0x96,0xb9,0xa3, 675 0xff}, 676 {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08, 677 0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 678 0x0e,0x00,0x0f,0x08}, 679 {0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00, 680 0xff} 681 }, 682 /* MD_11 */ 683 { 684 0x50,0x1d,0x10,0xa000, 685 {0x01,0x0f,0x00,0x06}, 686 0xe3, 687 {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e, 688 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, 689 0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xc3, 690 0xff}, 691 {0x00,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, 692 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, 693 0x01,0x00,0x0f,0x00}, 694 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x01, 695 0xff} 696 }, 697 /* ExtEGATable */ 698 { 699 0x50,0x1d,0x10,0xa000, 700 {0x01,0x0f,0x00,0x06}, 701 0xe3, 702 {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e, 703 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, 704 0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xe3, 705 0xff}, 706 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07, 707 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 708 0x01,0x00,0x0f,0x00}, 709 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f, 710 0xff} 711 }, 712 /* MD_13 */ 713 { 714 0x28,0x18,0x08,0x2000, 715 {0x01,0x0f,0x00,0x0e}, 716 0x63, 717 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f, 718 0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00, 719 0x9c,0x8e,0x8f,0x28,0x40,0x96,0xb9,0xa3, 720 0xff}, 721 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 722 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 723 0x41,0x00,0x0f,0x00}, 724 {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f, 725 0xff} 726 } 727 }; 728 729 static struct XGI_TimingHStruct XGI_TimingH[] = 730 {{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}}; 731 732 static struct XGI_TimingVStruct XGI_TimingV[] = 733 {{{0x00,0x00,0x00,0x00,0x00,0x00,0x00}}}; 734 735 static struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] = 736 { 737 {0x01,0x27,0x91,0x8f,0xc0}, /* 00 */ 738 {0x03,0x4f,0x83,0x8f,0xc0}, /* 01 */ 739 {0x05,0x27,0x91,0x8f,0xc0}, /* 02 */ 740 {0x06,0x4f,0x83,0x8f,0xc0}, /* 03 */ 741 {0x07,0x4f,0x83,0x8f,0xc0}, /* 04 */ 742 {0x0d,0x27,0x91,0x8f,0xc0}, /* 05 */ 743 {0x0e,0x4f,0x83,0x8f,0xc0}, /* 06 */ 744 {0x0f,0x4f,0x83,0x5d,0xc0}, /* 07 */ 745 {0x10,0x4f,0x83,0x5d,0xc0}, /* 08 */ 746 {0x11,0x4f,0x83,0xdf,0x0c}, /* 09 */ 747 {0x12,0x4f,0x83,0xdf,0x0c}, /* 10 */ 748 {0x13,0x4f,0x83,0x8f,0xc0}, /* 11 */ 749 {0x2e,0x4f,0x83,0xdf,0x0c}, /* 12 */ 750 {0x2e,0x4f,0x87,0xdf,0xc0}, /* 13 */ 751 {0x2f,0x4f,0x83,0x8f,0xc0}, /* 14 */ 752 {0x50,0x27,0x91,0xdf,0x0c}, /* 15 */ 753 {0x59,0x27,0x91,0x8f,0xc0} /* 16 */ 754 }; 755 756 static struct XGI_CRT1TableStruct XGI_CRT1Table[] = 757 { 758 {{0x2d,0x28,0x90,0x2c,0x90,0x00,0x04,0x00, 759 0xbf,0x1f,0x9c,0x8e,0x96,0xb9,0x30}}, /* 0x0 */ 760 {{0x2d,0x28,0x90,0x2c,0x90,0x00,0x04,0x00, 761 0x0b,0x3e,0xe9,0x8b,0xe7,0x04,0x00}}, /* 0x1 */ 762 {{0x3D,0x31,0x81,0x37,0x1F,0x00,0x05,0x00, 763 0x72,0xF0,0x58,0x8C,0x57,0x73,0xA0}}, /* 0x2 */ 764 {{0x4F,0x3F,0x93,0x45,0x0D,0x00,0x01,0x00, 765 0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x3 */ 766 {{0x5F,0x50,0x82,0x55,0x81,0x00,0x05,0x00, 767 0xBF,0x1F,0x9C,0x8E,0x96,0xB9,0x30}}, /* 0x4 */ 768 {{0x5F,0x50,0x82,0x55,0x81,0x00,0x05,0x00, 769 0x0B,0x3E,0xE9,0x8B,0xE7,0x04,0x00}}, /* 0x5 */ 770 {{0x63,0x50,0x86,0x56,0x9B,0x00,0x01,0x00, 771 0x06,0x3E,0xE8,0x8B,0xE7,0xFF,0x10}}, /* 0x6 */ 772 {{0x64,0x4F,0x88,0x55,0x9D,0x00,0x01,0x00, 773 0xF2,0x1F,0xE0,0x83,0xDF,0xF3,0x10}}, /* 0x7 */ 774 {{0x63,0x4F,0x87,0x5A,0x81,0x00,0x05,0x00, 775 0xFB,0x1F,0xE0,0x83,0xDF,0xFC,0x10}}, /* 0x8 */ 776 {{0x65,0x4F,0x89,0x58,0x80,0x00,0x05,0x60, 777 0xFB,0x1F,0xE0,0x83,0xDF,0xFC,0x80}}, /* 0x9 */ 778 {{0x65,0x4F,0x89,0x58,0x80,0x00,0x05,0x60, 779 0x01,0x3E,0xE0,0x83,0xDF,0x02,0x80}}, /* 0xa */ 780 {{0x67,0x4F,0x8B,0x58,0x81,0x00,0x05,0x60, 781 0x0D,0x3E,0xE0,0x83,0xDF,0x0E,0x90}}, /* 0xb */ 782 {{0x65,0x4F,0x89,0x57,0x9F,0x00,0x01,0x00, 783 0xFB,0x1F,0xE6,0x8A,0xDF,0xFC,0x10}}, /* 0xc */ 784 {{0x7B,0x63,0x9F,0x6A,0x93,0x00,0x05,0x00, /* ; 0D (800x600,56Hz) */ 785 0x6F,0xF0,0x58,0x8A,0x57,0x70,0xA0}}, /* ; (VCLK 36.0MHz) */ 786 {{0x7F,0x63,0x83,0x6C,0x1C,0x00,0x06,0x00, /* ; 0E (800x600,60Hz) */ 787 0x72,0xF0,0x58,0x8C,0x57,0x73,0xA0}}, /* ; (VCLK 40.0MHz) */ 788 {{0x7D,0x63,0x81,0x6E,0x1D,0x00,0x06,0x00, /* ; 0F (800x600,72Hz) */ 789 0x98,0xF0,0x7C,0x82,0x57,0x99,0x80}}, /* ; (VCLK 50.0MHz) */ 790 {{0x7F,0x63,0x83,0x69,0x13,0x00,0x06,0x00, /* ; 10 (800x600,75Hz) */ 791 0x6F,0xF0,0x58,0x8B,0x57,0x70,0xA0}}, /* ; (VCLK 49.5MHz) */ 792 {{0x7E,0x63,0x82,0x6B,0x13,0x00,0x06,0x00, /* ; 11 (800x600,85Hz) */ 793 0x75,0xF0,0x58,0x8B,0x57,0x76,0xA0}}, /* ; (VCLK 56.25MHz) */ 794 {{0x81,0x63,0x85,0x6D,0x18,0x00,0x06,0x60, /* ; 12 (800x600,100Hz) */ 795 0x7A,0xF0,0x58,0x8B,0x57,0x7B,0xA0}}, /* ; (VCLK 75.8MHz) */ 796 {{0x83,0x63,0x87,0x6E,0x19,0x00,0x06,0x60, /* ; 13 (800x600,120Hz) */ 797 0x81,0xF0,0x58,0x8B,0x57,0x82,0xA0}}, /* ; (VCLK 79.411MHz) */ 798 {{0x85,0x63,0x89,0x6F,0x1A,0x00,0x06,0x60, /* ; 14 (800x600,160Hz) */ 799 0x91,0xF0,0x58,0x8B,0x57,0x92,0xA0}}, /* ; (VCLK 105.822MHz) */ 800 {{0x99,0x7F,0x9D,0x84,0x1A,0x00,0x02,0x00, 801 0x96,0x1F,0x7F,0x83,0x7F,0x97,0x10}}, /* 0x15 */ 802 {{0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00, 803 0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x16 */ 804 {{0xA1,0x7F,0x85,0x86,0x97,0x00,0x02,0x00, 805 0x24,0xF5,0x02,0x88,0xFF,0x25,0x90}}, /* 0x17 */ 806 {{0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00, 807 0x1E,0xF5,0x00,0x83,0xFF,0x1F,0x90}}, /* 0x18 */ 808 {{0xA7,0x7F,0x8B,0x89,0x95,0x00,0x02,0x00, 809 0x26,0xF5,0x00,0x83,0xFF,0x27,0x90}}, /* 0x19 */ 810 {{0xA9,0x7F,0x8D,0x8C,0x9A,0x00,0x02,0x62, 811 0x2C,0xF5,0x00,0x83,0xFF,0x2D,0x14}}, /* 0x1a */ 812 {{0xAB,0x7F,0x8F,0x8D,0x9B,0x00,0x02,0x62, 813 0x35,0xF5,0x00,0x83,0xFF,0x36,0x14}}, /* 0x1b */ 814 {{0xCF,0x9F,0x93,0xB2,0x01,0x00,0x03,0x00, 815 0x14,0xBA,0x00,0x83,0xFF,0x15,0x00}}, /* 0x1c */ 816 {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00, 817 0x28,0x5A,0x00,0x83,0xFF,0x29,0x89}}, /* 0x1d */ 818 {{0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00, 819 0x28,0x5A,0x00,0x83,0xFF,0x29,0x89}}, /* 0x1e */ 820 {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x00, 821 0x2E,0x5A,0x00,0x83,0xFF,0x2F,0x89}}, /* 0x1f */ 822 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00, 823 0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x20 */ 824 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00, 825 0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x21 */ 826 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00, 827 0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x22 */ 828 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00, 829 0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x23 */ 830 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00, 831 0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x24 */ 832 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00, 833 0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x25 */ 834 {{0x09,0xC7,0x8D,0xD3,0x0B,0x01,0x04,0x00, 835 0xE0,0x10,0xB0,0x83,0xAF,0xE1,0x2F}}, /* 0x26 */ 836 {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00, 837 0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x27 */ 838 {{0x43,0xEF,0x87,0x06,0x00,0x41,0x05,0x62, 839 0xD4,0x1F,0xA0,0x83,0x9F,0xD5,0x9F}}, /* 0x28 */ 840 {{0x45,0xEF,0x89,0x07,0x01,0x41,0x05,0x62, 841 0xD9,0x1F,0xA0,0x83,0x9F,0xDA,0x9F}}, /* 0x29 */ 842 {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00, 843 0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2a */ 844 {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00, 845 0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2b */ 846 {{0x40,0xEF,0x84,0x03,0x1D,0x41,0x01,0x00, 847 0xDA,0x1F,0xA0,0x83,0x9F,0xDB,0x1F}}, /* 0x2c */ 848 {{0x59,0xFF,0x9D,0x17,0x13,0x41,0x05,0x44, 849 0x33,0xBA,0x00,0x83,0xFF,0x34,0x0F}}, /* 0x2d */ 850 {{0x5B,0xFF,0x9F,0x18,0x14,0x41,0x05,0x44, 851 0x38,0xBA,0x00,0x83,0xFF,0x39,0x0F}}, /* 0x2e */ 852 {{0x5B,0xFF,0x9F,0x18,0x14,0x41,0x05,0x44, 853 0x3D,0xBA,0x00,0x83,0xFF,0x3E,0x0F}}, /* 0x2f */ 854 {{0x5D,0xFF,0x81,0x19,0x95,0x41,0x05,0x44, 855 0x41,0xBA,0x00,0x84,0xFF,0x42,0x0F}}, /* 0x30 */ 856 {{0x55,0xFF,0x99,0x0D,0x0C,0x41,0x05,0x00, 857 0x3E,0xBA,0x00,0x84,0xFF,0x3F,0x0F}}, /* 0x31 */ 858 {{0x7F,0x63,0x83,0x6C,0x1C,0x00,0x06,0x00, 859 0x72,0xBA,0x27,0x8B,0xDF,0x73,0x80}}, /* 0x32 */ 860 {{0x7F,0x63,0x83,0x69,0x13,0x00,0x06,0x00, 861 0x6F,0xBA,0x26,0x89,0xDF,0x6F,0x80}}, /* 0x33 */ 862 {{0x7F,0x63,0x82,0x6B,0x13,0x00,0x06,0x00, 863 0x75,0xBA,0x29,0x8C,0xDF,0x75,0x80}}, /* 0x34 */ 864 {{0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00, 865 0x24,0xF1,0xAF,0x85,0x3F,0x25,0xB0}}, /* 0x35 */ 866 {{0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00, 867 0x1E,0xF1,0xAD,0x81,0x3F,0x1F,0xB0}}, /* 0x36 */ 868 {{0xA7,0x7F,0x88,0x89,0x15,0x00,0x02,0x00, 869 0x26,0xF1,0xB1,0x85,0x3F,0x27,0xB0}}, /* 0x37 */ 870 {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00, 871 0x28,0xC4,0x7A,0x8E,0xCF,0x29,0xA1}}, /* 0x38 */ 872 {{0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00, 873 0x28,0xD4,0x7A,0x8E,0xCF,0x29,0xA1}}, /* 0x39 */ 874 {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x00, 875 0x2E,0xD4,0x7D,0x81,0xCF,0x2F,0xA1}}, /* 0x3a */ 876 {{0xDC,0x9F,0x00,0xAB,0x19,0x00,0x07,0x00, 877 0xE6,0xEF,0xC0,0xC3,0xBF,0xE7,0x90}}, /* 0x3b */ 878 {{0x6B,0x59,0x8F,0x5E,0x8C,0x00,0x05,0x00, 879 0x0B,0x3E,0xE9,0x8B,0xE7,0x04,0x00}}, /* 0x3c */ 880 {{0x7B,0x63,0x9F,0x6A,0x93,0x00,0x05,0x00, 881 0x6F,0xF0,0x58,0x8A,0x57,0x70,0xA0}}, /* 0x3d */ 882 {{0x86,0x6A,0x8a,0x74,0x06,0x00,0x02,0x00, 883 0x8c,0x15,0x4f,0x83,0xef,0x8d,0x30}}, /* 0x3e */ 884 {{0x81,0x6A,0x85,0x70,0x00,0x00,0x02,0x00, 885 0x0f,0x3e,0xeb,0x8e,0xdf,0x10,0x00}}, /* 0x3f */ 886 {{0xCE,0x9F,0x92,0xA9,0x17,0x00,0x07,0x00, 887 0x20,0xF5,0x03,0x88,0xFF,0x21,0x90}}, /* 0x40 */ 888 {{0xE6,0xAE,0x8A,0xBD,0x90,0x00,0x03,0x00, 889 0x3D,0x10,0x1A,0x8D,0x19,0x3E,0x2F}}, /* 0x41 */ 890 {{0xB9,0x8F,0x9D,0x9B,0x8A,0x00,0x06,0x00, 891 0x7D,0xFF,0x60,0x83,0x5F,0x7E,0x90}}, /* 0x42 */ 892 {{0xC3,0x8F,0x87,0x9B,0x0B,0x00,0x07,0x00, 893 0x82,0xFF,0x60,0x83,0x5F,0x83,0x90}}, /* 0x43 */ 894 {{0xAD,0x7F,0x91,0x8E,0x9C,0x00,0x02,0x82, 895 0x49,0xF5,0x00,0x83,0xFF,0x4A,0x90}}, /* 0x44 */ 896 {{0xCD,0x9F,0x91,0xA7,0x19,0x00,0x07,0x60, 897 0xE6,0xFF,0xC0,0x83,0xBF,0xE7,0x90}}, /* 0x45 */ 898 {{0xD3,0x9F,0x97,0xAB,0x1F,0x00,0x07,0x60, 899 0xF1,0xFF,0xC0,0x83,0xBF,0xF2,0x90}}, /* 0x46 */ 900 {{0xD7,0x9F,0x9B,0xAC,0x1E,0x00,0x07,0x00, 901 0x03,0xDE,0xC0,0x84,0xBF,0x04,0x90}} /* 0x47 */ 902 }; 903 904 #if 0 905 static struct XGI330_CHTVRegDataStruct XGI_CHTVRegUNTSC[] = { 906 /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */ 907 {{ 0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 00 (640x200,640x400) */ 908 {{ 0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 01 (640x350) */ 909 {{ 0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 02 (720x400) */ 910 {{ 0x4A,0x77,0xBB,0x94,0x84,0x48,0xFE,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 03 (720x350) */ 911 {{ 0x6A,0x77,0xBB,0x6E,0x84,0x2E,0x02,0x5A,0x04,0x00,0x80,0x20,0x7E,0x80,0x97,0x00 }},/* 04 (640x480) ;;5/6/02 */ 912 {{ 0xCF,0x77,0xB7,0xC8,0x84,0x3B,0x02,0x5A,0x04,0x00,0x80,0x19,0x88,0xAE,0xA3,0x00 }},/* 05 (800x600) ;;1/12/02 */ 913 {{ 0xEE,0x77,0xBB,0x66,0x87,0x32,0x01,0x5A,0x04,0x00,0x80,0x1B,0xD4,0x2F,0x6F,0x00 }}/* 06 (1024x768) ;;5/6/02 */ 914 }; 915 916 static struct XGI330_CHTVRegDataStruct XGI_CHTVRegONTSC[] = { 917 /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */ 918 {{ 0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 00 (640x200,640x400) */ 919 {{ 0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 01 (640x350) */ 920 {{ 0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 02 (720x400) */ 921 {{ 0x49,0x77,0xBB,0x7B,0x84,0x34,0x00,0x50,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 03 (720x350) */ 922 {{ 0x69,0x77,0xBB,0x6E,0x84,0x1E,0x00,0x5A,0x04,0x00,0x80,0x25,0x1A,0x80,0x26,0x00 }},/* 04 (640x480) ;;5/6/02 */ 923 {{ 0xCE,0x77,0xB7,0xB6,0x83,0x2C,0x02,0x5A,0x04,0x00,0x80,0x1C,0x00,0x82,0x97,0x00 }},/* 05 (800x600) ;;5/6/02 */ 924 {{ 0xED,0x77,0xBB,0x66,0x8C,0x21,0x02,0x5A,0x04,0x00,0x80,0x1F,0xA0,0x7E,0x73,0x00 }}/* 06 (1024x768) ;;5/6/02 */ 925 }; 926 927 static struct XGI330_CHTVRegDataStruct XGI_CHTVRegUPAL[] = { 928 /* Index:000h,001h,002h,004h,003h,005h,006h,007h,008h,015h,01Fh,00Ch,00Dh,00Eh,00Fh,010h */ 929 {{ 0x41,0x7F,0xB7,0x34,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* ; 00 (640x200,640x400) */ 930 {{ 0x41,0x7F,0xB7,0x80,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* ; 01 (640x350) */ 931 {{ 0x41,0x7F,0xB7,0x34,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* ; 02 (720x400) */ 932 {{ 0x41,0x7F,0xB7,0x12,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* ; 03 (720x350) */ 933 {{ 0x61,0x7F,0xB7,0x99,0x84,0x35,0x04,0x5A,0x05,0x00,0x80,0x26,0x2A,0x55,0x5D,0x00 }},/* ; 04 (640x480) */ 934 {{ 0xC3,0x7F,0xB7,0x7A,0x84,0x40,0x02,0x5A,0x05,0x00,0x80,0x1F,0x84,0x3D,0x28,0x00 }},/* ; 05 (800x600) ;;1/12/02 */ 935 {{ 0xE5,0x7F,0xB7,0x1D,0xA7,0x3E,0x04,0x5A,0x05,0x00,0x80,0x20,0x3E,0xE4,0x22,0x00 }}/* ; 06 (1024x768) ;;1/12/02 */ 936 }; 937 938 static struct XGI330_CHTVRegDataStruct XGI_CHTVRegOPAL[] = { 939 /* Index:000,0x01,0x02,0x04,0x03,0x05,0x06,0x07,0x08,0x15,0x1F,0x0C,0x0D,0x0E,0x0F,0x10h */ 940 {{ 0x41,0x7F,0xB7,0x36,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 00 (640x200,640x400) */ 941 {{ 0x41,0x7F,0xB7,0x86,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 01 (640x350) */ 942 {{ 0x41,0x7F,0xB7,0x36,0xAD,0x50,0x34,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 02 (720x400) */ 943 {{ 0x41,0x7F,0xB7,0x86,0x85,0x50,0x00,0x83,0x05,0x00,0x80,0x00,0x00,0x00,0x00,0x01 }},/* 03 (720x350) */ 944 {{ 0x61,0x7F,0xB7,0x99,0x84,0x35,0x04,0x5A,0x05,0x00,0x80,0x26,0x2A,0x55,0x5D,0x00 }},/* 04 (640x480) */ 945 {{ 0xC1,0x7F,0xB7,0x4D,0x8C,0x1E,0x31,0x5A,0x05,0x00,0x80,0x26,0x78,0x19,0x34,0x00 }},/* 05 (800x600) ;;1/12/02 */ 946 {{ 0xE4,0x7F,0xB7,0x1E,0xAF,0x29,0x37,0x5A,0x05,0x00,0x80,0x25,0x8C,0xB2,0x2A,0x00 }}/* 06 (1024x768) ;;1/12/02 */ 947 }; 948 #endif 949 950 static unsigned char XGI_CH7017LV1024x768[] = { 951 0x60, 0x02, 0x00, 0x07, 0x40, 0xED, 0xA3, 952 0xC8, 0xC7, 0xAC, 0xE0, 0x02}; 953 static unsigned char XGI_CH7017LV1400x1050[] = { 954 0x60, 0x03, 0x11, 0x00, 0x40, 0xE3, 0xAD, 955 0xDB, 0xF6, 0xAC, 0xE0, 0x02}; 956 957 958 /*add for new UNIVGABIOS*/ 959 static struct XGI330_LCDDataStruct XGI_StLCD1024x768Data[] = 960 { 961 { 62, 25, 800, 546,1344, 806}, 962 { 32, 15, 930, 546,1344, 806}, 963 { 62, 25, 800, 546,1344, 806}, /* chiawen for dot9 -> dot8 */ 964 { 104, 45, 945, 496,1344, 806}, 965 { 62, 25, 800, 546,1344, 806}, 966 { 31, 18,1008, 624,1344, 806}, 967 { 1, 1,1344, 806,1344, 806} 968 }; 969 970 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768Data[] = 971 { 972 { 42, 25,1536, 419,1344, 806}, /* { 12, 5, 896, 512,1344, 806}, // alan 09/12/2003 */ 973 { 48, 25,1536, 369,1344, 806}, /* { 12, 5, 896, 510,1344, 806}, // alan 09/12/2003 */ 974 { 42, 25,1536, 419,1344, 806}, /* { 32, 15,1008, 505,1344, 806}, // alan 09/12/2003 */ 975 { 48, 25,1536, 369,1344, 806}, /* { 32, 15,1008, 514,1344, 806}, // alan 09/12/2003 */ 976 { 12, 5, 896, 500,1344, 806}, 977 { 42, 25,1024, 625,1344, 806}, 978 { 1, 1,1344, 806,1344, 806}, 979 { 12, 5, 896, 500,1344, 806}, 980 { 42, 25,1024, 625,1344, 806}, 981 { 1, 1,1344, 806,1344, 806}, 982 { 12, 5, 896, 500,1344, 806}, 983 { 42, 25,1024, 625,1344, 806}, 984 { 1, 1,1344, 806,1344, 806} 985 }; 986 987 /*struct XGI330_LCDDataStruct XGI_St2LCD1024x768Data[] = 988 { 989 { 62, 25, 800, 546,1344, 806}, 990 { 32, 15, 930, 546,1344, 806}, 991 { 62, 25, 800, 546,1344, 806}, 992 { 104, 45, 945, 496,1344, 806}, 993 { 62, 25, 800, 546,1344, 806}, 994 { 31, 18,1008, 624,1344, 806}, 995 { 1, 1,1344, 806,1344, 806} 996 };*/ 997 998 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768Data[] = 999 { 1000 { 1,1,1344,806,1344,806 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1001 { 1,1,1344,806,1344,806 }, /* 01 (320x350,640x350) */ 1002 { 1,1,1344,806,1344,806 }, /* 02 (360x400,720x400) */ 1003 { 1,1,1344,806,1344,806 }, /* 03 (720x350) */ 1004 { 1,1,1344,806,1344,806 }, /* 04 (640x480x60Hz) */ 1005 { 1,1,1344,806,1344,806 }, /* 05 (800x600x60Hz) */ 1006 { 1,1,1344,806,1344,806 } /* 06 (1024x768x60Hz) */ 1007 }; 1008 1009 static struct XGI330_LCDDataStruct XGI_StLCD1280x1024Data[] = 1010 { 1011 { 22, 5, 800, 510,1650,1088}, 1012 { 22, 5, 800, 510,1650,1088}, 1013 { 176, 45, 900, 510,1650,1088}, 1014 { 176, 45, 900, 510,1650,1088}, 1015 { 22, 5, 800, 510,1650,1088}, 1016 { 13, 5,1024, 675,1560,1152}, 1017 { 16, 9,1266, 804,1688,1072}, 1018 { 1, 1,1688,1066,1688,1066} 1019 }; 1020 1021 static struct XGI330_LCDDataStruct XGI_ExtLCD1280x1024Data[] = 1022 { 1023 { 211, 60,1024, 501,1688,1066}, 1024 { 211, 60,1024, 508,1688,1066}, 1025 { 211, 60,1024, 501,1688,1066}, 1026 { 211, 60,1024, 508,1688,1066}, 1027 { 211, 60,1024, 500,1688,1066}, 1028 { 211, 75,1024, 625,1688,1066}, 1029 { 211, 120,1280, 798,1688,1066}, 1030 { 1, 1,1688,1066,1688,1066} 1031 }; 1032 1033 #if 0 1034 static struct XGI330_LCDDataStruct XGI_St2LCD1280x1024Data[] = 1035 { 1036 { 22, 5, 800, 510,1650,1088}, 1037 { 22, 5, 800, 510,1650,1088}, 1038 { 176, 45, 900, 510,1650,1088}, 1039 { 176, 45, 900, 510,1650,1088}, 1040 { 22, 5, 800, 510,1650,1088}, 1041 { 13, 5,1024, 675,1560,1152}, 1042 { 16, 9,1266, 804,1688,1072}, 1043 { 1, 1,1688,1066,1688,1066} 1044 }; 1045 #endif 1046 1047 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024Data[] = 1048 { 1049 { 1,1,1688,1066,1688,1066 }, /* 00 (320x200,320x400,640x200,640x400) */ 1050 { 1,1,1688,1066,1688,1066 }, /* 01 (320x350,640x350) */ 1051 { 1,1,1688,1066,1688,1066 }, /* 02 (360x400,720x400) */ 1052 { 1,1,1688,1066,1688,1066 }, /* 03 (720x350) */ 1053 { 1,1,1688,1066,1688,1066 }, /* 04 (640x480x60Hz) */ 1054 { 1,1,1688,1066,1688,1066 }, /* 05 (800x600x60Hz) */ 1055 { 1,1,1688,1066,1688,1066 }, /* 06 (1024x768x60Hz) */ 1056 { 1,1,1688,1066,1688,1066 }, /* 07 (1280x1024x60Hz) */ 1057 { 1,1,1688,1066,1688,1066 } /* 08 (1400x1050x60Hz) */ 1058 }; 1059 1060 static struct XGI330_LCDDataStruct XGI_StLCD1400x1050Data[] = 1061 { 1062 { 211,100,2100,408,1688,1066 }, /* 00 (320x200,320x400,640x200,640x400) */ 1063 { 211,64,1536,358,1688,1066 }, /* 01 (320x350,640x350) */ 1064 { 211,100,2100,408,1688,1066 }, /* 02 (360x400,720x400) */ 1065 { 211,64,1536,358,1688,1066 }, /* 03 (720x350) */ 1066 { 211,48,840,488,1688,1066 }, /* 04 (640x480x60Hz) */ 1067 { 211,72,1008,609,1688,1066 }, /* 05 (800x600x60Hz) */ 1068 { 211,128,1400,776,1688,1066 }, /* 06 (1024x768x60Hz) */ 1069 { 1,1,1688,1066,1688,1066 }, /* 07 (1280x1024x60Hz w/o Scaling) */ 1070 { 1,1,1688,1066,1688,1066 } /* 08 (1400x1050x60Hz) */ 1071 }; 1072 1073 static struct XGI330_LCDDataStruct XGI_ExtLCD1400x1050Data[] = 1074 { 1075 { 211,100,2100,408,1688,1066 }, /* 00 (320x200,320x400,640x200,640x400) */ 1076 { 211,64,1536,358,1688,1066 }, /* 01 (320x350,640x350) */ 1077 { 211,100,2100,408,1688,1066 }, /* 02 (360x400,720x400) */ 1078 { 211,64,1536,358,1688,1066 }, /* 03 (720x350) */ 1079 { 211,48,840,488,1688,1066 }, /* 04 (640x480x60Hz) */ 1080 { 211,72,1008,609,1688,1066 }, /* 05 (800x600x60Hz) */ 1081 { 211,128,1400,776,1688,1066 }, /* 06 (1024x768x60Hz) */ 1082 { 1,1,1688,1066,1688,1066 }, /* 07 (1280x1024x60Hz w/o Scaling) */ 1083 { 1,1,1688,1066,1688,1066 } /* 08 (1400x1050x60Hz) */ 1084 }; 1085 1086 static struct XGI330_LCDDataStruct XGI_ExtLCD1600x1200Data[] = 1087 { 1088 { 4,1,1620,420,2160,1250 }, /* { 3,1,2160,425,2160,1250 }, // 00 (320x200,320x400,640x200,640x400) // alan 10/14/2003 */ 1089 { 27,7,1920,375,2160,1250 }, /* 01 (320x350,640x350) */ 1090 { 4,1,1620,420,2160,1250 }, /* { 3,1,2160,425,2160,1250 }, // 02 (360x400,720x400) // alan 10/14/2003 */ 1091 { 27,7,1920,375,2160,1250 }, /* 03 (720x350) */ 1092 { 27,4,800,500,2160,1250 }, /* 04 (640x480x60Hz) */ 1093 { 4,1,1080,625,2160,1250 }, /* 05 (800x600x60Hz) */ 1094 { 5,2,1350,800,2160,1250 }, /* 06 (1024x768x60Hz) */ 1095 { 27,16,1500,1064,2160,1250 }, /* 07 (1280x1024x60Hz) */ 1096 { 9,7,1920,1106,2160,1250 }, /* 08 (1400x1050x60Hz) */ 1097 { 1,1,2160,1250,2160,1250 } /* 09 (1600x1200x60Hz) ;302lv */ 1098 }; 1099 1100 static struct XGI330_LCDDataStruct XGI_StLCD1600x1200Data[] = 1101 { 1102 { 27,4,800,500,2160,1250 },/* 00 (320x200,320x400,640x200,640x400) */ 1103 { 27,4,800,500,2160,1250 },/* 01 (320x350,640x350) */ 1104 { 27,4,800,500,2160,1250 },/* 02 (360x400,720x400) */ 1105 { 27,4,800,500,2160,1250 },/* 03 (720x350) */ 1106 { 27,4,800,500,2160,1250 },/* 04 (320x240,640x480) */ 1107 { 4,1,1080,625,2160,1250 },/* 05 (400x300,800x600) */ 1108 { 5,2,1350,800,2160,1250 },/* 06 (512x384,1024x768) */ 1109 { 135,88,1600,1100,2160,1250 },/* 07 (1280x1024) */ 1110 { 1,1,1800,1500,2160,1250 },/* 08 (1400x1050) */ 1111 { 1,1,2160,1250,2160,1250 } /* 09 (1600x1200) */ 1112 }; 1113 1114 static struct XGI330_LCDDataStruct XGI_CetLCD1400x1050Data[] = 1115 { 1116 { 1,1,1688,1066,1688,1066 }, /* 00 (320x200,320x400,640x200,640x400) */ 1117 { 1,1,1688,1066,1688,1066 }, /* 01 (320x350,640x350) */ 1118 { 1,1,1688,1066,1688,1066 }, /* 02 (360x400,720x400) */ 1119 { 1,1,1688,1066,1688,1066 }, /* 03 (720x350) */ 1120 { 1,1,1688,1066,1688,1066 }, /* 04 (640x480x60Hz) */ 1121 { 1,1,1688,1066,1688,1066 }, /* 05 (800x600x60Hz) */ 1122 { 1,1,1688,1066,1688,1066 }, /* 06 (1024x768x60Hz) */ 1123 { 1,1,1688,1066,1688,1066 }, /* 07 (1280x1024x60Hz) */ 1124 { 1,1,1688,1066,1688,1066 } /* 08 (1400x1050x60Hz) */ 1125 }; 1126 1127 static struct XGI330_LCDDataStruct XGI_NoScalingData[] = 1128 { 1129 { 1, 1, 800, 449, 800, 449}, 1130 { 1, 1, 800, 449, 800, 449}, 1131 { 1, 1, 900, 449, 900, 449}, 1132 { 1, 1, 900, 449, 900, 449}, 1133 { 1, 1, 800, 525, 800, 525}, 1134 { 1, 1,1056, 628,1056, 628}, 1135 { 1, 1,1344, 806,1344, 806}, 1136 { 1, 1,1688,1066,1688,1066} 1137 }; 1138 1139 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768x75Data[] = 1140 { 1141 {42,25,1536,419,1344,806 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1142 {48,25,1536,369,1344,806 }, /* ; 01 (320x350,640x350) */ 1143 {42,25,1536,419,1344,806 }, /* ; 02 (360x400,720x400) */ 1144 {48,25,1536,369,1344,806 }, /* ; 03 (720x350) */ 1145 {8,5,1312,500,1312,800 }, /* ; 04 (640x480x75Hz) */ 1146 {41,25,1024,625,1312,800 }, /* ; 05 (800x600x75Hz) */ 1147 {1,1,1312,800,1312,800 } /* ; 06 (1024x768x75Hz) */ 1148 }; 1149 1150 #if 0 1151 static struct XGI330_LCDDataStruct XGI_StLCD1024x768x75Data[] = 1152 { 1153 {42,25,1536,419,1344,806 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1154 {48,25,1536,369,1344,806 }, /* ; 01 (320x350,640x350) */ 1155 {42,25,1536,419,1344,806 }, /* ; 02 (360x400,720x400) */ 1156 {48,25,1536,369,1344,806 }, /* ; 03 (720x350) */ 1157 {8,5,1312,500,1312,800 }, /* ; 04 (640x480x75Hz) */ 1158 {41,25,1024,625,1312,800 }, /* ; 05 (800x600x75Hz) */ 1159 {1,1,1312,800,1312,800 } /* ; 06 (1024x768x75Hz) */ 1160 }; 1161 #endif 1162 1163 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768x75Data[] = 1164 { 1165 {1,1,1312,800,1312,800}, /* ; 00 (320x200,320x400,640x200,640x400) */ 1166 {1,1,1312,800,1312,800}, /* ; 01 (320x350,640x350) */ 1167 {1,1,1312,800,1312,800}, /* ; 02 (360x400,720x400) */ 1168 {1,1,1312,800,1312,800}, /* ; 03 (720x350) */ 1169 {1,1,1312,800,1312,800}, /* ; 04 (640x480x75Hz) */ 1170 {1,1,1312,800,1312,800}, /* ; 05 (800x600x75Hz) */ 1171 {1,1,1312,800,1312,800} /* ; 06 (1024x768x75Hz) */ 1172 }; 1173 1174 static struct XGI330_LCDDataStruct XGI_ExtLCD1280x1024x75Data[] = 1175 { 1176 {211,60,1024,501,1688,1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1177 {211,60,1024,508,1688,1066 }, /* ; 01 (320x350,640x350) */ 1178 {211,60,1024,501,1688,1066 }, /* ; 02 (360x400,720x400) */ 1179 {211,60,1024,508,1688,1066 }, /* ; 03 (720x350) */ 1180 {211,45,768,498,1688,1066 }, /* ; 04 (640x480x75Hz) */ 1181 {211,75,1024,625,1688,1066 }, /* ; 05 (800x600x75Hz) */ 1182 {211,120,1280,798,1688,1066 }, /* ; 06 (1024x768x75Hz) */ 1183 {1,1,1688,1066,1688,1066 } /* ; 07 (1280x1024x75Hz) */ 1184 }; 1185 1186 static struct XGI330_LCDDataStruct XGI_StLCD1280x1024x75Data[] = 1187 { 1188 {211,60,1024,501,1688,1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1189 {211,60,1024,508,1688,1066 }, /* ; 01 (320x350,640x350) */ 1190 {211,60,1024,501,1688,1066 }, /* ; 02 (360x400,720x400) */ 1191 {211,60,1024,508,1688,1066 }, /* ; 03 (720x350) */ 1192 {211,45,768,498,1688,1066 }, /* ; 04 (640x480x75Hz) */ 1193 {211,75,1024,625,1688,1066 }, /* ; 05 (800x600x75Hz) */ 1194 {211,120,1280,798,1688,1066}, /* ; 06 (1024x768x75Hz) */ 1195 {1,1,1688,1066,1688,1066 } /* ; 07 (1280x1024x75Hz) */ 1196 }; 1197 1198 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024x75Data[] = 1199 { 1200 {1,1,1688,1066,1688,1066}, /* ; 00 (320x200,320x400,640x200,640x400) */ 1201 {1,1,1688,1066,1688,1066}, /* ; 01 (320x350,640x350) */ 1202 {1,1,1688,1066,1688,1066}, /* ; 02 (360x400,720x400) */ 1203 {1,1,1688,1066,1688,1066}, /* ; 03 (720x350) */ 1204 {1,1,1688,1066,1688,1066}, /* ; 04 (640x480x75Hz) */ 1205 {1,1,1688,1066,1688,1066}, /* ; 05 (800x600x75Hz) */ 1206 {1,1,1688,1066,1688,1066}, /* ; 06 (1024x768x75Hz) */ 1207 {1,1,1688,1066,1688,1066} /* ; 07 (1280x1024x75Hz) */ 1208 }; 1209 1210 static struct XGI330_LCDDataStruct XGI_NoScalingDatax75[] = 1211 { 1212 {1,1,800,449,800,449 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1213 {1,1,800,449,800,449 }, /* ; 01 (320x350,640x350) */ 1214 {1,1,900,449,900,449 }, /* ; 02 (360x400,720x400) */ 1215 {1,1,900,449,900,449 }, /* ; 03 (720x350) */ 1216 {1,1,840,500,840,500 }, /* ; 04 (640x480x75Hz) */ 1217 {1,1,1056,625,1056,625 }, /* ; 05 (800x600x75Hz) */ 1218 {1,1,1312,800,1312,800 }, /* ; 06 (1024x768x75Hz) */ 1219 {1,1,1688,1066,1688,1066}, /* ; 07 (1280x1024x75Hz) */ 1220 {1,1,1688,1066,1688,1066}, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */ 1221 {1,1,2160,1250,2160,1250}, /* ; 09 (1600x1200x75Hz) */ 1222 {1,1,1688,806,1688,806 } /* ; 0A (1280x768x75Hz) */ 1223 }; 1224 1225 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1024x768Data[] = 1226 { 1227 { 9,1057,0, 771 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1228 { 9,1057,0, 771 }, /* ; 01 (320x350,640x350) */ 1229 { 9,1057,0, 771 }, /* ; 02 (360x400,720x400) */ 1230 { 9,1057,0, 771 }, /* ; 03 (720x350) */ 1231 { 9,1057,0, 771 }, /* ; 04 (640x480x60Hz) */ 1232 { 9,1057,0, 771 }, /* ; 05 (800x600x60Hz) */ 1233 { 9,1057,805, 770 } /* ; 06 (1024x768x60Hz) */ 1234 }; 1235 1236 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1024x768Data[] = 1237 { 1238 { 9,1057,737,703 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1239 { 9,1057,686,651 }, /* ; 01 (320x350,640x350) */ 1240 { 9,1057,737,703 }, /* ; 02 (360x400,720x400) */ 1241 { 9,1057,686,651 }, /* ; 03 (720x350) */ 1242 { 9,1057,776,741 }, /* ; 04 (640x480x60Hz) */ 1243 { 9,1057, 0 ,771 }, /* ; 05 (800x600x60Hz) */ 1244 { 9,1057,805,770 } /* ; 06 (1024x768x60Hz) */ 1245 }; 1246 1247 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768Data[] = 1248 { 1249 { 1152,856,622,587 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1250 { 1152,856,597,562 }, /* ; 01 (320x350,640x350) */ 1251 { 1152,856,622,587 }, /* ; 02 (360x400,720x400) */ 1252 { 1152,856,597,562 }, /* ; 03 (720x350) */ 1253 { 1152,856,662,627 }, /* ; 04 (640x480x60Hz) */ 1254 { 1232,936,722,687 }, /* ; 05 (800x600x60Hz) */ 1255 { 0,1048,805,770 } /* ; 06 (1024x768x60Hz) */ 1256 }; 1257 1258 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024Data[] = 1259 { 1260 { 18,1346,981,940 },/* 00 (320x200,320x400,640x200,640x400) */ 1261 { 18,1346,926,865 },/* 01 (320x350,640x350) */ 1262 { 18,1346,981,940 },/* 02 (360x400,720x400) */ 1263 { 18,1346,926,865 },/* 03 (720x350) */ 1264 { 18,1346,0,1025 },/* 04 (640x480x60Hz) */ 1265 { 18,1346,0,1025 },/* 05 (800x600x60Hz) */ 1266 { 18,1346,1065,1024 },/* 06 (1024x768x60Hz) */ 1267 { 18,1346,1065,1024 }/* 07 (1280x1024x60Hz) */ 1268 }; 1269 1270 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024Data[] = 1271 { 1272 { 18,1346,970,907 },/* 00 (320x200,320x400,640x200,640x400) */ 1273 { 18,1346,917,854 },/* 01 (320x350,640x350) */ 1274 { 18,1346,970,907 },/* 02 (360x400,720x400) */ 1275 { 18,1346,917,854 },/* 03 (720x350) */ 1276 { 18,1346,0,1025 },/* 04 (640x480x60Hz) */ 1277 { 18,1346,0,1025 },/* 05 (800x600x60Hz) */ 1278 { 18,1346,1065,1024 },/* 06 (1024x768x60Hz) */ 1279 { 18,1346,1065,1024 }/* 07 (1280x1024x60Hz) */ 1280 }; 1281 1282 static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024Data[] = 1283 { 1284 { 1368,1008,752,711 }, /* 00 (320x200,320x400,640x200,640x400) */ 1285 { 1368,1008,729,688 }, /* 01 (320x350,640x350) */ 1286 { 1368,1008,752,711 }, /* 02 (360x400,720x400) */ 1287 { 1368,1008,729,688 }, /* 03 (720x350) */ 1288 { 1368,1008,794,753 }, /* 04 (640x480x60Hz) */ 1289 { 1448,1068,854,813 }, /* 05 (800x600x60Hz) */ 1290 { 1560,1200,938,897 }, /* 06 (1024x768x60Hz) */ 1291 { 18,1346,1065,1024 } /* 07 (1280x1024x60Hz) */ 1292 }; 1293 1294 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1280x1024Data[] = 1295 { 1296 { 9,1337,981,940 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1297 { 9,1337,926,884 }, /* ; 01 (320x350,640x350) alan, 2003/09/30 */ 1298 { 9,1337,981,940 }, /* ; 02 (360x400,720x400) */ 1299 { 9,1337,926,884 }, /* ; 03 (720x350) alan, 2003/09/30 */ 1300 { 9,1337,0,1025 }, /* ; 04 (640x480x60Hz) */ 1301 { 9,1337,0,1025 }, /* ; 05 (800x600x60Hz) */ 1302 { 9,1337,1065,1024 }, /* ; 06 (1024x768x60Hz) */ 1303 { 9,1337,1065,1024 } /* ; 07 (1280x1024x60Hz) */ 1304 }; 1305 1306 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1280x1024Data[] = 1307 { 1308 { 9,1337,970,907 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 1309 { 9,1337,917,854 }, /* ; 01 (320x350,640x350) */ 1310 { 9,1337,970,907 }, /* ; 02 (360x400,720x400) */ 1311 { 9,1337,917,854 }, /* ; 03 (720x350) */ 1312 { 9,1337,0,1025 }, /* ; 04 (640x480x60Hz) */ 1313 { 9,1337,0,1025 }, /* ; 05 (800x600x60Hz) */ 1314 { 9,1337,1065,1024 }, /* ; 06 (1024x768x60Hz) */ 1315 { 9,1337,1065,1024 } /* ; 07 (1280x1024x60Hz) */ 1316 }; 1317 1318 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024Data[] = 1319 { 1320 { 1368,1008,752,711 }, /* 00 (320x200,320x400,640x200,640x400) */ 1321 { 1368,1008,729,688 }, /* 01 (320x350,640x350) */ 1322 { 1368,1008,752,711 }, /* 02 (360x400,720x400) */ 1323 { 1368,1008,729,688 }, /* 03 (720x350) */ 1324 { 1368,1008,794,753 }, /* 04 (640x480x60Hz) */ 1325 { 1448,1068,854,813 }, /* 05 (800x600x60Hz) */ 1326 { 1560,1200,938,897 }, /* 06 (1024x768x60Hz) */ 1327 { 9,1337,1065,1024 } /* 07 (1280x1024x60Hz) */ 1328 }; 1329 1330 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1400x1050Data[] = 1331 { 1332 { 18,1464,0,1051 }, /* 00 (320x200,320x400,640x200,640x400) */ 1333 { 18,1464,0,1051 }, /* 01 (320x350,640x350) */ 1334 { 18,1464,0,1051 }, /* 02 (360x400,720x400) */ 1335 { 18,1464,0,1051 }, /* 03 (720x350) */ 1336 { 18,1464,0,1051 }, /* 04 (640x480x60Hz) */ 1337 { 18,1464,0,1051 }, /* 05 (800x600x60Hz) */ 1338 { 18,1464,0,1051 }, /* 06 (1024x768x60Hz) */ 1339 { 1646,1406,1053,1038 }, /* 07 (1280x1024x60Hz) */ 1340 { 18,1464,0,1051 } /* 08 (1400x1050x60Hz) */ 1341 }; 1342 1343 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1400x1050Data[] = 1344 { 1345 { 18,1464,0,1051 }, /* 00 (320x200,320x400,640x200,640x400) */ 1346 { 18,1464,0,1051 }, /* 01 (320x350,640x350) */ 1347 { 18,1464,0,1051 }, /* 02 (360x400,720x400) */ 1348 { 18,1464,0,1051 }, /* 03 (720x350) */ 1349 { 18,1464,0,1051 }, /* 04 (640x480x60Hz) */ 1350 { 18,1464,0,1051 }, /* 05 (800x600x60Hz) */ 1351 { 18,1464,0,1051 }, /* 06 (1024x768x60Hz) */ 1352 { 1646,1406,1053,1038 }, /* 07 (1280x1024x60Hz) */ 1353 { 18,1464,0,1051 } /* 08 (1400x1050x60Hz) */ 1354 }; 1355 1356 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1400x1050Data[] = 1357 { 1358 { 9,1455,0,1051 },/* 00 (320x200,320x400,640x200,640x400) */ 1359 { 9,1455,0,1051 },/* 01 (320x350,640x350) */ 1360 { 9,1455,0,1051 },/* 02 (360x400,720x400) */ 1361 { 9,1455,0,1051 },/* 03 (720x350) */ 1362 { 9,1455,0,1051 },/* 04 (640x480x60Hz) */ 1363 { 9,1455,0,1051 },/* 05 (800x600x60Hz) */ 1364 { 9,1455,0,1051 },/* 06 (1024x768x60Hz) */ 1365 { 1637,1397,1053,1038 },/* 07 (1280x1024x60Hz) */ 1366 { 9,1455,0,1051 } /* 08 (1400x1050x60Hz) */ 1367 }; 1368 1369 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1400x1050Data[] = 1370 { 1371 { 9,1455,0,1051 },/* 00 (320x200,320x400,640x200,640x400) */ 1372 { 9,1455,0,1051 },/* 01 (320x350,640x350) */ 1373 { 9,1455,0,1051 },/* 02 (360x400,720x400) */ 1374 { 9,1455,0,1051 },/* 03 (720x350) */ 1375 { 9,1455,0,1051 },/* 04 (640x480x60Hz) */ 1376 { 9,1455,0,1051 },/* 05 (800x600x60Hz) */ 1377 { 9,1455,0,1051 },/* 06 (1024x768x60Hz) */ 1378 { 1637,1397,1053,1038 },/* 07 (1280x1024x60Hz) */ 1379 { 9,1455,0,1051 } /* 08 (1400x1050x60Hz) */ 1380 }; 1381 1382 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data[] = 1383 { 1384 { 1308,1068,781,766 }, /* 00 (320x200,320x400,640x200,640x400) */ 1385 { 1308,1068,781,766 }, /* 01 (320x350,640x350) */ 1386 { 1308,1068,781,766 }, /* 02 (360x400,720x400) */ 1387 { 1308,1068,781,766 }, /* 03 (720x350) */ 1388 { 1308,1068,781,766 }, /* 04 (640x480x60Hz) */ 1389 { 1388,1148,841,826 }, /* 05 (800x600x60Hz) */ 1390 { 1490,1250,925,910 }, /* 06 (1024x768x60Hz) */ 1391 { 1646,1406,1053,1038 }, /* 07 (1280x1024x60Hz) */ 1392 { 18,1464,0,1051 } /* 08 (1400x1050x60Hz) */ 1393 }; 1394 1395 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data2[] = 1396 { 1397 { 0,1448,0,1051 }, /* 00 (320x200,320x400,640x200,640x400) */ 1398 { 0,1448,0,1051 }, /* 01 (320x350,640x350) */ 1399 { 0,1448,0,1051 }, /* 02 (360x400,720x400) */ 1400 { 0,1448,0,1051 }, /* 03 (720x350) */ 1401 { 0,1448,0,1051 } /* 04 (640x480x60Hz) */ 1402 }; 1403 1404 1405 1406 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1600x1200Data[] = 1407 { 1408 { 18,1682,0,1201 }, /* 00 (320x200,320x400,640x200,640x400) */ 1409 { 18,1682,0,1201 }, /* 01 (320x350,640x350) */ 1410 { 18,1682,0,1201 }, /* 02 (360x400,720x400) */ 1411 { 18,1682,0,1201 }, /* 03 (720x350) */ 1412 { 18,1682,0,1201 }, /* 04 (640x480x60Hz) */ 1413 { 18,1682,0,1201 }, /* 05 (800x600x60Hz) */ 1414 { 18,1682,0,1201 }, /* 06 (1024x768x60Hz) */ 1415 { 18,1682,0,1201 }, /* 07 (1280x1024x60Hz) */ 1416 { 18,1682,0,1201 }, /* 08 (1400x1050x60Hz) */ 1417 { 18,1682,0,1201 } /* 09 (1600x1200x60Hz) */ 1418 }; 1419 1420 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1600x1200Data[] = 1421 { 1422 { 18,1682,1150,1101 }, /* 00 (320x200,320x400,640x200,640x400) */ 1423 { 18,1682,1083,1034 }, /* 01 (320x350,640x350) */ 1424 { 18,1682,1150,1101 }, /* 02 (360x400,720x400) */ 1425 { 18,1682,1083,1034 }, /* 03 (720x350) */ 1426 { 18,1682,0,1201 }, /* 04 (640x480x60Hz) */ 1427 { 18,1682,0,1201 }, /* 05 (800x600x60Hz) */ 1428 { 18,1682,0,1201 }, /* 06 (1024x768x60Hz) */ 1429 { 18,1682,1232,1183 }, /* 07 (1280x1024x60Hz) */ 1430 { 18,1682,0,1201 }, /* 08 (1400x1050x60Hz) */ 1431 { 18,1682,0,1201 } /* 09 (1600x1200x60Hz) */ 1432 }; 1433 1434 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1600x1200Data[] = 1435 { 1436 { 9,1673,0,1201 },/* 00 (320x200,320x400,640x200,640x400) */ 1437 { 9,1673,0,1201 },/* 01 (320x350,640x350) */ 1438 { 9,1673,0,1201 },/* 02 (360x400,720x400) */ 1439 { 9,1673,0,1201 },/* 03 (720x350) */ 1440 { 9,1673,0,1201 },/* 04 (640x480x60Hz) */ 1441 { 9,1673,0,1201 },/* 05 (800x600x60Hz) */ 1442 { 9,1673,0,1201 },/* 06 (1024x768x60Hz) */ 1443 { 9,1673,0,1201 },/* 07 (1280x1024x60Hz) */ 1444 { 9,1673,0,1201 },/* 08 (1400x1050x60Hz) */ 1445 { 9,1673,0,1201 } /* 09 (1600x1200x60Hz) */ 1446 }; 1447 1448 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1600x1200Data[] = 1449 { 1450 { 9,1673,1150,1101 },/* 00 (320x200,320x400,640x200,640x400) */ 1451 { 9,1673,1083,1034 },/* 01 (320x350,640x350) */ 1452 { 9,1673,1150,1101 },/* 02 (360x400,720x400) */ 1453 { 9,1673,1083,1034 },/* 03 (720x350) */ 1454 { 9,1673,0,1201 },/* 04 (640x480x60Hz) */ 1455 { 9,1673,0,1201 },/* 05 (800x600x60Hz) */ 1456 { 9,1673,0,1201 },/* 06 (1024x768x60Hz) */ 1457 { 9,1673,1232,1183 },/* 07 (1280x1024x60Hz) */ 1458 { 9,1673,0,1201 },/* 08 (1400x1050x60Hz) */ 1459 { 9,1673,0,1201 } /* 09 (1600x1200x60Hz) */ 1460 }; 1461 1462 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = 1463 { 1464 { 9,657,448,405,96,2 }, /* 00 (320x200,320x400,640x200,640x400) */ 1465 { 9,657,448,355,96,2 }, /* 01 (320x350,640x350) */ 1466 { 9,657,448,405,96,2 }, /* 02 (360x400,720x400) */ 1467 { 9,657,448,355,96,2 }, /* 03 (720x350) */ 1468 { 9,657,1,483,96,2 }, /* 04 (640x480x60Hz) */ 1469 { 9,849,627,600,128,4 }, /* 05 (800x600x60Hz) */ 1470 { 9,1057,805,770,0136,6 }, /* 06 (1024x768x60Hz) */ 1471 { 9,1337,0,1025,112,3 }, /* 07 (1280x1024x60Hz) */ 1472 { 9,1457,0,1051,112,3 }, /* 08 (1400x1050x60Hz) }, //;[ycchen] 12/19/02 */ 1473 { 9,1673,0,1201,192,3 }, /* 09 (1600x1200x60Hz) */ 1474 { 9,1337,0,771,112,6 } /* 0A (1280x768x60Hz) */ 1475 }; 1476 1477 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1024x768x75Data[] = /* ;;1024x768x75Hz */ 1478 { 1479 {9,1049,0,769}, /* ; 00 (320x200,320x400,640x200,640x400) */ 1480 {9,1049,0,769}, /* ; 01 (320x350,640x350) */ 1481 {9,1049,0,769}, /* ; 02 (360x400,720x400) */ 1482 {9,1049,0,769}, /* ; 03 (720x350) */ 1483 {9,1049,0,769}, /* ; 04 (640x480x75Hz) */ 1484 {9,1049,0,769}, /* ; 05 (800x600x75Hz) */ 1485 {9,1049,0,769} /* ; 06 (1024x768x75Hz) */ 1486 }; 1487 1488 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1024x768x75Data[] = 1489 { 1490 {9,1049,0,769}, /* ; 00 (320x200,320x400,640x200,640x400) */ 1491 {9,1049,0,769}, /* ; 01 (320x350,640x350) */ 1492 {9,1049,0,769}, /* ; 02 (360x400,720x400) */ 1493 {9,1049,0,769}, /* ; 03 (720x350) */ 1494 {9,1049,0,769}, /* ; 04 (640x480x75Hz) */ 1495 {9,1049,0,769}, /* ; 05 (800x600x75Hz) */ 1496 {9,1049,0,769} /* ; 06 (1024x768x75Hz) */ 1497 }; 1498 1499 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768x75Data[] = /* ;;1024x768x75Hz */ 1500 { 1501 {1152,856,622,587}, /* ; 00 (320x200,320x400,640x200,640x400) */ 1502 {1152,856,597,562}, /* ; 01 (320x350,640x350) */ 1503 {1192,896,622,587}, /* ; 02 (360x400,720x400) */ 1504 {1192,896,597,562}, /* ; 03 (720x350) */ 1505 {1129,857,656,625}, /* ; 04 (640x480x75Hz) */ 1506 {1209,937,716,685}, /* ; 05 (800x600x75Hz) */ 1507 {9,1049,0,769} /* ; 06 (1024x768x75Hz) */ 1508 }; 1509 1510 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024x75Data[] = /* ;;1280x1024x75Hz */ 1511 { 1512 {18,1314,0,1025 },/* ; 00 (320x200,320x400,640x200,640x400) */ 1513 {18,1314,0,1025 },/* ; 01 (320x350,640x350) */ 1514 {18,1314,0,1025 },/* ; 02 (360x400,720x400) */ 1515 {18,1314,0,1025 },/* ; 03 (720x350) */ 1516 {18,1314,0,1025 },/* ; 04 (640x480x60Hz) */ 1517 {18,1314,0,1025 },/* ; 05 (800x600x60Hz) */ 1518 {18,1314,0,1025 },/* ; 06 (1024x768x60Hz) */ 1519 {18,1314,0,1025 }/* ; 07 (1280x1024x60Hz) */ 1520 }; 1521 1522 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024x75Data[] = 1523 { 1524 {18,1314,0,1025 },/* ; 00 (320x200,320x400,640x200,640x400) */ 1525 {18,1314,0,1025 },/* ; 01 (320x350,640x350) */ 1526 {18,1314,0,1025 },/* ; 02 (360x400,720x400) */ 1527 {18,1314,0,1025 },/* ; 03 (720x350) */ 1528 {18,1314,0,1025 },/* ; 04 (640x480x60Hz) */ 1529 {18,1314,0,1025 },/* ; 05 (800x600x60Hz) */ 1530 {18,1314,0,1025 },/* ; 06 (1024x768x60Hz) */ 1531 {18,1314,0,1025 }/* ; 07 (1280x1024x60Hz) */ 1532 }; 1533 1534 static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024x75Data[] = /* 1280x1024x75Hz */ 1535 { 1536 {1368,1008,752,711}, /* ; 00 (320x200,320x400,640x200,640x400) */ 1537 {1368,1008,729,688}, /* ; 01 (320x350,640x350) */ 1538 {1408,1048,752,711}, /* ; 02 (360x400,720x400) */ 1539 {1408,1048,729,688}, /* ; 03 (720x350) */ 1540 {1377,985,794,753}, /* ; 04 (640x480x75Hz) */ 1541 {1457,1065,854,813}, /* ; 05 (800x600x75Hz) */ 1542 {1569,1177,938,897}, /* ; 06 (1024x768x75Hz) */ 1543 {18,1314,0,1025} /* ; 07 (1280x1024x75Hz) */ 1544 }; 1545 1546 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1280x1024x75Data[] = /* ;;1280x1024x75Hz */ 1547 { 1548 {9,1305,0,1025},/* ; 00 (320x200,320x400,640x200,640x400) */ 1549 {9,1305,0,1025},/* ; 01 (320x350,640x350) */ 1550 {9,1305,0,1025},/* ; 02 (360x400,720x400) */ 1551 {9,1305,0,1025},/* ; 03 (720x350) */ 1552 {9,1305,0,1025},/* ; 04 (640x480x60Hz) */ 1553 {9,1305,0,1025},/* ; 05 (800x600x60Hz) */ 1554 {9,1305,0,1025},/* ; 06 (1024x768x60Hz) */ 1555 {9,1305,0,1025} /* ; 07 (1280x1024x60Hz) */ 1556 }; 1557 1558 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1280x1024x75Data[] = 1559 { 1560 {9,1305,0,1025},/* ; 00 (320x200,320x400,640x200,640x400) */ 1561 {9,1305,0,1025},/* ; 01 (320x350,640x350) */ 1562 {9,1305,0,1025},/* ; 02 (360x400,720x400) */ 1563 {9,1305,0,1025},/* ; 03 (720x350) */ 1564 {9,1305,0,1025},/* ; 04 (640x480x60Hz) */ 1565 {9,1305,0,1025},/* ; 05 (800x600x60Hz) */ 1566 {9,1305,0,1025},/* ; 06 (1024x768x60Hz) */ 1567 {9,1305,0,1025} /* ; 07 (1280x1024x60Hz) */ 1568 }; 1569 1570 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024x75Data[] = /* 1280x1024x75Hz */ 1571 { 1572 {1368,1008,752,711}, /* ; 00 (320x200,320x400,640x200,640x400) */ 1573 {1368,1008,729,688}, /* ; 01 (320x350,640x350) */ 1574 {1408,1048,752,711}, /* ; 02 (360x400,720x400) */ 1575 {1408,1048,729,688}, /* ; 03 (720x350) */ 1576 {1377,985,794,753}, /* ; 04 (640x480x75Hz) */ 1577 {1457,1065,854,813}, /* ; 05 (800x600x75Hz) */ 1578 {1569,1177,938,897}, /* ; 06 (1024x768x75Hz) */ 1579 {9,1305,0,1025} /* ; 07 (1280x1024x75Hz) */ 1580 }; 1581 1582 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = /* Scaling LCD 75Hz */ 1583 { 1584 {9,657,448,405,96,2}, /* ; 00 (320x200,320x400,640x200,640x400) */ 1585 {9,657,448,355,96,2}, /* ; 01 (320x350,640x350) */ 1586 {9,738,448,405,108,2}, /* ; 02 (360x400,720x400) */ 1587 {9,738,448,355,108,2}, /* ; 03 (720x350) */ 1588 {9,665,0,481,64,3}, /* ; 04 (640x480x75Hz) */ 1589 {9,825,0,601,80,3}, /* ; 05 (800x600x75Hz) */ 1590 {9,1049,0,769,96,3}, /* ; 06 (1024x768x75Hz) */ 1591 {9,1305,0,1025,144,3}, /* ; 07 (1280x1024x75Hz) */ 1592 {9,1457,0,1051,112,3}, /* ; 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */ 1593 {9,1673,0,1201,192,3}, /* ; 09 (1600x1200x75Hz) */ 1594 {9,1337,0,771,112,6} /* ; 0A (1280x768x60Hz) */ 1595 }; 1596 1597 static struct XGI330_TVDataStruct XGI_StPALData[] = 1598 { 1599 { 1, 1, 864, 525,1270, 400, 100, 0, 760}, 1600 { 1, 1, 864, 525,1270, 350, 100, 0, 760}, 1601 { 1, 1, 864, 525,1270, 400, 0, 0, 720}, 1602 { 1, 1, 864, 525,1270, 350, 0, 0, 720}, 1603 { 1, 1, 864, 525,1270, 480, 50, 0, 760}, 1604 { 1, 1, 864, 525,1270, 600, 50, 0, 0} 1605 }; 1606 1607 static struct XGI330_TVDataStruct XGI_ExtPALData[] = 1608 { 1609 { 2, 1,1080, 463,1270, 500, 50, 0, 50}, 1610 { 15, 7,1152, 413,1270, 500, 50, 0, 50}, 1611 { 2, 1,1080, 463,1270, 500, 50, 0, 50}, 1612 { 15, 7,1152, 413,1270, 500, 50, 0, 50}, 1613 { 2, 1, 900, 543,1270, 500, 0, 0, 50}, 1614 { 4, 3,1080, 663,1270, 500, 438, 0, 438}, 1615 { 1, 1,1125, 831,1270, 500, 686, 0, 686}, /*301b*/ 1616 { 3, 2,1080, 619,1270, 540, 438, 0, 438} 1617 }; 1618 1619 static struct XGI330_TVDataStruct XGI_StNTSCData[] = 1620 { 1621 { 1, 1, 858, 525,1270, 400, 50, 0, 760}, 1622 { 1, 1, 858, 525,1270, 350, 50, 0, 640}, 1623 { 1, 1, 858, 525,1270, 400, 0, 0, 720}, 1624 { 1, 1, 858, 525,1270, 350, 0, 0, 720}, 1625 { 1, 1, 858, 525,1270, 480, 0, 0, 760} 1626 }; 1627 1628 static struct XGI330_TVDataStruct XGI_ExtNTSCData[] = 1629 { 1630 { 9, 5, 1001, 453,1270, 420, 171, 0, 171}, 1631 { 12, 5, 858, 403,1270, 420, 171, 0, 171}, 1632 { 9, 5, 1001, 453,1270, 420, 171, 0, 171}, 1633 { 12, 5, 858, 403,1270, 420, 171, 0, 171}, 1634 { 143, 80, 836, 523,1270, 420, 224, 0, 0}, 1635 { 143, 120,1008, 643,1270, 420, 0, 1, 0}, 1636 { 1, 1,1120, 821,1516, 420, 0, 1, 0}, /*301b*/ 1637 { 2, 1, 858, 503,1584, 480, 0, 1, 0}, 1638 { 3, 2,1001, 533,1270, 420, 0, 0, 0} 1639 }; 1640 1641 static struct XGI330_TVDataStruct XGI_St1HiTVData[] = 1642 { 1643 { 1,1,892,563,690,800,0,0,0 }, /* 00 (320x200,320x400,640x200,640x400) */ 1644 { 1,1,892,563,690,700,0,0,0 }, /* 01 (320x350,640x350) */ 1645 { 1,1,1000,563,785,800,0,0,0 }, /* 02 (360x400,720x400) */ 1646 { 1,1,1000,563,785,700,0,0,0 }, /* 03 (720x350) */ 1647 { 1,1,892,563,690,960,0,0,0 }, /* 04 (320x240,640x480) */ 1648 { 8,5,1050,683,1648,960,0x150,1,0 } /* 05 (400x300,800x600) */ 1649 }; 1650 1651 static struct XGI330_TVDataStruct XGI_St2HiTVData[] = 1652 { 1653 { 3,1,840,483,1648,960,0x032,0,0 }, /* 00 (320x200,320x400,640x200,640x400) */ 1654 { 1,1,892,563,690,700,0,0,0 }, /* 01 (320x350,640x350) */ 1655 { 3,1,840,483,1648,960,0x032,0,0 }, /* 02 (360x400,720x400) */ 1656 { 1,1,1000,563,785,700,0,0,0 }, /* 03 (720x350) */ 1657 { 5,2,840,563,1648,960,0x08D,1,0 }, /* 04 (320x240,640x480) */ 1658 { 8,5,1050,683,1648,960,0x17C,1,0 } /* 05 (400x300,800x600) */ 1659 1660 }; 1661 1662 static struct XGI330_TVDataStruct XGI_ExtHiTVData[] = 1663 { 1664 { 6,1,840,563,1632,960,0,0,0 }, /* 00 (320x200,320x400,640x200,640x400) */ 1665 { 3,1,960,563,1632,960,0,0,0 }, /* 01 (320x350,640x350) */ 1666 { 3,1,840,483,1632,960,0,0,0 }, /* 02 (360x400,720x400) */ 1667 { 3,1,960,563,1632,960,0,0,0 }, /* 03 (720x350) */ 1668 { 5,1,840,563,1648,960,0x166,1,0 }, /* 04 (320x240,640x480) */ 1669 { 16,5,1050,683,1648,960,0x143,1,0 }, /* 05 (400x300,800x600) */ 1670 { 25,12,1260,851,1648,960,0x032,0,0 }, /* 06 (512x384,1024x768) */ 1671 { 5,4,1575,1124,1648,960,0x128,0,0 }, /* 07 (1280x1024) */ 1672 { 4,1,1050,563,1548,960,0x143,1,0 }, /* 08 (800x480) */ 1673 { 5,2,1400,659,1648,960,0x032,0,0 }, /* 09 (1024x576) */ 1674 { 8,5,1750,803,1648,960,0x128,0,0 } /* 0A (1280x720) */ 1675 1676 }; 1677 1678 static struct XGI330_TVDataStruct XGI_ExtYPbPr525iData[] = 1679 { 1680 { 9, 5, 1001, 453,1270, 420, 171, 0, 171}, 1681 { 12, 5, 858, 403,1270, 420, 171, 0, 171}, 1682 { 9, 5, 1001, 453,1270, 420, 171, 0, 171}, 1683 { 12, 5, 858, 403,1270, 420, 171, 0, 171}, 1684 { 143, 80, 836, 523,1250, 420, 224, 0, 0}, 1685 { 143, 120,1008, 643,1250, 420, 0, 1, 0}, 1686 { 1, 1,1120, 821,1516, 420, 0, 1, 0}, /*301b*/ 1687 { 2, 1, 858, 503,1584, 480, 0, 1, 0}, 1688 { 3, 2,1001, 533,1250, 420, 0, 0, 0} 1689 }; 1690 1691 static struct XGI330_TVDataStruct XGI_StYPbPr525iData[] = 1692 { 1693 { 1, 1, 858, 525,1270, 400, 50, 0, 760}, 1694 { 1, 1, 858, 525,1270, 350, 50, 0, 640}, 1695 { 1, 1, 858, 525,1270, 400, 0, 0, 720}, 1696 { 1, 1, 858, 525,1270, 350, 0, 0, 720}, 1697 { 1, 1, 858, 525,1270, 480, 0, 0, 760}, 1698 }; 1699 1700 static struct XGI330_TVDataStruct XGI_ExtYPbPr525pData[] = 1701 { 1702 { 9, 5, 1001, 453,1270, 420, 171, 0, 171}, 1703 { 12, 5, 858, 403,1270, 420, 171, 0, 171}, 1704 { 9, 5, 1001, 453,1270, 420, 171, 0, 171}, 1705 { 12, 5, 858, 403,1270, 420, 171, 0, 171}, 1706 { 143, 80, 836, 523,1270, 420, 224, 0, 0}, 1707 { 143, 120,1008, 643,1270, 420, 0, 1, 0}, 1708 { 1, 1,1120, 821,1516, 420, 0, 1, 0}, /*301b*/ 1709 { 2, 1, 858, 503,1584, 480, 0, 1, 0}, 1710 { 3, 2,1001, 533,1270, 420, 0, 0, 0} 1711 }; 1712 1713 static struct XGI330_TVDataStruct XGI_StYPbPr525pData[] = 1714 { 1715 { 1, 1,1716, 525,1270, 400, 50, 0, 760}, 1716 { 1, 1,1716, 525,1270, 350, 50, 0, 640}, 1717 { 1, 1,1716, 525,1270, 400, 0, 0, 720}, 1718 { 1, 1,1716, 525,1270, 350, 0, 0, 720}, 1719 { 1, 1,1716, 525,1270, 480, 0, 0, 760}, 1720 }; 1721 1722 static struct XGI330_TVDataStruct XGI_ExtYPbPr750pData[] = 1723 { 1724 { 3, 1, 935, 470,1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,640x200,640x400) */ 1725 { 24, 7, 935, 420,1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */ 1726 { 3, 1, 935, 470,1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */ 1727 { 24, 7, 935, 420,1130, 680, 50, 0, 0}, /* 03 (720x350) */ 1728 { 2, 1,1100, 590,1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */ 1729 { 3, 2,1210, 690,1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */ 1730 { 1, 1,1375, 878,1130, 640, 638, 0, 0}, /* 06 (1024x768) */ 1731 { 2, 1, 858, 503,1130, 480, 0, 1, 0}, /* 07 (720x480) */ 1732 { 5, 4,1815, 570,1130, 660, 50, 0, 0}, 1733 { 5, 3,1100, 686,1130, 640, 50, 1, 0}, 1734 { 10, 9,1320, 830,1130, 640, 50, 0, 0} 1735 }; 1736 1737 static struct XGI330_TVDataStruct XGI_StYPbPr750pData[] = 1738 { 1739 { 1, 1,1650, 750,1280, 400, 50, 0, 760}, 1740 { 1, 1,1650, 750,1280, 350, 50, 0, 640}, 1741 { 1, 1,1650, 750,1280, 400, 0, 0, 720}, 1742 { 1, 1,1650, 750,1280, 350, 0, 0, 720}, 1743 { 1, 1,1650, 750,1280, 480, 0, 0, 760}, 1744 }; 1745 1746 static unsigned char XGI330_NTSCTiming[] = { 1747 0x17,0x1d,0x03,0x09,0x05,0x06,0x0c,0x0c, 1748 0x94,0x49,0x01,0x0a,0x06,0x0d,0x04,0x0a, 1749 0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x1b, 1750 0x0c,0x50,0x00,0x97,0x00,0xda,0x4a,0x17, 1751 0x7d,0x05,0x4b,0x00,0x00,0xe2,0x00,0x02, 1752 0x03,0x0a,0x65,0x9d,0x08,0x92,0x8f,0x40, 1753 0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x50, 1754 0x00,0x40,0x44,0x00,0xdb,0x02,0x3b,0x00}; 1755 1756 static unsigned char XGI330_PALTiming[] = { 1757 0x21,0x5A,0x35,0x6e,0x04,0x38,0x3d,0x70, 1758 0x94,0x49,0x01,0x12,0x06,0x3e,0x35,0x6d, 1759 0x06,0x14,0x3e,0x35,0x6d,0x00,0x45,0x2b, 1760 0x70,0x50,0x00,0x9b,0x00,0xd9,0x5d,0x17, 1761 0x7d,0x05,0x45,0x00,0x00,0xe8,0x00,0x02, 1762 0x0d,0x00,0x68,0xb0,0x0b,0x92,0x8f,0x40, 1763 0x60,0x80,0x14,0x90,0x8c,0x60,0x14,0x63, 1764 0x00,0x40,0x3e,0x00,0xe1,0x02,0x28,0x00}; 1765 1766 static unsigned char XGI330_HiTVExtTiming[] = 1767 { 1768 0x2D,0x60,0x2C,0x5F,0x08,0x31,0x3A,0x64, 1769 0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D, 1770 0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F, 1771 0x64,0x90,0x33,0x8C,0x18,0x36,0x3E,0x13, 1772 0x2A,0xDE,0x2A,0x44,0x40,0x2A,0x44,0x40, 1773 0x8E,0x8E,0x82,0x07,0x0B, 1774 0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C, 1775 0x60,0x14,0x3D,0x63,0x4F, 1776 0x27,0x00,0xfc,0xff,0x6a,0x00 1777 1778 }; 1779 1780 static unsigned char XGI330_HiTVSt1Timing[] = 1781 { 1782 0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x65, 1783 0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D, 1784 0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F, 1785 0x65,0x90,0x7B,0xA8,0x03,0xF0,0x87,0x03, 1786 0x11,0x15,0x11,0xCF,0x10,0x11,0xCF,0x10, 1787 0x35,0x35,0x3B,0x69,0x1D, 1788 0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C, 1789 0x60,0x04,0x86,0xAF,0x5D, 1790 0x0E,0x00,0xfc,0xff,0x2d,0x00 1791 }; 1792 1793 static unsigned char XGI330_HiTVSt2Timing[] = 1794 { 1795 0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x64, 1796 0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D, 1797 0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F, 1798 0x64,0x90,0x33,0x8C,0x18,0x36,0x3E,0x13, 1799 0x2A,0xDE,0x2A,0x44,0x40,0x2A,0x44,0x40, 1800 0x8E,0x8E,0x82,0x07,0x0B, 1801 0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C, 1802 0x60,0x14,0x3D,0x63,0x4F, 1803 0x27,0x00,0xFC,0xff,0x6a,0x00 1804 }; 1805 1806 static unsigned char XGI330_HiTVTextTiming[] = 1807 { 1808 0x32,0x65,0x2C,0x5F,0x08,0x31,0x3A,0x65, 1809 0x28,0x02,0x01,0x3D,0x06,0x3E,0x35,0x6D, 1810 0x06,0x14,0x3E,0x35,0x6D,0x00,0xC5,0x3F, 1811 0x65,0x90,0xE7,0xBC,0x03,0x0C,0x97,0x03, 1812 0x14,0x78,0x14,0x08,0x20,0x14,0x08,0x20, 1813 0xC8,0xC8,0x3B,0xD2,0x26, 1814 0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C, 1815 0x60,0x04,0x96,0x72,0x5C, 1816 0x11,0x00,0xFC,0xFF,0x32,0x00 1817 }; 1818 1819 static unsigned char XGI330_YPbPr750pTiming[] = 1820 { 1821 0x30,0x1d,0xe8,0x09,0x09,0xed,0x0c,0x0c, 1822 0x98,0x0a,0x01,0x0c,0x06,0x0d,0x04,0x0a, 1823 0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f, 1824 0xed,0x50,0x70,0x9f,0x16,0x59,0x60,0x13, 1825 0x27,0x0b,0x27,0xfc,0x30,0x27,0x1c,0xb0, 1826 0x4b,0x4b,0x6f,0x2f,0x63, 1827 0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C, 1828 0x60,0x14,0x73,0x00,0x40, 1829 0x11,0x00,0xfc,0xff,0x32,0x00 1830 }; 1831 1832 static unsigned char XGI330_YPbPr525pTiming[] = 1833 { 1834 0x3E,0x11,0x06,0x09,0x0b,0x0c,0x0c,0x0c, 1835 0x98,0x0a,0x01,0x0d,0x06,0x0d,0x04,0x0a, 1836 0x06,0x14,0x0d,0x04,0x0a,0x00,0x85,0x3f, 1837 0x0c,0x50,0xb2,0x9f,0x16,0x59,0x4f,0x13, 1838 0xad,0x11,0xad,0x1d,0x40,0x8a,0x3d,0xb8, 1839 0x51,0x5e,0x60,0x49,0x7d, 1840 0x92,0x0F,0x40,0x60,0x80,0x14,0x90,0x8C, 1841 0x60,0x14,0x4B,0x43,0x41, 1842 0x11,0x00,0xFC,0xFF,0x32,0x00 1843 }; 1844 1845 static unsigned char XGI330_YPbPr525iTiming[] = 1846 { 1847 0x1B,0x21,0x03,0x09,0x05,0x06,0x0C,0x0C, 1848 0x94,0x49,0x01,0x0A,0x06,0x0D,0x04,0x0A, 1849 0x06,0x14,0x0D,0x04,0x0A,0x00,0x85,0x1B, 1850 0x0C,0x50,0x00,0x97,0x00,0xDA,0x4A,0x17, 1851 0x7D,0x05,0x4B,0x00,0x00,0xE2,0x00,0x02, 1852 0x03,0x0A,0x65,0x9D,0x08, 1853 0x92,0x8F,0x40,0x60,0x80,0x14,0x90,0x8C, 1854 0x60,0x14,0x4B,0x00,0x40, 1855 0x44,0x00,0xDB,0x02,0x3B,0x00 1856 1857 }; 1858 1859 static unsigned char XGI330_HiTVGroup3Data[] = 1860 { 1861 0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0x5F, 1862 0x05,0x21,0xB2,0xB2,0x55,0x77,0x2A,0xA6, 1863 0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20, 1864 0x8C,0x6E,0x60,0x2E,0x58,0x48,0x72,0x44, 1865 0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80, 1866 0x4F,0x7F,0x03,0xA8,0x7D,0x20,0x1A,0xA9, 1867 0x14,0x05,0x03,0x7E,0x64,0x31,0x14,0x75, 1868 0x18,0x05,0x18,0x05,0x4C,0xA8,0x01 1869 }; 1870 1871 static unsigned char XGI330_HiTVGroup3Simu[] = 1872 { 1873 0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0x95, 1874 0xDB,0x20,0xB8,0xB8,0x55,0x47,0x2A,0xA6, 1875 0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20, 1876 0x8C,0x6E,0x60,0x15,0x26,0xD3,0xE4,0x11, 1877 0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80, 1878 0x67,0x36,0x01,0x47,0x0E,0x10,0xBE,0xB4, 1879 0x01,0x05,0x03,0x7E,0x65,0x31,0x14,0x75, 1880 0x18,0x05,0x18,0x05,0x4C,0xA8,0x01 1881 }; 1882 1883 static unsigned char XGI330_HiTVGroup3Text[] = 1884 { 1885 0x00,0x1A,0x22,0x63,0x62,0x22,0x08,0xA7, 1886 0xF5,0x20,0xCE,0xCE,0x55,0x47,0x2A,0xA6, 1887 0x25,0x2F,0x47,0xFA,0xC8,0xFF,0x8E,0x20, 1888 0x8C,0x6E,0x60,0x18,0x2C,0x0C,0x20,0x22, 1889 0x56,0x36,0x4F,0x6E,0x3F,0x80,0x00,0x80, 1890 0x93,0x3C,0x01,0x50,0x2F,0x10,0xF4,0xCA, 1891 0x01,0x05,0x03,0x7E,0x65,0x31,0x14,0x75, 1892 0x18,0x05,0x18,0x05,0x4C,0xA8,0x01 1893 }; 1894 1895 static unsigned char XGI330_Ren525pGroup3[] = 1896 { 1897 0x00,0x14,0x15,0x25,0x55,0x15,0x0b,0x13, 1898 0xB1,0x41,0x62,0x62,0xFF,0xF4,0x45,0xa6, 1899 0x25,0x2F,0x67,0xF6,0xbf,0xFF,0x8E,0x20, 1900 0xAC,0xDA,0x60,0xFe,0x6A,0x9A,0x06,0x10, 1901 0xd1,0x04,0x18,0x0a,0xFF,0x80,0x00,0x80, 1902 0x3c,0x77,0x00,0xEF,0xE0,0x10,0xB0,0xE0, 1903 0x10,0x4F,0x0F,0x0F,0x05,0x0F,0x08,0x6E, 1904 0x1a,0x1F,0x25,0x2a,0x4C,0xAA,0x01 1905 }; 1906 1907 static unsigned char XGI330_Ren750pGroup3[] = 1908 { 1909 0x00,0x14,0x15,0x25,0x55,0x15,0x0b,0x7a, 1910 0x54,0x41,0xE7,0xE7,0xFF,0xF4,0x45,0xa6, 1911 0x25,0x2F,0x67,0xF6,0xbf,0xFF,0x8E,0x20, 1912 0xAC,0x6A,0x60,0x2b,0x52,0xCD,0x61,0x10, 1913 0x51,0x04,0x18,0x0a,0x1F,0x80,0x00,0x80, 1914 0xFF,0xA4,0x04,0x2B,0x94,0x21,0x72,0x94, 1915 0x26,0x05,0x01,0x0F,0xed,0x0F,0x0A,0x64, 1916 0x18,0x1D,0x23,0x28,0x4C,0xAA,0x01 1917 }; 1918 1919 #if 0 1920 static struct XGI_PanelDelayTblStruct XGI330_PanelDelayTbl[] = 1921 { 1922 {{0x00,0x00}}, 1923 {{0x00,0x00}}, 1924 {{0x00,0x00}}, 1925 {{0x00,0x00}}, 1926 {{0x00,0x00}}, 1927 {{0x00,0x00}}, 1928 {{0x00,0x00}}, 1929 {{0x00,0x00}}, 1930 {{0x00,0x00}}, 1931 {{0x00,0x00}}, 1932 {{0x00,0x00}}, 1933 {{0x00,0x00}}, 1934 {{0x00,0x00}}, 1935 {{0x00,0x00}}, 1936 {{0x00,0x00}}, 1937 {{0x00,0x00}} 1938 }; 1939 1940 static struct XGI330_LVDSDataStruct XGI330_LVDS320x480Data_1[] = 1941 { 1942 {848, 433,400,525}, 1943 {848, 389,400,525}, 1944 {848, 433,400,525}, 1945 {848, 389,400,525}, 1946 {848, 518,400, 525}, 1947 {1056, 628,400,525}, 1948 {400, 525,400,525}, 1949 {800, 449,1000, 644}, 1950 {800, 525,1000, 635} 1951 }; 1952 1953 static struct XGI330_LVDSDataStruct XGI330_LVDS800x600Data_1[] = 1954 { 1955 {848, 433,1060, 629}, 1956 {848, 389,1060, 629}, 1957 {848, 433,1060, 629}, 1958 {848, 389,1060, 629}, 1959 {848, 518,1060, 629}, 1960 {1056, 628,1056, 628}, 1961 {1056, 628,1056, 628}, 1962 {800, 449,1000, 644}, 1963 {800, 525,1000, 635} 1964 }; 1965 1966 static struct XGI330_LVDSDataStruct XGI330_LVDS800x600Data_2[] = 1967 { 1968 {1056, 628,1056, 628}, 1969 {1056, 628,1056, 628}, 1970 {1056, 628,1056, 628}, 1971 {1056, 628,1056, 628}, 1972 {1056, 628,1056, 628}, 1973 {1056, 628,1056, 628}, 1974 {1056, 628,1056, 628}, 1975 {800, 449,1000, 644}, 1976 {800, 525,1000, 635} 1977 }; 1978 #endif 1979 1980 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1[] = 1981 { 1982 { 960 , 438 , 1344 , 806 } , /* 00 (320x200,320x400,640x200,640x400) */ 1983 { 960 , 388 , 1344 , 806 } , /* 01 (320x350,640x350) */ 1984 { 1040, 438 , 1344 , 806 } , /* 02 (360x400,720x400) */ 1985 { 1040, 388 , 1344 , 806 } , /* 03 (720x350) */ 1986 { 960 , 518 , 1344 , 806 } , /* 04 (320x240,640x480) */ 1987 {1120 , 638 , 1344 , 806 } , /* 05 (400x300,800x600) */ 1988 {1344 , 806 , 1344 , 806 } /* 06 (512x384,1024x768) */ 1989 }; 1990 1991 1992 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2[] = 1993 { 1994 {1344, 806,1344, 806}, 1995 {1344, 806,1344, 806}, 1996 {1344, 806,1344, 806}, 1997 {1344, 806,1344, 806}, 1998 {1344, 806,1344, 806}, 1999 {1344, 806,1344, 806}, 2000 {1344, 806,1344, 806}, 2001 {800, 449,1280, 801}, 2002 {800, 525,1280, 813} 2003 }; 2004 2005 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1[] = 2006 { 2007 {1048, 442,1688, 1066}, 2008 {1048, 392,1688, 1066}, 2009 {1048, 442,1688, 1066}, 2010 {1048, 392,1688, 1066}, 2011 {1048, 522,1688, 1066}, 2012 {1208, 642,1688, 1066}, 2013 {1432, 810,1688, 1066}, 2014 {1688, 1066,1688, 1066} 2015 }; 2016 2017 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2[] = 2018 { 2019 {1344, 806,1344, 806}, 2020 {1344, 806,1344, 806}, 2021 {1344, 806,1344, 806}, 2022 {1344, 806,1344, 806}, 2023 {1344, 806,1344, 806}, 2024 {1344, 806,1344, 806}, 2025 {1344, 806,1344, 806}, 2026 {800, 449,1280, 801}, 2027 {800, 525,1280, 813} 2028 }; 2029 /* 2030 struct XGI330_LVDSDataStruct XGI_LVDS1280x768Data_1[] = 2031 { 2032 {768,438,1408,806}, 2033 {768,388,1408,806}, 2034 {768,438,1408,806}, 2035 {768,388,1408,806}, 2036 {768,518,1408,806}, 2037 {928,638,1408,806}, 2038 {1408,806,1408,806}, 2039 {1408,806,1408,806}, 2040 {1408,806,1408,806} 2041 }; 2042 2043 struct XGI330_LVDSDataStruct XGI_LVDS1280x768Data_2[] = 2044 { 2045 {1408, 806,1408, 806}, 2046 {1408, 806,1408, 806}, 2047 {1408, 806,1408, 806}, 2048 {1408, 806,1408, 806}, 2049 {1408, 806,1408, 806}, 2050 {1408, 806,1408, 806}, 2051 {1408, 806,1408, 806}, 2052 {1408, 806,1408, 806}, 2053 {1408, 806,1408, 806} 2054 }; 2055 2056 struct XGI330_LVDSDataStruct XGI_LVDS1280x768NData_1[] = 2057 { 2058 {704, 438,1344, 806}, 2059 {704, 388,1344, 806}, 2060 {704, 438,1344, 806}, 2061 {704, 388,1344, 806}, 2062 {704, 518,1344, 806}, 2063 {864, 638,1344, 806}, 2064 {1088, 806,1344, 806}, 2065 {1344, 806,1344, 806}, 2066 {1344, 806,1344, 806} 2067 }; 2068 2069 struct XGI330_LVDSDataStruct XGI_LVDS1280x768NData_2[] = 2070 { 2071 {1344, 806,1344, 806}, 2072 {1344, 806,1344, 806}, 2073 {1344, 806,1344, 806}, 2074 {1344, 806,1344, 806}, 2075 {1344, 806,1344, 806}, 2076 {1344, 806,1344, 806}, 2077 {1344, 806,1344, 806}, 2078 {1344, 806,1344, 806}, 2079 {1344, 806,1344, 806} 2080 }; 2081 2082 struct XGI330_LVDSDataStruct XGI_LVDS1280x768SData_1[] = 2083 { 2084 {1048,438,1688,806}, 2085 {1048,388,1688,806}, 2086 {1148,438,1688,806}, 2087 {1148,388,1688,806}, 2088 {1048,518,1688,806}, 2089 {1208,638,1688,806}, 2090 {1432,806,1688,806}, 2091 {1688,806,1688,806}, 2092 {1688,806,1688,806} 2093 }; 2094 2095 struct XGI330_LVDSDataStruct XGI_LVDS1280x768SData_2[] = 2096 { 2097 {1688,806,1688,806}, 2098 {1688,806,1688,806}, 2099 {1688,806,1688,806}, 2100 {1688,806,1688,806}, 2101 {1688,806,1688,806}, 2102 {1688,806,1688,806}, 2103 {1688,806,1688,806}, 2104 {1688,806,1688,806}, 2105 {1688,806,1688,806} 2106 }; 2107 */ 2108 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_1[] = 2109 { 2110 {928,416,1688,1066}, 2111 {928,366,1688,1066}, 2112 {928,416,1688,1066}, 2113 {928,366,1688,1066}, 2114 {928,496,1688,1066}, 2115 {1088,616,1688,1066}, 2116 {1312,784,1688,1066}, 2117 {1568,1040,1688,1066}, 2118 {1688,1066,1688,1066} 2119 }; 2120 2121 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_2[] = 2122 { 2123 {1688,1066,1688,1066}, 2124 {1688,1066,1688,1066}, 2125 {1688,1066,1688,1066}, 2126 {1688,1066,1688,1066}, 2127 {1688,1066,1688,1066}, 2128 {1688,1066,1688,1066}, 2129 {1688,1066,1688,1066}, 2130 {1688,1066,1688,1066}, 2131 {1688,1066,1688,1066} 2132 }; 2133 2134 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1[] = 2135 { /* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */ 2136 { 1088,520,2048,1320 },/* 00 (320x200,320x400,640x200,640x400) */ 2137 { 1088,470,2048,1320 },/* 01 (320x350,640x350) */ 2138 { 1088,520,2048,1320 },/* 02 (360x400,720x400) */ 2139 { 1088,470,2048,1320 },/* 03 (720x350) */ 2140 { 1088,600,2048,1320 },/* 04 (320x240,640x480) */ 2141 { 1248,720,2048,1320 },/* 05 (400x300,800x600) */ 2142 { 1472,888,2048,1320 },/* 06 (512x384,1024x768) */ 2143 { 1728,1144,2048,1320 },/* 07 (640x512,1280x1024) */ 2144 { 1848,1170,2048,1320 },/* 08 (1400x1050) */ 2145 { 2048,1320,2048,1320 } /* 09 (1600x1200) */ 2146 }; 2147 2148 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingData[] = 2149 { 2150 { 800,449,800,449 }, /* 00 (320x200,320x400,640x200,640x400) */ 2151 { 800,449,800,449 }, /* 01 (320x350,640x350) */ 2152 { 800,449,800,449 }, /* 02 (360x400,720x400) */ 2153 { 800,449,800,449 }, /* 03 (720x350) */ 2154 { 800,525,800,525 }, /* 04 (640x480x60Hz) */ 2155 { 1056,628,1056,628 }, /* 05 (800x600x60Hz) */ 2156 { 1344,806,1344,806 }, /* 06 (1024x768x60Hz) */ 2157 { 1688,1066,1688,1066 }, /* 07 (1280x1024x60Hz) */ 2158 { 1688,1066,1688,1066 }, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */ 2159 { 2160,1250,2160,1250 }, /* 09 (1600x1200x60Hz) */ 2160 { 1688,806,1688,806 } /* 0A (1280x768x60Hz) */ 2161 }; 2162 2163 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1x75[] = 2164 { 2165 {960,438,1312,800 }, /* 00 (320x200,320x400,640x200,640x400) */ 2166 {960,388,1312,800 }, /* 01 (320x350,640x350) */ 2167 {1040,438,1312,800 }, /* 02 (360x400,720x400) */ 2168 {1040,388,1312,800 }, /* 03 (720x350) */ 2169 {928,512,1312,800 }, /* 04 (320x240,640x480) */ 2170 {1088,632,1312,800 }, /* 05 (400x300,800x600) */ 2171 {1312,800,1312,800 }, /* 06 (512x384,1024x768) */ 2172 }; 2173 2174 2175 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2x75[] = 2176 { 2177 {1312,800,1312,800}, /* ; 00 (320x200,320x400,640x200,640x400) */ 2178 {1312,800,1312,800}, /* ; 01 (320x350,640x350) */ 2179 {1312,800,1312,800}, /* ; 02 (360x400,720x400) */ 2180 {1312,800,1312,800}, /* ; 03 (720x350) */ 2181 {1312,800,1312,800}, /* ; 04 (320x240,640x480) */ 2182 {1312,800,1312,800}, /* ; 05 (400x300,800x600) */ 2183 {1312,800,1312,800}, /* ; 06 (512x384,1024x768) */ 2184 }; 2185 2186 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1x75[] = 2187 { 2188 {1048,442,1688,1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 2189 {1048,392,1688,1066 }, /* ; 01 (320x350,640x350) */ 2190 {1128,442,1688,1066 }, /* ; 02 (360x400,720x400) */ 2191 {1128,392,1688,1066 }, /* ; 03 (720x350) */ 2192 {1048,522,1688,1066 }, /* ; 04 (320x240,640x480) */ 2193 {1208,642,1688,1066 }, /* ; 05 (400x300,800x600) */ 2194 {1432,810,1688,1066 }, /* ; 06 (512x384,1024x768) */ 2195 {1688,1066,1688,1066 }, /* ; 06; 07 (640x512,1280x1024) */ 2196 }; 2197 2198 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2x75[] = 2199 { 2200 {1688,1066,1688,1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 2201 {1688,1066,1688,1066 }, /* ; 01 (320x350,640x350) */ 2202 {1688,1066,1688,1066 }, /* ; 02 (360x400,720x400) */ 2203 {1688,1066,1688,1066 }, /* ; 03 (720x350) */ 2204 {1688,1066,1688,1066 }, /* ; 04 (320x240,640x480) */ 2205 {1688,1066,1688,1066 }, /* ; 05 (400x300,800x600) */ 2206 {1688,1066,1688,1066 }, /* ; 06 (512x384,1024x768) */ 2207 {1688,1066,1688,1066 }, /* ; 06; 07 (640x512,1280x1024) */ 2208 }; 2209 2210 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingDatax75[] = 2211 { 2212 {800,449,800,449 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 2213 {800,449,800,449 }, /* ; 01 (320x350,640x350) */ 2214 {900,449,900,449 }, /* ; 02 (360x400,720x400) */ 2215 {900,449,900,449 }, /* ; 03 (720x350) */ 2216 {800,500,800,500 }, /* ; 04 (640x480x75Hz) */ 2217 {1056,625,1056,625 }, /* ; 05 (800x600x75Hz) */ 2218 {1312,800,1312,800 }, /* ; 06 (1024x768x75Hz) */ 2219 {1688,1066,1688,1066 }, /* ; 07 (1280x1024x75Hz) */ 2220 {1688,1066,1688,1066 }, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */ 2221 {2160,1250,2160,1250 }, /* ; 09 (1600x1200x75Hz) */ 2222 {1688,806,1688,806 }, /* ; 0A (1280x768x75Hz) */ 2223 }; 2224 2225 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1[] = 2226 { 2227 { 0,1048, 0, 771 }, /* 00 (320x200,320x400,640x200,640x400) */ 2228 { 0,1048, 0, 771 }, /* 01 (320x350,640x350) */ 2229 { 0,1048, 0, 771 }, /* 02 (360x400,720x400) */ 2230 { 0,1048, 0, 771 }, /* 03 (720x350) */ 2231 { 0,1048, 0, 771 }, /* 04 (640x480x60Hz) */ 2232 { 0,1048, 0, 771 }, /* 05 (800x600x60Hz) */ 2233 { 0,1048, 805, 770 } /* 06 (1024x768x60Hz) */ 2234 } ; 2235 2236 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2[] = 2237 { 2238 { 1142, 856, 622, 587 }, /* 00 (320x200,320x400,640x200,640x400) */ 2239 { 1142, 856, 597, 562 }, /* 01 (320x350,640x350) */ 2240 { 1142, 856, 622, 587 }, /* 02 (360x400,720x400) */ 2241 { 1142, 856, 597, 562 }, /* 03 (720x350) */ 2242 { 1142,1048, 722, 687 }, /* 04 (640x480x60Hz) */ 2243 { 1232, 936, 722, 687 }, /* 05 (800x600x60Hz) */ 2244 { 0,1048, 805, 771 } /* 06 (1024x768x60Hz) */ 2245 }; 2246 2247 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3[] = 2248 { 2249 { 320, 24, 622, 587 }, /* 00 (320x200,320x400,640x200,640x400) */ 2250 { 320, 24, 597, 562 }, /* 01 (320x350,640x350) */ 2251 { 320, 24, 622, 587 }, /* 02 (360x400,720x400) */ 2252 { 320, 24, 597, 562 }, /* 03 (720x350) */ 2253 { 320, 24, 722, 687 } /* 04 (640x480x60Hz) */ 2254 }; 2255 2256 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1[] = 2257 { 2258 { 0,1328, 0, 1025 }, /* 00 (320x200,320x400,640x200,640x400) */ 2259 { 0,1328, 0, 1025 }, /* 01 (320x350,640x350) */ 2260 { 0,1328, 0, 1025 }, /* 02 (360x400,720x400) */ 2261 { 0,1328, 0, 1025 }, /* 03 (720x350) */ 2262 { 0,1328, 0, 1025 }, /* 04 (640x480x60Hz) */ 2263 { 0,1328, 0, 1025 }, /* 05 (800x600x60Hz) */ 2264 { 0,1328, 0, 1025 }, /* 06 (1024x768x60Hz) */ 2265 { 0,1328, 1065, 1024 } /* 07 (1280x1024x60Hz) */ 2266 }; 2267 2268 /* The Display setting for DE Mode Panel */ 2269 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2[] = 2270 { 2271 { 1368,1008,752,711 }, /* 00 (320x200,320x400,640x200,640x400) */ 2272 { 1368,1008,729,688 }, /* 01 (320x350,640x350) */ 2273 { 1408,1048,752,711 }, /* 02 (360x400,720x400) */ 2274 { 1408,1048,729,688 }, /* 03 (720x350) */ 2275 { 1368,1008,794,753 }, /* 04 (640x480x60Hz) */ 2276 { 1448,1068,854,813 }, /* 05 (800x600x60Hz) */ 2277 { 1560,1200,938,897 }, /* 06 (1024x768x60Hz) */ 2278 { 0000,1328,0,1025 } /* 07 (1280x1024x60Hz) */ 2279 }; 2280 2281 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_1[] = 2282 { 2283 { 0,1448,0,1051 }, /* 00 (320x200,320x400,640x200,640x400) */ 2284 { 0,1448,0,1051 }, /* 01 (320x350,640x350) */ 2285 { 0,1448,0,1051 }, /* 02 (360x400,720x400) */ 2286 { 0,1448,0,1051 }, /* 03 (720x350) */ 2287 { 0,1448,0,1051 }, /* 04 (640x480x60Hz) */ 2288 { 0,1448,0,1051 }, /* 05 (800x600x60Hz) */ 2289 { 0,1448,0,1051 }, /* 06 (1024x768x60Hz) */ 2290 { 0,1448,0,1051 }, /* 07 (1280x1024x60Hz) */ 2291 { 0,1448,0,1051 } /* 08 (1400x1050x60Hz) */ 2292 }; 2293 2294 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_2[] = 2295 { 2296 { 1308,1068, 781, 766 }, /* 00 (320x200,320x400,640x200,640x400) */ 2297 { 1308,1068, 781, 766 }, /* 01 (320x350,640x350) */ 2298 { 1308,1068, 781, 766 }, /* 02 (360x400,720x400) */ 2299 { 1308,1068, 781, 766 }, /* 03 (720x350) */ 2300 { 1308,1068, 781, 766 }, /* 04 (640x480x60Hz) */ 2301 { 1388,1148, 841, 826 }, /* 05 (800x600x60Hz) */ 2302 { 1490,1250, 925, 910 }, /* 06 (1024x768x60Hz) */ 2303 { 1608,1368,1053,1038 }, /* 07 (1280x1024x60Hz) */ 2304 { 0,1448,0,1051 } /* 08 (1400x1050x60Hz) */ 2305 }; 2306 2307 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Des_1[] = 2308 { 2309 { 0,1664,0,1201 }, /* 00 (320x200,320x400,640x200,640x400) */ 2310 { 0,1664,0,1201 }, /* 01 (320x350,640x350) */ 2311 { 0,1664,0,1201 }, /* 02 (360x400,720x400) */ 2312 { 0,1664,0,1201 }, /* 03 (720x350) */ 2313 { 0,1664,0,1201 }, /* 04 (640x480x60Hz) */ 2314 { 0,1664,0,1201 }, /* 05 (800x600x60Hz) */ 2315 { 0,1664,0,1201 }, /* 06 (1024x768x60Hz) */ 2316 { 0,1664,0,1201 }, /* 07 (1280x1024x60Hz) */ 2317 { 0,1664,0,1201 }, /* 08 (1400x1050x60Hz) */ 2318 { 0,1664,0,1201 } /* 09 (1600x1200x60Hz) */ 2319 }; 2320 2321 2322 2323 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = 2324 { 2325 { 0, 648, 448, 405, 96, 2 }, /* 00 (320x200,320x400,640x200,640x400) */ 2326 { 0, 648, 448, 355, 96, 2 }, /* 01 (320x350,640x350) */ 2327 { 0, 648, 448, 405, 96, 2 }, /* 02 (360x400,720x400) */ 2328 { 0, 648, 448, 355, 96, 2 }, /* 03 (720x350) */ 2329 { 0, 648, 1, 483, 96, 2 }, /* 04 (640x480x60Hz) */ 2330 { 0, 840, 627, 600, 128, 4 }, /* 05 (800x600x60Hz) */ 2331 { 0,1048, 805, 770, 136, 6 }, /* 06 (1024x768x60Hz) */ 2332 { 0,1328,0,1025, 112, 3 }, /* 07 (1280x1024x60Hz) */ 2333 { 0,1438,0,1051, 112, 3 }, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */ 2334 { 0,1664,0,1201, 192, 3 }, /* 09 (1600x1200x60Hz) */ 2335 { 0,1328,0,0771, 112, 6 } /* 0A (1280x768x60Hz) */ 2336 }; 2337 2338 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75[] = /* ; 1024x768 Full-screen */ 2339 { 2340 {0,1040,0,769}, /* ; 00 (320x200,320x400,640x200,640x400) */ 2341 {0,1040,0,769}, /* ; 01 (320x350,640x350) */ 2342 {0,1040,0,769}, /* ; 02 (360x400,720x400) */ 2343 {0,1040,0,769}, /* ; 03 (720x350) */ 2344 {0,1040,0,769}, /* ; 04 (640x480x75Hz) */ 2345 {0,1040,0,769}, /* ; 05 (800x600x75Hz) */ 2346 {0,1040,0,769} /* ; 06 (1024x768x75Hz) */ 2347 }; 2348 2349 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75[] = /* ; 1024x768 center-screen (Enh. Mode) */ 2350 { 2351 {1142, 856,622,587 }, /* 00 (320x200,320x400,640x200,640x400) */ 2352 {1142, 856,597,562 }, /* 01 (320x350,640x350) */ 2353 {1142, 856,622,587 }, /* 02 (360x400,720x400) */ 2354 {1142, 856,597,562 }, /* 03 (720x350) */ 2355 {1142,1048,722,687 }, /* 04 (640x480x60Hz) */ 2356 {1232, 936,722,687 }, /* 05 (800x600x60Hz) */ 2357 { 0,1048,805,771 } /* 06 (1024x768x60Hz) */ 2358 }; 2359 2360 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75[] = /* ; 1024x768 center-screen (St.Mode) */ 2361 { 2362 {320,24,622,587 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 2363 {320,24,597,562 }, /* ; 01 (320x350,640x350) */ 2364 {320,24,622,587 }, /* ; 02 (360x400,720x400) */ 2365 {320,24,597,562 }, /* ; 03 (720x350) */ 2366 {320,24,722,687 } /* ; 04 (640x480x60Hz) */ 2367 }; 2368 2369 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1x75[] = 2370 { 2371 {0,1296,0,1025}, /* ; 00 (320x200,320x400,640x200,640x400) */ 2372 {0,1296,0,1025}, /* ; 01 (320x350,640x350) */ 2373 {0,1296,0,1025}, /* ; 02 (360x400,720x400) */ 2374 {0,1296,0,1025}, /* ; 03 (720x350) */ 2375 {0,1296,0,1025}, /* ; 04 (640x480x75Hz) */ 2376 {0,1296,0,1025}, /* ; 05 (800x600x75Hz) */ 2377 {0,1296,0,1025}, /* ; 06 (1024x768x75Hz) */ 2378 {0,1296,0,1025} /* ; 07 (1280x1024x75Hz) */ 2379 }; 2380 2381 /* The Display setting for DE Mode Panel */ 2382 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75[] = /* [ycchen] 02/18/03 Set DE as default */ 2383 { 2384 {1368,976,752,711 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 2385 {1368,976,729,688 }, /* ; 01 (320x350,640x350) */ 2386 {1408,976,752,711 }, /* ; 02 (360x400,720x400) */ 2387 {1408,976,729,688 }, /* ; 03 (720x350) */ 2388 {1368,976,794,753 }, /* ; 04 (640x480x75Hz) */ 2389 {1448,1036,854,813}, /* ; 05 (800x600x75Hz) */ 2390 {1560,1168,938,897}, /* ; 06 (1024x768x75Hz) */ 2391 {0,1296,0,1025 } /* ; 07 (1280x1024x75Hz) */ 2392 }; 2393 2394 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = /* Scaling LCD 75Hz */ 2395 { 2396 { 0,648,448,405,96,2 }, /* ; 00 (320x200,320x400,640x200,640x400) */ 2397 { 0,648,448,355,96,2 }, /* ; 01 (320x350,640x350) */ 2398 { 0,729,448,405,108,2 }, /* ; 02 (360x400,720x400) */ 2399 { 0,729,448,355,108,2 }, /* ; 03 (720x350) */ 2400 { 0,656,0,481,64,3 }, /* ; 04 (640x480x75Hz) */ 2401 { 0,816,0,601,80,3 }, /* ; 05 (800x600x75Hz) */ 2402 { 0,1040,0,769,96,3 }, /* ; 06 (1024x768x75Hz) */ 2403 { 0,1296,0,1025,144,3 }, /* ; 07 (1280x1024x75Hz) */ 2404 { 0,1448,0,1051,112,3 }, /* ; 08 (1400x1050x75Hz) ;;[ycchen] 12/19/02 */ 2405 { 0,1664,0,1201,192,3 }, /* ; 09 (1600x1200x75Hz) */ 2406 { 0,1328,0,771,112,6 } /* ; 0A (1280x768x75Hz) */ 2407 }; 2408 2409 #if 0 2410 static struct XGI330_LVDSDataStruct XGI330_LVDS640x480Data_1[] = 2411 { 2412 {800, 449, 800, 449}, 2413 {800, 449, 800, 449}, 2414 {800, 449, 800, 449}, 2415 {800, 449, 800, 449}, 2416 {800, 525, 800, 525}, 2417 {1056, 628,1056, 628}, 2418 {1056, 628,1056, 628}, 2419 {1056, 628,1056, 628}, 2420 {1056, 628,1056, 628} 2421 }; 2422 #endif 2423 2424 static struct XGI330_CHTVDataStruct XGI_CHTVUNTSCData[] = 2425 { 2426 {840, 600, 840, 600}, 2427 {840, 600, 840, 600}, 2428 {840, 600, 840, 600}, 2429 {840, 600, 840, 600}, 2430 {784, 600, 784, 600}, 2431 {1064, 750,1064, 750} 2432 }; 2433 2434 static struct XGI330_CHTVDataStruct XGI_CHTVONTSCData[] = 2435 { 2436 {840, 525, 840, 525}, 2437 {840, 525, 840, 525}, 2438 {840, 525, 840, 525}, 2439 {840, 525, 840, 525}, 2440 {784, 525, 784, 525}, 2441 {1040, 700,1040, 700} 2442 }; 2443 2444 static struct XGI330_CHTVDataStruct XGI_CHTVUPALData[] = 2445 { 2446 {1008, 625,1008, 625}, 2447 {1008, 625,1008, 625}, 2448 {1008, 625,1008, 625}, 2449 {1008, 625,1008, 625}, 2450 {840, 750, 840, 750}, 2451 {936, 836, 936, 836} 2452 }; 2453 2454 static struct XGI330_CHTVDataStruct XGI_CHTVOPALData[] = 2455 { 2456 {1008, 625,1008, 625}, 2457 {1008, 625,1008, 625}, 2458 {1008, 625,1008, 625}, 2459 {1008, 625,1008, 625}, 2460 {840, 625, 840, 625}, 2461 {960, 750, 960, 750} 2462 }; 2463 2464 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H[] = 2465 { 2466 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2467 {{ 0x4B,0x27,0x8F,0x32,0x1B,0x00,0x45,0x00 }}, /* 00 (320x) */ 2468 {{ 0x4B,0x27,0x8F,0x2B,0x03,0x00,0x44,0x00 }}, /* 01 (360x) */ 2469 {{ 0x55,0x31,0x99,0x46,0x1D,0x00,0x55,0x00 }}, /* 02 (400x) */ 2470 {{ 0x63,0x3F,0x87,0x4A,0x93,0x00,0x01,0x00 }}, /* 03 (512x) */ 2471 {{ 0x73,0x4F,0x97,0x55,0x86,0x00,0x05,0x00 }}, /* 04 (640x) */ 2472 {{ 0x73,0x4F,0x97,0x55,0x86,0x00,0x05,0x00 }}, /* 05 (720x) */ 2473 {{ 0x87,0x63,0x8B,0x69,0x1A,0x00,0x26,0x00 }}, /* 06 (800x) */ 2474 {{ 0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* 07 (1024x) */ 2475 }; 2476 2477 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H[] = 2478 { 2479 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2480 {{ 0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }}, /* 00 (320x) */ 2481 {{ 0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }}, /* 01 (360x) */ 2482 {{ 0x60,0x31,0x84,0x3A,0x88,0x00,0x01,0x00 }}, /* 02 (400x) */ 2483 {{ 0x6E,0x3F,0x92,0x48,0x96,0x00,0x01,0x00 }}, /* 03 (512x) */ 2484 {{ 0x7E,0x4F,0x82,0x58,0x06,0x00,0x06,0x00 }}, /* 04 (640x) */ 2485 {{ 0x7E,0x4F,0x82,0x58,0x06,0x00,0x06,0x00 }}, /* 05 (720x) */ 2486 {{ 0x92,0x63,0x96,0x6C,0x1A,0x00,0x06,0x00 }}, /* 06 (800x) */ 2487 {{ 0xAE,0x7F,0x92,0x88,0x96,0x00,0x02,0x00 }}, /* 07 (1024x) */ 2488 {{ 0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* 08 (1280x) */ 2489 }; 2490 2491 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H[] = 2492 { 2493 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2494 {{ 0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }}, /* 00 (320x) */ 2495 {{ 0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }}, /* 01 (360x) */ 2496 {{ 0x63,0x31,0x87,0x3D,0x8E,0x00,0x01,0x00 }}, /* 02 (400x) */ 2497 {{ 0x63,0x3F,0x87,0x45,0x96,0x00,0x01,0x00 }}, /* 03 (512x) */ 2498 {{ 0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }}, /* 04 (640x) */ 2499 {{ 0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }}, /* 05 (720x) */ 2500 {{ 0xA3,0x63,0x87,0x78,0x89,0x00,0x02,0x00 }}, /* 06 (800x) */ 2501 {{ 0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* 07 (1024x) */ 2502 }; 2503 2504 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H[] = 2505 { 2506 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2507 {{ 0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }}, /* 00 (320x) */ 2508 {{ 0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }}, /* 01 (360x) */ 2509 {{ 0x7E,0x40,0x84,0x49,0x91,0x00,0x01,0x00 }}, /* 02 (400x) */ 2510 {{ 0x7E,0x47,0x93,0x50,0x9E,0x00,0x01,0x00 }}, /* 03 (512x) */ 2511 {{ 0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }}, /* 04 (640x) */ 2512 {{ 0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }}, /* 05 (720x) */ 2513 {{ 0xCE,0x81,0x94,0x8A,0x98,0x00,0x02,0x00 }}, /* 06 (800x) */ 2514 {{ 0xCE,0x8F,0x82,0x98,0x06,0x00,0x07,0x00 }}, /* 07 (1024x) */ 2515 {{ 0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* 08 (1280x) */ 2516 }; 2517 2518 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = 2519 { /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2520 {{ 0x47,0x27,0x8B,0x2C,0x1A,0x00,0x05,0x00 }}, /* 00 (320x) */ 2521 {{ 0x47,0x27,0x8B,0x30,0x1E,0x00,0x05,0x00 }}, /* 01 (360x) */ 2522 {{ 0x51,0x31,0x95,0x36,0x04,0x00,0x01,0x00 }}, /* 02 (400x) */ 2523 {{ 0x5F,0x3F,0x83,0x44,0x92,0x00,0x01,0x00 }}, /* 03 (512x) */ 2524 {{ 0x6F,0x4F,0x93,0x54,0x82,0x00,0x05,0x00 }}, /* 04 (640x) */ 2525 {{ 0x6F,0x4F,0x93,0x54,0x82,0x00,0x05,0x00 }}, /* 05 (720x) */ 2526 {{ 0x83,0x63,0x87,0x68,0x16,0x00,0x06,0x00 }}, /* 06 (800x) */ 2527 {{ 0x9F,0x7F,0x83,0x84,0x92,0x00,0x02,0x00 }}, /* 07 (1024x) */ 2528 {{ 0xBF,0x9F,0x83,0xA4,0x12,0x00,0x07,0x00 }}, /* 08 (1280x) */ 2529 {{ 0xCE,0xAE,0x92,0xB3,0x01,0x00,0x03,0x00 }} /* 09 (1400x) */ 2530 }; 2531 2532 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = 2533 { /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2534 {{ 0x76,0x3F,0x83,0x45,0x8C,0x00,0x41,0x00 }}, /* 00 (320x) */ 2535 {{ 0x76,0x3F,0x83,0x45,0x8C,0x00,0x41,0x00 }}, /* 01 (360x) */ 2536 {{ 0x76,0x31,0x9A,0x48,0x9F,0x00,0x41,0x00 }}, /* 02 (400x) */ 2537 {{ 0x76,0x3F,0x9A,0x4F,0x96,0x00,0x41,0x00 }}, /* 03 (512x) */ 2538 {{ 0xCE,0x7E,0x82,0x87,0x9E,0x00,0x02,0x00 }}, /* 04 (640x) */ 2539 {{ 0xCE,0x7E,0x82,0x87,0x9E,0x00,0x02,0x00 }}, /* 05 (720x) */ 2540 {{ 0xCE,0x63,0x92,0x96,0x04,0x00,0x07,0x00 }}, /* 06 (800x) */ 2541 {{ 0xCE,0x7F,0x92,0xA4,0x12,0x00,0x07,0x00 }}, /* 07 (1024x) */ 2542 {{ 0xCE,0x9F,0x92,0xB4,0x02,0x00,0x03,0x00 }}, /* 08 (1280x) */ 2543 {{ 0xCE,0xAE,0x92,0xBC,0x0A,0x00,0x03,0x00 }} /* 09 (1400x) */ 2544 }; 2545 2546 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = 2547 /* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */ 2548 { /* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2549 {{ 0x5B,0x27,0x9F,0x32,0x0A,0x00,0x01,0x00 }},/* 00 (320x) */ 2550 {{ 0x5B,0x27,0x9F,0x32,0x0A,0x00,0x01,0x00 }},/* 01 (360x) */ 2551 {{ 0x65,0x31,0x89,0x3C,0x94,0x00,0x01,0x00 }},/* 02 (400x) */ 2552 {{ 0x73,0x3F,0x97,0x4A,0x82,0x00,0x05,0x00 }},/* 03 (512x) */ 2553 {{ 0x83,0x4F,0x87,0x51,0x09,0x00,0x06,0x00 }},/* 04 (640x) */ 2554 {{ 0x83,0x4F,0x87,0x51,0x09,0x00,0x06,0x00 }},/* 05 (720x) */ 2555 {{ 0x97,0x63,0x9B,0x65,0x1D,0x00,0x06,0xF0 }},/* 06 (800x) */ 2556 {{ 0xB3,0x7F,0x97,0x81,0x99,0x00,0x02,0x00 }},/* 07 (1024x) */ 2557 {{ 0xD3,0x9F,0x97,0xA1,0x19,0x00,0x07,0x00 }},/* 08 (1280x) */ 2558 {{ 0xE2,0xAE,0x86,0xB9,0x91,0x00,0x03,0x00 }},/* 09 (1400x) */ 2559 {{ 0xFB,0xC7,0x9F,0xC9,0x81,0x00,0x07,0x00 }} /* 0A (1600x) */ 2560 }; 2561 2562 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = 2563 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */ 2564 {{ 0x97,0x1F,0x60,0x87,0x5D,0x83,0x10 }}, /* 00 (x350) */ 2565 {{ 0xB4,0x1F,0x92,0x89,0x8F,0xB5,0x30 }}, /* 01 (x400) */ 2566 {{ 0x04,0x3E,0xE2,0x89,0xDF,0x05,0x00 }}, /* 02 (x480) */ 2567 {{ 0x7C,0xF0,0x5A,0x8F,0x57,0x7D,0xA0 }}, /* 03 (x600) */ 2568 {{ 0x24,0xF5,0x02,0x88,0xFF,0x25,0x90 }} /* 04 (x768) */ 2569 }; 2570 2571 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = 2572 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */ 2573 {{ 0x24,0xBB,0x31,0x87,0x5D,0x25,0x30 }}, /* 00 (x350) */ 2574 {{ 0x24,0xBB,0x4A,0x80,0x8F,0x25,0x30 }}, /* 01 (x400) */ 2575 {{ 0x24,0xBB,0x72,0x88,0xDF,0x25,0x30 }}, /* 02 (x480) */ 2576 {{ 0x24,0xF1,0xAE,0x84,0x57,0x25,0xB0 }}, /* 03 (x600) */ 2577 {{ 0x24,0xF5,0x02,0x88,0xFF,0x25,0x90 }} /* 04 (x768) */ 2578 }; 2579 2580 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = 2581 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */ 2582 {{ 0x86,0x1F,0x5E,0x82,0x5D,0x87,0x00 }}, /* 00 (x350) */ 2583 {{ 0xB8,0x1F,0x90,0x84,0x8F,0xB9,0x30 }}, /* 01 (x400) */ 2584 {{ 0x08,0x3E,0xE0,0x84,0xDF,0x09,0x00 }}, /* 02 (x480) */ 2585 {{ 0x80,0xF0,0x58,0x8C,0x57,0x81,0xA0 }}, /* 03 (x600) */ 2586 {{ 0x28,0xF5,0x00,0x84,0xFF,0x29,0x90 }}, /* 04 (x768) */ 2587 {{ 0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9 }} /* 05 (x1024) */ 2588 }; 2589 2590 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = 2591 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */ 2592 {{ 0x28,0xD2,0xAF,0x83,0xAE,0xD8,0xA1 }}, /* 00 (x350) */ 2593 {{ 0x28,0xD2,0xC8,0x8C,0xC7,0xF2,0x81 }}, /* 01 (x400) */ 2594 {{ 0x28,0xD2,0xF0,0x84,0xEF,0x1A,0xB1 }}, /* 02 (x480) */ 2595 {{ 0x28,0xDE,0x2C,0x8F,0x2B,0x56,0x91 }}, /* 03 (x600) */ 2596 {{ 0x28,0xDE,0x80,0x83,0x7F,0xAA,0x91 }}, /* 04 (x768) */ 2597 {{ 0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9 }} /* 05 (x1024) */ 2598 }; 2599 2600 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = 2601 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */ 2602 {{ 0x6C,0x1F,0x60,0x84,0x5D,0x6D,0x10 }}, /* 00 (x350) */ 2603 {{ 0x9E,0x1F,0x93,0x86,0x8F,0x9F,0x30 }}, /* 01 (x400) */ 2604 {{ 0xEE,0x1F,0xE2,0x86,0xDF,0xEF,0x10 }}, /* 02 (x480) */ 2605 {{ 0x66,0xF0,0x5A,0x8e,0x57,0x67,0xA0 }}, /* 03 (x600) */ 2606 {{ 0x0E,0xF5,0x02,0x86,0xFF,0x0F,0x90 }}, /* 04 (x768) */ 2607 {{ 0x0E,0x5A,0x02,0x86,0xFF,0x0F,0x89 }}, /* 05 (x1024) */ 2608 {{ 0x28,0x10,0x1A,0x80,0x19,0x29,0x0F }} /* 06 (x1050) */ 2609 }; 2610 2611 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = 2612 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */ 2613 {{ 0x28,0x92,0xB6,0x83,0xB5,0xCF,0x81 }}, /* 00 (x350) */ 2614 {{ 0x28,0x92,0xD5,0x82,0xD4,0xEE,0x81 }}, /* 01 (x400) */ 2615 {{ 0x28,0x92,0xFD,0x8A,0xFC,0x16,0xB1 }}, /* 02 (x480) */ 2616 {{ 0x28,0xD4,0x39,0x86,0x57,0x29,0x81 }}, /* 03 (x600) */ 2617 {{ 0x28,0xD4,0x8D,0x9A,0xFF,0x29,0xA1 }}, /* 04 (x768) */ 2618 {{ 0x28,0x5A,0x0D,0x9A,0xFF,0x29,0xA9 }}, /* 05 (x1024) */ 2619 {{ 0x28,0x10,0x1A,0x87,0x19,0x29,0x8F }} /* 06 (x1050) */ 2620 }; 2621 2622 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = 2623 { 2624 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */ 2625 {{ 0xd4,0x1F,0x81,0x84,0x5D,0xd5,0x10 }}, /* 00 (x350) */ 2626 {{ 0x06,0x3e,0xb3,0x86,0x8F,0x07,0x20 }}, /* 01 (x400) */ 2627 {{ 0x56,0xba,0x03,0x86,0xDF,0x57,0x00 }}, /* 02 (x480) */ 2628 {{ 0xce,0xF0,0x7b,0x8e,0x57,0xcf,0xa0 }}, /* 03 (x600) */ 2629 {{ 0x76,0xF5,0x23,0x86,0xFF,0x77,0x90 }}, /* 04 (x768) */ 2630 {{ 0x76,0x5A,0x23,0x86,0xFF,0x77,0x89 }}, /* 05 (x1024) */ 2631 {{ 0x90,0x10,0x1A,0x8E,0x19,0x91,0x2F }}, /* 06 (x1050) */ 2632 {{ 0x26,0x11,0xd3,0x86,0xaF,0x27,0x3f }} /* 07 (x1200) */ 2633 }; 2634 2635 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = 2636 { /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2637 {{ 0x4B,0x27,0x8F,0x32,0x1B,0x00,0x45,0x00 }},/* ; 00 (320x) */ 2638 {{ 0x4B,0x27,0x8F,0x2B,0x03,0x00,0x44,0x00 }},/* ; 01 (360x) */ 2639 {{ 0x55,0x31,0x99,0x46,0x1D,0x00,0x55,0x00 }},/* ; 02 (400x) */ 2640 {{ 0x63,0x3F,0x87,0x4A,0x93,0x00,0x01,0x00 }},/* ; 03 (512x) */ 2641 {{ 0x6F,0x4F,0x93,0x54,0x80,0x00,0x05,0x00 }},/* ; 04 (640x) */ 2642 {{ 0x6F,0x4F,0x93,0x54,0x80,0x00,0x05,0x00 }},/* ; 05 (720x) */ 2643 {{ 0x83,0x63,0x87,0x68,0x14,0x00,0x26,0x00 }},/* ; 06 (800x) */ 2644 {{ 0x9F,0x7F,0x83,0x85,0x91,0x00,0x02,0x00 }} /* ; 07 (1024x) */ 2645 }; 2646 2647 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = 2648 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */ 2649 {{ 0x97,0x1F,0x60,0x87,0x5D,0x83,0x10 }},/* ; 00 (x350) */ 2650 {{ 0xB4,0x1F,0x92,0x89,0x8F,0xB5,0x30 }},/* ; 01 (x400) */ 2651 {{ 0xFE,0x1F,0xE0,0x84,0xDF,0xFF,0x10 }},/* ; 02 (x480) */ 2652 {{ 0x76,0xF0,0x58,0x8C,0x57,0x77,0xA0 }},/* ; 03 (x600) */ 2653 {{ 0x1E,0xF5,0x00,0x83,0xFF,0x1F,0x90 }} /* ; 04 (x768) */ 2654 }; 2655 2656 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = 2657 { /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2658 {{ 0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }},/* ; 00 (320x) */ 2659 {{ 0x63,0x27,0x87,0x3B,0x8C,0x00,0x01,0x00 }},/* ; 01 (360x) */ 2660 {{ 0x63,0x31,0x87,0x3D,0x8E,0x00,0x01,0x00 }},/* ; 02 (400x) */ 2661 {{ 0x63,0x3F,0x87,0x45,0x96,0x00,0x01,0x00 }},/* ; 03 (512x) */ 2662 {{ 0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }},/* ; 04 (640x) */ 2663 {{ 0xA3,0x4F,0x87,0x6E,0x9F,0x00,0x06,0x00 }},/* ; 05 (720x) */ 2664 {{ 0xA3,0x63,0x87,0x78,0x89,0x00,0x02,0x00 }},/* ; 06 (800x) */ 2665 {{ 0xA3,0x7F,0x87,0x86,0x97,0x00,0x02,0x00 }} /* ; 07 (1024x) */ 2666 }; 2667 2668 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = 2669 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */ 2670 {{ 0x24,0xBB,0x31,0x87,0x5D,0x25,0x30 }},/* ; 00 (x350) */ 2671 {{ 0x24,0xBB,0x4A,0x80,0x8F,0x25,0x30 }},/* ; 01 (x400) */ 2672 {{ 0x24,0xBB,0x72,0x88,0xDF,0x25,0x30 }},/* ; 02 (x480) */ 2673 {{ 0x24,0xF1,0xAE,0x84,0x57,0x25,0xB0 }},/* ; 03 (x600) */ 2674 {{ 0x24,0xF5,0x02,0x88,0xFF,0x25,0x90 }} /* ; 04 (x768) */ 2675 }; 2676 2677 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = 2678 { /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2679 {{ 0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }},/* ; 00 (320x) */ 2680 {{ 0x56,0x27,0x9A,0x30,0x1E,0x00,0x05,0x00 }},/* ; 01 (360x) */ 2681 {{ 0x60,0x31,0x84,0x3A,0x88,0x00,0x01,0x00 }},/* ; 02 (400x) */ 2682 {{ 0x6E,0x3F,0x92,0x48,0x96,0x00,0x01,0x00 }},/* ; 03 (512x) */ 2683 {{ 0x7E,0x4F,0x82,0x54,0x06,0x00,0x06,0x00 }},/* ; 04 (640x) */ 2684 {{ 0x7E,0x4F,0x82,0x54,0x06,0x00,0x06,0x00 }},/* ; 05 (720x) */ 2685 {{ 0x92,0x63,0x96,0x68,0x1A,0x00,0x06,0x00 }},/* ; 06 (800x) */ 2686 {{ 0xAE,0x7F,0x92,0x84,0x96,0x00,0x02,0x00 }},/* ; 07 (1024x) */ 2687 {{ 0xCE,0x9F,0x92,0xA5,0x17,0x00,0x07,0x00 }} /* ; 08 (1280x) */ 2688 }; 2689 2690 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = 2691 { /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */ 2692 {{ 0x86,0xD1,0xBC,0x80,0xBB,0xE5,0x00 }},/* ; 00 (x350) */ 2693 {{ 0xB8,0x1F,0x90,0x84,0x8F,0xB9,0x30 }},/* ; 01 (x400) */ 2694 {{ 0x08,0x3E,0xE0,0x84,0xDF,0x09,0x00 }},/* ; 02 (x480) */ 2695 {{ 0x80,0xF0,0x58,0x8C,0x57,0x81,0xA0 }},/* ; 03 (x600) */ 2696 {{ 0x28,0xF5,0x00,0x84,0xFF,0x29,0x90 }},/* ; 04 (x768) */ 2697 {{ 0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9 }} /* ; 05 (x1024) */ 2698 }; 2699 2700 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = 2701 { 2702 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */ 2703 {{ 0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }},/* ; 00 (320x) */ 2704 {{ 0x7E,0x3B,0x9A,0x44,0x12,0x00,0x01,0x00 }},/* ; 01 (360x) */ 2705 {{ 0x7E,0x40,0x84,0x49,0x91,0x00,0x01,0x00 }},/* ; 02 (400x) */ 2706 {{ 0x7E,0x47,0x93,0x50,0x9E,0x00,0x01,0x00 }},/* ; 03 (512x) */ 2707 {{ 0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }},/* ; 04 (640x) */ 2708 {{ 0xCE,0x77,0x8A,0x80,0x8E,0x00,0x02,0x00 }},/* ; 05 (720x) */ 2709 {{ 0xCE,0x81,0x94,0x8A,0x98,0x00,0x02,0x00 }},/* ; 06 (800x) */ 2710 {{ 0xCE,0x8F,0x82,0x98,0x06,0x00,0x07,0x00 }},/* ; 07 (1024x) */ 2711 {{ 0xCE,0x9F,0x92,0xA8,0x16,0x00,0x07,0x00 }} /* ; 08 (1280x) */ 2712 }; 2713 2714 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = 2715 { 2716 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */ 2717 {{ 0x28,0xD2,0xAF,0x83,0xAE,0xD8,0xA1 }},/* ; 00 (x350) */ 2718 {{ 0x28,0xD2,0xC8,0x8C,0xC7,0xF2,0x81 }},/* ; 01 (x400) */ 2719 {{ 0x28,0xD2,0xF0,0x84,0xEF,0x1A,0xB1 }},/* ; 02 (x480) */ 2720 {{ 0x28,0xDE,0x2C,0x8F,0x2B,0x56,0x91 }},/* ; 03 (x600) */ 2721 {{ 0x28,0xDE,0x80,0x83,0x7F,0xAA,0x91 }},/* ; 04 (x768) */ 2722 {{ 0x28,0x5A,0x13,0x87,0xFF,0x29,0xA9 }} /* ; 05 (x1024) */ 2723 }; 2724 2725 #if 0 2726 static struct XGI_LVDSCRT1DataStruct XGI_CHTVCRT1UNTSC[] = 2727 { 2728 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 2729 0xe8,0x84,0x8f,0x57,0x20,0x00,0x01,0x00 }}, 2730 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 2731 0xd0,0x82,0x5d,0x57,0x00,0x00,0x01,0x00 }}, 2732 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 2733 0xe8,0x84,0x8f,0x57,0x20,0x00,0x01,0x00 }}, 2734 {{0x64,0x4f,0x88,0x56,0x9f,0x56,0x3e, 2735 0xd0,0x82,0x5d,0x57,0x00,0x00,0x01,0x00 }}, 2736 {{0x5d,0x4f,0x81,0x53,0x9c,0x56,0xba, 2737 0x18,0x84,0xdf,0x57,0x00,0x00,0x01,0x00 }}, 2738 {{0x80,0x63,0x84,0x6c,0x17,0xec,0xf0, 2739 0x90,0x8c,0x57,0xed,0x20,0x00,0x06,0x01 }} 2740 }; 2741 2742 static struct XGI_LVDSCRT1DataStruct XGI_CHTVCRT1ONTSC[] = 2743 { 2744 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 2745 0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01,0x00 }}, 2746 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 2747 0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01,0x00 }}, 2748 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 2749 0xc0,0x84,0x8f,0x0c,0x20,0x00,0x01,0x00 }}, 2750 {{0x64,0x4f,0x88,0x5a,0x9f,0x0b,0x3e, 2751 0xb0,0x8d,0x5d,0x0c,0x00,0x00,0x01,0x00 }}, 2752 {{0x5d,0x4f,0x81,0x56,0x9c,0x0b,0x3e, 2753 0xe8,0x84,0xdf,0x0c,0x00,0x00,0x01,0x00 }}, 2754 {{0x7d,0x63,0x81,0x6a,0x16,0xba,0xf0, 2755 0x7f,0x86,0x57,0xbb,0x00,0x00,0x06,0x01 }} 2756 }; 2757 2758 static struct XGI_LVDSCRT1DataStruct XGI_CHTVCRT1UPAL[] = 2759 { 2760 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 2761 0xf8,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }}, 2762 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 2763 0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }}, 2764 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 2765 0xf8,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }}, 2766 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 2767 0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }}, 2768 {{0x64,0x4f,0x88,0x55,0x80,0xec,0xba, 2769 0x50,0x84,0xdf,0xed,0x00,0x00,0x05,0x00 }}, 2770 {{0x70,0x63,0x94,0x68,0x8d,0x42,0xf1, 2771 0xc8,0x8c,0x57,0xe9,0x20,0x00,0x05,0x01 }} 2772 }; 2773 2774 static struct XGI_LVDSCRT1DataStruct XGI_CHTVCRT1OPAL[] = 2775 { 2776 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 2777 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }}, 2778 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 2779 0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }}, 2780 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 2781 0xf0,0x83,0x8f,0x70,0x20,0x00,0x05,0x00 }}, 2782 {{0x79,0x4f,0x9d,0x5a,0x90,0x6f,0x3e, 2783 0xde,0x81,0x5d,0x70,0x00,0x00,0x05,0x00 }}, 2784 {{0x64,0x4f,0x88,0x55,0x80,0x6f,0xba, 2785 0x20,0x83,0xdf,0x70,0x00,0x00,0x05,0x00 }}, 2786 {{0x73,0x63,0x97,0x69,0x8e,0xec,0xf0, 2787 0x90,0x8c,0x57,0xed,0x20,0x00,0x05,0x01 }} 2788 }; 2789 #endif 2790 2791 /*add for new UNIVGABIOS*/ 2792 static struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] = 2793 { 2794 {Panel1024x768,0x0019,0x0001,0}, /* XGI_ExtLCD1024x768Data */ 2795 {Panel1024x768,0x0019,0x0000,1}, /* XGI_StLCD1024x768Data */ 2796 {Panel1024x768,0x0018,0x0010,2}, /* XGI_CetLCD1024x768Data */ 2797 {Panel1280x1024,0x0019,0x0001,3}, /* XGI_ExtLCD1280x1024Data */ 2798 {Panel1280x1024,0x0019,0x0000,4}, /* XGI_StLCD1280x1024Data */ 2799 {Panel1280x1024,0x0018,0x0010,5}, /* XGI_CetLCD1280x1024Data */ 2800 {Panel1400x1050,0x0019,0x0001,6}, /* XGI_ExtLCD1400x1050Data */ 2801 {Panel1400x1050,0x0019,0x0000,7}, /* XGI_StLCD1400x1050Data */ 2802 {Panel1400x1050,0x0018,0x0010,8}, /* XGI_CetLCD1400x1050Data */ 2803 {Panel1600x1200,0x0019,0x0001,9}, /* XGI_ExtLCD1600x1200Data */ 2804 {Panel1600x1200,0x0019,0x0000,10}, /* XGI_StLCD1600x1200Data */ 2805 {PanelRef60Hz,0x0008,0x0008,11}, /* XGI_NoScalingData */ 2806 {Panel1024x768x75,0x0019,0x0001,12}, /* XGI_ExtLCD1024x768x75Data */ 2807 {Panel1024x768x75,0x0019,0x0000,13}, /* XGI_StLCD1024x768x75Data */ 2808 {Panel1024x768x75,0x0018,0x0010,14}, /* XGI_CetLCD1024x768x75Data */ 2809 {Panel1280x1024x75,0x0019,0x0001,15}, /* XGI_ExtLCD1280x1024x75Data */ 2810 {Panel1280x1024x75,0x0019,0x0000,16}, /* XGI_StLCD1280x1024x75Data */ 2811 {Panel1280x1024x75,0x0018,0x0010,17}, /* XGI_CetLCD1280x1024x75Data */ 2812 {PanelRef75Hz,0x0008,0x0008,18}, /* XGI_NoScalingDatax75 */ 2813 {0xFF,0x0000,0x0000,0} /* End of table */ 2814 }; 2815 2816 static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] = 2817 { 2818 {Panel1024x768,0x0019,0x0001,0}, /* XGI_ExtLCDDes1024x768Data */ 2819 {Panel1024x768,0x0019,0x0000,1}, /* XGI_StLCDDes1024x768Data */ 2820 {Panel1024x768,0x0018,0x0010,2}, /* XGI_CetLCDDes1024x768Data */ 2821 {Panel1280x1024,0x0019,0x0001,3}, /* XGI_ExtLCDDes1280x1024Data */ 2822 {Panel1280x1024,0x0019,0x0000,4}, /* XGI_StLCDDes1280x1024Data */ 2823 {Panel1280x1024,0x0018,0x0010,5}, /* XGI_CetLCDDes1280x1024Data */ 2824 {Panel1400x1050,0x0019,0x0001,6}, /* XGI_ExtLCDDes1400x1050Data */ 2825 {Panel1400x1050,0x0019,0x0000,7}, /* XGI_StLCDDes1400x1050Data */ 2826 {Panel1400x1050,0x0418,0x0010,8}, /* XGI_CetLCDDes1400x1050Data */ 2827 {Panel1400x1050,0x0418,0x0410,9}, /* XGI_CetLCDDes1400x1050Data2 */ 2828 {Panel1600x1200,0x0019,0x0001,10}, /* XGI_ExtLCDDes1600x1200Data */ 2829 {Panel1600x1200,0x0019,0x0000,11}, /* XGI_StLCDDes1600x1200Data */ 2830 {PanelRef60Hz,0x0008,0x0008,12}, /* XGI_NoScalingDesData */ 2831 {Panel1024x768x75,0x0019,0x0001,13}, /* XGI_ExtLCDDes1024x768x75Data */ 2832 {Panel1024x768x75,0x0019,0x0000,14}, /* XGI_StLCDDes1024x768x75Data */ 2833 {Panel1024x768x75,0x0018,0x0010,15}, /* XGI_CetLCDDes1024x768x75Data */ 2834 {Panel1280x1024x75,0x0019,0x0001,16}, /* XGI_ExtLCDDes1280x1024x75Data */ 2835 {Panel1280x1024x75,0x0019,0x0000,17}, /* XGI_StLCDDes1280x1024x75Data */ 2836 {Panel1280x1024x75,0x0018,0x0010,18}, /* XGI_CetLCDDes1280x1024x75Data */ 2837 {PanelRef75Hz,0x0008,0x0008,19}, /* XGI_NoScalingDesDatax75 */ 2838 {0xFF,0x0000,0x0000,0} 2839 }; 2840 2841 static struct XGI330_LCDDataTablStruct XGI_EPLLCDCRT1Ptr_H[] = 2842 { 2843 {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDSCRT11024x768_1_H */ 2844 {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDSCRT11024x768_2_H */ 2845 {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDSCRT11280x1024_1_H */ 2846 {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDSCRT11280x1024_2_H */ 2847 {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDSCRT11400x1050_1_H */ 2848 {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDSCRT11400x1050_2_H */ 2849 {Panel1600x1200,0x0018,0x0000,6}, /* XGI_LVDSCRT11600x1200_1_H */ 2850 {Panel1024x768x75,0x0018,0x0000,7}, /* XGI_LVDSCRT11024x768_1_Hx75 */ 2851 {Panel1024x768x75,0x0018,0x0010,8}, /* XGI_LVDSCRT11024x768_2_Hx75 */ 2852 {Panel1280x1024x75,0x0018,0x0000,9}, /* XGI_LVDSCRT11280x1024_1_Hx75 */ 2853 {Panel1280x1024x75,0x0018,0x0010,10}, /* XGI_LVDSCRT11280x1024_2_Hx75 */ 2854 {0xFF,0x0000,0x0000,0} 2855 }; 2856 2857 static struct XGI330_LCDDataTablStruct XGI_EPLLCDCRT1Ptr_V[] = 2858 { 2859 {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDSCRT11024x768_1_V */ 2860 {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDSCRT11024x768_2_V */ 2861 {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDSCRT11280x1024_1_V */ 2862 {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDSCRT11280x1024_2_V */ 2863 {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDSCRT11400x1050_1_V */ 2864 {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDSCRT11400x1050_2_V */ 2865 {Panel1600x1200,0x0018,0x0000,6}, /* XGI_LVDSCRT11600x1200_1_V */ 2866 {Panel1024x768x75,0x0018,0x0000,7}, /* XGI_LVDSCRT11024x768_1_Vx75 */ 2867 {Panel1024x768x75,0x0018,0x0010,8}, /* XGI_LVDSCRT11024x768_2_Vx75 */ 2868 {Panel1280x1024x75,0x0018,0x0000,9}, /* XGI_LVDSCRT11280x1024_1_Vx75 */ 2869 {Panel1280x1024x75,0x0018,0x0010,10}, /* XGI_LVDSCRT11280x1024_2_Vx75 */ 2870 {0xFF,0x0000,0x0000,0} 2871 }; 2872 2873 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] = 2874 { 2875 {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDS1024x768Data_1 */ 2876 {Panel1024x768,0x0018,0x0010,1}, /* XGI_LVDS1024x768Data_2 */ 2877 {Panel1280x1024,0x0018,0x0000,2}, /* XGI_LVDS1280x1024Data_1 */ 2878 {Panel1280x1024,0x0018,0x0010,3}, /* XGI_LVDS1280x1024Data_2 */ 2879 {Panel1400x1050,0x0018,0x0000,4}, /* XGI_LVDS1400x1050Data_1 */ 2880 {Panel1400x1050,0x0018,0x0010,5}, /* XGI_LVDS1400x1050Data_2 */ 2881 {Panel1600x1200,0x0018,0x0000,6}, /* XGI_LVDS1600x1200Data_1 */ 2882 {PanelRef60Hz,0x0008,0x0008,7}, /* XGI_LVDSNoScalingData */ 2883 {Panel1024x768x75,0x0018,0x0000,8}, /* XGI_LVDS1024x768Data_1x75 */ 2884 {Panel1024x768x75,0x0018,0x0010,9}, /* XGI_LVDS1024x768Data_2x75 */ 2885 {Panel1280x1024x75,0x0018,0x0000,10}, /* XGI_LVDS1280x1024Data_1x75 */ 2886 {Panel1280x1024x75,0x0018,0x0010,11}, /* XGI_LVDS1280x1024Data_2x75 */ 2887 {PanelRef75Hz,0x0008,0x0008,12}, /* XGI_LVDSNoScalingDatax75 */ 2888 {0xFF,0x0000,0x0000,0} 2889 }; 2890 2891 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] = 2892 { 2893 {Panel1024x768,0x0018,0x0000,0}, /* XGI_LVDS1024x768Des_1 */ 2894 {Panel1024x768,0x0618,0x0410,1}, /* XGI_LVDS1024x768Des_3 */ 2895 {Panel1024x768,0x0018,0x0010,2}, /* XGI_LVDS1024x768Des_2 */ 2896 {Panel1280x1024,0x0018,0x0000,3}, /* XGI_LVDS1280x1024Des_1 */ 2897 {Panel1280x1024,0x0018,0x0010,4}, /* XGI_LVDS1280x1024Des_2 */ 2898 {Panel1400x1050,0x0018,0x0000,5}, /* XGI_LVDS1400x1050Des_1 */ 2899 {Panel1400x1050,0x0018,0x0010,6}, /* XGI_LVDS1400x1050Des_2 */ 2900 {Panel1600x1200,0x0018,0x0000,7}, /* XGI_LVDS1600x1200Des_1 */ 2901 {PanelRef60Hz,0x0008,0x0008,8}, /* XGI_LVDSNoScalingDesData */ 2902 {Panel1024x768x75,0x0018,0x0000,9}, /* XGI_LVDS1024x768Des_1x75 */ 2903 {Panel1024x768x75,0x0618,0x0410,10}, /* XGI_LVDS1024x768Des_3x75 */ 2904 {Panel1024x768x75,0x0018,0x0010,11}, /* XGI_LVDS1024x768Des_2x75 */ 2905 {Panel1280x1024x75,0x0018,0x0000,12}, /* XGI_LVDS1280x1024Des_1x75 */ 2906 {Panel1280x1024x75,0x0018,0x0010,13}, /* XGI_LVDS1280x1024Des_2x75 */ 2907 {PanelRef75Hz,0x0008,0x0008,14}, /* XGI_LVDSNoScalingDesDatax75 */ 2908 {0xFF,0x0000,0x0000,0} 2909 }; 2910 2911 static struct XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr[] = 2912 { 2913 {Panel1024x768,0x0000,0x0000,0}, /* XGI_CH7017LV1024x768 */ 2914 {Panel1400x1050,0x0000,0x0000,1}, /* XGI_CH7017LV1400x1050 */ 2915 {0xFF,0x0000,0x0000,0} 2916 }; 2917 2918 static struct XGI330_TVDataTablStruct XGI_TVDataTable[] = 2919 { 2920 {0x09E1,0x0001,0}, /* XGI_ExtPALData */ 2921 {0x09E1,0x0000,1}, /* XGI_ExtNTSCData */ 2922 {0x09E1,0x0801,2}, /* XGI_StPALData */ 2923 {0x09E1,0x0800,3}, /* XGI_StNTSCData */ 2924 {0x49E0,0x0100,4}, /* XGI_ExtHiTVData */ 2925 {0x49E0,0x4100,5}, /* XGI_St2HiTVData */ 2926 {0x49E0,0x4900,13}, /* XGI_St1HiTVData */ 2927 {0x09E0,0x0020,6}, /* XGI_ExtYPbPr525iData */ 2928 {0x09E0,0x0040,7}, /* XGI_ExtYPbPr525pData */ 2929 {0x09E0,0x0080,8}, /* XGI_ExtYPbPr750pData */ 2930 {0x09E0,0x0820,9}, /* XGI_StYPbPr525iData */ 2931 {0x09E0,0x0840,10}, /* XGI_StYPbPr525pData */ 2932 {0x09E0,0x0880,11}, /* XGI_StYPbPr750pData */ 2933 {0xffff,0x0000,12} /* END */ 2934 }; 2935 2936 #if 0 2937 static unsigned short TVLenList[] = 2938 { 2939 LVDSCRT1Len_H, 2940 LVDSCRT1Len_V, 2941 LVDSDataLen, 2942 0, 2943 TVDataLen, 2944 0, 2945 0, 2946 CHTVRegLen 2947 } ; 2948 #endif 2949 2950 /* Chrontel 7017 TV CRT1 Timing List */ 2951 static struct XGI330_TVDataTablStruct XGI_EPLCHTVCRT1Ptr[] = 2952 { 2953 {0x0011,0x0000,0}, /* XGI_CHTVCRT1UNTSC */ 2954 {0x0011,0x0010,1}, /* XGI_CHTVCRT1ONTSC */ 2955 {0x0011,0x0001,2}, /* XGI_CHTVCRT1UPAL */ 2956 {0x0011,0x0011,3}, /* XGI_CHTVCRT1OPAL */ 2957 {0xFFFF,0x0000,4} 2958 }; 2959 2960 /* ;;Chrontel 7017 TV Timing List */ 2961 static struct XGI330_TVDataTablStruct XGI_EPLCHTVDataPtr[] = 2962 { 2963 {0x0011,0x0000,0}, /* XGI_CHTVUNTSCData */ 2964 {0x0011,0x0010,1}, /* XGI_CHTVONTSCData */ 2965 {0x0011,0x0001,2}, /* XGI_CHTVUPALData */ 2966 {0x0011,0x0011,3}, /* XGI_CHTVOPALData */ 2967 {0xFFFF,0x0000,4} 2968 }; 2969 2970 /* ;;Chrontel 7017 TV Reg. List */ 2971 static struct XGI330_TVDataTablStruct XGI_EPLCHTVRegPtr[] = 2972 { 2973 {0x0011,0x0000,0}, /* XGI_CHTVRegUNTSC */ 2974 {0x0011,0x0010,1}, /* XGI_CHTVRegONTSC */ 2975 {0x0011,0x0001,2}, /* XGI_CHTVRegUPAL */ 2976 {0x0011,0x0011,3}, /* XGI_CHTVRegOPAL */ 2977 {0xFFFF,0x0000,4} 2978 }; 2979 2980 static unsigned short LCDLenList[] = 2981 { 2982 LVDSCRT1Len_H, 2983 LVDSCRT1Len_V, 2984 LVDSDataLen, 2985 LCDDesDataLen, 2986 LCDDataLen, 2987 LCDDesDataLen, 2988 0, 2989 LCDDesDataLen, 2990 LCDDesDataLen, 2991 0 2992 } ; 2993 2994 #if 0 2995 static struct XGI330_LCDCapStruct XGI660_LCDDLCapList[] = /* 660, Dual link */ 2996 { 2997 /* LCDCap1024x768 */ 2998 {Panel1024x768, DefaultLCDCap, 0, 0x014, 0x88, 0x06, VCLK65, 2999 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00, 3000 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}, 3001 /* LCDCap1280x1024 */ 3002 {Panel1280x1024, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x053, 0x70, 0x03, VCLK108_2, 3003 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00, 3004 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3005 /* LCDCap1400x1050 */ 3006 {Panel1400x1050, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x053, 0x70, 0x03, VCLK108_2, 3007 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00, 3008 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3009 /* LCDCap1600x1200 */ 3010 {Panel1600x1200, LCDDualLink+DefaultLCDCap, LCDToFull, 0x053, 0xC0, 0x03, VCLK162, 3011 0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00, 3012 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3013 /* LCDCap1024x768x75 */ 3014 {Panel1024x768x75, DefaultLCDCap, 0, 0x014, 0x60, 0, VCLK78_75, 3015 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00, 3016 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}, 3017 /* LCDCap1280x1024x75 */ 3018 {Panel1280x1024x75, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x053, 0x90, 0x03, VCLK135_5, 3019 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00, 3020 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3021 /* LCDCapDefault */ 3022 {0xFF, DefaultLCDCap, 0, 0x053, 0x88, 0x06, VCLK65, 3023 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00, 3024 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10} 3025 }; 3026 #endif 3027 3028 static struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = /* Dual link only */ 3029 { 3030 /* LCDCap1024x768 */ 3031 {Panel1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65, 3032 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00, 3033 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}, 3034 /* LCDCap1280x1024 */ 3035 {Panel1280x1024, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2, 3036 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00, 3037 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3038 /* LCDCap1400x1050 */ 3039 {Panel1400x1050, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2, 3040 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00, 3041 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3042 /* LCDCap1600x1200 */ 3043 {Panel1600x1200, LCDDualLink+DefaultLCDCap, LCDToFull, 0x012, 0xC0, 0x03, VCLK162, 3044 0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00, 3045 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3046 /* LCDCap1024x768x75 */ 3047 {Panel1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75, 3048 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00, 3049 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}, 3050 /* LCDCap1280x1024x75 */ 3051 {Panel1280x1024x75, LCDDualLink+DefaultLCDCap, StLCDBToA, 0x012, 0x90, 0x03, VCLK135_5, 3052 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00, 3053 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3054 /* LCDCapDefault */ 3055 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65, 3056 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00, 3057 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10} 3058 }; 3059 3060 #if 0 3061 static struct XGI330_LCDCapStruct XGI660_LCDCapList[] = 3062 { 3063 /* LCDCap1024x768 */ 3064 {Panel1024x768, DefaultLCDCap, 0, 0x014, 0x88, 0x06, VCLK65, 3065 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00, 3066 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}, 3067 /* LCDCap1280x1024 */ 3068 {Panel1280x1024, DefaultLCDCap, StLCDBToA, 0x053, 0x70, 0x03, VCLK108_2, 3069 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00, 3070 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3071 /* LCDCap1400x1050 */ 3072 {Panel1400x1050, DefaultLCDCap, StLCDBToA, 0x053, 0x70, 0x03, VCLK108_2, 3073 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00, 3074 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3075 /* LCDCap1600x1200 */ 3076 {Panel1600x1200, DefaultLCDCap, LCDToFull, 0x053, 0xC0, 0x03, VCLK162, 3077 0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00, 3078 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3079 /* LCDCap1024x768x75 */ 3080 {Panel1024x768x75, DefaultLCDCap, 0, 0x014, 0x60, 0, VCLK78_75, 3081 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00, 3082 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}, 3083 /* LCDCap1280x1024x75 */ 3084 {Panel1280x1024x75,+DefaultLCDCap, StLCDBToA, 0x053, 0x90, 0x03, VCLK135_5, 3085 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00, 3086 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3087 /* LCDCapDefault */ 3088 {0xFF, DefaultLCDCap, 0, 0x053, 0x88, 0x06, VCLK65, 3089 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00, 3090 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10} 3091 }; 3092 #endif 3093 3094 static struct XGI330_LCDCapStruct XGI_LCDCapList[] = 3095 { 3096 /* LCDCap1024x768 */ 3097 {Panel1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65, 3098 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00, 3099 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}, 3100 /* LCDCap1280x1024 */ 3101 {Panel1280x1024, DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2, 3102 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00, 3103 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3104 /* LCDCap1400x1050 */ 3105 {Panel1400x1050, DefaultLCDCap, StLCDBToA, 0x012, 0x70, 0x03, VCLK108_2, 3106 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00, 3107 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3108 /* LCDCap1600x1200 */ 3109 {Panel1600x1200, DefaultLCDCap, LCDToFull, 0x012, 0xC0, 0x03, VCLK162, 3110 0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00, 3111 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3112 /* LCDCap1024x768x75 */ 3113 {Panel1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75, 3114 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00, 3115 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}, 3116 /* LCDCap1280x1024x75 */ 3117 {Panel1280x1024x75, DefaultLCDCap, StLCDBToA, 0x012, 0x90, 0x03, VCLK135_5, 3118 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00, 3119 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10}, 3120 /* LCDCapDefault */ 3121 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65, 3122 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00, 3123 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10} 3124 }; 3125 3126 struct XGI21_LVDSCapStruct XGI21_LCDCapList[] = 3127 { 3128 {DisableLCD24bpp + LCDPolarity, 3129 2160,1250,1600,1200, 64, 1, 192, 3, 3130 0x70,0x24,0x20,0x04,0x0A,0x02,0xC8 3131 }, 3132 {DisableLCD24bpp + LCDPolarity, 3133 1688,1066,1280,1024, 48, 1, 112, 3, 3134 0x70,0x44,0x20,0x04,0x0A,0x02,0xC8 3135 }, 3136 {DisableLCD24bpp + LCDPolarity + (LCDPolarity << 8), 3137 1344, 806,1024, 768, 24, 3, 136, 6, 3138 0x6C,0x65,0x20,0x04,0x0A,0x02,0xC8 3139 }, 3140 {DisableLCD24bpp + LCDPolarity, 3141 1056, 628, 800, 600, 40, 1, 128, 4, 3142 0x42,0xE2,0x20,0x14,0x0A,0x02,0x00 3143 }, 3144 {DisableLCD24bpp + LCDPolarity, 3145 928, 525, 800, 480, 40, 13, 48, 3, 3146 0x52,0xC5,0x20,0x14,0x0A,0x02,0x00 3147 }, 3148 {DisableLCD24bpp + LCDPolarity + (LCDPolarity << 8), 3149 800, 525, 640, 480, 16, 10, 96, 2, 3150 0x1B,0xE1,0x20,0x04,0x0A,0x02,0xC8 3151 } 3152 3153 }; 3154 3155 static struct XGI_Ext2Struct XGI330_RefIndex[] = 3156 { 3157 {Support32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175, 0x00,0x10,0x59, 320, 200},/* 00 */ 3158 {Support32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175, 0x00,0x10,0x00, 320, 400},/* 01 */ 3159 {Support32Bpp + SupportAllCRT2 + SyncNN, RES320x240, VCLK25_175, 0x04,0x20,0x50, 320, 240},/* 02 */ 3160 {Support32Bpp + SupportAllCRT2 + SyncPP, RES400x300, VCLK40, 0x05,0x32,0x51, 400, 300},/* 03 */ 3161 {Support32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES512x384, VCLK65, 0x06,0x43,0x52, 512, 384},/* 04 */ 3162 {Support32Bpp + SupportAllCRT2 + SyncPN, RES640x400, VCLK25_175, 0x00,0x14,0x2f, 640, 400},/* 05 */ 3163 {Support32Bpp + SupportAllCRT2 + SyncNN, RES640x480x60, VCLK25_175, 0x04,0x24,0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */ 3164 {Support32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x72, VCLK31_5, 0x04,0x24,0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */ 3165 {Support32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x75, VCLK31_5, 0x47,0x24,0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */ 3166 {Support32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x85, VCLK36, 0x8A,0x24,0x2e, 640, 480},/* 09 640x480x85Hz */ 3167 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x100, VCLK43_163, 0x00,0x24,0x2e, 640, 480},/* 0a 640x480x100Hz */ 3168 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x120, VCLK52_406, 0x00,0x24,0x2e, 640, 480},/* 0b 640x480x120Hz */ 3169 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x160, VCLK72_852, 0x00,0x24,0x2e, 640, 480},/* 0c 640x480x160Hz */ 3170 {Support32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x200, VCLK86_6, 0x00,0x24,0x2e, 640, 480},/* 0d 640x480x200Hz */ 3171 {Support32Bpp + NoSupportLCD + SyncPP, RES800x600x56, VCLK36, 0x05,0x36,0x6a, 800, 600},/* 0e 800x600x56Hz */ 3172 {Support32Bpp + NoSupportTV + SyncPP, RES800x600x60, VCLK40, 0x05,0x36,0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */ 3173 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x72, VCLK50, 0x48,0x36,0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */ 3174 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x75, VCLK49_5, 0x8B,0x36,0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */ 3175 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES800x600x85, VCLK56_25, 0x00,0x36,0x6a, 800, 600},/* 12 800x600x85Hz */ 3176 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x100, VCLK68_179, 0x00,0x36,0x6a, 800, 600},/* 13 800x600x100Hz */ 3177 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x120, VCLK83_95, 0x00,0x36,0x6a, 800, 600},/* 14 800x600x120Hz */ 3178 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x160, VCLK116_406,0x00,0x36,0x6a, 800, 600},/* 15 800x600x160Hz */ 3179 {Support32Bpp + InterlaceMode + SyncPP, RES1024x768x43, VCLK44_9, 0x00,0x47,0x37,1024, 768},/* 16 1024x768x43Hz */ 3180 {Support32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES1024x768x60, VCLK65, 0x06,0x47,0x37,1024, 768},/* 17 1024x768x60Hz (LCD 1024x768x60Hz) */ 3181 {Support32Bpp + NoSupportHiVisionTV + SyncNN, RES1024x768x70, VCLK75, 0x49,0x47,0x37,1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */ 3182 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES1024x768x75, VCLK78_75, 0x00,0x47,0x37,1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */ 3183 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1024x768x85, VCLK94_5, 0x8C,0x47,0x37,1024, 768},/* 1a 1024x768x85Hz */ 3184 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x100, VCLK113_309,0x00,0x47,0x37,1024, 768},/* 1b 1024x768x100Hz */ 3185 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x120, VCLK139_054,0x00,0x47,0x37,1024, 768},/* 1c 1024x768x120Hz */ 3186 {Support32Bpp + SupportLCD + SyncPP, RES1280x960x60, VCLK108_2, 0x08,0x58,0x7b,1280, 960},/* 1d 1280x960x60Hz */ 3187 {Support32Bpp + InterlaceMode + SyncPP, RES1280x1024x43, VCLK78_75, 0x00,0x58,0x3a,1280,1024},/* 1e 1280x1024x43Hz */ 3188 {Support32Bpp + NoSupportTV + SyncPP, RES1280x1024x60, VCLK108_2, 0x07,0x58,0x3a,1280,1024},/* 1f 1280x1024x60Hz (LCD 1280x1024x60Hz) */ 3189 {Support32Bpp + NoSupportTV + SyncPP, RES1280x1024x75, VCLK135_5, 0x00,0x58,0x3a,1280,1024},/* 20 1280x1024x75Hz (LCD 1280x1024x75Hz) */ 3190 {Support32Bpp + SyncPP, RES1280x1024x85, VCLK157_5, 0x00,0x58,0x3a,1280,1024},/* 21 1280x1024x85Hz */ 3191 {Support32Bpp + SupportLCD + SyncPP + SupportCRT2in301C, RES1600x1200x60, VCLK162, 0x09,0x7A,0x3c,1600,1200},/* 22 1600x1200x60Hz */ 3192 {Support32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x65, VCLK175, 0x00,0x69,0x3c,1600,1200},/* 23 1600x1200x65Hz */ 3193 {Support32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x70, VCLK189, 0x00,0x69,0x3c,1600,1200},/* 24 1600x1200x70Hz */ 3194 {Support32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x75, VCLK202_5, 0x00,0x69,0x3c,1600,1200},/* 25 1600x1200x75Hz */ 3195 {Support32Bpp + SyncPP, RES1600x1200x85, VCLK229_5, 0x00,0x69,0x3c,1600,1200},/* 26 1600x1200x85Hz */ 3196 {Support32Bpp + SyncPP, RES1600x1200x100,VCLK269_655,0x00,0x69,0x3c,1600,1200},/* 27 1600x1200x100Hz */ 3197 {Support32Bpp + SyncPP, RES1600x1200x120,VCLK323_586,0x00,0x69,0x3c,1600,1200},/* 28 1600x1200x120Hz */ 3198 {Support32Bpp + SupportLCD + SyncNP, RES1920x1440x60, VCLK234, 0x00,0x00,0x68,1920,1440},/* 29 1920x1440x60Hz */ 3199 {Support32Bpp + SyncPN, RES1920x1440x65, VCLK254_817,0x00,0x00,0x68,1920,1440},/* 2a 1920x1440x65Hz */ 3200 {Support32Bpp + SyncPN, RES1920x1440x70, VCLK277_015,0x00,0x00,0x68,1920,1440},/* 2b 1920x1440x70Hz */ 3201 {Support32Bpp + SyncPN, RES1920x1440x75, VCLK291_132,0x00,0x00,0x68,1920,1440},/* 2c 1920x1440x75Hz */ 3202 {Support32Bpp + SyncPN, RES1920x1440x85, VCLK330_615,0x00,0x00,0x68,1920,1440},/* 2d 1920x1440x85Hz */ 3203 {Support16Bpp + SyncPN, RES1920x1440x100,VCLK388_631,0x00,0x00,0x68,1920,1440},/* 2e 1920x1440x100Hz */ 3204 {Support32Bpp + SupportLCD + SyncPN, RES2048x1536x60, VCLK266_952,0x00,0x00,0x6c,2048,1536},/* 2f 2048x1536x60Hz */ 3205 {Support32Bpp + SyncPN, RES2048x1536x65, VCLK291_766,0x00,0x00,0x6c,2048,1536},/* 30 2048x1536x65Hz */ 3206 {Support32Bpp + SyncPN, RES2048x1536x70, VCLK315_195,0x00,0x00,0x6c,2048,1536},/* 31 2048x1536x70Hz */ 3207 {Support32Bpp + SyncPN, RES2048x1536x75, VCLK340_477,0x00,0x00,0x6c,2048,1536},/* 32 2048x1536x75Hz */ 3208 {Support16Bpp + SyncPN, RES2048x1536x85, VCLK375_847,0x00,0x00,0x6c,2048,1536},/* 33 2048x1536x85Hz */ 3209 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr, RES800x480x60, VCLK39_77, 0x08,0x00,0x70, 800, 480},/* 34 800x480x60Hz */ 3210 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x75, VCLK49_5, 0x08,0x00,0x70, 800, 480},/* 35 800x480x75Hz */ 3211 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x85, VCLK56_25, 0x08,0x00,0x70, 800, 480},/* 36 800x480x85Hz */ 3212 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr, RES1024x576x60, VCLK65, 0x09,0x00,0x71,1024, 576},/* 37 1024x576x60Hz */ 3213 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x75, VCLK78_75, 0x09,0x00,0x71,1024, 576},/* 38 1024x576x75Hz */ 3214 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x85, VCLK94_5, 0x09,0x00,0x71,1024, 576},/* 39 1024x576x85Hz */ 3215 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 + SyncPP + SupportYPbPr, RES1280x720x60, VCLK108_2, 0x0A,0x00,0x75,1280, 720},/* 3a 1280x720x60Hz */ 3216 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x75, VCLK135_5, 0x0A,0x00,0x75,1280, 720},/* 3b 1280x720x75Hz */ 3217 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x85, VCLK157_5, 0x0A,0x00,0x75,1280, 720},/* 3c 1280x720x85Hz */ 3218 {Support32Bpp + SupportTV + SyncNN, RES720x480x60, VCLK28_322, 0x06,0x00,0x31, 720, 480},/* 3d 720x480x60Hz */ 3219 {Support32Bpp + SupportTV + SyncPP, RES720x576x56, VCLK36, 0x06,0x00,0x32, 720, 576},/* 3e 720x576x56Hz */ 3220 {Support32Bpp + InterlaceMode + NoSupportLCD + SyncPP, RES856x480x79I, VCLK35_2, 0x00,0x00,0x00, 856, 480},/* 3f 856x480x79I */ 3221 {Support32Bpp + NoSupportLCD + SyncNN, RES856x480x60, VCLK35_2, 0x00,0x00,0x00, 856, 480},/* 40 856x480x60Hz */ 3222 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES1280x768x60, VCLK79_411, 0x08,0x48,0x23,1280, 768},/* 41 1280x768x60Hz */ 3223 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES1400x1050x60, VCLK122_61, 0x08,0x69,0x26,1400,1050},/* 42 1400x1050x60Hz */ 3224 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x60, VCLK80_350, 0x37,0x00,0x20,1152, 864},/* 43 1152x864x60Hz */ 3225 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x75, VCLK107_385,0x37,0x00,0x20,1152, 864},/* 44 1152x864x75Hz */ 3226 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x75, VCLK125_999,0x3A,0x88,0x7b,1280, 960},/* 45 1280x960x75Hz */ 3227 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x85, VCLK148_5, 0x0A,0x88,0x7b,1280, 960},/* 46 1280x960x85Hz */ 3228 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x120, VCLK217_325,0x3A,0x88,0x7b,1280, 960},/* 47 1280x960x120Hz */ 3229 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x160, VCLK139_054,0x30,0x47,0x37,1024, 768},/* 48 1024x768x160Hz */ 3230 }; 3231 3232 3233 #if 0 3234 static struct XGI330_VCLKDataStruct XGI330_VCLKData[] = 3235 { 3236 { 0x1b,0xe1, 25}, /* 0x0 */ 3237 { 0x4e,0xe4, 28}, /* 0x1 */ 3238 { 0x57,0xe4, 31}, /* 0x2 */ 3239 { 0xc3,0xc8, 36}, /* 0x3 */ 3240 { 0x42,0xe2, 40}, /* 0x4 */ 3241 { 0xfe,0xcd, 43}, /* 0x5 */ 3242 { 0x5d,0xc4, 44}, /* 0x6 */ 3243 { 0x52,0xe2, 49}, /* 0x7 */ 3244 { 0x53,0xe2, 50}, /* 0x8 */ 3245 { 0x74,0x67, 52}, /* 0x9 */ 3246 { 0x6d,0x66, 56}, /* 0xa */ 3247 { 0x6c,0xc3, 65}, /* 0xb */ 3248 { 0x46,0x44, 67}, /* 0xc */ 3249 { 0xb1,0x46, 68}, /* 0xd */ 3250 { 0xd3,0x4a, 72}, /* 0xe */ 3251 { 0x29,0x61, 75}, /* 0xf */ 3252 { 0x6e,0x46, 76}, /* 0x10 */ 3253 { 0x2b,0x61, 78}, /* 0x11 */ 3254 { 0x31,0x42, 79}, /* 0x12 */ 3255 { 0xab,0x44, 83}, /* 0x13 */ 3256 { 0x46,0x25, 84}, /* 0x14 */ 3257 { 0x78,0x29, 86}, /* 0x15 */ 3258 { 0x62,0x44, 94}, /* 0x16 */ 3259 { 0x2b,0x41,104}, /* 0x17 */ 3260 { 0x3a,0x23,105}, /* 0x18 */ 3261 { 0x70,0x44,108}, /* 0x19 */ 3262 { 0x3c,0x23,109}, /* 0x1a */ 3263 { 0x5e,0x43,113}, /* 0x1b */ 3264 { 0xbc,0x44,116}, /* 0x1c */ 3265 { 0xe0,0x46,132}, /* 0x1d */ 3266 { 0x54,0x42,135}, /* 0x1e */ 3267 { 0xea,0x2a,139}, /* 0x1f */ 3268 { 0x41,0x22,157}, /* 0x20 */ 3269 { 0x70,0x24,162}, /* 0x21 */ 3270 { 0x30,0x21,175}, /* 0x22 */ 3271 { 0x4e,0x22,189}, /* 0x23 */ 3272 { 0xde,0x26,194}, /* 0x24 */ 3273 { 0x62,0x06,202}, /* 0x25 */ 3274 { 0x3f,0x03,229}, /* 0x26 */ 3275 { 0xb8,0x06,234}, /* 0x27 */ 3276 { 0x34,0x02,253}, /* 0x28 */ 3277 { 0x58,0x04,255}, /* 0x29 */ 3278 { 0x24,0x01,265}, /* 0x2a */ 3279 { 0x9b,0x02,267}, /* 0x2b */ 3280 { 0x70,0x05,270}, /* 0x2c */ 3281 { 0x25,0x01,272}, /* 0x2d */ 3282 { 0x9c,0x02,277}, /* 0x2e */ 3283 { 0x27,0x01,286}, /* 0x2f */ 3284 { 0x3c,0x02,291}, /* 0x30 */ 3285 { 0xef,0x0a,292}, /* 0x31 */ 3286 { 0xf6,0x0a,310}, /* 0x32 */ 3287 { 0x95,0x01,315}, /* 0x33 */ 3288 { 0xf0,0x09,324}, /* 0x34 */ 3289 { 0xfe,0x0a,331}, /* 0x35 */ 3290 { 0xf3,0x09,332}, /* 0x36 */ 3291 { 0xea,0x08,340}, /* 0x37 */ 3292 { 0xe8,0x07,376}, /* 0x38 */ 3293 { 0xde,0x06,389}, /* 0x39 */ 3294 { 0x52,0x2a, 54}, /* 0x3a */ 3295 { 0x52,0x6a, 27}, /* 0x3b */ 3296 { 0x62,0x24, 70}, /* 0x3c */ 3297 { 0x62,0x64, 70}, /* 0x3d */ 3298 { 0xa8,0x4c, 30}, /* 0x3e */ 3299 { 0x20,0x26, 33}, /* 0x3f */ 3300 { 0x31,0xc2, 39}, /* 0x40 */ 3301 { 0x60,0x36, 30}, /* 0x41 */ 3302 { 0x40,0x4A, 28}, /* 0x42 */ 3303 { 0x9F,0x46, 44}, /* 0x43 */ 3304 { 0x97,0x2C, 26}, /* 0x44 */ 3305 { 0x44,0xE4, 25}, /* 0x45 */ 3306 { 0x7E,0x32, 47}, /* 0x46 */ 3307 { 0x08,0x24, 31}, /* 0x47 */ 3308 { 0x97,0x2c, 26}, /* 0x48 */ 3309 { 0xCE,0x3c, 39}, /* 0x49 */ 3310 { 0x52,0x4A, 36}, /* 0x4a */ 3311 { 0x2C,0x61, 95}, /* 0x4b */ 3312 { 0x78,0x27,108}, /* 0x4c */ 3313 { 0x66,0x43,123}, /* 0x4d */ 3314 { 0x2c,0x61, 80}, /* 0x4e */ 3315 { 0x3b,0x61,108} /* 0x4f */ 3316 }; 3317 3318 static struct XGI_VBVCLKDataStruct XGI330_VBVCLKData[] = 3319 { 3320 { 0x1b,0xe1, 25}, /* 0x0 */ 3321 { 0x4e,0xe4, 28}, /* 0x1 */ 3322 { 0x57,0xe4, 31}, /* 0x2 */ 3323 { 0xc3,0xc8, 36}, /* 0x3 */ 3324 { 0x42,0x47, 40}, /* 0x4 */ 3325 { 0xfe,0xcd, 43}, /* 0x5 */ 3326 { 0x5d,0xc4, 44}, /* 0x6 */ 3327 { 0x52,0x47, 49}, /* 0x7 */ 3328 { 0x53,0x47, 50}, /* 0x8 */ 3329 { 0x74,0x67, 52}, /* 0x9 */ 3330 { 0x6d,0x66, 56}, /* 0xa */ 3331 { 0x5a,0x64, 65}, /* 0xb */ 3332 { 0x46,0x44, 67}, /* 0xc */ 3333 { 0xb1,0x46, 68}, /* 0xd */ 3334 { 0xd3,0x4a, 72}, /* 0xe */ 3335 { 0x29,0x61, 75}, /* 0xf */ 3336 { 0x6d,0x46, 75}, /* 0x10 */ 3337 { 0x41,0x43, 78}, /* 0x11 */ 3338 { 0x31,0x42, 79}, /* 0x12 */ 3339 { 0xab,0x44, 83}, /* 0x13 */ 3340 { 0x46,0x25, 84}, /* 0x14 */ 3341 { 0x78,0x29, 86}, /* 0x15 */ 3342 { 0x62,0x44, 94}, /* 0x16 */ 3343 { 0x2b,0x22,104}, /* 0x17 */ 3344 { 0x49,0x24,105}, /* 0x18 */ 3345 { 0xf8,0x2f,108}, /* 0x19 */ 3346 { 0x3c,0x23,109}, /* 0x1a */ 3347 { 0x5e,0x43,113}, /* 0x1b */ 3348 { 0xbc,0x44,116}, /* 0x1c */ 3349 { 0xe0,0x46,132}, /* 0x1d */ 3350 { 0xd4,0x28,135}, /* 0x1e */ 3351 { 0xea,0x2a,139}, /* 0x1f */ 3352 { 0x41,0x22,157}, /* 0x20 */ 3353 { 0x70,0x24,162}, /* 0x21 */ 3354 { 0x30,0x21,175}, /* 0x22 */ 3355 { 0x4e,0x22,189}, /* 0x23 */ 3356 { 0xde,0x26,194}, /* 0x24 */ 3357 { 0x70,0x07,202}, /* 0x25 */ 3358 { 0x3f,0x03,229}, /* 0x26 */ 3359 { 0xb8,0x06,234}, /* 0x27 */ 3360 { 0x34,0x02,253}, /* 0x28 */ 3361 { 0x58,0x04,255}, /* 0x29 */ 3362 { 0x24,0x01,265}, /* 0x2a */ 3363 { 0x9b,0x02,267}, /* 0x2b */ 3364 { 0x70,0x05,270}, /* 0x2c */ 3365 { 0x25,0x01,272}, /* 0x2d */ 3366 { 0x9c,0x02,277}, /* 0x2e */ 3367 { 0x27,0x01,286}, /* 0x2f */ 3368 { 0x3c,0x02,291}, /* 0x30 */ 3369 { 0xef,0x0a,292}, /* 0x31 */ 3370 { 0xf6,0x0a,310}, /* 0x32 */ 3371 { 0x95,0x01,315}, /* 0x33 */ 3372 { 0xf0,0x09,324}, /* 0x34 */ 3373 { 0xfe,0x0a,331}, /* 0x35 */ 3374 { 0xf3,0x09,332}, /* 0x36 */ 3375 { 0xea,0x08,340}, /* 0x37 */ 3376 { 0xe8,0x07,376}, /* 0x38 */ 3377 { 0xde,0x06,389}, /* 0x39 */ 3378 { 0x52,0x2a, 54}, /* 0x3a */ 3379 { 0x52,0x6a, 27}, /* 0x3b */ 3380 { 0x62,0x24, 70}, /* 0x3c */ 3381 { 0x62,0x64, 70}, /* 0x3d */ 3382 { 0xa8,0x4c, 30}, /* 0x3e */ 3383 { 0x20,0x26, 33}, /* 0x3f */ 3384 { 0x31,0xc2, 39}, /* 0x40 */ 3385 { 0x2e,0x48, 25}, /* 0x41 */ 3386 { 0x24,0x46, 25}, /* 0x42 */ 3387 { 0x26,0x64, 28}, /* 0x43 */ 3388 { 0x37,0x64, 40}, /* 0x44 */ 3389 { 0xa1,0x42,108}, /* 0x45 */ 3390 { 0x37,0x61,100}, /* 0x46 */ 3391 { 0x78,0x27,108}, /* 0x47 */ 3392 { 0x5e,0x64,68}, /* 0x48 chiawen for fuj1280x768*/ 3393 { 0x70,0x44,108}, /* 0x49 chiawen for 1400x1050*/ 3394 }; 3395 #endif 3396 3397 static unsigned char XGI330_ScreenOffset[] = { 3398 0x14, 0x19, 0x20, 0x28, 0x32, 0x40, 3399 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35, 3400 0x57, 0x48}; 3401 3402 static struct XGI_StResInfoStruct XGI330_StResInfo[] = 3403 { 3404 { 640,400}, 3405 { 640,350}, 3406 { 720,400}, 3407 { 720,350}, 3408 { 640,480} 3409 }; 3410 3411 static struct XGI_ModeResInfoStruct XGI330_ModeResInfo[] = 3412 { 3413 { 320, 200, 8, 8}, 3414 { 320, 240, 8, 8}, 3415 { 320, 400, 8, 8}, 3416 { 400, 300, 8, 8}, 3417 { 512, 384, 8, 8}, 3418 { 640, 400, 8,16}, 3419 { 640, 480, 8,16}, 3420 { 800, 600, 8,16}, 3421 { 1024, 768, 8,16}, 3422 { 1280,1024, 8,16}, 3423 { 1600,1200, 8,16}, 3424 { 1920,1440, 8,16}, 3425 { 2048,1536, 8,16}, 3426 { 720, 480, 8,16}, 3427 { 720, 576, 8,16}, 3428 { 1280, 960, 8,16}, 3429 { 800, 480, 8,16}, 3430 { 1024, 576, 8,16}, 3431 { 1280, 720, 8,16}, 3432 { 856, 480, 8,16}, 3433 { 1280, 768, 8,16}, 3434 { 1400,1050, 8,16}, 3435 { 1152, 864, 8,16} 3436 }; 3437 3438 static unsigned char XGI330_OutputSelect = 0x40; 3439 static unsigned char XGI330_SoftSetting = 0x30; 3440 static unsigned char XGI330_SR07 = 0x18; 3441 3442 #if 0 3443 static unsigned char XGI330New_SR15[8][8] = { 3444 {0x0,0x4,0x60,0x60}, 3445 {0xf,0xf,0xf,0xf}, 3446 {0xba,0xba,0xba,0xba}, 3447 {0xa9,0xa9,0xac,0xac}, 3448 {0xa0,0xa0,0xa0,0xa8}, 3449 {0x0,0x0,0x2,0x2}, 3450 {0x30,0x30,0x40,0x40}, 3451 {0x0,0xa5,0xfb,0xf6} 3452 }; 3453 3454 static unsigned char XGI330New_CR40[5][8] = { 3455 {0x77,0x77,0x44,0x44}, 3456 {0x77,0x77,0x44,0x44}, 3457 {0x0,0x0,0x0,0x0}, 3458 {0x5b,0x5b,0xab,0xab}, 3459 {0x0,0x0,0xf0,0xf8} 3460 }; 3461 #endif 3462 3463 static unsigned char XGI330_CR49[] = {0xaa, 0x88}; 3464 static unsigned char XGI330_SR1F = 0x0; 3465 static unsigned char XGI330_SR21 = 0xa3; 3466 #if 0 3467 static unsigned char XGI330_650_SR21 = 0xa7; 3468 #endif 3469 static unsigned char XGI330_SR22 = 0xfb; 3470 static unsigned char XGI330_SR23 = 0xf6; 3471 static unsigned char XGI330_SR24 = 0xd; 3472 3473 #if 0 3474 static unsigned char XGI660_SR21 = 0xa3;/* 2003.0312 */ 3475 static unsigned char XGI660_SR22 = 0xf3;/* 2003.0312 */ 3476 3477 static unsigned char XGI330_LVDS_SR32 = 0x00; /* ynlai for 650 LVDS */ 3478 static unsigned char XGI330_LVDS_SR33 = 0x00; /* chiawen for 650 LVDS */ 3479 static unsigned char XGI330_650_SR31 = 0x40; 3480 static unsigned char XGI330_650_SR33 = 0x04; 3481 #endif 3482 static unsigned char XGI330_CRT2Data_1_2 = 0x0; 3483 static unsigned char XGI330_CRT2Data_4_D = 0x0; 3484 static unsigned char XGI330_CRT2Data_4_E = 0x0; 3485 static unsigned char XGI330_CRT2Data_4_10 = 0x80; 3486 static unsigned short XGI330_RGBSenseData = 0xd1; 3487 static unsigned short XGI330_VideoSenseData = 0xb9; 3488 static unsigned short XGI330_YCSenseData = 0xb3; 3489 static unsigned short XGI330_RGBSenseData2 = 0x0190; /*301b*/ 3490 static unsigned short XGI330_VideoSenseData2 = 0x0110; 3491 static unsigned short XGI330_YCSenseData2 = 0x016B; 3492 #if 0 3493 static unsigned char XGI330_NTSCPhase[] = {0x21, 0xed, 0x8a, 0x8}; 3494 static unsigned char XGI330_PALPhase[] = {0x2a, 0x5, 0xd3, 0x0}; 3495 static unsigned char XGI330_NTSCPhase2[] = {0x21, 0xF0, 0x7B, 0xD6};/*301b*/ 3496 static unsigned char XGI330_PALPhase2[] = {0x2a, 0x09, 0x86, 0xe9}; 3497 static unsigned char XGI330_PALMPhase[] = {0x21, 0xE4, 0x2E, 0x9B}; /*palmn*/ 3498 static unsigned char XGI330_PALNPhase[] = {0x21, 0xF4, 0x3E, 0xBA}; 3499 #endif 3500 static unsigned char XG40_I2CDefinition = 0x00 ; 3501 static unsigned char XG20_CR97 = 0x10 ; 3502 3503 static unsigned char XG21_DVOSetting = 0x00 ; 3504 static unsigned char XG21_CR2E = 0x00 ; 3505 static unsigned char XG21_CR2F = 0x00 ; 3506 static unsigned char XG21_CR46 = 0x00 ; 3507 static unsigned char XG21_CR47 = 0x00 ; 3508 3509 static unsigned char XG27_CR97 = 0xC1 ; 3510 static unsigned char XG27_SR36 = 0x30 ; 3511 static unsigned char XG27_CR8F = 0x0C ; 3512 static unsigned char XG27_CRD0[] = {0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00}; 3513 static unsigned char XG27_CRDE[] = {0, 0}; 3514 static unsigned char XG27_SR40 = 0x04 ; 3515 static unsigned char XG27_SR41 = 0x00 ; 3516 3517 static unsigned char XGI330_CHTVVCLKUNTSC[] = {0x00}; 3518 3519 static unsigned char XGI330_CHTVVCLKONTSC[] = {0x00}; 3520 3521 static unsigned char XGI330_CHTVVCLKUPAL[] = {0x00}; 3522 3523 static unsigned char XGI330_CHTVVCLKOPAL[] = {0x00}; 3524 3525 static unsigned char XGI7007_CHTVVCLKUNTSC[] = {CH7007TVVCLK30_2, 3526 CH7007TVVCLK30_2, 3527 CH7007TVVCLK30_2, 3528 CH7007TVVCLK30_2, 3529 CH7007TVVCLK28_1, 3530 CH7007TVVCLK47_8 3531 }; 3532 3533 static unsigned char XGI7007_CHTVVCLKONTSC[] = {CH7007TVVCLK26_4, 3534 CH7007TVVCLK26_4, 3535 CH7007TVVCLK26_4, 3536 CH7007TVVCLK26_4, 3537 CH7007TVVCLK24_6, 3538 CH7007TVVCLK43_6 3539 }; 3540 3541 static unsigned char XGI7007_CHTVVCLKUPAL[] = {CH7007TVVCLK31_5, 3542 CH7007TVVCLK31_5, 3543 CH7007TVVCLK31_5, 3544 CH7007TVVCLK31_5, 3545 CH7007TVVCLK26_2, 3546 CH7007TVVCLK39 3547 }; 3548 3549 static unsigned char XGI7007_CHTVVCLKOPAL[] = {CH7007TVVCLK31_5, 3550 CH7007TVVCLK31_5, 3551 CH7007TVVCLK31_5, 3552 CH7007TVVCLK31_5, 3553 CH7007TVVCLK26_2, 3554 CH7007TVVCLK36 3555 }; 3556 3557 static struct XGI330_VCLKDataStruct XGI_CH7007VCLKData[] = 3558 { 3559 { 0x60,0x36,30}, /* 0 30.2 MHZ */ 3560 { 0x40,0x4A,28}, /* 1 28.19 MHZ */ 3561 { 0x9F,0x46,44}, /* 2 43.6 MHZ */ 3562 { 0x97,0x2C,26}, /* 3 26.4 MHZ */ 3563 { 0x44,0xE4,25}, /* 4 24.6 MHZ */ 3564 { 0x7E,0x32,47}, /* 5 47.832 MHZ */ 3565 { 0x8A,0x24,31}, /* 6 31.5 MHZ */ 3566 { 0x97,0x2C,26}, /* 7 26.2 MHZ */ 3567 { 0xCE,0x3C,39}, /* 8 39 MHZ */ 3568 { 0x52,0x4A,36}, /* 9 36 MHZ */ 3569 { 0xFF,0x00,0 } /* End mark */ 3570 }; 3571 3572 static struct XGI330_VCLKDataStruct XGI_VCLKData[] = 3573 { 3574 /* SR2B,SR2C,SR2D */ 3575 { 0x1B,0xE1,25 },/* 00 (25.175MHz) */ 3576 3577 { 0x4E,0xE4,28 },/* 01 (28.322MHz) */ 3578 3579 { 0x57,0xE4,31 },/* 02 (31.500MHz) */ 3580 3581 { 0xC3,0xC8,36 },/* 03 (36.000MHz) */ 3582 3583 { 0x42,0xE2,40 },/* 04 (40.000MHz) */ 3584 3585 { 0xFE,0xCD,43 },/* 05 (43.163MHz) */ 3586 3587 { 0x5D,0xC4,44 },/* 06 (44.900MHz) */ 3588 3589 { 0x52,0xE2,49 },/* 07 (49.500MHz) */ 3590 3591 { 0x53,0xE2,50 },/* 08 (50.000MHz) */ 3592 3593 { 0x74,0x67,52 },/* 09 (52.406MHz) */ 3594 3595 { 0x6D,0x66,56 },/* 0A (56.250MHz) */ 3596 3597 { 0x6C,0xC3,65 },/* 0B (65.000MHz) */ 3598 3599 { 0x46,0x44,67 },/* 0C (67.765MHz) */ 3600 3601 { 0xB1,0x46,68 },/* 0D (68.179MHz) */ 3602 3603 { 0xD3,0x4A,72 },/* 0E (72.852MHz) */ 3604 3605 { 0x29,0x61,75 },/* 0F (75.000MHz) */ 3606 3607 { 0x6E,0x46,76 },/* 10 (75.800MHz) */ 3608 3609 { 0x2B,0x61,78 },/* 11 (78.750MHz) */ 3610 3611 { 0x31,0x42,79 },/* 12 (79.411MHz) */ 3612 3613 { 0xAB,0x44,83 },/* 13 (83.950MHz) */ 3614 3615 { 0x46,0x25,84 },/* 14 (84.800MHz) */ 3616 3617 { 0x78,0x29,86 },/* 15 (86.600MHz) */ 3618 3619 { 0x62,0x44,94 },/* 16 (94.500MHz) */ 3620 3621 { 0x2B,0x41,104 },/* 17 (104.998MHz) */ 3622 3623 { 0x3A,0x23,105 },/* 18 (105.882MHz) */ 3624 3625 { 0x70,0x44,108 },/* 19 (107.862MHz) */ 3626 3627 { 0x3C,0x23,109 },/* 1A (109.175MHz) */ 3628 3629 { 0x5E,0x43,113 },/* 1B (113.309MHz) */ 3630 3631 { 0xBC,0x44,116 },/* 1C (116.406MHz) */ 3632 3633 { 0xE0,0x46,132 },/* 1D (132.258MHz) */ 3634 3635 { 0x54,0x42,135 },/* 1E (135.500MHz) */ 3636 3637 { 0x9C,0x22,139 },/* 1F (139.275MHz) */ 3638 3639 { 0x41,0x22,157 },/* 20 (157.500MHz) */ 3640 3641 { 0x70,0x24,162 },/* 21 (161.793MHz) */ 3642 3643 { 0x30,0x21,175 },/* 22 (175.000MHz) */ 3644 3645 { 0x4E,0x22,189 },/* 23 (188.520MHz) */ 3646 3647 { 0xDE,0x26,194 },/* 24 (194.400MHz) */ 3648 3649 { 0x62,0x06,202 },/* 25 (202.500MHz) */ 3650 3651 { 0x3F,0x03,229 },/* 26 (229.500MHz) */ 3652 3653 { 0xB8,0x06,234 },/* 27 (233.178MHz) */ 3654 3655 { 0x34,0x02,253 },/* 28 (252.699MHz) */ 3656 3657 { 0x58,0x04,255 },/* 29 (254.817MHz) */ 3658 3659 { 0x24,0x01,265 },/* 2A (265.728MHz) */ 3660 3661 { 0x9B,0x02,267 },/* 2B (266.952MHz) */ 3662 3663 { 0x70,0x05,270 },/* 2C (269.65567MHz) */ 3664 3665 { 0x25,0x01,272 },/* 2D (272.04199MHz) */ 3666 3667 { 0x9C,0x02,277 },/* 2E (277.015MHz) */ 3668 3669 { 0x27,0x01,286 },/* 2F (286.359985MHz) */ 3670 3671 { 0xB3,0x04,291 },/* 30 (291.13266MHz) */ 3672 3673 { 0xBC,0x05,292 },/* 31 (291.766MHz) */ 3674 3675 { 0xF6,0x0A,310 },/* 32 (309.789459MHz) */ 3676 3677 { 0x95,0x01,315 },/* 33 (315.195MHz) */ 3678 3679 { 0xF0,0x09,324 },/* 34 (323.586792MHz) */ 3680 3681 { 0xFE,0x0A,331 },/* 35 (330.615631MHz) */ 3682 3683 { 0xF3,0x09,332 },/* 36 (332.177612MHz) */ 3684 3685 { 0x5E,0x03,340 },/* 37 (340.477MHz) */ 3686 3687 { 0xE8,0x07,376 },/* 38 (375.847504MHz) */ 3688 3689 { 0xDE, 0x06,389 },/* 39 (388.631439MHz) */ 3690 3691 { 0x52,0x2A,54 },/* 3A (54.000MHz) */ 3692 3693 { 0x52,0x6A,27 },/* 3B (27.000MHz) */ 3694 3695 { 0x62,0x24,70 },/* 3C (70.874991MHz) */ 3696 3697 { 0x62,0x64,70 },/* 3D (70.1048912MHz) */ 3698 3699 { 0xA8,0x4C,30 },/* 3E (30.1048912MHz) */ 3700 3701 { 0x20,0x26,33 },/* 3F (33.7499957MHz) */ 3702 3703 { 0x31,0xc2,39 },/* 40 (39.77MHz) */ 3704 3705 { 0x11,0x21,30 },/* 41 (30MHz) }// NTSC 1024X768 */ 3706 3707 { 0x2E,0x48,25 },/* 42 (25.175MHz) }// ScaleLCD */ 3708 3709 { 0x24,0x46,25 },/* 43 (25.175MHz) */ 3710 3711 { 0x26,0x64,28 },/* 44 (28.322MHz) */ 3712 3713 { 0x37,0x64,40 },/* 45 (40.000MHz) */ 3714 3715 { 0xA1,0x42,108 },/* 46 (95.000MHz) }// QVGA */ 3716 3717 { 0x37,0x61,100 },/* 47 (100.00MHz) */ 3718 3719 { 0x78,0x27,108 },/* 48 (108.200MHz) */ 3720 3721 { 0xBF,0xC8,35 },/* 49 (35.2MHz) */ 3722 3723 { 0x66,0x43,123 },/* 4A (122.61Mhz) */ 3724 3725 { 0x2C,0x61,80 },/* 4B (80.350Mhz) */ 3726 3727 { 0x3B,0x61,108 },/* 4C (107.385Mhz) */ 3728 3729 3730 /* { 0x60,0x36,30 },// 4D (30.200MHz) }// No use 3731 3732 { 0x60,0x36,30 },// 4E (30.200MHz) }// No use 3733 3734 { 0x60,0x36,30 },// 4F (30.200MHz) }// No use 3735 3736 { 0x60,0x36,30 },// 50 (30.200MHz) }// CHTV 3737 3738 { 0x40,0x4A,28 },// 51 (28.190MHz) 3739 3740 { 0x9F,0x46,44 },// 52 (43.600MHz) 3741 3742 { 0x97,0x2C,26 },// 53 (26.400MHz) 3743 3744 { 0x44,0xE4,25 },// 54 (24.600MHz) 3745 3746 { 0x7E,0x32,47 },// 55 (47.832MHz) 3747 3748 { 0x8A,0x24,31 },// 56 (31.500MHz) 3749 3750 { 0x97,0x2C,26 },// 57 (26.200MHz) 3751 3752 { 0xCE,0x3C,39 },// 58 (39.000MHz) 3753 3754 { 0x52,0x4A,36 },// 59 (36.000MHz) 3755 3756 */ 3757 { 0x69,0x61,191 }, /* 4D (190.96MHz ) */ 3758 { 0x4F,0x22,192 }, /* 4E (192.069MHz) */ 3759 { 0x28,0x26,322 }, /* 4F (322.273MHz) */ 3760 { 0x5C,0x6B,27 }, /* 50 (27.74HMz) */ 3761 { 0x57,0x24,126 }, /* 51 (125.999MHz) */ 3762 { 0x5C,0x42,148 }, /* 52 (148.5MHz) */ 3763 { 0x42,0x61,120 }, /* 53 (120.839MHz) */ 3764 { 0x62,0x61,178 }, /* 54 (178.992MHz) */ 3765 { 0x59,0x22,217 }, /* 55 (217.325MHz) */ 3766 { 0x29,0x01,300 }, /* 56 (299.505Mhz) */ 3767 { 0x52,0x63,74 }, /* 57 (74.25MHz) */ 3768 3769 3770 { 0xFF,0x00,0 }/* End mark */ 3771 } ; 3772 3773 static struct XGI330_VCLKDataStruct XGI_VBVCLKData[] = 3774 { 3775 { 0x1B,0xE1,25 },/* 00 (25.175MHz) */ 3776 3777 { 0x4E,0xE4,28 },/* 01 (28.322MHz) */ 3778 3779 { 0x57,0xE4,31 },/* 02 (31.500MHz) */ 3780 3781 { 0xC3,0xC8,36 },/* 03 (36.000MHz) */ 3782 3783 { 0x42,0x47,40 },/* 04 (40.000MHz) */ 3784 3785 { 0xFE,0xCD,43 },/* 05 (43.163MHz) */ 3786 3787 { 0x5D,0xC4,44 },/* 06 (44.900MHz) */ 3788 3789 { 0x52,0x47,49 },/* 07 (49.500MHz) */ 3790 3791 { 0x53,0x47,50 },/* 08 (50.000MHz) */ 3792 3793 { 0x74,0x67,52 },/* 09 (52.406MHz) */ 3794 3795 { 0x6D,0x66,56 },/* 0A (56.250MHz) */ 3796 3797 { 0x35,0x62,65 },/* 0B (65.000MHz) */ 3798 3799 { 0x46,0x44,67 },/* 0C (67.765MHz) */ 3800 3801 { 0xB1,0x46,68 },/* 0D (68.179MHz) */ 3802 3803 { 0xD3,0x4A,72 },/* 0E (72.852MHz) */ 3804 3805 { 0x29,0x61,75 },/* 0F (75.000MHz) */ 3806 3807 { 0x6D,0x46,75 },/* 10 (75.800MHz) */ 3808 3809 { 0x41,0x43,78 },/* 11 (78.750MHz) */ 3810 3811 { 0x31,0x42,79 },/* 12 (79.411MHz) */ 3812 3813 { 0xAB,0x44,83 },/* 13 (83.950MHz) */ 3814 3815 { 0x46,0x25,84 },/* 14 (84.800MHz) */ 3816 3817 { 0x78,0x29,86 },/* 15 (86.600MHz) */ 3818 3819 { 0x62,0x44,94 },/* 16 (94.500MHz) */ 3820 3821 { 0x2B,0x22,104 },/* 17 (104.998MHz) */ 3822 3823 { 0x49,0x24,105 },/* 18 (105.882MHz) */ 3824 3825 { 0xF8,0x2F,108 },/* 19 (108.279MHz) */ 3826 3827 { 0x3C,0x23,109 },/* 1A (109.175MHz) */ 3828 3829 { 0x5E,0x43,113 },/* 1B (113.309MHz) */ 3830 3831 { 0xBC,0x44,116 },/* 1C (116.406MHz) */ 3832 3833 { 0xE0,0x46,132 },/* 1D (132.258MHz) */ 3834 3835 { 0xD4,0x28,135 },/* 1E (135.220MHz) */ 3836 3837 { 0xEA,0x2A,139 },/* 1F (139.275MHz) */ 3838 3839 { 0x41,0x22,157 },/* 20 (157.500MHz) */ 3840 3841 { 0x70,0x24,162 },/* 21 (161.793MHz) */ 3842 3843 { 0x30,0x21,175 },/* 22 (175.000MHz) */ 3844 3845 { 0x4E,0x22,189 },/* 23 (188.520MHz) */ 3846 3847 { 0xDE,0x26,194 },/* 24 (194.400MHz) */ 3848 3849 { 0x70,0x07,202 },/* 25 (202.500MHz) */ 3850 3851 { 0x3F,0x03,229 },/* 26 (229.500MHz) */ 3852 3853 { 0xB8,0x06,234 },/* 27 (233.178MHz) */ 3854 3855 { 0x34,0x02,253 },/* 28 (252.699997 MHz) */ 3856 3857 { 0x58,0x04,255 },/* 29 (254.817MHz) */ 3858 3859 { 0x24,0x01,265 },/* 2A (265.728MHz) */ 3860 3861 { 0x9B,0x02,267 },/* 2B (266.952MHz) */ 3862 3863 { 0x70,0x05,270 },/* 2C (269.65567 MHz) */ 3864 3865 { 0x25,0x01,272 },/* 2D (272.041992 MHz) */ 3866 3867 { 0x9C,0x02,277 },/* 2E (277.015MHz) */ 3868 3869 { 0x27,0x01,286 },/* 2F (286.359985 MHz) */ 3870 3871 { 0x3C,0x02,291 },/* 30 (291.132660 MHz) */ 3872 3873 { 0xEF,0x0A,292 },/* 31 (291.766MHz) */ 3874 3875 { 0xF6,0x0A,310 },/* 32 (309.789459 MHz) */ 3876 3877 { 0x95,0x01,315 },/* 33 (315.195MHz) */ 3878 3879 { 0xF0,0x09,324 },/* 34 (323.586792 MHz) */ 3880 3881 { 0xFE,0x0A,331 },/* 35 (330.615631 MHz) */ 3882 3883 { 0xF3,0x09,332 },/* 36 (332.177612 MHz) */ 3884 3885 { 0xEA,0x08,340 },/* 37 (340.477MHz) */ 3886 3887 { 0xE8,0x07,376 },/* 38 (375.847504 MHz) */ 3888 3889 { 0xDE,0x06,389 },/* 39 (388.631439 MHz) */ 3890 3891 { 0x52,0x2A,54 },/* 3A (54.000MHz) */ 3892 3893 { 0x52,0x6A,27 },/* 3B (27.000MHz) */ 3894 3895 3896 { 0x62,0x24,70 },/* 3C (70.874991MHz) */ 3897 3898 3899 { 0x62,0x64,70 },/* 3D (70.1048912MHz) */ 3900 3901 { 0xA8,0x4C,30 },/* 3E (30.1048912MHz) */ 3902 3903 { 0x20,0x26,33 },/* 3F (33.7499957MHz) */ 3904 3905 { 0x31,0xc2,39 },/* 40 (39.77MHz) */ 3906 3907 { 0x11,0x21,30 },/* 41 (30MHz) }// NTSC 1024X768 */ 3908 3909 { 0x2E,0x48,25 },/* 42 (25.175MHz) }// ScaleLCD */ 3910 3911 { 0x24,0x46,25 },/* 43 (25.175MHz) */ 3912 3913 { 0x26,0x64,28 },/* 44 (28.322MHz) */ 3914 3915 { 0x37,0x64,40 },/* 45 (40.000MHz) */ 3916 3917 { 0xA1,0x42,108 },/* 46 (95.000MHz) }// QVGA */ 3918 3919 { 0x37,0x61,100 },/* 47 (100.00MHz) */ 3920 3921 { 0x78,0x27,108 },/* 48 (108.200MHz) */ 3922 3923 { 0xBF,0xC8,35 },/* 49 (35.2MHz) */ 3924 3925 { 0x66,0x43,123 },/* 4A (122.61Mhz) */ 3926 3927 { 0x2C,0x61,80 },/* 4B (80.350Mhz) */ 3928 3929 { 0x3B,0x61,108 },/* 4C (107.385Mhz) */ 3930 3931 /* 3932 { 0x60,0x36,30 },// 4D (30.200MHz) }// No use 3933 3934 { 0x60,0x36,30 },// 4E (30.200MHz) }// No use 3935 3936 { 0x60,0x36,30 },// 4F (30.200MHz) }// No use 3937 3938 { 0x60,0x36,30 },// 50 (30.200MHz) }// CHTV 3939 3940 { 0x40,0x4A,28 },// 51 (28.190MHz) 3941 3942 { 0x9F,0x46,44 },// 52 (43.600MHz) 3943 3944 { 0x97,0x2C,26 },// 53 (26.400MHz) 3945 3946 { 0x44,0xE4,25 },// 54 (24.600MHz) 3947 3948 { 0x7E,0x32,47 },// 55 (47.832MHz) 3949 3950 { 0x8A,0x24,31 },// 56 (31.500MHz) 3951 3952 { 0x97,0x2C,26 },// 57 (26.200MHz) 3953 3954 { 0xCE,0x3C,39 },// 58 (39.000MHz) 3955 3956 { 0x52,0x4A,36 },// 59 (36.000MHz) 3957 */ 3958 { 0x69,0x61,191 }, /* 4D (190.96MHz ) */ 3959 { 0x4F,0x22,192 }, /* 4E (192.069MHz) */ 3960 { 0x28,0x26,322 }, /* 4F (322.273MHz) */ 3961 { 0x5C,0x6B,27 }, /* 50 (27.74HMz) */ 3962 { 0x57,0x24,126 }, /* 51 (125.999MHz) */ 3963 { 0x5C,0x42,148 }, /* 52 (148.5MHz) */ 3964 { 0x42,0x61,120 }, /* 53 (120.839MHz) */ 3965 { 0x62,0x61,178 }, /* 54 (178.992MHz) */ 3966 { 0x59,0x22,217 }, /* 55 (217.325MHz) */ 3967 { 0x29,0x01,300 }, /* 56 (299.505Mhz) */ 3968 { 0x52,0x63,74 }, /* 57 (74.25MHz) */ 3969 3970 3971 { 0xFF,0x00,0 } /* End mark */ 3972 }; 3973 3974 #if 0 3975 static unsigned char XGI660_TVDelayList[] = 3976 { 3977 0x44, /* ; 0 ExtNTSCDelay */ 3978 0x44, /* ; 1 StNTSCDelay */ 3979 0x44, /* ; 2 ExtPALDelay */ 3980 0x44, /* ; 3 StPALDelay */ 3981 0x44, /* ; 4 ExtHiTVDelay(1080i) */ 3982 0x44, /* ; 5 StHiTVDelay(1080i) */ 3983 0x44, /* ; 6 ExtYPbPrDelay(525i) */ 3984 0x44, /* ; 7 StYPbPrDealy(525i) */ 3985 0x44, /* ; 8 ExtYPbPrDelay(525p) */ 3986 0x44, /* ; 9 StYPbPrDealy(525p) */ 3987 0x44, /* ; A ExtYPbPrDelay(750p) */ 3988 0x44 /* ; B StYPbPrDealy(750p) */ 3989 }; 3990 3991 static unsigned char XGI660_TVDelayList2[] = 3992 { 3993 0x44, /* ; 0 ExtNTSCDelay */ 3994 0x44, /* ; 1 StNTSCDelay */ 3995 0x44, /* ; 2 ExtPALDelay */ 3996 0x44, /* ; 3 StPALDelay */ 3997 0x44, /* ; 4 ExtHiTVDelay */ 3998 0x44, /* ; 5 StHiTVDelay */ 3999 0x44, /* ; 6 ExtYPbPrDelay(525i) */ 4000 0x44, /* ; 7 StYPbPrDealy(525i) */ 4001 0x44, /* ; 8 ExtYPbPrDelay(525p) */ 4002 0x44, /* ; 9 StYPbPrDealy(525p) */ 4003 0x44, /* ; A ExtYPbPrDelay(750p) */ 4004 0x44 /* ; B StYPbPrDealy(750p) */ 4005 }; 4006 #endif 4007 4008 static unsigned char XGI301TVDelayList[] = 4009 { 4010 0x22, /* ; 0 ExtNTSCDelay */ 4011 0x22, /* ; 1 StNTSCDelay */ 4012 0x22, /* ; 2 ExtPALDelay */ 4013 0x22, /* ; 3 StPALDelay */ 4014 0x88, /* ; 4 ExtHiTVDelay(1080i) */ 4015 0xBB, /* ; 5 StHiTVDelay(1080i) */ 4016 0x22, /* ; 6 ExtYPbPrDelay(525i) */ 4017 0x22, /* ; 7 StYPbPrDealy(525i) */ 4018 0x22, /* ; 8 ExtYPbPrDelay(525p) */ 4019 0x22, /* ; 9 StYPbPrDealy(525p) */ 4020 0x22, /* ; A ExtYPbPrDelay(750p) */ 4021 0x22 /* B StYPbPrDealy(750p) */ 4022 }; 4023 4024 static unsigned char XGI301TVDelayList2[] = 4025 { 4026 0x22, /* ; 0 ExtNTSCDelay */ 4027 0x22, /* ; 1 StNTSCDelay */ 4028 0x22, /* ; 2 ExtPALDelay */ 4029 0x22, /* ; 3 StPALDelay */ 4030 0x22, /* ; 4 ExtHiTVDelay */ 4031 0x22, /* ; 5 StHiTVDelay */ 4032 0x22, /* ; 6 ExtYPbPrDelay(525i) */ 4033 0x22, /* ; 7 StYPbPrDealy(525i) */ 4034 0x22, /* ; 8 ExtYPbPrDelay(525p) */ 4035 0x22, /* ; 9 StYPbPrDealy(525p) */ 4036 0x22, /* ; A ExtYPbPrDelay(750p) */ 4037 0x22 /* ; B StYPbPrDealy(750p) */ 4038 }; 4039 4040 4041 static unsigned char TVAntiFlickList[] = 4042 {/* NTSCAntiFlicker */ 4043 0x04, /* ; 0 Adaptive */ 4044 0x00, /* ; 1 new anti-flicker ? */ 4045 /* PALAntiFlicker */ 4046 0x04, /* ; 0 Adaptive */ 4047 0x08, /* ; 1 new anti-flicker ? */ 4048 /* HiTVAntiFlicker */ 4049 0x04, /* ; 0 ? */ 4050 0x00 /* ; 1 new anti-flicker ? */ 4051 }; 4052 4053 4054 static unsigned char TVEdgeList[] = 4055 { 4056 0x00, /* ; 0 NTSC No Edge enhance */ 4057 0x04, /* ; 1 NTSC Adaptive Edge enhance */ 4058 0x00, /* ; 0 PAL No Edge enhance */ 4059 0x04, /* ; 1 PAL Adaptive Edge enhance */ 4060 0x00, /* ; 0 HiTV */ 4061 0x00 /* ; 1 HiTV */ 4062 }; 4063 4064 static unsigned long TVPhaseList[] = 4065 { 0x08BAED21, /* ; 0 NTSC phase */ 4066 0x00E3052A, /* ; 1 PAL phase */ 4067 0x9B2EE421, /* ; 2 PAL-M phase */ 4068 0xBA3EF421, /* ; 3 PAL-N phase */ 4069 0xA7A28B1E, /* ; 4 NTSC 1024x768 */ 4070 0xE00A831E, /* ; 5 PAL-M 1024x768 */ 4071 0x00000000, /* ; 6 reserved */ 4072 0x00000000, /* ; 7 reserved */ 4073 0xD67BF021, /* ; 8 NTSC phase */ 4074 0xE986092A, /* ; 9 PAL phase */ 4075 0xA4EFE621, /* ; A PAL-M phase */ 4076 0x4694F621, /* ; B PAL-N phase */ 4077 0x8BDE711C, /* ; C NTSC 1024x768 */ 4078 0xE00A831E /* ; D PAL-M 1024x768 */ 4079 }; 4080 4081 static unsigned char NTSCYFilter1[] = 4082 { 4083 0x00,0xF4,0x10,0x38 ,/* 0 : 320x text mode */ 4084 0x00,0xF4,0x10,0x38 ,/* 1 : 360x text mode */ 4085 0xEB,0x04,0x25,0x18 ,/* 2 : 640x text mode */ 4086 0xF1,0x04,0x1F,0x18 ,/* 3 : 720x text mode */ 4087 0x00,0xF4,0x10,0x38 ,/* 4 : 320x gra. mode */ 4088 0xEB,0x04,0x25,0x18 ,/* 5 : 640x gra. mode */ 4089 0xEB,0x15,0x25,0xF6 /* 6 : 800x gra. mode */ 4090 }; 4091 4092 static unsigned char PALYFilter1[] = 4093 { 4094 0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */ 4095 0x00,0xF4,0x10,0x38 ,/* 1 : 360x text mode */ 4096 0xF1,0xF7,0x1F,0x32 ,/* 2 : 640x text mode */ 4097 0xF3,0x00,0x1D,0x20 ,/* 3 : 720x text mode */ 4098 0x00,0xF4,0x10,0x38 ,/* 4 : 320x gra. mode */ 4099 0xF1,0xF7,0x1F,0x32 ,/* 5 : 640x gra. mode */ 4100 0xFC,0xFB,0x14,0x2A /* 6 : 800x gra. mode */ 4101 }; 4102 4103 static unsigned char PALMYFilter1[] = 4104 { 4105 0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */ 4106 0x00,0xF4,0x10,0x38, /* 1 : 360x text mode */ 4107 0xEB,0x04,0x10,0x18, /* 2 : 640x text mode */ 4108 0xF7,0x06,0x19,0x14, /* 3 : 720x text mode */ 4109 0x00,0xF4,0x10,0x38, /* 4 : 320x gra. mode */ 4110 0xEB,0x04,0x25,0x18, /* 5 : 640x gra. mode */ 4111 0xEB,0x15,0x25,0xF6, /* 6 : 800x gra. mode */ 4112 0xFF,0xFF,0xFF,0xFF /* End of Table */ 4113 }; 4114 4115 static unsigned char PALNYFilter1[] = 4116 { 4117 0x00,0xF4,0x10,0x38, /* 0 : 320x text mode */ 4118 0x00,0xF4,0x10,0x38, /* 1 : 360x text mode */ 4119 0xEB,0x04,0x10,0x18, /* 2 : 640x text mode */ 4120 0xF7,0x06,0x19,0x14, /* 3 : 720x text mode */ 4121 0x00,0xF4,0x10,0x38, /* 4 : 320x gra. mode */ 4122 0xEB,0x04,0x25,0x18, /* 5 : 640x gra. mode */ 4123 0xEB,0x15,0x25,0xF6, /* 6 : 800x gra. mode */ 4124 0xFF,0xFF,0xFF,0xFF /* End of Table */ 4125 }; 4126 4127 static unsigned char NTSCYFilter2[] = 4128 { 4129 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */ 4130 0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */ 4131 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */ 4132 0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */ 4133 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */ 4134 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */ 4135 0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */ 4136 0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28 /* 7 : 1024xgra. mode */ 4137 }; 4138 4139 static unsigned char PALYFilter2[] = 4140 { 4141 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */ 4142 0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */ 4143 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */ 4144 0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */ 4145 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */ 4146 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */ 4147 0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */ 4148 0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28 /* 7 : 1024xgra. mode */ 4149 }; 4150 4151 static unsigned char PALMYFilter2[] = 4152 { 4153 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */ 4154 0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */ 4155 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */ 4156 0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */ 4157 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */ 4158 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */ 4159 0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */ 4160 0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28 /* 7 : 1024xgra. mode */ 4161 }; 4162 4163 static unsigned char PALNYFilter2[] = 4164 { 4165 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 0 : 320x text mode */ 4166 0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 1 : 360x text mode */ 4167 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 2 : 640x text mode */ 4168 0x01,0x02,0xFE,0xF7,0x03,0x27,0x3C, /* 3 : 720x text mode */ 4169 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 4 : 320x gra. mode */ 4170 0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46, /* 5 : 640x gra. mode */ 4171 0x01,0x01,0xFC,0xF8,0x08,0x26,0x38, /* 6 : 800x gra. mode */ 4172 0xFF,0xFF,0xFC,0x00,0x0F,0x22,0x28 /* 7 : 1024xgra. mode */ 4173 }; 4174 4175 static unsigned char XGI_NTSC1024AdjTime[] = 4176 { 4177 0xa7,0x07,0xf2,0x6e,0x17,0x8b,0x73,0x53, 4178 0x13,0x40,0x34,0xF4,0x63,0xBB,0xCC,0x7A, 4179 0x58,0xe4,0x73,0xd0,0x13 4180 }; 4181 4182 static struct XGI301C_Tap4TimingStruct HiTVTap4Timing[] = 4183 { 4184 {0,{ 4185 0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* ; C0-C7 */ 4186 0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* ; C8-CF */ 4187 0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* ; D0-D7 */ 4188 0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* ; D8-DF */ 4189 0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* ; E0-E7 */ 4190 0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* ; EA-EF */ 4191 0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* ; F0-F7 */ 4192 0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E /* ; F8-FF */ 4193 } 4194 } 4195 }; 4196 4197 static struct XGI301C_Tap4TimingStruct EnlargeTap4Timing[] = 4198 { 4199 {0,{ 4200 0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* ; C0-C7 */ 4201 0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* ; C8-CF */ 4202 0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* ; D0-D7 */ 4203 0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* ; D8-DF */ 4204 0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* ; E0-E7 */ 4205 0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* ; EA-EF */ 4206 0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* ; F0-F7 */ 4207 0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E /* ; F8-FF */ 4208 } 4209 } 4210 }; 4211 4212 static struct XGI301C_Tap4TimingStruct NoScaleTap4Timing[] = 4213 { 4214 {0,{ 4215 0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F, /* ; C0-C7 */ 4216 0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E, /* ; C8-CF */ 4217 0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E, /* ; D0-D7 */ 4218 0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C, /* ; D8-DF */ 4219 0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C, /* ; E0-E7 */ 4220 0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C, /* ; EA-EF */ 4221 0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C, /* ; F0-F7 */ 4222 0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E /* ; F8-FF */ 4223 } 4224 } 4225 }; 4226 4227 static struct XGI301C_Tap4TimingStruct PALTap4Timing[] = 4228 { 4229 {600, { 4230 0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E, /* ; C0-C7 */ 4231 0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D, /* ; C8-CF */ 4232 0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C, /* ; D0-D7 */ 4233 0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D, /* ; D8-DF */ 4234 0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E, /* ; E0-E7 */ 4235 0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E, /* ; EA-EF */ 4236 0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01, /* ; F0-F7 */ 4237 0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04 /* ; F8-FF */ 4238 } 4239 }, 4240 {768, { 4241 0x08,0x12,0x08,0x7E,0x07,0x12,0x09,0x7E, /* ; C0-C7 */ 4242 0x06,0x12,0x0A,0x7E,0x05,0x11,0x0B,0x7F, /* ; C8-CF */ 4243 0x04,0x11,0x0C,0x7F,0x03,0x11,0x0C,0x00, /* ; D0-D7 */ 4244 0x03,0x10,0x0D,0x00,0x02,0x0F,0x0E,0x01, /* ; D8-DF */ 4245 0x01,0x0F,0x0F,0x01,0x01,0x0E,0x0F,0x02, /* ; E0-E7 */ 4246 0x00,0x0D,0x10,0x03,0x7F,0x0C,0x11,0x04, /* ; EA-EF */ 4247 0x7F,0x0C,0x11,0x04,0x7F,0x0B,0x11,0x05, /* ; F0-F7 */ 4248 0x7E,0x0A,0x12,0x06,0x7E,0x09,0x12,0x07 /* ; F8-FF */ 4249 } 4250 }, 4251 {0xFFFF, 4252 { 4253 0x04,0x1A,0x04,0x7E,0x02,0x1B,0x05,0x7E, /* ; C0-C7 */ 4254 0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D, /* ; C8-CF */ 4255 0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D, /* ; D0-D7 */ 4256 0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C, /* ; D8-DF */ 4257 0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D, /* ; E0-E7 */ 4258 0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F, /* ; EA-EF */ 4259 0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00, /* ; F0-F7 */ 4260 0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1B,0x02 /* ; F8-FF */ 4261 } 4262 } 4263 }; 4264 4265 static struct XGI301C_Tap4TimingStruct NTSCTap4Timing[] = 4266 { 4267 {480, { 4268 0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* ; C0-C7 */ 4269 0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* ; C8-CF */ 4270 0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* ; D0-D7 */ 4271 0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* ; D8-DF */ 4272 0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* ; E0-E7 */ 4273 0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* ; EA-EF */ 4274 0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* ; F0-F7 */ 4275 0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02 /* ; F8-FF */ 4276 } 4277 }, 4278 {600, { 4279 0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* ; C0-C7 */ 4280 0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* ; C8-CF */ 4281 0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* ; D0-D7 */ 4282 0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* ; D8-DF */ 4283 0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* ; E0-E7 */ 4284 0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* ; EA-EF */ 4285 0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* ; F0-F7 */ 4286 0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06 /* ; F8-FF */ 4287 } 4288 }, 4289 {0xFFFF, 4290 { 4291 0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* ; C0-C7 */ 4292 0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* ; C8-CF */ 4293 0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* ; D0-D7 */ 4294 0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* ; D8-DF */ 4295 0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* ; E0-E7 */ 4296 0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* ; EA-EF */ 4297 0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* ; F0-F7 */ 4298 0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08 /* ; F8-FF */ 4299 } 4300 } 4301 }; 4302 4303 static struct XGI301C_Tap4TimingStruct YPbPr525pTap4Timing[] = 4304 { 4305 {480, { 4306 0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* ; C0-C7 */ 4307 0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* ; C8-CF */ 4308 0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* ; D0-D7 */ 4309 0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* ; D8-DF */ 4310 0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* ; E0-E7 */ 4311 0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* ; EA-EF */ 4312 0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* ; F0-F7 */ 4313 0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02 /* ; F8-FF */ 4314 } 4315 }, 4316 {600, { 4317 0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* ; C0-C7 */ 4318 0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* ; C8-CF */ 4319 0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* ; D0-D7 */ 4320 0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* ; D8-DF */ 4321 0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* ; E0-E7 */ 4322 0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* ; EA-EF */ 4323 0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* ; F0-F7 */ 4324 0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06 /* ; F8-FF */ 4325 } 4326 }, 4327 {0xFFFF, 4328 { 4329 0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* ; C0-C7 */ 4330 0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* ; C8-CF */ 4331 0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* ; D0-D7 */ 4332 0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* ; D8-DF */ 4333 0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* ; E0-E7 */ 4334 0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* ; EA-EF */ 4335 0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* ; F0-F7 */ 4336 0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08 /* ; F8-FF */ 4337 } 4338 } 4339 }; 4340 4341 static struct XGI301C_Tap4TimingStruct YPbPr525iTap4Timing[] = 4342 { 4343 {480, { 4344 0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D, /* ; C0-C7 */ 4345 0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D, /* ; C8-CF */ 4346 0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C, /* ; D0-D7 */ 4347 0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C, /* ; D8-DF */ 4348 0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D, /* ; E0-E7 */ 4349 0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E, /* ; EA-EF */ 4350 0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00, /* ; F0-F7 */ 4351 0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02 /* ; F8-FF */ 4352 } 4353 }, 4354 {600, { 4355 0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D, /* ; C0-C7 */ 4356 0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E, /* ; C8-CF */ 4357 0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F, /* ; D0-D7 */ 4358 0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F, /* ; D8-DF */ 4359 0x01,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01, /* ; E0-E7 */ 4360 0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03, /* ; EA-EF */ 4361 0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04, /* ; F0-F7 */ 4362 0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06 /* ; F8-FF */ 4363 } 4364 }, 4365 {0xFFFF, 4366 { 4367 0x09,0x0F,0x09,0x7F,0x08,0x0F,0x09,0x00, /* ; C0-C7 */ 4368 0x07,0x0F,0x0A,0x00,0x06,0x0F,0x0A,0x01, /* ; C8-CF */ 4369 0x06,0x0E,0x0B,0x01,0x05,0x0E,0x0B,0x02, /* ; D0-D7 */ 4370 0x04,0x0E,0x0C,0x02,0x04,0x0D,0x0C,0x03, /* ; D8-DF */ 4371 0x03,0x0D,0x0D,0x03,0x02,0x0C,0x0D,0x05, /* ; E0-E7 */ 4372 0x02,0x0C,0x0E,0x04,0x01,0x0B,0x0E,0x06, /* ; EA-EF */ 4373 0x01,0x0B,0x0E,0x06,0x00,0x0A,0x0F,0x07, /* ; F0-F7 */ 4374 0x00,0x0A,0x0F,0x07,0x00,0x09,0x0F,0x08 /* ; F8-FF */ 4375 } 4376 } 4377 }; 4378 4379 static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = 4380 { {0xFFFF, 4381 { 4382 0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E, /* ; C0-C7 */ 4383 0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D, /* ; C8-CF */ 4384 0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C, /* ; D0-D7 */ 4385 0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D, /* ; D8-DF */ 4386 0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E, /* ; E0-E7 */ 4387 0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E, /* ; EA-EF */ 4388 0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01, /* ; F0-F7 */ 4389 0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04 /* F8-FF */ 4390 } 4391 } 4392 }; 4393