|
@@ -1966,9 +1966,11 @@ static int ov5640_set_fmt(struct v4l2_subdev *sd,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- sensor->current_mode = new_mode;
|
|
|
- sensor->fmt = *mbus_fmt;
|
|
|
- sensor->pending_mode_change = true;
|
|
|
+ if (new_mode != sensor->current_mode) {
|
|
|
+ sensor->current_mode = new_mode;
|
|
|
+ sensor->fmt = *mbus_fmt;
|
|
|
+ sensor->pending_mode_change = true;
|
|
|
+ }
|
|
|
out:
|
|
|
mutex_unlock(&sensor->lock);
|
|
|
return ret;
|
|
@@ -2508,8 +2510,10 @@ static int ov5640_s_frame_interval(struct v4l2_subdev *sd,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- sensor->current_mode = mode;
|
|
|
- sensor->pending_mode_change = true;
|
|
|
+ if (mode != sensor->current_mode) {
|
|
|
+ sensor->current_mode = mode;
|
|
|
+ sensor->pending_mode_change = true;
|
|
|
+ }
|
|
|
out:
|
|
|
mutex_unlock(&sensor->lock);
|
|
|
return ret;
|