aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/usb/hackrf/hackrf.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/usb/hackrf/hackrf.c')
-rw-r--r--drivers/media/usb/hackrf/hackrf.c14
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) {