Re: [PATCH 4/4] media: ov5647: Use gpiod_set_value_cansleep

From: Sakari Ailus
Date: Thu Apr 23 2020 - 03:56:07 EST


Hi Roman,

On Mon, Apr 13, 2020 at 12:17:47PM +0300, Roman Kovalivskyi wrote:
> From: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx>
>
> All calls to the gpio library are in contexts that can sleep,
> therefore there is no issue with having those GPIOs controlled
> by controllers which require sleeping (eg I2C GPIO expanders).
>
> Switch to using gpiod_set_value_cansleep instead of gpiod_set_value
> to avoid triggering the warning in gpiolib should the GPIO
> controller need to sleep.
>
> Signed-off-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx>
> Signed-off-by: Roman Kovalivskyi <roman.kovalivskyi@xxxxxxxxxxxxxxx>

This should be merged with the second patch.

> ---
> drivers/media/i2c/ov5647.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c
> index 8a1a515388e0..07550377be2e 100644
> --- a/drivers/media/i2c/ov5647.c
> +++ b/drivers/media/i2c/ov5647.c
> @@ -373,7 +373,7 @@ static int ov5647_sensor_power(struct v4l2_subdev *sd, int on)
> dev_dbg(&client->dev, "OV5647 power on\n");
>
> if (ov5647->pwdn) {
> - gpiod_set_value(ov5647->pwdn, 0);
> + gpiod_set_value_cansleep(ov5647->pwdn, 0);
> msleep(PWDN_ACTIVE_DELAY_MS);
> }
>
> @@ -415,7 +415,7 @@ static int ov5647_sensor_power(struct v4l2_subdev *sd, int on)
>
> clk_disable_unprepare(ov5647->xclk);
>
> - gpiod_set_value(ov5647->pwdn, 1);
> + gpiod_set_value_cansleep(ov5647->pwdn, 1);
> }
>
> /* Update the power count. */
> @@ -648,13 +648,13 @@ static int ov5647_probe(struct i2c_client *client)
> goto mutex_remove;
>
> if (sensor->pwdn) {
> - gpiod_set_value(sensor->pwdn, 0);
> + gpiod_set_value_cansleep(sensor->pwdn, 0);
> msleep(PWDN_ACTIVE_DELAY_MS);
> }
>
> ret = ov5647_detect(sd);
>
> - gpiod_set_value(sensor->pwdn, 1);
> + gpiod_set_value_cansleep(sensor->pwdn, 1);
>
> if (ret < 0)
> goto error;
> --
> 2.17.1
>

--
Sakari Ailus