diff options
Diffstat (limited to 'drivers/media/usb/hackrf/hackrf.c')
-rw-r--r-- | drivers/media/usb/hackrf/hackrf.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/media/usb/hackrf/hackrf.c b/drivers/media/usb/hackrf/hackrf.c index d43785206622..d625263f4984 100644 --- a/drivers/media/usb/hackrf/hackrf.c +++ b/drivers/media/usb/hackrf/hackrf.c | |||
@@ -905,19 +905,13 @@ static int hackrf_querycap(struct file *file, void *fh, | |||
905 | { | 905 | { |
906 | struct hackrf_dev *dev = video_drvdata(file); | 906 | struct hackrf_dev *dev = video_drvdata(file); |
907 | struct usb_interface *intf = dev->intf; | 907 | struct usb_interface *intf = dev->intf; |
908 | struct video_device *vdev = video_devdata(file); | ||
909 | 908 | ||
910 | dev_dbg(&intf->dev, "\n"); | 909 | dev_dbg(&intf->dev, "\n"); |
911 | 910 | ||
912 | cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_READWRITE; | ||
913 | if (vdev->vfl_dir == VFL_DIR_RX) | ||
914 | cap->device_caps |= V4L2_CAP_SDR_CAPTURE | V4L2_CAP_TUNER; | ||
915 | else | ||
916 | cap->device_caps |= V4L2_CAP_SDR_OUTPUT | V4L2_CAP_MODULATOR; | ||
917 | |||
918 | cap->capabilities = V4L2_CAP_SDR_CAPTURE | V4L2_CAP_TUNER | | 911 | cap->capabilities = V4L2_CAP_SDR_CAPTURE | V4L2_CAP_TUNER | |
919 | V4L2_CAP_SDR_OUTPUT | V4L2_CAP_MODULATOR | | 912 | V4L2_CAP_SDR_OUTPUT | V4L2_CAP_MODULATOR | |
920 | V4L2_CAP_DEVICE_CAPS | cap->device_caps; | 913 | V4L2_CAP_STREAMING | V4L2_CAP_READWRITE | |
914 | V4L2_CAP_DEVICE_CAPS; | ||
921 | strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver)); | 915 | strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver)); |
922 | strscpy(cap->card, dev->rx_vdev.name, sizeof(cap->card)); | 916 | strscpy(cap->card, dev->rx_vdev.name, sizeof(cap->card)); |
923 | usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info)); | 917 | usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info)); |
@@ -1496,6 +1490,8 @@ static int hackrf_probe(struct usb_interface *intf, | |||
1496 | dev->rx_vdev.ctrl_handler = &dev->rx_ctrl_handler; | 1490 | dev->rx_vdev.ctrl_handler = &dev->rx_ctrl_handler; |
1497 | dev->rx_vdev.lock = &dev->v4l2_lock; | 1491 | dev->rx_vdev.lock = &dev->v4l2_lock; |
1498 | dev->rx_vdev.vfl_dir = VFL_DIR_RX; | 1492 | dev->rx_vdev.vfl_dir = VFL_DIR_RX; |
1493 | dev->rx_vdev.device_caps = V4L2_CAP_STREAMING | V4L2_CAP_READWRITE | | ||
1494 | V4L2_CAP_SDR_CAPTURE | V4L2_CAP_TUNER; | ||
1499 | video_set_drvdata(&dev->rx_vdev, dev); | 1495 | video_set_drvdata(&dev->rx_vdev, dev); |
1500 | ret = video_register_device(&dev->rx_vdev, VFL_TYPE_SDR, -1); | 1496 | ret = video_register_device(&dev->rx_vdev, VFL_TYPE_SDR, -1); |
1501 | if (ret) { | 1497 | if (ret) { |
@@ -1514,6 +1510,8 @@ static int hackrf_probe(struct usb_interface *intf, | |||
1514 | dev->tx_vdev.ctrl_handler = &dev->tx_ctrl_handler; | 1510 | dev->tx_vdev.ctrl_handler = &dev->tx_ctrl_handler; |
1515 | dev->tx_vdev.lock = &dev->v4l2_lock; | 1511 | dev->tx_vdev.lock = &dev->v4l2_lock; |
1516 | dev->tx_vdev.vfl_dir = VFL_DIR_TX; | 1512 | dev->tx_vdev.vfl_dir = VFL_DIR_TX; |
1513 | dev->tx_vdev.device_caps = V4L2_CAP_STREAMING | V4L2_CAP_READWRITE | | ||
1514 | V4L2_CAP_SDR_OUTPUT | V4L2_CAP_MODULATOR; | ||
1517 | video_set_drvdata(&dev->tx_vdev, dev); | 1515 | video_set_drvdata(&dev->tx_vdev, dev); |
1518 | ret = video_register_device(&dev->tx_vdev, VFL_TYPE_SDR, -1); | 1516 | ret = video_register_device(&dev->tx_vdev, VFL_TYPE_SDR, -1); |
1519 | if (ret) { | 1517 | if (ret) { |