mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-10 18:19:22 -04:00
media: renesas: vsp1: Fix media bus code setup on RWPF source pad
The RWPF source pad media bus code can only be different from the sink pad code when enabling color space conversion, which can only convert between RGB and YUV. If the sink pad code is HSV, no conversion is possible. Fix the pad set format handler to reflect this hardware limitation. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com> Link: https://lore.kernel.org/r/20250429232904.26413-5-laurent.pinchart+renesas@ideasonboard.com Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
committed by
Hans Verkuil
parent
687dae9eed
commit
b6e57605ef
@@ -76,11 +76,20 @@ static int vsp1_rwpf_set_format(struct v4l2_subdev *subdev,
|
||||
format = v4l2_subdev_state_get_format(state, fmt->pad);
|
||||
|
||||
if (fmt->pad == RWPF_PAD_SOURCE) {
|
||||
const struct v4l2_mbus_framefmt *sink_format =
|
||||
v4l2_subdev_state_get_format(state, RWPF_PAD_SINK);
|
||||
|
||||
/*
|
||||
* The RWPF performs format conversion but can't scale, only the
|
||||
* format code can be changed on the source pad.
|
||||
* format code can be changed on the source pad when converting
|
||||
* between RGB and YUV.
|
||||
*/
|
||||
format->code = fmt->format.code;
|
||||
if (sink_format->code != MEDIA_BUS_FMT_AHSV8888_1X32 &&
|
||||
fmt->format.code != MEDIA_BUS_FMT_AHSV8888_1X32)
|
||||
format->code = fmt->format.code;
|
||||
else
|
||||
format->code = sink_format->code;
|
||||
|
||||
fmt->format = *format;
|
||||
goto done;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user