diff --git a/drivers/media/i2c/gc2053.c b/drivers/media/i2c/gc2053.c index 7a93d864f217..8475b675c243 100644 --- a/drivers/media/i2c/gc2053.c +++ b/drivers/media/i2c/gc2053.c @@ -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)