diff --git a/drivers/amlogic/media/vout/lcd/lcd_common.c b/drivers/amlogic/media/vout/lcd/lcd_common.c index 5edf84921fcb..68fd109c5bfe 100644 --- a/drivers/amlogic/media/vout/lcd/lcd_common.c +++ b/drivers/amlogic/media/vout/lcd/lcd_common.c @@ -1064,6 +1064,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; diff --git a/drivers/amlogic/media/vout/lcd/lcd_common.h b/drivers/amlogic/media/vout/lcd/lcd_common.h index ce93c41ea5e3..9512a7bc809b 100644 --- a/drivers/amlogic/media/vout/lcd/lcd_common.h +++ b/drivers/amlogic/media/vout/lcd/lcd_common.h @@ -113,6 +113,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); diff --git a/drivers/amlogic/media/vout/lcd/lcd_tablet/lcd_tablet.c b/drivers/amlogic/media/vout/lcd/lcd_tablet/lcd_tablet.c index 50814cce5054..1d2b741dce95 100644 --- a/drivers/amlogic/media/vout/lcd/lcd_tablet/lcd_tablet.c +++ b/drivers/amlogic/media/vout/lcd/lcd_tablet/lcd_tablet.c @@ -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); @@ -1259,17 +1249,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); diff --git a/drivers/amlogic/media/vout/lcd/lcd_tv/lcd_drv.c b/drivers/amlogic/media/vout/lcd/lcd_tv/lcd_drv.c index e2e8f9b13b00..4124b6735c90 100644 --- a/drivers/amlogic/media/vout/lcd/lcd_tv/lcd_drv.c +++ b/drivers/amlogic/media/vout/lcd/lcd_tv/lcd_drv.c @@ -1663,17 +1663,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) { diff --git a/drivers/amlogic/media/vout/lcd/lcd_tv/lcd_tv.c b/drivers/amlogic/media/vout/lcd/lcd_tv/lcd_tv.c index f309f02fadff..bb2f594bbda8 100644 --- a/drivers/amlogic/media/vout/lcd/lcd_tv/lcd_tv.c +++ b/drivers/amlogic/media/vout/lcd/lcd_tv/lcd_tv.c @@ -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(); @@ -1360,17 +1350,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();