From: Hans Verkuil <hans.verk...@cisco.com>

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
---
 drivers/media/usb/au0828/au0828-video.c |   17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/media/usb/au0828/au0828-video.c 
b/drivers/media/usb/au0828/au0828-video.c
index 8b9e826..4254b2c 100644
--- a/drivers/media/usb/au0828/au0828-video.c
+++ b/drivers/media/usb/au0828/au0828-video.c
@@ -1241,20 +1241,25 @@ static int vidioc_queryctrl(struct file *file, void 
*priv,
 static int vidioc_querycap(struct file *file, void  *priv,
                           struct v4l2_capability *cap)
 {
-       struct au0828_fh *fh  = priv;
+       struct video_device *vdev = video_devdata(file);
+       struct au0828_fh *fh = priv;
        struct au0828_dev *dev = fh->dev;
 
        strlcpy(cap->driver, "au0828", sizeof(cap->driver));
        strlcpy(cap->card, dev->board.name, sizeof(cap->card));
-       strlcpy(cap->bus_info, dev->v4l2_dev.name, sizeof(cap->bus_info));
+       usb_make_path(dev->usbdev, cap->bus_info, sizeof(cap->bus_info));
 
-       /*set the device capabilities */
-       cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
-               V4L2_CAP_VBI_CAPTURE |
-               V4L2_CAP_AUDIO |
+       /* set the device capabilities */
+       cap->device_caps = V4L2_CAP_AUDIO |
                V4L2_CAP_READWRITE |
                V4L2_CAP_STREAMING |
                V4L2_CAP_TUNER;
+       if (vdev->vfl_type == VFL_TYPE_GRABBER)
+               cap->device_caps |= V4L2_CAP_VIDEO_CAPTURE;
+       else
+               cap->device_caps |= V4L2_CAP_VBI_CAPTURE;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS |
+               V4L2_CAP_VBI_CAPTURE | V4L2_CAP_VIDEO_CAPTURE;
        return 0;
 }
 
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to