[{"id":35084,"web_url":"https://patchwork.libcamera.org/comment/35084/","msgid":"<175334679795.560048.12213707334514493375@ping.linuxembedded.co.uk>","date":"2025-07-24T08:46:37","subject":"Re: [PATCH 08/10] libcamera: mali-c55: Move entity parameter from\n\tconstructor to ::init()","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Daniel Scally (2025-07-24 07:52:54)\n> The MaliC55CameraData class takes a MediaEntity in its constructor.\n> When we support the memory input mode we won't have that when we\n> want to construct the class, so move the parameter to the init()\n> function instead.\n> \n> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> ---\n>  src/libcamera/pipeline/mali-c55/mali-c55.cpp | 18 ++++++++++--------\n>  1 file changed, 10 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> index 25540ba1..5944823d 100644\n> --- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> +++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> @@ -92,12 +92,12 @@ struct MaliC55FrameInfo {\n>  class MaliC55CameraData : public Camera::Private\n>  {\n>  public:\n> -       MaliC55CameraData(PipelineHandler *pipe, MediaEntity *entity)\n> -               : Camera::Private(pipe), entity_(entity)\n> +       MaliC55CameraData(PipelineHandler *pipe)\n> +               : Camera::Private(pipe)\n>         {\n>         }\n>  \n> -       int init();\n> +       int init(MediaEntity *entity);\n\nWhat is the entity? Can we name it better? Is it an entity for the\nMali-C55? or the Sensor? Or something else? (Yes, it was already called\nentity so this as a code move is fine - perhaps separate out the rename)\n\n>         int loadIPA();\n>  \n>         /* Deflect these functionalities to either TPG or CameraSensor. */\n> @@ -134,10 +134,12 @@ private:\n>         Size tpgResolution_;\n>  };\n>  \n> -int MaliC55CameraData::init()\n> +int MaliC55CameraData::init(MediaEntity *entity)\n>  {\n>         int ret;\n>  \n> +       entity_ = entity;\n> +\n>         sd_ = std::make_unique<V4L2Subdevice>(entity_);\n>         ret = sd_->open();\n>         if (ret) {\n> @@ -1567,9 +1569,9 @@ bool PipelineHandlerMaliC55::registerTPGCamera(MediaLink *link)\n>         }\n>  \n>         std::unique_ptr<MaliC55CameraData> data =\n> -               std::make_unique<MaliC55CameraData>(this, link->source()->entity());\n> +               std::make_unique<MaliC55CameraData>(this);\n>  \n> -       if (data->init())\n> +       if (data->init(link->source()->entity()))\n\nPerhaps the entity should be called it's 'source' ? \n\n>                 return false;\n>  \n>         return registerMaliCamera(std::move(data), name);\n> @@ -1594,8 +1596,8 @@ bool PipelineHandlerMaliC55::registerSensorCamera(MediaLink *ispLink)\n>                         continue;\n>  \n>                 std::unique_ptr<MaliC55CameraData> data =\n> -                       std::make_unique<MaliC55CameraData>(this, sensor);\n> -               if (data->init())\n> +                       std::make_unique<MaliC55CameraData>(this);\n> +               if (data->init(sensor))\n>                         return false;\n>  \n>                 data->properties_ = data->sensor_->properties();\n> -- \n> 2.30.2\n>","headers":{"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\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 06B92BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 24 Jul 2025 08:46:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 025CD690C0;\n\tThu, 24 Jul 2025 10:46:41 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6028D690B4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jul 2025 10:46:41 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 295F517D1;\n\tThu, 24 Jul 2025 10:46:02 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"FK1vFg+3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1753346762;\n\tbh=em1ei/t6ByalM5MoV2DNEl3L3YggiFN0HTHBRQXZtjw=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=FK1vFg+34ItUG7V80m58L2DHB+E4xkChHNgUkwwdTY5EpPBcQ8OhabKJ/FxyfqJao\n\tI7G+kME+JBFE1f39t9PP6FZjMEKCA6biUL/F1dJ5/FUxO2Dh3sg72Cwn/vajYfz78n\n\tnTTMxrWRFa6s7JlBUc0C9oqjWV9m+rzdSTDj2XRI=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250724065256.75175-9-dan.scally@ideasonboard.com>","References":"<20250724065256.75175-1-dan.scally@ideasonboard.com>\n\t<20250724065256.75175-9-dan.scally@ideasonboard.com>","Subject":"Re: [PATCH 08/10] libcamera: mali-c55: Move entity parameter from\n\tconstructor to ::init()","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Daniel Scally <dan.scally@ideasonboard.com>","To":"Daniel Scally <dan.scally@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 24 Jul 2025 09:46:37 +0100","Message-ID":"<175334679795.560048.12213707334514493375@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>,\n\t<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>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]