Lines Matching defs:radio
122 static int raremono_cmd_main(struct raremono_device *radio, unsigned band, unsigned freq)
139 radio->buffer[0] = 0x04 + band_offset;
140 radio->buffer[1] = freq >> 8;
141 radio->buffer[2] = freq & 0xff;
143 ret = usb_control_msg(radio->usbdev, usb_sndctrlpipe(radio->usbdev, 0),
146 0x0300 + radio->buffer[0], 2,
147 radio->buffer, 3, USB_TIMEOUT);
150 dev_warn(radio->v4l2_dev.dev, "%s failed (%d)\n", __func__, ret);
153 radio->curfreq = (band == BAND_FM) ? freq * 10 : freq;
164 struct raremono_device *radio = to_raremono_dev(usb_get_intfdata(intf));
168 mutex_lock(&radio->lock);
170 video_unregister_device(&radio->vdev);
171 v4l2_device_disconnect(&radio->v4l2_dev);
172 mutex_unlock(&radio->lock);
173 v4l2_device_put(&radio->v4l2_dev);
182 struct raremono_device *radio = video_drvdata(file);
184 strscpy(v->driver, "radio-raremono", sizeof(v->driver));
186 usb_make_path(radio->usbdev, v->bus_info, sizeof(v->bus_info));
207 struct raremono_device *radio = video_drvdata(file);
219 v->audmode = (radio->curfreq < FM_FREQ_RANGE_LOW) ?
221 memset(radio->buffer, 1, BUFFER_LENGTH);
222 ret = usb_control_msg(radio->usbdev, usb_rcvctrlpipe(radio->usbdev, 0),
223 1, 0xa1, 0x030d, 2, radio->buffer, BUFFER_LENGTH, USB_TIMEOUT);
226 dev_warn(radio->v4l2_dev.dev, "%s failed (%d)\n", __func__, ret);
229 v->signal = ((radio->buffer[1] & 0xf) << 8 | radio->buffer[2]) << 4;
242 struct raremono_device *radio = video_drvdata(file);
257 return raremono_cmd_main(radio, band, freq / 16);
263 struct raremono_device *radio = video_drvdata(file);
268 f->frequency = radio->curfreq * 16;
274 struct raremono_device *radio = to_raremono_dev(v4l2_dev);
276 kfree(radio->buffer);
277 kfree(radio);
301 struct raremono_device *radio;
304 radio = kzalloc(sizeof(*radio), GFP_KERNEL);
305 if (!radio)
307 radio->buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL);
308 if (!radio->buffer) {
309 kfree(radio);
313 radio->usbdev = interface_to_usbdev(intf);
314 radio->intf = intf;
326 retval = usb_control_msg(radio->usbdev,
327 usb_rcvctrlpipe(radio->usbdev, 0),
331 radio->buffer, 3, 500);
333 (get_unaligned_be16(&radio->buffer[1]) & 0xfff) == 0x0242) {
342 retval = v4l2_device_register(&intf->dev, &radio->v4l2_dev);
348 mutex_init(&radio->lock);
350 strscpy(radio->vdev.name, radio->v4l2_dev.name,
351 sizeof(radio->vdev.name));
352 radio->vdev.v4l2_dev = &radio->v4l2_dev;
353 radio->vdev.fops = &usb_raremono_fops;
354 radio->vdev.ioctl_ops = &usb_raremono_ioctl_ops;
355 radio->vdev.lock = &radio->lock;
356 radio->vdev.release = video_device_release_empty;
357 radio->vdev.device_caps = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
358 radio->v4l2_dev.release = raremono_device_release;
360 usb_set_intfdata(intf, &radio->v4l2_dev);
362 video_set_drvdata(&radio->vdev, radio);
364 raremono_cmd_main(radio, BAND_FM, 95160);
366 retval = video_register_device(&radio->vdev, VFL_TYPE_RADIO, -1);
369 video_device_node_name(&radio->vdev));
373 v4l2_device_unregister(&radio->v4l2_dev);
376 kfree(radio->buffer);
377 kfree(radio);
383 .name = "radio-raremono",