Lines Matching refs:radio

93 static int ma901radio_set_freq(struct ma901radio_device *radio, int freq)  in ma901radio_set_freq()  argument
98 radio->buffer[0] = 0x0a; in ma901radio_set_freq()
99 radio->buffer[1] = MA901_RADIO_SET_FREQ; in ma901radio_set_freq()
100 radio->buffer[2] = ((freq_send >> 8) & 0xff) + 0x80; in ma901radio_set_freq()
101 radio->buffer[3] = freq_send & 0xff; in ma901radio_set_freq()
102 radio->buffer[4] = 0x00; in ma901radio_set_freq()
103 radio->buffer[5] = 0x00; in ma901radio_set_freq()
104 radio->buffer[6] = 0x00; in ma901radio_set_freq()
105 radio->buffer[7] = 0x00; in ma901radio_set_freq()
107 retval = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0), in ma901radio_set_freq()
109 radio->buffer, BUFFER_LENGTH, USB_TIMEOUT); in ma901radio_set_freq()
113 radio->curfreq = freq; in ma901radio_set_freq()
117 static int ma901radio_set_volume(struct ma901radio_device *radio, u16 vol_to_set) in ma901radio_set_volume() argument
121 radio->buffer[0] = 0x0a; in ma901radio_set_volume()
122 radio->buffer[1] = MA901_RADIO_SET_VOLUME; in ma901radio_set_volume()
123 radio->buffer[2] = 0xc2; in ma901radio_set_volume()
124 radio->buffer[3] = vol_to_set + 0x20; in ma901radio_set_volume()
125 radio->buffer[4] = 0x00; in ma901radio_set_volume()
126 radio->buffer[5] = 0x00; in ma901radio_set_volume()
127 radio->buffer[6] = 0x00; in ma901radio_set_volume()
128 radio->buffer[7] = 0x00; in ma901radio_set_volume()
130 retval = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0), in ma901radio_set_volume()
132 radio->buffer, BUFFER_LENGTH, USB_TIMEOUT); in ma901radio_set_volume()
136 radio->volume = vol_to_set; in ma901radio_set_volume()
140 static int ma901_set_stereo(struct ma901radio_device *radio, u8 stereo) in ma901_set_stereo() argument
144 radio->buffer[0] = 0x0a; in ma901_set_stereo()
145 radio->buffer[1] = MA901_RADIO_SET_MONO_STEREO; in ma901_set_stereo()
146 radio->buffer[2] = stereo; in ma901_set_stereo()
147 radio->buffer[3] = 0x00; in ma901_set_stereo()
148 radio->buffer[4] = 0x00; in ma901_set_stereo()
149 radio->buffer[5] = 0x00; in ma901_set_stereo()
150 radio->buffer[6] = 0x00; in ma901_set_stereo()
151 radio->buffer[7] = 0x00; in ma901_set_stereo()
153 retval = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0), in ma901_set_stereo()
155 radio->buffer, BUFFER_LENGTH, USB_TIMEOUT); in ma901_set_stereo()
161 radio->stereo = V4L2_TUNER_MODE_STEREO; in ma901_set_stereo()
163 radio->stereo = V4L2_TUNER_MODE_MONO; in ma901_set_stereo()
175 struct ma901radio_device *radio = to_ma901radio_dev(usb_get_intfdata(intf)); in usb_ma901radio_disconnect() local
177 mutex_lock(&radio->lock); in usb_ma901radio_disconnect()
178 video_unregister_device(&radio->vdev); in usb_ma901radio_disconnect()
180 v4l2_device_disconnect(&radio->v4l2_dev); in usb_ma901radio_disconnect()
181 mutex_unlock(&radio->lock); in usb_ma901radio_disconnect()
182 v4l2_device_put(&radio->v4l2_dev); in usb_ma901radio_disconnect()
189 struct ma901radio_device *radio = video_drvdata(file); in vidioc_querycap() local
193 usb_make_path(radio->usbdev, v->bus_info, sizeof(v->bus_info)); in vidioc_querycap()
201 struct ma901radio_device *radio = video_drvdata(file); in vidioc_g_tuner() local
220 v->audmode = radio->stereo ? in vidioc_g_tuner()
229 struct ma901radio_device *radio = video_drvdata(file); in vidioc_s_tuner() local
237 return ma901_set_stereo(radio, MA901_WANT_MONO); in vidioc_s_tuner()
239 return ma901_set_stereo(radio, MA901_WANT_STEREO); in vidioc_s_tuner()
247 struct ma901radio_device *radio = video_drvdata(file); in vidioc_s_frequency() local
252 return ma901radio_set_freq(radio, clamp_t(unsigned, f->frequency, in vidioc_s_frequency()
260 struct ma901radio_device *radio = video_drvdata(file); in vidioc_g_frequency() local
264 f->frequency = radio->curfreq; in vidioc_g_frequency()
271 struct ma901radio_device *radio = in usb_ma901radio_s_ctrl() local
276 return ma901radio_set_volume(radio, (u16)ctrl->val); in usb_ma901radio_s_ctrl()
323 struct ma901radio_device *radio = to_ma901radio_dev(v4l2_dev); in usb_ma901radio_release() local
325 v4l2_ctrl_handler_free(&radio->hdl); in usb_ma901radio_release()
326 v4l2_device_unregister(&radio->v4l2_dev); in usb_ma901radio_release()
327 kfree(radio->buffer); in usb_ma901radio_release()
328 kfree(radio); in usb_ma901radio_release()
336 struct ma901radio_device *radio; in usb_ma901radio_probe() local
349 radio = kzalloc(sizeof(struct ma901radio_device), GFP_KERNEL); in usb_ma901radio_probe()
350 if (!radio) { in usb_ma901radio_probe()
356 radio->buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL); in usb_ma901radio_probe()
357 if (!radio->buffer) { in usb_ma901radio_probe()
363 retval = v4l2_device_register(&intf->dev, &radio->v4l2_dev); in usb_ma901radio_probe()
369 v4l2_ctrl_handler_init(&radio->hdl, 1); in usb_ma901radio_probe()
379 v4l2_ctrl_new_std(&radio->hdl, &usb_ma901radio_ctrl_ops, in usb_ma901radio_probe()
383 if (radio->hdl.error) { in usb_ma901radio_probe()
384 retval = radio->hdl.error; in usb_ma901radio_probe()
388 mutex_init(&radio->lock); in usb_ma901radio_probe()
390 radio->v4l2_dev.ctrl_handler = &radio->hdl; in usb_ma901radio_probe()
391 radio->v4l2_dev.release = usb_ma901radio_release; in usb_ma901radio_probe()
392 strscpy(radio->vdev.name, radio->v4l2_dev.name, in usb_ma901radio_probe()
393 sizeof(radio->vdev.name)); in usb_ma901radio_probe()
394 radio->vdev.v4l2_dev = &radio->v4l2_dev; in usb_ma901radio_probe()
395 radio->vdev.fops = &usb_ma901radio_fops; in usb_ma901radio_probe()
396 radio->vdev.ioctl_ops = &usb_ma901radio_ioctl_ops; in usb_ma901radio_probe()
397 radio->vdev.release = video_device_release_empty; in usb_ma901radio_probe()
398 radio->vdev.lock = &radio->lock; in usb_ma901radio_probe()
399 radio->vdev.device_caps = V4L2_CAP_RADIO | V4L2_CAP_TUNER; in usb_ma901radio_probe()
401 radio->usbdev = interface_to_usbdev(intf); in usb_ma901radio_probe()
402 radio->intf = intf; in usb_ma901radio_probe()
403 usb_set_intfdata(intf, &radio->v4l2_dev); in usb_ma901radio_probe()
404 radio->curfreq = 95.21 * FREQ_MUL; in usb_ma901radio_probe()
406 video_set_drvdata(&radio->vdev, radio); in usb_ma901radio_probe()
415 retval = video_register_device(&radio->vdev, VFL_TYPE_RADIO, in usb_ma901radio_probe()
425 v4l2_ctrl_handler_free(&radio->hdl); in usb_ma901radio_probe()
427 v4l2_device_unregister(&radio->v4l2_dev); in usb_ma901radio_probe()
429 kfree(radio->buffer); in usb_ma901radio_probe()
431 kfree(radio); in usb_ma901radio_probe()