From c6d7aef2970374f4efa98bd510c375fd3ed7b8df Mon Sep 17 00:00:00 2001 From: himta ram Date: Fri, 8 May 2020 14:06:34 +0530 Subject: [PATCH] radio: RTC6226: add support to scan valid lower freq channel Existing scan logic will start repetitive seek from lower freq and stops when band limit reached, with this logic valid lower band is always ignored. Seek one more time one band limit reached to check if lower freq channel is valid. CRs-Fixed: 2683848 Change-Id: I0b2608b544e0402298d1dfdc1bef96ff8ca64123 Signed-off-by: himta ram --- .../radio/rtc6226/radio-rtc6226-common.c | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/media/radio/rtc6226/radio-rtc6226-common.c b/drivers/media/radio/rtc6226/radio-rtc6226-common.c index dfc8096fe6d9..2b1b9cfb87cc 100644 --- a/drivers/media/radio/rtc6226/radio-rtc6226-common.c +++ b/drivers/media/radio/rtc6226/radio-rtc6226-common.c @@ -385,8 +385,30 @@ void rtc6226_scan(struct work_struct *work) next_freq_khz, radio->registers[RSSI] & RSSI_RSSI); if (radio->registers[STATUS] & STATUS_SF) { - FMDERR("%s band limit reached. Seek one more.\n", + FMDERR("%s Seek one more time if lower freq is valid\n", __func__); + retval = rtc6226_set_seek(radio, SRCH_UP, WRAP_ENABLE); + if (retval < 0) { + FMDERR("%s seek fail %d\n", __func__, retval); + goto seek_tune_fail; + } + if (!wait_for_completion_timeout(&radio->completion, + msecs_to_jiffies(WAIT_TIMEOUT_MSEC))) { + FMDERR("timeout didn't receive STC for seek\n"); + } else { + FMDERR("%s: received STC for seek\n", __func__); + retval = rtc6226_get_freq(radio, + &next_freq_khz); + if (retval < 0) { + FMDERR("%s getFreq failed\n", __func__); + goto seek_tune_fail; + } + if ((radio->recv_conf.band_low_limit * + TUNE_STEP_SIZE) == + next_freq_khz) + rtc6226_q_event(radio, + RTC6226_EVT_TUNE_SUCC); + } break; } if (radio->g_search_mode == SCAN)