Message ID | ff9d9fe93a50efdeced9efab7b38d72c7dabc08f.1589850165.git.roman.kovalivskyi@globallogic.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Kieran Bingham |
Headers | show |
Series | ov5647 driver improvement | expand |
On Tue, May 19, 2020 at 04:16:19AM +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 needs to be merged with the 2nd patch.
diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c index 10f35c637f91..7600b4844f16 100644 --- a/drivers/media/i2c/ov5647.c +++ b/drivers/media/i2c/ov5647.c @@ -378,7 +378,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_range(PWDN_ACTIVE_DELAY_MS); } @@ -420,7 +420,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. */ @@ -661,13 +661,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_range(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;