diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index d07f1a7b5ae8..feabffe641e1 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -156,8 +156,6 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate()
 	unsigned int rawCount = 0;
 	unsigned int outCount = 0;
 	Size yuvSize;
-	Size size;
-
 	for (const StreamConfiguration &cfg : config_) {
 		const PixelFormatInfo &info =
 			PixelFormatInfo::info(cfg.pixelFormat);
@@ -174,11 +172,6 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate()
 			if (cfg.size > yuvSize)
 				yuvSize = cfg.size;
 		}
-
-		if (cfg.size.width > size.width)
-			size.width = cfg.size.width;
-		if (cfg.size.height > size.height)
-			size.height = cfg.size.height;
 	}
 	if (rawCount > 1 || outCount > 2) {
 		LOG(IPU3, Error)
@@ -189,10 +182,13 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate()
 	}
 
 	/* Generate raw configuration from CIO2. */
-	cio2Configuration_ = data_->cio2_.generateConfiguration(size);
+	Size sensorSize = data_->cio2_.sensor()->resolution();
+	cio2Configuration_ = data_->cio2_.generateConfiguration(sensorSize);
 	if (!cio2Configuration_.pixelFormat.isValid())
 		return Invalid;
 
+	LOG(IPU3, Debug) << "CIO2 configuration: " << cio2Configuration_.toString();
+
 	/*
 	 * Adjust the configurations if needed and assign streams while
 	 * iterating them.
