Skip to content

Commit

Permalink
media: ov5647: Use gpiod_set_value_cansleep
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
6by9 authored and Phil Elwell committed May 28, 2019
1 parent 497aa0b commit 1233449
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/media/i2c/ov5647.c
Expand Up @@ -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);
}

Expand Down Expand Up @@ -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. */
Expand Down Expand Up @@ -649,13 +649,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;
Expand Down

0 comments on commit 1233449

Please sign in to comment.