From patchwork Tue Dec 7 00:38:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Ribalda X-Patchwork-Id: 521825 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A74FC433F5 for ; Tue, 7 Dec 2021 00:38:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378520AbhLGAmQ (ORCPT ); Mon, 6 Dec 2021 19:42:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50306 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378481AbhLGAmN (ORCPT ); Mon, 6 Dec 2021 19:42:13 -0500 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0E8FC061746 for ; Mon, 6 Dec 2021 16:38:43 -0800 (PST) Received: by mail-ed1-x52d.google.com with SMTP id e3so50203484edu.4 for ; Mon, 06 Dec 2021 16:38:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HW2THPIGQU7U7w3HiaVAhz55D3C1VtaWNt3sB9bzjBM=; b=VjISuCkRmkEwkw0aCS1nal12zxgwzdL/qVV7/oy2LMN5us+IIRXeJ0MtBPY6A0K8Aw 7fWVRaG9P8Hj8xp5O5Z/23Cb+t+l20BBXq/yTsvUVnvvF8NLN1mi5BosriyM1F5Lg3Dt OWs7Ga5gOpgjQA3pxqD7RMpODEV4/xjyUKGcw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HW2THPIGQU7U7w3HiaVAhz55D3C1VtaWNt3sB9bzjBM=; b=cmuAMbsK35ozFq3GDdAbF8R82Ss8jebQkp2RSNEdIGKyvVylHTUVEOVqn1HjTkZzmZ oS0aQTXY7Y88q3dNFrCpqKbGzdpPoHJSbbyVj66uNRCN11GWWpOjXKMBxKsM1e/ZO9N/ RBUvbyUv8dmnXA9zEVFYlYNxTRA/srYSS6clqkGpDCIUkKhOzrXayGWjtMd7u9i3Dj95 LXtrla8RqxAT05RnNATkAzAcH0SBUw5xFNKpkJ4dgJxvwQWe/EhZzGQas9tXikQV6ols zpzc+4veTsmMEDRlt24U3EQXdlWdWs8iDh+TZat9uJG0+afFgpFW0aUKtySEI9NWDfm+ v4mg== X-Gm-Message-State: AOAM533QKLrqdKjR9gNrYQFbxv/jatw0U8bj7LFVjKMK6uue38sr5+Tv nB0EVtEgJpDF+AK7opbreI88QmGFwMTCQxvo X-Google-Smtp-Source: ABdhPJyq2gqJBj1sAf+6WXUmHXxg2S2oQ7eiYZl+6T0NnMOfBdTQ5l8aMhxHziByasPlso/1QbjJnA== X-Received: by 2002:a17:906:1697:: with SMTP id s23mr50370251ejd.60.1638837522481; Mon, 06 Dec 2021 16:38:42 -0800 (PST) Received: from alco.lan (80.71.134.83.ipv4.parknet.dk. [80.71.134.83]) by smtp.gmail.com with ESMTPSA id hg19sm7422531ejc.1.2021.12.06.16.38.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 16:38:42 -0800 (PST) From: Ricardo Ribalda To: Nicolas Dufresne , Laurent Pinchart , Hans Verkuil , Mauro Carvalho Chehab , Sergey Senozhatsky , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, tfiga@chromium.org Cc: Ricardo Ribalda , stable@vger.kernel.org Subject: [PATCH v2 1/4] Revert "media: uvcvideo: Set unique vdev name based in type" Date: Tue, 7 Dec 2021 01:38:37 +0100 Message-Id: <20211207003840.1212374-2-ribalda@chromium.org> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207003840.1212374-1-ribalda@chromium.org> References: <20211207003840.1212374-1-ribalda@chromium.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org A lot of userspace depends on a descriptive name for vdev. Without this patch, users have a hard time figuring out which camera shall they use for their video conferencing. This reverts commit e3f60e7e1a2b451f538f9926763432249bcf39c4. Cc: Fixes: e3f60e7e1a2b ("media: uvcvideo: Set unique vdev name based in type") Reported-by: Nicolas Dufresne Signed-off-by: Ricardo Ribalda Reviewed-by: Laurent Pinchart --- drivers/media/usb/uvc/uvc_driver.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c index 7c007426e082..058d28a0344b 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -2193,7 +2193,6 @@ 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,20 +2221,16 @@ 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; } - snprintf(vdev->name, sizeof(vdev->name), "%s %u", name, - stream->header.bTerminalLink); + strscpy(vdev->name, dev->name, sizeof(vdev->name)); /* * Set the driver data before calling video_register_device, otherwise From patchwork Tue Dec 7 00:38:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Ribalda X-Patchwork-Id: 523255 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A79B7C433FE for ; Tue, 7 Dec 2021 00:38:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378530AbhLGAmR (ORCPT ); Mon, 6 Dec 2021 19:42:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378497AbhLGAmO (ORCPT ); Mon, 6 Dec 2021 19:42:14 -0500 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6BE5FC061359 for ; Mon, 6 Dec 2021 16:38:44 -0800 (PST) Received: by mail-ed1-x529.google.com with SMTP id r25so49860737edq.7 for ; Mon, 06 Dec 2021 16:38:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G5ttIxz5XV1R8mB4AQEIj3LEMb5zIef+xA+it1IYM0A=; b=fxULTE43khr6HR3nEpuNEBCZ3vxOtIjvgO+qsh/t/MYiz/pcjcUm4ceQBaCIbt6V1O 9VQN3PxhCSxhe7UPODei/pT+cZPxVQ3rLFSHnyAzZmrA680WCK2162MoEHFS4Q5E5clu ficTuYn6q11h/+4WmiPEWa4D1M1601MnTRwx8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G5ttIxz5XV1R8mB4AQEIj3LEMb5zIef+xA+it1IYM0A=; b=YTXwljaMiEiJEsnOeTaUsTyN01etAXw5WQOzp8SiD7gP6J4ux9ZRcU9Y07Yn+a8OTE Jx0rETkprpHaS6XW73zZPIiwyqiOmr1YPlid4Qg5oOxG0Y1uidEXWQKnfXw177r4PPIO M94OpxkKcVbqCYL+kPlNvgKqGrFi5BAl65rsuR7AQ8eTTmJ7s6Fn7KXUrziqDE/gNkEC gcpzFI5VAV3q02wRNbbCN4m1tQiubUZ64AWnUFGe8pQ+OLP2IiADU27NndVMwy5tJij9 8C/X7Q94lnd0GAslLvvjCRCGXQojw5ZElw7VS2DITnypq2QNLTzpWNbtZZZ8xi+Jh4yd Ql9Q== X-Gm-Message-State: AOAM531ZtI4CIJq/Tzgsw8qY0m0ZhKVj5J5oM/5AbJVNbc6YBx2eayWM /43YT9QbSg04Xt0tWWIWSwTeVA== X-Google-Smtp-Source: ABdhPJzyB/H3kstbdpwZhrTKrE9GYUydqXMwZxZnch221LvMd/xWTQsQ2dnz4mfV4fFPDTx23odp/Q== X-Received: by 2002:a17:906:c9d2:: with SMTP id hk18mr47496273ejb.523.1638837522949; Mon, 06 Dec 2021 16:38:42 -0800 (PST) Received: from alco.lan (80.71.134.83.ipv4.parknet.dk. [80.71.134.83]) by smtp.gmail.com with ESMTPSA id hg19sm7422531ejc.1.2021.12.06.16.38.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 16:38:42 -0800 (PST) From: Ricardo Ribalda To: Nicolas Dufresne , Laurent Pinchart , Hans Verkuil , Mauro Carvalho Chehab , Sergey Senozhatsky , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, tfiga@chromium.org Cc: Ricardo Ribalda Subject: [PATCH v2 2/4] media: v4l2-dev.c: Allow driver-defined entity names Date: Tue, 7 Dec 2021 01:38:38 +0100 Message-Id: <20211207003840.1212374-3-ribalda@chromium.org> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207003840.1212374-1-ribalda@chromium.org> References: <20211207003840.1212374-1-ribalda@chromium.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org If the driver provides an name for an entity, use it. This is particularly useful for drivers that export multiple video devices for the same hardware (i.e. metadata and data). Suggested-by: Laurent Pinchart Signed-off-by: Ricardo Ribalda --- drivers/media/v4l2-core/v4l2-dev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v4l2-dev.c index d03ace324db0..4c00503b9349 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -832,7 +832,9 @@ static int video_register_media_controller(struct video_device *vdev) } if (vdev->entity.function != MEDIA_ENT_F_UNKNOWN) { - vdev->entity.name = vdev->name; + /* Use entity names provided by the driver, if available. */ + if (!vdev->entity.name) + vdev->entity.name = vdev->name; /* Needed just for backward compatibility with legacy MC API */ vdev->entity.info.dev.major = VIDEO_MAJOR; From patchwork Tue Dec 7 00:38:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Ribalda X-Patchwork-Id: 521824 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 30CDAC43217 for ; Tue, 7 Dec 2021 00:38:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378541AbhLGAmS (ORCPT ); Mon, 6 Dec 2021 19:42:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378510AbhLGAmO (ORCPT ); Mon, 6 Dec 2021 19:42:14 -0500 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C2C8C0613F8 for ; Mon, 6 Dec 2021 16:38:45 -0800 (PST) Received: by mail-ed1-x536.google.com with SMTP id t5so50035926edd.0 for ; Mon, 06 Dec 2021 16:38:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rZ8QpBf2biMuMXCRBVugY0vgtYK9Kkf5AKuFBkLz2xg=; b=gRII6l4QN0/96xlw9ErXrJx41GPd606dLDQ+m/IfVmIUafTixM/1M25JswAx0/sQbe /QPyuSHY66/CR9npP1/SFupTrhBCLBUaSK+qpEkDIv43ILfdghnPr6IUtr+Jr9OrFZ32 IhStwMKc4XxBGGaWNGlSTY6Tevql1sKXo+n0E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rZ8QpBf2biMuMXCRBVugY0vgtYK9Kkf5AKuFBkLz2xg=; b=f+XnEhtYGN4J/hSYb3fucxMLSPUp2jxLYKpByaqzZKeK7DuG095ftbsGaXdT7JxTPN SO3RgTTcgifcRNH/ED4okvOkH3UtrlJIo/5BOrZ1ETvwl4n5pbGsm7FBjKVQ9VR3vU3N 1HXZAqgBjvodf7M7u4YP041yY9SfcN9WkiIOUxSEk2jKpC4ZN4n+gvOsBKvBw4SNfAHe umEFdxg5yDqIbGtkgXo4aJ5GNq0/EQetDR9T2FgCcZFRXr5x9H/+CZEGHm56jppbyYxl CrvBP8xmYbleD0J+p465/FAvjL7DDGQp8Om+L5EwkZ3kXBZrWXRulPGOAgVzWw6ov47W 6fVQ== X-Gm-Message-State: AOAM5312UBMlJ9rJFuOOdncLx1TmTuqknBh8dTf+grgmcUfjQ3QIq56S jQDTbS2tBDkwDdYlDBVxZjXuSA== X-Google-Smtp-Source: ABdhPJyNVJOvCTsZ9sTSjk94cgl5lWeuMmWOPI9/I9Ela6IO+fjOLU9XaeE+Kae/boRfckP+eUdd8w== X-Received: by 2002:a50:d49d:: with SMTP id s29mr3757515edi.55.1638837523688; Mon, 06 Dec 2021 16:38:43 -0800 (PST) Received: from alco.lan (80.71.134.83.ipv4.parknet.dk. [80.71.134.83]) by smtp.gmail.com with ESMTPSA id hg19sm7422531ejc.1.2021.12.06.16.38.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 16:38:43 -0800 (PST) From: Ricardo Ribalda To: Nicolas Dufresne , Laurent Pinchart , Hans Verkuil , Mauro Carvalho Chehab , Sergey Senozhatsky , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, tfiga@chromium.org Cc: Ricardo Ribalda Subject: [PATCH v2 3/4] media: Documentation/driver-api: Document entity name Date: Tue, 7 Dec 2021 01:38:39 +0100 Message-Id: <20211207003840.1212374-4-ribalda@chromium.org> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207003840.1212374-1-ribalda@chromium.org> References: <20211207003840.1212374-1-ribalda@chromium.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Now the entity name can be configured by the driver to a value different than vdev->name. Document it accordingly. Signed-off-by: Ricardo Ribalda --- Documentation/driver-api/media/v4l2-dev.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/driver-api/media/v4l2-dev.rst b/Documentation/driver-api/media/v4l2-dev.rst index 99e3b5fa7444..22120b60b0a9 100644 --- a/Documentation/driver-api/media/v4l2-dev.rst +++ b/Documentation/driver-api/media/v4l2-dev.rst @@ -134,6 +134,10 @@ manually set the struct media_entity type and name fields. A reference to the entity will be automatically acquired/released when the video device is opened/closed. +The entity name can be configured by setting the `vdev->entity.name` pointer +to the desired value. If it is set to NULL, the entity will be named as the +video device. + ioctls and locking ------------------ From patchwork Tue Dec 7 00:38:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Ribalda X-Patchwork-Id: 523254 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 85D94C4332F for ; Tue, 7 Dec 2021 00:38:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378555AbhLGAmT (ORCPT ); Mon, 6 Dec 2021 19:42:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378514AbhLGAmP (ORCPT ); Mon, 6 Dec 2021 19:42:15 -0500 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 985B3C0613FE for ; Mon, 6 Dec 2021 16:38:45 -0800 (PST) Received: by mail-ed1-x532.google.com with SMTP id e3so50203648edu.4 for ; Mon, 06 Dec 2021 16:38:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5+GbyHSIhzCM5dXMMI+btg2trszjytK9bBAgvB5NDbo=; b=G8y8ID3GInMgoefRzbFPEIV4DJyqhuZT6eqVKtEucJQSUl3UI9x1qf9WchG76iMvQl bwIlO7CoPTIirxYCkeMLfaEN7sDC8xVkhtk3YzldUUUiBaxX/KR8pbUA05XORFuhtK0C 47exNw4jGi91VX2B9bkMU41qWfaMHDFzeYVzk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5+GbyHSIhzCM5dXMMI+btg2trszjytK9bBAgvB5NDbo=; b=LzsyxuqF+kKuAlPvjgvELct1pky/C/tbwnqL4DQQCsJOrRLkK2seandHx87fE+TnWa Q3tg6ruhmGWEOhztpn5F4Txqe7UgDdnY/5j1IlSv1SXbN7AXoi3bN6/jpbURfp9DHKIO nWRW4tgaswz5HmrkD9YcZUbYcV325IwMRoJjRtRLaMU+6H1SlpStP/lTAlGpyCjyaZbb x1LyM5JhPFxk+ds8Cky0RFLwPPLmcD+1MDbVYZg1PluOXbV3QJMzado5GzvVhjq9LLUr siu7TbRZhwGclDzVZNyzOT5p8Oz/T3btN58VZ0U6sx0l3+fg3RoPvM4aUXVYGC/iJjiv WJnw== X-Gm-Message-State: AOAM532GiU0q7mmN891l95c9B1tr7RtEnGxw6SIrhO1TTkmigWIA1a0Q m7ZbTHPVNvw73c4Hz4hQ5AIPow== X-Google-Smtp-Source: ABdhPJxGI6WlldB0T0QMAva0rdGCbbvhtXidl4JEEDpue9hG48h2JzB2JyNWoqJq9UZ+Gqrd64y5NQ== X-Received: by 2002:a17:907:6e8e:: with SMTP id sh14mr48470300ejc.536.1638837524183; Mon, 06 Dec 2021 16:38:44 -0800 (PST) Received: from alco.lan (80.71.134.83.ipv4.parknet.dk. [80.71.134.83]) by smtp.gmail.com with ESMTPSA id hg19sm7422531ejc.1.2021.12.06.16.38.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 16:38:43 -0800 (PST) From: Ricardo Ribalda To: Nicolas Dufresne , Laurent Pinchart , Hans Verkuil , Mauro Carvalho Chehab , Sergey Senozhatsky , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, tfiga@chromium.org Cc: Ricardo Ribalda Subject: [PATCH v2 4/4] media: uvcvideo: Set unique entity name based in type Date: Tue, 7 Dec 2021 01:38:40 +0100 Message-Id: <20211207003840.1212374-5-ribalda@chromium.org> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207003840.1212374-1-ribalda@chromium.org> References: <20211207003840.1212374-1-ribalda@chromium.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org All the entities must have a unique name. We can have a descriptive and unique name by appending the function to their terminal link. This is even resilient 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 --- drivers/media/usb/uvc/uvc_driver.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c index 058d28a0344b..8efbde981480 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -2193,6 +2193,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 __maybe_unused *name; int ret; /* Initialize the video buffers queue. */ @@ -2221,17 +2222,29 @@ 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; } + /* + * Many userspace applications identify the device with vdev->name, so + * we cannot change its name for its function. + */ strscpy(vdev->name, dev->name, sizeof(vdev->name)); +#if defined(CONFIG_MEDIA_CONTROLLER) + vdev->entity.name = devm_kasprintf(&stream->intf->dev, GFP_KERNEL, + "%s %u", name, stream->header.bTerminalLink); +#endif + /* * Set the driver data before calling video_register_device, otherwise * the file open() handler might race us.