linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
@ 2025-11-20  8:49 Pavan Bobba
  2025-11-20  8:49 ` [PATCH 1/5] media: vimc: add RGB/YUV input entity implementation Pavan Bobba
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Pavan Bobba @ 2025-11-20  8:49 UTC (permalink / raw)
  To: skhan, kieran.bingham, mchehab; +Cc: linux-kernel, linux-media, Pavan Bobba

This series extends the vimc test driver with a new RGB/YUV input entity,
pipeline enhancements, and documentation updates.

Patch 1 adds an RGB/YUV input entity that can be used to simulate pipelines
starting after a real debayer stage.

Patch 2 adds V4L2_FIELD_ALTERNATE support to vimc-sensor, allowing it to
simulate interlaced sources.

Patch 3 extends the debayer to support multiple RGB output formats.

Patch 4 allows vimc-capture to accept custom bytesperline values so users can
exercise padded strides when testing the RGB/YUV path.

Patch 5 updates the vimc documentation with the RGB/YUV input entity and
revised media-ctl/v4l2-ctl examples.

Tested with:
  - vimc.0 on x86_64 using media-ctl and v4l2-ctl pipelines

Pavan Bobba (5):
  media: vimc: add RGB/YUV input entity implementation
  media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor
  media: vimc: debayer: add support for multiple RGB formats
  media: vimc: capture: support custom bytesperline values
  docs: media: vimc: document RGB/YUV input entity

 Documentation/admin-guide/media/vimc.rst      |  39 +++-
 drivers/media/test-drivers/vimc/Makefile      |   3 +-
 .../media/test-drivers/vimc/vimc-capture.c    |  15 +-
 drivers/media/test-drivers/vimc/vimc-common.h |   1 +
 drivers/media/test-drivers/vimc/vimc-core.c   |   3 +-
 .../media/test-drivers/vimc/vimc-debayer.c    | 113 ++++++++--
 drivers/media/test-drivers/vimc/vimc-input.c  | 210 ++++++++++++++++++
 drivers/media/test-drivers/vimc/vimc-sensor.c |   9 +-
 8 files changed, 352 insertions(+), 41 deletions(-)
 create mode 100644 drivers/media/test-drivers/vimc/vimc-input.c

-- 
2.43.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/5] media: vimc: add RGB/YUV input entity implementation
  2025-11-20  8:49 [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Pavan Bobba
@ 2025-11-20  8:49 ` Pavan Bobba
  2025-11-20  8:49 ` [PATCH 2/5] media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor Pavan Bobba
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Pavan Bobba @ 2025-11-20  8:49 UTC (permalink / raw)
  To: skhan, kieran.bingham, mchehab; +Cc: linux-kernel, linux-media, Pavan Bobba

Introduce a new vimc-input entity to simulate a color frame source in the
Virtual Media Controller (VIMC) pipeline. This entity outputs RGB888 frames
and allows testing of pipelines that start from a pre-processed RGB/YUV
source instead of a raw Bayer sensor.

The patch adds vimc-input.c with basic pad operations for format
enumeration, get/set, and stream enable/disable handlers. The entity is
registered in the VIMC core configuration, replacing the previous temporary
use of vimc-sensor. Frame generation is not yet implemented and remains a
TODO for future work.

This change enables link validation and format negotiation for the
RGB/YUV input path, paving the way for software frame injection and
test-pattern generation.

Signed-off-by: Pavan Bobba <opensource206@gmail.com>
---
 drivers/media/test-drivers/vimc/Makefile      |   3 +-
 drivers/media/test-drivers/vimc/vimc-common.h |   1 +
 drivers/media/test-drivers/vimc/vimc-core.c   |   3 +-
 drivers/media/test-drivers/vimc/vimc-input.c  | 210 ++++++++++++++++++
 4 files changed, 214 insertions(+), 3 deletions(-)
 create mode 100644 drivers/media/test-drivers/vimc/vimc-input.c

diff --git a/drivers/media/test-drivers/vimc/Makefile b/drivers/media/test-drivers/vimc/Makefile
index 9b9631562473..7e1fdb2f2a78 100644
--- a/drivers/media/test-drivers/vimc/Makefile
+++ b/drivers/media/test-drivers/vimc/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 vimc-y := vimc-core.o vimc-common.o vimc-streamer.o vimc-capture.o \
-		vimc-debayer.o vimc-scaler.o vimc-sensor.o vimc-lens.o
+		vimc-debayer.o vimc-scaler.o vimc-sensor.o vimc-lens.o \
+		vimc-input.o
 
 obj-$(CONFIG_VIDEO_VIMC) += vimc.o
 
diff --git a/drivers/media/test-drivers/vimc/vimc-common.h b/drivers/media/test-drivers/vimc/vimc-common.h
index 7a45a2117748..6c94b1635fa8 100644
--- a/drivers/media/test-drivers/vimc/vimc-common.h
+++ b/drivers/media/test-drivers/vimc/vimc-common.h
@@ -172,6 +172,7 @@ extern const struct vimc_ent_type vimc_debayer_type;
 extern const struct vimc_ent_type vimc_scaler_type;
 extern const struct vimc_ent_type vimc_capture_type;
 extern const struct vimc_ent_type vimc_lens_type;
+extern const struct vimc_ent_type vimc_input_type;
 
 /**
  * vimc_pix_map_by_index - get vimc_pix_map struct by its index
diff --git a/drivers/media/test-drivers/vimc/vimc-core.c b/drivers/media/test-drivers/vimc/vimc-core.c
index f632c77e52f5..2f6846facb23 100644
--- a/drivers/media/test-drivers/vimc/vimc-core.c
+++ b/drivers/media/test-drivers/vimc/vimc-core.c
@@ -107,9 +107,8 @@ static const struct vimc_ent_config ent_config[] = {
 		.type = &vimc_capture_type
 	},
 	[RGB_YUV_INPUT] = {
-		/* TODO: change this to vimc-input when it is implemented */
 		.name = "RGB/YUV Input",
-		.type = &vimc_sensor_type
+		.type = &vimc_input_type
 	},
 	[SCALER] = {
 		.name = "Scaler",
diff --git a/drivers/media/test-drivers/vimc/vimc-input.c b/drivers/media/test-drivers/vimc/vimc-input.c
new file mode 100644
index 000000000000..cedcc450d59e
--- /dev/null
+++ b/drivers/media/test-drivers/vimc/vimc-input.c
@@ -0,0 +1,210 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * vimc-input.c Virtual Media Controller Driver
+ *
+ * Copyright (C) 2025 Virtual Input Entity Implementation
+ */
+
+#include <linux/v4l2-mediabus.h>
+#include <media/v4l2-subdev.h>
+
+#include "vimc-common.h"
+
+struct vimc_input_device {
+	struct vimc_ent_device ved;
+	struct v4l2_subdev sd;
+	struct media_pad pad;
+};
+
+static const struct v4l2_mbus_framefmt fmt_default = {
+	.width = 640,
+	.height = 480,
+	.code = MEDIA_BUS_FMT_RGB888_1X24,
+	.field = V4L2_FIELD_NONE,
+	.colorspace = V4L2_COLORSPACE_SRGB,
+};
+
+static int vimc_input_init_state(struct v4l2_subdev *sd,
+				 struct v4l2_subdev_state *sd_state)
+{
+	struct v4l2_mbus_framefmt *mf;
+	unsigned int i;
+
+	for (i = 0; i < sd->entity.num_pads; i++) {
+		mf = v4l2_subdev_state_get_format(sd_state, i);
+		*mf = fmt_default;
+	}
+
+	return 0;
+}
+
+static int vimc_input_enum_mbus_code(struct v4l2_subdev *sd,
+				     struct v4l2_subdev_state *sd_state,
+				     struct v4l2_subdev_mbus_code_enum *code)
+{
+	if (code->index > 0)
+		return -EINVAL;
+
+	code->code = MEDIA_BUS_FMT_RGB888_1X24;
+
+	return 0;
+}
+
+static int vimc_input_enum_frame_size(struct v4l2_subdev *sd,
+				      struct v4l2_subdev_state *sd_state,
+				      struct v4l2_subdev_frame_size_enum *fse)
+{
+	const struct vimc_pix_map *vpix;
+
+	if (fse->index)
+		return -EINVAL;
+
+	/* Only accept code in the pix map table */
+	vpix = vimc_pix_map_by_code(fse->code);
+	if (!vpix)
+		return -EINVAL;
+
+	fse->min_width = VIMC_FRAME_MIN_WIDTH;
+	fse->max_width = VIMC_FRAME_MAX_WIDTH;
+	fse->min_height = VIMC_FRAME_MIN_HEIGHT;
+	fse->max_height = VIMC_FRAME_MAX_HEIGHT;
+
+	return 0;
+}
+
+static int vimc_input_get_fmt(struct v4l2_subdev *sd,
+			      struct v4l2_subdev_state *sd_state,
+			      struct v4l2_subdev_format *fmt)
+{
+	struct v4l2_mbus_framefmt *mf;
+
+	mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
+
+	fmt->format = *mf;
+
+	return 0;
+}
+
+static int vimc_input_set_fmt(struct v4l2_subdev *sd,
+			      struct v4l2_subdev_state *sd_state,
+			      struct v4l2_subdev_format *fmt)
+{
+	struct v4l2_mbus_framefmt *mf;
+
+	mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
+
+	/* Set the new format */
+	*mf = fmt->format;
+
+	return 0;
+}
+
+static int vimc_input_enable_streams(struct v4l2_subdev *sd,
+				     struct v4l2_subdev_state *state,
+				     u32 pad, u64 streams_mask)
+{
+	/* For input entity, we don't allocate frames since we expect
+	 * external frame injection. Just mark that streaming is active.
+	 *
+	 * TODO: For future enhancement, consider implementing frame generation
+	 * or userspace frame injection mechanism. This would require:
+	 * - Frame buffer allocation (similar to vimc-sensor.c)
+	 * - Interface for userspace to inject frames (e.g., via sysfs/debugfs)
+	 * - Frame rate control for generated test patterns
+	 * - Integration with VIMC's streaming infrastructure
+	 * This would make the input entity suitable for more testing scenarios.
+	 */
+	return 0;
+}
+
+static int vimc_input_disable_streams(struct v4l2_subdev *sd,
+				      struct v4l2_subdev_state *state,
+				      u32 pad, u64 streams_mask)
+{
+	/* Streaming stopped - no cleanup needed for input entity */
+	return 0;
+}
+
+static const struct v4l2_subdev_pad_ops vimc_input_pad_ops = {
+	.enum_mbus_code		= vimc_input_enum_mbus_code,
+	.enum_frame_size	= vimc_input_enum_frame_size,
+	.get_fmt		= vimc_input_get_fmt,
+	.set_fmt		= vimc_input_set_fmt,
+	.enable_streams		= vimc_input_enable_streams,
+	.disable_streams	= vimc_input_disable_streams,
+};
+
+static const struct v4l2_subdev_ops vimc_input_ops = {
+	.pad = &vimc_input_pad_ops,
+};
+
+static const struct v4l2_subdev_internal_ops vimc_input_internal_ops = {
+	.init_state = vimc_input_init_state,
+};
+
+static void vimc_input_release(struct vimc_ent_device *ved)
+{
+	struct vimc_input_device *vinput =
+		container_of(ved, struct vimc_input_device, ved);
+
+	v4l2_subdev_cleanup(&vinput->sd);
+	media_entity_cleanup(vinput->ved.ent);
+	kfree(vinput);
+}
+
+/*
+ * Input process frame function
+ * For an input entity, just return the received frame unchanged
+ */
+static void *vimc_input_process_frame(struct vimc_ent_device *ved,
+				      const void *frame)
+{
+	/* For an input entity, just return the received frame unchanged.
+	 *
+	 * TODO: Future enhancement could implement:
+	 * - Frame validation and format checking
+	 * - Frame transformation or processing
+	 * - Frame injection from userspace buffers
+	 * - Frame rate limiting or buffering
+	 * Currently, this is a simple pass-through for external frame sources.
+	 */
+	return (void *)frame;
+}
+
+static struct vimc_ent_device *vimc_input_add(struct vimc_device *vimc,
+					      const char *vcfg_name)
+{
+	struct v4l2_device *v4l2_dev = &vimc->v4l2_dev;
+	struct vimc_input_device *vinput;
+	int ret;
+
+	/* Allocate the vinput struct */
+	vinput = kzalloc(sizeof(*vinput), GFP_KERNEL);
+	if (!vinput)
+		return ERR_PTR(-ENOMEM);
+
+	/* Initialize the media pad */
+	vinput->pad.flags = MEDIA_PAD_FL_SOURCE;
+
+	ret = vimc_ent_sd_register(&vinput->ved, &vinput->sd, v4l2_dev,
+				   vcfg_name,
+				   MEDIA_ENT_F_IO_V4L, 1, &vinput->pad,
+				   &vimc_input_internal_ops, &vimc_input_ops);
+	if (ret)
+		goto err_free_vinput;
+
+	vinput->ved.process_frame = vimc_input_process_frame;
+	vinput->ved.dev = vimc->mdev.dev;
+
+	return &vinput->ved;
+
+err_free_vinput:
+	kfree(vinput);
+
+	return ERR_PTR(ret);
+}
+
+const struct vimc_ent_type vimc_input_type = {
+	.add = vimc_input_add,
+	.release = vimc_input_release
+};
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/5] media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor
  2025-11-20  8:49 [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Pavan Bobba
  2025-11-20  8:49 ` [PATCH 1/5] media: vimc: add RGB/YUV input entity implementation Pavan Bobba
