Received: by 2002:a05:6358:f14:b0:e5:3b68:ec04 with SMTP id b20csp5518052rwj; Wed, 21 Dec 2022 03:51:51 -0800 (PST) X-Google-Smtp-Source: AMrXdXuLBrvjKXB9LNw3367ie1dlWdGKe80Z096vV2RF5buHzt7l63JmMcAc+YC+SbDHOEXNeDeh X-Received: by 2002:a17:906:468d:b0:7c0:a5c8:d14f with SMTP id a13-20020a170906468d00b007c0a5c8d14fmr1039626ejr.77.1671623511166; Wed, 21 Dec 2022 03:51:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671623511; cv=none; d=google.com; s=arc-20160816; b=fwvFjMH+NJzM14Z4DHaBRKgftolxjK4tBDQfGkE3q6IwzfRA31NmXQLEc5/Z7dCnZg 1LA4FMAmJAeAQCX/+lpWosG45nAC3UAZ7LcNo/NMEpxS2iOUQs4hNXKo/vT/EKCrDfQt z1JGjUeXliZysA+NmRU1zjlkvuw4YCyLjIdBJjcW3PFYUEOYWInMaq7qGys+XxEry1wF GqUXuzyyGkiFCGHj03AsOsCzhDBNh/6uLmtK27RG30zdQV4dfHXVi/b54GWIHLh1RnkU n/P9S+qvoXlrbMY2VDvhKVCFjkjN9G7pXydZi1sTKKu8dYCY/eLFpkluxTFm5gDaq4O1 Us9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=SOOTJXHml2+FG0AA2WbchAP8ieRpg97U2A9kJk3HNLc=; b=nYpc7xLPmsTPA+RNSsyPtBFmrIMsGnbvGlJ/UaY4VpV80tvhklmqC7EwW3DAGF0520 28bQBKvTegpNKosApOa+dbaiTRvo0uOb6X2ugBh9N/a7q2WJarboceF7dX1WE1ElA+/Q Kvj/lmUJY0Pu+Vff95VwqVBd/hIoYw54YjYv0e2bMMLt6istaHE2mezbKbtuTQqqxhZ1 jsvAC+lVLbjsuc3h9NmNautRlb2o5WiZJ0TXJI7eOHTkVX7NAKx0MiUM/VWQTAtMMVHS cKex97JS3YEzprNHPcKGRlkZFnJqMZzspWjuN+muNJih6H4PTCf5FoEkK8z/J2BBg4GA FvdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=nTLzLJsR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id wg10-20020a17090705ca00b007c0b7b5ff5csi3253208ejb.646.2022.12.21.03.51.32; Wed, 21 Dec 2022 03:51:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=nTLzLJsR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229728AbiLULXe (ORCPT + 70 others); Wed, 21 Dec 2022 06:23:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40662 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229451AbiLULXc (ORCPT ); Wed, 21 Dec 2022 06:23:32 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B2A8F2BD2; Wed, 21 Dec 2022 03:23:31 -0800 (PST) Received: from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi [213.243.189.158]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 1F55CFB; Wed, 21 Dec 2022 12:23:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1671621809; bh=2wcSda8e9qklFbq/GDmVA4PoZQywKiTPh8H1fje+8jE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=nTLzLJsRBHhRYnWUFugBg0GpRmh3AkiC4HXOTxJwZy8lTequN7MJnH7/X/Xh4Gz2t 2J9N+o1cDuTCHuHnCT+g9FOfE3zFK6B3Zxx1cbiOhPKuxhJXa1XF2hRewY/Cd4DXee rM/42dF962hEsHQ6PKkSyc78MsVL/SuxuYg0qr+A= Date: Wed, 21 Dec 2022 13:23:24 +0200 From: Laurent Pinchart To: Ricardo Ribalda Cc: Yunke Cao , Mauro Carvalho Chehab , Sergey Senozhatsky , linux-media@vger.kernel.org, Mauro Carvalho Chehab , linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 3/3] media: uvcvideo: Add a unique suffix to camera names Message-ID: References: <20220920-resend-meta-v4-0-3ac355b66723@chromium.org> <20220920-resend-meta-v4-3-3ac355b66723@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Ricardo, On Wed, Dec 21, 2022 at 11:57:48AM +0100, Ricardo Ribalda wrote: > On Wed, 21 Dec 2022 at 11:55, Laurent Pinchart wrote: > > On Wed, Dec 21, 2022 at 12:00:58AM +0100, Ricardo Ribalda wrote: > > > On Tue, 6 Dec 2022 at 00:02, Ricardo Ribalda wrote: > > > > On Mon, 5 Dec 2022 at 23:16, Laurent Pinchart wrote: > > > > > On Fri, Dec 02, 2022 at 06:08:19PM +0100, Ricardo Ribalda wrote: > > > > > > Some cameras have multiple data inputs (i.e. IR sensor and RGB sensor), > > > > Did you mean "data outputs" by the way ? > > > > > > > > append a unique number to the device 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 > > > > > > --- > > > > > > drivers/media/usb/uvc/uvc_driver.c | 3 ++- > > > > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > > > > > > > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c > > > > > > index 215fb483efb0..f4032ebb3689 100644 > > > > > > --- a/drivers/media/usb/uvc/uvc_driver.c > > > > > > +++ b/drivers/media/usb/uvc/uvc_driver.c > > > > > > @@ -1963,7 +1963,8 @@ int uvc_register_video_device(struct uvc_device *dev, > > > > > > break; > > > > > > } > > > > > > > > > > > > - strscpy(vdev->name, dev->name, sizeof(vdev->name)); > > > > > > + snprintf(vdev->name, sizeof(vdev->name), "%s %u", dev->name, > > > > > > + stream->header.bTerminalLink); > > > > > > > > > > This won't be perfect as the string is not guaranteed to fit in > > > > > vdev->name, but I suppose it will help as a quick fix for some devices. > > > > > How about the other devices ? Won't they still exhibit the above > > > > > v4l2-compliance failure ? Isn't that something that will still affect > > > > > Chrome OS devices ? > > > > > > > > We could place the id first... but that will look bad: Eg: > > > > > > > > 1- My favorite camera > > > > > > > > Another option is to remove the last chars to fit the id. Eg: > > > > > > > > My favorite came-1 > > > > > > > > If you prefer any of those options or have a better idea I can implement that. > > > > > > @Laurent > > > > > > Any preference here? > > > > I think the latter is better. Could we do so only when there are > > multiple video capture devices (excluding the metadata device) though ? > > That way we won't have a weird "-n" suffix in the majority of use cases. > > > > > > > The change should not cause any regression as big as in patch 1/3. > > > > > However, unless I'm mistaken users will notice a device name change, > > > > > especially when selecting a device in their web browser. Could that be a > > > > > problem ? > > > > > > > > I think the only side effect is that the first time that the kernel > > > > changes the naming convention, if there are more than one camera on > > > > the system, the video conference might pick a different camera. > > > > The good news is that the user will be presented with cameras with > > > > different names. Now some cameras show very confusing names: > > > > > > > > ribalda@alco:~/work/linux$ for a in /dev/video* ; do yavta -l $a| grep > > > > "Dell Webcam"; done > > > > Device `Dell Webcam WB7022' on `usb-0000:2d:00.0-1.2.3.1' (driver > > > > 'uvcvideo') supports video, capture, without mplanes. > > > > Device `Dell Webcam WB7022' on `usb-0000:2d:00.0-1.2.3.1' (driver > > > > 'uvcvideo') supports meta-data, capture, without mplanes. > > > > Device `Dell Webcam WB7022' on `usb-0000:2d:00.0-1.2.3.1' (driver > > > > 'uvcvideo') supports video, capture, without mplanes. > > > > Device `Dell Webcam WB7022' on `usb-0000:2d:00.0-1.2.3.1' (driver > > > > 'uvcvideo') supports meta-data, capture, without mplanes. > > > > I'm tempted to add a new model read-only string control to overcome the > > length limitation. It could then be combined with other information > > (such as the location and supported pixel formats) to create a > > user-friendly camera name by applications. > > Adding the vid:pid would be really useful! Mapping a /dev/videoX to > vid:pid is kind of complicated now. libcamera can help there ;-) We already extract the vendor and product ID. They are only used to create the camera ID at the moment, they are not exposed to applications independently. That would be a good addition. Overall, device naming is something that we have decided *not* to handle in libcamera. We provide information to applications to help them construct a meaningful name, but don't create the name ourselves. This was decided because naming schemes are dependent on application use cases, and in many cases should be localized (e.g. "Front camera" and "Back camera" vs. "Etukamera" and "Takakamera"). > > > > > > /* > > > > > > * Set the driver data before calling video_register_device, otherwise > > > > > > -- Regards, Laurent Pinchart