OSDN Git Service

media: i2c: st-vgxy61: Fix control flow error on probe
authorBenjamin Mugnier <benjamin.mugnier@foss.st.com>
Wed, 1 Feb 2023 14:04:16 +0000 (15:04 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 19 Mar 2023 23:36:32 +0000 (00:36 +0100)
In case of error 'update_hdr' now goes through 'power_off' instead of
returning, effectively shutting down the sensor.

Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/i2c/st-vgxy61.c

index 60f7974..76db976 100644 (file)
@@ -1870,11 +1870,11 @@ static int vgxy61_probe(struct i2c_client *client)
        vgxy61_fill_framefmt(sensor, sensor->current_mode, &sensor->fmt,
                             VGXY61_MEDIA_BUS_FMT_DEF);
 
+       mutex_init(&sensor->lock);
+
        ret = vgxy61_update_hdr(sensor, sensor->hdr);
        if (ret)
-               return ret;
-
-       mutex_init(&sensor->lock);
+               goto error_power_off;
 
        ret = vgxy61_init_controls(sensor);
        if (ret) {
@@ -1913,8 +1913,8 @@ error_pm_runtime:
        media_entity_cleanup(&sensor->sd.entity);
 error_handler_free:
        v4l2_ctrl_handler_free(sensor->sd.ctrl_handler);
-       mutex_destroy(&sensor->lock);
 error_power_off:
+       mutex_destroy(&sensor->lock);
        vgxy61_power_off(dev);
 
        return ret;