From 80bbcb532b4118a0c9e02269d8babab6081f1cfe Mon Sep 17 00:00:00 2001 From: Yong Qin Date: Fri, 29 Mar 2019 17:08:09 +0800 Subject: [PATCH] vlock: vlock: improve vlock flow [1/1] PD#TV-3683 Problem: 1. write pll m will cause vbyone lockn unlock. Solution: 1.not change m,f at the sametime 2.reduce the frequency of write m and f Verify: tl1 Change-Id: Ia1ff93122d8b2ae355eae73b0094f8e09edba1cd Signed-off-by: Yong Qin Conflicts: drivers/amlogic/media/enhancement/amvecm/vlock.c drivers/amlogic/media/enhancement/amvecm/vlock.h --- drivers/amlogic/media/enhancement/amvecm/vlock.c | 12 ++++++++++-- drivers/amlogic/media/enhancement/amvecm/vlock.h | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/amlogic/media/enhancement/amvecm/vlock.c b/drivers/amlogic/media/enhancement/amvecm/vlock.c index ad8934aed7cf..557b52cfef45 100644 --- a/drivers/amlogic/media/enhancement/amvecm/vlock.c +++ b/drivers/amlogic/media/enhancement/amvecm/vlock.c @@ -697,9 +697,12 @@ static bool vlock_disable_step2(void) vlock_dis_cnt--; else if (vlock_dis_cnt == 0) { if (vlock.dtdata->vlk_hwver >= vlock_hw_ver2) { + #if 0 amvecm_hiu_reg_write_bits( HHI_HDMI_PLL_VLOCK_CNTL, 0x4, 0, 3); - amvecm_hiu_reg_write_bits( + #endif + if (IS_AUTO_MODE(vlock_mode)) + amvecm_hiu_reg_write_bits( HHI_HDMI_PLL_VLOCK_CNTL, 0x0, 0, 3); } @@ -1355,9 +1358,11 @@ void amve_vlock_process(struct vframe_s *vf) if (IS_AUTO_MODE(vlock_mode)) amvecm_hiu_reg_write_bits( HHI_HDMI_PLL_VLOCK_CNTL, 0x7, 0, 3); + #if 0 else if (IS_MANUAL_MODE(vlock_mode)) amvecm_hiu_reg_write_bits( HHI_HDMI_PLL_VLOCK_CNTL, 0x6, 0, 3); + #endif } if (vlock_debug & VLOCK_DEBUG_INFO) @@ -1827,9 +1832,11 @@ u32 vlock_fsm_en_step1_func(struct stvlock_sig_sts *pvlock, if (IS_AUTO_MODE(vlock_mode)) amvecm_hiu_reg_write_bits( HHI_HDMI_PLL_VLOCK_CNTL, 0x7, 0, 3); + #if 0 else if (IS_MANUAL_MODE(vlock_mode)) amvecm_hiu_reg_write_bits( HHI_HDMI_PLL_VLOCK_CNTL, 0x6, 0, 3); + #endif } ret = 1; @@ -1877,7 +1884,7 @@ void vlock_fsm_monitor(struct vframe_s *vf) case VLOCK_STATE_NULL: if (vlock.vf_sts) { /*have frame in*/ - if (vlock.frame_cnt_in++ >= 100) { + if (vlock.frame_cnt_in++ >= VLOCK_START_CNT) { /*vframe input valid*/ if (vlock.md_support) { if (vlock_fsm_to_en_func(&vlock, vf)) { @@ -1921,6 +1928,7 @@ void vlock_fsm_monitor(struct vframe_s *vf) case VLOCK_STATE_ENABLE_STEP2_DONE: if (vlock.vf_sts) { + vlock.frame_cnt_in++; if (!vlock.md_support) { /*function not support*/ vlock_clear_frame_counter(); diff --git a/drivers/amlogic/media/enhancement/amvecm/vlock.h b/drivers/amlogic/media/enhancement/amvecm/vlock.h index c6540d7680b1..dde7f7fe128c 100644 --- a/drivers/amlogic/media/enhancement/amvecm/vlock.h +++ b/drivers/amlogic/media/enhancement/amvecm/vlock.h @@ -23,7 +23,7 @@ #include #include "linux/amlogic/media/amvecm/ve.h" -#define VLOCK_VER "Ref.2019/3/26a" +#define VLOCK_VER "Ref.2019/3/29a" #define VLOCK_REG_NUM 33