Lines Matching refs:radio
83 static int keene_cmd_main(struct keene_device *radio, unsigned freq, bool play) in keene_cmd_main() argument
88 radio->buffer[0] = 0x00; in keene_cmd_main()
89 radio->buffer[1] = 0x50; in keene_cmd_main()
90 radio->buffer[2] = (freq_send >> 8) & 0xff; in keene_cmd_main()
91 radio->buffer[3] = freq_send & 0xff; in keene_cmd_main()
92 radio->buffer[4] = radio->pa; in keene_cmd_main()
98 radio->buffer[5] = (radio->muted ? 4 : 8) | (play ? 1 : 2) | in keene_cmd_main()
100 radio->buffer[6] = 0x00; in keene_cmd_main()
101 radio->buffer[7] = 0x00; in keene_cmd_main()
103 ret = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0), in keene_cmd_main()
104 9, 0x21, 0x200, 2, radio->buffer, BUFFER_LENGTH, USB_TIMEOUT); in keene_cmd_main()
107 dev_warn(&radio->vdev.dev, "%s failed (%d)\n", __func__, ret); in keene_cmd_main()
111 radio->curfreq = freq; in keene_cmd_main()
116 static int keene_cmd_set(struct keene_device *radio) in keene_cmd_set() argument
120 radio->buffer[0] = 0x00; in keene_cmd_set()
121 radio->buffer[1] = 0x51; in keene_cmd_set()
122 radio->buffer[2] = radio->tx; in keene_cmd_set()
126 radio->buffer[3] = (radio->stereo ? 0 : 1) | (radio->preemph_75_us ? 4 : 0); in keene_cmd_set()
127 radio->buffer[4] = 0x00; in keene_cmd_set()
128 radio->buffer[5] = 0x00; in keene_cmd_set()
129 radio->buffer[6] = 0x00; in keene_cmd_set()
130 radio->buffer[7] = 0x00; in keene_cmd_set()
132 ret = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0), in keene_cmd_set()
133 9, 0x21, 0x200, 2, radio->buffer, BUFFER_LENGTH, USB_TIMEOUT); in keene_cmd_set()
136 dev_warn(&radio->vdev.dev, "%s failed (%d)\n", __func__, ret); in keene_cmd_set()
149 struct keene_device *radio = to_keene_dev(usb_get_intfdata(intf)); in usb_keene_disconnect() local
151 mutex_lock(&radio->lock); in usb_keene_disconnect()
153 video_unregister_device(&radio->vdev); in usb_keene_disconnect()
154 v4l2_device_disconnect(&radio->v4l2_dev); in usb_keene_disconnect()
155 mutex_unlock(&radio->lock); in usb_keene_disconnect()
156 v4l2_device_put(&radio->v4l2_dev); in usb_keene_disconnect()
161 struct keene_device *radio = to_keene_dev(usb_get_intfdata(intf)); in usb_keene_suspend() local
163 return keene_cmd_main(radio, 0, false); in usb_keene_suspend()
168 struct keene_device *radio = to_keene_dev(usb_get_intfdata(intf)); in usb_keene_resume() local
171 keene_cmd_set(radio); in usb_keene_resume()
172 keene_cmd_main(radio, radio->curfreq, true); in usb_keene_resume()
179 struct keene_device *radio = video_drvdata(file); in vidioc_querycap() local
183 usb_make_path(radio->usbdev, v->bus_info, sizeof(v->bus_info)); in vidioc_querycap()
192 struct keene_device *radio = video_drvdata(file); in vidioc_g_modulator() local
200 v->txsubchans = radio->stereo ? V4L2_TUNER_SUB_STEREO : V4L2_TUNER_SUB_MONO; in vidioc_g_modulator()
208 struct keene_device *radio = video_drvdata(file); in vidioc_s_modulator() local
213 radio->stereo = (v->txsubchans == V4L2_TUNER_SUB_STEREO); in vidioc_s_modulator()
214 return keene_cmd_set(radio); in vidioc_s_modulator()
220 struct keene_device *radio = video_drvdata(file); in vidioc_s_frequency() local
226 return keene_cmd_main(radio, freq, true); in vidioc_s_frequency()
232 struct keene_device *radio = video_drvdata(file); in vidioc_g_frequency() local
237 f->frequency = radio->curfreq; in vidioc_g_frequency()
249 struct keene_device *radio = in keene_s_ctrl() local
254 radio->muted = ctrl->val; in keene_s_ctrl()
255 return keene_cmd_main(radio, 0, true); in keene_s_ctrl()
260 radio->pa = (ctrl->val - 71) * 100 / 62; in keene_s_ctrl()
261 return keene_cmd_main(radio, 0, true); in keene_s_ctrl()
264 radio->preemph_75_us = ctrl->val == V4L2_PREEMPHASIS_75_uS; in keene_s_ctrl()
265 return keene_cmd_set(radio); in keene_s_ctrl()
268 radio->tx = db2tx[(ctrl->val - (s32)ctrl->minimum) / (s32)ctrl->step]; in keene_s_ctrl()
269 return keene_cmd_set(radio); in keene_s_ctrl()
300 struct keene_device *radio = to_keene_dev(v4l2_dev); in usb_keene_video_device_release() local
303 v4l2_ctrl_handler_free(&radio->hdl); in usb_keene_video_device_release()
304 kfree(radio->buffer); in usb_keene_video_device_release()
305 kfree(radio); in usb_keene_video_device_release()
313 struct keene_device *radio; in usb_keene_probe() local
329 radio = kzalloc(sizeof(struct keene_device), GFP_KERNEL); in usb_keene_probe()
330 if (radio) in usb_keene_probe()
331 radio->buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL); in usb_keene_probe()
333 if (!radio || !radio->buffer) { in usb_keene_probe()
335 kfree(radio); in usb_keene_probe()
340 hdl = &radio->hdl; in usb_keene_probe()
350 radio->pa = 118; in usb_keene_probe()
351 radio->tx = 0x32; in usb_keene_probe()
352 radio->stereo = true; in usb_keene_probe()
359 retval = v4l2_device_register(&intf->dev, &radio->v4l2_dev); in usb_keene_probe()
365 mutex_init(&radio->lock); in usb_keene_probe()
367 radio->v4l2_dev.ctrl_handler = hdl; in usb_keene_probe()
368 radio->v4l2_dev.release = usb_keene_video_device_release; in usb_keene_probe()
369 strlcpy(radio->vdev.name, radio->v4l2_dev.name, in usb_keene_probe()
370 sizeof(radio->vdev.name)); in usb_keene_probe()
371 radio->vdev.v4l2_dev = &radio->v4l2_dev; in usb_keene_probe()
372 radio->vdev.fops = &usb_keene_fops; in usb_keene_probe()
373 radio->vdev.ioctl_ops = &usb_keene_ioctl_ops; in usb_keene_probe()
374 radio->vdev.lock = &radio->lock; in usb_keene_probe()
375 radio->vdev.release = video_device_release_empty; in usb_keene_probe()
376 radio->vdev.vfl_dir = VFL_DIR_TX; in usb_keene_probe()
378 radio->usbdev = interface_to_usbdev(intf); in usb_keene_probe()
379 radio->intf = intf; in usb_keene_probe()
380 usb_set_intfdata(intf, &radio->v4l2_dev); in usb_keene_probe()
382 video_set_drvdata(&radio->vdev, radio); in usb_keene_probe()
386 keene_cmd_main(radio, 95.16 * FREQ_MUL, false); in usb_keene_probe()
388 retval = video_register_device(&radio->vdev, VFL_TYPE_RADIO, -1); in usb_keene_probe()
395 video_device_node_name(&radio->vdev)); in usb_keene_probe()
399 v4l2_device_unregister(&radio->v4l2_dev); in usb_keene_probe()
401 kfree(radio->buffer); in usb_keene_probe()
402 kfree(radio); in usb_keene_probe()