media: st-mipid02: Propagate format from sink to source pad
authorDaniel Scally <dan.scally@ideasonboard.com>
Tue, 2 May 2023 10:35:47 +0000 (11:35 +0100)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 25 May 2023 14:21:23 +0000 (16:21 +0200)
When setting formats on the sink pad, propagate the adjusted format over
to the subdev's source pad. Use the MIPID02_SOURCE macro to fetch the
pad's try format rather than relying on the pad field of the format to
facilitate this - the function is specific to the source pad anyway.

Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
[Sakari Ailus: Line wrap, fix subject]
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/i2c/st-mipid02.c

index dcd3ff2..906553a 100644 (file)
@@ -750,7 +750,8 @@ static void mipid02_set_fmt_source(struct v4l2_subdev *sd,
        if (format->which != V4L2_SUBDEV_FORMAT_TRY)
                return;
 
-       *v4l2_subdev_get_try_format(sd, sd_state, format->pad) = format->format;
+       *v4l2_subdev_get_try_format(sd, sd_state, MIPID02_SOURCE) =
+               format->format;
 }
 
 static void mipid02_set_fmt_sink(struct v4l2_subdev *sd,
@@ -768,6 +769,9 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd,
                fmt = &bridge->fmt;
 
        *fmt = format->format;
+
+       /* Propagate the format change to the source pad */
+       mipid02_set_fmt_source(sd, sd_state, format);
 }
 
 static int mipid02_set_fmt(struct v4l2_subdev *sd,