]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: atomisp: gc0310: Fix power on/off sleep times
authorHans de Goede <hansg@kernel.org>
Sat, 17 May 2025 11:40:55 +0000 (13:40 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 8 Jul 2025 06:43:30 +0000 (08:43 +0200)
Reduce the unnecessary long msleep(100) done on stream start to 10 ms and
move this to gc0310_resume() so that it is also done on the initial
power-up done by gc0310_detect(), which should fix gc0310_detect()
sometimes failing.

While at it switch the sleeps from msleep() / usleep_range() to fsleep().

Signed-off-by: Hans de Goede <hansg@kernel.org>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Link: https://lore.kernel.org/r/20250517114106.43494-13-hansg@kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/i2c/atomisp-gc0310.c

index f3dbc3583d97bce54c7aa8781a1c0ccc79cff932..c89b3e9e3343230971916cc34a298022d95ed78c 100644 (file)
@@ -473,8 +473,6 @@ static int gc0310_s_stream(struct v4l2_subdev *sd, int enable)
                if (ret < 0)
                        goto error_power_down;
 
-               msleep(100);
-
                ret = regmap_multi_reg_write(sensor->regmap,
                                             gc0310_reset_register,
                                             ARRAY_SIZE(gc0310_reset_register));
@@ -803,10 +801,11 @@ static int gc0310_resume(struct device *dev)
        struct v4l2_subdev *sd = dev_get_drvdata(dev);
        struct gc0310_device *sensor = to_gc0310_sensor(sd);
 
-       usleep_range(10000, 15000);
+       fsleep(10 * USEC_PER_MSEC);
        gpiod_set_value_cansleep(sensor->reset, 0);
-       usleep_range(10000, 15000);
+       fsleep(10 * USEC_PER_MSEC);
        gpiod_set_value_cansleep(sensor->powerdown, 0);
+       fsleep(10 * USEC_PER_MSEC);
 
        return 0;
 }