unsigned long timeleft;
int ret;
int bl_1st, bl_2nd, bl_3nd;
+ static u32 pre_freq = 0;
FUNC_ENTRY(radio);
save_freq = freq_low;
radio->seek_freq = save_freq;
- tune_mode = FM_TUNER_AUTONOMOUS_SEARCH_MODE_NEXT;
+
+ if ((((save_freq == region_configs[radio_region].bot_freq)
+ && (upward == FM_SEARCH_DIRECTION_UP)) ||
+ ((save_freq == region_configs[radio_region].top_freq)
+ && (upward == FM_SEARCH_DIRECTION_DOWN))) &&
+ (pre_freq != save_freq) &&
+ !wrap_around ){
+ FDEBUG(radio, "YSTEST LINE : %d\n", __LINE__);
+ tune_mode = FM_TUNER_AUTONOMOUS_SEARCH_MODE;
+ }
+ else {
+ tune_mode = FM_TUNER_AUTONOMOUS_SEARCH_MODE_NEXT;
+ }
+ pre_freq = save_freq;
if (radio->low->fm_state.rssi_limit_search == 0)
low_set_search_lvl(radio, (u16)FM_DEFAULT_RSSI_THRESHOLD);
again:
curr_frq = freq_low;
if ((freq_low == region_configs[radio_region].bot_freq)
- && (upward == FM_SEARCH_DIRECTION_DOWN))
+ && (upward == FM_SEARCH_DIRECTION_DOWN)) {
curr_frq = region_configs[radio_region].top_freq;
+ tune_mode = FM_TUNER_AUTONOMOUS_SEARCH_MODE;
+ }
if ((freq_low == region_configs[radio_region].top_freq)
- && (upward == FM_SEARCH_DIRECTION_UP))
+ && (upward == FM_SEARCH_DIRECTION_UP)) {
curr_frq = region_configs[radio_region].bot_freq;
+ tune_mode = FM_TUNER_AUTONOMOUS_SEARCH_MODE;
+ }
payload = curr_frq;
low_set_freq(radio, payload);
#ifdef USE_FM_LNA_ENABLE
static int set_eLNA_gpio(struct s610_radio *radio, int stat)
{
+ if (radio->without_elna)
+ return -EPERM;
+
if (!gpio_is_valid(radio->elna_gpio)) {
return -EINVAL;
} else {
dev_info(radio->v4l2dev.dev, "%s(%d)\n", __func__, stat);
gpio_set_value(radio->elna_gpio, stat);
}
+ dev_info(radio->v4l2dev.dev, "Get elna_gpio(%d)\n",
+ gpio_get_value(radio->elna_gpio));
return 0;
}