aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/via/chip.h9
-rw-r--r--drivers/video/via/hw.c30
-rw-r--r--drivers/video/via/lcd.c50
-rw-r--r--drivers/video/via/tblDPASetting.c23
-rw-r--r--drivers/video/via/tblDPASetting.h2
-rw-r--r--drivers/video/via/viamode.c85
-rw-r--r--drivers/video/via/vt1636.c43
7 files changed, 32 insertions, 210 deletions
diff --git a/drivers/video/via/chip.h b/drivers/video/via/chip.h
index 48f1342897b..781f3aa66b4 100644
--- a/drivers/video/via/chip.h
+++ b/drivers/video/via/chip.h
@@ -110,16 +110,13 @@
110struct tmds_chip_information { 110struct tmds_chip_information {
111 int tmds_chip_name; 111 int tmds_chip_name;
112 int tmds_chip_slave_addr; 112 int tmds_chip_slave_addr;
113 int data_mode;
114 int output_interface; 113 int output_interface;
115 int i2c_port; 114 int i2c_port;
116 int device_type;
117}; 115};
118 116
119struct lvds_chip_information { 117struct lvds_chip_information {
120 int lvds_chip_name; 118 int lvds_chip_name;
121 int lvds_chip_slave_addr; 119 int lvds_chip_slave_addr;
122 int data_mode;
123 int output_interface; 120 int output_interface;
124 int i2c_port; 121 int i2c_port;
125}; 122};
@@ -142,9 +139,6 @@ struct chip_information {
142 139
143struct crt_setting_information { 140struct crt_setting_information {
144 int iga_path; 141 int iga_path;
145 int h_active;
146 int v_active;
147 int bpp;
148 int refresh_rate; 142 int refresh_rate;
149}; 143};
150 144
@@ -162,8 +156,6 @@ struct lvds_setting_information {
162 int h_active; 156 int h_active;
163 int v_active; 157 int v_active;
164 int bpp; 158 int bpp;
165 int refresh_rate;
166 int lcd_panel_id;
167 int lcd_panel_hres; 159 int lcd_panel_hres;
168 int lcd_panel_vres; 160 int lcd_panel_vres;
169 int display_method; 161 int display_method;
@@ -188,7 +180,6 @@ struct GFX_DPA_SETTING {
188}; 180};
189 181
190struct VT1636_DPA_SETTING { 182struct VT1636_DPA_SETTING {
191 int PanelSizeID;
192 u8 CLK_SEL_ST1; 183 u8 CLK_SEL_ST1;
193 u8 CLK_SEL_ST2; 184 u8 CLK_SEL_ST2;
194}; 185};
diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c
index b418acf3cd5..5728fd76bc1 100644
--- a/drivers/video/via/hw.c
+++ b/drivers/video/via/hw.c
@@ -290,6 +290,24 @@ static struct pll_config vx855_pll_config[] = {
290 {176, 5, 4} 290 {176, 5, 4}
291}; 291};
292 292
293/* according to VIA Technologies these values are based on experiment */
294static struct io_reg scaling_parameters[] = {
295 {VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
296 {VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
297 {VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
298 {VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
299 {VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
300 {VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
301 {VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
302 {VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
303 {VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
304 {VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
305 {VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
306 {VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
307 {VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
308 {VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
309};
310
293static struct fifo_depth_select display_fifo_depth_reg = { 311static struct fifo_depth_select display_fifo_depth_reg = {
294 /* IGA1 FIFO Depth_Select */ 312 /* IGA1 FIFO Depth_Select */
295 {IGA1_FIFO_DEPTH_SELECT_REG_NUM, {{SR17, 0, 7} } }, 313 {IGA1_FIFO_DEPTH_SELECT_REG_NUM, {{SR17, 0, 7} } },
@@ -2069,9 +2087,6 @@ void viafb_update_device_setting(int hres, int vres,
2069 int bpp, int vmode_refresh, int flag) 2087 int bpp, int vmode_refresh, int flag)
2070{ 2088{
2071 if (flag == 0) { 2089 if (flag == 0) {
2072 viaparinfo->crt_setting_info->h_active = hres;
2073 viaparinfo->crt_setting_info->v_active = vres;
2074 viaparinfo->crt_setting_info->bpp = bpp;
2075 viaparinfo->crt_setting_info->refresh_rate = 2090 viaparinfo->crt_setting_info->refresh_rate =
2076 vmode_refresh; 2091 vmode_refresh;
2077 2092
@@ -2081,13 +2096,9 @@ void viafb_update_device_setting(int hres, int vres,
2081 viaparinfo->lvds_setting_info->h_active = hres; 2096 viaparinfo->lvds_setting_info->h_active = hres;
2082 viaparinfo->lvds_setting_info->v_active = vres; 2097 viaparinfo->lvds_setting_info->v_active = vres;
2083 viaparinfo->lvds_setting_info->bpp = bpp; 2098 viaparinfo->lvds_setting_info->bpp = bpp;
2084 viaparinfo->lvds_setting_info->refresh_rate =
2085 vmode_refresh;
2086 viaparinfo->lvds_setting_info2->h_active = hres; 2099 viaparinfo->lvds_setting_info2->h_active = hres;
2087 viaparinfo->lvds_setting_info2->v_active = vres; 2100 viaparinfo->lvds_setting_info2->v_active = vres;
2088 viaparinfo->lvds_setting_info2->bpp = bpp; 2101 viaparinfo->lvds_setting_info2->bpp = bpp;
2089 viaparinfo->lvds_setting_info2->refresh_rate =
2090 vmode_refresh;
2091 } else { 2102 } else {
2092 2103
2093 if (viaparinfo->tmds_setting_info->iga_path == IGA2) { 2104 if (viaparinfo->tmds_setting_info->iga_path == IGA2) {
@@ -2099,15 +2110,11 @@ void viafb_update_device_setting(int hres, int vres,
2099 viaparinfo->lvds_setting_info->h_active = hres; 2110 viaparinfo->lvds_setting_info->h_active = hres;
2100 viaparinfo->lvds_setting_info->v_active = vres; 2111 viaparinfo->lvds_setting_info->v_active = vres;
2101 viaparinfo->lvds_setting_info->bpp = bpp; 2112 viaparinfo->lvds_setting_info->bpp = bpp;
2102 viaparinfo->lvds_setting_info->refresh_rate =
2103 vmode_refresh;
2104 } 2113 }
2105 if (IGA2 == viaparinfo->lvds_setting_info2->iga_path) { 2114 if (IGA2 == viaparinfo->lvds_setting_info2->iga_path) {
2106 viaparinfo->lvds_setting_info2->h_active = hres; 2115 viaparinfo->lvds_setting_info2->h_active = hres;
2107 viaparinfo->lvds_setting_info2->v_active = vres; 2116 viaparinfo->lvds_setting_info2->v_active = vres;
2108 viaparinfo->lvds_setting_info2->bpp = bpp; 2117 viaparinfo->lvds_setting_info2->bpp = bpp;
2109 viaparinfo->lvds_setting_info2->refresh_rate =
2110 vmode_refresh;
2111 } 2118 }
2112 } 2119 }
2113} 2120}
@@ -2382,6 +2389,7 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp,
2382 break; 2389 break;
2383 } 2390 }
2384 2391
2392 viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters));
2385 device_off(); 2393 device_off();
2386 via_set_state(devices, VIA_STATE_OFF); 2394 via_set_state(devices, VIA_STATE_OFF);
2387 2395
diff --git a/drivers/video/via/lcd.c b/drivers/video/via/lcd.c
index fc76b27b113..64bc7e76310 100644
--- a/drivers/video/via/lcd.c
+++ b/drivers/video/via/lcd.c
@@ -97,8 +97,6 @@ void __devinit viafb_init_lcd_size(void)
97 DEBUG_MSG(KERN_INFO "viafb_init_lcd_size()\n"); 97 DEBUG_MSG(KERN_INFO "viafb_init_lcd_size()\n");
98 98
99 fp_id_to_vindex(viafb_lcd_panel_id); 99 fp_id_to_vindex(viafb_lcd_panel_id);
100 viaparinfo->lvds_setting_info2->lcd_panel_id =
101 viaparinfo->lvds_setting_info->lcd_panel_id;
102 viaparinfo->lvds_setting_info2->lcd_panel_hres = 100 viaparinfo->lvds_setting_info2->lcd_panel_hres =
103 viaparinfo->lvds_setting_info->lcd_panel_hres; 101 viaparinfo->lvds_setting_info->lcd_panel_hres;
104 viaparinfo->lvds_setting_info2->lcd_panel_vres = 102 viaparinfo->lvds_setting_info2->lcd_panel_vres =
@@ -205,176 +203,132 @@ static void __devinit fp_id_to_vindex(int panel_id)
205 case 0x0: 203 case 0x0:
206 viaparinfo->lvds_setting_info->lcd_panel_hres = 640; 204 viaparinfo->lvds_setting_info->lcd_panel_hres = 640;
207 viaparinfo->lvds_setting_info->lcd_panel_vres = 480; 205 viaparinfo->lvds_setting_info->lcd_panel_vres = 480;
208 viaparinfo->lvds_setting_info->lcd_panel_id =
209 LCD_PANEL_ID0_640X480;
210 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 206 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
211 viaparinfo->lvds_setting_info->LCDDithering = 1; 207 viaparinfo->lvds_setting_info->LCDDithering = 1;
212 break; 208 break;
213 case 0x1: 209 case 0x1:
214 viaparinfo->lvds_setting_info->lcd_panel_hres = 800; 210 viaparinfo->lvds_setting_info->lcd_panel_hres = 800;
215 viaparinfo->lvds_setting_info->lcd_panel_vres = 600; 211 viaparinfo->lvds_setting_info->lcd_panel_vres = 600;
216 viaparinfo->lvds_setting_info->lcd_panel_id =
217 LCD_PANEL_ID1_800X600;
218 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 212 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
219 viaparinfo->lvds_setting_info->LCDDithering = 1; 213 viaparinfo->lvds_setting_info->LCDDithering = 1;
220 break; 214 break;
221 case 0x2: 215 case 0x2:
222 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024; 216 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024;
223 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 217 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
224 viaparinfo->lvds_setting_info->lcd_panel_id =
225 LCD_PANEL_ID2_1024X768;
226 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 218 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
227 viaparinfo->lvds_setting_info->LCDDithering = 1; 219 viaparinfo->lvds_setting_info->LCDDithering = 1;
228 break; 220 break;
229 case 0x3: 221 case 0x3:
230 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280; 222 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280;
231 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 223 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
232 viaparinfo->lvds_setting_info->lcd_panel_id =
233 LCD_PANEL_ID3_1280X768;
234 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 224 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
235 viaparinfo->lvds_setting_info->LCDDithering = 1; 225 viaparinfo->lvds_setting_info->LCDDithering = 1;
236 break; 226 break;
237 case 0x4: 227 case 0x4:
238 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280; 228 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280;
239 viaparinfo->lvds_setting_info->lcd_panel_vres = 1024; 229 viaparinfo->lvds_setting_info->lcd_panel_vres = 1024;
240 viaparinfo->lvds_setting_info->lcd_panel_id =
241 LCD_PANEL_ID4_1280X1024;
242 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 230 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
243 viaparinfo->lvds_setting_info->LCDDithering = 1; 231 viaparinfo->lvds_setting_info->LCDDithering = 1;
244 break; 232 break;
245 case 0x5: 233 case 0x5:
246 viaparinfo->lvds_setting_info->lcd_panel_hres = 1400; 234 viaparinfo->lvds_setting_info->lcd_panel_hres = 1400;
247 viaparinfo->lvds_setting_info->lcd_panel_vres = 1050; 235 viaparinfo->lvds_setting_info->lcd_panel_vres = 1050;
248 viaparinfo->lvds_setting_info->lcd_panel_id =
249 LCD_PANEL_ID5_1400X1050;
250 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 236 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
251 viaparinfo->lvds_setting_info->LCDDithering = 1; 237 viaparinfo->lvds_setting_info->LCDDithering = 1;
252 break; 238 break;
253 case 0x6: 239 case 0x6:
254 viaparinfo->lvds_setting_info->lcd_panel_hres = 1600; 240 viaparinfo->lvds_setting_info->lcd_panel_hres = 1600;
255 viaparinfo->lvds_setting_info->lcd_panel_vres = 1200; 241 viaparinfo->lvds_setting_info->lcd_panel_vres = 1200;
256 viaparinfo->lvds_setting_info->lcd_panel_id =
257 LCD_PANEL_ID6_1600X1200;
258 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 242 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
259 viaparinfo->lvds_setting_info->LCDDithering = 1; 243 viaparinfo->lvds_setting_info->LCDDithering = 1;
260 break; 244 break;
261 case 0x8: 245 case 0x8:
262 viaparinfo->lvds_setting_info->lcd_panel_hres = 800; 246 viaparinfo->lvds_setting_info->lcd_panel_hres = 800;
263 viaparinfo->lvds_setting_info->lcd_panel_vres = 480; 247 viaparinfo->lvds_setting_info->lcd_panel_vres = 480;
264 viaparinfo->lvds_setting_info->lcd_panel_id =
265 LCD_PANEL_IDA_800X480;
266 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 248 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
267 viaparinfo->lvds_setting_info->LCDDithering = 1; 249 viaparinfo->lvds_setting_info->LCDDithering = 1;
268 break; 250 break;
269 case 0x9: 251 case 0x9:
270 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024; 252 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024;
271 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 253 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
272 viaparinfo->lvds_setting_info->lcd_panel_id =
273 LCD_PANEL_ID2_1024X768;
274 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 254 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
275 viaparinfo->lvds_setting_info->LCDDithering = 1; 255 viaparinfo->lvds_setting_info->LCDDithering = 1;
276 break; 256 break;
277 case 0xA: 257 case 0xA:
278 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024; 258 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024;
279 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 259 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
280 viaparinfo->lvds_setting_info->lcd_panel_id =
281 LCD_PANEL_ID2_1024X768;
282 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 260 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
283 viaparinfo->lvds_setting_info->LCDDithering = 0; 261 viaparinfo->lvds_setting_info->LCDDithering = 0;
284 break; 262 break;
285 case 0xB: 263 case 0xB:
286 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024; 264 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024;
287 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 265 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
288 viaparinfo->lvds_setting_info->lcd_panel_id =
289 LCD_PANEL_ID2_1024X768;
290 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 266 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
291 viaparinfo->lvds_setting_info->LCDDithering = 0; 267 viaparinfo->lvds_setting_info->LCDDithering = 0;
292 break; 268 break;
293 case 0xC: 269 case 0xC:
294 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280; 270 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280;
295 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 271 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
296 viaparinfo->lvds_setting_info->lcd_panel_id =
297 LCD_PANEL_ID3_1280X768;
298 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 272 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
299 viaparinfo->lvds_setting_info->LCDDithering = 0; 273 viaparinfo->lvds_setting_info->LCDDithering = 0;
300 break; 274 break;
301 case 0xD: 275 case 0xD:
302 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280; 276 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280;
303 viaparinfo->lvds_setting_info->lcd_panel_vres = 1024; 277 viaparinfo->lvds_setting_info->lcd_panel_vres = 1024;
304 viaparinfo->lvds_setting_info->lcd_panel_id =
305 LCD_PANEL_ID4_1280X1024;
306 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 278 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
307 viaparinfo->lvds_setting_info->LCDDithering = 0; 279 viaparinfo->lvds_setting_info->LCDDithering = 0;
308 break; 280 break;
309 case 0xE: 281 case 0xE:
310 viaparinfo->lvds_setting_info->lcd_panel_hres = 1400; 282 viaparinfo->lvds_setting_info->lcd_panel_hres = 1400;
311 viaparinfo->lvds_setting_info->lcd_panel_vres = 1050; 283 viaparinfo->lvds_setting_info->lcd_panel_vres = 1050;
312 viaparinfo->lvds_setting_info->lcd_panel_id =
313 LCD_PANEL_ID5_1400X1050;
314 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 284 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
315 viaparinfo->lvds_setting_info->LCDDithering = 0; 285 viaparinfo->lvds_setting_info->LCDDithering = 0;
316 break; 286 break;
317 case 0xF: 287 case 0xF:
318 viaparinfo->lvds_setting_info->lcd_panel_hres = 1600; 288 viaparinfo->lvds_setting_info->lcd_panel_hres = 1600;
319 viaparinfo->lvds_setting_info->lcd_panel_vres = 1200; 289 viaparinfo->lvds_setting_info->lcd_panel_vres = 1200;
320 viaparinfo->lvds_setting_info->lcd_panel_id =
321 LCD_PANEL_ID6_1600X1200;
322 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 290 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
323 viaparinfo->lvds_setting_info->LCDDithering = 0; 291 viaparinfo->lvds_setting_info->LCDDithering = 0;
324 break; 292 break;
325 case 0x10: 293 case 0x10:
326 viaparinfo->lvds_setting_info->lcd_panel_hres = 1366; 294 viaparinfo->lvds_setting_info->lcd_panel_hres = 1366;
327 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 295 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
328 viaparinfo->lvds_setting_info->lcd_panel_id =
329 LCD_PANEL_ID7_1366X768;
330 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 296 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
331 viaparinfo->lvds_setting_info->LCDDithering = 0; 297 viaparinfo->lvds_setting_info->LCDDithering = 0;
332 break; 298 break;
333 case 0x11: 299 case 0x11:
334 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024; 300 viaparinfo->lvds_setting_info->lcd_panel_hres = 1024;
335 viaparinfo->lvds_setting_info->lcd_panel_vres = 600; 301 viaparinfo->lvds_setting_info->lcd_panel_vres = 600;
336 viaparinfo->lvds_setting_info->lcd_panel_id =
337 LCD_PANEL_ID8_1024X600;
338 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 302 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
339 viaparinfo->lvds_setting_info->LCDDithering = 1; 303 viaparinfo->lvds_setting_info->LCDDithering = 1;
340 break; 304 break;
341 case 0x12: 305 case 0x12:
342 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280; 306 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280;
343 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 307 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
344 viaparinfo->lvds_setting_info->lcd_panel_id =
345 LCD_PANEL_ID3_1280X768;
346 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 308 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
347 viaparinfo->lvds_setting_info->LCDDithering = 1; 309 viaparinfo->lvds_setting_info->LCDDithering = 1;
348 break; 310 break;
349 case 0x13: 311 case 0x13:
350 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280; 312 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280;
351 viaparinfo->lvds_setting_info->lcd_panel_vres = 800; 313 viaparinfo->lvds_setting_info->lcd_panel_vres = 800;
352 viaparinfo->lvds_setting_info->lcd_panel_id =
353 LCD_PANEL_ID9_1280X800;
354 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 314 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
355 viaparinfo->lvds_setting_info->LCDDithering = 1; 315 viaparinfo->lvds_setting_info->LCDDithering = 1;
356 break; 316 break;
357 case 0x14: 317 case 0x14:
358 viaparinfo->lvds_setting_info->lcd_panel_hres = 1360; 318 viaparinfo->lvds_setting_info->lcd_panel_hres = 1360;
359 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 319 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
360 viaparinfo->lvds_setting_info->lcd_panel_id =
361 LCD_PANEL_IDB_1360X768;
362 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 320 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
363 viaparinfo->lvds_setting_info->LCDDithering = 0; 321 viaparinfo->lvds_setting_info->LCDDithering = 0;
364 break; 322 break;
365 case 0x15: 323 case 0x15:
366 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280; 324 viaparinfo->lvds_setting_info->lcd_panel_hres = 1280;
367 viaparinfo->lvds_setting_info->lcd_panel_vres = 768; 325 viaparinfo->lvds_setting_info->lcd_panel_vres = 768;
368 viaparinfo->lvds_setting_info->lcd_panel_id =
369 LCD_PANEL_ID3_1280X768;
370 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1; 326 viaparinfo->lvds_setting_info->device_lcd_dualedge = 1;
371 viaparinfo->lvds_setting_info->LCDDithering = 0; 327 viaparinfo->lvds_setting_info->LCDDithering = 0;
372 break; 328 break;
373 case 0x16: 329 case 0x16:
374 viaparinfo->lvds_setting_info->lcd_panel_hres = 480; 330 viaparinfo->lvds_setting_info->lcd_panel_hres = 480;
375 viaparinfo->lvds_setting_info->lcd_panel_vres = 640; 331 viaparinfo->lvds_setting_info->lcd_panel_vres = 640;
376 viaparinfo->lvds_setting_info->lcd_panel_id =
377 LCD_PANEL_IDC_480X640;
378 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 332 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
379 viaparinfo->lvds_setting_info->LCDDithering = 1; 333 viaparinfo->lvds_setting_info->LCDDithering = 1;
380 break; 334 break;
@@ -382,16 +336,12 @@ static void __devinit fp_id_to_vindex(int panel_id)
382 /* OLPC XO-1.5 panel */ 336 /* OLPC XO-1.5 panel */
383 viaparinfo->lvds_setting_info->lcd_panel_hres = 1200; 337 viaparinfo->lvds_setting_info->lcd_panel_hres = 1200;
384 viaparinfo->lvds_setting_info->lcd_panel_vres = 900; 338 viaparinfo->lvds_setting_info->lcd_panel_vres = 900;
385 viaparinfo->lvds_setting_info->lcd_panel_id =
386 LCD_PANEL_IDD_1200X900;
387 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 339 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
388 viaparinfo->lvds_setting_info->LCDDithering = 0; 340 viaparinfo->lvds_setting_info->LCDDithering = 0;
389 break; 341 break;
390 default: 342 default:
391 viaparinfo->lvds_setting_info->lcd_panel_hres = 800; 343 viaparinfo->lvds_setting_info->lcd_panel_hres = 800;
392 viaparinfo->lvds_setting_info->lcd_panel_vres = 600; 344 viaparinfo->lvds_setting_info->lcd_panel_vres = 600;
393 viaparinfo->lvds_setting_info->lcd_panel_id =
394 LCD_PANEL_ID1_800X600;
395 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0; 345 viaparinfo->lvds_setting_info->device_lcd_dualedge = 0;
396 viaparinfo->lvds_setting_info->LCDDithering = 1; 346 viaparinfo->lvds_setting_info->LCDDithering = 1;
397 } 347 }
diff --git a/drivers/video/via/tblDPASetting.c b/drivers/video/via/tblDPASetting.c
index 0c4c8cc712f..73bb554e7c1 100644
--- a/drivers/video/via/tblDPASetting.c
+++ b/drivers/video/via/tblDPASetting.c
@@ -20,17 +20,6 @@
20 */ 20 */
21 21
22#include "global.h" 22#include "global.h"
23/* For VT3324: */
24struct VT1636_DPA_SETTING VT1636_DPA_SETTING_TBL_VT3324[] = {
25 /* Panel ID, CLK_SEL_ST1[09], CLK_SEL_ST2[08] */
26 {LCD_PANEL_ID0_640X480, 0x00, 0x00}, /* For 640x480 */
27 {LCD_PANEL_ID1_800X600, 0x00, 0x00}, /* For 800x600 */
28 {LCD_PANEL_ID2_1024X768, 0x00, 0x00}, /* For 1024x768 */
29 {LCD_PANEL_ID3_1280X768, 0x00, 0x00}, /* For 1280x768 */
30 {LCD_PANEL_ID4_1280X1024, 0x00, 0x00}, /* For 1280x1024 */
31 {LCD_PANEL_ID5_1400X1050, 0x00, 0x00}, /* For 1400x1050 */
32 {LCD_PANEL_ID6_1600X1200, 0x0B, 0x03} /* For 1600x1200 */
33};
34 23
35struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3324[] = { 24struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3324[] = {
36/* ClkRange, DVP0, DVP0DataDriving, DVP0ClockDriving, DVP1, 25/* ClkRange, DVP0, DVP0DataDriving, DVP0ClockDriving, DVP1,
@@ -57,18 +46,6 @@ struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3324[] = {
57 0x00}, 46 0x00},
58}; 47};
59 48
60/* For VT3327: */
61struct VT1636_DPA_SETTING VT1636_DPA_SETTING_TBL_VT3327[] = {
62 /* Panel ID, CLK_SEL_ST1[09], CLK_SEL_ST2[08] */
63 {LCD_PANEL_ID0_640X480, 0x00, 0x00}, /* For 640x480 */
64 {LCD_PANEL_ID1_800X600, 0x00, 0x00}, /* For 800x600 */
65 {LCD_PANEL_ID2_1024X768, 0x00, 0x00}, /* For 1024x768 */
66 {LCD_PANEL_ID3_1280X768, 0x00, 0x00}, /* For 1280x768 */
67 {LCD_PANEL_ID4_1280X1024, 0x00, 0x00}, /* For 1280x1024 */
68 {LCD_PANEL_ID5_1400X1050, 0x00, 0x00}, /* For 1400x1050 */
69 {LCD_PANEL_ID6_1600X1200, 0x00, 0x00} /* For 1600x1200 */
70};
71
72struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3327[] = { 49struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3327[] = {
73/* ClkRange,DVP0, DVP0DataDriving, DVP0ClockDriving, DVP1, 50/* ClkRange,DVP0, DVP0DataDriving, DVP0ClockDriving, DVP1,
74 DVP1Driving, DFPHigh, DFPLow */ 51 DVP1Driving, DFPHigh, DFPLow */
diff --git a/drivers/video/via/tblDPASetting.h b/drivers/video/via/tblDPASetting.h
index b065a83481d..6db61519cb5 100644
--- a/drivers/video/via/tblDPASetting.h
+++ b/drivers/video/via/tblDPASetting.h
@@ -38,9 +38,7 @@ enum DPA_RANGE {
38 DPA_CLK_RANGE_150M 38 DPA_CLK_RANGE_150M
39}; 39};
40 40
41extern struct VT1636_DPA_SETTING VT1636_DPA_SETTING_TBL_VT3324[7];
42extern struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3324[6]; 41extern struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3324[6];
43extern struct VT1636_DPA_SETTING VT1636_DPA_SETTING_TBL_VT3327[7];
44extern struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3327[]; 42extern struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3327[];
45extern struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3364[6]; 43extern struct GFX_DPA_SETTING GFX_DPA_SETTING_TBL_VT3364[6];
46 44
diff --git a/drivers/video/via/viamode.c b/drivers/video/via/viamode.c
index 1f24ee963db..8c5bc41ff6a 100644
--- a/drivers/video/via/viamode.c
+++ b/drivers/video/via/viamode.c
@@ -42,20 +42,6 @@ struct io_reg CN400_ModeXregs[] = { {VIASR, SR10, 0xFF, 0x01},
42{VIACR, CR6A, 0xFF, 0x40}, 42{VIACR, CR6A, 0xFF, 0x40},
43{VIACR, CR6B, 0xFF, 0x00}, 43{VIACR, CR6B, 0xFF, 0x00},
44{VIACR, CR6C, 0xFF, 0x00}, 44{VIACR, CR6C, 0xFF, 0x00},
45{VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
46{VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
47{VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
48{VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
49{VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
50{VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
51{VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
52{VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
53{VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
54{VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
55{VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
56{VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
57{VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
58{VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
59{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */ 45{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
60{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */ 46{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
61{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */ 47{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
@@ -106,20 +92,6 @@ struct io_reg CN700_ModeXregs[] = { {VIASR, SR10, 0xFF, 0x01},
106{VIACR, CR78, 0xFF, 0x00}, /* LCD scaling Factor */ 92{VIACR, CR78, 0xFF, 0x00}, /* LCD scaling Factor */
107{VIACR, CR79, 0xFF, 0x00}, /* LCD scaling Factor */ 93{VIACR, CR79, 0xFF, 0x00}, /* LCD scaling Factor */
108{VIACR, CR9F, 0x03, 0x00}, /* LCD scaling Factor */ 94{VIACR, CR9F, 0x03, 0x00}, /* LCD scaling Factor */
109{VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
110{VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
111{VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
112{VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
113{VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
114{VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
115{VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
116{VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
117{VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
118{VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
119{VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
120{VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
121{VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
122{VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
123{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */ 95{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
124{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */ 96{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
125{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */ 97{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
@@ -163,20 +135,6 @@ struct io_reg KM400_ModeXregs[] = {
163 {VIACR, CR36, 0xFF, 0x01}, /* Power Mangement 3 */ 135 {VIACR, CR36, 0xFF, 0x01}, /* Power Mangement 3 */
164 {VIACR, CR68, 0xFF, 0x67}, /* Default FIFO For IGA2 */ 136 {VIACR, CR68, 0xFF, 0x67}, /* Default FIFO For IGA2 */
165 {VIACR, CR6A, 0x20, 0x20}, /* Extended FIFO On */ 137 {VIACR, CR6A, 0x20, 0x20}, /* Extended FIFO On */
166 {VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
167 {VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
168 {VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
169 {VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
170 {VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
171 {VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
172 {VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
173 {VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
174 {VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
175 {VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
176 {VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
177 {VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
178 {VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
179 {VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
180 {VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */ 138 {VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
181 {VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */ 139 {VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
182 {VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */ 140 {VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
@@ -217,20 +175,6 @@ struct io_reg CX700_ModeXregs[] = { {VIASR, SR10, 0xFF, 0x01},
217{VIACR, CR6A, 0xFF, 0x40}, 175{VIACR, CR6A, 0xFF, 0x40},
218{VIACR, CR6B, 0xFF, 0x00}, 176{VIACR, CR6B, 0xFF, 0x00},
219{VIACR, CR6C, 0xFF, 0x00}, 177{VIACR, CR6C, 0xFF, 0x00},
220{VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
221{VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
222{VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
223{VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
224{VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
225{VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
226{VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
227{VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
228{VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
229{VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
230{VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
231{VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
232{VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
233{VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
234{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */ 178{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
235{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */ 179{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
236{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */ 180{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
@@ -276,20 +220,6 @@ struct io_reg VX855_ModeXregs[] = {
276{VIACR, CR6A, 0xFD, 0x60}, 220{VIACR, CR6A, 0xFD, 0x60},
277{VIACR, CR6B, 0xFF, 0x00}, 221{VIACR, CR6B, 0xFF, 0x00},
278{VIACR, CR6C, 0xFF, 0x00}, 222{VIACR, CR6C, 0xFF, 0x00},
279{VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
280{VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
281{VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
282{VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
283{VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
284{VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
285{VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
286{VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
287{VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
288{VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
289{VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
290{VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
291{VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
292{VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
293{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */ 223{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
294{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */ 224{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
295{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */ 225{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
@@ -324,21 +254,6 @@ struct io_reg CLE266_ModeXregs[] = { {VIASR, SR1E, 0xF0, 0x00},
324{VIAGR, GR20, 0xFF, 0x00}, 254{VIAGR, GR20, 0xFF, 0x00},
325{VIAGR, GR21, 0xFF, 0x00}, 255{VIAGR, GR21, 0xFF, 0x00},
326{VIAGR, GR22, 0xFF, 0x00}, 256{VIAGR, GR22, 0xFF, 0x00},
327 /* LCD Parameters */
328{VIACR, CR7A, 0xFF, 0x01}, /* LCD Parameter 1 */
329{VIACR, CR7B, 0xFF, 0x02}, /* LCD Parameter 2 */
330{VIACR, CR7C, 0xFF, 0x03}, /* LCD Parameter 3 */
331{VIACR, CR7D, 0xFF, 0x04}, /* LCD Parameter 4 */
332{VIACR, CR7E, 0xFF, 0x07}, /* LCD Parameter 5 */
333{VIACR, CR7F, 0xFF, 0x0A}, /* LCD Parameter 6 */
334{VIACR, CR80, 0xFF, 0x0D}, /* LCD Parameter 7 */
335{VIACR, CR81, 0xFF, 0x13}, /* LCD Parameter 8 */
336{VIACR, CR82, 0xFF, 0x16}, /* LCD Parameter 9 */
337{VIACR, CR83, 0xFF, 0x19}, /* LCD Parameter 10 */
338{VIACR, CR84, 0xFF, 0x1C}, /* LCD Parameter 11 */
339{VIACR, CR85, 0xFF, 0x1D}, /* LCD Parameter 12 */
340{VIACR, CR86, 0xFF, 0x1E}, /* LCD Parameter 13 */
341{VIACR, CR87, 0xFF, 0x1F}, /* LCD Parameter 14 */
342 257
343}; 258};
344 259
diff --git a/drivers/video/via/vt1636.c b/drivers/video/via/vt1636.c
index 60e4192c2b3..ee2903b472c 100644
--- a/drivers/video/via/vt1636.c
+++ b/drivers/video/via/vt1636.c
@@ -167,22 +167,6 @@ static int get_clk_range_index(u32 Clk)
167 return DPA_CLK_RANGE_150M; 167 return DPA_CLK_RANGE_150M;
168} 168}
169 169
170static int get_lvds_dpa_setting_index(int panel_size_id,
171 struct VT1636_DPA_SETTING *p_vt1636_dpasetting_tbl,
172 int tbl_size)
173{
174 int i;
175
176 for (i = 0; i < tbl_size; i++) {
177 if (panel_size_id == p_vt1636_dpasetting_tbl->PanelSizeID)
178 return i;
179
180 p_vt1636_dpasetting_tbl++;
181 }
182
183 return 0;
184}
185
186static void set_dpa_vt1636(struct lvds_setting_information 170static void set_dpa_vt1636(struct lvds_setting_information
187 *plvds_setting_info, struct lvds_chip_information *plvds_chip_info, 171 *plvds_setting_info, struct lvds_chip_information *plvds_chip_info,
188 struct VT1636_DPA_SETTING *p_vt1636_dpa_setting) 172 struct VT1636_DPA_SETTING *p_vt1636_dpa_setting)
@@ -206,7 +190,9 @@ void viafb_vt1636_patch_skew_on_vt3324(
206 struct lvds_setting_information *plvds_setting_info, 190 struct lvds_setting_information *plvds_setting_info,
207 struct lvds_chip_information *plvds_chip_info) 191 struct lvds_chip_information *plvds_chip_info)
208{ 192{
209 int index, size; 193 struct VT1636_DPA_SETTING dpa = {0x00, 0x00}, dpa_16x12 = {0x0B, 0x03},
194 *pdpa;
195 int index;
210 196
211 DEBUG_MSG(KERN_INFO "viafb_vt1636_patch_skew_on_vt3324.\n"); 197 DEBUG_MSG(KERN_INFO "viafb_vt1636_patch_skew_on_vt3324.\n");
212 198
@@ -216,19 +202,21 @@ void viafb_vt1636_patch_skew_on_vt3324(
216 &GFX_DPA_SETTING_TBL_VT3324[index]); 202 &GFX_DPA_SETTING_TBL_VT3324[index]);
217 203
218 /* LVDS Transmitter DPA settings: */ 204 /* LVDS Transmitter DPA settings: */
219 size = ARRAY_SIZE(VT1636_DPA_SETTING_TBL_VT3324); 205 if (plvds_setting_info->lcd_panel_hres == 1600 &&
220 index = 206 plvds_setting_info->lcd_panel_vres == 1200)
221 get_lvds_dpa_setting_index(plvds_setting_info->lcd_panel_id, 207 pdpa = &dpa_16x12;
222 VT1636_DPA_SETTING_TBL_VT3324, size); 208 else
223 set_dpa_vt1636(plvds_setting_info, plvds_chip_info, 209 pdpa = &dpa;
224 &VT1636_DPA_SETTING_TBL_VT3324[index]); 210
211 set_dpa_vt1636(plvds_setting_info, plvds_chip_info, pdpa);
225} 212}
226 213
227void viafb_vt1636_patch_skew_on_vt3327( 214void viafb_vt1636_patch_skew_on_vt3327(
228 struct lvds_setting_information *plvds_setting_info, 215 struct lvds_setting_information *plvds_setting_info,
229 struct lvds_chip_information *plvds_chip_info) 216 struct lvds_chip_information *plvds_chip_info)
230{ 217{
231 int index, size; 218 struct VT1636_DPA_SETTING dpa = {0x00, 0x00};
219 int index;
232 220
233 DEBUG_MSG(KERN_INFO "viafb_vt1636_patch_skew_on_vt3327.\n"); 221 DEBUG_MSG(KERN_INFO "viafb_vt1636_patch_skew_on_vt3327.\n");
234 222
@@ -238,12 +226,7 @@ void viafb_vt1636_patch_skew_on_vt3327(
238 &GFX_DPA_SETTING_TBL_VT3327[index]); 226 &GFX_DPA_SETTING_TBL_VT3327[index]);
239 227
240 /* LVDS Transmitter DPA settings: */ 228 /* LVDS Transmitter DPA settings: */
241 size = ARRAY_SIZE(VT1636_DPA_SETTING_TBL_VT3327); 229 set_dpa_vt1636(plvds_setting_info, plvds_chip_info, &dpa);
242 index =
243 get_lvds_dpa_setting_index(plvds_setting_info->lcd_panel_id,
244 VT1636_DPA_SETTING_TBL_VT3327, size);
245 set_dpa_vt1636(plvds_setting_info, plvds_chip_info,
246 &VT1636_DPA_SETTING_TBL_VT3327[index]);
247} 230}
248 231
249void viafb_vt1636_patch_skew_on_vt3364( 232void viafb_vt1636_patch_skew_on_vt3364(