media: i2c: ov9282: Add missing clk_disable_unprepare to error path
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Mon, 28 Nov 2022 16:22:49 +0000 (16:22 +0000)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 6 Dec 2022 07:25:02 +0000 (07:25 +0000)
If ov9282_power_on failed the I2C write, it returned without releasing
clocks or regulators. Fix this.

Fixes: 6f7def3d8a65 ("media: i2c: ov9282: Add selection for CSI2 clock mode")
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/i2c/ov9282.c

index 3749501c310406474b8cd4d9f2f1730aa9d2e688..37a55d53af56a0a8b139a400b652a5ca85748743 100644 (file)
@@ -1253,11 +1253,13 @@ static int ov9282_power_on(struct device *dev)
                                        OV9282_GATED_CLOCK : 0);
        if (ret) {
                dev_err(ov9282->dev, "fail to write MIPI_CTRL00");
-               return ret;
+               goto error_clk;
        }
 
        return 0;
 
+error_clk:
+       clk_disable_unprepare(ov9282->inclk);
 error_reset:
        gpiod_set_value_cansleep(ov9282->reset_gpio, 0);