diff options
| author | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2026-03-19 01:59:01 +0200 |
|---|---|---|
| committer | Hans Verkuil <hverkuil+cisco@kernel.org> | 2026-03-25 10:25:48 +0100 |
| commit | 937f3e6b51f1cea079be9ba642665f2bf8bcc31f (patch) | |
| tree | 379c315437391c1172c75d3ca0aad68d0389cce6 /drivers | |
| parent | d9a2bce9ae6a8432cb8febcab85e79368ea32b0b (diff) | |
media: renesas: vsp1: brx: Fix format propagation
The format width and height is never propagated to the BRX source pad,
leaving its initial configuration invalid. Propagate the whole format
from the first sink pad to the source pad instead of only propagating
the media bus code. This fixes compliance with the subdev format
propagation rules.
Reviewed-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # HiHope RZ/G2M
Link: https://patch.msgid.link/20260318235907.831556-8-laurent.pinchart+renesas@ideasonboard.com
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/media/platform/renesas/vsp1/vsp1_brx.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_brx.c b/drivers/media/platform/renesas/vsp1/vsp1_brx.c index dd651cef93e4..911359faa600 100644 --- a/drivers/media/platform/renesas/vsp1/vsp1_brx.c +++ b/drivers/media/platform/renesas/vsp1/vsp1_brx.c @@ -156,14 +156,20 @@ static int brx_set_format(struct v4l2_subdev *subdev, compose->height = format->height; } - /* Propagate the format code to all pads. */ + /* + * Propagate the format code to all pads, and the whole format to the + * source pad. + */ if (fmt->pad == BRX_PAD_SINK(0)) { unsigned int i; - for (i = 0; i <= brx->entity.source_pad; ++i) { + for (i = 0; i < brx->entity.source_pad; ++i) { format = v4l2_subdev_state_get_format(state, i); format->code = fmt->format.code; } + + format = v4l2_subdev_state_get_format(state, i); + *format = fmt->format; } done: |
