]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: adv7180: Do not write format to device in set_fmt
authorNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Thu, 28 Aug 2025 16:06:52 +0000 (18:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:13 +0000 (15:37 -0500)
[ Upstream commit 46c1e7814d1c3310ef23c01ed1a582ef0c8ab1d2 ]

The .set_fmt callback should not write the new format directly do the
device, it should only store it and have it applied by .s_stream.

The .s_stream callback already calls adv7180_set_field_mode() so it's
safe to remove programming of the device and just store the format and
have .s_stream apply it.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/i2c/adv7180.c

index 84600fa75ae8a8b44d7860d8d7f5cec29cb6d07b..8100fe6b0f1d48641b63159ba19e3902ecfe5125 100644 (file)
@@ -812,14 +812,7 @@ static int adv7180_set_pad_format(struct v4l2_subdev *sd,
        ret = adv7180_mbus_fmt(sd,  &format->format);
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
-               if (state->field != format->format.field) {
-                       guard(mutex)(&state->mutex);
-
-                       state->field = format->format.field;
-                       adv7180_set_power(state, false);
-                       adv7180_set_field_mode(state);
-                       adv7180_set_power(state, true);
-               }
+               state->field = format->format.field;
        } else {
                framefmt = v4l2_subdev_state_get_format(sd_state, 0);
                *framefmt = format->format;