Patch "media: ov5640: Fix initial RESETB state and annotate timings" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    media: ov5640: Fix initial RESETB state and annotate timings

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     media-ov5640-fix-initial-resetb-state-and-annotate-t.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit e4f8fbdac810e92ee5013354cd0f93eaad9dc2c4
Author: Marek Vasut <marex@xxxxxxx>
Date:   Tue Jul 25 00:21:16 2023 +0200

    media: ov5640: Fix initial RESETB state and annotate timings
    
    [ Upstream commit a210df337c5f5c2cd82f36c9dbb154ec63365c80 ]
    
    The initial state of RESETB input signal of OV5640 should be
    asserted, i.e. the sensor should be in reset. This is not the
    case, make it so.
    
    Since the subsequent assertion of RESETB signal is no longer
    necessary and the timing of the power sequencing could be
    slightly adjusted, add annotations to the delays which match
    OV5640 datasheet rev. 2.03, both:
      figure 2-3 power up timing with internal DVDD
      figure 2-4 power up timing with external DVDD source
    
    The 5..10ms delay between PWDN assertion and RESETB assertion
    is not even documented in the power sequencing diagram, and
    with this reset fix, it is no longer even necessary.
    
    Fixes: 19a81c1426c1 ("[media] add Omnivision OV5640 sensor driver")
    Reported-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx>
    Signed-off-by: Marek Vasut <marex@xxxxxxx>
    Reviewed-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx>
    Tested-by: Jai Luthra <j-luthra@xxxxxx>
    Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
index f76bcb395cffa..2ee832426736d 100644
--- a/drivers/media/i2c/ov5640.c
+++ b/drivers/media/i2c/ov5640.c
@@ -2441,16 +2441,13 @@ static void ov5640_power(struct ov5640_dev *sensor, bool enable)
 static void ov5640_powerup_sequence(struct ov5640_dev *sensor)
 {
 	if (sensor->pwdn_gpio) {
-		gpiod_set_value_cansleep(sensor->reset_gpio, 0);
+		gpiod_set_value_cansleep(sensor->reset_gpio, 1);
 
 		/* camera power cycle */
 		ov5640_power(sensor, false);
-		usleep_range(5000, 10000);
+		usleep_range(5000, 10000);	/* t2 */
 		ov5640_power(sensor, true);
-		usleep_range(5000, 10000);
-
-		gpiod_set_value_cansleep(sensor->reset_gpio, 1);
-		usleep_range(1000, 2000);
+		usleep_range(1000, 2000);	/* t3 */
 
 		gpiod_set_value_cansleep(sensor->reset_gpio, 0);
 	} else {
@@ -2458,7 +2455,7 @@ static void ov5640_powerup_sequence(struct ov5640_dev *sensor)
 		ov5640_write_reg(sensor, OV5640_REG_SYS_CTRL0,
 				 OV5640_REG_SYS_CTRL0_SW_RST);
 	}
-	usleep_range(20000, 25000);
+	usleep_range(20000, 25000);	/* t4 */
 
 	/*
 	 * software standby: allows registers programming;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux