Merge "FM: Reduce high scan time"
This commit is contained in:
commit
9a64b5351f
@ -312,6 +312,7 @@ void rtc6226_scan(struct work_struct *work)
|
||||
struct kfifo *data_b;
|
||||
int len = 0;
|
||||
u32 next_freq_khz;
|
||||
u8 factor;
|
||||
int retval = 0;
|
||||
int i, rssi;
|
||||
|
||||
@ -427,7 +428,29 @@ void rtc6226_scan(struct work_struct *work)
|
||||
TUNE_STEP_SIZE) == next_freq_khz) {
|
||||
FMDERR("%s Seek one more time if lower freq is valid\n",
|
||||
__func__);
|
||||
retval = rtc6226_set_seek(radio, SRCH_UP, WRAP_ENABLE);
|
||||
// Tuned to band low limit + chan spacing then seek
|
||||
// down with bandlimit config
|
||||
if (radio->space == 0)
|
||||
factor = 20;
|
||||
else if (radio->space == 1)
|
||||
factor = 10;
|
||||
else
|
||||
factor = 5;
|
||||
retval = rtc6226_set_freq(radio,
|
||||
(radio->recv_conf.band_low_limit + factor)
|
||||
* TUNE_STEP_SIZE);
|
||||
if (retval < 0)
|
||||
goto seek_tune_fail;
|
||||
/* wait for tune to complete. */
|
||||
if (!wait_for_completion_timeout(&radio->completion,
|
||||
msecs_to_jiffies(TUNE_TIMEOUT_MSEC))) {
|
||||
FMDERR("In %s, didn't receive STC for tune\n",
|
||||
__func__);
|
||||
rtc6226_q_event(radio, RTC6226_EVT_ERROR);
|
||||
return;
|
||||
}
|
||||
retval = rtc6226_set_seek(radio, SRCH_DOWN,
|
||||
WRAP_DISABLE);
|
||||
if (retval < 0) {
|
||||
FMDERR("%s seek fail %d\n", __func__, retval);
|
||||
goto seek_tune_fail;
|
||||
@ -454,10 +477,13 @@ void rtc6226_scan(struct work_struct *work)
|
||||
rssi = radio->registers[RSSI] & RSSI_RSSI;
|
||||
FMDBG("%s freq %d, rssi %d rssi threshold %d\n",
|
||||
__func__, next_freq_khz, rssi, radio->rssi_th);
|
||||
if ((radio->recv_conf.band_low_limit *
|
||||
TUNE_STEP_SIZE) ==
|
||||
next_freq_khz &&
|
||||
rssi >= radio->rssi_th) {
|
||||
// Reach to band low limit,
|
||||
// if SF is 0, means frequency at low limit is a
|
||||
// commercial station Or a invalid channel
|
||||
if (((radio->registers[STATUS] &
|
||||
STATUS_SF) == 0) ||
|
||||
(radio->recv_conf.band_high_limit *
|
||||
TUNE_STEP_SIZE) == next_freq_khz) {
|
||||
FMDERR("lower band freq is valid\n");
|
||||
rtc6226_q_event(radio,
|
||||
RTC6226_EVT_TUNE_SUCC);
|
||||
|
@ -200,7 +200,7 @@
|
||||
#define SCAN_PENDING 3
|
||||
#define START_SCAN 1
|
||||
#define TUNE_TIMEOUT_MSEC 3000
|
||||
#define SEEK_TIMEOUT_MSEC 15000
|
||||
#define SEEK_TIMEOUT_MSEC 30000
|
||||
|
||||
#define RTC6226_MIN_SRCH_MODE 0x00
|
||||
#define RTC6226_MAX_SRCH_MODE 0x02
|
||||
|
Loading…
Reference in New Issue
Block a user