diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom
index d561c2244907..2045ce909a88 100644
--- a/include/libcamera/ipa/ipu3.mojom
+++ b/include/libcamera/ipa/ipu3.mojom
@@ -32,7 +32,7 @@ struct IPU3Action {
 
 struct IPAConfigInfo {
 	libcamera.IPACameraSensorInfo sensorInfo;
-	map<uint32, libcamera.ControlInfoMap> entityControls;
+	libcamera.ControlInfoMap sensorControls;
 	libcamera.Size bdsOutputSize;
 	libcamera.Size iif;
 };
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index 30d2a53903ec..ac98a86b461e 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -337,14 +337,14 @@ void IPAIPU3::calculateBdsGrid(const Size &bdsOutputSize)
 
 int IPAIPU3::configure(const IPAConfigInfo &configInfo)
 {
-	if (configInfo.entityControls.empty()) {
-		LOG(IPAIPU3, Error) << "No controls provided";
+	if (configInfo.sensorControls.empty()) {
+		LOG(IPAIPU3, Error) << "No sensor controls provided";
 		return -ENODATA;
 	}
 
 	sensorInfo_ = configInfo.sensorInfo;
 
-	ctrls_ = configInfo.entityControls.at(0);
+	ctrls_ = configInfo.sensorControls;
 
 	const auto itExp = ctrls_.find(V4L2_CID_EXPOSURE);
 	if (itExp == ctrls_.end()) {
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index c287bf86e79a..92e869257e53 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -654,7 +654,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
 	}
 
 	ipa::ipu3::IPAConfigInfo configInfo;
-	configInfo.entityControls.emplace(0, data->cio2_.sensor()->controls());
+	configInfo.sensorControls = data->cio2_.sensor()->controls();
 	configInfo.sensorInfo = sensorInfo;
 	configInfo.bdsOutputSize = config->imguConfig().bds;
 	configInfo.iif = config->imguConfig().iif;
