diff options
| -rw-r--r-- | drivers/video/via/hw.c | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c index a3db80417593..1ce2c211bd1d 100644 --- a/drivers/video/via/hw.c +++ b/drivers/video/via/hw.c | |||
| @@ -733,7 +733,6 @@ static void set_display_channel(void); | |||
| 733 | static void device_off(void); | 733 | static void device_off(void); |
| 734 | static void device_on(void); | 734 | static void device_on(void); |
| 735 | static void enable_second_display_channel(void); | 735 | static void enable_second_display_channel(void); |
| 736 | static void disable_second_display_channel(void); | ||
| 737 | 736 | ||
| 738 | void viafb_lock_crt(void) | 737 | void viafb_lock_crt(void) |
| 739 | { | 738 | { |
| @@ -856,6 +855,9 @@ void viafb_set_output_path(int device, int set_iga, int output_interface) | |||
| 856 | set_lcd_output_path(set_iga, output_interface); | 855 | set_lcd_output_path(set_iga, output_interface); |
| 857 | break; | 856 | break; |
| 858 | } | 857 | } |
| 858 | |||
| 859 | if (set_iga == IGA2) | ||
| 860 | enable_second_display_channel(); | ||
| 859 | } | 861 | } |
| 860 | 862 | ||
| 861 | static void set_crt_output_path(int set_iga) | 863 | static void set_crt_output_path(int set_iga) |
| @@ -867,7 +869,6 @@ static void set_crt_output_path(int set_iga) | |||
| 867 | viafb_write_reg_mask(SR16, VIASR, 0x00, BIT6); | 869 | viafb_write_reg_mask(SR16, VIASR, 0x00, BIT6); |
| 868 | break; | 870 | break; |
| 869 | case IGA2: | 871 | case IGA2: |
| 870 | viafb_write_reg_mask(CR6A, VIACR, 0xC0, BIT6 + BIT7); | ||
| 871 | viafb_write_reg_mask(SR16, VIASR, 0x40, BIT6); | 872 | viafb_write_reg_mask(SR16, VIASR, 0x40, BIT6); |
| 872 | break; | 873 | break; |
| 873 | } | 874 | } |
| @@ -1017,7 +1018,6 @@ static void set_dvi_output_path(int set_iga, int output_interface) | |||
| 1017 | } | 1018 | } |
| 1018 | 1019 | ||
| 1019 | if (set_iga == IGA2) { | 1020 | if (set_iga == IGA2) { |
| 1020 | enable_second_display_channel(); | ||
| 1021 | /* Disable LCD Scaling */ | 1021 | /* Disable LCD Scaling */ |
| 1022 | viafb_write_reg_mask(CR79, VIACR, 0x00, BIT0); | 1022 | viafb_write_reg_mask(CR79, VIACR, 0x00, BIT0); |
| 1023 | } | 1023 | } |
| @@ -1028,21 +1028,9 @@ static void set_lcd_output_path(int set_iga, int output_interface) | |||
| 1028 | DEBUG_MSG(KERN_INFO | 1028 | DEBUG_MSG(KERN_INFO |
| 1029 | "set_lcd_output_path, iga:%d,out_interface:%d\n", | 1029 | "set_lcd_output_path, iga:%d,out_interface:%d\n", |
| 1030 | set_iga, output_interface); | 1030 | set_iga, output_interface); |
| 1031 | switch (set_iga) { | ||
| 1032 | case IGA1: | ||
| 1033 | viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3); | ||
| 1034 | viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3); | ||
| 1035 | 1031 | ||
| 1036 | disable_second_display_channel(); | 1032 | viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3); |
| 1037 | break; | 1033 | viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3); |
| 1038 | |||
| 1039 | case IGA2: | ||
| 1040 | viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3); | ||
| 1041 | viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3); | ||
| 1042 | |||
| 1043 | enable_second_display_channel(); | ||
| 1044 | break; | ||
| 1045 | } | ||
| 1046 | 1034 | ||
| 1047 | switch (output_interface) { | 1035 | switch (output_interface) { |
| 1048 | case INTERFACE_DVP0: | 1036 | case INTERFACE_DVP0: |
| @@ -2480,10 +2468,6 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp, | |||
| 2480 | viafb_DeviceStatus = CRT_Device; | 2468 | viafb_DeviceStatus = CRT_Device; |
| 2481 | } | 2469 | } |
| 2482 | device_on(); | 2470 | device_on(); |
| 2483 | |||
| 2484 | if (viafb_SAMM_ON == 1) | ||
| 2485 | viafb_write_reg_mask(CR6A, VIACR, 0xC0, BIT6 + BIT7); | ||
| 2486 | |||
| 2487 | device_screen_on(); | 2471 | device_screen_on(); |
| 2488 | return 1; | 2472 | return 1; |
| 2489 | } | 2473 | } |
| @@ -2557,15 +2541,6 @@ static void enable_second_display_channel(void) | |||
| 2557 | viafb_write_reg_mask(CR6A, VIACR, BIT6, BIT6); | 2541 | viafb_write_reg_mask(CR6A, VIACR, BIT6, BIT6); |
| 2558 | } | 2542 | } |
| 2559 | 2543 | ||
| 2560 | static void disable_second_display_channel(void) | ||
| 2561 | { | ||
| 2562 | /* to disable second display channel. */ | ||
| 2563 | viafb_write_reg_mask(CR6A, VIACR, 0x00, BIT6); | ||
| 2564 | viafb_write_reg_mask(CR6A, VIACR, 0x00, BIT7); | ||
| 2565 | viafb_write_reg_mask(CR6A, VIACR, BIT6, BIT6); | ||
| 2566 | } | ||
| 2567 | |||
| 2568 | |||
| 2569 | void viafb_set_dpa_gfx(int output_interface, struct GFX_DPA_SETTING\ | 2544 | void viafb_set_dpa_gfx(int output_interface, struct GFX_DPA_SETTING\ |
| 2570 | *p_gfx_dpa_setting) | 2545 | *p_gfx_dpa_setting) |
| 2571 | { | 2546 | { |