@ 2025-11-20  8:49 ` Pavan Bobba
  2025-11-20  8:49 ` [PATCH 3/5] media: vimc: debayer: add support for multiple RGB formats Pavan Bobba
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Pavan Bobba @ 2025-11-20  8:49 UTC (permalink / raw)
  To: skhan, kieran.bingham, mchehab; +Cc: linux-kernel, linux-media, Pavan Bobba

The vimc sensor currently ignores V4L2_FIELD_ALTERNATE and always
configures the test pattern generator (TPG) with a progressive field.
This patch adds basic handling for the ALTERNATE field type.

When userspace requests V4L2_FIELD_ALTERNATE, the TPG is configured
to output alternating top and bottom fields by calling tpg_s_field()
with the interlaced flag set. For all other field types, existing
progressive behaviour is preserved.

This change allows the vimc-sensor subdevice to correctly reflect
the requested field type in its reported format, enabling basic
testing of interlaced-field negotiation in the media pipeline.
Other vimc entities (debayer, scaler, capture) still treat all
streams as progressive, so streaming with ALTERNATE may not yet
succeed.

Signed-off-by: Pavan Bobba <opensource206@gmail.com>
---
 drivers/media/test-drivers/vimc/vimc-sensor.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/media/test-drivers/vimc/vimc-sensor.c b/drivers/media/test-drivers/vimc/vimc-sensor.c
