| Message ID | 20210325134231.1400051-3-kieran.bingham@ideasonboard.com |
|---|---|
| Headers | show
Return-Path: <libcamera-devel-bounces@lists.libcamera.org> 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 EB7E0C32E9 for <parsemail@patchwork.libcamera.org>; Thu, 25 Mar 2021 13:42:42 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 1F90568D84; Thu, 25 Mar 2021 14:42:41 +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="mLZZ5UD0"; 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 CACCD6084F for <libcamera-devel@lists.libcamera.org>; Thu, 25 Mar 2021 14:42:36 +0100 (CET) Received: from Q.local (cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D96128F0; Thu, 25 Mar 2021 14:42:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1616679756; bh=D5YZwtGXBunjyQzPUm+FMkCYzZefho2Kq0DASagpSfI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mLZZ5UD0fbLTBIFw71JSYS77FpeCVxCiinxEt/efvgrmoNp5L/a4bBT69nSQaFyjq oXYzuTyiy/BxoQV1fKWiLSCwb+Trsw+SEwNsGKIg4H4PAqZ33/cZLVFCdkh5UIy+Rw Ay7HzQMzrFVt1W3GDkgHc9ZPyxMQW+5PxTqcHWJ8= From: Kieran Bingham <kieran.bingham@ideasonboard.com> To: libcamera devel <libcamera-devel@lists.libcamera.org> Date: Thu, 25 Mar 2021 13:42:20 +0000 Message-Id: <20210325134231.1400051-3-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210325134231.1400051-1-kieran.bingham@ideasonboard.com> References: <20210325134231.1400051-1-kieran.bingham@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 00/11] IPU3 Debug Improvements X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <libcamera-devel.lists.libcamera.org> List-Unsubscribe: <https://lists.libcamera.org/options/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe> List-Archive: <https://lists.libcamera.org/pipermail/libcamera-devel/> List-Post: <mailto:libcamera-devel@lists.libcamera.org> List-Help: <mailto:libcamera-devel-request@lists.libcamera.org?subject=help> List-Subscribe: <https://lists.libcamera.org/listinfo/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" <libcamera-devel-bounces@lists.libcamera.org> |
| Series |
|
| Related |
show
|
Ok, so this is only partially a v3. Some of these patches were part of the other series at v2, so this one got bumped. Anyway, here's the remainder of my current patches that were developed while investigating the reliability of the IPU3. Many of which I believe are worthy for integration and discussion. They're somewhat of an unrelated bunch, but rather than post individually, they may as well be grouped together in the form of 'general fixups and improvements', and hopefully these help towards improving general maintenance, but they're not specifically IPU3. ... The IPC Proxy is extended to have a state machine to go further than simply tracking a running_ boolean. The Request object is no longer friends with a buffer, and is extended to support sequence numbers, and printing as a string. The request canary is promoted away from RFC as I feel it has real benefit, but it can still be considered optional. The Camera class now validates requests are completed in the correct state, and adds an assertion to guarantee that all pipeline handlers complete all requests when they are stopped. The state machine validation is also extended to report which function was responsible for the call in the event of a failed state check, as this is key information for determining what failure occured. Finally, some improvements to the IPU3 Frames class tidy things up and add guarantees to ensure we correctly match resources with a FrameInfo when required. Kieran Bingham (11): utils: ipc: proxy: Track IPA with a state machine libcamera: buffer: Break friendship with Request libcamera: request: Provide a sequence number libcamera: request: Add a toString() libcamera: request: A request canary libcamera: camera: Validate requests are completed in Running state libcamera: camera: Report function which fails access control libcamera: camera: Extend with a Stopping state libcamera: camera: Assert pipelines complete all requests libcamera: pipeline: ipu3: frames: Fail if the FrameInfo can't be found libcamera: pipeline: ipu3: frames: Use the request sequence include/libcamera/buffer.h | 1 - include/libcamera/internal/pipeline_handler.h | 5 +- include/libcamera/request.h | 7 ++ src/libcamera/camera.cpp | 77 +++++++++++++------ src/libcamera/pipeline/ipu3/frames.cpp | 10 +-- src/libcamera/pipeline/ipu3/frames.h | 1 - src/libcamera/pipeline_handler.cpp | 19 +++++ src/libcamera/request.cpp | 68 +++++++++++++--- .../module_ipa_proxy.cpp.tmpl | 8 +- .../module_ipa_proxy.h.tmpl | 8 +- .../libcamera_templates/proxy_functions.tmpl | 7 +- 11 files changed, 165 insertions(+), 46 deletions(-)