Lines Matching refs:fmdev
28 void fm_rx_reset_rds_cache(struct fmdev *fmdev) in fm_rx_reset_rds_cache() argument
30 fmdev->rx.rds.flag = FM_RDS_DISABLE; in fm_rx_reset_rds_cache()
31 fmdev->rx.rds.last_blk_idx = 0; in fm_rx_reset_rds_cache()
32 fmdev->rx.rds.wr_idx = 0; in fm_rx_reset_rds_cache()
33 fmdev->rx.rds.rd_idx = 0; in fm_rx_reset_rds_cache()
35 if (fmdev->rx.af_mode == FM_RX_RDS_AF_SWITCH_MODE_ON) in fm_rx_reset_rds_cache()
36 fmdev->irq_info.mask |= FM_LEV_EVENT; in fm_rx_reset_rds_cache()
39 void fm_rx_reset_station_info(struct fmdev *fmdev) in fm_rx_reset_station_info() argument
41 fmdev->rx.stat_info.picode = FM_NO_PI_CODE; in fm_rx_reset_station_info()
42 fmdev->rx.stat_info.afcache_size = 0; in fm_rx_reset_station_info()
43 fmdev->rx.stat_info.af_list_max = 0; in fm_rx_reset_station_info()
46 int fm_rx_set_freq(struct fmdev *fmdev, u32 freq) in fm_rx_set_freq() argument
54 if (freq < fmdev->rx.region.bot_freq || freq > fmdev->rx.region.top_freq) { in fm_rx_set_freq()
62 ret = fmc_send_cmd(fmdev, AUDIO_ENABLE_SET, REG_WR, &payload, in fm_rx_set_freq()
69 ret = fmc_send_cmd(fmdev, HILO_SET, REG_WR, &payload, in fm_rx_set_freq()
75 payload = (freq - fmdev->rx.region.bot_freq) / FM_FREQ_MUL; in fm_rx_set_freq()
77 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_WR, &payload, in fm_rx_set_freq()
83 ret = fmc_send_cmd(fmdev, FLAG_GET, REG_RD, NULL, 2, NULL, NULL); in fm_rx_set_freq()
88 intr_flag = fmdev->irq_info.mask; in fm_rx_set_freq()
89 fmdev->irq_info.mask = (FM_FR_EVENT | FM_BL_EVENT); in fm_rx_set_freq()
90 payload = fmdev->irq_info.mask; in fm_rx_set_freq()
91 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_set_freq()
98 ret = fmc_send_cmd(fmdev, TUNER_MODE_SET, REG_WR, &payload, in fm_rx_set_freq()
104 init_completion(&fmdev->maintask_comp); in fm_rx_set_freq()
105 timeleft = wait_for_completion_timeout(&fmdev->maintask_comp, in fm_rx_set_freq()
115 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_RD, NULL, 2, &curr_frq, &resp_len); in fm_rx_set_freq()
120 curr_frq_in_khz = (fmdev->rx.region.bot_freq + ((u32)curr_frq * FM_FREQ_MUL)); in fm_rx_set_freq()
128 fmdev->rx.freq = curr_frq_in_khz; in fm_rx_set_freq()
131 fmdev->irq_info.mask = intr_flag; in fm_rx_set_freq()
132 payload = fmdev->irq_info.mask; in fm_rx_set_freq()
133 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_set_freq()
139 fm_rx_reset_rds_cache(fmdev); in fm_rx_set_freq()
140 fm_rx_reset_station_info(fmdev); in fm_rx_set_freq()
145 static int fm_rx_set_channel_spacing(struct fmdev *fmdev, u32 spacing) in fm_rx_set_channel_spacing() argument
159 ret = fmc_send_cmd(fmdev, CHANL_BW_SET, REG_WR, &payload, in fm_rx_set_channel_spacing()
164 fmdev->rx.region.chanl_space = spacing * FM_FREQ_MUL; in fm_rx_set_channel_spacing()
169 int fm_rx_seek(struct fmdev *fmdev, u32 seek_upward, in fm_rx_seek() argument
180 ret = fm_rx_set_channel_spacing(fmdev, spacing); in fm_rx_seek()
187 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_RD, NULL, in fm_rx_seek()
193 last_frq = (fmdev->rx.region.top_freq - fmdev->rx.region.bot_freq) / FM_FREQ_MUL; in fm_rx_seek()
196 space_idx = fmdev->rx.region.chanl_space / FM_FREQ_MUL; in fm_rx_seek()
214 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_WR, &payload, in fm_rx_seek()
221 ret = fmc_send_cmd(fmdev, SEARCH_DIR_SET, REG_WR, &payload, in fm_rx_seek()
227 ret = fmc_send_cmd(fmdev, FLAG_GET, REG_RD, NULL, 2, NULL, NULL); in fm_rx_seek()
232 intr_flag = fmdev->irq_info.mask; in fm_rx_seek()
233 fmdev->irq_info.mask = (FM_FR_EVENT | FM_BL_EVENT); in fm_rx_seek()
234 payload = fmdev->irq_info.mask; in fm_rx_seek()
235 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_seek()
242 ret = fmc_send_cmd(fmdev, TUNER_MODE_SET, REG_WR, &payload, in fm_rx_seek()
248 init_completion(&fmdev->maintask_comp); in fm_rx_seek()
249 timeleft = wait_for_completion_timeout(&fmdev->maintask_comp, in fm_rx_seek()
257 int_reason = fmdev->irq_info.flag & (FM_TUNE_COMPLETE | FM_BAND_LIMIT); in fm_rx_seek()
260 fmdev->irq_info.mask = intr_flag; in fm_rx_seek()
261 payload = fmdev->irq_info.mask; in fm_rx_seek()
262 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_seek()
269 fmdev->rx.freq = seek_upward ? in fm_rx_seek()
270 fmdev->rx.region.top_freq : in fm_rx_seek()
271 fmdev->rx.region.bot_freq; in fm_rx_seek()
273 fmdev->rx.freq = seek_upward ? in fm_rx_seek()
274 fmdev->rx.region.bot_freq : in fm_rx_seek()
275 fmdev->rx.region.top_freq; in fm_rx_seek()
277 next_frq = (fmdev->rx.freq - in fm_rx_seek()
278 fmdev->rx.region.bot_freq) / FM_FREQ_MUL; in fm_rx_seek()
283 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_RD, NULL, 2, in fm_rx_seek()
289 fmdev->rx.freq = (fmdev->rx.region.bot_freq + in fm_rx_seek()
294 fm_rx_reset_rds_cache(fmdev); in fm_rx_seek()
295 fm_rx_reset_station_info(fmdev); in fm_rx_seek()
300 int fm_rx_set_volume(struct fmdev *fmdev, u16 vol_to_set) in fm_rx_set_volume() argument
305 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_volume()
316 ret = fmc_send_cmd(fmdev, VOLUME_SET, REG_WR, &payload, in fm_rx_set_volume()
321 fmdev->rx.volume = vol_to_set; in fm_rx_set_volume()
326 int fm_rx_get_volume(struct fmdev *fmdev, u16 *curr_vol) in fm_rx_get_volume() argument
328 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_volume()
336 *curr_vol = fmdev->rx.volume / FM_RX_VOLUME_GAIN_STEP; in fm_rx_get_volume()
342 int fm_rx_get_band_freq_range(struct fmdev *fmdev, u32 *bot_freq, u32 *top_freq) in fm_rx_get_band_freq_range() argument
345 *bot_freq = fmdev->rx.region.bot_freq; in fm_rx_get_band_freq_range()
348 *top_freq = fmdev->rx.region.top_freq; in fm_rx_get_band_freq_range()
354 void fm_rx_get_region(struct fmdev *fmdev, u8 *region) in fm_rx_get_region() argument
356 *region = fmdev->rx.region.fm_band; in fm_rx_get_region()
360 int fm_rx_set_region(struct fmdev *fmdev, u8 region_to_set) in fm_rx_set_region() argument
372 if (fmdev->rx.region.fm_band == region_to_set) { in fm_rx_set_region()
379 ret = fmc_send_cmd(fmdev, BAND_SET, REG_WR, &payload, in fm_rx_set_region()
384 fmc_update_region_info(fmdev, region_to_set); in fm_rx_set_region()
387 if (fmdev->rx.freq < fmdev->rx.region.bot_freq) in fm_rx_set_region()
388 new_frq = fmdev->rx.region.bot_freq; in fm_rx_set_region()
389 else if (fmdev->rx.freq > fmdev->rx.region.top_freq) in fm_rx_set_region()
390 new_frq = fmdev->rx.region.top_freq; in fm_rx_set_region()
396 ret = fm_rx_set_freq(fmdev, new_frq); in fm_rx_set_region()
403 int fm_rx_get_mute_mode(struct fmdev *fmdev, u8 *curr_mute_mode) in fm_rx_get_mute_mode() argument
405 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_mute_mode()
413 *curr_mute_mode = fmdev->rx.mute_mode; in fm_rx_get_mute_mode()
418 static int fm_config_rx_mute_reg(struct fmdev *fmdev) in fm_config_rx_mute_reg() argument
424 switch (fmdev->rx.mute_mode) { in fm_config_rx_mute_reg()
437 if (fmdev->rx.rf_depend_mute == FM_RX_RF_DEPENDENT_MUTE_ON) in fm_config_rx_mute_reg()
443 ret = fmc_send_cmd(fmdev, MUTE_STATUS_SET, REG_WR, &payload, in fm_config_rx_mute_reg()
452 int fm_rx_set_mute_mode(struct fmdev *fmdev, u8 mute_mode_toset) in fm_rx_set_mute_mode() argument
457 if (fmdev->rx.mute_mode == mute_mode_toset) in fm_rx_set_mute_mode()
460 org_state = fmdev->rx.mute_mode; in fm_rx_set_mute_mode()
461 fmdev->rx.mute_mode = mute_mode_toset; in fm_rx_set_mute_mode()
463 ret = fm_config_rx_mute_reg(fmdev); in fm_rx_set_mute_mode()
465 fmdev->rx.mute_mode = org_state; in fm_rx_set_mute_mode()
473 int fm_rx_get_rfdepend_softmute(struct fmdev *fmdev, u8 *curr_mute_mode) in fm_rx_get_rfdepend_softmute() argument
475 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_rfdepend_softmute()
483 *curr_mute_mode = fmdev->rx.rf_depend_mute; in fm_rx_get_rfdepend_softmute()
489 int fm_rx_set_rfdepend_softmute(struct fmdev *fmdev, u8 rfdepend_mute) in fm_rx_set_rfdepend_softmute() argument
494 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_rfdepend_softmute()
502 if (fmdev->rx.rf_depend_mute == rfdepend_mute) in fm_rx_set_rfdepend_softmute()
505 org_state = fmdev->rx.rf_depend_mute; in fm_rx_set_rfdepend_softmute()
506 fmdev->rx.rf_depend_mute = rfdepend_mute; in fm_rx_set_rfdepend_softmute()
508 ret = fm_config_rx_mute_reg(fmdev); in fm_rx_set_rfdepend_softmute()
510 fmdev->rx.rf_depend_mute = org_state; in fm_rx_set_rfdepend_softmute()
518 int fm_rx_get_rssi_level(struct fmdev *fmdev, u16 *rssilvl) in fm_rx_get_rssi_level() argument
529 ret = fmc_send_cmd(fmdev, RSSI_LVL_GET, REG_RD, NULL, 2, in fm_rx_get_rssi_level()
543 int fm_rx_set_rssi_threshold(struct fmdev *fmdev, short rssi_lvl_toset) in fm_rx_set_rssi_threshold() argument
554 ret = fmc_send_cmd(fmdev, SEARCH_LVL_SET, REG_WR, &payload, in fm_rx_set_rssi_threshold()
559 fmdev->rx.rssi_threshold = rssi_lvl_toset; in fm_rx_set_rssi_threshold()
565 int fm_rx_get_rssi_threshold(struct fmdev *fmdev, short *curr_rssi_lvl) in fm_rx_get_rssi_threshold() argument
567 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_rssi_threshold()
575 *curr_rssi_lvl = fmdev->rx.rssi_threshold; in fm_rx_get_rssi_threshold()
581 int fm_rx_set_stereo_mono(struct fmdev *fmdev, u16 mode) in fm_rx_set_stereo_mono() argument
593 ret = fmc_send_cmd(fmdev, MOST_MODE_SET, REG_WR, &payload, in fm_rx_set_stereo_mono()
600 ret = fmc_send_cmd(fmdev, MOST_BLEND_SET, REG_WR, &payload, in fm_rx_set_stereo_mono()
609 int fm_rx_get_stereo_mono(struct fmdev *fmdev, u16 *mode) in fm_rx_get_stereo_mono() argument
620 ret = fmc_send_cmd(fmdev, MOST_MODE_SET, REG_RD, NULL, 2, in fm_rx_get_stereo_mono()
631 int fm_rx_set_deemphasis_mode(struct fmdev *fmdev, u16 mode) in fm_rx_set_deemphasis_mode() argument
636 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_deemphasis_mode()
646 ret = fmc_send_cmd(fmdev, DEMPH_MODE_SET, REG_WR, &payload, in fm_rx_set_deemphasis_mode()
651 fmdev->rx.deemphasis_mode = mode; in fm_rx_set_deemphasis_mode()
657 int fm_rx_get_deemph_mode(struct fmdev *fmdev, u16 *curr_deemphasis_mode) in fm_rx_get_deemph_mode() argument
659 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_deemph_mode()
667 *curr_deemphasis_mode = fmdev->rx.deemphasis_mode; in fm_rx_get_deemph_mode()
673 int fm_rx_set_rds_mode(struct fmdev *fmdev, u8 rds_en_dis) in fm_rx_set_rds_mode() argument
684 && fmdev->rx.rds.flag == FM_RDS_DISABLE) { in fm_rx_set_rds_mode()
687 ret = fmc_send_cmd(fmdev, POWER_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
694 ret = fmc_send_cmd(fmdev, RDS_CNTRL_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
700 ret = fmc_send_cmd(fmdev, FLAG_GET, REG_RD, NULL, 2, in fm_rx_set_rds_mode()
707 ret = fmc_send_cmd(fmdev, RDS_MEM_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
713 fmdev->irq_info.mask |= FM_RDS_EVENT; in fm_rx_set_rds_mode()
714 payload = fmdev->irq_info.mask; in fm_rx_set_rds_mode()
715 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
718 fmdev->irq_info.mask &= ~FM_RDS_EVENT; in fm_rx_set_rds_mode()
723 fmdev->rx.rds.flag = FM_RDS_ENABLE; in fm_rx_set_rds_mode()
725 && fmdev->rx.rds.flag == FM_RDS_ENABLE) { in fm_rx_set_rds_mode()
728 ret = fmc_send_cmd(fmdev, POWER_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
734 fmdev->rx.rds.last_blk_idx = 0; in fm_rx_set_rds_mode()
735 fmdev->rx.rds.wr_idx = 0; in fm_rx_set_rds_mode()
736 fmdev->rx.rds.rd_idx = 0; in fm_rx_set_rds_mode()
737 fm_rx_reset_station_info(fmdev); in fm_rx_set_rds_mode()
740 fmdev->irq_info.mask &= ~(FM_RDS_EVENT); in fm_rx_set_rds_mode()
741 fmdev->rx.rds.flag = FM_RDS_DISABLE; in fm_rx_set_rds_mode()
748 int fm_rx_get_rds_mode(struct fmdev *fmdev, u8 *curr_rds_en_dis) in fm_rx_get_rds_mode() argument
750 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_rds_mode()
758 *curr_rds_en_dis = fmdev->rx.rds.flag; in fm_rx_get_rds_mode()
764 int fm_rx_set_rds_system(struct fmdev *fmdev, u8 rds_mode) in fm_rx_set_rds_system() argument
769 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_rds_system()
778 ret = fmc_send_cmd(fmdev, RDS_SYSTEM_SET, REG_WR, &payload, in fm_rx_set_rds_system()
783 fmdev->rx.rds_mode = rds_mode; in fm_rx_set_rds_system()
789 int fm_rx_get_rds_system(struct fmdev *fmdev, u8 *rds_mode) in fm_rx_get_rds_system() argument
791 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_rds_system()
799 *rds_mode = fmdev->rx.rds_mode; in fm_rx_get_rds_system()
805 int fm_rx_set_af_switch(struct fmdev *fmdev, u8 af_mode) in fm_rx_set_af_switch() argument
810 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_af_switch()
820 fmdev->irq_info.mask |= FM_LEV_EVENT; in fm_rx_set_af_switch()
822 fmdev->irq_info.mask &= ~FM_LEV_EVENT; in fm_rx_set_af_switch()
824 payload = fmdev->irq_info.mask; in fm_rx_set_af_switch()
825 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_set_af_switch()
830 fmdev->rx.af_mode = af_mode; in fm_rx_set_af_switch()
836 int fm_rx_get_af_switch(struct fmdev *fmdev, u8 *af_mode) in fm_rx_get_af_switch() argument
838 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_af_switch()
846 *af_mode = fmdev->rx.af_mode; in fm_rx_get_af_switch()