[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250403-uvc-orientation-v1-8-1a0cc595a62d@chromium.org>
Date: Thu, 03 Apr 2025 19:16:19 +0000
From: Ricardo Ribalda <ribalda@...omium.org>
To: Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Hans de Goede <hdegoede@...hat.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Hans Verkuil <hverkuil@...all.nl>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <brgl@...ev.pl>
Cc: linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-usb@...r.kernel.org, devicetree@...r.kernel.org,
linux-gpio@...r.kernel.org, Ricardo Ribalda <ribalda@...omium.org>
Subject: [PATCH 8/8] media: uvcvideo: Do not create MC entities for virtual
entities
Neither the GPIO nor the FWNODE entities form part of the device
pipeline. We just create them to hold emulated uvc controls.
When the device initializes, a warning is thrown by the v4l2 core:
uvcvideo 1-1:1.0: Entity type for entity FWNODE was not initialized!
There are no entity function that matches what we are doing here, and
it does not make to much sense to create a function for entities that
do not really exist.
Do not create MC entities for them and pretend nothing happened here.
Signed-off-by: Ricardo Ribalda <ribalda@...omium.org>
---
drivers/media/usb/uvc/uvc_entity.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/media/usb/uvc/uvc_entity.c b/drivers/media/usb/uvc/uvc_entity.c
index 01eeba2f049e9ebb25e091340a133656acbf28ca..4a0a083b4f58f041023710207a73e8fede8526e0 100644
--- a/drivers/media/usb/uvc/uvc_entity.c
+++ b/drivers/media/usb/uvc/uvc_entity.c
@@ -72,6 +72,16 @@ static int uvc_mc_init_entity(struct uvc_video_chain *chain,
{
int ret;
+ /*
+ * Do not initialize virtual entities, they do not really exist
+ * and are not connected to any other entities.
+ */
+ switch (UVC_ENTITY_TYPE(entity)) {
+ case UVC_EXT_GPIO_UNIT:
+ case UVC_FWNODE_UNIT:
+ return 0;
+ }
+
if (UVC_ENTITY_TYPE(entity) != UVC_TT_STREAMING) {
u32 function;
--
2.49.0.504.g3bcea36a83-goog
Powered by blists - more mailing lists