31 fmdev->
rx.rds.last_blk_idx = 0;
32 fmdev->
rx.rds.wr_idx = 0;
33 fmdev->
rx.rds.rd_idx = 0;
42 fmdev->
rx.stat_info.afcache_size = 0;
43 fmdev->
rx.stat_info.af_list_max = 0;
48 unsigned long timeleft;
54 if (freq < fmdev->
rx.region.bot_freq || freq > fmdev->
rx.region.top_freq) {
55 fmerr(
"Invalid frequency %d\n", freq);
108 fmerr(
"Timeout(%d sec),didn't get tune ended int\n",
120 curr_frq_in_khz = (fmdev->
rx.region.bot_freq + ((
u32)curr_frq *
FM_FREQ_MUL));
122 if (curr_frq_in_khz != freq) {
123 pr_info(
"Frequency is set to (%d) but "
124 "requested freq is (%d)\n", curr_frq_in_khz, freq);
128 fmdev->
rx.freq = curr_frq_in_khz;
145 static int fm_rx_set_channel_spacing(
struct fmdev *
fmdev,
u32 spacing)
150 if (spacing > 0 && spacing <= 50000)
152 else if (spacing > 50000 && spacing <= 100000)
170 u32 wrap_around,
u32 spacing)
173 u16 curr_frq, next_frq, last_frq;
176 unsigned long timeleft;
180 ret = fm_rx_set_channel_spacing(fmdev, spacing);
182 fmerr(
"Failed to set channel spacing\n");
188 sizeof(curr_frq), &curr_frq, &resp_len);
193 last_frq = (fmdev->
rx.region.top_freq - fmdev->
rx.region.bot_freq) /
FM_FREQ_MUL;
197 offset = curr_frq % space_idx;
199 next_frq = seek_upward ? curr_frq + space_idx :
200 curr_frq - space_idx ;
206 if ((
short)next_frq < 0)
207 next_frq = last_frq - offset;
208 else if (next_frq > last_frq)
252 fmerr(
"Timeout(%d sec),didn't get tune ended int\n",
268 if (wrap_around == 0) {
269 fmdev->
rx.freq = seek_upward ?
270 fmdev->
rx.region.top_freq :
271 fmdev->
rx.region.bot_freq;
273 fmdev->
rx.freq = seek_upward ?
274 fmdev->
rx.region.bot_freq :
275 fmdev->
rx.region.top_freq;
277 next_frq = (fmdev->
rx.freq -
284 &curr_frq, &resp_len);
289 fmdev->
rx.freq = (fmdev->
rx.region.bot_freq +
309 fmerr(
"Volume is not within(%d-%d) range\n",
315 payload = vol_to_set;
321 fmdev->
rx.volume = vol_to_set;
331 if (curr_vol ==
NULL) {
332 fmerr(
"Invalid memory\n");
344 if (bot_freq !=
NULL)
345 *bot_freq = fmdev->
rx.region.bot_freq;
347 if (top_freq !=
NULL)
348 *top_freq = fmdev->
rx.region.top_freq;
356 *region = fmdev->
rx.region.fm_band;
368 fmerr(
"Invalid band\n");
372 if (fmdev->
rx.region.fm_band == region_to_set) {
373 fmerr(
"Requested band is already configured\n");
378 payload = (
u16)region_to_set;
387 if (fmdev->
rx.freq < fmdev->
rx.region.bot_freq)
388 new_frq = fmdev->
rx.region.bot_freq;
389 else if (fmdev->
rx.freq > fmdev->
rx.region.top_freq)
390 new_frq = fmdev->
rx.region.top_freq;
393 fmdbg(
"Current freq is not within band limit boundary,"
394 "switching to %d KHz\n", new_frq);
408 if (curr_mute_mode ==
NULL) {
409 fmerr(
"Invalid memory\n");
413 *curr_mute_mode = fmdev->
rx.mute_mode;
418 static int fm_config_rx_mute_reg(
struct fmdev *fmdev)
424 switch (fmdev->
rx.mute_mode) {
457 if (fmdev->
rx.mute_mode == mute_mode_toset)
460 org_state = fmdev->
rx.mute_mode;
461 fmdev->
rx.mute_mode = mute_mode_toset;
463 ret = fm_config_rx_mute_reg(fmdev);
465 fmdev->
rx.mute_mode = org_state;
478 if (curr_mute_mode ==
NULL) {
479 fmerr(
"Invalid memory\n");
483 *curr_mute_mode = fmdev->
rx.rf_depend_mute;
499 fmerr(
"Invalid RF dependent soft mute\n");
502 if (fmdev->
rx.rf_depend_mute == rfdepend_mute)
505 org_state = fmdev->
rx.rf_depend_mute;
506 fmdev->
rx.rf_depend_mute = rfdepend_mute;
508 ret = fm_config_rx_mute_reg(fmdev);
510 fmdev->
rx.rf_depend_mute = org_state;
524 if (rssilvl ==
NULL) {
525 fmerr(
"Invalid memory\n");
530 &curr_rssi_lel, &resp_len);
550 fmerr(
"Invalid RSSI threshold level\n");
553 payload = (
u16)rssi_lvl_toset;
559 fmdev->
rx.rssi_threshold = rssi_lvl_toset;
570 if (curr_rssi_lvl ==
NULL) {
571 fmerr(
"Invalid memory\n");
575 *curr_rssi_lvl = fmdev->
rx.rssi_threshold;
587 fmerr(
"Invalid mode\n");
616 fmerr(
"Invalid memory\n");
621 &curr_mode, &resp_len);
641 fmerr(
"Invalid rx de-emphasis mode (%d)\n", mode);
651 fmdev->
rx.deemphasis_mode =
mode;
662 if (curr_deemphasis_mode ==
NULL) {
663 fmerr(
"Invalid memory\n");
667 *curr_deemphasis_mode = fmdev->
rx.deemphasis_mode;
679 fmerr(
"Invalid rds option\n");
734 fmdev->
rx.rds.last_blk_idx = 0;
735 fmdev->
rx.rds.wr_idx = 0;
736 fmdev->
rx.rds.rd_idx = 0;
753 if (curr_rds_en_dis ==
NULL) {
754 fmerr(
"Invalid memory\n");
758 *curr_rds_en_dis = fmdev->
rx.rds.flag;
773 fmerr(
"Invalid rds mode\n");
777 payload = (
u16)rds_mode;
783 fmdev->
rx.rds_mode = rds_mode;
794 if (rds_mode ==
NULL) {
795 fmerr(
"Invalid memory\n");
799 *rds_mode = fmdev->
rx.rds_mode;
815 fmerr(
"Invalid af mode\n");
830 fmdev->
rx.af_mode = af_mode;
841 if (af_mode ==
NULL) {
842 fmerr(
"Invalid memory\n");
846 *af_mode = fmdev->
rx.af_mode;