On 17/03/2021 17:45, Ricardo Ribalda wrote:
> Use the device name for the card name instead of vdev->name.
> 
> Suggested-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> Signed-off-by: Ricardo Ribalda <riba...@chromium.org>
> ---
>  drivers/media/usb/uvc/uvc_v4l2.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/media/usb/uvc/uvc_v4l2.c 
> b/drivers/media/usb/uvc/uvc_v4l2.c
> index 397217171bbb..dd10cb9361fa 100644
> --- a/drivers/media/usb/uvc/uvc_v4l2.c
> +++ b/drivers/media/usb/uvc/uvc_v4l2.c
> @@ -617,13 +617,12 @@ static int uvc_v4l2_release(struct file *file)
>  static int uvc_ioctl_querycap(struct file *file, void *fh,
>                             struct v4l2_capability *cap)
>  {
> -     struct video_device *vdev = video_devdata(file);
>       struct uvc_fh *handle = file->private_data;
>       struct uvc_video_chain *chain = handle->chain;
>       struct uvc_streaming *stream = handle->stream;
>  
>       strscpy(cap->driver, "uvcvideo", sizeof(cap->driver));
> -     strscpy(cap->card, vdev->name, sizeof(cap->card));
> +     strscpy(cap->card, handle->stream->dev->name, sizeof(cap->card));
>       usb_make_path(stream->dev->udev, cap->bus_info, sizeof(cap->bus_info));
>       cap->capabilities = V4L2_CAP_DEVICE_CAPS | V4L2_CAP_STREAMING
>                         | chain->caps;
> 

You forgot to update querycap in uvc_metadata.c as well:

Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>
---
diff --git a/drivers/media/usb/uvc/uvc_metadata.c 
b/drivers/media/usb/uvc/uvc_metadata.c
index 849d8e5ab75d..d3aab22f91ce 100644
--- a/drivers/media/usb/uvc/uvc_metadata.c
+++ b/drivers/media/usb/uvc/uvc_metadata.c
@@ -30,7 +30,7 @@ static int uvc_meta_v4l2_querycap(struct file *file, void *fh,
        struct uvc_video_chain *chain = stream->chain;

        strscpy(cap->driver, "uvcvideo", sizeof(cap->driver));
-       strscpy(cap->card, vfh->vdev->name, sizeof(cap->card));
+       strscpy(cap->card, stream->dev->name, sizeof(cap->card));
        usb_make_path(stream->dev->udev, cap->bus_info, sizeof(cap->bus_info));
        cap->capabilities = V4L2_CAP_DEVICE_CAPS | V4L2_CAP_STREAMING
                          | chain->caps;

With this change both video and metadata card names are the same, as you would
expect.

Regards,

        Hans

Reply via email to