author | nengwen.chen <nengwen.chen@amlogic.com> | 2018-07-30 08:35:18 (GMT) |
---|---|---|
committer | Jianxin Pan <jianxin.pan@amlogic.com> | 2018-08-01 11:32:58 (GMT) |
commit | 8c9d51363c6b2bfa0f59fb68751dbed2bfc0e21b (patch) | |
tree | 4e7aefa875a2126a4b4a3639103c6fc626608e2a | |
parent | 12a12b85555b8faae955ec1e1d633e970f23fcd5 (diff) | |
download | common-8c9d51363c6b2bfa0f59fb68751dbed2bfc0e21b.zip common-8c9d51363c6b2bfa0f59fb68751dbed2bfc0e21b.tar.gz common-8c9d51363c6b2bfa0f59fb68751dbed2bfc0e21b.tar.bz2 |
atv_demod: modify afc to prevent demod error locking [1/1]
PD#169984: modify afc to prevent demod error locking
Change-Id: I02d184309fdeb5696da6158e0f29311cdc7675a5
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>
-rw-r--r-- | drivers/amlogic/atv_demod/atv_demod_ops.c | 2 | ||||
-rw-r--r-- | drivers/amlogic/atv_demod/atvauddemod_func.c | 2 | ||||
-rw-r--r-- | drivers/amlogic/atv_demod/atvdemod_func.c | 18 |
3 files changed, 11 insertions, 11 deletions
diff --git a/drivers/amlogic/atv_demod/atv_demod_ops.c b/drivers/amlogic/atv_demod/atv_demod_ops.c index 86cf695..23efa99 100644 --- a/drivers/amlogic/atv_demod/atv_demod_ops.c +++ b/drivers/amlogic/atv_demod/atv_demod_ops.c @@ -196,7 +196,7 @@ static void aml_afc_do_work(struct work_struct *work) return; } - if (!lock) { + if (!lock || (lock && !field_lock)) { afc_lock_status = AFC_LOCK_STATUS_POST_UNLOCK; afc_pre_lock_cnt = 0; param->frequency -= afc_offset * 1000; diff --git a/drivers/amlogic/atv_demod/atvauddemod_func.c b/drivers/amlogic/atv_demod/atvauddemod_func.c index 5840ab4..7c0b58b 100644 --- a/drivers/amlogic/atv_demod/atvauddemod_func.c +++ b/drivers/amlogic/atv_demod/atvauddemod_func.c @@ -594,7 +594,7 @@ void set_eiaj(void) adec_wr_reg(ADDR_DDC_FREQ0, aa); aa = (int)((15.734e3*2)/(FCLK/4/16)*1024.0*1024.0*8.0); - aa = (0x80e40); + /* aa = (0x80e40); */ adec_wr_reg(ADDR_DDC_FREQ1, aa); diff --git a/drivers/amlogic/atv_demod/atvdemod_func.c b/drivers/amlogic/atv_demod/atvdemod_func.c index 3a542f6..153f080 100644 --- a/drivers/amlogic/atv_demod/atvdemod_func.c +++ b/drivers/amlogic/atv_demod/atvdemod_func.c @@ -128,7 +128,7 @@ void atv_dmd_wr_reg(unsigned char block, unsigned char reg, unsigned long data) unsigned long atv_dmd_rd_reg(unsigned char block, unsigned char reg) { unsigned long data = 0; - unsigned long reg_addr = (block<<8) + reg * 4; + unsigned int reg_addr = (block<<8) + reg * 4; amlatvdemod_reg_read(reg_addr, (unsigned int *)&data); return data; @@ -578,7 +578,7 @@ void configure_receiver(int Broadcast_Standard, unsigned int Tuner_IF_Frequency, int Tuner_Input_IF_inverted, int GDE_Curve, int sound_format) { - int tmp_int; + int tmp_int = 0; int mixer1 = 0; int mixer3 = 0; int mixer3_bypass = 0; @@ -589,8 +589,8 @@ void configure_receiver(int Broadcast_Standard, unsigned int Tuner_IF_Frequency, int super_coef0 = 0; int super_coef1 = 0; int super_coef2 = 0; - int gp_coeff_1[37]; - int gp_coeff_2[37]; + int gp_coeff_1[37] = { 0 }; + int gp_coeff_2[37] = { 0 }; int gp_cv_g1 = 0; int gp_cv_g2 = 0; int crvy_reg_1 = 0; @@ -602,8 +602,8 @@ void configure_receiver(int Broadcast_Standard, unsigned int Tuner_IF_Frequency, int sif_deemp = 0; int sif_cfg_demod = 0; int sif_fm_gain = 0; - int gd_coeff[6]; - int gd_bypass; + int gd_coeff[6] = { 0 }; + int gd_bypass = 0; pr_info("ATV-DMD configure receiver register\n"); @@ -1576,9 +1576,9 @@ int aml_atvdemod_get_snr_ex(void) static enum amlatvdemod_snr_level_e aml_atvdemod_get_snr_level(void) { - unsigned int snr_val, i, snr_d[8]; - enum amlatvdemod_snr_level_e ret; - unsigned long fsnr; + unsigned int snr_val = 0, i = 0, snr_d[8] = { 0 }; + enum amlatvdemod_snr_level_e ret = very_low; + unsigned long fsnr = 0; snr_val = atv_dmd_rd_long(APB_BLOCK_ADDR_VDAGC, 0x50) >> 8; fsnr = snr_val; |