Lines Matching refs:dev

98 	struct device *dev;  member
157 static int hackrf_ctrl_msg(struct hackrf_dev *dev, u8 request, u16 value, in hackrf_ctrl_msg() argument
169 pipe = usb_sndctrlpipe(dev->udev, 0); in hackrf_ctrl_msg()
176 pipe = usb_rcvctrlpipe(dev->udev, 0); in hackrf_ctrl_msg()
180 dev_err(dev->dev, "Unknown command %02x\n", request); in hackrf_ctrl_msg()
187 memcpy(dev->buf, data, size); in hackrf_ctrl_msg()
189 ret = usb_control_msg(dev->udev, pipe, request, requesttype, value, in hackrf_ctrl_msg()
190 index, dev->buf, size, 1000); in hackrf_ctrl_msg()
191 hackrf_dbg_usb_control_msg(dev->dev, request, requesttype, value, in hackrf_ctrl_msg()
192 index, dev->buf, size); in hackrf_ctrl_msg()
194 dev_err(dev->dev, "usb_control_msg() failed %d request %02x\n", in hackrf_ctrl_msg()
201 memcpy(data, dev->buf, size); in hackrf_ctrl_msg()
209 static struct hackrf_frame_buf *hackrf_get_next_fill_buf(struct hackrf_dev *dev) in hackrf_get_next_fill_buf() argument
214 spin_lock_irqsave(&dev->queued_bufs_lock, flags); in hackrf_get_next_fill_buf()
215 if (list_empty(&dev->queued_bufs)) in hackrf_get_next_fill_buf()
218 buf = list_entry(dev->queued_bufs.next, struct hackrf_frame_buf, list); in hackrf_get_next_fill_buf()
221 spin_unlock_irqrestore(&dev->queued_bufs_lock, flags); in hackrf_get_next_fill_buf()
225 static unsigned int hackrf_convert_stream(struct hackrf_dev *dev, in hackrf_convert_stream() argument
231 if (unlikely(time_is_before_jiffies(dev->jiffies_next))) { in hackrf_convert_stream()
234 dev->jiffies_next + msecs_to_jiffies(MSECS)); in hackrf_convert_stream()
235 unsigned int samples = dev->sample - dev->sample_measured; in hackrf_convert_stream()
237 dev->jiffies_next = jiffies + msecs_to_jiffies(MSECS); in hackrf_convert_stream()
238 dev->sample_measured = dev->sample; in hackrf_convert_stream()
239 dev_dbg(dev->dev, "slen=%u samples=%u msecs=%u sample rate=%lu\n", in hackrf_convert_stream()
245 dev->sample += src_len / 2; in hackrf_convert_stream()
256 struct hackrf_dev *dev = urb->context; in hackrf_urb_complete() local
259 dev_dbg_ratelimited(dev->dev, "status=%d length=%d/%d errors=%d\n", in hackrf_urb_complete()
272 dev_err_ratelimited(dev->dev, "URB failed %d\n", urb->status); in hackrf_urb_complete()
280 fbuf = hackrf_get_next_fill_buf(dev); in hackrf_urb_complete()
282 dev->vb_full++; in hackrf_urb_complete()
283 dev_notice_ratelimited(dev->dev, in hackrf_urb_complete()
285 dev->vb_full); in hackrf_urb_complete()
291 len = hackrf_convert_stream(dev, ptr, urb->transfer_buffer, in hackrf_urb_complete()
295 fbuf->vb.v4l2_buf.sequence = dev->sequence++; in hackrf_urb_complete()
302 static int hackrf_kill_urbs(struct hackrf_dev *dev) in hackrf_kill_urbs() argument
306 for (i = dev->urbs_submitted - 1; i >= 0; i--) { in hackrf_kill_urbs()
307 dev_dbg(dev->dev, "kill urb=%d\n", i); in hackrf_kill_urbs()
309 usb_kill_urb(dev->urb_list[i]); in hackrf_kill_urbs()
311 dev->urbs_submitted = 0; in hackrf_kill_urbs()
316 static int hackrf_submit_urbs(struct hackrf_dev *dev) in hackrf_submit_urbs() argument
320 for (i = 0; i < dev->urbs_initialized; i++) { in hackrf_submit_urbs()
321 dev_dbg(dev->dev, "submit urb=%d\n", i); in hackrf_submit_urbs()
322 ret = usb_submit_urb(dev->urb_list[i], GFP_ATOMIC); in hackrf_submit_urbs()
324 dev_err(dev->dev, "Could not submit URB no. %d - get them all back\n", in hackrf_submit_urbs()
326 hackrf_kill_urbs(dev); in hackrf_submit_urbs()
329 dev->urbs_submitted++; in hackrf_submit_urbs()
335 static int hackrf_free_stream_bufs(struct hackrf_dev *dev) in hackrf_free_stream_bufs() argument
337 if (dev->flags & USB_STATE_URB_BUF) { in hackrf_free_stream_bufs()
338 while (dev->buf_num) { in hackrf_free_stream_bufs()
339 dev->buf_num--; in hackrf_free_stream_bufs()
340 dev_dbg(dev->dev, "free buf=%d\n", dev->buf_num); in hackrf_free_stream_bufs()
341 usb_free_coherent(dev->udev, dev->buf_size, in hackrf_free_stream_bufs()
342 dev->buf_list[dev->buf_num], in hackrf_free_stream_bufs()
343 dev->dma_addr[dev->buf_num]); in hackrf_free_stream_bufs()
346 dev->flags &= ~USB_STATE_URB_BUF; in hackrf_free_stream_bufs()
351 static int hackrf_alloc_stream_bufs(struct hackrf_dev *dev) in hackrf_alloc_stream_bufs() argument
353 dev->buf_num = 0; in hackrf_alloc_stream_bufs()
354 dev->buf_size = BULK_BUFFER_SIZE; in hackrf_alloc_stream_bufs()
356 dev_dbg(dev->dev, "all in all I will use %u bytes for streaming\n", in hackrf_alloc_stream_bufs()
359 for (dev->buf_num = 0; dev->buf_num < MAX_BULK_BUFS; dev->buf_num++) { in hackrf_alloc_stream_bufs()
360 dev->buf_list[dev->buf_num] = usb_alloc_coherent(dev->udev, in hackrf_alloc_stream_bufs()
362 &dev->dma_addr[dev->buf_num]); in hackrf_alloc_stream_bufs()
363 if (!dev->buf_list[dev->buf_num]) { in hackrf_alloc_stream_bufs()
364 dev_dbg(dev->dev, "alloc buf=%d failed\n", in hackrf_alloc_stream_bufs()
365 dev->buf_num); in hackrf_alloc_stream_bufs()
366 hackrf_free_stream_bufs(dev); in hackrf_alloc_stream_bufs()
370 dev_dbg(dev->dev, "alloc buf=%d %p (dma %llu)\n", dev->buf_num, in hackrf_alloc_stream_bufs()
371 dev->buf_list[dev->buf_num], in hackrf_alloc_stream_bufs()
372 (long long)dev->dma_addr[dev->buf_num]); in hackrf_alloc_stream_bufs()
373 dev->flags |= USB_STATE_URB_BUF; in hackrf_alloc_stream_bufs()
379 static int hackrf_free_urbs(struct hackrf_dev *dev) in hackrf_free_urbs() argument
383 hackrf_kill_urbs(dev); in hackrf_free_urbs()
385 for (i = dev->urbs_initialized - 1; i >= 0; i--) { in hackrf_free_urbs()
386 if (dev->urb_list[i]) { in hackrf_free_urbs()
387 dev_dbg(dev->dev, "free urb=%d\n", i); in hackrf_free_urbs()
389 usb_free_urb(dev->urb_list[i]); in hackrf_free_urbs()
392 dev->urbs_initialized = 0; in hackrf_free_urbs()
397 static int hackrf_alloc_urbs(struct hackrf_dev *dev) in hackrf_alloc_urbs() argument
403 dev_dbg(dev->dev, "alloc urb=%d\n", i); in hackrf_alloc_urbs()
404 dev->urb_list[i] = usb_alloc_urb(0, GFP_ATOMIC); in hackrf_alloc_urbs()
405 if (!dev->urb_list[i]) { in hackrf_alloc_urbs()
406 dev_dbg(dev->dev, "failed\n"); in hackrf_alloc_urbs()
408 usb_free_urb(dev->urb_list[j]); in hackrf_alloc_urbs()
411 usb_fill_bulk_urb(dev->urb_list[i], in hackrf_alloc_urbs()
412 dev->udev, in hackrf_alloc_urbs()
413 usb_rcvbulkpipe(dev->udev, 0x81), in hackrf_alloc_urbs()
414 dev->buf_list[i], in hackrf_alloc_urbs()
416 hackrf_urb_complete, dev); in hackrf_alloc_urbs()
418 dev->urb_list[i]->transfer_flags = URB_NO_TRANSFER_DMA_MAP; in hackrf_alloc_urbs()
419 dev->urb_list[i]->transfer_dma = dev->dma_addr[i]; in hackrf_alloc_urbs()
420 dev->urbs_initialized++; in hackrf_alloc_urbs()
427 static void hackrf_cleanup_queued_bufs(struct hackrf_dev *dev) in hackrf_cleanup_queued_bufs() argument
431 dev_dbg(dev->dev, "\n"); in hackrf_cleanup_queued_bufs()
433 spin_lock_irqsave(&dev->queued_bufs_lock, flags); in hackrf_cleanup_queued_bufs()
434 while (!list_empty(&dev->queued_bufs)) { in hackrf_cleanup_queued_bufs()
437 buf = list_entry(dev->queued_bufs.next, in hackrf_cleanup_queued_bufs()
442 spin_unlock_irqrestore(&dev->queued_bufs_lock, flags); in hackrf_cleanup_queued_bufs()
449 struct hackrf_dev *dev = container_of(v, struct hackrf_dev, v4l2_dev); in hackrf_disconnect() local
451 dev_dbg(dev->dev, "\n"); in hackrf_disconnect()
453 mutex_lock(&dev->vb_queue_lock); in hackrf_disconnect()
454 mutex_lock(&dev->v4l2_lock); in hackrf_disconnect()
456 dev->udev = NULL; in hackrf_disconnect()
457 v4l2_device_disconnect(&dev->v4l2_dev); in hackrf_disconnect()
458 video_unregister_device(&dev->vdev); in hackrf_disconnect()
459 mutex_unlock(&dev->v4l2_lock); in hackrf_disconnect()
460 mutex_unlock(&dev->vb_queue_lock); in hackrf_disconnect()
462 v4l2_device_put(&dev->v4l2_dev); in hackrf_disconnect()
470 struct hackrf_dev *dev = vb2_get_drv_priv(vq); in hackrf_queue_setup() local
472 dev_dbg(dev->dev, "nbuffers=%d\n", *nbuffers); in hackrf_queue_setup()
478 sizes[0] = PAGE_ALIGN(dev->buffersize); in hackrf_queue_setup()
480 dev_dbg(dev->dev, "nbuffers=%d sizes[0]=%d\n", *nbuffers, sizes[0]); in hackrf_queue_setup()
486 struct hackrf_dev *dev = vb2_get_drv_priv(vb->vb2_queue); in hackrf_buf_queue() local
491 spin_lock_irqsave(&dev->queued_bufs_lock, flags); in hackrf_buf_queue()
492 list_add_tail(&buf->list, &dev->queued_bufs); in hackrf_buf_queue()
493 spin_unlock_irqrestore(&dev->queued_bufs_lock, flags); in hackrf_buf_queue()
498 struct hackrf_dev *dev = vb2_get_drv_priv(vq); in hackrf_start_streaming() local
501 dev_dbg(dev->dev, "\n"); in hackrf_start_streaming()
503 if (!dev->udev) in hackrf_start_streaming()
506 mutex_lock(&dev->v4l2_lock); in hackrf_start_streaming()
508 dev->sequence = 0; in hackrf_start_streaming()
510 set_bit(POWER_ON, &dev->flags); in hackrf_start_streaming()
512 ret = hackrf_alloc_stream_bufs(dev); in hackrf_start_streaming()
516 ret = hackrf_alloc_urbs(dev); in hackrf_start_streaming()
520 ret = hackrf_submit_urbs(dev); in hackrf_start_streaming()
525 ret = hackrf_ctrl_msg(dev, CMD_SET_TRANSCEIVER_MODE, 1, 0, NULL, 0); in hackrf_start_streaming()
531 hackrf_kill_urbs(dev); in hackrf_start_streaming()
532 hackrf_free_urbs(dev); in hackrf_start_streaming()
533 hackrf_free_stream_bufs(dev); in hackrf_start_streaming()
534 clear_bit(POWER_ON, &dev->flags); in hackrf_start_streaming()
540 list_for_each_entry_safe(buf, tmp, &dev->queued_bufs, list) { in hackrf_start_streaming()
547 mutex_unlock(&dev->v4l2_lock); in hackrf_start_streaming()
554 struct hackrf_dev *dev = vb2_get_drv_priv(vq); in hackrf_stop_streaming() local
556 dev_dbg(dev->dev, "\n"); in hackrf_stop_streaming()
558 mutex_lock(&dev->v4l2_lock); in hackrf_stop_streaming()
561 hackrf_ctrl_msg(dev, CMD_SET_TRANSCEIVER_MODE, 0, 0, NULL, 0); in hackrf_stop_streaming()
563 hackrf_kill_urbs(dev); in hackrf_stop_streaming()
564 hackrf_free_urbs(dev); in hackrf_stop_streaming()
565 hackrf_free_stream_bufs(dev); in hackrf_stop_streaming()
567 hackrf_cleanup_queued_bufs(dev); in hackrf_stop_streaming()
569 clear_bit(POWER_ON, &dev->flags); in hackrf_stop_streaming()
571 mutex_unlock(&dev->v4l2_lock); in hackrf_stop_streaming()
586 struct hackrf_dev *dev = video_drvdata(file); in hackrf_querycap() local
588 dev_dbg(dev->dev, "\n"); in hackrf_querycap()
591 strlcpy(cap->card, dev->vdev.name, sizeof(cap->card)); in hackrf_querycap()
592 usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info)); in hackrf_querycap()
603 struct hackrf_dev *dev = video_drvdata(file); in hackrf_s_fmt_sdr_cap() local
604 struct vb2_queue *q = &dev->vb_queue; in hackrf_s_fmt_sdr_cap()
607 dev_dbg(dev->dev, "pixelformat fourcc %4.4s\n", in hackrf_s_fmt_sdr_cap()
616 dev->pixelformat = formats[i].pixelformat; in hackrf_s_fmt_sdr_cap()
617 dev->buffersize = formats[i].buffersize; in hackrf_s_fmt_sdr_cap()
623 dev->pixelformat = formats[0].pixelformat; in hackrf_s_fmt_sdr_cap()
624 dev->buffersize = formats[0].buffersize; in hackrf_s_fmt_sdr_cap()
634 struct hackrf_dev *dev = video_drvdata(file); in hackrf_g_fmt_sdr_cap() local
636 dev_dbg(dev->dev, "pixelformat fourcc %4.4s\n", in hackrf_g_fmt_sdr_cap()
637 (char *)&dev->pixelformat); in hackrf_g_fmt_sdr_cap()
640 f->fmt.sdr.pixelformat = dev->pixelformat; in hackrf_g_fmt_sdr_cap()
641 f->fmt.sdr.buffersize = dev->buffersize; in hackrf_g_fmt_sdr_cap()
649 struct hackrf_dev *dev = video_drvdata(file); in hackrf_try_fmt_sdr_cap() local
652 dev_dbg(dev->dev, "pixelformat fourcc %4.4s\n", in hackrf_try_fmt_sdr_cap()
672 struct hackrf_dev *dev = video_drvdata(file); in hackrf_enum_fmt_sdr_cap() local
674 dev_dbg(dev->dev, "index=%d\n", f->index); in hackrf_enum_fmt_sdr_cap()
688 struct hackrf_dev *dev = video_drvdata(file); in hackrf_s_tuner() local
691 dev_dbg(dev->dev, "index=%d\n", v->index); in hackrf_s_tuner()
705 struct hackrf_dev *dev = video_drvdata(file); in hackrf_g_tuner() local
708 dev_dbg(dev->dev, "index=%d\n", v->index); in hackrf_g_tuner()
734 struct hackrf_dev *dev = video_drvdata(file); in hackrf_s_frequency() local
739 dev_dbg(dev->dev, "tuner=%d type=%d frequency=%u\n", in hackrf_s_frequency()
743 dev->f_adc = clamp_t(unsigned int, f->frequency, in hackrf_s_frequency()
745 dev_dbg(dev->dev, "ADC frequency=%u Hz\n", dev->f_adc); in hackrf_s_frequency()
746 upper = dev->f_adc; in hackrf_s_frequency()
756 ret = hackrf_ctrl_msg(dev, CMD_SAMPLE_RATE_SET, 0, 0, buf, 8); in hackrf_s_frequency()
758 dev->f_rf = clamp_t(unsigned int, f->frequency, in hackrf_s_frequency()
760 dev_dbg(dev->dev, "RF frequency=%u Hz\n", dev->f_rf); in hackrf_s_frequency()
761 upper = dev->f_rf / 1000000; in hackrf_s_frequency()
762 lower = dev->f_rf % 1000000; in hackrf_s_frequency()
771 ret = hackrf_ctrl_msg(dev, CMD_SET_FREQ, 0, 0, buf, 8); in hackrf_s_frequency()
782 struct hackrf_dev *dev = video_drvdata(file); in hackrf_g_frequency() local
785 dev_dbg(dev->dev, "tuner=%d type=%d\n", f->tuner, f->type); in hackrf_g_frequency()
789 f->frequency = dev->f_adc; in hackrf_g_frequency()
793 f->frequency = dev->f_rf; in hackrf_g_frequency()
805 struct hackrf_dev *dev = video_drvdata(file); in hackrf_enum_freq_bands() local
808 dev_dbg(dev->dev, "tuner=%d type=%d index=%d\n", in hackrf_enum_freq_bands()
881 struct hackrf_dev *dev = container_of(v, struct hackrf_dev, v4l2_dev); in hackrf_video_release() local
883 v4l2_ctrl_handler_free(&dev->hdl); in hackrf_video_release()
884 v4l2_device_unregister(&dev->v4l2_dev); in hackrf_video_release()
885 kfree(dev); in hackrf_video_release()
888 static int hackrf_set_bandwidth(struct hackrf_dev *dev) in hackrf_set_bandwidth() argument
915 dev_dbg(dev->dev, "bandwidth auto=%d->%d val=%d->%d f_adc=%u\n", in hackrf_set_bandwidth()
916 dev->bandwidth_auto->cur.val, in hackrf_set_bandwidth()
917 dev->bandwidth_auto->val, dev->bandwidth->cur.val, in hackrf_set_bandwidth()
918 dev->bandwidth->val, dev->f_adc); in hackrf_set_bandwidth()
920 if (dev->bandwidth_auto->val == true) in hackrf_set_bandwidth()
921 bandwidth = dev->f_adc; in hackrf_set_bandwidth()
923 bandwidth = dev->bandwidth->val; in hackrf_set_bandwidth()
932 dev->bandwidth->val = bandwidth; in hackrf_set_bandwidth()
933 dev->bandwidth->cur.val = bandwidth; in hackrf_set_bandwidth()
935 dev_dbg(dev->dev, "bandwidth selected=%d\n", bandwidth); in hackrf_set_bandwidth()
944 ret = hackrf_ctrl_msg(dev, CMD_BASEBAND_FILTER_BANDWIDTH_SET, in hackrf_set_bandwidth()
947 dev_dbg(dev->dev, "failed=%d\n", ret); in hackrf_set_bandwidth()
952 static int hackrf_set_lna_gain(struct hackrf_dev *dev) in hackrf_set_lna_gain() argument
957 dev_dbg(dev->dev, "lna val=%d->%d\n", in hackrf_set_lna_gain()
958 dev->lna_gain->cur.val, dev->lna_gain->val); in hackrf_set_lna_gain()
960 ret = hackrf_ctrl_msg(dev, CMD_SET_LNA_GAIN, 0, dev->lna_gain->val, in hackrf_set_lna_gain()
963 dev_dbg(dev->dev, "failed=%d\n", ret); in hackrf_set_lna_gain()
968 static int hackrf_set_if_gain(struct hackrf_dev *dev) in hackrf_set_if_gain() argument
973 dev_dbg(dev->dev, "val=%d->%d\n", in hackrf_set_if_gain()
974 dev->if_gain->cur.val, dev->if_gain->val); in hackrf_set_if_gain()
976 ret = hackrf_ctrl_msg(dev, CMD_SET_VGA_GAIN, 0, dev->if_gain->val, in hackrf_set_if_gain()
979 dev_dbg(dev->dev, "failed=%d\n", ret); in hackrf_set_if_gain()
986 struct hackrf_dev *dev = container_of(ctrl->handler, in hackrf_s_ctrl() local
993 ret = hackrf_set_bandwidth(dev); in hackrf_s_ctrl()
996 ret = hackrf_set_lna_gain(dev); in hackrf_s_ctrl()
999 ret = hackrf_set_if_gain(dev); in hackrf_s_ctrl()
1002 dev_dbg(dev->dev, "unknown ctrl: id=%d name=%s\n", in hackrf_s_ctrl()
1017 struct hackrf_dev *dev; in hackrf_probe() local
1021 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in hackrf_probe()
1022 if (dev == NULL) in hackrf_probe()
1025 mutex_init(&dev->v4l2_lock); in hackrf_probe()
1026 mutex_init(&dev->vb_queue_lock); in hackrf_probe()
1027 spin_lock_init(&dev->queued_bufs_lock); in hackrf_probe()
1028 INIT_LIST_HEAD(&dev->queued_bufs); in hackrf_probe()
1029 dev->dev = &intf->dev; in hackrf_probe()
1030 dev->udev = interface_to_usbdev(intf); in hackrf_probe()
1031 dev->f_adc = bands_adc[0].rangelow; in hackrf_probe()
1032 dev->f_rf = bands_rf[0].rangelow; in hackrf_probe()
1033 dev->pixelformat = formats[0].pixelformat; in hackrf_probe()
1034 dev->buffersize = formats[0].buffersize; in hackrf_probe()
1037 ret = hackrf_ctrl_msg(dev, CMD_BOARD_ID_READ, 0, 0, &u8tmp, 1); in hackrf_probe()
1039 ret = hackrf_ctrl_msg(dev, CMD_VERSION_STRING_READ, 0, 0, in hackrf_probe()
1042 dev_err(dev->dev, "Could not detect board\n"); in hackrf_probe()
1048 dev_info(dev->dev, "Board ID: %02x\n", u8tmp); in hackrf_probe()
1049 dev_info(dev->dev, "Firmware version: %s\n", buf); in hackrf_probe()
1052 dev->vb_queue.type = V4L2_BUF_TYPE_SDR_CAPTURE; in hackrf_probe()
1053 dev->vb_queue.io_modes = VB2_MMAP | VB2_USERPTR | VB2_READ; in hackrf_probe()
1054 dev->vb_queue.drv_priv = dev; in hackrf_probe()
1055 dev->vb_queue.buf_struct_size = sizeof(struct hackrf_frame_buf); in hackrf_probe()
1056 dev->vb_queue.ops = &hackrf_vb2_ops; in hackrf_probe()
1057 dev->vb_queue.mem_ops = &vb2_vmalloc_memops; in hackrf_probe()
1058 dev->vb_queue.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; in hackrf_probe()
1059 ret = vb2_queue_init(&dev->vb_queue); in hackrf_probe()
1061 dev_err(dev->dev, "Could not initialize vb2 queue\n"); in hackrf_probe()
1066 dev->vdev = hackrf_template; in hackrf_probe()
1067 dev->vdev.queue = &dev->vb_queue; in hackrf_probe()
1068 dev->vdev.queue->lock = &dev->vb_queue_lock; in hackrf_probe()
1069 video_set_drvdata(&dev->vdev, dev); in hackrf_probe()
1072 dev->v4l2_dev.release = hackrf_video_release; in hackrf_probe()
1073 ret = v4l2_device_register(&intf->dev, &dev->v4l2_dev); in hackrf_probe()
1075 dev_err(dev->dev, "Failed to register v4l2-device (%d)\n", ret); in hackrf_probe()
1080 v4l2_ctrl_handler_init(&dev->hdl, 4); in hackrf_probe()
1081 dev->bandwidth_auto = v4l2_ctrl_new_std(&dev->hdl, &hackrf_ctrl_ops, in hackrf_probe()
1083 dev->bandwidth = v4l2_ctrl_new_std(&dev->hdl, &hackrf_ctrl_ops, in hackrf_probe()
1086 v4l2_ctrl_auto_cluster(2, &dev->bandwidth_auto, 0, false); in hackrf_probe()
1087 dev->lna_gain = v4l2_ctrl_new_std(&dev->hdl, &hackrf_ctrl_ops, in hackrf_probe()
1089 dev->if_gain = v4l2_ctrl_new_std(&dev->hdl, &hackrf_ctrl_ops, in hackrf_probe()
1091 if (dev->hdl.error) { in hackrf_probe()
1092 ret = dev->hdl.error; in hackrf_probe()
1093 dev_err(dev->dev, "Could not initialize controls\n"); in hackrf_probe()
1097 v4l2_ctrl_handler_setup(&dev->hdl); in hackrf_probe()
1099 dev->v4l2_dev.ctrl_handler = &dev->hdl; in hackrf_probe()
1100 dev->vdev.v4l2_dev = &dev->v4l2_dev; in hackrf_probe()
1101 dev->vdev.lock = &dev->v4l2_lock; in hackrf_probe()
1103 ret = video_register_device(&dev->vdev, VFL_TYPE_SDR, -1); in hackrf_probe()
1105 dev_err(dev->dev, "Failed to register as video device (%d)\n", in hackrf_probe()
1109 dev_info(dev->dev, "Registered as %s\n", in hackrf_probe()
1110 video_device_node_name(&dev->vdev)); in hackrf_probe()
1111 …dev_notice(dev->dev, "SDR API is still slightly experimental and functionality changes may follow\… in hackrf_probe()
1115 v4l2_ctrl_handler_free(&dev->hdl); in hackrf_probe()
1117 v4l2_device_unregister(&dev->v4l2_dev); in hackrf_probe()
1119 kfree(dev); in hackrf_probe()