aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/via/lcd.c
diff options
context:
space:
mode:
authorFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2010-08-11 18:22:54 -0400
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2010-09-23 22:14:58 -0400
commitcd7e9103e983ff0f518ac0e85cee265027ccbfa4 (patch)
tree3a87b00683aee3adc2c4670b0cb85a15b5d7dbb0 /drivers/video/via/lcd.c
parentbc6848875152f3df860d0f54a2323cc7615527d9 (diff)
viafb: merge the remaining output path with enable functions
This patch merges the remaining functionality of the output path function in the associated enabling functions. This is very natural as most of the remaining code does actually enable the device. Just some more or less intelligent code merge. If no stupid mistakes occured there should be no regressions. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw>
Diffstat (limited to 'drivers/video/via/lcd.c')
-rw-r--r--drivers/video/via/lcd.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/video/via/lcd.c b/drivers/video/via/lcd.c
index c7de16430867..e99f933faf19 100644
--- a/drivers/video/via/lcd.c
+++ b/drivers/video/via/lcd.c
@@ -833,8 +833,36 @@ void viafb_lcd_disable(void)
833 833
834} 834}
835 835
836static void set_lcd_output_path(int set_iga, int output_interface)
837{
838 switch (output_interface) {
839 case INTERFACE_DFP:
840 if ((UNICHROME_K8M890 == viaparinfo->chip_info->gfx_chip_name)
841 || (UNICHROME_P4M890 ==
842 viaparinfo->chip_info->gfx_chip_name))
843 viafb_write_reg_mask(CR97, VIACR, 0x84,
844 BIT7 + BIT2 + BIT1 + BIT0);
845 case INTERFACE_DVP0:
846 case INTERFACE_DVP1:
847 case INTERFACE_DFP_HIGH:
848 case INTERFACE_DFP_LOW:
849 if (set_iga == IGA2)
850 viafb_write_reg(CR91, VIACR, 0x00);
851 break;
852 }
853}
854
836void viafb_lcd_enable(void) 855void viafb_lcd_enable(void)
837{ 856{
857 viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3);
858 viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3);
859 set_lcd_output_path(viaparinfo->lvds_setting_info->iga_path,
860 viaparinfo->chip_info->lvds_chip_info.output_interface);
861 if (viafb_LCD2_ON)
862 set_lcd_output_path(viaparinfo->lvds_setting_info2->iga_path,
863 viaparinfo->chip_info->
864 lvds_chip_info2.output_interface);
865
838 if (viaparinfo->chip_info->gfx_chip_name == UNICHROME_CLE266) { 866 if (viaparinfo->chip_info->gfx_chip_name == UNICHROME_CLE266) {
839 /* DI1 pad on */ 867 /* DI1 pad on */
840 viafb_write_reg_mask(SR1E, VIASR, 0x30, 0x30); 868 viafb_write_reg_mask(SR1E, VIASR, 0x30, 0x30);