diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 0c9d3167d2e6..57d0d6ed4758 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -1384,6 +1384,9 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)
 		availableParamBuffers_.push(request->paramBuffer);
 		availableStatBuffers_.push(request->statBuffer);
 
+		/* Return RAW buffer to the CIO2. */
+		cio2_.tryReturnBuffer(buffer);
+
 		pipe()->completeRequest(request->_o<Request>());
 		return;
 	}
