media: i2c: optimize gc2053 sync issue

Signed-off-by: LongChang Ma <chad.ma@rock-chips.com>
Change-Id: Ibedcc39845d7a1e02fe4f5bcf6794b32a882e793
This commit is contained in:
LongChang Ma
2023-06-26 09:37:12 +08:00
committed by Tao Huang
parent cf933b81f8
commit efd29cb148
+5 -3
View File
@@ -574,11 +574,13 @@ static int gc2053_set_ctrl(struct v4l2_ctrl *ctrl)
break;
case V4L2_CID_VBLANK:
vts = ctrl->val + gc2053->cur_mode->height;
ret = gc2053_write_reg(gc2053->client, GC2053_REG_VTS_H, (vts >> 8) & 0x3f);
ret |= gc2053_write_reg(gc2053->client, GC2053_REG_VTS_L, vts & 0xff);
/* Note: In master-slave mode, Galaxycore request slave sensor frame rate bigger than master. */
if (gc2053->sync_mode == INTERNAL_MASTER_MODE)
gc2053_write_reg(gc2053->client, GC2053_REG_VTS_L, (vts & 0xff) + 10);
vts += 10;
ret = gc2053_write_reg(gc2053->client, GC2053_REG_VTS_H, (vts >> 8) & 0x3f);
ret |= gc2053_write_reg(gc2053->client, GC2053_REG_VTS_L, vts & 0xff);
/* TBD: master and slave not sync to streaming, but except sleep 20ms below */
usleep_range(20000, 50000);
break;
case V4L2_CID_HFLIP:
if (ctrl->val)