diff options
Diffstat (limited to 'drivers/video/via/lcd.c')
-rw-r--r-- | drivers/video/via/lcd.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/drivers/video/via/lcd.c b/drivers/video/via/lcd.c index 64bc7e763103..6e06981d638b 100644 --- a/drivers/video/via/lcd.c +++ b/drivers/video/via/lcd.c | |||
@@ -48,7 +48,6 @@ static struct _lcd_scaling_factor lcd_scaling_factor_CLE = { | |||
48 | {LCD_VER_SCALING_FACTOR_REG_NUM_CLE, {{CR78, 0, 7}, {CR79, 6, 7} } } | 48 | {LCD_VER_SCALING_FACTOR_REG_NUM_CLE, {{CR78, 0, 7}, {CR79, 6, 7} } } |
49 | }; | 49 | }; |
50 | 50 | ||
51 | static int check_lvds_chip(int device_id_subaddr, int device_id); | ||
52 | static bool lvds_identify_integratedlvds(void); | 51 | static bool lvds_identify_integratedlvds(void); |
53 | static void __devinit fp_id_to_vindex(int panel_id); | 52 | static void __devinit fp_id_to_vindex(int panel_id); |
54 | static int lvds_register_read(int index); | 53 | static int lvds_register_read(int index); |
@@ -84,12 +83,9 @@ static struct display_timing lcd_centering_timging(struct display_timing | |||
84 | mode_crt_reg, | 83 | mode_crt_reg, |
85 | struct display_timing panel_crt_reg); | 84 | struct display_timing panel_crt_reg); |
86 | 85 | ||
87 | static int check_lvds_chip(int device_id_subaddr, int device_id) | 86 | static inline bool check_lvds_chip(int device_id_subaddr, int device_id) |
88 | { | 87 | { |
89 | if (lvds_register_read(device_id_subaddr) == device_id) | 88 | return lvds_register_read(device_id_subaddr) == device_id; |
90 | return OK; | ||
91 | else | ||
92 | return FAIL; | ||
93 | } | 89 | } |
94 | 90 | ||
95 | void __devinit viafb_init_lcd_size(void) | 91 | void __devinit viafb_init_lcd_size(void) |
@@ -150,7 +146,7 @@ static bool lvds_identify_integratedlvds(void) | |||
150 | return true; | 146 | return true; |
151 | } | 147 | } |
152 | 148 | ||
153 | int __devinit viafb_lvds_trasmitter_identify(void) | 149 | bool __devinit viafb_lvds_trasmitter_identify(void) |
154 | { | 150 | { |
155 | if (viafb_lvds_identify_vt1636(VIA_PORT_31)) { | 151 | if (viafb_lvds_identify_vt1636(VIA_PORT_31)) { |
156 | viaparinfo->chip_info->lvds_chip_info.i2c_port = VIA_PORT_31; | 152 | viaparinfo->chip_info->lvds_chip_info.i2c_port = VIA_PORT_31; |
@@ -175,20 +171,20 @@ int __devinit viafb_lvds_trasmitter_identify(void) | |||
175 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr = | 171 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr = |
176 | VT1631_LVDS_I2C_ADDR; | 172 | VT1631_LVDS_I2C_ADDR; |
177 | 173 | ||
178 | if (check_lvds_chip(VT1631_DEVICE_ID_REG, VT1631_DEVICE_ID) != FAIL) { | 174 | if (check_lvds_chip(VT1631_DEVICE_ID_REG, VT1631_DEVICE_ID)) { |
179 | DEBUG_MSG(KERN_INFO "\n VT1631 LVDS ! \n"); | 175 | DEBUG_MSG(KERN_INFO "\n VT1631 LVDS ! \n"); |
180 | DEBUG_MSG(KERN_INFO "\n %2d", | 176 | DEBUG_MSG(KERN_INFO "\n %2d", |
181 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_name); | 177 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_name); |
182 | DEBUG_MSG(KERN_INFO "\n %2d", | 178 | DEBUG_MSG(KERN_INFO "\n %2d", |
183 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_name); | 179 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_name); |
184 | return OK; | 180 | return true; |
185 | } | 181 | } |
186 | 182 | ||
187 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_name = | 183 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_name = |
188 | NON_LVDS_TRANSMITTER; | 184 | NON_LVDS_TRANSMITTER; |
189 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr = | 185 | viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr = |
190 | VT1631_LVDS_I2C_ADDR; | 186 | VT1631_LVDS_I2C_ADDR; |
191 | return FAIL; | 187 | return false; |
192 | } | 188 | } |
193 | 189 | ||
194 | static void __devinit fp_id_to_vindex(int panel_id) | 190 | static void __devinit fp_id_to_vindex(int panel_id) |
@@ -562,7 +558,7 @@ void viafb_lcd_set_mode(struct crt_mode_table *mode_crt_table, | |||
562 | int set_vres = plvds_setting_info->v_active; | 558 | int set_vres = plvds_setting_info->v_active; |
563 | int panel_hres = plvds_setting_info->lcd_panel_hres; | 559 | int panel_hres = plvds_setting_info->lcd_panel_hres; |
564 | int panel_vres = plvds_setting_info->lcd_panel_vres; | 560 | int panel_vres = plvds_setting_info->lcd_panel_vres; |
565 | u32 pll_D_N, clock; | 561 | u32 clock; |
566 | struct display_timing mode_crt_reg, panel_crt_reg; | 562 | struct display_timing mode_crt_reg, panel_crt_reg; |
567 | struct crt_mode_table *panel_crt_table = NULL; | 563 | struct crt_mode_table *panel_crt_table = NULL; |
568 | struct VideoModeTable *vmode_tbl = viafb_get_mode(panel_hres, | 564 | struct VideoModeTable *vmode_tbl = viafb_get_mode(panel_hres, |
@@ -613,10 +609,7 @@ void viafb_lcd_set_mode(struct crt_mode_table *mode_crt_table, | |||
613 | viafb_load_FIFO_reg(set_iga, set_hres, set_vres); | 609 | viafb_load_FIFO_reg(set_iga, set_hres, set_vres); |
614 | 610 | ||
615 | fill_lcd_format(); | 611 | fill_lcd_format(); |
616 | 612 | viafb_set_vclock(clock, set_iga); | |
617 | pll_D_N = viafb_get_clk_value(clock); | ||
618 | DEBUG_MSG(KERN_INFO "PLL=0x%x", pll_D_N); | ||
619 | viafb_set_vclock(pll_D_N, set_iga); | ||
620 | lcd_patch_skew(plvds_setting_info, plvds_chip_info); | 613 | lcd_patch_skew(plvds_setting_info, plvds_chip_info); |
621 | 614 | ||
622 | /* If K8M800, enable LCD Prefetch Mode. */ | 615 | /* If K8M800, enable LCD Prefetch Mode. */ |