From 091591b52e5535065eef141339c3d69406185136 Mon Sep 17 00:00:00 2001
From: Naushir Patuck <naush@raspberrypi.com>
Date: Tue, 24 Oct 2023 14:27:46 +0100
Subject: pipeline: rpi: Add some useful logging messages

Add a bunch of logging messages that have come in handy debugging
various issues with the pipeline handler code.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 11 ++++++++++-
 src/libcamera/pipeline/rpi/vc4/vc4.cpp              |  3 +++
 2 files changed, 13 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
index 9f788c9d..8e1cbbe6 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
@@ -731,7 +731,8 @@ int PipelineHandlerBase::queueRequestDevice(Camera *camera, Request *request)
 	if (!data->isRunning())
 		return -EINVAL;
 
-	LOG(RPI, Debug) << "queueRequestDevice: New request.";
+	LOG(RPI, Debug) << "queueRequestDevice: New request sequence: "
+			<< request->sequence();
 
 	/* Push all buffers supplied in the Request to the respective streams. */
 	for (auto stream : data->streams_) {
@@ -1436,6 +1437,8 @@ void CameraData::handleStreamBuffer(FrameBuffer *buffer, RPi::Stream *stream)
 		 * Tag the buffer as completed, returning it to the
 		 * application.
 		 */
+		LOG(RPI, Debug) << "Completing request buffer for stream "
+				<< stream->name();
 		pipe()->completeBuffer(request, buffer);
 	} else {
 		/*
@@ -1444,6 +1447,8 @@ void CameraData::handleStreamBuffer(FrameBuffer *buffer, RPi::Stream *stream)
 		 * unconditionally for internal streams), or there is no pending
 		 * request, so we can recycle it.
 		 */
+		LOG(RPI, Debug) << "Returning buffer to stream "
+				<< stream->name();
 		stream->returnBuffer(buffer);
 	}
 }
@@ -1487,6 +1492,9 @@ void CameraData::checkRequestCompleted()
 		if (state_ != State::IpaComplete)
 			return;
 
+		LOG(RPI, Debug) << "Completing request sequence: "
+				<< request->sequence();
+
 		pipe()->completeRequest(request);
 		requestQueue_.pop();
 		requestCompleted = true;
@@ -1499,6 +1507,7 @@ void CameraData::checkRequestCompleted()
 	if (state_ == State::IpaComplete &&
 	    ((ispOutputCount_ == ispOutputTotal_ && dropFrameCount_) ||
 	     requestCompleted)) {
+		LOG(RPI, Debug) << "Going into Idle state";
 		state_ = State::Idle;
 		if (dropFrameCount_) {
 			dropFrameCount_--;
diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
index a5cc4fc1..26102ea7 100644
--- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
+++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
@@ -283,6 +283,9 @@ int PipelineHandlerVc4::prepareBuffers(Camera *camera)
 			numBuffers = 1;
 		}
 
+		LOG(RPI, Debug) << "Preparing " << numBuffers
+				<< " buffers for stream " << stream->name();
+
 		ret = stream->prepareBuffers(numBuffers);
 		if (ret < 0)
 			return ret;
-- 
cgit v1.2.1