From patchwork Wed May 19 10:19:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Umang Jain X-Patchwork-Id: 12326 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 619ECC31FB for ; Wed, 19 May 2021 10:20:22 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 20E2E68915; Wed, 19 May 2021 12:20:22 +0200 (CEST) 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="V4syvGlr"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C24F66891F for ; Wed, 19 May 2021 12:20:19 +0200 (CEST) Received: from perceval.ideasonboard.com (unknown [103.251.226.105]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 9E95C45E; Wed, 19 May 2021 12:20:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1621419619; bh=seWOaBpLQL1i3WCH38j5JUe585SNLe6tHvMpUy7VZQo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V4syvGlrIHTeg0dKaeqpuR3WfxhIeIP2jhHxB3wVGz9Q8fAsv0EWJYfXai6hIebxF mp6C4aRaat9Y5MnAAnQgcbu2TJwr+iFKFzxOwMIklN/ajRX+DaVwmHoPoMSm9u6krO Rizl0mOnPORt3vb41Lqp30uF5DOUfOFjPcJvK/TI= From: Umang Jain To: libcamera-devel@lists.libcamera.org Date: Wed, 19 May 2021 15:49:54 +0530 Message-Id: <20210519101954.77711-8-umang.jain@ideasonboard.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210519101954.77711-1-umang.jain@ideasonboard.com> References: <20210519101954.77711-1-umang.jain@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 7/7] libcamera: pipeline: ipu3: Pass request metadata to IPA 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" From: Kieran Bingham Pass the request metadata control list to the IPA when setting passing the statistics buffers, or after the raw buffer completion. This allows us to pass in the timestamp and other data from the request which will be used by the IPA. Signed-off-by: Kieran Bingham --- src/libcamera/pipeline/ipu3/ipu3.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 5b15ca90..38f66919 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -1285,6 +1285,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer) ev.op = ipa::ipu3::EventFillParams; ev.frame = info->id; ev.bufferId = info->paramBuffer->cookie(); + ev.controls = request->metadata(); ipa_->processEvent(ev); } @@ -1314,6 +1315,8 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer) if (!info) return; + Request *request = info->request; + if (buffer->metadata().status == FrameMetadata::FrameCancelled) { info->metadataProcessed = true; @@ -1321,7 +1324,6 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer) * tryComplete() will delete info if it completes the IPU3Frame. * In that event, we must have obtained the Request before hand. */ - Request *request = info->request; if (frameInfos_.tryComplete(info)) pipe_->completeRequest(request); @@ -1333,6 +1335,7 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer) ev.op = ipa::ipu3::EventStatReady; ev.frame = info->id; ev.bufferId = info->statBuffer->cookie(); + ev.controls = request->metadata(); ipa_->processEvent(ev); }