viafb: unify output path configuration
authorFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Sun, 8 Aug 2010 02:14:59 +0000 (02:14 +0000)
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Fri, 24 Sep 2010 02:14:36 +0000 (02:14 +0000)
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 <FlorianSchandinat@gmx.de>
Cc: Joseph Chan <JosephChan@via.com.tw>
drivers/video/via/dvi.c
drivers/video/via/hw.c
drivers/video/via/lcd.c

index 39b040bb3817f775cc45c4d73407464e366c296c..92a2027593d335a6416d994f444f511bc4d9c734 100644 (file)
@@ -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 */
index 63b672260479e74b4a2912e99b9d90c823122dac..a3db804175935615a6c1b1c8a72f04cb616322e8 100644 (file)
@@ -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)
index bda124682dab65ed96e0fe78955ef4c5eed0cb04..e48117e4010297fa3bc77453b3b0e13dd0079853 100644 (file)
@@ -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. */