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 |
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 --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;