]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: stm32: csi: simplify enable_streams error handling
authorAlain Volmat <alain.volmat@foss.st.com>
Mon, 13 Jan 2025 08:57:56 +0000 (09:57 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Sat, 15 Feb 2025 14:22:49 +0000 (15:22 +0100)
Put all error handling for VC stop and CSI stop together
to avoid duplication of code.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/platform/st/stm32/stm32-csi.c

index 3654f9895dbc4619cf6c4236ab1283f6a903ff8b..4affbc00b042ce6f8c5308a79125e58cbfd1c9ba 100644 (file)
@@ -694,19 +694,21 @@ static int stm32_csi_enable_streams(struct v4l2_subdev *sd,
        ret = stm32_csi_start_vc(csidev, state, 0);
        if (ret) {
                dev_err(csidev->dev, "Failed to start VC0\n");
-               stm32_csi_stop(csidev);
-               return ret;
+               goto failed_start_vc;
        }
 
        ret = v4l2_subdev_enable_streams(csidev->s_subdev,
                                         csidev->s_subdev_pad_nb, BIT_ULL(0));
-       if (ret) {
-               stm32_csi_stop_vc(csidev, 0);
-               stm32_csi_stop(csidev);
-               return ret;
-       }
+       if (ret)
+               goto failed_enable_streams;
 
        return 0;
+
+failed_enable_streams:
+       stm32_csi_stop_vc(csidev, 0);
+failed_start_vc:
+       stm32_csi_stop(csidev);
+       return ret;
 }
 
 static int stm32_csi_init_state(struct v4l2_subdev *sd,