Lines Matching refs:fmdev
37 struct fmdev *fmdev; in fm_v4l2_fops_read() local
39 fmdev = video_drvdata(file); in fm_v4l2_fops_read()
46 if (mutex_lock_interruptible(&fmdev->mutex)) in fm_v4l2_fops_read()
50 ret = fm_rx_get_rds_mode(fmdev, &rds_mode); in fm_v4l2_fops_read()
57 ret = fmc_set_rds_mode(fmdev, FM_RDS_ENABLE); in fm_v4l2_fops_read()
65 ret = fmc_transfer_rds_from_internal_buff(fmdev, file, buf, count); in fm_v4l2_fops_read()
67 mutex_unlock(&fmdev->mutex); in fm_v4l2_fops_read()
77 struct fmdev *fmdev; in fm_v4l2_fops_write() local
86 fmdev = video_drvdata(file); in fm_v4l2_fops_write()
87 if (mutex_lock_interruptible(&fmdev->mutex)) in fm_v4l2_fops_write()
89 fm_tx_set_radio_text(fmdev, rds.text, rds.text_type); in fm_v4l2_fops_write()
90 fm_tx_set_af(fmdev, rds.af_freq); in fm_v4l2_fops_write()
91 mutex_unlock(&fmdev->mutex); in fm_v4l2_fops_write()
99 struct fmdev *fmdev; in fm_v4l2_fops_poll() local
101 fmdev = video_drvdata(file); in fm_v4l2_fops_poll()
102 mutex_lock(&fmdev->mutex); in fm_v4l2_fops_poll()
103 ret = fmc_is_rds_data_available(fmdev, file, pts); in fm_v4l2_fops_poll()
104 mutex_unlock(&fmdev->mutex); in fm_v4l2_fops_poll()
118 struct fmdev *fmdev = NULL; in fm_v4l2_fops_open() local
126 fmdev = video_drvdata(file); in fm_v4l2_fops_open()
128 if (mutex_lock_interruptible(&fmdev->mutex)) in fm_v4l2_fops_open()
130 ret = fmc_prepare(fmdev); in fm_v4l2_fops_open()
138 ret = fmc_set_mode(fmdev, FM_MODE_RX); in fm_v4l2_fops_open()
146 mutex_unlock(&fmdev->mutex); in fm_v4l2_fops_open()
153 struct fmdev *fmdev; in fm_v4l2_fops_release() local
155 fmdev = video_drvdata(file); in fm_v4l2_fops_release()
161 mutex_lock(&fmdev->mutex); in fm_v4l2_fops_release()
162 ret = fmc_set_mode(fmdev, FM_MODE_OFF); in fm_v4l2_fops_release()
168 ret = fmc_release(fmdev); in fm_v4l2_fops_release()
176 mutex_unlock(&fmdev->mutex); in fm_v4l2_fops_release()
193 struct fmdev *fmdev = container_of(ctrl->handler, in fm_g_volatile_ctrl() local
194 struct fmdev, ctrl_handler); in fm_g_volatile_ctrl()
198 ctrl->val = fm_tx_get_tune_cap_val(fmdev); in fm_g_volatile_ctrl()
210 struct fmdev *fmdev = container_of(ctrl->handler, in fm_v4l2_s_ctrl() local
211 struct fmdev, ctrl_handler); in fm_v4l2_s_ctrl()
215 return fm_rx_set_volume(fmdev, (u16)ctrl->val); in fm_v4l2_s_ctrl()
218 return fmc_set_mute_mode(fmdev, (u8)ctrl->val); in fm_v4l2_s_ctrl()
222 return fm_tx_set_pwr_lvl(fmdev, (u8)ctrl->val); in fm_v4l2_s_ctrl()
225 return fm_tx_set_preemph_filter(fmdev, (u8) ctrl->val); in fm_v4l2_s_ctrl()
255 struct fmdev *fmdev = video_drvdata(file); in fm_v4l2_vidioc_g_tuner() local
265 if (fmdev->curr_fmmode != FM_MODE_RX) in fm_v4l2_vidioc_g_tuner()
268 ret = fm_rx_get_band_freq_range(fmdev, &bottom_freq, &top_freq); in fm_v4l2_vidioc_g_tuner()
272 ret = fm_rx_get_stereo_mono(fmdev, &stereo_mono_mode); in fm_v4l2_vidioc_g_tuner()
276 ret = fm_rx_get_rssi_level(fmdev, &rssilvl); in fm_v4l2_vidioc_g_tuner()
286 ((fmdev->rx.rds.flag == FM_RDS_ENABLE) ? V4L2_TUNER_SUB_RDS : 0); in fm_v4l2_vidioc_g_tuner()
318 struct fmdev *fmdev = video_drvdata(file); in fm_v4l2_vidioc_s_tuner() local
331 if (fmdev->curr_fmmode != FM_MODE_RX) { in fm_v4l2_vidioc_s_tuner()
332 ret = fmc_set_mode(fmdev, FM_MODE_RX); in fm_v4l2_vidioc_s_tuner()
339 ret = fmc_set_stereo_mono(fmdev, aud_mode); in fm_v4l2_vidioc_s_tuner()
345 ret = fmc_set_rds_mode(fmdev, rds_mode); in fm_v4l2_vidioc_s_tuner()
356 struct fmdev *fmdev = video_drvdata(file); in fm_v4l2_vidioc_g_freq() local
359 ret = fmc_get_freq(fmdev, &freq->frequency); in fm_v4l2_vidioc_g_freq()
375 struct fmdev *fmdev = video_drvdata(file); in fm_v4l2_vidioc_s_freq() local
381 return fmc_set_freq(fmdev, freq->frequency / 16); in fm_v4l2_vidioc_s_freq()
388 struct fmdev *fmdev = video_drvdata(file); in fm_v4l2_vidioc_s_hw_freq_seek() local
394 if (fmdev->curr_fmmode != FM_MODE_RX) { in fm_v4l2_vidioc_s_hw_freq_seek()
395 ret = fmc_set_mode(fmdev, FM_MODE_RX); in fm_v4l2_vidioc_s_hw_freq_seek()
402 ret = fm_rx_seek(fmdev, seek->seek_upward, seek->wrap_around, in fm_v4l2_vidioc_s_hw_freq_seek()
413 struct fmdev *fmdev = video_drvdata(file); in fm_v4l2_vidioc_g_modulator() local
418 if (fmdev->curr_fmmode != FM_MODE_TX) in fm_v4l2_vidioc_g_modulator()
421 mod->txsubchans = ((fmdev->tx_data.aud_mode == FM_STEREO_MODE) ? in fm_v4l2_vidioc_g_modulator()
423 ((fmdev->tx_data.rds.flag == FM_RDS_ENABLE) ? in fm_v4l2_vidioc_g_modulator()
436 struct fmdev *fmdev = video_drvdata(file); in fm_v4l2_vidioc_s_modulator() local
444 if (fmdev->curr_fmmode != FM_MODE_TX) { in fm_v4l2_vidioc_s_modulator()
445 ret = fmc_set_mode(fmdev, FM_MODE_TX); in fm_v4l2_vidioc_s_modulator()
456 ret = fm_tx_set_stereo_mono(fmdev, aud_mode); in fm_v4l2_vidioc_s_modulator()
461 ret = fm_tx_set_rds_mode(fmdev, rds_mode); in fm_v4l2_vidioc_s_modulator()
516 int fm_v4l2_init_video_device(struct fmdev *fmdev, int radio_nr) in fm_v4l2_init_video_device() argument
521 strscpy(fmdev->v4l2_dev.name, FM_DRV_NAME, in fm_v4l2_init_video_device()
522 sizeof(fmdev->v4l2_dev.name)); in fm_v4l2_init_video_device()
523 ret = v4l2_device_register(NULL, &fmdev->v4l2_dev); in fm_v4l2_init_video_device()
528 mutex_init(&fmdev->mutex); in fm_v4l2_init_video_device()
533 video_set_drvdata(&gradio_dev, fmdev); in fm_v4l2_init_video_device()
535 gradio_dev.lock = &fmdev->mutex; in fm_v4l2_init_video_device()
536 gradio_dev.v4l2_dev = &fmdev->v4l2_dev; in fm_v4l2_init_video_device()
540 v4l2_device_unregister(&fmdev->v4l2_dev); in fm_v4l2_init_video_device()
545 fmdev->radio_dev = &gradio_dev; in fm_v4l2_init_video_device()
548 fmdev->radio_dev->ctrl_handler = &fmdev->ctrl_handler; in fm_v4l2_init_video_device()
550 ret = v4l2_ctrl_handler_init(&fmdev->ctrl_handler, 5); in fm_v4l2_init_video_device()
553 v4l2_ctrl_handler_free(&fmdev->ctrl_handler); in fm_v4l2_init_video_device()
554 video_unregister_device(fmdev->radio_dev); in fm_v4l2_init_video_device()
555 v4l2_device_unregister(&fmdev->v4l2_dev); in fm_v4l2_init_video_device()
563 v4l2_ctrl_new_std(&fmdev->ctrl_handler, &fm_ctrl_ops, in fm_v4l2_init_video_device()
567 v4l2_ctrl_new_std(&fmdev->ctrl_handler, &fm_ctrl_ops, in fm_v4l2_init_video_device()
570 v4l2_ctrl_new_std_menu(&fmdev->ctrl_handler, &fm_ctrl_ops, in fm_v4l2_init_video_device()
574 v4l2_ctrl_new_std(&fmdev->ctrl_handler, &fm_ctrl_ops, in fm_v4l2_init_video_device()
578 ctrl = v4l2_ctrl_new_std(&fmdev->ctrl_handler, &fm_ctrl_ops, in fm_v4l2_init_video_device()
590 struct fmdev *fmdev; in fm_v4l2_deinit_video_device() local
593 fmdev = video_get_drvdata(&gradio_dev); in fm_v4l2_deinit_video_device()
596 v4l2_ctrl_handler_free(&fmdev->ctrl_handler); in fm_v4l2_deinit_video_device()
601 v4l2_device_unregister(&fmdev->v4l2_dev); in fm_v4l2_deinit_video_device()
603 return fmdev; in fm_v4l2_deinit_video_device()