[media] ov2640: select sensor register bank before applying h/v-flip settings
authorFrank Schäfer <fschaefer.oss@googlemail.com>
Sun, 23 Sep 2012 20:16:34 +0000 (17:16 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 6 Oct 2012 12:21:27 +0000 (09:21 -0300)
We currently don't select the register bank in ov2640_s_ctrl, so we can end up
writing to DSP register 0x04 instead of sensor register 0x04.
This happens for example when calling ov2640_s_ctrl after ov2640_s_fmt.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/i2c/soc_camera/ov2640.c

index 78ac5744cb5dd55ffda31edf6e7ead3e74fb1e0c..d2d298b6354e8038d95076fdc6a9bd8a68f256d4 100644 (file)
@@ -684,6 +684,11 @@ static int ov2640_s_ctrl(struct v4l2_ctrl *ctrl)
                &container_of(ctrl->handler, struct ov2640_priv, hdl)->subdev;
        struct i2c_client  *client = v4l2_get_subdevdata(sd);
        u8 val;
+       int ret;
+
+       ret = i2c_smbus_write_byte_data(client, BANK_SEL, BANK_SEL_SENS);
+       if (ret < 0)
+               return ret;
 
        switch (ctrl->id) {
        case V4L2_CID_VFLIP: