From dc428cbf3c3774c4a9b740edee7ac788a0321627 Mon Sep 17 00:00:00 2001 From: "nengwen.chen" Date: Tue, 28 Aug 2018 09:56:41 +0800 Subject: [PATCH] atv_demod: optimize atv channel scan [1/1] PD#171265: optimize atv channel scan Change-Id: Iea0a9adcb7fad8757368f411274d05998516535f Signed-off-by: nengwen.chen --- drivers/amlogic/atv_demod/atv_demod_ops.c | 17 ++++++++--------- drivers/amlogic/atv_demod/atvdemod_func.c | 7 +++++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/amlogic/atv_demod/atv_demod_ops.c b/drivers/amlogic/atv_demod/atv_demod_ops.c index f2320a7744bd..537346b44ee3 100644 --- a/drivers/amlogic/atv_demod/atv_demod_ops.c +++ b/drivers/amlogic/atv_demod/atv_demod_ops.c @@ -399,15 +399,13 @@ void aml_fe_get_atvaudio_state(int *state) int line_lock = 0; int atv_state = atv_demod_get_state(); - if (atv_state == ATVDEMOD_STATE_WORK) { + /* scan mode need mute */ + if (atv_state == ATVDEMOD_STATE_WORK && !atv_demod_get_scan_mode()) { retrieve_vpll_carrier_lock(&vpll_lock); retrieve_vpll_carrier_line_lock(&line_lock); if ((vpll_lock == 0) && (line_lock == 0)) { retrieve_vpll_carrier_audio_power(&power); - if (!atv_demod_get_scan_mode()) - *state = 1; - else - *state = 0; /* scan mode need mute */ + *state = 1; } else { *state = 0; pr_audio("vpll_lock: 0x%x, line_lock: 0x%x\n", @@ -1016,7 +1014,7 @@ static int atvdemod_fe_afc_closer(struct v4l2_frontend *v4l2_fe, int minafcfreq, tuner_id == AM_TUNER_SI2159 || tuner_id == AM_TUNER_R840 || tuner_id == AM_TUNER_R842) - usleep_range(20 * 1000, 20 * 1000 + 100); + usleep_range(10 * 1000, 10 * 1000 + 100); else if (tuner_id == AM_TUNER_MXL661) usleep_range(30 * 1000, 30 * 1000 + 100); @@ -1191,7 +1189,7 @@ static enum v4l2_search atvdemod_fe_search(struct v4l2_frontend *v4l2_fe) int double_check_cnt = 1; int auto_search_std = 0; int search_count = 0; - bool try_secam = false; + /* bool try_secam = false; */ int ret = -1; unsigned int tuner_id = v4l2_fe->tuner_id; int priv_cfg = 0; @@ -1290,7 +1288,7 @@ static enum v4l2_search atvdemod_fe_search(struct v4l2_frontend *v4l2_fe) usleep_range(30 * 1000, 30 * 1000 + 100); } else if (tuner_id == AM_TUNER_R840 || tuner_id == AM_TUNER_R842) { - usleep_range(20 * 1000, 20 * 1000 + 100); + usleep_range(10 * 1000, 10 * 1000 + 100); fe->ops.tuner_ops.get_status(fe, &tuner_state); } else { @@ -1313,6 +1311,7 @@ static enum v4l2_search atvdemod_fe_search(struct v4l2_frontend *v4l2_fe) } if (tuner_status_cnt_local == 0) { +#if 0 /* when need to support secam-l, will enable it */ if (auto_search_std && try_secam == false && !(p->std & V4L2_COLOR_STD_SECAM) && @@ -1353,7 +1352,7 @@ static enum v4l2_search atvdemod_fe_search(struct v4l2_frontend *v4l2_fe) try_secam = false; } - +#endif break; } } while (1); diff --git a/drivers/amlogic/atv_demod/atvdemod_func.c b/drivers/amlogic/atv_demod/atvdemod_func.c index 77c735e71267..b05a5884cc2b 100644 --- a/drivers/amlogic/atv_demod/atvdemod_func.c +++ b/drivers/amlogic/atv_demod/atvdemod_func.c @@ -1385,8 +1385,11 @@ void retrieve_vpll_carrier_audio_power(int *power) data = atv_dmd_rd_reg(APB_BLOCK_ADDR_SIF_STG_2, 0x03); *power = data & 0xffff; - data = atv_dmd_rd_reg(APB_BLOCK_ADDR_SIF_STG_2, 0x02); - atv_dmd_wr_reg(APB_BLOCK_ADDR_SIF_STG_2, 0x02, data & (~0x80)); + /* keep open for carrier audio power update */ + /* + * data = atv_dmd_rd_reg(APB_BLOCK_ADDR_SIF_STG_2, 0x02); + * atv_dmd_wr_reg(APB_BLOCK_ADDR_SIF_STG_2, 0x02,data&(~0x80)); + */ } else { data = atv_dmd_rd_reg(APB_BLOCK_ADDR_SIF_STG_2, 0x03); *power = data & 0xffff;