diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
index ba786e647ca1..d35289ee6229 100644
--- a/include/libcamera/ipa/raspberrypi.mojom
+++ b/include/libcamera/ipa/raspberrypi.mojom
@@ -21,6 +21,7 @@ struct SensorConfig {
 
 struct InitParams {
 	bool lensPresent;
+	bool monoSensor;
 };
 
 struct InitResult {
diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
index db7a0eb3a1ca..150fe433d0df 100644
--- a/src/ipa/rpi/common/ipa_base.cpp
+++ b/src/ipa/rpi/common/ipa_base.cpp
@@ -139,6 +139,7 @@ int32_t IpaBase::init(const IPASettings &settings, const InitParams &params, Ini
 	}
 
 	lensPresent_ = params.lensPresent;
+	monoSensor_ = params.monoSensor;
 
 	controller_.initialise();
 
diff --git a/src/ipa/rpi/common/ipa_base.h b/src/ipa/rpi/common/ipa_base.h
index 6f9c46bb16b1..39d00760d012 100644
--- a/src/ipa/rpi/common/ipa_base.h
+++ b/src/ipa/rpi/common/ipa_base.h
@@ -87,6 +87,7 @@ private:
 	std::map<unsigned int, MappedFrameBuffer> buffers_;
 
 	bool lensPresent_;
+	bool monoSensor_;
 	ControlList libcameraMetadata_;
 
 	std::array<RPiController::Metadata, numMetadataContexts> rpiMetadata_;
diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
index 3bb5ec531e4f..12698056cda1 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
@@ -1131,6 +1131,7 @@ int CameraData::loadPipelineConfiguration()
 int CameraData::loadIPA(ipa::RPi::InitResult *result)
 {
 	ipa_ = IPAManager::createIPA<ipa::RPi::IPAProxyRPi>(pipe(), 1, 1);
+	bool monoSensor = isMonoSensor(sensor_);
 
 	if (!ipa_)
 		return -ENOENT;
@@ -1143,7 +1144,7 @@ int CameraData::loadIPA(ipa::RPi::InitResult *result)
 	char const *configFromEnv = utils::secure_getenv("LIBCAMERA_RPI_TUNING_FILE");
 	if (!configFromEnv || *configFromEnv == '\0') {
 		std::string model = sensor_->model();
-		if (isMonoSensor(sensor_))
+		if (monoSensor)
 			model += "_mono";
 		configurationFile = ipa_->configurationFile(model + ".json");
 	} else {
@@ -1154,6 +1155,7 @@ int CameraData::loadIPA(ipa::RPi::InitResult *result)
 	ipa::RPi::InitParams params;
 
 	params.lensPresent = !!sensor_->focusLens();
+	params.monoSensor = monoSensor;
 	int ret = platformInitIpa(params);
 	if (ret)
 		return ret;
