mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-19 18:19:38 -05:00
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:
committed by
Hans Verkuil
parent
46c1e7814d
commit
df2cd073da
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user