Lines Matching refs:radio
106 static int ma901radio_set_freq(struct ma901radio_device *radio, int freq) in ma901radio_set_freq() argument
111 radio->buffer[0] = 0x0a; in ma901radio_set_freq()
112 radio->buffer[1] = MA901_RADIO_SET_FREQ; in ma901radio_set_freq()
113 radio->buffer[2] = ((freq_send >> 8) & 0xff) + 0x80; in ma901radio_set_freq()
114 radio->buffer[3] = freq_send & 0xff; in ma901radio_set_freq()
115 radio->buffer[4] = 0x00; in ma901radio_set_freq()
116 radio->buffer[5] = 0x00; in ma901radio_set_freq()
117 radio->buffer[6] = 0x00; in ma901radio_set_freq()
118 radio->buffer[7] = 0x00; in ma901radio_set_freq()
120 retval = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0), in ma901radio_set_freq()
122 radio->buffer, BUFFER_LENGTH, USB_TIMEOUT); in ma901radio_set_freq()
126 radio->curfreq = freq; in ma901radio_set_freq()
130 static int ma901radio_set_volume(struct ma901radio_device *radio, u16 vol_to_set) in ma901radio_set_volume() argument
134 radio->buffer[0] = 0x0a; in ma901radio_set_volume()
135 radio->buffer[1] = MA901_RADIO_SET_VOLUME; in ma901radio_set_volume()
136 radio->buffer[2] = 0xc2; in ma901radio_set_volume()
137 radio->buffer[3] = vol_to_set + 0x20; in ma901radio_set_volume()
138 radio->buffer[4] = 0x00; in ma901radio_set_volume()
139 radio->buffer[5] = 0x00; in ma901radio_set_volume()
140 radio->buffer[6] = 0x00; in ma901radio_set_volume()
141 radio->buffer[7] = 0x00; in ma901radio_set_volume()
143 retval = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0), in ma901radio_set_volume()
145 radio->buffer, BUFFER_LENGTH, USB_TIMEOUT); in ma901radio_set_volume()
149 radio->volume = vol_to_set; in ma901radio_set_volume()
153 static int ma901_set_stereo(struct ma901radio_device *radio, u8 stereo) in ma901_set_stereo() argument
157 radio->buffer[0] = 0x0a; in ma901_set_stereo()
158 radio->buffer[1] = MA901_RADIO_SET_MONO_STEREO; in ma901_set_stereo()
159 radio->buffer[2] = stereo; in ma901_set_stereo()
160 radio->buffer[3] = 0x00; in ma901_set_stereo()
161 radio->buffer[4] = 0x00; in ma901_set_stereo()
162 radio->buffer[5] = 0x00; in ma901_set_stereo()
163 radio->buffer[6] = 0x00; in ma901_set_stereo()
164 radio->buffer[7] = 0x00; in ma901_set_stereo()
166 retval = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0), in ma901_set_stereo()
168 radio->buffer, BUFFER_LENGTH, USB_TIMEOUT); in ma901_set_stereo()
174 radio->stereo = V4L2_TUNER_MODE_STEREO; in ma901_set_stereo()
176 radio->stereo = V4L2_TUNER_MODE_MONO; in ma901_set_stereo()
188 struct ma901radio_device *radio = to_ma901radio_dev(usb_get_intfdata(intf)); in usb_ma901radio_disconnect() local
190 mutex_lock(&radio->lock); in usb_ma901radio_disconnect()
191 video_unregister_device(&radio->vdev); in usb_ma901radio_disconnect()
193 v4l2_device_disconnect(&radio->v4l2_dev); in usb_ma901radio_disconnect()
194 mutex_unlock(&radio->lock); in usb_ma901radio_disconnect()
195 v4l2_device_put(&radio->v4l2_dev); in usb_ma901radio_disconnect()
202 struct ma901radio_device *radio = video_drvdata(file); in vidioc_querycap() local
206 usb_make_path(radio->usbdev, v->bus_info, sizeof(v->bus_info)); in vidioc_querycap()
216 struct ma901radio_device *radio = video_drvdata(file); in vidioc_g_tuner() local
235 v->audmode = radio->stereo ? in vidioc_g_tuner()
244 struct ma901radio_device *radio = video_drvdata(file); in vidioc_s_tuner() local
252 return ma901_set_stereo(radio, MA901_WANT_MONO); in vidioc_s_tuner()
254 return ma901_set_stereo(radio, MA901_WANT_STEREO); in vidioc_s_tuner()
262 struct ma901radio_device *radio = video_drvdata(file); in vidioc_s_frequency() local
267 return ma901radio_set_freq(radio, clamp_t(unsigned, f->frequency, in vidioc_s_frequency()
275 struct ma901radio_device *radio = video_drvdata(file); in vidioc_g_frequency() local
279 f->frequency = radio->curfreq; in vidioc_g_frequency()
286 struct ma901radio_device *radio = in usb_ma901radio_s_ctrl() local
291 return ma901radio_set_volume(radio, (u16)ctrl->val); in usb_ma901radio_s_ctrl()
338 struct ma901radio_device *radio = to_ma901radio_dev(v4l2_dev); in usb_ma901radio_release() local
340 v4l2_ctrl_handler_free(&radio->hdl); in usb_ma901radio_release()
341 v4l2_device_unregister(&radio->v4l2_dev); in usb_ma901radio_release()
342 kfree(radio->buffer); in usb_ma901radio_release()
343 kfree(radio); in usb_ma901radio_release()
351 struct ma901radio_device *radio; in usb_ma901radio_probe() local
364 radio = kzalloc(sizeof(struct ma901radio_device), GFP_KERNEL); in usb_ma901radio_probe()
365 if (!radio) { in usb_ma901radio_probe()
371 radio->buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL); in usb_ma901radio_probe()
372 if (!radio->buffer) { in usb_ma901radio_probe()
378 retval = v4l2_device_register(&intf->dev, &radio->v4l2_dev); in usb_ma901radio_probe()
384 v4l2_ctrl_handler_init(&radio->hdl, 1); in usb_ma901radio_probe()
394 v4l2_ctrl_new_std(&radio->hdl, &usb_ma901radio_ctrl_ops, in usb_ma901radio_probe()
398 if (radio->hdl.error) { in usb_ma901radio_probe()
399 retval = radio->hdl.error; in usb_ma901radio_probe()
403 mutex_init(&radio->lock); in usb_ma901radio_probe()
405 radio->v4l2_dev.ctrl_handler = &radio->hdl; in usb_ma901radio_probe()
406 radio->v4l2_dev.release = usb_ma901radio_release; in usb_ma901radio_probe()
407 strlcpy(radio->vdev.name, radio->v4l2_dev.name, in usb_ma901radio_probe()
408 sizeof(radio->vdev.name)); in usb_ma901radio_probe()
409 radio->vdev.v4l2_dev = &radio->v4l2_dev; in usb_ma901radio_probe()
410 radio->vdev.fops = &usb_ma901radio_fops; in usb_ma901radio_probe()
411 radio->vdev.ioctl_ops = &usb_ma901radio_ioctl_ops; in usb_ma901radio_probe()
412 radio->vdev.release = video_device_release_empty; in usb_ma901radio_probe()
413 radio->vdev.lock = &radio->lock; in usb_ma901radio_probe()
415 radio->usbdev = interface_to_usbdev(intf); in usb_ma901radio_probe()
416 radio->intf = intf; in usb_ma901radio_probe()
417 usb_set_intfdata(intf, &radio->v4l2_dev); in usb_ma901radio_probe()
418 radio->curfreq = 95.21 * FREQ_MUL; in usb_ma901radio_probe()
420 video_set_drvdata(&radio->vdev, radio); in usb_ma901radio_probe()
429 retval = video_register_device(&radio->vdev, VFL_TYPE_RADIO, in usb_ma901radio_probe()
439 v4l2_ctrl_handler_free(&radio->hdl); in usb_ma901radio_probe()
441 v4l2_device_unregister(&radio->v4l2_dev); in usb_ma901radio_probe()
443 kfree(radio->buffer); in usb_ma901radio_probe()
445 kfree(radio); in usb_ma901radio_probe()