summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hansg@kernel.org>2025-05-17 13:40:55 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2025-07-08 08:43:30 +0200
commitf934362be2165ca22c3fb460bf5ae9468e5187f5 (patch)
treef025994b2a775743d4fdb4c7be309d67674d8cc9
parentb9ea99652e973ebdcde855f10c85f690da86cd8d (diff)
media: atomisp: gc0310: Fix power on/off sleep times
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>
-rw-r--r--drivers/staging/media/atomisp/i2c/atomisp-gc0310.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c b/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c
index f3dbc3583d97..c89b3e9e3343 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c
@@ -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;
}