From patchwork Thu Jul 24 06:52:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Scally X-Patchwork-Id: 23925 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 D9C66C332B for ; Thu, 24 Jul 2025 06:53:31 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4511569097; Thu, 24 Jul 2025 08:53:28 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="acxyN25+"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 567F16907F for ; Thu, 24 Jul 2025 08:53:16 +0200 (CEST) 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 7882817D1; Thu, 24 Jul 2025 08:52:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753339957; bh=XaSrcH/b1VvHuoduvqs+Vs1M5PeiCb0C1Nftnfe0PQ8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=acxyN25+OmjdQwNmR45RE6uYMBR+pJFbqvOBMY5oYEHfJS1N7AuhAgAsJaZSRrTOP wY3IDNvyXY47P/eZL6ZRc6jRSJSDQiIZeBMDuzb+TsJNymE49JniN6I8yVGtqLCFP9 rxRpGgiCbcVlSQQzatt5PcH6zqMVop94jAnGoLjM= From: Daniel Scally To: libcamera-devel@lists.libcamera.org Cc: Daniel Scally Subject: [PATCH 08/10] libcamera: mali-c55: Move entity parameter from constructor to ::init() Date: Thu, 24 Jul 2025 07:52:54 +0100 Message-Id: <20250724065256.75175-9-dan.scally@ideasonboard.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724065256.75175-1-dan.scally@ideasonboard.com> References: <20250724065256.75175-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" The MaliC55CameraData class takes a MediaEntity in its constructor. When we support the memory input mode we won't have that when we want to construct the class, so move the parameter to the init() function instead. Signed-off-by: Daniel Scally --- src/libcamera/pipeline/mali-c55/mali-c55.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp index 25540ba1..5944823d 100644 --- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp +++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp @@ -92,12 +92,12 @@ struct MaliC55FrameInfo { class MaliC55CameraData : public Camera::Private { public: - MaliC55CameraData(PipelineHandler *pipe, MediaEntity *entity) - : Camera::Private(pipe), entity_(entity) + MaliC55CameraData(PipelineHandler *pipe) + : Camera::Private(pipe) { } - int init(); + int init(MediaEntity *entity); int loadIPA(); /* Deflect these functionalities to either TPG or CameraSensor. */ @@ -134,10 +134,12 @@ private: Size tpgResolution_; }; -int MaliC55CameraData::init() +int MaliC55CameraData::init(MediaEntity *entity) { int ret; + entity_ = entity; + sd_ = std::make_unique(entity_); ret = sd_->open(); if (ret) { @@ -1567,9 +1569,9 @@ bool PipelineHandlerMaliC55::registerTPGCamera(MediaLink *link) } std::unique_ptr data = - std::make_unique(this, link->source()->entity()); + std::make_unique(this); - if (data->init()) + if (data->init(link->source()->entity())) return false; return registerMaliCamera(std::move(data), name); @@ -1594,8 +1596,8 @@ bool PipelineHandlerMaliC55::registerSensorCamera(MediaLink *ispLink) continue; std::unique_ptr data = - std::make_unique(this, sensor); - if (data->init()) + std::make_unique(this); + if (data->init(sensor)) return false; data->properties_ = data->sensor_->properties();