mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 20:33:58 -04:00
RTC6226: disable the RDS during scan operation
RDS enable is set during scanning and it causing the incorrect register update for rtc6226 chip and this leads to no audio issue. Set the RDS enable bit to 0 before scanning and set to 1 after scanning finishes. CRs-Fixed: 2744378 Change-Id: I2c2fae1e01fb1fadccbc9133f472fca996bc2496 Signed-off-by: himta ram <hram@codeaurora.org>
This commit is contained in:
parent
60c110ac9c
commit
b32df69673
3 changed files with 14 additions and 1 deletions
|
|
@ -494,6 +494,8 @@ seek_cancelled:
|
|||
else
|
||||
FMDERR("%s: received STD for tune\n", __func__);
|
||||
}
|
||||
/* Enable the RDS as it was disabled before scan */
|
||||
rtc6226_rds_on(radio);
|
||||
rtc6226_q_event(radio, RTC6226_EVT_SEEK_COMPLETE);
|
||||
rtc6226_q_event(radio, RTC6226_EVT_TUNE_SUCC);
|
||||
radio->seek_tune_status = NO_SEEK_TUNE_PENDING;
|
||||
|
|
@ -1357,7 +1359,7 @@ void rtc6226_rds_handler(struct work_struct *worker)
|
|||
/*
|
||||
* rtc6226_rds_on - switch on rds reception
|
||||
*/
|
||||
static int rtc6226_rds_on(struct rtc6226_device *radio)
|
||||
int rtc6226_rds_on(struct rtc6226_device *radio)
|
||||
{
|
||||
int retval;
|
||||
|
||||
|
|
@ -2271,6 +2273,14 @@ static int rtc6226_vidioc_s_hw_freq_seek(struct file *file, void *priv,
|
|||
|
||||
radio->is_search_cancelled = false;
|
||||
|
||||
/* Disable the rds before seek */
|
||||
radio->registers[SYSCFG] &= ~SYSCFG_CSR0_RDS_EN;
|
||||
retval = rtc6226_set_register(radio, SYSCFG);
|
||||
if (retval < 0) {
|
||||
FMDERR("%s fail to disable RDS\n", __func__);
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (radio->g_search_mode == SEEK) {
|
||||
/* seek */
|
||||
FMDBG("%s starting seek\n", __func__);
|
||||
|
|
|
|||
|
|
@ -259,6 +259,8 @@ static void rtc6226_i2c_interrupt_handler(struct rtc6226_device *radio)
|
|||
rtc6226_reset_rds_data(radio);
|
||||
FMDBG("%s clear Seek/Tune bit\n", __func__);
|
||||
if (radio->seek_tune_status == SEEK_PENDING) {
|
||||
/* Enable the RDS as it was disabled before seek */
|
||||
rtc6226_rds_on(radio);
|
||||
FMDBG("posting RTC6226_EVT_SEEK_COMPLETE event\n");
|
||||
rtc6226_q_event(radio, RTC6226_EVT_SEEK_COMPLETE);
|
||||
/* post tune comp evt since seek results in a tune.*/
|
||||
|
|
|
|||
|
|
@ -695,3 +695,4 @@ int rtc6226_cancel_seek(struct rtc6226_device *radio);
|
|||
void rtc6226_rds_handler(struct work_struct *worker);
|
||||
void rtc6226_q_event(struct rtc6226_device *radio, enum rtc6226_evt_t event);
|
||||
int rtc6226_reset_rds_data(struct rtc6226_device *radio);
|
||||
int rtc6226_rds_on(struct rtc6226_device *radio);
|
||||
|
|
|
|||
Loading…
Reference in a new issue