From 3340a5483bf365f02b41a7b125f7fcc93e2fc7f7 Mon Sep 17 00:00:00 2001 From: "nengwen.chen" Date: Fri, 20 Sep 2019 13:49:44 +0800 Subject: [PATCH] atv_demod: fix first sound carrier output in nicam system [1/1] PD#TV-9972 Problem: first sound carrier no output in nicam system. Solution: 1.fix first sound carrier output in nicam system. Verify: Verified by TL1. Change-Id: Ib89b6a5300a1ebeb9e61bbb3acb6356e2abab08f Signed-off-by: nengwen.chen --- drivers/amlogic/atv_demod/atvauddemod_func.c | 10 +++++----- drivers/amlogic/atv_demod/atvdemod_func.h | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/amlogic/atv_demod/atvauddemod_func.c b/drivers/amlogic/atv_demod/atvauddemod_func.c index 76c02cff7921..2b4516d74cff 100644 --- a/drivers/amlogic/atv_demod/atvauddemod_func.c +++ b/drivers/amlogic/atv_demod/atvauddemod_func.c @@ -872,7 +872,7 @@ void set_mono_dk(void) { int aa; - adec_wr_reg(ADDR_ADEC_CTRL, AUDIO_STANDARD_NICAM_DK); + adec_wr_reg(ADDR_ADEC_CTRL, AUDIO_STANDARD_NICAM_DK | (3 << 4)); set_filter(filter_100k, ADDR_DDC_FIR0_COEF, 65); set_filter(filter_100k, ADDR_DDC_FIR1_COEF, 65); @@ -889,7 +889,7 @@ void set_mono_i(void) { int aa; - adec_wr_reg(ADDR_ADEC_CTRL, AUDIO_STANDARD_NICAM_I); + adec_wr_reg(ADDR_ADEC_CTRL, AUDIO_STANDARD_NICAM_I | (3 << 4)); set_filter(filter_100k, ADDR_DDC_FIR0_COEF, 65); set_filter(filter_100k, ADDR_DDC_FIR1_COEF, 65); @@ -906,7 +906,7 @@ void set_mono_bg(void) { int aa; - adec_wr_reg(ADDR_ADEC_CTRL, AUDIO_STANDARD_NICAM_BG); + adec_wr_reg(ADDR_ADEC_CTRL, AUDIO_STANDARD_NICAM_BG | (3 << 4)); set_filter(filter_100k, ADDR_DDC_FIR0_COEF, 65); set_filter(filter_100k, ADDR_DDC_FIR1_COEF, 65); @@ -923,7 +923,7 @@ void set_mono_l(void) { int aa; - adec_wr_reg(ADDR_ADEC_CTRL, AUDIO_STANDARD_NICAM_L); + adec_wr_reg(ADDR_ADEC_CTRL, AUDIO_STANDARD_NICAM_L | (3 << 4)); set_filter(filter_100k, ADDR_DDC_FIR0_COEF, 65); set_filter(filter_100k, ADDR_DDC_FIR1_COEF, 65); @@ -1586,7 +1586,7 @@ void set_outputmode(uint32_t standard, uint32_t outmode) case AUDIO_STANDARD_MONO_I: case AUDIO_STANDARD_MONO_L: /* for FM MONO system to detection nicam status */ - if (!aud_reinit && get_nicam_lock_status()) { + if (!aud_mono_only && !aud_reinit && get_nicam_lock_status()) { if (standard == AUDIO_STANDARD_MONO_I) aud_std = AUDIO_STANDARD_NICAM_I; else if (standard == AUDIO_STANDARD_MONO_L) diff --git a/drivers/amlogic/atv_demod/atvdemod_func.h b/drivers/amlogic/atv_demod/atvdemod_func.h index 7d8324bf1318..87e73f34b9a1 100644 --- a/drivers/amlogic/atv_demod/atvdemod_func.h +++ b/drivers/amlogic/atv_demod/atvdemod_func.h @@ -31,6 +31,7 @@ extern unsigned int aud_std; extern unsigned int aud_mode; extern bool audio_thd_en; extern bool aud_reinit; +extern bool aud_mono_only; extern bool atv_audio_overmodulated_en; extern unsigned int non_std_en;