diff mbox series

[4/4] media: ov5647: Use gpiod_set_value_cansleep

Message ID f496fe5d364748e9d625a634581a404f30a13efa.1586759968.git.roman.kovalivskyi@globallogic.com (mailing list archive)
State Superseded
Delegated to: Kieran Bingham
Headers show
Series ov5647 driver improvement | expand

Commit Message

Roman Kovalivskyi April 13, 2020, 9:17 a.m. UTC
From: Dave Stevenson <dave.stevenson@raspberrypi.org>

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@raspberrypi.org>
Signed-off-by: Roman Kovalivskyi <roman.kovalivskyi@globallogic.com>
---
 drivers/media/i2c/ov5647.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Sakari Ailus April 23, 2020, 7:55 a.m. UTC | #1
Hi Roman,

On Mon, Apr 13, 2020 at 12:17:47PM +0300, Roman Kovalivskyi wrote:
> From: Dave Stevenson <dave.stevenson@raspberrypi.org>
> 
> 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@raspberrypi.org>
> Signed-off-by: Roman Kovalivskyi <roman.kovalivskyi@globallogic.com>

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
>
diff mbox series

Patch

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;