Re: [PATCH v2 6/6] media: uvcvideo: Set a different name for the metadata entity
From: Hans Verkuil <hidden>
Date: 2021-03-12 07:18:22
Also in:
lkml
On 12/03/2021 00:38, Laurent Pinchart wrote:
Hi Ricardo, Thank you for the patch. On Thu, Mar 11, 2021 at 11:19:46PM +0100, Ricardo Ribalda wrote:quoted
All the entities must have a unique name. Fixes v4l2-compliance: Media Controller ioctls: fail: v4l2-test-media.cpp(205): v2_entity_names_set.find(key) != v2_entity_names_set.end() test MEDIA_IOC_G_TOPOLOGY: FAIL fail: v4l2-test-media.cpp(394): num_data_links != num_links test MEDIA_IOC_ENUM_ENTITIES/LINKS: FAIL Signed-off-by: Ricardo Ribalda <redacted> --- drivers/media/usb/uvc/uvc_driver.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c index 30ef2a3110f7..47efa9a9be99 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c@@ -2199,7 +2199,10 @@ int uvc_register_video_device(struct uvc_device *dev, break; } - strscpy(vdev->name, dev->name, sizeof(vdev->name)); + if (type == V4L2_BUF_TYPE_META_CAPTURE) + strscpy(vdev->name, "Metadata Videodev", sizeof(vdev->name)); + else + strscpy(vdev->name, dev->name, sizeof(vdev->name));A UVC device could contain multiple output terminals (either in the same chain or in different chains), which would still result in multiple entities having the same name. Could this be fixed at the same time ? You can use the unit ID of the output terminal to create unique names (and it would be nice if the video and metadata nodes has similar names, with "video" and "metadata" being the only difference between them).
I agree with Laurent. How about using something like this for the videodevs: snprintf(vdev->name, sizeof(vdev->name), "Meta %s", dev->name); and: snprintf(vdev->name, sizeof(vdev->name), "Video %s", dev->name); Regards, Hans
quoted
/* * Set the driver data before calling video_register_device, otherwise