diff options
author | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2011-03-22 16:33:20 -0400 |
---|---|---|
committer | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2011-03-23 09:04:35 -0400 |
commit | c91faa61697a60ee5cc653db9b6fd3c7049890a6 (patch) | |
tree | 77c42ff713288a401dde693049a3dd19fb5f9728 /drivers/video/via/dvi.c | |
parent | 0523656eed6941a1a0e6b8de36ca73f44d2142c0 (diff) |
viafb: remove unused max_hres/vres
This patch removes the max_hres and max_vres which are not used at
the moment. In general they could be useful but it would be better
to get them via any standard EDID implementation and not the buggy
incomplete one currently used which is also removed as far as
possible.
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Diffstat (limited to 'drivers/video/via/dvi.c')
-rw-r--r-- | drivers/video/via/dvi.c | 138 |
1 files changed, 3 insertions, 135 deletions
diff --git a/drivers/video/via/dvi.c b/drivers/video/via/dvi.c index 41ca198b5098..3dbcd7743f14 100644 --- a/drivers/video/via/dvi.c +++ b/drivers/video/via/dvi.c | |||
@@ -28,9 +28,6 @@ static int tmds_register_read_bytes(int index, u8 *buff, int buff_len); | |||
28 | static void __devinit dvi_get_panel_size_from_DDCv1( | 28 | static void __devinit dvi_get_panel_size_from_DDCv1( |
29 | struct tmds_chip_information *tmds_chip, | 29 | struct tmds_chip_information *tmds_chip, |
30 | struct tmds_setting_information *tmds_setting); | 30 | struct tmds_setting_information *tmds_setting); |
31 | static void __devinit dvi_get_panel_size_from_DDCv2( | ||
32 | struct tmds_chip_information *tmds_chip, | ||
33 | struct tmds_setting_information *tmds_setting); | ||
34 | static int viafb_dvi_query_EDID(void); | 31 | static int viafb_dvi_query_EDID(void); |
35 | 32 | ||
36 | static int check_tmds_chip(int device_id_subaddr, int device_id) | 33 | static int check_tmds_chip(int device_id_subaddr, int device_id) |
@@ -47,17 +44,8 @@ void __devinit viafb_init_dvi_size(struct tmds_chip_information *tmds_chip, | |||
47 | DEBUG_MSG(KERN_INFO "viafb_init_dvi_size()\n"); | 44 | DEBUG_MSG(KERN_INFO "viafb_init_dvi_size()\n"); |
48 | 45 | ||
49 | viafb_dvi_sense(); | 46 | viafb_dvi_sense(); |
50 | switch (viafb_dvi_query_EDID()) { | 47 | if (viafb_dvi_query_EDID() == 1) |
51 | case 1: | ||
52 | dvi_get_panel_size_from_DDCv1(tmds_chip, tmds_setting); | 48 | dvi_get_panel_size_from_DDCv1(tmds_chip, tmds_setting); |
53 | break; | ||
54 | case 2: | ||
55 | dvi_get_panel_size_from_DDCv2(tmds_chip, tmds_setting); | ||
56 | break; | ||
57 | default: | ||
58 | printk(KERN_WARNING "viafb_init_dvi_size: DVI panel size undetected!\n"); | ||
59 | break; | ||
60 | } | ||
61 | 49 | ||
62 | return; | 50 | return; |
63 | } | 51 | } |
@@ -306,12 +294,7 @@ static int viafb_dvi_query_EDID(void) | |||
306 | return EDID_VERSION_1; /* Found EDID1 Table */ | 294 | return EDID_VERSION_1; /* Found EDID1 Table */ |
307 | } | 295 | } |
308 | 296 | ||
309 | data0 = (u8) tmds_register_read(0x00); | 297 | return false; |
310 | viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr = restore; | ||
311 | if (data0 == 0x20) | ||
312 | return EDID_VERSION_2; /* Found EDID2 Table */ | ||
313 | else | ||
314 | return false; | ||
315 | } | 298 | } |
316 | 299 | ||
317 | /* Get Panel Size Using EDID1 Table */ | 300 | /* Get Panel Size Using EDID1 Table */ |
@@ -319,50 +302,15 @@ static void __devinit dvi_get_panel_size_from_DDCv1( | |||
319 | struct tmds_chip_information *tmds_chip, | 302 | struct tmds_chip_information *tmds_chip, |
320 | struct tmds_setting_information *tmds_setting) | 303 | struct tmds_setting_information *tmds_setting) |
321 | { | 304 | { |
322 | int i, max_h = 0, tmp, restore; | 305 | int i, restore; |
323 | unsigned char rData; | ||
324 | unsigned char EDID_DATA[18]; | 306 | unsigned char EDID_DATA[18]; |
325 | 307 | ||
326 | DEBUG_MSG(KERN_INFO "\n dvi_get_panel_size_from_DDCv1 \n"); | 308 | DEBUG_MSG(KERN_INFO "\n dvi_get_panel_size_from_DDCv1 \n"); |
327 | 309 | ||
328 | restore = tmds_chip->tmds_chip_slave_addr; | 310 | restore = tmds_chip->tmds_chip_slave_addr; |
329 | tmds_chip->tmds_chip_slave_addr = 0xA0; | 311 | tmds_chip->tmds_chip_slave_addr = 0xA0; |
330 | |||
331 | rData = tmds_register_read(0x23); | ||
332 | if (rData & 0x3C) | ||
333 | max_h = 640; | ||
334 | if (rData & 0xC0) | ||
335 | max_h = 720; | ||
336 | if (rData & 0x03) | ||
337 | max_h = 800; | ||
338 | |||
339 | rData = tmds_register_read(0x24); | ||
340 | if (rData & 0xC0) | ||
341 | max_h = 800; | ||
342 | if (rData & 0x1E) | ||
343 | max_h = 1024; | ||
344 | if (rData & 0x01) | ||
345 | max_h = 1280; | ||
346 | |||
347 | for (i = 0x25; i < 0x6D; i++) { | 312 | for (i = 0x25; i < 0x6D; i++) { |
348 | switch (i) { | 313 | switch (i) { |
349 | case 0x26: | ||
350 | case 0x28: | ||
351 | case 0x2A: | ||
352 | case 0x2C: | ||
353 | case 0x2E: | ||
354 | case 0x30: | ||
355 | case 0x32: | ||
356 | case 0x34: | ||
357 | rData = tmds_register_read(i); | ||
358 | if (rData == 1) | ||
359 | break; | ||
360 | /* data = (data + 31) * 8 */ | ||
361 | tmp = (rData + 31) << 3; | ||
362 | if (tmp > max_h) | ||
363 | max_h = tmp; | ||
364 | break; | ||
365 | |||
366 | case 0x36: | 314 | case 0x36: |
367 | case 0x48: | 315 | case 0x48: |
368 | case 0x5A: | 316 | case 0x5A: |
@@ -383,91 +331,11 @@ static void __devinit dvi_get_panel_size_from_DDCv1( | |||
383 | } | 331 | } |
384 | } | 332 | } |
385 | 333 | ||
386 | tmds_setting->max_hres = max_h; | ||
387 | switch (max_h) { | ||
388 | case 640: | ||
389 | tmds_setting->max_vres = 480; | ||
390 | break; | ||
391 | case 800: | ||
392 | tmds_setting->max_vres = 600; | ||
393 | break; | ||
394 | case 1024: | ||
395 | tmds_setting->max_vres = 768; | ||
396 | break; | ||
397 | case 1280: | ||
398 | tmds_setting->max_vres = 1024; | ||
399 | break; | ||
400 | case 1400: | ||
401 | tmds_setting->max_vres = 1050; | ||
402 | break; | ||
403 | case 1440: | ||
404 | tmds_setting->max_vres = 1050; | ||
405 | break; | ||
406 | case 1600: | ||
407 | tmds_setting->max_vres = 1200; | ||
408 | break; | ||
409 | case 1920: | ||
410 | tmds_setting->max_vres = 1080; | ||
411 | break; | ||
412 | default: | ||
413 | DEBUG_MSG(KERN_INFO "Unknown panel size max resolution = %d ! " | ||
414 | "set default panel size.\n", max_h); | ||
415 | break; | ||
416 | } | ||
417 | |||
418 | DEBUG_MSG(KERN_INFO "DVI max pixelclock = %d\n", | 334 | DEBUG_MSG(KERN_INFO "DVI max pixelclock = %d\n", |
419 | tmds_setting->max_pixel_clock); | 335 | tmds_setting->max_pixel_clock); |
420 | tmds_chip->tmds_chip_slave_addr = restore; | 336 | tmds_chip->tmds_chip_slave_addr = restore; |
421 | } | 337 | } |
422 | 338 | ||
423 | /* Get Panel Size Using EDID2 Table */ | ||
424 | static void __devinit dvi_get_panel_size_from_DDCv2( | ||
425 | struct tmds_chip_information *tmds_chip, | ||
426 | struct tmds_setting_information *tmds_setting) | ||
427 | { | ||
428 | int restore; | ||
429 | unsigned char R_Buffer[2]; | ||
430 | |||
431 | DEBUG_MSG(KERN_INFO "\n dvi_get_panel_size_from_DDCv2 \n"); | ||
432 | |||
433 | restore = tmds_chip->tmds_chip_slave_addr; | ||
434 | tmds_chip->tmds_chip_slave_addr = 0xA2; | ||
435 | |||
436 | /* Horizontal: 0x76, 0x77 */ | ||
437 | tmds_register_read_bytes(0x76, R_Buffer, 2); | ||
438 | tmds_setting->max_hres = R_Buffer[0] + (R_Buffer[1] << 8); | ||
439 | |||
440 | switch (tmds_setting->max_hres) { | ||
441 | case 640: | ||
442 | tmds_setting->max_vres = 480; | ||
443 | break; | ||
444 | case 800: | ||
445 | tmds_setting->max_vres = 600; | ||
446 | break; | ||
447 | case 1024: | ||
448 | tmds_setting->max_vres = 768; | ||
449 | break; | ||
450 | case 1280: | ||
451 | tmds_setting->max_vres = 1024; | ||
452 | break; | ||
453 | case 1400: | ||
454 | tmds_setting->max_vres = 1050; | ||
455 | break; | ||
456 | case 1440: | ||
457 | tmds_setting->max_vres = 1050; | ||
458 | break; | ||
459 | case 1600: | ||
460 | tmds_setting->max_vres = 1200; | ||
461 | break; | ||
462 | default: | ||
463 | DEBUG_MSG(KERN_INFO "Unknown panel size max resolution = %d! " | ||
464 | "set default panel size.\n", tmds_setting->max_hres); | ||
465 | break; | ||
466 | } | ||
467 | |||
468 | tmds_chip->tmds_chip_slave_addr = restore; | ||
469 | } | ||
470 | |||
471 | /* If Disable DVI, turn off pad */ | 339 | /* If Disable DVI, turn off pad */ |
472 | void viafb_dvi_disable(void) | 340 | void viafb_dvi_disable(void) |
473 | { | 341 | { |