diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index eff1f40d605b..98fc3244d9a6 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -302,13 +302,18 @@ void IPARkISP1::computeParams(const uint32_t frame, const uint32_t bufferId)
 {
 	IPAFrameContext &frameContext = context_.frameContexts.get(frame);
 
-	RkISP1Params params(context_.configuration.paramFormat,
-			    mappedBuffers_.at(bufferId).planes()[0]);
+	if (bufferId != 0) {
+		RkISP1Params params(context_.configuration.paramFormat,
+				    mappedBuffers_.at(bufferId).planes()[0]);
 
-	for (const auto &algo : algorithms())
-		algo->prepare(context_, frame, frameContext, &params);
+		for (const auto &algo : algorithms())
+			algo->prepare(context_, frame, frameContext, &params);
 
-	paramsComputed.emit(frame, params.bytesused());
+		paramsComputed.emit(frame, params.bytesused());
+	}
+
+	ControlList ctrls = getSensorControls(frameContext);
+	setSensorControls.emit(frame, ctrls);
 }
 
 void IPARkISP1::processStats(const uint32_t frame, const uint32_t bufferId,
@@ -337,13 +342,6 @@ void IPARkISP1::processStats(const uint32_t frame, const uint32_t bufferId,
 		algo->process(context_, frame, frameContext, stats, metadata);
 	}
 
-	/*
-	 * \todo: Here we should do a lookahead that takes the sensor delays
-	 * into account.
-	 */
-	ControlList ctrls = getSensorControls(frameContext);
-	setSensorControls.emit(frame, ctrls);
-
 	context_.debugMetadata.moveEntries(metadata);
 	metadataReady.emit(frame, metadata);
 }
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index ffd49157ec67..d3940692c11b 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -1352,6 +1352,12 @@ int PipelineHandlerRkISP1::queueRequestDevice(Camera *camera, Request *request)
 
 		if (data->selfPath_ && info->selfPathBuffer)
 			data->selfPath_->queueBuffer(info->selfPathBuffer);
+
+		/*
+		 * Call computeParams with an empty param buffer to trigger the
+		 * setSensorControls signal.
+		 */
+		data->ipa_->computeParams(data->frame_, 0);
 	} else {
 		data->ipa_->computeParams(data->frame_,
 					  info->paramBuffer->cookie());
