media: atomisp: gc0310: Add error_unlock label to s_stream()
authorHans de Goede <hdegoede@redhat.com>
Sun, 5 Feb 2023 12:12:24 +0000 (12:12 +0000)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sat, 15 Apr 2023 09:35:32 +0000 (10:35 +0100)
Add error_unlock label + goto error_unlock on error to remove separate
unlock-s in all the error-exit paths.

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/i2c/atomisp-gc0310.c

index cf85fb9..59da8d7 100644 (file)
@@ -428,31 +428,27 @@ static int gc0310_s_stream(struct v4l2_subdev *sd, int enable)
        if (enable) {
                /* enable per frame MIPI and sensor ctrl reset  */
                ret = i2c_smbus_write_byte_data(client, 0xFE, 0x30);
-               if (ret) {
-                       mutex_unlock(&dev->input_lock);
-                       return ret;
-               }
+               if (ret)
+                       goto error_unlock;
        }
 
        ret = i2c_smbus_write_byte_data(client, GC0310_RESET_RELATED, GC0310_REGISTER_PAGE_3);
-       if (ret) {
-               mutex_unlock(&dev->input_lock);
-               return ret;
-       }
+       if (ret)
+               goto error_unlock;
 
        ret = i2c_smbus_write_byte_data(client, GC0310_SW_STREAM,
                                        enable ? GC0310_START_STREAMING : GC0310_STOP_STREAMING);
-       if (ret) {
-               mutex_unlock(&dev->input_lock);
-               return ret;
-       }
+       if (ret)
+               goto error_unlock;
 
        ret = i2c_smbus_write_byte_data(client, GC0310_RESET_RELATED, GC0310_REGISTER_PAGE_0);
-       if (ret) {
-               mutex_unlock(&dev->input_lock);
-               return ret;
-       }
+       if (ret)
+               goto error_unlock;
+
+       mutex_unlock(&dev->input_lock);
+       return 0;
 
+error_unlock:
        mutex_unlock(&dev->input_lock);
        return ret;
 }