blob: f17e5b9bd3330c61baa515a18b528c0b26e14393 [file] [log] [blame]
Peter Hueweac326fb2012-06-14 00:21:41 +02001#ifndef _VB_TABLE_
2#define _VB_TABLE_
Aaro Koskinena68292f2012-11-04 21:15:07 +02003static const struct SiS_MCLKData XGI340New_MCLKData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08004 {0x16, 0x01, 0x01, 166},
5 {0x19, 0x02, 0x01, 124},
6 {0x7C, 0x08, 0x01, 200},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02007};
8
Aaro Koskinena68292f2012-11-04 21:15:07 +02009static const struct SiS_MCLKData XGI27New_MCLKData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +080010 {0x5c, 0x23, 0x01, 166},
11 {0x19, 0x02, 0x01, 124},
12 {0x7C, 0x08, 0x80, 200},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020013};
14
Aaro Koskinen9b047452012-11-04 21:14:57 +020015const struct XGI_ECLKDataStruct XGI340_ECLKData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +080016 {0x5c, 0x23, 0x01, 166},
17 {0x55, 0x84, 0x01, 123},
18 {0x7C, 0x08, 0x01, 200},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020019};
20
Aaro Koskinen597d96b2013-03-27 23:53:15 +020021static const unsigned char XG27_SR18[3] = {
Aaro Koskinend8e75672013-03-27 23:53:14 +020022 0x32, 0x32, 0x42 /* SR18 */
Dmitry Eremin-Solenikov64903112012-03-19 21:50:09 +040023};
24
Aaro Koskinen597d96b2013-03-27 23:53:15 +020025static const unsigned char XGI340_SR18[3] = {
Aaro Koskinend8e75672013-03-27 23:53:14 +020026 0x31, 0x42, 0x42 /* SR18 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020027};
28
Peter Huewe87be0af2013-02-05 22:32:29 +010029static const unsigned char XGI340_cr41[24][3] = {
30 {0x20, 0x50, 0x60}, /* 0 CR41 */
31 {0xc4, 0x40, 0x84}, /* 1 CR8A */
32 {0xc4, 0x40, 0x84}, /* 2 CR8B */
33 {0xb5, 0xa4, 0xa4},
34 {0xf0, 0xf0, 0xf0},
35 {0x90, 0x90, 0x24}, /* 5 CR68 */
36 {0x77, 0x77, 0x44}, /* 6 CR69 */
37 {0x77, 0x77, 0x44}, /* 7 CR6A */
38 {0xff, 0xff, 0xff}, /* 8 CR6D */
39 {0x55, 0x55, 0x55}, /* 9 CR80 */
40 {0x00, 0x00, 0x00}, /* 10 CR81 */
41 {0x88, 0xa8, 0x48}, /* 11 CR82 */
42 {0x44, 0x44, 0x77}, /* 12 CR85 */
43 {0x48, 0x48, 0x88}, /* 13 CR86 */
44 {0x54, 0x54, 0x44}, /* 14 CR90 */
45 {0x54, 0x54, 0x44}, /* 15 CR91 */
46 {0x0a, 0x0a, 0x07}, /* 16 CR92 */
47 {0x44, 0x44, 0x44}, /* 17 CR93 */
48 {0x10, 0x10, 0x0A}, /* 18 CR94 */
49 {0x11, 0x11, 0x0a}, /* 19 CR95 */
50 {0x05, 0x05, 0x05}, /* 20 CR96 */
51 {0xf0, 0xf0, 0xf0}, /* 21 CRC3 */
52 {0x05, 0x00, 0x02}, /* 22 CRC4 */
53 {0x00, 0x00, 0x00} /* 23 CRC5 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020054};
55
Peter Huewe87be0af2013-02-05 22:32:29 +010056static const unsigned char XGI27_cr41[24][3] = {
57 {0x20, 0x40, 0x60}, /* 0 CR41 */
58 {0xC4, 0x40, 0x84}, /* 1 CR8A */
59 {0xC4, 0x40, 0x84}, /* 2 CR8B */
60 {0xB3, 0x13, 0xa4}, /* 3 CR40[7],
61 CR99[2:0],
62 CR45[3:0]*/
63 {0xf0, 0xf5, 0xf0}, /* 4 CR59 */
64 {0x90, 0x90, 0x24}, /* 5 CR68 */
65 {0x77, 0x67, 0x44}, /* 6 CR69 */
66 {0x77, 0x77, 0x44}, /* 7 CR6A */
67 {0xff, 0xff, 0xff}, /* 8 CR6D */
68 {0x55, 0x55, 0x55}, /* 9 CR80 */
69 {0x00, 0x00, 0x00}, /* 10 CR81 */
70 {0x88, 0xcc, 0x48}, /* 11 CR82 */
71 {0x44, 0x88, 0x77}, /* 12 CR85 */
72 {0x48, 0x88, 0x88}, /* 13 CR86 */
73 {0x54, 0x32, 0x44}, /* 14 CR90 */
74 {0x54, 0x33, 0x44}, /* 15 CR91 */
75 {0x0a, 0x07, 0x07}, /* 16 CR92 */
76 {0x44, 0x63, 0x44}, /* 17 CR93 */
77 {0x10, 0x14, 0x0A}, /* 18 CR94 */
78 {0x11, 0x0B, 0x0C}, /* 19 CR95 */
79 {0x05, 0x22, 0x05}, /* 20 CR96 */
80 {0xf0, 0xf0, 0x00}, /* 21 CRC3 */
81 {0x05, 0x00, 0x02}, /* 22 CRC4 */
82 {0x00, 0x00, 0x00} /* 23 CRC5 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020083};
84
Kenji Toyama3ecf3522011-04-24 11:37:17 +080085/* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
Aaro Koskinenea12b4e2012-11-04 21:15:05 +020086const unsigned char XGI340_AGPReg[12] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +080087 0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
88 0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
89};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020090
Aaro Koskinenb3979922012-11-04 21:14:52 +020091const struct XGI_ExtStruct XGI330_EModeIDTable[] = {
Aaro Koskinen354f49f2012-04-07 01:14:09 +030092 {0x2e, 0x0a1b, 0x0306, 0x06, 0x05, 0x06},
93 {0x2f, 0x0a1b, 0x0305, 0x05, 0x05, 0x05},
94 {0x30, 0x2a1b, 0x0407, 0x07, 0x07, 0x0e},
95 {0x31, 0x0a1b, 0x030d, 0x0d, 0x06, 0x3d},
96 {0x32, 0x0a1b, 0x0a0e, 0x0e, 0x06, 0x3e},
97 {0x33, 0x0a1d, 0x0a0d, 0x0d, 0x06, 0x3d},
98 {0x34, 0x2a1d, 0x0a0e, 0x0e, 0x06, 0x3e},
99 {0x35, 0x0a1f, 0x0a0d, 0x0d, 0x06, 0x3d},
100 {0x36, 0x2a1f, 0x0a0e, 0x0e, 0x06, 0x3e},
101 {0x38, 0x0a1b, 0x0508, 0x08, 0x00, 0x16},
102 {0x3a, 0x0e3b, 0x0609, 0x09, 0x00, 0x1e},
103 {0x3c, 0x0e3b, 0x070a, 0x0a, 0x00, 0x22}, /* mode 1600x1200
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800104 add CRT2MODE [2003/10/07] */
Aaro Koskinen354f49f2012-04-07 01:14:09 +0300105 {0x3d, 0x0e7d, 0x070a, 0x0a, 0x00, 0x22}, /* mode 1600x1200
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800106 add CRT2MODE */
Aaro Koskinen354f49f2012-04-07 01:14:09 +0300107 {0x40, 0x9a1c, 0x0000, 0x00, 0x04, 0x00},
108 {0x41, 0x9a1d, 0x0000, 0x00, 0x04, 0x00},
109 {0x43, 0x0a1c, 0x0306, 0x06, 0x05, 0x06},
110 {0x44, 0x0a1d, 0x0306, 0x06, 0x05, 0x06},
111 {0x46, 0x2a1c, 0x0407, 0x07, 0x07, 0x0e},
112 {0x47, 0x2a1d, 0x0407, 0x07, 0x07, 0x0e},
113 {0x49, 0x0a3c, 0x0508, 0x08, 0x00, 0x16},
114 {0x4a, 0x0a3d, 0x0508, 0x08, 0x00, 0x16},
115 {0x4c, 0x0e7c, 0x0609, 0x09, 0x00, 0x1e},
116 {0x4d, 0x0e7d, 0x0609, 0x09, 0x00, 0x1e},
117 {0x50, 0x9a1b, 0x0001, 0x01, 0x04, 0x02},
118 {0x51, 0xba1b, 0x0103, 0x03, 0x07, 0x03},
119 {0x52, 0x9a1b, 0x0204, 0x04, 0x00, 0x04},
120 {0x56, 0x9a1d, 0x0001, 0x01, 0x04, 0x02},
121 {0x57, 0xba1d, 0x0103, 0x03, 0x07, 0x03},
122 {0x58, 0x9a1d, 0x0204, 0x04, 0x00, 0x04},
123 {0x59, 0x9a1b, 0x0000, 0x00, 0x04, 0x00},
124 {0x5A, 0x021b, 0x0014, 0x01, 0x04, 0x3f},
125 {0x5B, 0x0a1d, 0x0014, 0x01, 0x04, 0x3f},
126 {0x5d, 0x0a1d, 0x0305, 0x05, 0x07, 0x05},
127 {0x62, 0x0a3f, 0x0306, 0x06, 0x05, 0x06},
128 {0x63, 0x2a3f, 0x0407, 0x07, 0x07, 0x0e},
129 {0x64, 0x0a7f, 0x0508, 0x08, 0x00, 0x16},
130 {0x65, 0x0eff, 0x0609, 0x09, 0x00, 0x1e},
131 {0x66, 0x0eff, 0x070a, 0x0a, 0x00, 0x22}, /* mode 1600x1200
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800132 add CRT2MODE */
Aaro Koskinen354f49f2012-04-07 01:14:09 +0300133 {0x68, 0x067b, 0x080b, 0x0b, 0x00, 0x29},
134 {0x69, 0x06fd, 0x080b, 0x0b, 0x00, 0x29},
135 {0x6b, 0x07ff, 0x080b, 0x0b, 0x00, 0x29},
136 {0x6c, 0x067b, 0x090c, 0x0c, 0x00, 0x2f},
137 {0x6d, 0x06fd, 0x090c, 0x0c, 0x00, 0x2f},
138 {0x6e, 0x07ff, 0x090c, 0x0c, 0x00, 0x2f},
139 {0x70, 0x2a1b, 0x0410, 0x10, 0x07, 0x34},
140 {0x71, 0x0a1b, 0x0511, 0x11, 0x00, 0x37},
141 {0x74, 0x0a1d, 0x0511, 0x11, 0x00, 0x37},
142 {0x75, 0x0a3d, 0x0612, 0x12, 0x00, 0x3a},
143 {0x76, 0x2a1f, 0x0410, 0x10, 0x07, 0x34},
144 {0x77, 0x0a1f, 0x0511, 0x11, 0x00, 0x37},
145 {0x78, 0x0a3f, 0x0612, 0x12, 0x00, 0x3a},
146 {0x79, 0x0a3b, 0x0612, 0x12, 0x00, 0x3a},
147 {0x7a, 0x2a1d, 0x0410, 0x10, 0x07, 0x34},
148 {0x7b, 0x0e3b, 0x060f, 0x0f, 0x00, 0x1d},
149 {0x7c, 0x0e7d, 0x060f, 0x0f, 0x00, 0x1d},
150 {0x7d, 0x0eff, 0x060f, 0x0f, 0x00, 0x1d},
151 {0x20, 0x0e3b, 0x0D16, 0x16, 0x00, 0x43},
152 {0x21, 0x0e7d, 0x0D16, 0x16, 0x00, 0x43},
153 {0x22, 0x0eff, 0x0D16, 0x16, 0x00, 0x43},
154 {0x23, 0x0e3b, 0x0614, 0x14, 0x00, 0x41},
155 {0x24, 0x0e7d, 0x0614, 0x14, 0x00, 0x41},
156 {0x25, 0x0eff, 0x0614, 0x14, 0x00, 0x41},
157 {0x26, 0x063b, 0x0c15, 0x15, 0x00, 0x42},
158 {0x27, 0x067d, 0x0c15, 0x15, 0x00, 0x42},
159 {0x28, 0x06ff, 0x0c15, 0x15, 0x00, 0x42},
160 {0xff, 0x0000, 0x0000, 0x00, 0x00, 0x00}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200161};
162
Aaro Koskinen3625c9a2012-11-04 21:14:51 +0200163static const struct SiS_StandTable_S XGI330_StandTable = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200164/* ExtVGATable */
Aaro Koskinenfb60d0c2012-04-07 01:14:04 +0300165 0x00, 0x00, 0x00, 0x0000,
Peter Huewe76a58992013-02-03 22:54:34 +0100166 {0x21, 0x0f, 0x00, 0x0e}, /* 0x21 = 0x01 | (0x20 = screen off) */
Aaro Koskinenfb60d0c2012-04-07 01:14:04 +0300167 0x23,
168 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
169 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
170 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
171 0xff},
172 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
173 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
174 0x01, 0x00, 0x00, 0x00},
175 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
176 0xff}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200177};
178
Aaro Koskinen7c5c07a2012-11-04 21:14:55 +0200179static const struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800180 {0x01, 0x27, 0x91, 0x8f, 0xc0}, /* 00 */
181 {0x03, 0x4f, 0x83, 0x8f, 0xc0}, /* 01 */
182 {0x05, 0x27, 0x91, 0x8f, 0xc0}, /* 02 */
183 {0x06, 0x4f, 0x83, 0x8f, 0xc0}, /* 03 */
184 {0x07, 0x4f, 0x83, 0x8f, 0xc0}, /* 04 */
185 {0x0d, 0x27, 0x91, 0x8f, 0xc0}, /* 05 */
186 {0x0e, 0x4f, 0x83, 0x8f, 0xc0}, /* 06 */
187 {0x0f, 0x4f, 0x83, 0x5d, 0xc0}, /* 07 */
188 {0x10, 0x4f, 0x83, 0x5d, 0xc0}, /* 08 */
189 {0x11, 0x4f, 0x83, 0xdf, 0x0c}, /* 09 */
190 {0x12, 0x4f, 0x83, 0xdf, 0x0c}, /* 10 */
191 {0x13, 0x4f, 0x83, 0x8f, 0xc0}, /* 11 */
192 {0x2e, 0x4f, 0x83, 0xdf, 0x0c}, /* 12 */
193 {0x2e, 0x4f, 0x87, 0xdf, 0xc0}, /* 13 */
194 {0x2f, 0x4f, 0x83, 0x8f, 0xc0}, /* 14 */
195 {0x50, 0x27, 0x91, 0xdf, 0x0c}, /* 15 */
196 {0x59, 0x27, 0x91, 0x8f, 0xc0} /* 16 */
197};
198
Aaro Koskinen7853bce2012-11-04 21:14:54 +0200199const struct XGI_CRT1TableStruct XGI_CRT1Table[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800200 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
201 0xbf, 0x1f, 0x9c, 0x8e, 0x96, 0xb9, 0x30} }, /* 0x0 */
202 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
203 0x0b, 0x3e, 0xe9, 0x8b, 0xe7, 0x04, 0x00} }, /* 0x1 */
204 { {0x3D, 0x31, 0x81, 0x37, 0x1F, 0x00, 0x05, 0x00,
205 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* 0x2 */
206 { {0x4F, 0x3F, 0x93, 0x45, 0x0D, 0x00, 0x01, 0x00,
207 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x3 */
208 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
209 0xBF, 0x1F, 0x9C, 0x8E, 0x96, 0xB9, 0x30} }, /* 0x4 */
210 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
211 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x5 */
212 { {0x63, 0x50, 0x86, 0x56, 0x9B, 0x00, 0x01, 0x00,
213 0x06, 0x3E, 0xE8, 0x8B, 0xE7, 0xFF, 0x10} }, /* 0x6 */
214 { {0x64, 0x4F, 0x88, 0x55, 0x9D, 0x00, 0x01, 0x00,
215 0xF2, 0x1F, 0xE0, 0x83, 0xDF, 0xF3, 0x10} }, /* 0x7 */
216 { {0x63, 0x4F, 0x87, 0x5A, 0x81, 0x00, 0x05, 0x00,
217 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x10} }, /* 0x8 */
218 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
219 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x80} }, /* 0x9 */
220 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
221 0x01, 0x3E, 0xE0, 0x83, 0xDF, 0x02, 0x80} }, /* 0xa */
222 { {0x67, 0x4F, 0x8B, 0x58, 0x81, 0x00, 0x05, 0x60,
223 0x0D, 0x3E, 0xE0, 0x83, 0xDF, 0x0E, 0x90} }, /* 0xb */
224 { {0x65, 0x4F, 0x89, 0x57, 0x9F, 0x00, 0x01, 0x00,
225 0xFB, 0x1F, 0xE6, 0x8A, 0xDF, 0xFC, 0x10} }, /* 0xc */
226 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00, /* ;
227 0D (800x600,56Hz) */
228 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* ;
229 (VCLK 36.0MHz) */
230 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00, /* ;
231 0E (800x600,60Hz) */
232 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* ;
233 (VCLK 40.0MHz) */
234 { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00, /* ;
235 0F (800x600,72Hz) */
236 0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} }, /* ;
237 (VCLK 50.0MHz) */
238 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00, /* ;
239 10 (800x600,75Hz) */
240 0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} }, /* ;
241 (VCLK 49.5MHz) */
242 { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00, /* ;
243 11 (800x600,85Hz) */
244 0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} }, /* ;
245 (VCLK 56.25MHz) */
246 { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60, /* ;
247 12 (800x600,100Hz) */
248 0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} }, /* ;
249 (VCLK 75.8MHz) */
250 { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60, /* ;
251 13 (800x600,120Hz) */
252 0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} }, /* ;
253 (VCLK 79.411MHz) */
254 { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60, /* ;
255 14 (800x600,160Hz) */
256 0x91, 0xF0, 0x58, 0x8B, 0x57, 0x92, 0xA0} }, /* ;
257 (VCLK 105.822MHz) */
258 { {0x99, 0x7F, 0x9D, 0x84, 0x1A, 0x00, 0x02, 0x00,
259 0x96, 0x1F, 0x7F, 0x83, 0x7F, 0x97, 0x10} }, /* 0x15 */
260 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
261 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x16 */
262 { {0xA1, 0x7F, 0x85, 0x86, 0x97, 0x00, 0x02, 0x00,
263 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x17 */
264 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
265 0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} }, /* 0x18 */
266 { {0xA7, 0x7F, 0x8B, 0x89, 0x95, 0x00, 0x02, 0x00,
267 0x26, 0xF5, 0x00, 0x83, 0xFF, 0x27, 0x90} }, /* 0x19 */
268 { {0xA9, 0x7F, 0x8D, 0x8C, 0x9A, 0x00, 0x02, 0x62,
269 0x2C, 0xF5, 0x00, 0x83, 0xFF, 0x2D, 0x14} }, /* 0x1a */
270 { {0xAB, 0x7F, 0x8F, 0x8D, 0x9B, 0x00, 0x02, 0x62,
271 0x35, 0xF5, 0x00, 0x83, 0xFF, 0x36, 0x14} }, /* 0x1b */
272 { {0xCF, 0x9F, 0x93, 0xB2, 0x01, 0x00, 0x03, 0x00,
273 0x14, 0xBA, 0x00, 0x83, 0xFF, 0x15, 0x00} }, /* 0x1c */
274 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
275 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1d */
276 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
277 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1e */
278 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
279 0x2E, 0x5A, 0x00, 0x83, 0xFF, 0x2F, 0x89} }, /* 0x1f */
280 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
281 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x20 */
282 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
283 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x21 */
284 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
285 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x22 */
286 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
287 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x23 */
288 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
289 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x24 */
290 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
291 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x25 */
292 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
293 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x26 */
294 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
295 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x27 */
296 { {0x43, 0xEF, 0x87, 0x06, 0x00, 0x41, 0x05, 0x62,
297 0xD4, 0x1F, 0xA0, 0x83, 0x9F, 0xD5, 0x9F} }, /* 0x28 */
298 { {0x45, 0xEF, 0x89, 0x07, 0x01, 0x41, 0x05, 0x62,
299 0xD9, 0x1F, 0xA0, 0x83, 0x9F, 0xDA, 0x9F} }, /* 0x29 */
300 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
301 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2a */
302 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
303 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2b */
304 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
305 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2c */
306 { {0x59, 0xFF, 0x9D, 0x17, 0x13, 0x41, 0x05, 0x44,
307 0x33, 0xBA, 0x00, 0x83, 0xFF, 0x34, 0x0F} }, /* 0x2d */
308 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
309 0x38, 0xBA, 0x00, 0x83, 0xFF, 0x39, 0x0F} }, /* 0x2e */
310 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
311 0x3D, 0xBA, 0x00, 0x83, 0xFF, 0x3E, 0x0F} }, /* 0x2f */
312 { {0x5D, 0xFF, 0x81, 0x19, 0x95, 0x41, 0x05, 0x44,
313 0x41, 0xBA, 0x00, 0x84, 0xFF, 0x42, 0x0F} }, /* 0x30 */
314 { {0x55, 0xFF, 0x99, 0x0D, 0x0C, 0x41, 0x05, 0x00,
315 0x3E, 0xBA, 0x00, 0x84, 0xFF, 0x3F, 0x0F} }, /* 0x31 */
316 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
317 0x72, 0xBA, 0x27, 0x8B, 0xDF, 0x73, 0x80} }, /* 0x32 */
318 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
319 0x6F, 0xBA, 0x26, 0x89, 0xDF, 0x6F, 0x80} }, /* 0x33 */
320 { {0x7F, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
321 0x75, 0xBA, 0x29, 0x8C, 0xDF, 0x75, 0x80} }, /* 0x34 */
322 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
323 0x24, 0xF1, 0xAF, 0x85, 0x3F, 0x25, 0xB0} }, /* 0x35 */
324 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
325 0x1E, 0xF1, 0xAD, 0x81, 0x3F, 0x1F, 0xB0} }, /* 0x36 */
326 { {0xA7, 0x7F, 0x88, 0x89, 0x15, 0x00, 0x02, 0x00,
327 0x26, 0xF1, 0xB1, 0x85, 0x3F, 0x27, 0xB0} }, /* 0x37 */
328 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
329 0x28, 0xC4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x38 */
330 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
331 0x28, 0xD4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x39 */
332 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
333 0x2E, 0xD4, 0x7D, 0x81, 0xCF, 0x2F, 0xA1} }, /* 0x3a */
334 { {0xDC, 0x9F, 0x00, 0xAB, 0x19, 0x00, 0x07, 0x00,
335 0xE6, 0xEF, 0xC0, 0xC3, 0xBF, 0xE7, 0x90} }, /* 0x3b */
336 { {0x6B, 0x59, 0x8F, 0x5E, 0x8C, 0x00, 0x05, 0x00,
337 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x3c */
338 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
339 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* 0x3d */
340 { {0x86, 0x6A, 0x8a, 0x74, 0x06, 0x00, 0x02, 0x00,
341 0x8c, 0x15, 0x4f, 0x83, 0xef, 0x8d, 0x30} }, /* 0x3e */
342 { {0x81, 0x6A, 0x85, 0x70, 0x00, 0x00, 0x02, 0x00,
343 0x0f, 0x3e, 0xeb, 0x8e, 0xdf, 0x10, 0x00} }, /* 0x3f */
344 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
345 0x20, 0xF5, 0x03, 0x88, 0xFF, 0x21, 0x90} }, /* 0x40 */
346 { {0xE6, 0xAE, 0x8A, 0xBD, 0x90, 0x00, 0x03, 0x00,
347 0x3D, 0x10, 0x1A, 0x8D, 0x19, 0x3E, 0x2F} }, /* 0x41 */
348 { {0xB9, 0x8F, 0x9D, 0x9B, 0x8A, 0x00, 0x06, 0x00,
349 0x7D, 0xFF, 0x60, 0x83, 0x5F, 0x7E, 0x90} }, /* 0x42 */
350 { {0xC3, 0x8F, 0x87, 0x9B, 0x0B, 0x00, 0x07, 0x00,
351 0x82, 0xFF, 0x60, 0x83, 0x5F, 0x83, 0x90} }, /* 0x43 */
352 { {0xAD, 0x7F, 0x91, 0x8E, 0x9C, 0x00, 0x02, 0x82,
353 0x49, 0xF5, 0x00, 0x83, 0xFF, 0x4A, 0x90} }, /* 0x44 */
354 { {0xCD, 0x9F, 0x91, 0xA7, 0x19, 0x00, 0x07, 0x60,
355 0xE6, 0xFF, 0xC0, 0x83, 0xBF, 0xE7, 0x90} }, /* 0x45 */
356 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x60,
357 0xF1, 0xFF, 0xC0, 0x83, 0xBF, 0xF2, 0x90} }, /* 0x46 */
358 { {0xD7, 0x9F, 0x9B, 0xAC, 0x1E, 0x00, 0x07, 0x00,
359 0x03, 0xDE, 0xC0, 0x84, 0xBF, 0x04, 0x90} } /* 0x47 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200360};
361
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200362/*add for new UNIVGABIOS*/
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200363static const struct SiS_LCDData XGI_StLCD1024x768Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800364 {62, 25, 800, 546, 1344, 806},
365 {32, 15, 930, 546, 1344, 806},
366 {62, 25, 800, 546, 1344, 806}, /*chiawenfordot9->dot8*/
367 {104, 45, 945, 496, 1344, 806},
368 {62, 25, 800, 546, 1344, 806},
369 {31, 18, 1008, 624, 1344, 806},
370 {1, 1, 1344, 806, 1344, 806}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200371};
372
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200373static const struct SiS_LCDData XGI_ExtLCD1024x768Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800374 {42, 25, 1536, 419, 1344, 806},
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800375 {48, 25, 1536, 369, 1344, 806},
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800376 {42, 25, 1536, 419, 1344, 806},
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800377 {48, 25, 1536, 369, 1344, 806},
378 {12, 5, 896, 500, 1344, 806},
379 {42, 25, 1024, 625, 1344, 806},
380 {1, 1, 1344, 806, 1344, 806},
381 {12, 5, 896, 500, 1344, 806},
382 {42, 25, 1024, 625, 1344, 806},
383 {1, 1, 1344, 806, 1344, 806},
384 {12, 5, 896, 500, 1344, 806},
385 {42, 25, 1024, 625, 1344, 806},
386 {1, 1, 1344, 806, 1344, 806}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200387};
388
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200389static const struct SiS_LCDData XGI_CetLCD1024x768Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800390 {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
391 640x200,640x400) */
392 {1, 1, 1344, 806, 1344, 806}, /* 01 (320x350,640x350) */
393 {1, 1, 1344, 806, 1344, 806}, /* 02 (360x400,720x400) */
394 {1, 1, 1344, 806, 1344, 806}, /* 03 (720x350) */
395 {1, 1, 1344, 806, 1344, 806}, /* 04 (640x480x60Hz) */
396 {1, 1, 1344, 806, 1344, 806}, /* 05 (800x600x60Hz) */
397 {1, 1, 1344, 806, 1344, 806} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200398};
399
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200400static const struct SiS_LCDData XGI_StLCD1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800401 {22, 5, 800, 510, 1650, 1088},
402 {22, 5, 800, 510, 1650, 1088},
403 {176, 45, 900, 510, 1650, 1088},
404 {176, 45, 900, 510, 1650, 1088},
405 {22, 5, 800, 510, 1650, 1088},
406 {13, 5, 1024, 675, 1560, 1152},
407 {16, 9, 1266, 804, 1688, 1072},
408 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200409};
410
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200411static const struct SiS_LCDData XGI_ExtLCD1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800412 {211, 60, 1024, 501, 1688, 1066},
413 {211, 60, 1024, 508, 1688, 1066},
414 {211, 60, 1024, 501, 1688, 1066},
415 {211, 60, 1024, 508, 1688, 1066},
416 {211, 60, 1024, 500, 1688, 1066},
417 {211, 75, 1024, 625, 1688, 1066},
418 {211, 120, 1280, 798, 1688, 1066},
419 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200420};
421
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200422static const struct SiS_LCDData XGI_CetLCD1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800423 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
424 640x200,640x400) */
425 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
426 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
427 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
428 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
429 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
430 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
431 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
432 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200433};
434
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200435static const struct SiS_LCDData xgifb_lcd_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800436 {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
437 640x200,640x400) */
438 {211, 64, 1536, 358, 1688, 1066}, /* 01 (320x350,640x350) */
439 {211, 100, 2100, 408, 1688, 1066}, /* 02 (360x400,720x400) */
440 {211, 64, 1536, 358, 1688, 1066}, /* 03 (720x350) */
441 {211, 48, 840, 488, 1688, 1066}, /* 04 (640x480x60Hz) */
442 {211, 72, 1008, 609, 1688, 1066}, /* 05 (800x600x60Hz) */
443 {211, 128, 1400, 776, 1688, 1066}, /* 06 (1024x768x60Hz) */
444 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz
445 w/o Scaling) */
446 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200447};
448
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200449static const struct SiS_LCDData XGI_ExtLCD1600x1200Data[] = {
Miguel Gómez949eb0a2012-07-06 12:40:36 +0200450 {4, 1, 1620, 420, 2160, 1250}, /* 00 (320x200,320x400,
451 640x200,640x400)*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800452 {27, 7, 1920, 375, 2160, 1250}, /* 01 (320x350,640x350) */
Miguel Gómez949eb0a2012-07-06 12:40:36 +0200453 {4, 1, 1620, 420, 2160, 1250}, /* 02 (360x400,720x400)*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800454 {27, 7, 1920, 375, 2160, 1250}, /* 03 (720x350) */
455 {27, 4, 800, 500, 2160, 1250}, /* 04 (640x480x60Hz) */
456 {4, 1, 1080, 625, 2160, 1250}, /* 05 (800x600x60Hz) */
457 {5, 2, 1350, 800, 2160, 1250}, /* 06 (1024x768x60Hz) */
458 {27, 16, 1500, 1064, 2160, 1250}, /* 07 (1280x1024x60Hz) */
459 {9, 7, 1920, 1106, 2160, 1250}, /* 08 (1400x1050x60Hz) */
460 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200x60Hz) ;302lv */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200461};
462
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200463static const struct SiS_LCDData XGI_StLCD1600x1200Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800464 {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
465 640x200,640x400) */
466 {27, 4, 800, 500, 2160, 1250}, /* 01 (320x350,640x350) */
467 {27, 4, 800, 500, 2160, 1250}, /* 02 (360x400,720x400) */
468 {27, 4, 800, 500, 2160, 1250}, /* 03 (720x350) */
469 {27, 4, 800, 500, 2160, 1250}, /* 04 (320x240,640x480) */
470 {4, 1, 1080, 625, 2160, 1250}, /* 05 (400x300,800x600) */
471 {5, 2, 1350, 800, 2160, 1250}, /* 06 (512x384,1024x768) */
472 {135, 88, 1600, 1100, 2160, 1250}, /* 07 (1280x1024) */
473 {1, 1, 1800, 1500, 2160, 1250}, /* 08 (1400x1050) */
474 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200475};
476
Aaro Koskinen4c047ac2012-09-11 00:15:18 +0300477#define XGI_CetLCD1400x1050Data XGI_CetLCD1280x1024Data
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200478
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200479static const struct SiS_LCDData XGI_NoScalingData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800480 {1, 1, 800, 449, 800, 449},
481 {1, 1, 800, 449, 800, 449},
482 {1, 1, 900, 449, 900, 449},
483 {1, 1, 900, 449, 900, 449},
484 {1, 1, 800, 525, 800, 525},
485 {1, 1, 1056, 628, 1056, 628},
486 {1, 1, 1344, 806, 1344, 806},
487 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200488};
489
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200490static const struct SiS_LCDData XGI_ExtLCD1024x768x75Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800491 {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
492 640x200,640x400) */
493 {48, 25, 1536, 369, 1344, 806}, /* ; 01 (320x350,640x350) */
494 {42, 25, 1536, 419, 1344, 806}, /* ; 02 (360x400,720x400) */
495 {48, 25, 1536, 369, 1344, 806}, /* ; 03 (720x350) */
496 {8, 5, 1312, 500, 1312, 800}, /* ; 04 (640x480x75Hz) */
497 {41, 25, 1024, 625, 1312, 800}, /* ; 05 (800x600x75Hz) */
498 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200499};
500
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200501static const struct SiS_LCDData XGI_CetLCD1024x768x75Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800502 {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
503 640x200,640x400) */
504 {1, 1, 1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
505 {1, 1, 1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
506 {1, 1, 1312, 800, 1312, 800}, /* ; 03 (720x350) */
507 {1, 1, 1312, 800, 1312, 800}, /* ; 04 (640x480x75Hz) */
508 {1, 1, 1312, 800, 1312, 800}, /* ; 05 (800x600x75Hz) */
509 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200510};
511
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200512static const struct SiS_LCDData xgifb_lcd_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800513 {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
514 640x200,640x400) */
515 {211, 60, 1024, 508, 1688, 1066}, /* ; 01 (320x350,640x350) */
516 {211, 60, 1024, 501, 1688, 1066}, /* ; 02 (360x400,720x400) */
517 {211, 60, 1024, 508, 1688, 1066}, /* ; 03 (720x350) */
518 {211, 45, 768, 498, 1688, 1066}, /* ; 04 (640x480x75Hz) */
519 {211, 75, 1024, 625, 1688, 1066}, /* ; 05 (800x600x75Hz) */
520 {211, 120, 1280, 798, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
521 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200522};
523
Aaro Koskinen4c047ac2012-09-11 00:15:18 +0300524#define XGI_CetLCD1280x1024x75Data XGI_CetLCD1280x1024Data
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200525
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200526static const struct SiS_LCDData XGI_NoScalingDatax75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800527 {1, 1, 800, 449, 800, 449}, /* ; 00 (320x200, 320x400,
528 640x200, 640x400) */
529 {1, 1, 800, 449, 800, 449}, /* ; 01 (320x350, 640x350) */
530 {1, 1, 900, 449, 900, 449}, /* ; 02 (360x400, 720x400) */
531 {1, 1, 900, 449, 900, 449}, /* ; 03 (720x350) */
532 {1, 1, 840, 500, 840, 500}, /* ; 04 (640x480x75Hz) */
533 {1, 1, 1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
534 {1, 1, 1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
535 {1, 1, 1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
Miguel Gómez949eb0a2012-07-06 12:40:36 +0200536 {1, 1, 1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800537 {1, 1, 2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
538 {1, 1, 1688, 806, 1688, 806} /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200539};
540
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200541static const struct XGI_LCDDesStruct XGI_ExtLCDDes1024x768Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800542 {9, 1057, 0, 771}, /* ; 00 (320x200,320x400,640x200,640x400) */
543 {9, 1057, 0, 771}, /* ; 01 (320x350,640x350) */
544 {9, 1057, 0, 771}, /* ; 02 (360x400,720x400) */
545 {9, 1057, 0, 771}, /* ; 03 (720x350) */
546 {9, 1057, 0, 771}, /* ; 04 (640x480x60Hz) */
547 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
548 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200549};
550
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200551static const struct XGI_LCDDesStruct XGI_StLCDDes1024x768Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800552 {9, 1057, 737, 703}, /* ; 00 (320x200,320x400,640x200,640x400) */
553 {9, 1057, 686, 651}, /* ; 01 (320x350,640x350) */
554 {9, 1057, 737, 703}, /* ; 02 (360x400,720x400) */
555 {9, 1057, 686, 651}, /* ; 03 (720x350) */
556 {9, 1057, 776, 741}, /* ; 04 (640x480x60Hz) */
557 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
558 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200559};
560
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200561static const struct XGI_LCDDesStruct XGI_CetLCDDes1024x768Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800562 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
563 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
564 {1152, 856, 622, 587}, /* ; 02 (360x400,720x400) */
565 {1152, 856, 597, 562}, /* ; 03 (720x350) */
566 {1152, 856, 662, 627}, /* ; 04 (640x480x60Hz) */
567 {1232, 936, 722, 687}, /* ; 05 (800x600x60Hz) */
568 {0, 1048, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200569};
570
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200571static const struct XGI_LCDDesStruct XGI_ExtLCDDLDes1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800572 {18, 1346, 981, 940}, /* 00 (320x200,320x400,640x200,640x400) */
573 {18, 1346, 926, 865}, /* 01 (320x350,640x350) */
574 {18, 1346, 981, 940}, /* 02 (360x400,720x400) */
575 {18, 1346, 926, 865}, /* 03 (720x350) */
576 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
577 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
578 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
579 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200580};
581
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200582static const struct XGI_LCDDesStruct XGI_StLCDDLDes1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800583 {18, 1346, 970, 907}, /* 00 (320x200,320x400,640x200,640x400) */
584 {18, 1346, 917, 854}, /* 01 (320x350,640x350) */
585 {18, 1346, 970, 907}, /* 02 (360x400,720x400) */
586 {18, 1346, 917, 854}, /* 03 (720x350) */
587 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
588 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
589 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
590 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200591};
592
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200593static const struct XGI_LCDDesStruct XGI_CetLCDDLDes1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800594 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
595 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
596 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
597 {1368, 1008, 729, 688}, /* 03 (720x350) */
598 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
599 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
600 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
601 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200602};
603
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200604static const struct XGI_LCDDesStruct XGI_ExtLCDDes1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800605 {9, 1337, 981, 940}, /* ; 00 (320x200,320x400,640x200,640x400) */
606 {9, 1337, 926, 884}, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
607 {9, 1337, 981, 940}, /* ; 02 (360x400,720x400) */
608 {9, 1337, 926, 884}, /* ; 03 (720x350) alan, 2003/09/30 */
609 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
610 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
611 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
612 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200613};
614
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200615static const struct XGI_LCDDesStruct XGI_StLCDDes1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800616 {9, 1337, 970, 907}, /* ; 00 (320x200,320x400,640x200,640x400) */
617 {9, 1337, 917, 854}, /* ; 01 (320x350,640x350) */
618 {9, 1337, 970, 907}, /* ; 02 (360x400,720x400) */
619 {9, 1337, 917, 854}, /* ; 03 (720x350) */
620 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
621 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
622 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
623 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200624};
625
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200626static const struct XGI_LCDDesStruct XGI_CetLCDDes1280x1024Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800627 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
628 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
629 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
630 {1368, 1008, 729, 688}, /* 03 (720x350) */
631 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
632 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
633 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
634 {9, 1337, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200635};
636
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200637static const struct XGI_LCDDesStruct xgifb_lcddldes_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800638 {18, 1464, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
639 {18, 1464, 0, 1051}, /* 01 (320x350,640x350) */
640 {18, 1464, 0, 1051}, /* 02 (360x400,720x400) */
641 {18, 1464, 0, 1051}, /* 03 (720x350) */
642 {18, 1464, 0, 1051}, /* 04 (640x480x60Hz) */
643 {18, 1464, 0, 1051}, /* 05 (800x600x60Hz) */
644 {18, 1464, 0, 1051}, /* 06 (1024x768x60Hz) */
645 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
646 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200647};
648
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200649static const struct XGI_LCDDesStruct xgifb_lcddes_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800650 {9, 1455, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
651 {9, 1455, 0, 1051}, /* 01 (320x350,640x350) */
652 {9, 1455, 0, 1051}, /* 02 (360x400,720x400) */
653 {9, 1455, 0, 1051}, /* 03 (720x350) */
654 {9, 1455, 0, 1051}, /* 04 (640x480x60Hz) */
655 {9, 1455, 0, 1051}, /* 05 (800x600x60Hz) */
656 {9, 1455, 0, 1051}, /* 06 (1024x768x60Hz) */
657 {1637, 1397, 1053, 1038}, /* 07 (1280x1024x60Hz) */
658 {9, 1455, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200659};
660
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200661static const struct XGI_LCDDesStruct XGI_CetLCDDes1400x1050Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800662 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
663 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
664 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
665 {1308, 1068, 781, 766}, /* 03 (720x350) */
666 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
667 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
668 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
669 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
670 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200671};
672
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200673static const struct XGI_LCDDesStruct XGI_CetLCDDes1400x1050Data2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800674 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
675 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
676 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
677 {0, 1448, 0, 1051}, /* 03 (720x350) */
678 {0, 1448, 0, 1051} /* 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200679};
680
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200681static const struct XGI_LCDDesStruct XGI_ExtLCDDLDes1600x1200Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800682 {18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
683 {18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
684 {18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
685 {18, 1682, 0, 1201}, /* 03 (720x350) */
686 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
687 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
688 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
689 {18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
690 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
691 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200692};
693
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200694static const struct XGI_LCDDesStruct XGI_StLCDDLDes1600x1200Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800695 {18, 1682, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
696 {18, 1682, 1083, 1034}, /* 01 (320x350,640x350) */
697 {18, 1682, 1150, 1101}, /* 02 (360x400,720x400) */
698 {18, 1682, 1083, 1034}, /* 03 (720x350) */
699 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
700 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
701 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
702 {18, 1682, 1232, 1183}, /* 07 (1280x1024x60Hz) */
703 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
704 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200705};
706
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200707static const struct XGI_LCDDesStruct XGI_ExtLCDDes1600x1200Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800708 {9, 1673, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
709 {9, 1673, 0, 1201}, /* 01 (320x350,640x350) */
710 {9, 1673, 0, 1201}, /* 02 (360x400,720x400) */
711 {9, 1673, 0, 1201}, /* 03 (720x350) */
712 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
713 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
714 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
715 {9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
716 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
717 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200718};
719
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200720static const struct XGI_LCDDesStruct XGI_StLCDDes1600x1200Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800721 {9, 1673, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
722 {9, 1673, 1083, 1034}, /* 01 (320x350,640x350) */
723 {9, 1673, 1150, 1101}, /* 02 (360x400,720x400) */
724 {9, 1673, 1083, 1034}, /* 03 (720x350) */
725 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
726 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
727 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
728 {9, 1673, 1232, 1183}, /* 07 (1280x1024x60Hz) */
729 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
730 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200731};
732
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200733static const struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800734 {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
735 640x200,640x400) */
736 {9, 657, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
737 {9, 657, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
738 {9, 657, 448, 355, 96, 2}, /* 03 (720x350) */
739 {9, 657, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
740 {9, 849, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
741 {9, 1057, 805, 770, 0136, 6}, /* 06 (1024x768x60Hz) */
742 {9, 1337, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
Miguel Gómez949eb0a2012-07-06 12:40:36 +0200743 {9, 1457, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800744 {9, 1673, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
745 {9, 1337, 0, 771, 112, 6} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200746};
747
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800748/* ;;1024x768x75Hz */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200749static const struct XGI_LCDDesStruct xgifb_lcddes_1024x768x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800750 {9, 1049, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
751 {9, 1049, 0, 769}, /* ; 01 (320x350,640x350) */
752 {9, 1049, 0, 769}, /* ; 02 (360x400,720x400) */
753 {9, 1049, 0, 769}, /* ; 03 (720x350) */
754 {9, 1049, 0, 769}, /* ; 04 (640x480x75Hz) */
755 {9, 1049, 0, 769}, /* ; 05 (800x600x75Hz) */
756 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200757};
758
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800759/* ;;1024x768x75Hz */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200760static const struct XGI_LCDDesStruct XGI_CetLCDDes1024x768x75Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800761 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
762 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
763 {1192, 896, 622, 587}, /* ; 02 (360x400,720x400) */
764 {1192, 896, 597, 562}, /* ; 03 (720x350) */
765 {1129, 857, 656, 625}, /* ; 04 (640x480x75Hz) */
766 {1209, 937, 716, 685}, /* ; 05 (800x600x75Hz) */
767 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200768};
769
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800770/* ;;1280x1024x75Hz */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200771static const struct XGI_LCDDesStruct xgifb_lcddldes_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800772 {18, 1314, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
773 {18, 1314, 0, 1025}, /* ; 01 (320x350,640x350) */
774 {18, 1314, 0, 1025}, /* ; 02 (360x400,720x400) */
775 {18, 1314, 0, 1025}, /* ; 03 (720x350) */
776 {18, 1314, 0, 1025}, /* ; 04 (640x480x60Hz) */
777 {18, 1314, 0, 1025}, /* ; 05 (800x600x60Hz) */
778 {18, 1314, 0, 1025}, /* ; 06 (1024x768x60Hz) */
779 {18, 1314, 0, 1025} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200780};
781
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800782/* 1280x1024x75Hz */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200783static const struct XGI_LCDDesStruct XGI_CetLCDDLDes1280x1024x75Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800784 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
785 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
786 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
787 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
788 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
789 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
790 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
791 {18, 1314, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200792};
793
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800794/* ;;1280x1024x75Hz */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200795static const struct XGI_LCDDesStruct xgifb_lcddes_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800796 {9, 1305, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
797 {9, 1305, 0, 1025}, /* ; 01 (320x350,640x350) */
798 {9, 1305, 0, 1025}, /* ; 02 (360x400,720x400) */
799 {9, 1305, 0, 1025}, /* ; 03 (720x350) */
800 {9, 1305, 0, 1025}, /* ; 04 (640x480x60Hz) */
801 {9, 1305, 0, 1025}, /* ; 05 (800x600x60Hz) */
802 {9, 1305, 0, 1025}, /* ; 06 (1024x768x60Hz) */
803 {9, 1305, 0, 1025} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200804};
805
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800806/* 1280x1024x75Hz */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200807static const struct XGI_LCDDesStruct XGI_CetLCDDes1280x1024x75Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800808 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
809 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
810 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
811 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
812 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
813 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
814 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
815 {9, 1305, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200816};
817
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800818/* Scaling LCD 75Hz */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +0200819static const struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800820 {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
821 640x200,640x400) */
822 {9, 657, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
823 {9, 738, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
824 {9, 738, 448, 355, 108, 2}, /* ; 03 (720x350) */
825 {9, 665, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
826 {9, 825, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
827 {9, 1049, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
828 {9, 1305, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
Miguel Gómez949eb0a2012-07-06 12:40:36 +0200829 {9, 1457, 0, 1051, 112, 3}, /* ; 08 (1400x1050x60Hz)*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800830 {9, 1673, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
831 {9, 1337, 0, 771, 112, 6} /* ; 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200832};
833
Aaro Koskinen24572542012-09-11 00:15:21 +0300834static const struct SiS_TVData XGI_StPALData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800835 {1, 1, 864, 525, 1270, 400, 100, 0, 760},
836 {1, 1, 864, 525, 1270, 350, 100, 0, 760},
837 {1, 1, 864, 525, 1270, 400, 0, 0, 720},
838 {1, 1, 864, 525, 1270, 350, 0, 0, 720},
839 {1, 1, 864, 525, 1270, 480, 50, 0, 760},
840 {1, 1, 864, 525, 1270, 600, 50, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200841};
842
Aaro Koskinen24572542012-09-11 00:15:21 +0300843static const struct SiS_TVData XGI_ExtPALData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800844 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
845 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
846 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
847 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
848 {2, 1, 900, 543, 1270, 500, 0, 0, 50},
849 {4, 3, 1080, 663, 1270, 500, 438, 0, 438},
850 {1, 1, 1125, 831, 1270, 500, 686, 0, 686}, /*301b*/
851 {3, 2, 1080, 619, 1270, 540, 438, 0, 438}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200852};
853
Aaro Koskinen24572542012-09-11 00:15:21 +0300854static const struct SiS_TVData XGI_StNTSCData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800855 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
856 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
857 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
858 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
859 {1, 1, 858, 525, 1270, 480, 0, 0, 760}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200860};
861
Aaro Koskinen24572542012-09-11 00:15:21 +0300862static const struct SiS_TVData XGI_ExtNTSCData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800863 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
864 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
865 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
866 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
867 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
868 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
869 {1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
870 {2, 1, 858, 503, 1584, 480, 0, 1, 0},
871 {3, 2, 1001, 533, 1270, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200872};
873
Aaro Koskinen24572542012-09-11 00:15:21 +0300874static const struct SiS_TVData XGI_St1HiTVData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800875 {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
876 640x200,640x400) */
877 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
878 {1, 1, 1000, 563, 785, 800, 0, 0, 0}, /* 02 (360x400,720x400) */
879 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
880 {1, 1, 892, 563, 690, 960, 0, 0, 0}, /* 04 (320x240,640x480) */
881 {8, 5, 1050, 683, 1648, 960, 0x150, 1, 0} /* 05 (400x300,800x600) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200882};
883
Aaro Koskinen24572542012-09-11 00:15:21 +0300884static const struct SiS_TVData XGI_St2HiTVData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800885 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
886 640x200,640x400) */
887 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
888 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 02 (360x400,720x400) */
889 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
890 {5, 2, 840, 563, 1648, 960, 0x08D, 1, 0}, /* 04 (320x240,640x480) */
891 {8, 5, 1050, 683, 1648, 960, 0x17C, 1, 0} /* 05 (400x300,800x600) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200892};
893
Aaro Koskinen24572542012-09-11 00:15:21 +0300894static const struct SiS_TVData XGI_ExtHiTVData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800895 {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
896 640x200,640x400) */
897 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 01 (320x350,640x350) */
898 {3, 1, 840, 483, 1632, 960, 0, 0, 0}, /* 02 (360x400,720x400) */
899 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 03 (720x350) */
900 {5, 1, 840, 563, 1648, 960, 0x166, 1, 0}, /* 04 (320x240,640x480) */
901 {16, 5, 1050, 683, 1648, 960, 0x143, 1, 0}, /* 05 (400x300,800x600) */
902 {25, 12, 1260, 851, 1648, 960, 0x032, 0, 0}, /* 06 (512x384,1024x768)*/
903 {5, 4, 1575, 1124, 1648, 960, 0x128, 0, 0}, /* 07 (1280x1024) */
904 {4, 1, 1050, 563, 1548, 960, 0x143, 1, 0}, /* 08 (800x480) */
905 {5, 2, 1400, 659, 1648, 960, 0x032, 0, 0}, /* 09 (1024x576) */
906 {8, 5, 1750, 803, 1648, 960, 0x128, 0, 0} /* 0A (1280x720) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200907};
908
Aaro Koskinen24572542012-09-11 00:15:21 +0300909static const struct SiS_TVData XGI_ExtYPbPr525iData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800910 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
911 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
912 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
913 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
914 {143, 80, 836, 523, 1250, 420, 224, 0, 0},
915 {143, 120, 1008, 643, 1250, 420, 0, 1, 0},
916 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
917 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
918 { 3, 2, 1001, 533, 1250, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200919};
920
Aaro Koskinen24572542012-09-11 00:15:21 +0300921static const struct SiS_TVData XGI_StYPbPr525iData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800922 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
923 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
924 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
925 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
926 {1, 1, 858, 525, 1270, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200927};
928
Aaro Koskinen24572542012-09-11 00:15:21 +0300929static const struct SiS_TVData XGI_ExtYPbPr525pData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800930 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
931 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
932 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
933 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
934 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
935 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
936 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
937 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
938 { 3, 2, 1001, 533, 1270, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200939};
940
Aaro Koskinen24572542012-09-11 00:15:21 +0300941static const struct SiS_TVData XGI_StYPbPr525pData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800942 {1, 1, 1716, 525, 1270, 400, 50, 0, 760},
943 {1, 1, 1716, 525, 1270, 350, 50, 0, 640},
944 {1, 1, 1716, 525, 1270, 400, 0, 0, 720},
945 {1, 1, 1716, 525, 1270, 350, 0, 0, 720},
946 {1, 1, 1716, 525, 1270, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200947};
948
Aaro Koskinen24572542012-09-11 00:15:21 +0300949static const struct SiS_TVData XGI_ExtYPbPr750pData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800950 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
951 640x200,640x400) */
952 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */
953 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */
954 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 03 (720x350) */
955 { 2, 1, 1100, 590, 1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */
956 { 3, 2, 1210, 690, 1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */
957 { 1, 1, 1375, 878, 1130, 640, 638, 0, 0}, /* 06 (1024x768) */
958 { 2, 1, 858, 503, 1130, 480, 0, 1, 0}, /* 07 (720x480) */
959 { 5, 4, 1815, 570, 1130, 660, 50, 0, 0},
960 { 5, 3, 1100, 686, 1130, 640, 50, 1, 0},
961 {10, 9, 1320, 830, 1130, 640, 50, 0, 0}
962};
963
Aaro Koskinen24572542012-09-11 00:15:21 +0300964static const struct SiS_TVData XGI_StYPbPr750pData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800965 {1, 1, 1650, 750, 1280, 400, 50, 0, 760},
966 {1, 1, 1650, 750, 1280, 350, 50, 0, 640},
967 {1, 1, 1650, 750, 1280, 400, 0, 0, 720},
968 {1, 1, 1650, 750, 1280, 350, 0, 0, 720},
969 {1, 1, 1650, 750, 1280, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200970};
971
Aaro Koskinend21222d2012-09-11 00:15:29 +0300972static const unsigned char XGI330_NTSCTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800973 0x17, 0x1d, 0x03, 0x09, 0x05, 0x06, 0x0c, 0x0c,
974 0x94, 0x49, 0x01, 0x0a, 0x06, 0x0d, 0x04, 0x0a,
975 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x1b,
976 0x0c, 0x50, 0x00, 0x97, 0x00, 0xda, 0x4a, 0x17,
977 0x7d, 0x05, 0x4b, 0x00, 0x00, 0xe2, 0x00, 0x02,
978 0x03, 0x0a, 0x65, 0x9d, 0x08, 0x92, 0x8f, 0x40,
979 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x50,
980 0x00, 0x40, 0x44, 0x00, 0xdb, 0x02, 0x3b, 0x00
981};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200982
Aaro Koskinend21222d2012-09-11 00:15:29 +0300983static const unsigned char XGI330_PALTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800984 0x21, 0x5A, 0x35, 0x6e, 0x04, 0x38, 0x3d, 0x70,
985 0x94, 0x49, 0x01, 0x12, 0x06, 0x3e, 0x35, 0x6d,
986 0x06, 0x14, 0x3e, 0x35, 0x6d, 0x00, 0x45, 0x2b,
987 0x70, 0x50, 0x00, 0x9b, 0x00, 0xd9, 0x5d, 0x17,
988 0x7d, 0x05, 0x45, 0x00, 0x00, 0xe8, 0x00, 0x02,
989 0x0d, 0x00, 0x68, 0xb0, 0x0b, 0x92, 0x8f, 0x40,
990 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x63,
991 0x00, 0x40, 0x3e, 0x00, 0xe1, 0x02, 0x28, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200992};
993
Aaro Koskinend21222d2012-09-11 00:15:29 +0300994static const unsigned char XGI330_HiTVExtTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800995 0x2D, 0x60, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
996 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
997 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
998 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
999 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1000 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1001 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1002 0x60, 0x14, 0x3D, 0x63, 0x4F,
1003 0x27, 0x00, 0xfc, 0xff, 0x6a, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001004};
1005
Aaro Koskinend21222d2012-09-11 00:15:29 +03001006static const unsigned char XGI330_HiTVSt1Timing[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001007 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1008 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1009 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1010 0x65, 0x90, 0x7B, 0xA8, 0x03, 0xF0, 0x87, 0x03,
1011 0x11, 0x15, 0x11, 0xCF, 0x10, 0x11, 0xCF, 0x10,
1012 0x35, 0x35, 0x3B, 0x69, 0x1D,
1013 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1014 0x60, 0x04, 0x86, 0xAF, 0x5D,
1015 0x0E, 0x00, 0xfc, 0xff, 0x2d, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001016};
1017
Aaro Koskinend21222d2012-09-11 00:15:29 +03001018static const unsigned char XGI330_HiTVSt2Timing[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001019 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1020 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1021 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1022 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1023 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1024 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1025 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1026 0x60, 0x14, 0x3D, 0x63, 0x4F,
1027 0x27, 0x00, 0xFC, 0xff, 0x6a, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001028};
1029
Aaro Koskinend21222d2012-09-11 00:15:29 +03001030static const unsigned char XGI330_HiTVTextTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001031 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1032 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1033 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1034 0x65, 0x90, 0xE7, 0xBC, 0x03, 0x0C, 0x97, 0x03,
1035 0x14, 0x78, 0x14, 0x08, 0x20, 0x14, 0x08, 0x20,
1036 0xC8, 0xC8, 0x3B, 0xD2, 0x26,
1037 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1038 0x60, 0x04, 0x96, 0x72, 0x5C,
1039 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001040};
1041
Aaro Koskinend21222d2012-09-11 00:15:29 +03001042static const unsigned char XGI330_YPbPr750pTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001043 0x30, 0x1d, 0xe8, 0x09, 0x09, 0xed, 0x0c, 0x0c,
1044 0x98, 0x0a, 0x01, 0x0c, 0x06, 0x0d, 0x04, 0x0a,
1045 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1046 0xed, 0x50, 0x70, 0x9f, 0x16, 0x59, 0x60, 0x13,
1047 0x27, 0x0b, 0x27, 0xfc, 0x30, 0x27, 0x1c, 0xb0,
1048 0x4b, 0x4b, 0x6f, 0x2f, 0x63,
1049 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1050 0x60, 0x14, 0x73, 0x00, 0x40,
1051 0x11, 0x00, 0xfc, 0xff, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001052};
1053
Aaro Koskinend21222d2012-09-11 00:15:29 +03001054static const unsigned char XGI330_YPbPr525pTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001055 0x3E, 0x11, 0x06, 0x09, 0x0b, 0x0c, 0x0c, 0x0c,
1056 0x98, 0x0a, 0x01, 0x0d, 0x06, 0x0d, 0x04, 0x0a,
1057 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1058 0x0c, 0x50, 0xb2, 0x9f, 0x16, 0x59, 0x4f, 0x13,
1059 0xad, 0x11, 0xad, 0x1d, 0x40, 0x8a, 0x3d, 0xb8,
1060 0x51, 0x5e, 0x60, 0x49, 0x7d,
1061 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1062 0x60, 0x14, 0x4B, 0x43, 0x41,
1063 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001064};
1065
Aaro Koskinend21222d2012-09-11 00:15:29 +03001066static const unsigned char XGI330_YPbPr525iTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001067 0x1B, 0x21, 0x03, 0x09, 0x05, 0x06, 0x0C, 0x0C,
1068 0x94, 0x49, 0x01, 0x0A, 0x06, 0x0D, 0x04, 0x0A,
1069 0x06, 0x14, 0x0D, 0x04, 0x0A, 0x00, 0x85, 0x1B,
1070 0x0C, 0x50, 0x00, 0x97, 0x00, 0xDA, 0x4A, 0x17,
1071 0x7D, 0x05, 0x4B, 0x00, 0x00, 0xE2, 0x00, 0x02,
1072 0x03, 0x0A, 0x65, 0x9D, 0x08,
1073 0x92, 0x8F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1074 0x60, 0x14, 0x4B, 0x00, 0x40,
1075 0x44, 0x00, 0xDB, 0x02, 0x3B, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001076};
1077
Aaro Koskinend21222d2012-09-11 00:15:29 +03001078static const unsigned char XGI330_HiTVGroup3Data[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001079 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x5F,
1080 0x05, 0x21, 0xB2, 0xB2, 0x55, 0x77, 0x2A, 0xA6,
1081 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1082 0x8C, 0x6E, 0x60, 0x2E, 0x58, 0x48, 0x72, 0x44,
1083 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1084 0x4F, 0x7F, 0x03, 0xA8, 0x7D, 0x20, 0x1A, 0xA9,
1085 0x14, 0x05, 0x03, 0x7E, 0x64, 0x31, 0x14, 0x75,
1086 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001087};
1088
Aaro Koskinend21222d2012-09-11 00:15:29 +03001089static const unsigned char XGI330_HiTVGroup3Simu[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001090 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x95,
1091 0xDB, 0x20, 0xB8, 0xB8, 0x55, 0x47, 0x2A, 0xA6,
1092 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1093 0x8C, 0x6E, 0x60, 0x15, 0x26, 0xD3, 0xE4, 0x11,
1094 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1095 0x67, 0x36, 0x01, 0x47, 0x0E, 0x10, 0xBE, 0xB4,
1096 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1097 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001098};
1099
Aaro Koskinend21222d2012-09-11 00:15:29 +03001100static const unsigned char XGI330_HiTVGroup3Text[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001101 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0xA7,
1102 0xF5, 0x20, 0xCE, 0xCE, 0x55, 0x47, 0x2A, 0xA6,
1103 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1104 0x8C, 0x6E, 0x60, 0x18, 0x2C, 0x0C, 0x20, 0x22,
1105 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1106 0x93, 0x3C, 0x01, 0x50, 0x2F, 0x10, 0xF4, 0xCA,
1107 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1108 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001109};
1110
Aaro Koskinend21222d2012-09-11 00:15:29 +03001111static const unsigned char XGI330_Ren525pGroup3[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001112 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x13,
1113 0xB1, 0x41, 0x62, 0x62, 0xFF, 0xF4, 0x45, 0xa6,
1114 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1115 0xAC, 0xDA, 0x60, 0xFe, 0x6A, 0x9A, 0x06, 0x10,
1116 0xd1, 0x04, 0x18, 0x0a, 0xFF, 0x80, 0x00, 0x80,
1117 0x3c, 0x77, 0x00, 0xEF, 0xE0, 0x10, 0xB0, 0xE0,
1118 0x10, 0x4F, 0x0F, 0x0F, 0x05, 0x0F, 0x08, 0x6E,
1119 0x1a, 0x1F, 0x25, 0x2a, 0x4C, 0xAA, 0x01
1120};
1121
Aaro Koskinend21222d2012-09-11 00:15:29 +03001122static const unsigned char XGI330_Ren750pGroup3[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001123 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x7a,
1124 0x54, 0x41, 0xE7, 0xE7, 0xFF, 0xF4, 0x45, 0xa6,
1125 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1126 0xAC, 0x6A, 0x60, 0x2b, 0x52, 0xCD, 0x61, 0x10,
1127 0x51, 0x04, 0x18, 0x0a, 0x1F, 0x80, 0x00, 0x80,
1128 0xFF, 0xA4, 0x04, 0x2B, 0x94, 0x21, 0x72, 0x94,
1129 0x26, 0x05, 0x01, 0x0F, 0xed, 0x0F, 0x0A, 0x64,
1130 0x18, 0x1D, 0x23, 0x28, 0x4C, 0xAA, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001131};
1132
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001133static const struct SiS_LVDSData XGI_LVDS1024x768Data_1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001134 { 960, 438, 1344, 806}, /* 00 (320x200,320x400,640x200,640x400) */
1135 { 960, 388, 1344, 806}, /* 01 (320x350,640x350) */
1136 {1040, 438, 1344, 806}, /* 02 (360x400,720x400) */
1137 {1040, 388, 1344, 806}, /* 03 (720x350) */
1138 { 960, 518, 1344, 806}, /* 04 (320x240,640x480) */
1139 {1120, 638, 1344, 806}, /* 05 (400x300,800x600) */
1140 {1344, 806, 1344, 806} /* 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001141};
1142
1143
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001144static const struct SiS_LVDSData XGI_LVDS1024x768Data_2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001145 {1344, 806, 1344, 806},
1146 {1344, 806, 1344, 806},
1147 {1344, 806, 1344, 806},
1148 {1344, 806, 1344, 806},
1149 {1344, 806, 1344, 806},
1150 {1344, 806, 1344, 806},
1151 {1344, 806, 1344, 806},
1152 {800, 449, 1280, 801},
1153 {800, 525, 1280, 813}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001154};
1155
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001156static const struct SiS_LVDSData XGI_LVDS1280x1024Data_1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001157 {1048, 442, 1688, 1066},
1158 {1048, 392, 1688, 1066},
1159 {1048, 442, 1688, 1066},
1160 {1048, 392, 1688, 1066},
1161 {1048, 522, 1688, 1066},
1162 {1208, 642, 1688, 1066},
1163 {1432, 810, 1688, 1066},
1164 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001165};
1166
Aaro Koskinen4c047ac2012-09-11 00:15:18 +03001167#define XGI_LVDS1280x1024Data_2 XGI_LVDS1024x768Data_2
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001168
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001169static const struct SiS_LVDSData XGI_LVDS1400x1050Data_1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001170 {928, 416, 1688, 1066},
1171 {928, 366, 1688, 1066},
1172 {928, 416, 1688, 1066},
1173 {928, 366, 1688, 1066},
1174 {928, 496, 1688, 1066},
1175 {1088, 616, 1688, 1066},
1176 {1312, 784, 1688, 1066},
1177 {1568, 1040, 1688, 1066},
1178 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001179};
1180
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001181static const struct SiS_LVDSData XGI_LVDS1400x1050Data_2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001182 {1688, 1066, 1688, 1066},
1183 {1688, 1066, 1688, 1066},
1184 {1688, 1066, 1688, 1066},
1185 {1688, 1066, 1688, 1066},
1186 {1688, 1066, 1688, 1066},
1187 {1688, 1066, 1688, 1066},
1188 {1688, 1066, 1688, 1066},
1189 {1688, 1066, 1688, 1066},
1190 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001191};
1192
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001193/* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001194static const struct SiS_LVDSData XGI_LVDS1600x1200Data_1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001195 {1088, 520, 2048, 1320}, /* 00 (320x200,320x400,640x200,640x400) */
1196 {1088, 470, 2048, 1320}, /* 01 (320x350,640x350) */
1197 {1088, 520, 2048, 1320}, /* 02 (360x400,720x400) */
1198 {1088, 470, 2048, 1320}, /* 03 (720x350) */
1199 {1088, 600, 2048, 1320}, /* 04 (320x240,640x480) */
1200 {1248, 720, 2048, 1320}, /* 05 (400x300,800x600) */
1201 {1472, 888, 2048, 1320}, /* 06 (512x384,1024x768) */
1202 {1728, 1144, 2048, 1320}, /* 07 (640x512,1280x1024) */
1203 {1848, 1170, 2048, 1320}, /* 08 (1400x1050) */
1204 {2048, 1320, 2048, 1320} /* 09 (1600x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001205};
1206
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001207static const struct SiS_LVDSData XGI_LVDSNoScalingData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001208 { 800, 449, 800, 449}, /* 00 (320x200,320x400,640x200,640x400) */
1209 { 800, 449, 800, 449}, /* 01 (320x350,640x350) */
1210 { 800, 449, 800, 449}, /* 02 (360x400,720x400) */
1211 { 800, 449, 800, 449}, /* 03 (720x350) */
1212 { 800, 525, 800, 525}, /* 04 (640x480x60Hz) */
1213 {1056, 628, 1056, 628}, /* 05 (800x600x60Hz) */
1214 {1344, 806, 1344, 806}, /* 06 (1024x768x60Hz) */
1215 {1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
Miguel Gómez949eb0a2012-07-06 12:40:36 +02001216 {1688, 1066, 1688, 1066}, /* 08 (1400x1050x60Hz) */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001217 {2160, 1250, 2160, 1250}, /* 09 (1600x1200x60Hz) */
1218 {1688, 806, 1688, 806} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001219};
1220
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001221static const struct SiS_LVDSData XGI_LVDS1024x768Data_1x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001222 { 960, 438, 1312, 800}, /* 00 (320x200,320x400,640x200,640x400) */
1223 { 960, 388, 1312, 800}, /* 01 (320x350,640x350) */
1224 {1040, 438, 1312, 800}, /* 02 (360x400,720x400) */
1225 {1040, 388, 1312, 800}, /* 03 (720x350) */
1226 { 928, 512, 1312, 800}, /* 04 (320x240,640x480) */
1227 {1088, 632, 1312, 800}, /* 05 (400x300,800x600) */
1228 {1312, 800, 1312, 800}, /* 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001229};
1230
1231
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001232static const struct SiS_LVDSData XGI_LVDS1024x768Data_2x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001233 {1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1234 {1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1235 {1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1236 {1312, 800, 1312, 800}, /* ; 03 (720x350) */
1237 {1312, 800, 1312, 800}, /* ; 04 (320x240,640x480) */
1238 {1312, 800, 1312, 800}, /* ; 05 (400x300,800x600) */
1239 {1312, 800, 1312, 800}, /* ; 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001240};
1241
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001242static const struct SiS_LVDSData XGI_LVDS1280x1024Data_1x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001243 {1048, 442, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1244 {1048, 392, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1245 {1128, 442, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1246 {1128, 392, 1688, 1066 }, /* ; 03 (720x350) */
1247 {1048, 522, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1248 {1208, 642, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1249 {1432, 810, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1250 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001251};
1252
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001253static const struct SiS_LVDSData XGI_LVDS1280x1024Data_2x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001254 {1688, 1066, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1255 {1688, 1066, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1256 {1688, 1066, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1257 {1688, 1066, 1688, 1066 }, /* ; 03 (720x350) */
1258 {1688, 1066, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1259 {1688, 1066, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1260 {1688, 1066, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1261 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001262};
1263
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001264static const struct SiS_LVDSData XGI_LVDSNoScalingDatax75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001265 { 800, 449, 800, 449}, /* ; 00 (320x200,320x400,640x200,640x400) */
1266 { 800, 449, 800, 449}, /* ; 01 (320x350,640x350) */
1267 { 900, 449, 900, 449}, /* ; 02 (360x400,720x400) */
1268 { 900, 449, 900, 449}, /* ; 03 (720x350) */
1269 { 800, 500, 800, 500}, /* ; 04 (640x480x75Hz) */
1270 {1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1271 {1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1272 {1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1273 {1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1274 ;;[ycchen] 12/19/02 */
1275 {2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1276 {1688, 806, 1688, 806}, /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001277};
1278
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001279static const struct SiS_LVDSData XGI_LVDS1024x768Des_1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001280 {0, 1048, 0, 771}, /* 00 (320x200,320x400,640x200,640x400) */
1281 {0, 1048, 0, 771}, /* 01 (320x350,640x350) */
1282 {0, 1048, 0, 771}, /* 02 (360x400,720x400) */
1283 {0, 1048, 0, 771}, /* 03 (720x350) */
1284 {0, 1048, 0, 771}, /* 04 (640x480x60Hz) */
1285 {0, 1048, 0, 771}, /* 05 (800x600x60Hz) */
1286 {0, 1048, 805, 770} /* 06 (1024x768x60Hz) */
Ashvini Varatharaj1d2a01e2013-10-12 21:45:37 +05301287};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001288
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001289static const struct SiS_LVDSData XGI_LVDS1024x768Des_2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001290 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1291 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1292 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1293 {1142, 856, 597, 562}, /* 03 (720x350) */
1294 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1295 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1296 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001297};
1298
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001299static const struct SiS_LVDSData XGI_LVDS1024x768Des_3[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001300 {320, 24, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1301 {320, 24, 597, 562}, /* 01 (320x350,640x350) */
1302 {320, 24, 622, 587}, /* 02 (360x400,720x400) */
1303 {320, 24, 597, 562}, /* 03 (720x350) */
1304 {320, 24, 722, 687} /* 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001305};
1306
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001307static const struct SiS_LVDSData XGI_LVDS1280x1024Des_1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001308 {0, 1328, 0, 1025}, /* 00 (320x200,320x400,640x200,640x400) */
1309 {0, 1328, 0, 1025}, /* 01 (320x350,640x350) */
1310 {0, 1328, 0, 1025}, /* 02 (360x400,720x400) */
1311 {0, 1328, 0, 1025}, /* 03 (720x350) */
1312 {0, 1328, 0, 1025}, /* 04 (640x480x60Hz) */
1313 {0, 1328, 0, 1025}, /* 05 (800x600x60Hz) */
1314 {0, 1328, 0, 1025}, /* 06 (1024x768x60Hz) */
1315 {0, 1328, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001316};
1317
1318 /* The Display setting for DE Mode Panel */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001319static const struct SiS_LVDSData XGI_LVDS1280x1024Des_2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001320 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1321 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1322 {1408, 1048, 752, 711}, /* 02 (360x400,720x400) */
1323 {1408, 1048, 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 {0000, 1328, 0, 1025} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001328};
1329
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001330static const struct SiS_LVDSData XGI_LVDS1400x1050Des_1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001331 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1332 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1333 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1334 {0, 1448, 0, 1051}, /* 03 (720x350) */
1335 {0, 1448, 0, 1051}, /* 04 (640x480x60Hz) */
1336 {0, 1448, 0, 1051}, /* 05 (800x600x60Hz) */
1337 {0, 1448, 0, 1051}, /* 06 (1024x768x60Hz) */
1338 {0, 1448, 0, 1051}, /* 07 (1280x1024x60Hz) */
1339 {0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001340};
1341
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001342static const struct SiS_LVDSData XGI_LVDS1400x1050Des_2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001343 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1344 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1345 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1346 {1308, 1068, 781, 766}, /* 03 (720x350) */
1347 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1348 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1349 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1350 {1608, 1368, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1351 { 0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001352};
1353
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001354static const struct SiS_LVDSData XGI_LVDS1600x1200Des_1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001355 {0, 1664, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1356 {0, 1664, 0, 1201}, /* 01 (320x350,640x350) */
1357 {0, 1664, 0, 1201}, /* 02 (360x400,720x400) */
1358 {0, 1664, 0, 1201}, /* 03 (720x350) */
1359 {0, 1664, 0, 1201}, /* 04 (640x480x60Hz) */
1360 {0, 1664, 0, 1201}, /* 05 (800x600x60Hz) */
1361 {0, 1664, 0, 1201}, /* 06 (1024x768x60Hz) */
1362 {0, 1664, 0, 1201}, /* 07 (1280x1024x60Hz) */
1363 {0, 1664, 0, 1201}, /* 08 (1400x1050x60Hz) */
1364 {0, 1664, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001365};
1366
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001367static const struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001368 {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1369 640x200,640x400) */
1370 {0, 648, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1371 {0, 648, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1372 {0, 648, 448, 355, 96, 2}, /* 03 (720x350) */
1373 {0, 648, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1374 {0, 840, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1375 {0, 1048, 805, 770, 136, 6}, /* 06 (1024x768x60Hz) */
1376 {0, 1328, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
Miguel Gómez949eb0a2012-07-06 12:40:36 +02001377 {0, 1438, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001378 {0, 1664, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1379 {0, 1328, 0, 0771, 112, 6} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001380};
1381
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001382/* ; 1024x768 Full-screen */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001383static const struct SiS_LVDSData XGI_LVDS1024x768Des_1x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001384 {0, 1040, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1385 {0, 1040, 0, 769}, /* ; 01 (320x350,640x350) */
1386 {0, 1040, 0, 769}, /* ; 02 (360x400,720x400) */
1387 {0, 1040, 0, 769}, /* ; 03 (720x350) */
1388 {0, 1040, 0, 769}, /* ; 04 (640x480x75Hz) */
1389 {0, 1040, 0, 769}, /* ; 05 (800x600x75Hz) */
1390 {0, 1040, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001391};
1392
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001393/* ; 1024x768 center-screen (Enh. Mode) */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001394static const struct SiS_LVDSData XGI_LVDS1024x768Des_2x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001395 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1396 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1397 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1398 {1142, 856, 597, 562}, /* 03 (720x350) */
1399 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1400 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1401 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001402};
1403
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001404/* ; 1024x768 center-screen (St.Mode) */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001405static const struct SiS_LVDSData XGI_LVDS1024x768Des_3x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001406 {320, 24, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1407 {320, 24, 597, 562}, /* ; 01 (320x350,640x350) */
1408 {320, 24, 622, 587}, /* ; 02 (360x400,720x400) */
1409 {320, 24, 597, 562}, /* ; 03 (720x350) */
1410 {320, 24, 722, 687} /* ; 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001411};
1412
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001413static const struct SiS_LVDSData XGI_LVDS1280x1024Des_1x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001414 {0, 1296, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1415 {0, 1296, 0, 1025}, /* ; 01 (320x350,640x350) */
1416 {0, 1296, 0, 1025}, /* ; 02 (360x400,720x400) */
1417 {0, 1296, 0, 1025}, /* ; 03 (720x350) */
1418 {0, 1296, 0, 1025}, /* ; 04 (640x480x75Hz) */
1419 {0, 1296, 0, 1025}, /* ; 05 (800x600x75Hz) */
1420 {0, 1296, 0, 1025}, /* ; 06 (1024x768x75Hz) */
1421 {0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001422};
1423
1424/* The Display setting for DE Mode Panel */
Miguel Gómez949eb0a2012-07-06 12:40:36 +02001425/* Set DE as default */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001426static const struct SiS_LVDSData XGI_LVDS1280x1024Des_2x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001427 {1368, 976, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1428 {1368, 976, 729, 688}, /* ; 01 (320x350,640x350) */
1429 {1408, 976, 752, 711}, /* ; 02 (360x400,720x400) */
1430 {1408, 976, 729, 688}, /* ; 03 (720x350) */
1431 {1368, 976, 794, 753}, /* ; 04 (640x480x75Hz) */
1432 {1448, 1036, 854, 813}, /* ; 05 (800x600x75Hz) */
1433 {1560, 1168, 938, 897}, /* ; 06 (1024x768x75Hz) */
1434 { 0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001435};
1436
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001437/* Scaling LCD 75Hz */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001438static const struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001439 {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1440 640x200,640x400) */
1441 {0, 648, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
1442 {0, 729, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
1443 {0, 729, 448, 355, 108, 2}, /* ; 03 (720x350) */
1444 {0, 656, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
1445 {0, 816, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
1446 {0, 1040, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
1447 {0, 1296, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
Miguel Gómez949eb0a2012-07-06 12:40:36 +02001448 {0, 1448, 0, 1051, 112, 3}, /* ; 08 (1400x1050x75Hz) */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001449 {0, 1664, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
1450 {0, 1328, 0, 771, 112, 6} /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001451};
1452
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001453/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001454static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001455 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} }, /* 00 (320x) */
1456 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} }, /* 01 (360x) */
1457 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} }, /* 02 (400x) */
1458 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1459 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 04 (640x) */
1460 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 05 (720x) */
1461 { {0x87, 0x63, 0x8B, 0x69, 0x1A, 0x00, 0x26, 0x00} }, /* 06 (800x) */
1462 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001463};
1464
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001465/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001466static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001467 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 00 (320x) */
1468 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 01 (360x) */
1469 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00 } }, /* 02 (400x) */
1470 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00 } }, /* 03 (512x) */
1471 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 04 (640x) */
1472 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 05 (720x) */
1473 { {0x92, 0x63, 0x96, 0x6C, 0x1A, 0x00, 0x06, 0x00 } }, /* 06 (800x) */
1474 { {0xAE, 0x7F, 0x92, 0x88, 0x96, 0x00, 0x02, 0x00 } }, /* 07 (1024x) */
1475 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00 } } /* 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001476};
1477
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001478/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001479static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001480 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1481 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1482 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1483 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1484 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 04 (640x) */
1485 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 05 (720x) */
1486 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} }, /* 06 (800x) */
1487 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001488};
1489
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001490/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001491static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001492 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1493 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1494 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1495 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1496 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
1497 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
1498 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} }, /* 06 (800x) */
1499 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
1500 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001501};
1502
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001503/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001504static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001505 { {0x47, 0x27, 0x8B, 0x2C, 0x1A, 0x00, 0x05, 0x00} }, /* 00 (320x) */
1506 { {0x47, 0x27, 0x8B, 0x30, 0x1E, 0x00, 0x05, 0x00} }, /* 01 (360x) */
1507 { {0x51, 0x31, 0x95, 0x36, 0x04, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1508 { {0x5F, 0x3F, 0x83, 0x44, 0x92, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1509 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 04 (640x) */
1510 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 05 (720x) */
1511 { {0x83, 0x63, 0x87, 0x68, 0x16, 0x00, 0x06, 0x00} }, /* 06 (800x) */
1512 { {0x9F, 0x7F, 0x83, 0x84, 0x92, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
1513 { {0xBF, 0x9F, 0x83, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
1514 { {0xCE, 0xAE, 0x92, 0xB3, 0x01, 0x00, 0x03, 0x00} } /* 09 (1400x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001515};
1516
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001517/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001518static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001519 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 00 (320x) */
1520 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 01 (360x) */
1521 { {0x76, 0x31, 0x9A, 0x48, 0x9F, 0x00, 0x41, 0x00} }, /* 02 (400x) */
1522 { {0x76, 0x3F, 0x9A, 0x4F, 0x96, 0x00, 0x41, 0x00} }, /* 03 (512x) */
1523 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
1524 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
1525 { {0xCE, 0x63, 0x92, 0x96, 0x04, 0x00, 0x07, 0x00} }, /* 06 (800x) */
1526 { {0xCE, 0x7F, 0x92, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
1527 { {0xCE, 0x9F, 0x92, 0xB4, 0x02, 0x00, 0x03, 0x00} }, /* 08 (1280x) */
1528 { {0xCE, 0xAE, 0x92, 0xBC, 0x0A, 0x00, 0x03, 0x00} } /* 09 (1400x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001529};
1530
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001531/* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001532/* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001533static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001534 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1535 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1536 { {0x65, 0x31, 0x89, 0x3C, 0x94, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1537 { {0x73, 0x3F, 0x97, 0x4A, 0x82, 0x00, 0x05, 0x00} }, /* 03 (512x) */
1538 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 04 (640x) */
1539 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 05 (720x) */
1540 { {0x97, 0x63, 0x9B, 0x65, 0x1D, 0x00, 0x06, 0xF0} }, /* 06 (800x) */
1541 { {0xB3, 0x7F, 0x97, 0x81, 0x99, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
1542 { {0xD3, 0x9F, 0x97, 0xA1, 0x19, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
1543 { {0xE2, 0xAE, 0x86, 0xB9, 0x91, 0x00, 0x03, 0x00} }, /* 09 (1400x) */
1544 { {0xFB, 0xC7, 0x9F, 0xC9, 0x81, 0x00, 0x07, 0x00} } /* 0A (1600x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001545};
1546
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001547/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001548static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001549 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} }, /* 00 (x350) */
1550 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} }, /* 01 (x400) */
1551 { {0x04, 0x3E, 0xE2, 0x89, 0xDF, 0x05, 0x00} }, /* 02 (x480) */
1552 { {0x7C, 0xF0, 0x5A, 0x8F, 0x57, 0x7D, 0xA0} }, /* 03 (x600) */
1553 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001554};
1555
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001556/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001557static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001558 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} }, /* 00 (x350) */
1559 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} }, /* 01 (x400) */
1560 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} }, /* 02 (x480) */
1561 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} }, /* 03 (x600) */
1562 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001563};
1564
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001565/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001566static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001567 { {0x86, 0x1F, 0x5E, 0x82, 0x5D, 0x87, 0x00} }, /* 00 (x350) */
1568 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} }, /* 01 (x400) */
1569 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} }, /* 02 (x480) */
1570 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} }, /* 03 (x600) */
1571 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} }, /* 04 (x768) */
1572 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001573};
1574
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001575/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001576static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001577 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} }, /* 00 (x350) */
1578 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} }, /* 01 (x400) */
1579 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} }, /* 02 (x480) */
1580 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} }, /* 03 (x600) */
1581 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} }, /* 04 (x768) */
1582 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001583};
1584
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001585/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001586static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001587 { {0x6C, 0x1F, 0x60, 0x84, 0x5D, 0x6D, 0x10} }, /* 00 (x350) */
1588 { {0x9E, 0x1F, 0x93, 0x86, 0x8F, 0x9F, 0x30} }, /* 01 (x400) */
1589 { {0xEE, 0x1F, 0xE2, 0x86, 0xDF, 0xEF, 0x10} }, /* 02 (x480) */
1590 { {0x66, 0xF0, 0x5A, 0x8e, 0x57, 0x67, 0xA0} }, /* 03 (x600) */
1591 { {0x0E, 0xF5, 0x02, 0x86, 0xFF, 0x0F, 0x90} }, /* 04 (x768) */
1592 { {0x0E, 0x5A, 0x02, 0x86, 0xFF, 0x0F, 0x89} }, /* 05 (x1024) */
1593 { {0x28, 0x10, 0x1A, 0x80, 0x19, 0x29, 0x0F} } /* 06 (x1050) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001594};
1595
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001596/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001597static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001598 { {0x28, 0x92, 0xB6, 0x83, 0xB5, 0xCF, 0x81} }, /* 00 (x350) */
1599 { {0x28, 0x92, 0xD5, 0x82, 0xD4, 0xEE, 0x81} }, /* 01 (x400) */
1600 { {0x28, 0x92, 0xFD, 0x8A, 0xFC, 0x16, 0xB1} }, /* 02 (x480) */
1601 { {0x28, 0xD4, 0x39, 0x86, 0x57, 0x29, 0x81} }, /* 03 (x600) */
1602 { {0x28, 0xD4, 0x8D, 0x9A, 0xFF, 0x29, 0xA1} }, /* 04 (x768) */
1603 { {0x28, 0x5A, 0x0D, 0x9A, 0xFF, 0x29, 0xA9} }, /* 05 (x1024) */
1604 { {0x28, 0x10, 0x1A, 0x87, 0x19, 0x29, 0x8F} } /* 06 (x1050) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001605};
1606
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001607/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001608static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001609 { {0xd4, 0x1F, 0x81, 0x84, 0x5D, 0xd5, 0x10} }, /* 00 (x350) */
1610 { {0x06, 0x3e, 0xb3, 0x86, 0x8F, 0x07, 0x20} }, /* 01 (x400) */
1611 { {0x56, 0xba, 0x03, 0x86, 0xDF, 0x57, 0x00} }, /* 02 (x480) */
1612 { {0xce, 0xF0, 0x7b, 0x8e, 0x57, 0xcf, 0xa0} }, /* 03 (x600) */
1613 { {0x76, 0xF5, 0x23, 0x86, 0xFF, 0x77, 0x90} }, /* 04 (x768) */
1614 { {0x76, 0x5A, 0x23, 0x86, 0xFF, 0x77, 0x89} }, /* 05 (x1024) */
1615 { {0x90, 0x10, 0x1A, 0x8E, 0x19, 0x91, 0x2F} }, /* 06 (x1050) */
1616 { {0x26, 0x11, 0xd3, 0x86, 0xaF, 0x27, 0x3f} } /* 07 (x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001617};
1618
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001619/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001620static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001621 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} },/* ; 00 (320x) */
1622 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} },/* ; 01 (360x) */
1623 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} },/* ; 02 (400x) */
1624 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1625 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 04 (640x) */
1626 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 05 (720x) */
1627 { {0x83, 0x63, 0x87, 0x68, 0x14, 0x00, 0x26, 0x00} },/* ; 06 (800x) */
1628 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001629};
1630
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001631/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001632static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001633 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} },/* ; 00 (x350) */
1634 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} },/* ; 01 (x400) */
1635 { {0xFE, 0x1F, 0xE0, 0x84, 0xDF, 0xFF, 0x10} },/* ; 02 (x480) */
1636 { {0x76, 0xF0, 0x58, 0x8C, 0x57, 0x77, 0xA0} },/* ; 03 (x600) */
1637 { {0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} } /* ; 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001638};
1639
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001640/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001641static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001642 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
1643 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
1644 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1645 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1646 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
1647 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
1648 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
1649 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001650};
1651
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001652/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001653static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001654 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} },/* ; 00 (x350) */
1655 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} },/* ; 01 (x400) */
1656 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} },/* ; 02 (x480) */
1657 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} },/* ; 03 (x600) */
1658 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* ; 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001659};
1660
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001661/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001662static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001663 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 00 (320x) */
1664 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 01 (360x) */
1665 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1666 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1667 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
1668 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
1669 { {0x92, 0x63, 0x96, 0x68, 0x1A, 0x00, 0x06, 0x00} },/* ; 06 (800x) */
1670 { {0xAE, 0x7F, 0x92, 0x84, 0x96, 0x00, 0x02, 0x00} },/* ; 07 (1024x) */
1671 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001672};
1673
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001674/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001675static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001676 { {0x86, 0xD1, 0xBC, 0x80, 0xBB, 0xE5, 0x00} },/* ; 00 (x350) */
1677 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} },/* ; 01 (x400) */
1678 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} },/* ; 02 (x480) */
1679 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} },/* ; 03 (x600) */
1680 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} },/* ; 04 (x768) */
1681 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
1682};
1683/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001684static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001685 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
1686 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
1687 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1688 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1689 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 04 (640x) */
1690 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 05 (720x) */
1691 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
1692 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} },/* ; 07 (1024x) */
1693 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001694};
1695
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001696/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001697static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001698 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} },/* ; 00 (x350) */
1699 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} },/* ; 01 (x400) */
1700 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} },/* ; 02 (x480) */
1701 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} },/* ; 03 (x600) */
1702 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} },/* ; 04 (x768) */
1703 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001704};
1705
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001706/*add for new UNIVGABIOS*/
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001707static const struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] = {
Aaro Koskinen47367832012-11-04 21:14:44 +02001708 {Panel_1024x768, 0x0019, 0x0001, XGI_ExtLCD1024x768Data },
1709 {Panel_1024x768, 0x0019, 0x0000, XGI_StLCD1024x768Data },
1710 {Panel_1024x768, 0x0018, 0x0010, XGI_CetLCD1024x768Data },
1711 {Panel_1280x1024, 0x0019, 0x0001, XGI_ExtLCD1280x1024Data },
1712 {Panel_1280x1024, 0x0019, 0x0000, XGI_StLCD1280x1024Data },
1713 {Panel_1280x1024, 0x0018, 0x0010, XGI_CetLCD1280x1024Data },
1714 {Panel_1400x1050, 0x0019, 0x0001, xgifb_lcd_1400x1050 },
1715 {Panel_1400x1050, 0x0019, 0x0000, xgifb_lcd_1400x1050 },
1716 {Panel_1400x1050, 0x0018, 0x0010, XGI_CetLCD1400x1050Data },
1717 {Panel_1600x1200, 0x0019, 0x0001, XGI_ExtLCD1600x1200Data },
1718 {Panel_1600x1200, 0x0019, 0x0000, XGI_StLCD1600x1200Data },
1719 {PanelRef60Hz, 0x0008, 0x0008, XGI_NoScalingData },
1720 {Panel_1024x768x75, 0x0019, 0x0001, XGI_ExtLCD1024x768x75Data },
1721 {Panel_1024x768x75, 0x0019, 0x0000, XGI_ExtLCD1024x768x75Data },
1722 {Panel_1024x768x75, 0x0018, 0x0010, XGI_CetLCD1024x768x75Data },
1723 {Panel_1280x1024x75, 0x0019, 0x0001, xgifb_lcd_1280x1024x75 },
1724 {Panel_1280x1024x75, 0x0019, 0x0000, xgifb_lcd_1280x1024x75 },
1725 {Panel_1280x1024x75, 0x0018, 0x0010, XGI_CetLCD1280x1024x75Data },
1726 {PanelRef75Hz, 0x0008, 0x0008, XGI_NoScalingDatax75 },
1727 {0xFF, 0x0000, 0x0000, NULL } /* End of table */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001728};
1729
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001730static const struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] = {
Aaro Koskinen47367832012-11-04 21:14:44 +02001731 {Panel_1024x768, 0x0019, 0x0001, XGI_ExtLCDDes1024x768Data },
1732 {Panel_1024x768, 0x0019, 0x0000, XGI_StLCDDes1024x768Data },
1733 {Panel_1024x768, 0x0018, 0x0010, XGI_CetLCDDes1024x768Data },
1734 {Panel_1280x1024, 0x0019, 0x0001, XGI_ExtLCDDes1280x1024Data },
1735 {Panel_1280x1024, 0x0019, 0x0000, XGI_StLCDDes1280x1024Data },
1736 {Panel_1280x1024, 0x0018, 0x0010, XGI_CetLCDDes1280x1024Data },
1737 {Panel_1400x1050, 0x0019, 0x0001, xgifb_lcddes_1400x1050 },
1738 {Panel_1400x1050, 0x0019, 0x0000, xgifb_lcddes_1400x1050 },
1739 {Panel_1400x1050, 0x0418, 0x0010, XGI_CetLCDDes1400x1050Data },
1740 {Panel_1400x1050, 0x0418, 0x0410, XGI_CetLCDDes1400x1050Data2 },
1741 {Panel_1600x1200, 0x0019, 0x0001, XGI_ExtLCDDes1600x1200Data },
1742 {Panel_1600x1200, 0x0019, 0x0000, XGI_StLCDDes1600x1200Data },
1743 {PanelRef60Hz, 0x0008, 0x0008, XGI_NoScalingDesData },
1744 {Panel_1024x768x75, 0x0019, 0x0001, xgifb_lcddes_1024x768x75 },
1745 {Panel_1024x768x75, 0x0019, 0x0000, xgifb_lcddes_1024x768x75 },
1746 {Panel_1024x768x75, 0x0018, 0x0010, XGI_CetLCDDes1024x768x75Data },
1747 {Panel_1280x1024x75, 0x0019, 0x0001, xgifb_lcddes_1280x1024x75 },
1748 {Panel_1280x1024x75, 0x0019, 0x0000, xgifb_lcddes_1280x1024x75 },
1749 {Panel_1280x1024x75, 0x0018, 0x0010, XGI_CetLCDDes1280x1024x75Data },
1750 {PanelRef75Hz, 0x0008, 0x0008, XGI_NoScalingDesDatax75 },
1751 {0xFF, 0x0000, 0x0000, NULL }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001752};
1753
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001754static const struct XGI330_LCDDataTablStruct xgifb_lcddldes[] = {
Aaro Koskinen47367832012-11-04 21:14:44 +02001755 {Panel_1024x768, 0x0019, 0x0001, XGI_ExtLCDDes1024x768Data },
1756 {Panel_1024x768, 0x0019, 0x0000, XGI_StLCDDes1024x768Data },
1757 {Panel_1024x768, 0x0018, 0x0010, XGI_CetLCDDes1024x768Data },
1758 {Panel_1280x1024, 0x0019, 0x0001, XGI_ExtLCDDLDes1280x1024Data },
1759 {Panel_1280x1024, 0x0019, 0x0000, XGI_StLCDDLDes1280x1024Data },
1760 {Panel_1280x1024, 0x0018, 0x0010, XGI_CetLCDDLDes1280x1024Data },
1761 {Panel_1400x1050, 0x0019, 0x0001, xgifb_lcddldes_1400x1050 },
1762 {Panel_1400x1050, 0x0019, 0x0000, xgifb_lcddldes_1400x1050 },
1763 {Panel_1400x1050, 0x0418, 0x0010, XGI_CetLCDDes1400x1050Data },
1764 {Panel_1400x1050, 0x0418, 0x0410, XGI_CetLCDDes1400x1050Data2 },
1765 {Panel_1600x1200, 0x0019, 0x0001, XGI_ExtLCDDLDes1600x1200Data },
1766 {Panel_1600x1200, 0x0019, 0x0000, XGI_StLCDDLDes1600x1200Data },
1767 {PanelRef60Hz, 0x0008, 0x0008, XGI_NoScalingDesData },
1768 {Panel_1024x768x75, 0x0019, 0x0001, xgifb_lcddes_1024x768x75 },
1769 {Panel_1024x768x75, 0x0019, 0x0000, xgifb_lcddes_1024x768x75 },
1770 {Panel_1024x768x75, 0x0018, 0x0010, XGI_CetLCDDes1024x768x75Data },
1771 {Panel_1280x1024x75, 0x0019, 0x0001, xgifb_lcddldes_1280x1024x75 },
1772 {Panel_1280x1024x75, 0x0019, 0x0000, xgifb_lcddldes_1280x1024x75 },
1773 {Panel_1280x1024x75, 0x0018, 0x0010, XGI_CetLCDDLDes1280x1024x75Data },
1774 {PanelRef75Hz, 0x0008, 0x0008, XGI_NoScalingDesDatax75 },
1775 {0xFF, 0x0000, 0x0000, NULL }
Aaro Koskinen3e779fc2012-11-04 21:14:42 +02001776};
1777
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001778static const struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1_h[] = {
Aaro Koskinen47367832012-11-04 21:14:44 +02001779 {Panel_1024x768, 0x0018, 0x0000, XGI_LVDSCRT11024x768_1_H },
1780 {Panel_1024x768, 0x0018, 0x0010, XGI_LVDSCRT11024x768_2_H },
1781 {Panel_1280x1024, 0x0018, 0x0000, XGI_LVDSCRT11280x1024_1_H },
1782 {Panel_1280x1024, 0x0018, 0x0010, XGI_LVDSCRT11280x1024_2_H },
1783 {Panel_1400x1050, 0x0018, 0x0000, XGI_LVDSCRT11400x1050_1_H },
1784 {Panel_1400x1050, 0x0018, 0x0010, XGI_LVDSCRT11400x1050_2_H },
1785 {Panel_1600x1200, 0x0018, 0x0000, XGI_LVDSCRT11600x1200_1_H },
1786 {Panel_1024x768x75, 0x0018, 0x0000, XGI_LVDSCRT11024x768_1_Hx75 },
1787 {Panel_1024x768x75, 0x0018, 0x0010, XGI_LVDSCRT11024x768_2_Hx75 },
1788 {Panel_1280x1024x75, 0x0018, 0x0000, XGI_LVDSCRT11280x1024_1_Hx75 },
1789 {Panel_1280x1024x75, 0x0018, 0x0010, XGI_LVDSCRT11280x1024_2_Hx75 },
1790 {0xFF, 0x0000, 0x0000, NULL }
Aaro Koskinen515e9a602012-11-04 21:14:43 +02001791};
1792
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001793static const struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1_v[] = {
Aaro Koskinen47367832012-11-04 21:14:44 +02001794 {Panel_1024x768, 0x0018, 0x0000, XGI_LVDSCRT11024x768_1_V },
1795 {Panel_1024x768, 0x0018, 0x0010, XGI_LVDSCRT11024x768_2_V },
1796 {Panel_1280x1024, 0x0018, 0x0000, XGI_LVDSCRT11280x1024_1_V },
1797 {Panel_1280x1024, 0x0018, 0x0010, XGI_LVDSCRT11280x1024_2_V },
1798 {Panel_1400x1050, 0x0018, 0x0000, XGI_LVDSCRT11400x1050_1_V },
1799 {Panel_1400x1050, 0x0018, 0x0010, XGI_LVDSCRT11400x1050_2_V },
1800 {Panel_1600x1200, 0x0018, 0x0000, XGI_LVDSCRT11600x1200_1_V },
1801 {Panel_1024x768x75, 0x0018, 0x0000, XGI_LVDSCRT11024x768_1_Vx75 },
1802 {Panel_1024x768x75, 0x0018, 0x0010, XGI_LVDSCRT11024x768_2_Vx75 },
1803 {Panel_1280x1024x75, 0x0018, 0x0000, XGI_LVDSCRT11280x1024_1_Vx75 },
1804 {Panel_1280x1024x75, 0x0018, 0x0010, XGI_LVDSCRT11280x1024_2_Vx75 },
1805 {0xFF, 0x0000, 0x0000, NULL }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001806};
1807
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001808static const struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] = {
Aaro Koskinen47367832012-11-04 21:14:44 +02001809 {Panel_1024x768, 0x0018, 0x0000, XGI_LVDS1024x768Data_1 },
1810 {Panel_1024x768, 0x0018, 0x0010, XGI_LVDS1024x768Data_2 },
1811 {Panel_1280x1024, 0x0018, 0x0000, XGI_LVDS1280x1024Data_1 },
1812 {Panel_1280x1024, 0x0018, 0x0010, XGI_LVDS1280x1024Data_2 },
1813 {Panel_1400x1050, 0x0018, 0x0000, XGI_LVDS1400x1050Data_1 },
1814 {Panel_1400x1050, 0x0018, 0x0010, XGI_LVDS1400x1050Data_2 },
1815 {Panel_1600x1200, 0x0018, 0x0000, XGI_LVDS1600x1200Data_1 },
1816 {PanelRef60Hz, 0x0008, 0x0008, XGI_LVDSNoScalingData },
1817 {Panel_1024x768x75, 0x0018, 0x0000, XGI_LVDS1024x768Data_1x75 },
1818 {Panel_1024x768x75, 0x0018, 0x0010, XGI_LVDS1024x768Data_2x75 },
1819 {Panel_1280x1024x75, 0x0018, 0x0000, XGI_LVDS1280x1024Data_1x75 },
1820 {Panel_1280x1024x75, 0x0018, 0x0010, XGI_LVDS1280x1024Data_2x75 },
1821 {PanelRef75Hz, 0x0008, 0x0008, XGI_LVDSNoScalingDatax75 },
1822 {0xFF, 0x0000, 0x0000, NULL }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001823};
1824
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001825static const struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] = {
Aaro Koskinen47367832012-11-04 21:14:44 +02001826 {Panel_1024x768, 0x0018, 0x0000, XGI_LVDS1024x768Des_1 },
1827 {Panel_1024x768, 0x0618, 0x0410, XGI_LVDS1024x768Des_3 },
1828 {Panel_1024x768, 0x0018, 0x0010, XGI_LVDS1024x768Des_2 },
1829 {Panel_1280x1024, 0x0018, 0x0000, XGI_LVDS1280x1024Des_1 },
1830 {Panel_1280x1024, 0x0018, 0x0010, XGI_LVDS1280x1024Des_2 },
1831 {Panel_1400x1050, 0x0018, 0x0000, XGI_LVDS1400x1050Des_1 },
1832 {Panel_1400x1050, 0x0018, 0x0010, XGI_LVDS1400x1050Des_2 },
1833 {Panel_1600x1200, 0x0018, 0x0000, XGI_LVDS1600x1200Des_1 },
1834 {PanelRef60Hz, 0x0008, 0x0008, XGI_LVDSNoScalingDesData },
1835 {Panel_1024x768x75, 0x0018, 0x0000, XGI_LVDS1024x768Des_1x75 },
1836 {Panel_1024x768x75, 0x0618, 0x0410, XGI_LVDS1024x768Des_3x75 },
1837 {Panel_1024x768x75, 0x0018, 0x0010, XGI_LVDS1024x768Des_2x75 },
1838 {Panel_1280x1024x75, 0x0018, 0x0000, XGI_LVDS1280x1024Des_1x75 },
1839 {Panel_1280x1024x75, 0x0018, 0x0010, XGI_LVDS1280x1024Des_2x75 },
1840 {PanelRef75Hz, 0x0008, 0x0008, XGI_LVDSNoScalingDesDatax75 },
1841 {0xFF, 0x0000, 0x0000, NULL }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001842};
1843
Aaro Koskinen18ba8662012-09-11 00:15:22 +03001844static const struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {
1845 {0x09E1, 0x0001, XGI_ExtPALData},
1846 {0x09E1, 0x0000, XGI_ExtNTSCData},
1847 {0x09E1, 0x0801, XGI_StPALData},
1848 {0x09E1, 0x0800, XGI_StNTSCData},
1849 {0x49E0, 0x0100, XGI_ExtHiTVData},
1850 {0x49E0, 0x4100, XGI_St2HiTVData},
1851 {0x49E0, 0x4900, XGI_St1HiTVData},
1852 {0x09E0, 0x0020, XGI_ExtYPbPr525iData},
1853 {0x09E0, 0x0040, XGI_ExtYPbPr525pData},
1854 {0x09E0, 0x0080, XGI_ExtYPbPr750pData},
1855 {0x09E0, 0x0820, XGI_StYPbPr525iData},
1856 {0x09E0, 0x0840, XGI_StYPbPr525pData},
1857 {0x09E0, 0x0880, XGI_StYPbPr750pData},
1858 {0xffff, 0x0000, XGI_ExtNTSCData},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001859};
1860
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001861/* Dual link only */
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001862static const struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001863/* LCDCap1024x768 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001864 {Panel_1024x768, DefaultLCDCap, 0x88, 0x06, VCLK65_315,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001865 0x6C, 0xC3, 0x35, 0x62,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001866 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001867/* LCDCap1280x1024 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001868 {Panel_1280x1024, XGI_LCDDualLink+DefaultLCDCap,
Peter Huewe03f76fc2012-06-14 00:21:50 +02001869 0x70, 0x03, VCLK108_2_315,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001870 0x70, 0x44, 0xF8, 0x2F,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001871 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001872/* LCDCap1400x1050 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001873 {Panel_1400x1050, XGI_LCDDualLink+DefaultLCDCap,
Peter Huewe03f76fc2012-06-14 00:21:50 +02001874 0x70, 0x03, VCLK108_2_315,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001875 0x70, 0x44, 0xF8, 0x2F,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001876 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001877/* LCDCap1600x1200 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001878 {Panel_1600x1200, XGI_LCDDualLink+DefaultLCDCap,
Peter Huewe03f76fc2012-06-14 00:21:50 +02001879 0xC0, 0x03, VCLK162,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001880 0x43, 0x22, 0x70, 0x24,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001881 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001882/* LCDCap1024x768x75 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001883 {Panel_1024x768x75, DefaultLCDCap, 0x60, 0, VCLK78_75,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001884 0x2B, 0x61, 0x2B, 0x61,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001885 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001886/* LCDCap1280x1024x75 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001887 {Panel_1280x1024x75, XGI_LCDDualLink+DefaultLCDCap,
Peter Huewe03f76fc2012-06-14 00:21:50 +02001888 0x90, 0x03, VCLK135_5,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001889 0x54, 0x42, 0x4A, 0x61,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001890 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001891/* LCDCapDefault */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001892 {0xFF, DefaultLCDCap, 0x88, 0x06, VCLK65_315,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001893 0x6C, 0xC3, 0x35, 0x62,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001894 0x0A, 0xC0, 0x28, 0x10}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001895};
1896
Aaro Koskinenbdc9eb12012-11-04 21:14:47 +02001897static const struct XGI330_LCDCapStruct XGI_LCDCapList[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001898/* LCDCap1024x768 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001899 {Panel_1024x768, DefaultLCDCap, 0x88, 0x06, VCLK65_315,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001900 0x6C, 0xC3, 0x35, 0x62,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001901 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001902/* LCDCap1280x1024 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001903 {Panel_1280x1024, DefaultLCDCap,
Peter Huewe03f76fc2012-06-14 00:21:50 +02001904 0x70, 0x03, VCLK108_2_315,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001905 0x70, 0x44, 0xF8, 0x2F,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001906 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001907/* LCDCap1400x1050 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001908 {Panel_1400x1050, DefaultLCDCap,
Peter Huewe03f76fc2012-06-14 00:21:50 +02001909 0x70, 0x03, VCLK108_2_315,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001910 0x70, 0x44, 0xF8, 0x2F,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001911 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001912/* LCDCap1600x1200 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001913 {Panel_1600x1200, DefaultLCDCap,
Peter Huewe03f76fc2012-06-14 00:21:50 +02001914 0xC0, 0x03, VCLK162,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001915 0x5A, 0x23, 0x5A, 0x23,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001916 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001917/* LCDCap1024x768x75 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001918 {Panel_1024x768x75, DefaultLCDCap, 0x60, 0, VCLK78_75,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001919 0x2B, 0x61, 0x2B, 0x61,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001920 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001921/* LCDCap1280x1024x75 */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001922 {Panel_1280x1024x75, DefaultLCDCap,
Peter Huewe03f76fc2012-06-14 00:21:50 +02001923 0x90, 0x03, VCLK135_5,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001924 0x54, 0x42, 0x4A, 0x61,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001925 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001926/* LCDCapDefault */
Aaro Koskinen625030e2013-03-27 23:53:09 +02001927 {0xFF, DefaultLCDCap, 0x88, 0x06, VCLK65_315,
Aaro Koskinend5a1b522013-03-27 23:53:10 +02001928 0x6C, 0xC3, 0x35, 0x62,
Aaro Koskinenabe0a2e2013-03-27 23:53:11 +02001929 0x0A, 0xC0, 0x28, 0x10}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001930};
1931
Aaro Koskinena39325d2012-11-04 21:14:53 +02001932const struct XGI_Ext2Struct XGI330_RefIndex[] = {
Peter Huewe6896b942012-02-09 21:11:46 +01001933 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001934 0x00, 0x10, 0x59, 320, 200},/* 00 */
Peter Huewe6896b942012-02-09 21:11:46 +01001935 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001936 0x00, 0x10, 0x00, 320, 400},/* 01 */
Peter Huewe6896b942012-02-09 21:11:46 +01001937 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES320x240, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001938 0x04, 0x20, 0x50, 320, 240},/* 02 */
Peter Huewe6896b942012-02-09 21:11:46 +01001939 {Mode32Bpp + SupportAllCRT2 + SyncPP, RES400x300, VCLK40,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001940 0x05, 0x32, 0x51, 400, 300},/* 03 */
Peter Huewe6896b942012-02-09 21:11:46 +01001941 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES512x384,
1942 VCLK65_315, 0x06, 0x43, 0x52, 512, 384},/* 04 */
1943 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES640x400, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001944 0x00, 0x14, 0x2f, 640, 400},/* 05 */
Peter Huewe6896b942012-02-09 21:11:46 +01001945 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES640x480x60, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001946 0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
Peter Huewe6896b942012-02-09 21:11:46 +01001947 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x72, VCLK31_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001948 0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01001949 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x75, VCLK31_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001950 0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01001951 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x85, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001952 0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001953 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x100, VCLK43_163,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001954 0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001955 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x120, VCLK52_406,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001956 0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001957 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x160, VCLK72_852,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001958 0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001959 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x200, VCLK86_6,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001960 0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001961 {Mode32Bpp + NoSupportLCD + SyncPP, RES800x600x56, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001962 0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001963 {Mode32Bpp + NoSupportTV + SyncPP, RES800x600x60, VCLK40,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001964 0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01001965 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x72, VCLK50,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001966 0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01001967 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x75, VCLK49_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001968 0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01001969 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x600x85, VCLK56_25,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001970 0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001971 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x100, VCLK68_179,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001972 0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001973 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x120, VCLK83_95,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001974 0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001975 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x160, VCLK116_406,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001976 0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001977 {Mode32Bpp + InterlaceMode + SyncPP, RES1024x768x43, VCLK44_9,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001978 0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
1979 /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01001980 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES1024x768x60,
1981 VCLK65_315, 0x06, 0x47, 0x37, 1024, 768},
1982 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES1024x768x70, VCLK75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001983 0x49, 0x47, 0x37, 1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01001984 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1024x768x75, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001985 0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01001986 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x768x85, VCLK94_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001987 0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001988 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x100, VCLK113_309,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001989 0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001990 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x120, VCLK139_054,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001991 0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001992 {Mode32Bpp + SupportLCD + SyncPP, RES1280x960x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001993 0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001994 {Mode32Bpp + InterlaceMode + SyncPP, RES1280x1024x43, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001995 0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01001996 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001997 0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
Peter Huewe6896b942012-02-09 21:11:46 +01001998 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x75, VCLK135_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001999 0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
Peter Huewe6896b942012-02-09 21:11:46 +01002000 {Mode32Bpp + SyncPP, RES1280x1024x85, VCLK157_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002001 0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2002 /* 22 1600x1200x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002003 {Mode32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002004 RES1600x1200x60, VCLK162, 0x09, 0x7A, 0x3c, 1600, 1200},
Peter Huewe6896b942012-02-09 21:11:46 +01002005 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x65, VCLK175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002006 0x00, 0x69, 0x3c, 1600, 1200},/* 23 1600x1200x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002007 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x70, VCLK189,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002008 0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002009 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x75, VCLK202_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002010 0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002011 {Mode32Bpp + SyncPP, RES1600x1200x85, VCLK229_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002012 0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002013 {Mode32Bpp + SyncPP, RES1600x1200x100, VCLK269_655,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002014 0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002015 {Mode32Bpp + SyncPP, RES1600x1200x120, VCLK323_586,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002016 0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002017 {Mode32Bpp + SupportLCD + SyncNP, RES1920x1440x60, VCLK234,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002018 0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002019 {Mode32Bpp + SyncPN, RES1920x1440x65, VCLK254_817,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002020 0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002021 {Mode32Bpp + SyncPN, RES1920x1440x70, VCLK277_015,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002022 0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002023 {Mode32Bpp + SyncPN, RES1920x1440x75, VCLK291_132,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002024 0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002025 {Mode32Bpp + SyncPN, RES1920x1440x85, VCLK330_615,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002026 0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002027 {Mode16Bpp + SyncPN, RES1920x1440x100, VCLK388_631,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002028 0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002029 {Mode32Bpp + SupportLCD + SyncPN, RES2048x1536x60, VCLK266_952,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002030 0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002031 {Mode32Bpp + SyncPN, RES2048x1536x65, VCLK291_766,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002032 0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002033 {Mode32Bpp + SyncPN, RES2048x1536x70, VCLK315_195,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002034 0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002035 {Mode32Bpp + SyncPN, RES2048x1536x75, VCLK340_477,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002036 0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002037 {Mode16Bpp + SyncPN, RES2048x1536x85, VCLK375_847,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002038 0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002039 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2040 SyncPP + SupportYPbPr750p, RES800x480x60, VCLK39_77,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002041 0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002042 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x75, VCLK49_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002043 0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002044 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x85, VCLK56_25,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002045 0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002046 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2047 SyncPP + SupportYPbPr750p, RES1024x576x60, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002048 0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002049 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x75, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002050 0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002051 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x85, VCLK94_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002052 0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002053 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2054 SyncPP + SupportYPbPr750p, RES1280x720x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002055 0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
Peter Huewe6896b942012-02-09 21:11:46 +01002056 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x75, VCLK135_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002057 0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002058 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x85, VCLK157_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002059 0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002060 {Mode32Bpp + SupportTV + SyncNN, RES720x480x60, VCLK28_322,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002061 0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002062 {Mode32Bpp + SupportTV + SyncPP, RES720x576x56, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002063 0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002064 {Mode32Bpp + InterlaceMode + NoSupportLCD + SyncPP, RES856x480x79I,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002065 VCLK35_2, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
Peter Huewe6896b942012-02-09 21:11:46 +01002066 {Mode32Bpp + NoSupportLCD + SyncNN, RES856x480x60, VCLK35_2,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002067 0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002068 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1280x768x60,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002069 VCLK79_411, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002070 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1400x1050x60,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002071 VCLK122_61, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002072 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x60, VCLK80_350,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002073 0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002074 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x75, VCLK107_385,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002075 0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002076 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002077 VCLK125_999, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002078 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x85,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002079 VCLK148_5, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002080 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x120,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002081 VCLK217_325, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002082 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x160, VCLK139_054,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002083 0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002084};
2085
Aaro Koskinen224114c2012-11-04 21:14:59 +02002086static const unsigned char XGI330_ScreenOffset[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002087 0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2088 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2089 0x57, 0x48
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002090};
2091
Aaro Koskinene8e6c752012-11-04 21:15:00 +02002092static const struct SiS_ModeResInfo_S XGI330_ModeResInfo[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002093 { 320, 200, 8, 8},
2094 { 320, 240, 8, 8},
2095 { 320, 400, 8, 8},
2096 { 400, 300, 8, 8},
2097 { 512, 384, 8, 8},
2098 { 640, 400, 8, 16},
2099 { 640, 480, 8, 16},
2100 { 800, 600, 8, 16},
2101 {1024, 768, 8, 16},
2102 {1280, 1024, 8, 16},
2103 {1600, 1200, 8, 16},
2104 {1920, 1440, 8, 16},
2105 {2048, 1536, 8, 16},
2106 { 720, 480, 8, 16},
2107 { 720, 576, 8, 16},
2108 {1280, 960, 8, 16},
2109 { 800, 480, 8, 16},
2110 {1024, 576, 8, 16},
2111 {1280, 720, 8, 16},
2112 { 856, 480, 8, 16},
2113 {1280, 768, 8, 16},
2114 {1400, 1050, 8, 16},
2115 {1152, 864, 8, 16}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002116};
2117
Aaro Koskinenacfe0932012-11-04 21:14:58 +02002118const struct SiS_VCLKData XGI_VCLKData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002119 /* SR2B,SR2C,SR2D */
2120 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2121 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2122 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2123 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2124 {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2125 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2126 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2127 {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2128 {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2129 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2130 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2131 {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2132 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2133 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2134 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2135 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2136 {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2137 {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2138 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2139 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2140 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2141 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2142 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2143 {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2144 {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2145 {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2146 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2147 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2148 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2149 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2150 {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2151 {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2152 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2153 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2154 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2155 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2156 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2157 {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2158 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2159 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2160 {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2161 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2162 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2163 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2164 {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2165 {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2166 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2167 {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2168 {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2169 {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2170 {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2171 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2172 {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2173 {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2174 {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2175 {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2176 {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2177 {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2178 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2179 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2180 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2181 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2182 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2183 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2184 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2185 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2186 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2187 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2188 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2189 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2190 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2191 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2192 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2193 {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2194 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2195 {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2196 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002197 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2198 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2199 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2200 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2201 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2202 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2203 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2204 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2205 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2206 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2207 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2208 {0xFF, 0x00, 0} /* End mark */
2209};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002210
Aaro Koskinenacfe0932012-11-04 21:14:58 +02002211static const struct SiS_VBVCLKData XGI_VBVCLKData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002212 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2213 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2214 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2215 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2216 {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2217 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2218 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2219 {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2220 {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2221 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2222 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2223 {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2224 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2225 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2226 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2227 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2228 {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2229 {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2230 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2231 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2232 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2233 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2234 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2235 {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2236 {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2237 {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2238 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2239 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2240 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2241 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2242 {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2243 {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2244 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2245 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2246 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2247 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2248 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2249 {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2250 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2251 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2252 {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2253 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2254 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2255 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2256 {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2257 {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2258 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2259 {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2260 {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2261 {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2262 {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2263 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2264 {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2265 {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2266 {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2267 {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2268 {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2269 {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2270 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2271 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2272 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2273 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2274 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2275 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2276 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2277 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2278 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2279 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2280 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2281 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2282 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2283 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2284 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2285 {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
2286 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2287 {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
2288 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002289 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2290 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2291 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2292 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2293 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2294 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2295 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2296 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2297 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2298 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2299 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2300 {0xFF, 0x00, 0} /* End mark */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002301};
2302
Peter Huewe03f76fc2012-06-14 00:21:50 +02002303#define XGI301TVDelay 0x22
2304#define XGI301LCDDelay 0x12
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002305
Aaro Koskinena68292f2012-11-04 21:15:07 +02002306static const unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002307 0x04, /* ; 0 Adaptive */
2308 0x00, /* ; 1 new anti-flicker ? */
2309
2310 0x04, /* ; 0 Adaptive */
2311 0x08, /* ; 1 new anti-flicker ? */
2312
2313 0x04, /* ; 0 ? */
2314 0x00 /* ; 1 new anti-flicker ? */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002315};
2316
2317
Aaro Koskinena68292f2012-11-04 21:15:07 +02002318static const unsigned char TVEdgeList[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002319 0x00, /* ; 0 NTSC No Edge enhance */
2320 0x04, /* ; 1 NTSC Adaptive Edge enhance */
2321 0x00, /* ; 0 PAL No Edge enhance */
2322 0x04, /* ; 1 PAL Adaptive Edge enhance */
2323 0x00, /* ; 0 HiTV */
2324 0x00 /* ; 1 HiTV */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002325};
2326
Aaro Koskinena68292f2012-11-04 21:15:07 +02002327static const unsigned long TVPhaseList[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002328 0x08BAED21, /* ; 0 NTSC phase */
2329 0x00E3052A, /* ; 1 PAL phase */
2330 0x9B2EE421, /* ; 2 PAL-M phase */
2331 0xBA3EF421, /* ; 3 PAL-N phase */
2332 0xA7A28B1E, /* ; 4 NTSC 1024x768 */
2333 0xE00A831E, /* ; 5 PAL-M 1024x768 */
2334 0x00000000, /* ; 6 reserved */
2335 0x00000000, /* ; 7 reserved */
2336 0xD67BF021, /* ; 8 NTSC phase */
2337 0xE986092A, /* ; 9 PAL phase */
2338 0xA4EFE621, /* ; A PAL-M phase */
2339 0x4694F621, /* ; B PAL-N phase */
2340 0x8BDE711C, /* ; C NTSC 1024x768 */
2341 0xE00A831E /* ; D PAL-M 1024x768 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002342};
2343
Aaro Koskinena68292f2012-11-04 21:15:07 +02002344static const unsigned char NTSCYFilter1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002345 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2346 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2347 0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
2348 0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
2349 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2350 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
2351 0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002352};
2353
Aaro Koskinena68292f2012-11-04 21:15:07 +02002354static const unsigned char PALYFilter1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002355 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2356 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2357 0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
2358 0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
2359 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2360 0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
2361 0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002362};
2363
Aaro Koskinena68292f2012-11-04 21:15:07 +02002364static const unsigned char xgifb_palmn_yfilter1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002365 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2366 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2367 0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
2368 0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
2369 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2370 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
2371 0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
2372 0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002373};
2374
Aaro Koskinena68292f2012-11-04 21:15:07 +02002375static const unsigned char xgifb_yfilter2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002376 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
2377 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
2378 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
2379 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
2380 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
2381 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
2382 0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
2383 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002384};
2385
Aaro Koskinena68292f2012-11-04 21:15:07 +02002386static const unsigned char XGI_NTSC1024AdjTime[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002387 0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
2388 0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
2389 0x58, 0xe4, 0x73, 0xd0, 0x13
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002390};
2391
Aaro Koskinen1cccd9e2012-11-04 21:15:06 +02002392static const struct XGI301C_Tap4TimingStruct xgifb_tap4_timing[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002393 {0, {
2394 0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
2395 0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
2396 0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
2397 0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
2398 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
2399 0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
2400 0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
2401 0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002402 }
2403 }
2404};
2405
Aaro Koskinen1cccd9e2012-11-04 21:15:06 +02002406static const struct XGI301C_Tap4TimingStruct PALTap4Timing[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002407 {600, {
2408 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
2409 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
2410 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
2411 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
2412 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
2413 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
2414 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
2415 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
2416 }
2417 },
2418 {768, {
2419 0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
2420 0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
2421 0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
2422 0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
2423 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
2424 0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
2425 0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
2426 0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
2427 }
2428 },
2429 {0xFFFF, {
2430 0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
2431 0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
2432 0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
2433 0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
2434 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
2435 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
2436 0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
2437 0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
2438 }
2439 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002440};
2441
Aaro Koskinen1cccd9e2012-11-04 21:15:06 +02002442static const struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002443 {480, {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002444 0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
2445 0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
2446 0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
2447 0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
2448 0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
2449 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
2450 0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
2451 0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
2452 }
2453 },
2454 {600, {
2455 0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
2456 0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
2457 0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
2458 0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
2459 0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
2460 0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
2461 0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
2462 0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
2463 }
2464 },
2465 {0xFFFF, {
2466 0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
2467 0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
2468 0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
2469 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
2470 0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
2471 0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
2472 0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
2473 0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
2474 }
2475 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002476};
2477
Aaro Koskinen1cccd9e2012-11-04 21:15:06 +02002478static const struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002479 {0xFFFF, {
2480 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
2481 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
2482 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
2483 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
2484 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
2485 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
2486 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
2487 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */
2488 }
2489 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002490};
Peter Hueweac326fb2012-06-14 00:21:41 +02002491#endif