]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
media: ov5640: fix resolution update
authorSam Bobrowicz <sam@elite-embedded.com>
Thu, 11 Oct 2018 16:23:26 +0000 (09:23 -0700)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 7 Nov 2018 10:05:51 +0000 (11:05 +0100)
set_fmt was not properly triggering a mode change when
a new mode was set that happened to have the same format
as the previous mode (for example, when only changing the
frame dimensions). Fix this.

Signed-off-by: Sam Bobrowicz <sam@elite-embedded.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/media/i2c/ov5640.c

index 0e40d649b281af1010b1b1dfd3f15839fca5d3db..43ea3ba27365e653f55ac2a7af6ec63bbb34f209 100644 (file)
@@ -2266,12 +2266,11 @@ static int ov5640_set_fmt(struct v4l2_subdev *sd,
                goto out;
        }
 
-       if (new_mode != sensor->current_mode) {
+       if (new_mode != sensor->current_mode ||
+           mbus_fmt->code != sensor->fmt.code) {
+               sensor->fmt = *mbus_fmt;
                sensor->current_mode = new_mode;
                sensor->pending_mode_change = true;
-       }
-       if (mbus_fmt->code != sensor->fmt.code) {
-               sensor->fmt = *mbus_fmt;
                sensor->pending_fmt_change = true;
        }
 out: