Lines Matching refs:fmdev

24 void fm_rx_reset_rds_cache(struct fmdev *fmdev)  in fm_rx_reset_rds_cache()  argument
26 fmdev->rx.rds.flag = FM_RDS_DISABLE; in fm_rx_reset_rds_cache()
27 fmdev->rx.rds.last_blk_idx = 0; in fm_rx_reset_rds_cache()
28 fmdev->rx.rds.wr_idx = 0; in fm_rx_reset_rds_cache()
29 fmdev->rx.rds.rd_idx = 0; in fm_rx_reset_rds_cache()
31 if (fmdev->rx.af_mode == FM_RX_RDS_AF_SWITCH_MODE_ON) in fm_rx_reset_rds_cache()
32 fmdev->irq_info.mask |= FM_LEV_EVENT; in fm_rx_reset_rds_cache()
35 void fm_rx_reset_station_info(struct fmdev *fmdev) in fm_rx_reset_station_info() argument
37 fmdev->rx.stat_info.picode = FM_NO_PI_CODE; in fm_rx_reset_station_info()
38 fmdev->rx.stat_info.afcache_size = 0; in fm_rx_reset_station_info()
39 fmdev->rx.stat_info.af_list_max = 0; in fm_rx_reset_station_info()
42 int fm_rx_set_freq(struct fmdev *fmdev, u32 freq) in fm_rx_set_freq() argument
50 if (freq < fmdev->rx.region.bot_freq || freq > fmdev->rx.region.top_freq) { in fm_rx_set_freq()
58 ret = fmc_send_cmd(fmdev, AUDIO_ENABLE_SET, REG_WR, &payload, in fm_rx_set_freq()
65 ret = fmc_send_cmd(fmdev, HILO_SET, REG_WR, &payload, in fm_rx_set_freq()
71 payload = (freq - fmdev->rx.region.bot_freq) / FM_FREQ_MUL; in fm_rx_set_freq()
73 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_WR, &payload, in fm_rx_set_freq()
79 ret = fmc_send_cmd(fmdev, FLAG_GET, REG_RD, NULL, 2, NULL, NULL); in fm_rx_set_freq()
84 intr_flag = fmdev->irq_info.mask; in fm_rx_set_freq()
85 fmdev->irq_info.mask = (FM_FR_EVENT | FM_BL_EVENT); in fm_rx_set_freq()
86 payload = fmdev->irq_info.mask; in fm_rx_set_freq()
87 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_set_freq()
94 ret = fmc_send_cmd(fmdev, TUNER_MODE_SET, REG_WR, &payload, in fm_rx_set_freq()
100 init_completion(&fmdev->maintask_comp); in fm_rx_set_freq()
101 timeleft = wait_for_completion_timeout(&fmdev->maintask_comp, in fm_rx_set_freq()
111 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_RD, NULL, 2, &curr_frq, &resp_len); in fm_rx_set_freq()
116 curr_frq_in_khz = (fmdev->rx.region.bot_freq + ((u32)curr_frq * FM_FREQ_MUL)); in fm_rx_set_freq()
124 fmdev->rx.freq = curr_frq_in_khz; in fm_rx_set_freq()
127 fmdev->irq_info.mask = intr_flag; in fm_rx_set_freq()
128 payload = fmdev->irq_info.mask; in fm_rx_set_freq()
129 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_set_freq()
135 fm_rx_reset_rds_cache(fmdev); in fm_rx_set_freq()
136 fm_rx_reset_station_info(fmdev); in fm_rx_set_freq()
141 static int fm_rx_set_channel_spacing(struct fmdev *fmdev, u32 spacing) in fm_rx_set_channel_spacing() argument
155 ret = fmc_send_cmd(fmdev, CHANL_BW_SET, REG_WR, &payload, in fm_rx_set_channel_spacing()
160 fmdev->rx.region.chanl_space = spacing * FM_FREQ_MUL; in fm_rx_set_channel_spacing()
165 int fm_rx_seek(struct fmdev *fmdev, u32 seek_upward, in fm_rx_seek() argument
176 ret = fm_rx_set_channel_spacing(fmdev, spacing); in fm_rx_seek()
183 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_RD, NULL, in fm_rx_seek()
189 last_frq = (fmdev->rx.region.top_freq - fmdev->rx.region.bot_freq) / FM_FREQ_MUL; in fm_rx_seek()
192 space_idx = fmdev->rx.region.chanl_space / FM_FREQ_MUL; in fm_rx_seek()
210 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_WR, &payload, in fm_rx_seek()
217 ret = fmc_send_cmd(fmdev, SEARCH_DIR_SET, REG_WR, &payload, in fm_rx_seek()
223 ret = fmc_send_cmd(fmdev, FLAG_GET, REG_RD, NULL, 2, NULL, NULL); in fm_rx_seek()
228 intr_flag = fmdev->irq_info.mask; in fm_rx_seek()
229 fmdev->irq_info.mask = (FM_FR_EVENT | FM_BL_EVENT); in fm_rx_seek()
230 payload = fmdev->irq_info.mask; in fm_rx_seek()
231 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_seek()
238 ret = fmc_send_cmd(fmdev, TUNER_MODE_SET, REG_WR, &payload, in fm_rx_seek()
244 init_completion(&fmdev->maintask_comp); in fm_rx_seek()
245 timeleft = wait_for_completion_timeout(&fmdev->maintask_comp, in fm_rx_seek()
253 int_reason = fmdev->irq_info.flag & (FM_TUNE_COMPLETE | FM_BAND_LIMIT); in fm_rx_seek()
256 fmdev->irq_info.mask = intr_flag; in fm_rx_seek()
257 payload = fmdev->irq_info.mask; in fm_rx_seek()
258 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_seek()
265 fmdev->rx.freq = seek_upward ? in fm_rx_seek()
266 fmdev->rx.region.top_freq : in fm_rx_seek()
267 fmdev->rx.region.bot_freq; in fm_rx_seek()
269 fmdev->rx.freq = seek_upward ? in fm_rx_seek()
270 fmdev->rx.region.bot_freq : in fm_rx_seek()
271 fmdev->rx.region.top_freq; in fm_rx_seek()
273 next_frq = (fmdev->rx.freq - in fm_rx_seek()
274 fmdev->rx.region.bot_freq) / FM_FREQ_MUL; in fm_rx_seek()
279 ret = fmc_send_cmd(fmdev, FREQ_SET, REG_RD, NULL, 2, in fm_rx_seek()
285 fmdev->rx.freq = (fmdev->rx.region.bot_freq + in fm_rx_seek()
290 fm_rx_reset_rds_cache(fmdev); in fm_rx_seek()
291 fm_rx_reset_station_info(fmdev); in fm_rx_seek()
296 int fm_rx_set_volume(struct fmdev *fmdev, u16 vol_to_set) in fm_rx_set_volume() argument
301 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_volume()
312 ret = fmc_send_cmd(fmdev, VOLUME_SET, REG_WR, &payload, in fm_rx_set_volume()
317 fmdev->rx.volume = vol_to_set; in fm_rx_set_volume()
322 int fm_rx_get_volume(struct fmdev *fmdev, u16 *curr_vol) in fm_rx_get_volume() argument
324 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_volume()
332 *curr_vol = fmdev->rx.volume / FM_RX_VOLUME_GAIN_STEP; in fm_rx_get_volume()
338 int fm_rx_get_band_freq_range(struct fmdev *fmdev, u32 *bot_freq, u32 *top_freq) in fm_rx_get_band_freq_range() argument
341 *bot_freq = fmdev->rx.region.bot_freq; in fm_rx_get_band_freq_range()
344 *top_freq = fmdev->rx.region.top_freq; in fm_rx_get_band_freq_range()
350 void fm_rx_get_region(struct fmdev *fmdev, u8 *region) in fm_rx_get_region() argument
352 *region = fmdev->rx.region.fm_band; in fm_rx_get_region()
356 int fm_rx_set_region(struct fmdev *fmdev, u8 region_to_set) in fm_rx_set_region() argument
368 if (fmdev->rx.region.fm_band == region_to_set) { in fm_rx_set_region()
375 ret = fmc_send_cmd(fmdev, BAND_SET, REG_WR, &payload, in fm_rx_set_region()
380 fmc_update_region_info(fmdev, region_to_set); in fm_rx_set_region()
383 if (fmdev->rx.freq < fmdev->rx.region.bot_freq) in fm_rx_set_region()
384 new_frq = fmdev->rx.region.bot_freq; in fm_rx_set_region()
385 else if (fmdev->rx.freq > fmdev->rx.region.top_freq) in fm_rx_set_region()
386 new_frq = fmdev->rx.region.top_freq; in fm_rx_set_region()
392 ret = fm_rx_set_freq(fmdev, new_frq); in fm_rx_set_region()
399 int fm_rx_get_mute_mode(struct fmdev *fmdev, u8 *curr_mute_mode) in fm_rx_get_mute_mode() argument
401 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_mute_mode()
409 *curr_mute_mode = fmdev->rx.mute_mode; in fm_rx_get_mute_mode()
414 static int fm_config_rx_mute_reg(struct fmdev *fmdev) in fm_config_rx_mute_reg() argument
420 switch (fmdev->rx.mute_mode) { in fm_config_rx_mute_reg()
433 if (fmdev->rx.rf_depend_mute == FM_RX_RF_DEPENDENT_MUTE_ON) in fm_config_rx_mute_reg()
439 ret = fmc_send_cmd(fmdev, MUTE_STATUS_SET, REG_WR, &payload, in fm_config_rx_mute_reg()
448 int fm_rx_set_mute_mode(struct fmdev *fmdev, u8 mute_mode_toset) in fm_rx_set_mute_mode() argument
453 if (fmdev->rx.mute_mode == mute_mode_toset) in fm_rx_set_mute_mode()
456 org_state = fmdev->rx.mute_mode; in fm_rx_set_mute_mode()
457 fmdev->rx.mute_mode = mute_mode_toset; in fm_rx_set_mute_mode()
459 ret = fm_config_rx_mute_reg(fmdev); in fm_rx_set_mute_mode()
461 fmdev->rx.mute_mode = org_state; in fm_rx_set_mute_mode()
469 int fm_rx_get_rfdepend_softmute(struct fmdev *fmdev, u8 *curr_mute_mode) in fm_rx_get_rfdepend_softmute() argument
471 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_rfdepend_softmute()
479 *curr_mute_mode = fmdev->rx.rf_depend_mute; in fm_rx_get_rfdepend_softmute()
485 int fm_rx_set_rfdepend_softmute(struct fmdev *fmdev, u8 rfdepend_mute) in fm_rx_set_rfdepend_softmute() argument
490 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_rfdepend_softmute()
498 if (fmdev->rx.rf_depend_mute == rfdepend_mute) in fm_rx_set_rfdepend_softmute()
501 org_state = fmdev->rx.rf_depend_mute; in fm_rx_set_rfdepend_softmute()
502 fmdev->rx.rf_depend_mute = rfdepend_mute; in fm_rx_set_rfdepend_softmute()
504 ret = fm_config_rx_mute_reg(fmdev); in fm_rx_set_rfdepend_softmute()
506 fmdev->rx.rf_depend_mute = org_state; in fm_rx_set_rfdepend_softmute()
514 int fm_rx_get_rssi_level(struct fmdev *fmdev, u16 *rssilvl) in fm_rx_get_rssi_level() argument
525 ret = fmc_send_cmd(fmdev, RSSI_LVL_GET, REG_RD, NULL, 2, in fm_rx_get_rssi_level()
539 int fm_rx_set_rssi_threshold(struct fmdev *fmdev, short rssi_lvl_toset) in fm_rx_set_rssi_threshold() argument
550 ret = fmc_send_cmd(fmdev, SEARCH_LVL_SET, REG_WR, &payload, in fm_rx_set_rssi_threshold()
555 fmdev->rx.rssi_threshold = rssi_lvl_toset; in fm_rx_set_rssi_threshold()
561 int fm_rx_get_rssi_threshold(struct fmdev *fmdev, short *curr_rssi_lvl) in fm_rx_get_rssi_threshold() argument
563 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_rssi_threshold()
571 *curr_rssi_lvl = fmdev->rx.rssi_threshold; in fm_rx_get_rssi_threshold()
577 int fm_rx_set_stereo_mono(struct fmdev *fmdev, u16 mode) in fm_rx_set_stereo_mono() argument
589 ret = fmc_send_cmd(fmdev, MOST_MODE_SET, REG_WR, &payload, in fm_rx_set_stereo_mono()
596 ret = fmc_send_cmd(fmdev, MOST_BLEND_SET, REG_WR, &payload, in fm_rx_set_stereo_mono()
605 int fm_rx_get_stereo_mono(struct fmdev *fmdev, u16 *mode) in fm_rx_get_stereo_mono() argument
616 ret = fmc_send_cmd(fmdev, MOST_MODE_SET, REG_RD, NULL, 2, in fm_rx_get_stereo_mono()
627 int fm_rx_set_deemphasis_mode(struct fmdev *fmdev, u16 mode) in fm_rx_set_deemphasis_mode() argument
632 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_deemphasis_mode()
642 ret = fmc_send_cmd(fmdev, DEMPH_MODE_SET, REG_WR, &payload, in fm_rx_set_deemphasis_mode()
647 fmdev->rx.deemphasis_mode = mode; in fm_rx_set_deemphasis_mode()
653 int fm_rx_get_deemph_mode(struct fmdev *fmdev, u16 *curr_deemphasis_mode) in fm_rx_get_deemph_mode() argument
655 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_deemph_mode()
663 *curr_deemphasis_mode = fmdev->rx.deemphasis_mode; in fm_rx_get_deemph_mode()
669 int fm_rx_set_rds_mode(struct fmdev *fmdev, u8 rds_en_dis) in fm_rx_set_rds_mode() argument
680 && fmdev->rx.rds.flag == FM_RDS_DISABLE) { in fm_rx_set_rds_mode()
683 ret = fmc_send_cmd(fmdev, POWER_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
690 ret = fmc_send_cmd(fmdev, RDS_CNTRL_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
696 ret = fmc_send_cmd(fmdev, FLAG_GET, REG_RD, NULL, 2, in fm_rx_set_rds_mode()
703 ret = fmc_send_cmd(fmdev, RDS_MEM_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
709 fmdev->irq_info.mask |= FM_RDS_EVENT; in fm_rx_set_rds_mode()
710 payload = fmdev->irq_info.mask; in fm_rx_set_rds_mode()
711 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
714 fmdev->irq_info.mask &= ~FM_RDS_EVENT; in fm_rx_set_rds_mode()
719 fmdev->rx.rds.flag = FM_RDS_ENABLE; in fm_rx_set_rds_mode()
721 && fmdev->rx.rds.flag == FM_RDS_ENABLE) { in fm_rx_set_rds_mode()
724 ret = fmc_send_cmd(fmdev, POWER_SET, REG_WR, &payload, in fm_rx_set_rds_mode()
730 fmdev->rx.rds.last_blk_idx = 0; in fm_rx_set_rds_mode()
731 fmdev->rx.rds.wr_idx = 0; in fm_rx_set_rds_mode()
732 fmdev->rx.rds.rd_idx = 0; in fm_rx_set_rds_mode()
733 fm_rx_reset_station_info(fmdev); in fm_rx_set_rds_mode()
736 fmdev->irq_info.mask &= ~(FM_RDS_EVENT); in fm_rx_set_rds_mode()
737 fmdev->rx.rds.flag = FM_RDS_DISABLE; in fm_rx_set_rds_mode()
744 int fm_rx_get_rds_mode(struct fmdev *fmdev, u8 *curr_rds_en_dis) in fm_rx_get_rds_mode() argument
746 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_rds_mode()
754 *curr_rds_en_dis = fmdev->rx.rds.flag; in fm_rx_get_rds_mode()
760 int fm_rx_set_rds_system(struct fmdev *fmdev, u8 rds_mode) in fm_rx_set_rds_system() argument
765 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_rds_system()
774 ret = fmc_send_cmd(fmdev, RDS_SYSTEM_SET, REG_WR, &payload, in fm_rx_set_rds_system()
779 fmdev->rx.rds_mode = rds_mode; in fm_rx_set_rds_system()
785 int fm_rx_set_af_switch(struct fmdev *fmdev, u8 af_mode) in fm_rx_set_af_switch() argument
790 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_set_af_switch()
800 fmdev->irq_info.mask |= FM_LEV_EVENT; in fm_rx_set_af_switch()
802 fmdev->irq_info.mask &= ~FM_LEV_EVENT; in fm_rx_set_af_switch()
804 payload = fmdev->irq_info.mask; in fm_rx_set_af_switch()
805 ret = fmc_send_cmd(fmdev, INT_MASK_SET, REG_WR, &payload, in fm_rx_set_af_switch()
810 fmdev->rx.af_mode = af_mode; in fm_rx_set_af_switch()
816 int fm_rx_get_af_switch(struct fmdev *fmdev, u8 *af_mode) in fm_rx_get_af_switch() argument
818 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_rx_get_af_switch()
826 *af_mode = fmdev->rx.af_mode; in fm_rx_get_af_switch()