mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
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:
committed by
Jianxin Pan
parent
204e56621c
commit
0922a63e68
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user