From patchwork Tue Mar 2 15:05:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 11460 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 2AE29BD1F1 for ; Tue, 2 Mar 2021 15:05:37 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 2E80D68AA0; Tue, 2 Mar 2021 16:05:36 +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="oalU2FjU"; 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 D1A2968A7E for ; Tue, 2 Mar 2021 16:05:34 +0100 (CET) Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 54F5E8F3; Tue, 2 Mar 2021 16:05:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1614697534; bh=ICptAwr6tAOn5Wr0ibFRvE2GUXI0QwhFOf30wY4eyaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oalU2FjUOp0ZofS9mj6co1xKS5UWcjM85VnNwKxBeYz0xXkqh40rqJ+IvV5sFnpb9 tR1V/SumkQxQ7uqKEfrzODBs9BY7hSiicQOSf6O5h9q6JbqspVegR4wLWRlR6CrQT+ 1xu1hEmYLsG9EQZ504xUfg/QvQih0Gtfg6fOB0o0= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Tue, 2 Mar 2021 17:05:01 +0200 Message-Id: <20210302150501.15191-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210302150501.15191-1-laurent.pinchart@ideasonboard.com> References: <20210302150501.15191-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 2/2] utils: ipc: Support extending IPA init() parameters 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" It can be useful for pipeline handlers to pass additional parameters to the IPA init() method. Allow doing so. Signed-off-by: Laurent Pinchart --- .../libcamera_templates/module_ipa_proxy.cpp.tmpl | 2 +- .../generators/libcamera_templates/proxy_functions.tmpl | 8 ++++++-- utils/ipc/generators/mojom_libcamera_generator.py | 3 --- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl index d451fab35e83..f2f9128b056c 100644 --- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl +++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl @@ -142,7 +142,7 @@ void {{proxy_name}}::recvMessage(const IPCMessage &data) {{proxy_funcs.func_sig(proxy_name, method, "Thread")}} { {%- if method.mojom_name == "init" %} - {{proxy_funcs.init_thread_body()}} + {{proxy_funcs.init_thread_body(method)}} {%- elif method.mojom_name == "stop" %} {{proxy_funcs.stop_thread_body()}} {%- elif method.mojom_name == "start" %} diff --git a/utils/ipc/generators/libcamera_templates/proxy_functions.tmpl b/utils/ipc/generators/libcamera_templates/proxy_functions.tmpl index 40611feb179b..222a2a63764d 100644 --- a/utils/ipc/generators/libcamera_templates/proxy_functions.tmpl +++ b/utils/ipc/generators/libcamera_templates/proxy_functions.tmpl @@ -22,8 +22,12 @@ {# # \brief Generate function body for IPA init() function for thread #} -{%- macro init_thread_body() -%} - int ret = ipa_->init(settings); +{%- macro init_thread_body(method) -%} + int ret = ipa_->init( + {%- for param in method|method_param_names -%} + {{param}}{{- ", " if not loop.last}} + {%- endfor -%} +); if (ret) return ret; diff --git a/utils/ipc/generators/mojom_libcamera_generator.py b/utils/ipc/generators/mojom_libcamera_generator.py index 438e41c649ad..2bfc4af23231 100644 --- a/utils/ipc/generators/mojom_libcamera_generator.py +++ b/utils/ipc/generators/mojom_libcamera_generator.py @@ -346,10 +346,7 @@ def ValidateInterfaces(interfaces): f_stop = f_stop[0] # Validate parameters to init() - ValidateSingleLength(f_init.parameters, 'input parameter to init()') ValidateSingleLength(f_init.response_parameters, 'output parameter from init()') - if f_init.parameters[0].kind.mojom_name != 'IPASettings': - raise Exception('init() must have single IPASettings input parameter') if f_init.response_parameters[0].kind.spec != 'i32': raise Exception('init() must have single int32 output parameter')