media: adv7180: Only validate format in s_std

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

As .s_stream already calls adv7180_program_std() all that is needed
is to check the standard is valid, and store it for .s_stream to
program.

While at it add a scoped guard to simplify the error handling.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
Niklas Söderlund
2025-08-28 18:06:53 +02:00
committed by Hans Verkuil
parent 46c1e7814d
commit df2cd073da

View File

@@ -468,22 +468,18 @@ static int adv7180_program_std(struct adv7180_state *state)
static int adv7180_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
{
struct adv7180_state *state = to_state(sd);
int ret = mutex_lock_interruptible(&state->mutex);
int ret;
if (ret)
return ret;
guard(mutex)(&state->mutex);
/* Make sure we can support this std */
ret = v4l2_std_to_adv7180(std);
if (ret < 0)
goto out;
return ret;
state->curr_norm = std;
ret = adv7180_program_std(state);
out:
mutex_unlock(&state->mutex);
return ret;
return 0;
}
static int adv7180_g_std(struct v4l2_subdev *sd, v4l2_std_id *norm)