From nobody Tue Dec 2 02:29:13 2025 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 63319312816 for ; Thu, 20 Nov 2025 08:50:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763628608; cv=none; b=IA0EHS40XKaZEcrmjM6cTcvaEhW1TVAWNiz0eMj/1t6t2SGjY00Ka8uo2MoouOjZIal11uwBaB5oHrnufViBNe5mhydr/3N7hCwXGQTLcqceA6RwyMNkMe3Dy3Yl8PTr10BaBL0QWtbYYGbhP3kcze/n4jquoXj+zHriM1VH588= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763628608; c=relaxed/simple; bh=M+mW+WSULXXoA2BJG/VmR/L0N4mc6VSqrlTT8ZT02VE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=A2AXp7BVWQ2BDwcuPe1jSa0MesDTIPWMaosLp946rWOScp3qCg/CFM75md1Fe7WKI4LvhAELLA7asGs/FxO5+ZLs7L0YlQ14G8qrHopiJHPAikyv9eRvpBeYLOXRHqjbeCJkcF6SHD67iFjLxDJXl6NKLByHfq3OiqZY8EgAa0M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WR1A0gyi; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WR1A0gyi" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-7aae5f2633dso692402b3a.3 for ; Thu, 20 Nov 2025 00:50:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763628605; x=1764233405; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8wulNorrU/LplRsqFdq/jjsuNqQC6CdMEcWXsJuIvbw=; b=WR1A0gyi+E2jXsw2TGeEcwQmbP4NferyRRhD/wbKNW2R7HfSnUeM6z4zkq7Wy/WwID b4nZIqFljQnIsmCS3wwQefnAG9Ypu5vBYj6eXxf2jAQPioJN/h3cng3nzEupGksVTZ3H Lv4no8aHFCS9zGPql6TQuXrMXvLN+MPH2t3XHOe/O7RF2PlSRD4dbnicY//GE837uQhF KoK/QalWdWn8xggE2t5z1Eo8pxFfv0JKXYSQ64Y/MHNYp5KjeEFrar6KxlBGv3sDMju6 PtiLBYBldvfiHzJVPZjaJkD9W9DYGg1X7/AGT1rX5SYkQtvj7XWPoIUL8ti6VLWFrK1U bCHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763628605; x=1764233405; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=8wulNorrU/LplRsqFdq/jjsuNqQC6CdMEcWXsJuIvbw=; b=YqC/Ay0TUhzuQfAg1povyH1q0oSX7levmzYbAbjuSAtBL36WtTl8yrlBq67O/Zi7i3 oy0HqT38e5Slu36h5LYyMowQyaxwNfcQgRbDgQdDg8NzAiYFGbB1yB++dm3FzwqVqDXS s0FhI2h1u8pnaztynIGsJSeW5VVb76BxyKUhC215uz3Q6sw8WiBarI8KROtLXxzmzQpn 7qCXlq1YwDw7sG3jqu20J4GHUzfglic9c2hcMcE9VCXV/OHyutY0uXrBgDGR0pFHDqjR 3Iaid+F5KChDqHqUgFknoGaqhuOxtSzYAHmReIA2FDm5W5td21rkQ0wsuK1OH5KouGRJ eE3A== X-Gm-Message-State: AOJu0Ywg7oacbuA2Wo/YEXk06kva5NOTvOOpHN6w5+z7IRIAA4IRWplc 1OHfxAokXl/PBmZriI7tWSWM1VepJ1Nq8ZgckoXaE4kGdmqlwMmgDEaXTY0F7A== X-Gm-Gg: ASbGncvnwKe2zzGo1mCEQ+63TmZQxubG1MkzfCpbTZfRAQ1AGJYBeAZJg4eeOV0k1ju TRguS932F8JTRexYTMr2+LytVV/8IUNmMbLx16+9zx4l9uQv1iU/WBQibDNqLZnFwWyjSI+sZP8 xHiyZ/fND+kl5u2fUXa86AoLVhSvvLlaSlhT7hGCbiYVy9K0JMDdiYjKbcFxLGiGE4bmnrBUGnK S868UKc147iGEnzn6nn4E+1sqyotLVX1nGM5OnTFPBx6/Zt4Taz10R8N2pSwFB8pyPrbAw7iv7/ /N7pruCmRVCAVMYtU2oXV7PgEVKxDnY/V6qG0ZVYSxfpJBsx9o+tc59CdN8voHLDPq5t1U+qVrC +s8iQrXHfKWmYRb50SvR0/SvwRfu4I6J5UBpZYki4T5+x6io99iB1urKG+TSrdy1Mdm2BLjpHZv 0/D7WYvu1uZsQIdDTwzD0tVUER/xc7Sx73ri4PCw== X-Google-Smtp-Source: AGHT+IGtuUW0eOH4iDC4C4u0pWDQHVhkJCMz9yoff/QHqW4CoAGSE5E7MXTOxDhAJhNsBCykPSB0tA== X-Received: by 2002:a05:6a00:23d5:b0:7aa:d434:69d6 with SMTP id d2e1a72fcca58-7c4343e34ccmr1973989b3a.10.1763628604575; Thu, 20 Nov 2025 00:50:04 -0800 (PST) Received: from opensource206.. ([157.50.102.16]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7c3f023fba8sm1974900b3a.41.2025.11.20.00.50.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Nov 2025 00:50:04 -0800 (PST) From: Pavan Bobba To: skhan@linuxfoundation.org, kieran.bingham@ideasonboard.com, mchehab@kernel.org Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Pavan Bobba Subject: [PATCH 5/5] docs: media: vimc: document RGB/YUV input entity Date: Thu, 20 Nov 2025 14:19:26 +0530 Message-ID: <20251120084926.18620-6-opensource206@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251120084926.18620-1-opensource206@gmail.com> References: <20251120084926.18620-1-opensource206@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Update the vimc admin guide to describe the RGB/YUV input entity and show how to use it in a pipeline. The existing media-ctl and v4l2-ctl examples are updated to: Use the correct device name, platform:vimc.0. Keep the original sensor =E2=86=92 debayer =E2=86=92 scaler pipeline exampl= e. Add a new example that switches the scaler input to the RGB/YUV entity and requests ARGB output with a padded capture stride via bytesperline. A new vimc-input subdevice section documents the RGB/YUV frame source entity, its default RGB888 bus format, and how it can be used for software-driven frame injection in pipelines that start after a real debayer stage. This makes it easier for users to understand and exercise the RGB/YUV input entity in vimc-based experiments. Signed-off-by: Pavan Bobba --- Documentation/admin-guide/media/vimc.rst | 39 ++++++++++++++++++------ 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/Documentation/admin-guide/media/vimc.rst b/Documentation/admin= -guide/media/vimc.rst index 29d843a8ddb1..a1b7de769e23 100644 --- a/Documentation/admin-guide/media/vimc.rst +++ b/Documentation/admin-guide/media/vimc.rst @@ -4,7 +4,7 @@ The Virtual Media Controller Driver (vimc) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 The vimc driver emulates complex video hardware using the V4L2 API and the= Media -API. It has a capture device and three subdevices: sensor, debayer and sca= ler. +API. It has a capture device and three subdevices: sensor, debayer, scaler= and RGB/YUV input entity. =20 Topology -------- @@ -29,17 +29,28 @@ configuration on each linked subdevice to stream frames= through the pipeline. If the configuration doesn't match, the stream will fail. The ``v4l-utils`` package is a bundle of user-space applications, that comes with ``media-ct= l`` and ``v4l2-ctl`` that can be used to configure the vimc configuration. This se= quence -of commands fits for the default topology: +-of commands fits for the default topology: =20 .. code-block:: bash =20 - media-ctl -d platform:vimc -V '"Sensor A":0[fmt:SBGGR8_1X8/640x480= ]' - media-ctl -d platform:vimc -V '"Debayer A":0[fmt:SBGGR8_1X8/640x48= 0]' - media-ctl -d platform:vimc -V '"Scaler":0[fmt:RGB888_1X24/640x480]' - media-ctl -d platform:vimc -V '"Scaler":0[crop:(100,50)/400x150]' - media-ctl -d platform:vimc -V '"Scaler":1[fmt:RGB888_1X24/300x700]' - v4l2-ctl -z platform:vimc -d "RGB/YUV Capture" -v width=3D300,heig= ht=3D700 - v4l2-ctl -z platform:vimc -d "Raw Capture 0" -v pixelformat=3DBA81 + media-ctl -d platform:vimc.0 -V '"Sensor A":0[fmt:SBGGR8_1X8/640x4= 80]' + media-ctl -d platform:vimc.0 -V '"Debayer A":0[fmt:SBGGR8_1X8/640x= 480]' + media-ctl -d platform:vimc.0 -V '"Scaler":0[fmt:RGB888_1X24/640x48= 0]' + media-ctl -d platform:vimc.0 -V '"Scaler":0[crop:(100,50)/400x150]' + media-ctl -d platform:vimc.0 -V '"Scaler":1[fmt:RGB888_1X24/300x70= 0]' + v4l2-ctl -z platform:vimc.0 -d "RGB/YUV Capture" -v width=3D300,he= ight=3D700 + v4l2-ctl -z platform:vimc.0 -d "Raw Capture 0" -v pixelformat=3DBA= 81 + +The following commands switch the scaler input to the RGB/YUV entity and r= equest +ARGB output with a padded capture stride. + +.. code-block:: bash + + media-ctl -d platform:vimc.0 -V '"RGB/YUV Input":0[fmt:RGB888_1X24= /640x480]' + media-ctl -d platform:vimc.0 -V '"Scaler":0[fmt:RGB888_1X24/640x48= 0]' + media-ctl -d platform:vimc.0 -V '"Scaler":1[fmt:ARGB8888_1X32/640x= 480]' + v4l2-ctl -z platform:vimc.0 -d "RGB/YUV Capture" \ + -v pixelformat=3DRGB3,width=3D640,height=3D480,bytesperlin= e=3D4096 =20 Subdevices ---------- @@ -53,6 +64,16 @@ vimc-sensor: =20 * 1 Pad source =20 +vimc-input: + Simulates an RGB/YUV frame source for pipelines that start after a real + debayer stage. It exposes a single source pad that initially advertises + ``MEDIA_BUS_FMT_RGB888_1X24`` and accepts the usual width/height updat= es via + ``media-ctl``, which is useful for software-driven frame injection + experiments. + Exposes: + + * 1 Pad source + vimc-lens: Ancillary lens for a sensor. Supports auto focus control. Linked to a vimc-sensor using an ancillary link. The lens supports FOCUS_ABSOLUTE --=20 2.43.0