dev_dbg(&intf->dev, "\n");
 
+       cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_READWRITE;
        if (vdev->vfl_dir == VFL_DIR_RX)
-               cap->device_caps = V4L2_CAP_SDR_CAPTURE | V4L2_CAP_TUNER |
-                                  V4L2_CAP_STREAMING | V4L2_CAP_READWRITE;
-
+               cap->device_caps |= V4L2_CAP_SDR_CAPTURE | V4L2_CAP_TUNER;
        else
-               cap->device_caps = V4L2_CAP_SDR_OUTPUT | V4L2_CAP_MODULATOR |
-                                  V4L2_CAP_STREAMING | V4L2_CAP_READWRITE;
+               cap->device_caps |= V4L2_CAP_SDR_OUTPUT | V4L2_CAP_MODULATOR;
 
        cap->capabilities = V4L2_CAP_SDR_CAPTURE | V4L2_CAP_TUNER |
                            V4L2_CAP_SDR_OUTPUT | V4L2_CAP_MODULATOR |
-                           V4L2_CAP_STREAMING | V4L2_CAP_READWRITE |
-                           V4L2_CAP_DEVICE_CAPS;
+                           V4L2_CAP_DEVICE_CAPS | cap->device_caps;
        strlcpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver));
        strlcpy(cap->card, dev->rx_vdev.name, sizeof(cap->card));
        usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));