diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 137e07379cf5..2a5d27fefe0c 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -1190,24 +1190,12 @@ int RPiCameraData::configureIPA()
 void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData &action)
 {
 	/*
-	 * The following actions can be handled when the pipeline handler is in
-	 * a stopped state.
+	 * Actions are only handled when the pipeline handler is not in a
+	 * stopped state.
 	 */
-	switch (action.operation) {
-	case RPI_IPA_ACTION_V4L2_SET_ISP: {
-		ControlList controls = action.controls[0];
-		isp_[Isp::Input].dev()->setControls(&controls);
-		goto done;
-	}
-	}
-
 	if (state_ == State::Stopped)
-		goto done;
+		return;
 
-	/*
-	 * The following actions must not be handled when the pipeline handler
-	 * is in a stopped state.
-	 */
 	switch (action.operation) {
 	case RPI_IPA_ACTION_V4L2_SET_STAGGERED: {
 		const ControlList &controls = action.controls[0];
@@ -1216,6 +1204,12 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData
 		break;
 	}
 
+	case RPI_IPA_ACTION_V4L2_SET_ISP: {
+		ControlList controls = action.controls[0];
+		isp_[Isp::Input].dev()->setControls(&controls);
+		break;
+	}
+
 	case RPI_IPA_ACTION_STATS_METADATA_COMPLETE: {
 		unsigned int bufferId = action.data[0];
 		FrameBuffer *buffer = isp_[Isp::Stats].getBuffers()->at(bufferId).get();
@@ -1253,7 +1247,6 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData
 		break;
 	}
 
-done:
 	handleState();
 }
 
