media: i2c: ov5640: Fix post-reset delay
authorLoic Poulain <loic.poulain@linaro.org>
Wed, 30 Jan 2019 16:48:07 +0000 (11:48 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Mar 2019 19:10:05 +0000 (20:10 +0100)
commit 1d4c41f3d887bcd66e82cb2fda124533dad8808a upstream.

According to the ov5640 specification (2.7 power up sequence), host can
access the sensor's registers 20ms after reset. Trying to access them
before leads to undefined behavior and result in sporadic initialization
errors.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Cc: Adam Ford <aford173@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/i2c/ov5640.c

index 8e7a2a5..d5c0ffc 100644 (file)
@@ -1759,7 +1759,7 @@ static void ov5640_reset(struct ov5640_dev *sensor)
        usleep_range(1000, 2000);
 
        gpiod_set_value_cansleep(sensor->reset_gpio, 0);
-       usleep_range(5000, 10000);
+       usleep_range(20000, 25000);
 }
 
 static int ov5640_set_power_on(struct ov5640_dev *sensor)