lcd: unify lcd driver frame_rate change function [1/1]

PD#SWPL-4680

Problem:
unify lcd driver frame_rate change function

Solution:
create a unified api(lcd_clk_change) to management the function

Verify:
verify by t962x2-r311

Change-Id: I1ab378aa2556db0636aabe8c20f3b97845b8184f
Signed-off-by: Shaochan Liu <shaochan.liu@amlogic.com>
This commit is contained in:
Shaochan Liu
2019-02-20 14:55:29 +08:00
committed by Jianxin Pan
parent 204e56621c
commit 0922a63e68
5 changed files with 21 additions and 55 deletions

View File

@@ -1005,6 +1005,21 @@ int lcd_vmode_change(struct lcd_config_s *pconf)
}
#endif
void lcd_clk_change(struct lcd_config_s *pconf)
{
switch (pconf->lcd_timing.clk_change) {
case LCD_CLK_PLL_CHANGE:
lcd_clk_generate_parameter(pconf);
lcd_clk_set(pconf);
break;
case LCD_CLK_FRAC_UPDATE:
lcd_clk_update(pconf);
break;
default:
break;
}
}
void lcd_venc_change(struct lcd_config_s *pconf)
{
unsigned int htotal, vtotal, frame_rate;

View File

@@ -70,6 +70,7 @@ extern int lcd_vlock_param_load_from_unifykey(struct lcd_config_s *pconf,
extern void lcd_optical_vinfo_update(void);
extern void lcd_timing_init_config(struct lcd_config_s *pconf);
extern int lcd_vmode_change(struct lcd_config_s *pconf);
extern void lcd_clk_change(struct lcd_config_s *pconf);
extern void lcd_venc_change(struct lcd_config_s *pconf);
extern void lcd_if_enable_retry(struct lcd_config_s *pconf);

View File

@@ -192,17 +192,7 @@ static int lcd_framerate_automation_set_mode(void)
#endif
/* change clk parameter */
switch (lcd_drv->lcd_config->lcd_timing.clk_change) {
case LCD_CLK_PLL_CHANGE:
lcd_clk_generate_parameter(lcd_drv->lcd_config);
lcd_clk_set(lcd_drv->lcd_config);
break;
case LCD_CLK_FRAC_UPDATE:
lcd_clk_update(lcd_drv->lcd_config);
break;
default:
break;
}
lcd_clk_change(lcd_drv->lcd_config);
lcd_tablet_config_post_update(lcd_drv->lcd_config);
lcd_venc_change(lcd_drv->lcd_config);
@@ -1268,17 +1258,7 @@ static void lcd_set_vinfo(unsigned int sync_duration)
#endif
/* change clk parameter */
switch (lcd_drv->lcd_config->lcd_timing.clk_change) {
case LCD_CLK_PLL_CHANGE:
lcd_clk_generate_parameter(lcd_drv->lcd_config);
lcd_clk_set(lcd_drv->lcd_config);
break;
case LCD_CLK_FRAC_UPDATE:
lcd_clk_update(lcd_drv->lcd_config);
break;
default:
break;
}
lcd_clk_change(lcd_drv->lcd_config);
lcd_tablet_config_post_update(lcd_drv->lcd_config);
lcd_venc_change(lcd_drv->lcd_config);

View File

@@ -1621,17 +1621,7 @@ int lcd_tv_driver_change(void)
lcd_vbyone_interrupt_enable(0);
}
switch (pconf->lcd_timing.clk_change) {
case LCD_CLK_PLL_CHANGE:
lcd_clk_generate_parameter(pconf);
lcd_clk_set(pconf);
break;
case LCD_CLK_FRAC_UPDATE:
lcd_clk_update(pconf);
break;
default:
break;
}
lcd_clk_change(pconf);
lcd_venc_change(pconf);
if (pconf->lcd_basic.lcd_type == LCD_VBYONE) {

View File

@@ -445,17 +445,7 @@ static int lcd_framerate_automation_set_mode(void)
if (lcd_drv->lcd_config->lcd_basic.lcd_type == LCD_VBYONE)
lcd_vbyone_interrupt_enable(0);
/* change clk parameter */
switch (lcd_drv->lcd_config->lcd_timing.clk_change) {
case LCD_CLK_PLL_CHANGE:
lcd_clk_generate_parameter(lcd_drv->lcd_config);
lcd_clk_set(lcd_drv->lcd_config);
break;
case LCD_CLK_FRAC_UPDATE:
lcd_clk_update(lcd_drv->lcd_config);
break;
default:
break;
}
lcd_clk_change(lcd_drv->lcd_config);
lcd_venc_change(lcd_drv->lcd_config);
if (lcd_drv->lcd_config->lcd_basic.lcd_type == LCD_VBYONE)
lcd_vbyone_wait_stable();
@@ -1478,17 +1468,7 @@ static void lcd_set_vinfo(unsigned int sync_duration)
if (lcd_drv->lcd_config->lcd_basic.lcd_type == LCD_VBYONE)
lcd_vbyone_interrupt_enable(0);
/* change clk parameter */
switch (lcd_drv->lcd_config->lcd_timing.clk_change) {
case LCD_CLK_PLL_CHANGE:
lcd_clk_generate_parameter(lcd_drv->lcd_config);
lcd_clk_set(lcd_drv->lcd_config);
break;
case LCD_CLK_FRAC_UPDATE:
lcd_clk_update(lcd_drv->lcd_config);
break;
default:
break;
}
lcd_clk_change(lcd_drv->lcd_config);
lcd_venc_change(lcd_drv->lcd_config);
if (lcd_drv->lcd_config->lcd_basic.lcd_type == LCD_VBYONE)
lcd_vbyone_wait_stable();