From 414d3ce1b34384dd42e31536075583b9edb3cab6 Mon Sep 17 00:00:00 2001 From: Florian Tobias Schandinat Date: Sun, 8 Aug 2010 02:14:59 +0000 Subject: [PATCH] viafb: unify output path configuration Move all output path routing directly in the viafb_setmode. This gives a better overview and allows to factor similar parts out. Signed-off-by: Florian Tobias Schandinat Cc: Joseph Chan --- drivers/video/via/dvi.c | 2 -- drivers/video/via/hw.c | 19 +++++++++++++++++-- drivers/video/via/lcd.c | 3 --- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/video/via/dvi.c b/drivers/video/via/dvi.c index 39b040b..92a2027 100644 --- a/drivers/video/via/dvi.c +++ b/drivers/video/via/dvi.c @@ -208,8 +208,6 @@ void viafb_dvi_set_mode(struct VideoModeTable *mode, int mode_bpp, } } viafb_fill_crtc_timing(pDviTiming, mode, mode_bpp / 8, set_iga); - viafb_set_output_path(DEVICE_DVI, set_iga, - viaparinfo->chip_info->tmds_chip_info.output_interface); } /* Sense DVI Connector */ diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c index 63b67226..a3db804 100644 --- a/drivers/video/via/hw.c +++ b/drivers/video/via/hw.c @@ -2377,8 +2377,6 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp, viaparinfo->crt_setting_info->iga_path); } - set_crt_output_path(viaparinfo->crt_setting_info->iga_path); - /* Patch if set_hres is not 8 alignment (1366) to viafb_setmode to 8 alignment (1368),there is several pixels (2 pixels) on right side of screen. */ @@ -2388,6 +2386,9 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp, viafb_read_reg(VIACR, CR02) - 1); viafb_lock_crt(); } + + viafb_set_output_path(DEVICE_CRT, + viaparinfo->crt_setting_info->iga_path, 0); } if (viafb_DVI_ON) { @@ -2407,6 +2408,10 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp, video_bpp, viaparinfo-> tmds_setting_info->iga_path); } + + viafb_set_output_path(DEVICE_DVI, + viaparinfo->tmds_setting_info->iga_path, + viaparinfo->chip_info->tmds_chip_info.output_interface); } if (viafb_LCD_ON) { @@ -2427,6 +2432,11 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp, lvds_setting_info, &viaparinfo->chip_info->lvds_chip_info); } + + viafb_set_output_path(DEVICE_LCD, + viaparinfo->lvds_setting_info->iga_path, + viaparinfo->chip_info-> + lvds_chip_info.output_interface); } if (viafb_LCD2_ON) { if (viafb_SAMM_ON && @@ -2446,6 +2456,11 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp, lvds_setting_info2, &viaparinfo->chip_info->lvds_chip_info2); } + + viafb_set_output_path(DEVICE_LCD, + viaparinfo->lvds_setting_info2->iga_path, + viaparinfo->chip_info-> + lvds_chip_info2.output_interface); } if ((viaparinfo->chip_info->gfx_chip_name == UNICHROME_CX700) diff --git a/drivers/video/via/lcd.c b/drivers/video/via/lcd.c index bda1246..e48117e 100644 --- a/drivers/video/via/lcd.c +++ b/drivers/video/via/lcd.c @@ -661,9 +661,6 @@ void viafb_lcd_set_mode(struct crt_mode_table *mode_crt_table, pll_D_N = viafb_get_clk_value(panel_crt_table[0].clk); DEBUG_MSG(KERN_INFO "PLL=0x%x", pll_D_N); viafb_set_vclock(pll_D_N, set_iga); - - viafb_set_output_path(DEVICE_LCD, set_iga, - plvds_chip_info->output_interface); lcd_patch_skew(plvds_setting_info, plvds_chip_info); /* If K8M800, enable LCD Prefetch Mode. */ -- 2.7.4