Hi Niklas, Thank you for the patch. On Thu, Jul 03, 2025 at 10:52:21PM +0200, Niklas Söderlund wrote: > 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@xxxxxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> > --- > drivers/media/i2c/adv7180.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/drivers/media/i2c/adv7180.c b/drivers/media/i2c/adv7180.c > index dcdc89b717a4..8ebb72b2bb61 100644 > --- a/drivers/media/i2c/adv7180.c > +++ b/drivers/media/i2c/adv7180.c > @@ -793,12 +793,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) { > - 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; -- Regards, Laurent Pinchart