From d5cc383bac979cefe8a25f4dde04e1df37f5a4a4 Mon Sep 17 00:00:00 2001 From: Florian Tobias Schandinat Date: Wed, 28 Jul 2010 01:11:41 +0000 Subject: [PATCH] --- yaml --- r: 218746 b: refs/heads/master c: b002741d174a32f8162b2110ad9757b6fb6afcc3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/video/via/hw.c | 35 +++++------------------------------ 2 files changed, 6 insertions(+), 31 deletions(-) diff --git a/[refs] b/[refs] index d4a2f009f933..70af1ee6a9f2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 414d3ce1b34384dd42e31536075583b9edb3cab6 +refs/heads/master: b002741d174a32f8162b2110ad9757b6fb6afcc3 diff --git a/trunk/drivers/video/via/hw.c b/trunk/drivers/video/via/hw.c index a3db80417593..1ce2c211bd1d 100644 --- a/trunk/drivers/video/via/hw.c +++ b/trunk/drivers/video/via/hw.c @@ -733,7 +733,6 @@ static void set_display_channel(void); static void device_off(void); static void device_on(void); static void enable_second_display_channel(void); -static void disable_second_display_channel(void); void viafb_lock_crt(void) { @@ -856,6 +855,9 @@ void viafb_set_output_path(int device, int set_iga, int output_interface) set_lcd_output_path(set_iga, output_interface); break; } + + if (set_iga == IGA2) + enable_second_display_channel(); } static void set_crt_output_path(int set_iga) @@ -867,7 +869,6 @@ static void set_crt_output_path(int set_iga) viafb_write_reg_mask(SR16, VIASR, 0x00, BIT6); break; case IGA2: - viafb_write_reg_mask(CR6A, VIACR, 0xC0, BIT6 + BIT7); viafb_write_reg_mask(SR16, VIASR, 0x40, BIT6); break; } @@ -1017,7 +1018,6 @@ static void set_dvi_output_path(int set_iga, int output_interface) } if (set_iga == IGA2) { - enable_second_display_channel(); /* Disable LCD Scaling */ viafb_write_reg_mask(CR79, VIACR, 0x00, BIT0); } @@ -1028,21 +1028,9 @@ static void set_lcd_output_path(int set_iga, int output_interface) DEBUG_MSG(KERN_INFO "set_lcd_output_path, iga:%d,out_interface:%d\n", set_iga, output_interface); - switch (set_iga) { - case IGA1: - viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3); - viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3); - disable_second_display_channel(); - break; - - case IGA2: - viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3); - viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3); - - enable_second_display_channel(); - break; - } + viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3); + viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3); switch (output_interface) { case INTERFACE_DVP0: @@ -2480,10 +2468,6 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp, viafb_DeviceStatus = CRT_Device; } device_on(); - - if (viafb_SAMM_ON == 1) - viafb_write_reg_mask(CR6A, VIACR, 0xC0, BIT6 + BIT7); - device_screen_on(); return 1; } @@ -2557,15 +2541,6 @@ static void enable_second_display_channel(void) viafb_write_reg_mask(CR6A, VIACR, BIT6, BIT6); } -static void disable_second_display_channel(void) -{ - /* to disable second display channel. */ - viafb_write_reg_mask(CR6A, VIACR, 0x00, BIT6); - viafb_write_reg_mask(CR6A, VIACR, 0x00, BIT7); - viafb_write_reg_mask(CR6A, VIACR, BIT6, BIT6); -} - - void viafb_set_dpa_gfx(int output_interface, struct GFX_DPA_SETTING\ *p_gfx_dpa_setting) {