diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index d4fbcf4b..e4f328cb 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -403,14 +403,8 @@ void RkISP1CameraData::setSensorControls([[maybe_unused]] unsigned int frame,
 	delayedCtrls_->push(sensorControls);
 
 	CameraLens *lens = sensor_->focusLens();
-	if (!lens)
-		return;
-
-	if (lensControls.contains(V4L2_CID_FOCUS_ABSOLUTE)) {
-		const ControlValue &focusValue = lensControls.get(V4L2_CID_FOCUS_ABSOLUTE);
-
-		lens->setFocusPosition(focusValue.get<int32_t>());
-	}
+	if (lens)
+		lens->setSubdevControls(lensControls);
 }
 
 void RkISP1CameraData::metadataReady(unsigned int frame, const ControlList &metadata)
