On Wed, Jun 22, 2022 at 12:42:43PM +0800, Yang Yingliang wrote: > Add the missing gpiod_set_value_cansleep() and clk_disable_unprepare() > before return from ov7251_set_power_on() in the error handling case. This makes sense to me from code flow perspective. Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Fixes: 9e1d3012cc10 ("media: i2c: Remove .s_power() from ov7251") > Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> > Signed-off-by: Yang Yingliang <yangyingliang@xxxxxxxxxx> > --- > v2: > - add gpiod_set_value_cansleep() > - also change the patch title and commit message > --- > drivers/media/i2c/ov7251.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c > index 0e7be15bc20a..ad9689820ecc 100644 > --- a/drivers/media/i2c/ov7251.c > +++ b/drivers/media/i2c/ov7251.c > @@ -934,6 +934,8 @@ static int ov7251_set_power_on(struct device *dev) > ARRAY_SIZE(ov7251_global_init_setting)); > if (ret < 0) { > dev_err(ov7251->dev, "error during global init\n"); > + gpiod_set_value_cansleep(ov7251->enable_gpio, 0); > + clk_disable_unprepare(ov7251->xclk); > ov7251_regulators_disable(ov7251); > return ret; > } > -- > 2.25.1 > -- With Best Regards, Andy Shevchenko