From c2e20ad9879aaefd94e7a0a57ed6a79936566712 Mon Sep 17 00:00:00 2001 From: Zhenke Fan Date: Tue, 19 Jan 2021 11:11:32 +0800 Subject: [PATCH] media: i2c: ov4688: fix the power on timing sequence Signed-off-by: Zhenke Fan Change-Id: I74a6fdcab6e5e3f3fe57e07024b46c648fd7783a --- drivers/media/i2c/ov4688.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov4688.c b/drivers/media/i2c/ov4688.c index f575f60c2413..b41bcaf8d5ef 100644 --- a/drivers/media/i2c/ov4688.c +++ b/drivers/media/i2c/ov4688.c @@ -1184,7 +1184,7 @@ static int __ov4688_start_stream(struct ov4688 *ov4688) ret |= ov4688_write_reg(ov4688->client, OV4688_REG_CTRL_MODE, OV4688_REG_VALUE_08BIT, OV4688_MODE_STREAMING); - usleep_range(500, 500 * 2); + usleep_range(1000 * 10, 1000 * 11); ret |= ov4688_write_array(ov4688->client, ov4688_linear_global_regs); return ret; @@ -1308,6 +1308,7 @@ static int __ov4688_power_on(struct ov4688 *ov4688) goto disable_clk; } + usleep_range(500, 1000); if (!IS_ERR(ov4688->reset_gpio)) gpiod_set_value_cansleep(ov4688->reset_gpio, 0); @@ -1315,6 +1316,7 @@ static int __ov4688_power_on(struct ov4688 *ov4688) if (!IS_ERR(ov4688->pwdn_gpio)) gpiod_set_value_cansleep(ov4688->pwdn_gpio, 1); + usleep_range(1000 * 10, 1000 * 11); /* 8192 cycles prior to first SCCB transaction */ delay_us = ov4688_cal_delay(8192); usleep_range(delay_us, delay_us * 2);