All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Dufresne <nicolas@ndufresne.ca>
To: Ricardo Ribalda <ribalda@chromium.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	tfiga@chromium.org
Cc: linux-kernel@vger.kernel.org, stable <stable@vger.kernel.org>
Subject: [REGRESSION] Re: [PATCH v10 11/21] media: uvcvideo: Set unique vdev name based in type
Date: Mon, 06 Dec 2021 14:05:06 -0500	[thread overview]
Message-ID: <b4bfa8b8f3d8f25c48a3b0b81a0e87dc90f111af.camel@ndufresne.ca> (raw)
In-Reply-To: <20210618122923.385938-12-ribalda@chromium.org>

Hi Ricard, 

Le vendredi 18 juin 2021 à 14:29 +0200, Ricardo Ribalda a écrit :
> All the entities must have a unique name. We can have a descriptive and
> unique name by appending the function and the entity->id.

Thanks for your work. The only issue is that unfortunately this change cause an
important regression for users. All UVC cameras in all UIs seems to no longer
include any information about the camera. As an example, I have two cameras on
my system and Firefox, Chrome, Cheese, Zoom and MS Team all agree that my camera
are now:

  Video Capture 4
  Video Capture 5

Previously they would be shown as something like:

  StreamCam
  Integrated

We should probably revert this change quickly before it get deployed more
widely, I have notice the backport being sent for 5.4, 5.10 and 5.14. I'm using
5.15 shipped by Fedora team.

As a proper solution, maybe I could suggest to keep using dev->name, but trim it
enough to fit the " N" string to guaranty that you have enough space in this
limited 32 char string and use that instead ? This should fit the uniqueness
requirement without the sacrifice of the only possibly useful information we had
in that limited string.

regards,
Nicolas

> 
> This is even resilent to multi chain devices.
> 
> 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 <ribalda@chromium.org>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
> ---
>  drivers/media/usb/uvc/uvc_driver.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> index 14b60792ffab..037bf80d1100 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -2194,6 +2194,7 @@ int uvc_register_video_device(struct uvc_device *dev,
>  			      const struct v4l2_file_operations *fops,
>  			      const struct v4l2_ioctl_ops *ioctl_ops)
>  {
> +	const char *name;
>  	int ret;
>  
>  	/* Initialize the video buffers queue. */
> @@ -2222,16 +2223,20 @@ int uvc_register_video_device(struct uvc_device *dev,
>  	case V4L2_BUF_TYPE_VIDEO_CAPTURE:
>  	default:
>  		vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
> +		name = "Video Capture";
>  		break;
>  	case V4L2_BUF_TYPE_VIDEO_OUTPUT:
>  		vdev->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
> +		name = "Video Output";
>  		break;
>  	case V4L2_BUF_TYPE_META_CAPTURE:
>  		vdev->device_caps = V4L2_CAP_META_CAPTURE | V4L2_CAP_STREAMING;
> +		name = "Metadata";
>  		break;
>  	}
>  
> -	strscpy(vdev->name, dev->name, sizeof(vdev->name));
> +	snprintf(vdev->name, sizeof(vdev->name), "%s %u", name,
> +		 stream->header.bTerminalLink);
>  
>  	/*
>  	 * Set the driver data before calling video_register_device, otherwise


  reply	other threads:[~2021-12-06 19:05 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-18 12:29 [PATCH v10 00/21] Fix v4l2-compliance errors Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 01/21] media: v4l2-ioctl: Fix check_ext_ctrls Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 02/21] media: pvrusb2: Do not check for V4L2_CTRL_WHICH_DEF_VAL Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 03/21] media: uvcvideo: " Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 04/21] media: v4l2-ioctl: S_CTRL output the right value Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 05/21] media: uvcvideo: Remove s_ctrl and g_ctrl Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 06/21] media: uvcvideo: Set capability in s_param Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 07/21] media: uvcvideo: Return -EIO for control errors Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 08/21] media: uvcvideo: refactor __uvc_ctrl_add_mapping Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 09/21] media: uvcvideo: Add support for V4L2_CTRL_TYPE_CTRL_CLASS Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 10/21] media: uvcvideo: Use dev->name for querycap() Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 11/21] media: uvcvideo: Set unique vdev name based in type Ricardo Ribalda
2021-12-06 19:05   ` Nicolas Dufresne [this message]
2021-12-06 19:15     ` [REGRESSION] " Laurent Pinchart
2021-06-18 12:29 ` [PATCH v10 12/21] media: uvcvideo: Increase the size of UVC_METADATA_BUF_SIZE Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 13/21] media: uvcvideo: Use control names from framework Ricardo Ribalda
2021-09-03 10:10   ` Mauro Carvalho Chehab
2021-09-03 10:33     ` Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 14/21] media: uvcvideo: Check controls flags before accessing them Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 15/21] media: uvcvideo: Set error_idx during ctrl_commit errors Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 16/21] media: docs: Document the behaviour of uvcvideo driver Ricardo Ribalda
2021-06-18 12:29 ` [PATCH v10 17/21] uvcvideo: uvc_ctrl_is_accessible: check for INACTIVE Ricardo Ribalda
2021-08-22 23:40   ` Laurent Pinchart
2021-06-18 12:29 ` [PATCH v10 18/21] uvcvideo: improve error handling in uvc_query_ctrl() Ricardo Ribalda
2021-08-22 23:52   ` Laurent Pinchart
2021-06-18 12:29 ` [PATCH v10 19/21] uvcvideo: don't spam the log in uvc_ctrl_restore_values() Ricardo Ribalda
2021-08-22 23:23   ` Laurent Pinchart
2021-08-23  0:17   ` Laurent Pinchart
2021-08-23  7:32     ` Hans Verkuil
2021-06-18 12:29 ` [PATCH v10 20/21] uvc: use vb2 ioctl and fop helpers Ricardo Ribalda
2021-08-23  0:00   ` Laurent Pinchart
2021-06-18 12:29 ` [PATCH v10 21/21] media: uvcvideo: Return -EACCES to inactive controls Ricardo Ribalda
2021-06-25 10:29   ` Ricardo Ribalda
2021-06-25 11:06     ` Hans Verkuil
2021-06-25 13:55       ` Ricardo Ribalda
2021-06-30  9:02         ` Hans Verkuil
2021-06-30 12:51           ` Ricardo Ribalda
2021-07-06 14:18             ` Hans Verkuil
2021-07-07  9:07               ` Ricardo Ribalda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b4bfa8b8f3d8f25c48a3b0b81a0e87dc90f111af.camel@ndufresne.ca \
    --to=nicolas@ndufresne.ca \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=ribalda@chromium.org \
    --cc=sergey.senozhatsky@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=tfiga@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.