index 027767777763..900c3f329f1c 100644
--- a/drivers/media/test-drivers/vimc/vimc-sensor.c
+++ b/drivers/media/test-drivers/vimc/vimc-sensor.c
@@ -105,8 +105,10 @@ static void vimc_sensor_tpg_s_format(struct vimc_sensor_device *vsensor,
 	tpg_s_bytesperline(&vsensor->tpg, 0, format->width * vpix->bpp);
 	tpg_s_buf_height(&vsensor->tpg, format->height);
 	tpg_s_fourcc(&vsensor->tpg, vpix->pixelformat);
-	/* TODO: add support for V4L2_FIELD_ALTERNATE */
-	tpg_s_field(&vsensor->tpg, format->field, false);
+	if (format->field == V4L2_FIELD_ALTERNATE)
+		tpg_s_field(&vsensor->tpg, V4L2_FIELD_TOP, true);
+	else
+		tpg_s_field(&vsensor->tpg, format->field, false);
 	tpg_s_colorspace(&vsensor->tpg, format->colorspace);
 	tpg_s_ycbcr_enc(&vsensor->tpg, format->ycbcr_enc);
 	tpg_s_quantization(&vsensor->tpg, format->quantization);
@@ -127,8 +129,7 @@ static void vimc_sensor_adjust_fmt(struct v4l2_mbus_framefmt *fmt)
 	fmt->height = clamp_t(u32, fmt->height, VIMC_FRAME_MIN_HEIGHT,
 			      VIMC_FRAME_MAX_HEIGHT) & ~1;
 
-	/* TODO: add support for V4L2_FIELD_ALTERNATE */
-	if (fmt->field == V4L2_FIELD_ANY || fmt->field == V4L2_FIELD_ALTERNATE)
+	if (fmt->field == V4L2_FIELD_ANY)
 		fmt->field = fmt_default.field;
 
 	vimc_colorimetry_clamp(fmt);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/5] media: vimc: debayer: add support for multiple RGB formats
  2025-11-20  8:49 [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Pavan Bobba
  2025-11-20  8:49 ` [PATCH 1/5] media: vimc: add RGB/YUV input entity implementation Pavan Bobba
  2025-11-20  8:49 ` [PATCH 2/5] media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor Pavan Bobba
@ 2025-11-20  8:49 ` Pavan Bobba
  2025-11-20  8:49 ` [PATCH 4/5] media: vimc: capture: support custom bytesperline values Pavan Bobba
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Pavan Bobba @ 2025-11-20  8:49 UTC (permalink / raw)
  To: skhan, kieran.bingham, mchehab; +Cc: linux-kernel, linux-media, Pavan Bobba

Enhance the vimc debayer subdevice to support multiple RGB output
formats and improve its format negotiation behavior.

This patch introduces the following changes:
 - Adds ARGB8888_1X32 to the list of supported source pad mbus codes.
 - Allows userspace to select any valid RGB code on the source pad
   through set_fmt().
 - Propagates width, height, and field settings from sink to source
   while preserving the selected RGB code.
 - Sets appropriate default colorimetry for RGB output (sRGB, full-range).
 - Updates vimc_debayer_process_rgb_frame() to handle RGB24, BGR24,
   and ARGB32 pixel formats with proper channel ordering and alpha fill.
 - Adds debug and warning logs for invalid or unsupported formats.

These changes make the virtual debayer pipeline more flexible and
realistic for testing RGB/ARGB camera capture paths.

Signed-off-by: Pavan Bobba <opensource206@gmail.com>
---
 .../media/test-drivers/vimc/vimc-debayer.c    | 113 ++++++++++++++----
 1 file changed, 90 insertions(+), 23 deletions(-)

diff --git a/drivers/media/test-drivers/vimc/vimc-debayer.c b/drivers/media/test-drivers/vimc/vimc-debayer.c
index bbb7c7a86df0..0fa1cb8d3be1 100644
--- a/drivers/media/test-drivers/vimc/vimc-debayer.c
+++ b/drivers/media/test-drivers/vimc/vimc-debayer.c
@@ -15,9 +15,6 @@
 
 #include "vimc-common.h"
 
-/* TODO: Add support for more output formats, we only support RGB888 for now. */
-#define VIMC_DEBAYER_SOURCE_MBUS_FMT	MEDIA_BUS_FMT_RGB888_1X24
-
 enum vimc_debayer_rgb_colors {
 	VIMC_DEBAYER_RED = 0,
 	VIMC_DEBAYER_GREEN = 1,
@@ -73,6 +70,7 @@ static const u32 vimc_debayer_src_mbus_codes[] = {
 	MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
 	MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
 	MEDIA_BUS_FMT_RGB888_1X32_PADHI,
+	MEDIA_BUS_FMT_ARGB8888_1X32,
 };
 
 static const struct vimc_debayer_pix_map vimc_debayer_pix_map_list[] = {
@@ -170,7 +168,7 @@ static int vimc_debayer_init_state(struct v4l2_subdev *sd,
 
 	mf = v4l2_subdev_state_get_format(sd_state, 1);
 	*mf = sink_fmt_default;
-	mf->code = VIMC_DEBAYER_SOURCE_MBUS_FMT;
+	mf->code = vimc_debayer_src_mbus_codes[0];
 
 	return 0;
 }
@@ -239,6 +237,14 @@ static void vimc_debayer_adjust_sink_fmt(struct v4l2_mbus_framefmt *fmt)
 	vimc_colorimetry_clamp(fmt);
 }
 
+static void vimc_debayer_set_rgb_mbus_fmt_default(struct v4l2_mbus_framefmt *fmt)
+{
+	fmt->colorspace = V4L2_COLORSPACE_SRGB;
+	fmt->quantization = V4L2_QUANTIZATION_FULL_RANGE;
+	fmt->xfer_func = V4L2_XFER_FUNC_SRGB;
+	fmt->ycbcr_enc = V4L2_YCBCR_ENC_DEFAULT;
+}
+
 static int vimc_debayer_set_fmt(struct v4l2_subdev *sd,
 				struct v4l2_subdev_state *sd_state,
 				struct v4l2_subdev_format *fmt)
@@ -250,12 +256,30 @@ static int vimc_debayer_set_fmt(struct v4l2_subdev *sd,
 	if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE && vdebayer->src_frame)
 		return -EBUSY;
 
-	/*
-	 * Do not change the format of the source pad, it is propagated from
-	 * the sink.
-	 */
-	if (VIMC_IS_SRC(fmt->pad))
-		return v4l2_subdev_get_fmt(sd, sd_state, fmt);
+	if (VIMC_IS_SRC(fmt->pad)) {
+		struct v4l2_mbus_framefmt *source_fmt;
+		struct v4l2_mbus_framefmt *sink_fmt;
+
+		/* Validate the requested source format */
+		if (!vimc_debayer_src_code_is_valid(fmt->format.code))
+			return -EINVAL;
+
+		/* Get current formats */
+		source_fmt = v4l2_subdev_state_get_format(sd_state, 1);
+		sink_fmt = v4l2_subdev_state_get_format(sd_state, 0);
+
+		/* Update source format with appropriate properties for RGB output */
+		source_fmt->code = fmt->format.code;
+		source_fmt->width = sink_fmt->width;   /* Size should match */
+		source_fmt->height = sink_fmt->height; /* Size should match */
+		source_fmt->field = sink_fmt->field;   /* Field handling should match */
+
+		/* Set appropriate colorimetry for RGB output */
+		vimc_debayer_set_rgb_mbus_fmt_default(source_fmt);
+
+		fmt->format = *source_fmt;
+		return 0;
+	}
 
 	/* Set the new format in the sink pad. */
 	vimc_debayer_adjust_sink_fmt(&fmt->format);
@@ -278,8 +302,25 @@ static int vimc_debayer_set_fmt(struct v4l2_subdev *sd,
 
 	/* Propagate the format to the source pad. */
 	format = v4l2_subdev_state_get_format(sd_state, 1);
-	*format = fmt->format;
-	format->code = VIMC_DEBAYER_SOURCE_MBUS_FMT;
+
+	/* Propagate size and field from sink, but maintain source code */
+	format->width = fmt->format.width;
+	format->height = fmt->format.height;
+	format->field = fmt->format.field;
+
+	/*
+	 * Source code should always be valid (set during init or via set_fmt).
+	 * If somehow it's not, this is a bug - log warning and fix it.
+	 */
+	if (!vimc_debayer_src_code_is_valid(format->code)) {
+		dev_warn(vdebayer->ved.dev,
+			 "%s: Invalid source code 0x%x, resetting to default\n",
+			 vdebayer->sd.name, format->code);
+		format->code = vimc_debayer_src_mbus_codes[0];
+	}
+
+	/* Set appropriate colorimetry for RGB output */
+	vimc_debayer_set_rgb_mbus_fmt_default(format);
 
 	return 0;
 }
@@ -297,19 +338,45 @@ static void vimc_debayer_process_rgb_frame(struct vimc_debayer_device *vdebayer,
 					   unsigned int rgb[3])
 {
 	const struct vimc_pix_map *vpix;
-	unsigned int i, index;
+	unsigned int index;
 
 	vpix = vimc_pix_map_by_code(vdebayer->hw.src_code);
-	index = VIMC_FRAME_INDEX(lin, col, vdebayer->hw.size.width, 3);
-	for (i = 0; i < 3; i++) {
-		switch (vpix->pixelformat) {
-		case V4L2_PIX_FMT_RGB24:
-			vdebayer->src_frame[index + i] = rgb[i];
-			break;
-		case V4L2_PIX_FMT_BGR24:
-			vdebayer->src_frame[index + i] = rgb[2 - i];
-			break;
-		}
+	if (!vpix) {
+		dev_dbg(vdebayer->ved.dev, "Invalid source code: 0x%x\n",
+			vdebayer->hw.src_code);
+		return;
+	}
+
+	index = VIMC_FRAME_INDEX(lin, col, vdebayer->hw.size.width, vpix->bpp);
+
+	switch (vpix->pixelformat) {
+	case V4L2_PIX_FMT_RGB24:
+		/* RGB24: R-G-B */
+		vdebayer->src_frame[index + 0] = rgb[0]; /* Red */
+		vdebayer->src_frame[index + 1] = rgb[1]; /* Green */
+		vdebayer->src_frame[index + 2] = rgb[2]; /* Blue */
+		break;
+
+	case V4L2_PIX_FMT_BGR24:
+		/* BGR24: B-G-R */
+		vdebayer->src_frame[index + 0] = rgb[2]; /* Blue */
+		vdebayer->src_frame[index + 1] = rgb[1]; /* Green */
+		vdebayer->src_frame[index + 2] = rgb[0]; /* Red */
+		break;
+
+	case V4L2_PIX_FMT_ARGB32:
+		/* ARGB32: A-R-G-B (set alpha to 255) */
+		vdebayer->src_frame[index + 0] = 255;    /* Alpha */
+		vdebayer->src_frame[index + 1] = rgb[0]; /* Red */
+		vdebayer->src_frame[index + 2] = rgb[1]; /* Green */
+		vdebayer->src_frame[index + 3] = rgb[2]; /* Blue */
+		break;
+
+	default:
+		dev_dbg(vdebayer->ved.dev,
+			"Unsupported pixel format for debayer: 0x%x\n",
+			vpix->pixelformat);
+		break;
 	}
 }
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4/5] media: vimc: capture: support custom bytesperline values
  2025-11-20  8:49 [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Pavan Bobba
                   ` (2 preceding siblings ...)
  2025-11-20  8:49 ` [PATCH 3/5] media: vimc: debayer: add support for multiple RGB formats Pavan Bobba
@ 2025-11-20  8:49 ` Pavan Bobba
  2025-11-20  8:49 ` [PATCH 5/5] docs: media: vimc: document RGB/YUV input entity Pavan Bobba
  2025-11-20 16:38 ` [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Shuah Khan
  5 siblings, 0 replies; 15+ messages in thread
From: Pavan Bobba @ 2025-11-20  8:49 UTC (permalink / raw)
  To: skhan, kieran.bingham, mchehab; +Cc: linux-kernel, linux-media, Pavan Bobba

Allow userspace to request custom bytesperline (stride) values in the
vimc capture driver. The driver now clamps the requested value to a
valid range instead of forcing a fixed stride.

The minimum bytesperline is width * bytes_per_pixel, while the maximum
is limited by VIMC_FRAME_MAX_WIDTH * bytes_per_pixel. This makes the
virtual capture node behave more like real hardware that supports
aligned or padded scanlines.

Signed-off-by: Pavan Bobba <opensource206@gmail.com>
---
 drivers/media/test-drivers/vimc/vimc-capture.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/media/test-drivers/vimc/vimc-capture.c b/drivers/media/test-drivers/vimc/vimc-capture.c
index 7f6124025fc9..7164ec51eb80 100644
--- a/drivers/media/test-drivers/vimc/vimc-capture.c
+++ b/drivers/media/test-drivers/vimc/vimc-capture.c
@@ -85,6 +85,7 @@ static int vimc_capture_try_fmt_vid_cap(struct file *file, void *priv,
 {
 	struct v4l2_pix_format *format = &f->fmt.pix;
 	const struct vimc_pix_map *vpix;
+	u32 min_bpl, max_bpl;
 
 	format->width = clamp_t(u32, format->width, VIMC_FRAME_MIN_WIDTH,
 				VIMC_FRAME_MAX_WIDTH) & ~1;
@@ -97,8 +98,18 @@ static int vimc_capture_try_fmt_vid_cap(struct file *file, void *priv,
 		format->pixelformat = fmt_default.pixelformat;
 		vpix = vimc_pix_map_by_pixelformat(format->pixelformat);
 	}
-	/* TODO: Add support for custom bytesperline values */
-	format->bytesperline = format->width * vpix->bpp;
+
+	/* Calculate the minimum supported bytesperline value */
+	min_bpl = format->width * vpix->bpp;
+	/* Calculate the maximum supported bytesperline value */
+	max_bpl = VIMC_FRAME_MAX_WIDTH * vpix->bpp;
+
+	/* Clamp bytesperline to the valid range */
+	if (format->bytesperline > max_bpl)
+		format->bytesperline = max_bpl;
+	if (format->bytesperline < min_bpl)
+		format->bytesperline = min_bpl;
+
 	format->sizeimage = format->bytesperline * format->height;
 
 	if (format->field == V4L2_FIELD_ANY)
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 5/5] docs: media: vimc: document RGB/YUV input entity
  2025-11-20  8:49 [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Pavan Bobba
                   ` (3 preceding siblings ...)
  2025-11-20  8:49 ` [PATCH 4/5] media: vimc: capture: support custom bytesperline values Pavan Bobba
@ 2025-11-20  8:49 ` Pavan Bobba
  2025-11-20 16:38 ` [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Shuah Khan
  5 siblings, 0 replies; 15+ messages in thread
From: Pavan Bobba @ 2025-11-20  8:49 UTC (permalink / raw)
  To: skhan, kieran.bingham, mchehab; +Cc: linux-kernel, linux-media, Pavan Bobba

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 → debayer → scaler pipeline example.

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 <opensource206@gmail.com>
---
 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)
 ==========================================
 
 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 scaler.
+API. It has a capture device and three subdevices: sensor, debayer, scaler and RGB/YUV input entity.
 
 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-ctl`` and
 ``v4l2-ctl`` that can be used to configure the vimc configuration. This sequence
-of commands fits for the default topology:
+-of commands fits for the default topology:
 
 .. code-block:: bash
 
-        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/640x480]'
-        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=300,height=700
-        v4l2-ctl -z platform:vimc -d "Raw Capture 0" -v pixelformat=BA81
+        media-ctl -d platform:vimc.0 -V '"Sensor A":0[fmt:SBGGR8_1X8/640x480]'
+        media-ctl -d platform:vimc.0 -V '"Debayer A":0[fmt:SBGGR8_1X8/640x480]'
+        media-ctl -d platform:vimc.0 -V '"Scaler":0[fmt:RGB888_1X24/640x480]'
+        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/300x700]'
+        v4l2-ctl -z platform:vimc.0 -d "RGB/YUV Capture" -v width=300,height=700
+        v4l2-ctl -z platform:vimc.0 -d "Raw Capture 0" -v pixelformat=BA81
+
+The following commands switch the scaler input to the RGB/YUV entity and request
+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/640x480]'
+        media-ctl -d platform:vimc.0 -V '"Scaler":1[fmt:ARGB8888_1X32/640x480]'
+        v4l2-ctl -z platform:vimc.0 -d "RGB/YUV Capture" \
+                -v pixelformat=RGB3,width=640,height=480,bytesperline=4096
 
 Subdevices
 ----------
@@ -53,6 +64,16 @@ vimc-sensor:
 
 	* 1 Pad source
 
+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 updates 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
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-11-20  8:49 [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Pavan Bobba
                   ` (4 preceding siblings ...)
  2025-11-20  8:49 ` [PATCH 5/5] docs: media: vimc: document RGB/YUV input entity Pavan Bobba
@ 2025-11-20 16:38 ` Shuah Khan
  2025-11-28  3:11   ` opensource india
  5 siblings, 1 reply; 15+ messages in thread
From: Shuah Khan @ 2025-11-20 16:38 UTC (permalink / raw)
  To: kieran.bingham, mchehab, Hans Verkuil
  Cc: linux-kernel, linux-media, Pavan Bobba

On 11/20/25 01:49, Pavan Bobba wrote:
> This series extends the vimc test driver with a new RGB/YUV input entity,
> pipeline enhancements, and documentation updates.
> 
> Patch 1 adds an RGB/YUV input entity that can be used to simulate pipelines
> starting after a real debayer stage.
> 
> Patch 2 adds V4L2_FIELD_ALTERNATE support to vimc-sensor, allowing it to
> simulate interlaced sources.
> 
> Patch 3 extends the debayer to support multiple RGB output formats.
> 
> Patch 4 allows vimc-capture to accept custom bytesperline values so users can
> exercise padded strides when testing the RGB/YUV path.
> 
> Patch 5 updates the vimc documentation with the RGB/YUV input entity and
> revised media-ctl/v4l2-ctl examples.
> 
> Tested with:
>    - vimc.0 on x86_64 using media-ctl and v4l2-ctl pipelines
> 
> Pavan Bobba (5):
>    media: vimc: add RGB/YUV input entity implementation
>    media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor
>    media: vimc: debayer: add support for multiple RGB formats
>    media: vimc: capture: support custom bytesperline values
>    docs: media: vimc: document RGB/YUV input entity
> 
>   Documentation/admin-guide/media/vimc.rst      |  39 +++-
>   drivers/media/test-drivers/vimc/Makefile      |   3 +-
>   .../media/test-drivers/vimc/vimc-capture.c    |  15 +-
>   drivers/media/test-drivers/vimc/vimc-common.h |   1 +
>   drivers/media/test-drivers/vimc/vimc-core.c   |   3 +-
>   .../media/test-drivers/vimc/vimc-debayer.c    | 113 ++++++++--
>   drivers/media/test-drivers/vimc/vimc-input.c  | 210 ++++++++++++++++++
>   drivers/media/test-drivers/vimc/vimc-sensor.c |   9 +-
>   8 files changed, 352 insertions(+), 41 deletions(-)
>   create mode 100644 drivers/media/test-drivers/vimc/vimc-input.c
> 

Kieran and Hans, Do you have any feedback on this patch series?

thanks,
-- Shuah


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-11-20 16:38 ` [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Shuah Khan
@ 2025-11-28  3:11   ` opensource india
  2025-12-09  5:04     ` opensource india
  0 siblings, 1 reply; 15+ messages in thread
From: opensource india @ 2025-11-28  3:11 UTC (permalink / raw)
  To: Shuah Khan
  Cc: kieran.bingham, mchehab, Hans Verkuil, linux-kernel, linux-media

On Thu, Nov 20, 2025 at 10:08 PM Shuah Khan <skhan@linuxfoundation.org> wrote:
>
> On 11/20/25 01:49, Pavan Bobba wrote:
> > This series extends the vimc test driver with a new RGB/YUV input entity,
> > pipeline enhancements, and documentation updates.
> > Pavan Bobba (5):
> >    media: vimc: add RGB/YUV input entity implementation
> >    media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor
> >    media: vimc: debayer: add support for multiple RGB formats
> >    media: vimc: capture: support custom bytesperline values
> >    docs: media: vimc: document RGB/YUV input entity
> >
> >   Documentation/admin-guide/media/vimc.rst      |  39 +++-
> >   drivers/media/test-drivers/vimc/Makefile      |   3 +-
> >   .../media/test-drivers/vimc/vimc-capture.c    |  15 +-
> >   drivers/media/test-drivers/vimc/vimc-common.h |   1 +
> >   drivers/media/test-drivers/vimc/vimc-core.c   |   3 +-
> >   .../media/test-drivers/vimc/vimc-debayer.c    | 113 ++++++++--
> >   drivers/media/test-drivers/vimc/vimc-input.c  | 210 ++++++++++++++++++
> >   drivers/media/test-drivers/vimc/vimc-sensor.c |   9 +-
> >   8 files changed, 352 insertions(+), 41 deletions(-)
> >   create mode 100644 drivers/media/test-drivers/vimc/vimc-input.c
> >
>
> Kieran and Hans, Do you have any feedback on this patch series?
>
> thanks,
> -- Shuah
>

Hi Kieran and Hans,
can you please review?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-11-28  3:11   ` opensource india
@ 2025-12-09  5:04     ` opensource india
  2025-12-15 19:10       ` Shuah Khan
  0 siblings, 1 reply; 15+ messages in thread
From: opensource india @ 2025-12-09  5:04 UTC (permalink / raw)
  To: Shuah Khan
  Cc: kieran.bingham, mchehab, Hans Verkuil, linux-kernel, linux-media

On Fri, Nov 28, 2025 at 8:41 AM opensource india
<opensource206@gmail.com> wrote:
>
> On Thu, Nov 20, 2025 at 10:08 PM Shuah Khan <skhan@linuxfoundation.org> wrote:
> >
> > On 11/20/25 01:49, Pavan Bobba wrote:
> > > This series extends the vimc test driver with a new RGB/YUV input entity,
> > > pipeline enhancements, and documentation updates.
> > > Pavan Bobba (5):
> > >    media: vimc: add RGB/YUV input entity implementation
> > >    media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor
> > >    media: vimc: debayer: add support for multiple RGB formats
> > >    media: vimc: capture: support custom bytesperline values
> > >    docs: media: vimc: document RGB/YUV input entity
> > >
> > >   Documentation/admin-guide/media/vimc.rst      |  39 +++-
> > >   drivers/media/test-drivers/vimc/Makefile      |   3 +-
> > >   .../media/test-drivers/vimc/vimc-capture.c    |  15 +-
> > >   drivers/media/test-drivers/vimc/vimc-common.h |   1 +
> > >   drivers/media/test-drivers/vimc/vimc-core.c   |   3 +-
> > >   .../media/test-drivers/vimc/vimc-debayer.c    | 113 ++++++++--
> > >   drivers/media/test-drivers/vimc/vimc-input.c  | 210 ++++++++++++++++++
> > >   drivers/media/test-drivers/vimc/vimc-sensor.c |   9 +-
> > >   8 files changed, 352 insertions(+), 41 deletions(-)
> > >   create mode 100644 drivers/media/test-drivers/vimc/vimc-input.c
> > >
> >
> > Kieran and Hans, Do you have any feedback on this patch series?
> >
> > thanks,
> > -- Shuah
> >
>
> Hi Kieran and Hans,
> can you please review?

Hi team, can someone please review?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-12-09  5:04     ` opensource india
@ 2025-12-15 19:10       ` Shuah Khan
  2025-12-15 19:45         ` Shuah Khan
  2025-12-16  2:57         ` opensource india
  0 siblings, 2 replies; 15+ messages in thread
From: Shuah Khan @ 2025-12-15 19:10 UTC (permalink / raw)
  To: opensource india
  Cc: kieran.bingham, mchehab, Hans Verkuil, linux-kernel, linux-media,
	Shuah Khan

On 12/8/25 22:04, opensource india wrote:
> On Fri, Nov 28, 2025 at 8:41 AM opensource india
> <opensource206@gmail.com> wrote:
>>
>> On Thu, Nov 20, 2025 at 10:08 PM Shuah Khan <skhan@linuxfoundation.org> wrote:
>>>
>>> On 11/20/25 01:49, Pavan Bobba wrote:
>>>> This series extends the vimc test driver with a new RGB/YUV input entity,
>>>> pipeline enhancements, and documentation updates.
>>>> Pavan Bobba (5):
>>>>     media: vimc: add RGB/YUV input entity implementation
>>>>     media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor
>>>>     media: vimc: debayer: add support for multiple RGB formats
>>>>     media: vimc: capture: support custom bytesperline values
>>>>     docs: media: vimc: document RGB/YUV input entity
>>>>
>>>>    Documentation/admin-guide/media/vimc.rst      |  39 +++-
>>>>    drivers/media/test-drivers/vimc/Makefile      |   3 +-
>>>>    .../media/test-drivers/vimc/vimc-capture.c    |  15 +-
>>>>    drivers/media/test-drivers/vimc/vimc-common.h |   1 +
>>>>    drivers/media/test-drivers/vimc/vimc-core.c   |   3 +-
>>>>    .../media/test-drivers/vimc/vimc-debayer.c    | 113 ++++++++--
>>>>    drivers/media/test-drivers/vimc/vimc-input.c  | 210 ++++++++++++++++++
>>>>    drivers/media/test-drivers/vimc/vimc-sensor.c |   9 +-
>>>>    8 files changed, 352 insertions(+), 41 deletions(-)
>>>>    create mode 100644 drivers/media/test-drivers/vimc/vimc-input.c
>>>>
>>>
>>> Kieran and Hans, Do you have any feedback on this patch series?
>>>
>>> thanks,
>>> -- Shuah
>>>
>>
>> Hi Kieran and Hans,
>> can you please review?
> 
> Hi team, can someone please review?

I will send these up in my pull request to Mauro - it might be
later in December of early January.

thanks,
-- Shuah


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-12-15 19:10       ` Shuah Khan
@ 2025-12-15 19:45         ` Shuah Khan
  2025-12-16  2:57         ` opensource india
  1 sibling, 0 replies; 15+ messages in thread
From: Shuah Khan @ 2025-12-15 19:45 UTC (permalink / raw)
  To: opensource india
  Cc: kieran.bingham, mchehab, Hans Verkuil, linux-kernel, linux-media,
	Shuah Khan

On 12/15/25 12:10, Shuah Khan wrote:
> On 12/8/25 22:04, opensource india wrote:
>> On Fri, Nov 28, 2025 at 8:41 AM opensource india
>> <opensource206@gmail.com> wrote:
>>>
>>> On Thu, Nov 20, 2025 at 10:08 PM Shuah Khan <skhan@linuxfoundation.org> wrote:
>>>>
>>>> On 11/20/25 01:49, Pavan Bobba wrote:
>>>>> This series extends the vimc test driver with a new RGB/YUV input entity,
>>>>> pipeline enhancements, and documentation updates.
>>>>> Pavan Bobba (5):
>>>>>     media: vimc: add RGB/YUV input entity implementation
>>>>>     media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor
>>>>>     media: vimc: debayer: add support for multiple RGB formats
>>>>>     media: vimc: capture: support custom bytesperline values
>>>>>     docs: media: vimc: document RGB/YUV input entity
>>>>>
>>>>>    Documentation/admin-guide/media/vimc.rst      |  39 +++-
>>>>>    drivers/media/test-drivers/vimc/Makefile      |   3 +-
>>>>>    .../media/test-drivers/vimc/vimc-capture.c    |  15 +-
>>>>>    drivers/media/test-drivers/vimc/vimc-common.h |   1 +
>>>>>    drivers/media/test-drivers/vimc/vimc-core.c   |   3 +-
>>>>>    .../media/test-drivers/vimc/vimc-debayer.c    | 113 ++++++++--
>>>>>    drivers/media/test-drivers/vimc/vimc-input.c  | 210 ++++++++++++++++++
>>>>>    drivers/media/test-drivers/vimc/vimc-sensor.c |   9 +-
>>>>>    8 files changed, 352 insertions(+), 41 deletions(-)
>>>>>    create mode 100644 drivers/media/test-drivers/vimc/vimc-input.c
>>>>>
>>>>
>>>> Kieran and Hans, Do you have any feedback on this patch series?
>>>>
>>>> thanks,
>>>> -- Shuah
>>>>
>>>
>>> Hi Kieran and Hans,
>>> can you please review?
>>
>> Hi team, can someone please review?
> 
> I will send these up in my pull request to Mauro - it might be
> later in December of early January.
> 

Applied to git@gitolite.kernel.org:/pub/scm/linux/kernel/git/shuah/linux vimc branch

thanks,
-- Shuah


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-12-15 19:10       ` Shuah Khan
  2025-12-15 19:45         ` Shuah Khan
@ 2025-12-16  2:57         ` opensource india
  2025-12-29 16:04           ` opensource india
  1 sibling, 1 reply; 15+ messages in thread
From: opensource india @ 2025-12-16  2:57 UTC (permalink / raw)
  To: Shuah Khan
  Cc: kieran.bingham, mchehab, Hans Verkuil, linux-kernel, linux-media

On Tue, Dec 16, 2025 at 12:40 AM Shuah Khan <skhan@linuxfoundation.org> wrote:

> >>
> >> Hi Kieran and Hans,
> >> can you please review?
> >
> > Hi team, can someone please review?
>
> I will send these up in my pull request to Mauro - it might be
> later in December of early January.
>
> thanks,
> -- Shuah
>

Thank you so much Shuah

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-12-16  2:57         ` opensource india
@ 2025-12-29 16:04           ` opensource india
  2025-12-31 20:43             ` Shuah Khan
  0 siblings, 1 reply; 15+ messages in thread
From: opensource india @ 2025-12-29 16:04 UTC (permalink / raw)
  To: Shuah Khan
  Cc: kieran.bingham, mchehab, Hans Verkuil, linux-kernel, linux-media

Hi Shuah,

On Tue, Dec 16, 2025 at 8:27 AM opensource india
<opensource206@gmail.com> wrote:
>
> On Tue, Dec 16, 2025 at 12:40 AM Shuah Khan <skhan@linuxfoundation.org> wrote:
>
> > >>
> > >> Hi Kieran and Hans,
> > >> can you please review?
> > >
> > > Hi team, can someone please review?
> >
> > I will send these up in my pull request to Mauro - it might be
> > later in December of early January.
> >
> > thanks,
> > -- Shuah
> >
>
> Thank you so much Shuah

able to pick my changes?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-12-29 16:04           ` opensource india
@ 2025-12-31 20:43             ` Shuah Khan
  2026-01-01  1:11               ` opensource india
  0 siblings, 1 reply; 15+ messages in thread
From: Shuah Khan @ 2025-12-31 20:43 UTC (permalink / raw)
  To: opensource india
  Cc: kieran.bingham, mchehab, Hans Verkuil, linux-kernel, linux-media,
	Shuah Khan

On 12/29/25 09:04, opensource india wrote:
> Hi Shuah,
> 
> On Tue, Dec 16, 2025 at 8:27 AM opensource india
> <opensource206@gmail.com> wrote:
>>
>> On Tue, Dec 16, 2025 at 12:40 AM Shuah Khan <skhan@linuxfoundation.org> wrote:
>>
>>>>>
>>>>> Hi Kieran and Hans,
>>>>> can you please review?
>>>>
>>>> Hi team, can someone please review?
>>>
>>> I will send these up in my pull request to Mauro - it might be
>>> later in December of early January.
>>>
>>> thanks,
>>> -- Shuah
>>>
>>
>> Thank you so much Shuah
> 
> able to pick my changes?

I applied them to vimc branch a while back.

https://web.git.kernel.org/pub/scm/linux/kernel/git/shuah/linux.git/log/?h=vimc

thanks,
-- Shuah


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support
  2025-12-31 20:43             ` Shuah Khan
@ 2026-01-01  1:11               ` opensource india
  0 siblings, 0 replies; 15+ messages in thread
From: opensource india @ 2026-01-01  1:11 UTC (permalink / raw)
  To: Shuah Khan
  Cc: kieran.bingham, mchehab, Hans Verkuil, linux-kernel, linux-media

Hi Shuah

On Thu, Jan 1, 2026 at 2:13 AM Shuah Khan <skhan@linuxfoundation.org> wrote:
>
> On 12/29/25 09:04, opensource india wrote:
> > Hi Shuah,
> >
> > On Tue, Dec 16, 2025 at 8:27 AM opensource india
> > <opensource206@gmail.com> wrote:
> >>
> >> On Tue, Dec 16, 2025 at 12:40 AM Shuah Khan <skhan@linuxfoundation.org> wrote:
> >>
> >>>>>
> >>>>> Hi Kieran and Hans,
> >>>>> can you please review?
> >>>>
> >>>> Hi team, can someone please review?
> >>>
> >>> I will send these up in my pull request to Mauro - it might be
> >>> later in December of early January.
> >>>
> >>> thanks,
> >>> -- Shuah
> >>>
> >>
> >> Thank you so much Shuah
> >
> > able to pick my changes?
>
> I applied them to vimc branch a while back.
>
> https://web.git.kernel.org/pub/scm/linux/kernel/git/shuah/linux.git/log/?h=vimc
>
> thanks,
> -- Shuah
>

Thank you so much

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2026-01-01  1:11 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-20  8:49 [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Pavan Bobba
2025-11-20  8:49 ` [PATCH 1/5] media: vimc: add RGB/YUV input entity implementation Pavan Bobba
2025-11-20  8:49 ` [PATCH 2/5] media: vimc: add support for V4L2_FIELD_ALTERNATE in vimc-sensor Pavan Bobba
2025-11-20  8:49 ` [PATCH 3/5] media: vimc: debayer: add support for multiple RGB formats Pavan Bobba
2025-11-20  8:49 ` [PATCH 4/5] media: vimc: capture: support custom bytesperline values Pavan Bobba
2025-11-20  8:49 ` [PATCH 5/5] docs: media: vimc: document RGB/YUV input entity Pavan Bobba
2025-11-20 16:38 ` [PATCH 0/5] media: vimc: add RGB/YUV input entity and improve pipeline support Shuah Khan
2025-11-28  3:11   ` opensource india
2025-12-09  5:04     ` opensource india
2025-12-15 19:10       ` Shuah Khan
2025-12-15 19:45         ` Shuah Khan
2025-12-16  2:57         ` opensource india
2025-12-29 16:04           ` opensource india
2025-12-31 20:43             ` Shuah Khan
2026-01-01  1:11               ` opensource india

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).