media: video: tegra: ov5650: adding group hold
authorChien-Yu Chen <chichen@nvidia.com>
Fri, 3 Dec 2010 03:34:36 +0000 (19:34 -0800)
committerRebecca Schultz Zavin <rebecca@android.com>
Tue, 7 Dec 2010 21:07:52 +0000 (13:07 -0800)
Adding group hold registers when setting the frame length to
make sure all frame length settings are applied at the same
time.

Change-Id: I52b30bce90c049490b59f3e48d9925523b18b10c

drivers/media/video/tegra/ov5650.c

index 96957448447ab62ac96556b437c5abf714d13609..fb38471c54870ca22e9760eccfefae8fa394d062 100755 (executable)
@@ -504,6 +504,10 @@ static int ov5650_set_frame_length(struct ov5650_info *info, u32 frame_length)
 
        ov5650_get_frame_length_regs(reg_list, frame_length);
 
+       ret = ov5650_write_reg(info->i2c_client, 0x3212, 0x01);
+       if (ret)
+               return ret;
+
        for (i = 0; i < 2; i++) {
                ret = ov5650_write_reg(info->i2c_client, reg_list[i].addr,
                        reg_list[i].val);
@@ -511,6 +515,14 @@ static int ov5650_set_frame_length(struct ov5650_info *info, u32 frame_length)
                        return ret;
        }
 
+       ret = ov5650_write_reg(info->i2c_client, 0x3212, 0x11);
+       if (ret)
+               return ret;
+
+       ret = ov5650_write_reg(info->i2c_client, 0x3212, 0xa1);
+       if (ret)
+               return ret;
+
        return 0;
 }