From patchwork Tue Feb 20 16:43:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Scally X-Patchwork-Id: 19517 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 0C151C3257 for ; Tue, 20 Feb 2024 16:43:39 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B78A96281C; Tue, 20 Feb 2024 17:43:38 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kCy57dN5"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4BD3C62816 for ; Tue, 20 Feb 2024 17:43:26 +0100 (CET) Received: from mail.ideasonboard.com (cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id CDF8513AC; Tue, 20 Feb 2024 17:43:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1708447399; bh=oVp2NAeK8iFDudcHJP+wK5DZNhWAkH7FY3TPU52qTsM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kCy57dN5UqPrcDVdO60eBHgFUfMWcSDForB8g4Z86YWN6qNucjhg1ESJor8B1/f8s cj182+g9dqtkRggrl3pNOExg7soIDPf+PKlMq/ZgSl/yjKtt2JvwpW+Hxd2Vogf/as CIQYGcHgv4rmRw+CbxQt0i6A+3uwH7lebwnYcsuM= From: Daniel Scally To: libcamera-devel@lists.libcamera.org Subject: [PATCH v2 6/7] libcamera: rkisp1: Remove tryCompleteRequest function Date: Tue, 20 Feb 2024 16:43:16 +0000 Message-Id: <20240220164317.998477-7-dan.scally@ideasonboard.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240220164317.998477-1-dan.scally@ideasonboard.com> References: <20240220164317.998477-1-dan.scally@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Now that tryCompleteRequest() does nothing beyond checking for the Request's pending buffers, we can just remove the function and rely on the return value of completeBuffer() to know if it's time to call completeRequest() or not. Signed-off-by: Daniel Scally --- Changes in v2: - New patch src/libcamera/pipeline/rkisp1/rkisp1.cpp | 27 +++++++++--------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index ec4665a9..8331da11 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -143,7 +143,6 @@ private: int initLinks(Camera *camera, const CameraSensor *sensor, const RkISP1CameraConfiguration &config); int createCamera(MediaEntity *sensor); - void tryCompleteRequest(Request *request); void bufferReady(FrameBuffer *buffer); void paramReady(FrameBuffer *buffer); void statReady(FrameBuffer *buffer); @@ -276,8 +275,8 @@ void RkISP1CameraData::metadataReady(unsigned int frame, const ControlList &meta request->metadata().merge(metadata); pipe()->availableStatBuffers_.push(statBuffer); - pipe()->completeBuffer(request, statBuffer); - pipe()->tryCompleteRequest(request); + if (pipe()->completeBuffer(request, statBuffer)) + pipe()->completeRequest(request); } /* ----------------------------------------------------------------------------- @@ -1104,14 +1103,6 @@ bool PipelineHandlerRkISP1::match(DeviceEnumerator *enumerator) * Buffer Handling */ -void PipelineHandlerRkISP1::tryCompleteRequest(Request *request) -{ - if (request->hasPendingBuffers()) - return; - - completeRequest(request); -} - void PipelineHandlerRkISP1::bufferReady(FrameBuffer *buffer) { ASSERT(activeCamera_); @@ -1137,8 +1128,8 @@ void PipelineHandlerRkISP1::bufferReady(FrameBuffer *buffer) } } - completeBuffer(request, buffer); - tryCompleteRequest(request); + if (completeBuffer(request, buffer)) + completeRequest(request); } void PipelineHandlerRkISP1::paramReady(FrameBuffer *buffer) @@ -1146,8 +1137,9 @@ void PipelineHandlerRkISP1::paramReady(FrameBuffer *buffer) ASSERT(activeCamera_); Request *request = buffer->request(); - completeBuffer(buffer->request(), buffer); - tryCompleteRequest(request); + if (completeBuffer(buffer->request(), buffer)) + completeRequest(request); + availableParamBuffers_.push(buffer); } @@ -1158,8 +1150,9 @@ void PipelineHandlerRkISP1::statReady(FrameBuffer *buffer) Request *request = buffer->request(); if (buffer->metadata().status == FrameMetadata::FrameCancelled) { - completeBuffer(request, buffer); - tryCompleteRequest(request); + if (completeBuffer(request, buffer)) + completeRequest(request); + availableStatBuffers_.push(buffer); return; }