{"id":11657,"url":"https://patchwork.libcamera.org/api/1.1/covers/11657/?format=json","web_url":"https://patchwork.libcamera.org/cover/11657/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20210323122739.680560-1-naush@raspberrypi.com>","date":"2021-03-23T12:27:32","name":"[libcamera-devel,v2,0/7] Raspberry Pi: ipa::init() restructuring","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/1.1/people/34/?format=json","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"mbox":"https://patchwork.libcamera.org/cover/11657/mbox/","series":[{"id":1821,"url":"https://patchwork.libcamera.org/api/1.1/series/1821/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1821","date":"2021-03-23T12:27:32","name":"Raspberry Pi: ipa::init() restructuring","version":2,"mbox":"https://patchwork.libcamera.org/series/1821/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/11657/comments/","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 572DAC32E5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 23 Mar 2021 12:27:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A4FC168D69;\n\tTue, 23 Mar 2021 13:27:46 +0100 (CET)","from mail-ej1-x630.google.com (mail-ej1-x630.google.com\n\t[IPv6:2a00:1450:4864:20::630])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A3450602D7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 23 Mar 2021 13:27:44 +0100 (CET)","by mail-ej1-x630.google.com with SMTP id r12so26781319ejr.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 23 Mar 2021 05:27:44 -0700 (PDT)","from naush-laptop.patuck.local ([88.97.76.4])\n\tby smtp.gmail.com with ESMTPSA id\n\tu13sm11082295ejy.31.2021.03.23.05.27.43\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 23 Mar 2021 05:27:43 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"PlXxlejr\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=BgpKwQy11y6CbftuqD1UOEhWakCKj0/dCDczGF4YMJo=;\n\tb=PlXxlejrCnIzA57nF2UNNCRm0WxT75IqKBUiNHKZhe1hTsxW0toP4tRN5+kpR76r0a\n\tdovOwxBt0q8htIR3ZI7EBZI3LLJgO4FdueWum2iPklP7+cTNg3K0ZW3Q8/1aSOGEP2G6\n\twP6Jih5VaGjrmDf2spluEZ8kA4RJmqj4wjjZYS2KuRr1oGdDXX7/xc3wxa1wdbP3QojI\n\t7Umrr/7wcORa+vo2oUbx6gt1WCi3uBA/hhtd/sSjHrpv6sI/QeBYI00JKpBkZsa0VQSS\n\tlDM25DTE8NSv/YLtHrtde2m/p7UdFGlbgCI8OgWDuBQ1EfJd0VWJqW83VzvHZ4O7H7m4\n\thoug==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=BgpKwQy11y6CbftuqD1UOEhWakCKj0/dCDczGF4YMJo=;\n\tb=auS1yMhepQa0cEh/q29GJ2/KOy2wkx7yUwyfcWqXjJQyNlPwHaPiI1Yi5v97WJKkRl\n\tQ3ebCgyXhtj+coZ+lFuIIRcjGsfYFa7DwqNYTZNxj6yeRXU6N8pRwFVzWcz861k5bOJX\n\tI4MrzvSWwAAm6PYPFDzr1Wv1iiXxYZB5CiDuPzF7fzeXMMdPlh/bAFGHCaDJnHq/28GD\n\ttvx/7883nhfPZbFNwbDaYTagXfZ4B8SXPWRjeqJc8+QocINQSuE2DEgLVCMT6QgDvgxL\n\tjt2w8F+Zq5ngI2ImYm56RH1sb0iiGwSpbrZGVR2tP+0e207h6uc02cG9FMrwrsxMifIb\n\t7xjg==","X-Gm-Message-State":"AOAM532ujWVAA5VHDHndoGsFVhhTULrNzGoQEBJW1WbyVjtY7efC0yIZ\n\tTMKubJzYbrmbcgufEizrWmTov3UVrzPfkA==","X-Google-Smtp-Source":"ABdhPJwIRpGi1ExJFYvm7J2I47h9+rwtDbx7ua+WeRx16QZvXIsCZjqPgJnejfExOLuFU0UWLGedAg==","X-Received":"by 2002:a17:906:cd05:: with SMTP id\n\toz5mr4724408ejb.345.1616502463874; \n\tTue, 23 Mar 2021 05:27:43 -0700 (PDT)","From":"Naushir Patuck <naush@raspberrypi.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Tue, 23 Mar 2021 12:27:32 +0000","Message-Id":"<20210323122739.680560-1-naush@raspberrypi.com>","X-Mailer":"git-send-email 2.25.1","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH v2 0/7] Raspberry Pi: ipa::init()\n\trestructuring","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>","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>"},"content":"Hi,\n\nHere is version 2 of this series.  I have applied all the changes suggested by\nLaurent, except for the following in patch 2/7:\n\n> > +     /*\n> > +      * Setup our delayed control writer with the sensor default\n> > +      * gain and exposure delays. Mark VBLANK for priority write.\n> > +      */\n> > +     std::unordered_map<uint32_t, DelayedControls::ControlParams>\n> params = {\n> > +             { V4L2_CID_ANALOGUE_GAIN, { sensorConfig.gainDelay, false\n> } },\n> > +             { V4L2_CID_EXPOSURE, { sensorConfig.exposureDelay, false }\n> },\n> > +             { V4L2_CID_VBLANK, { sensorConfig.vblankDelay, true } }\n> > +     };\n> > +     data->delayedCtrls_ =\n> std::make_unique<DelayedControls>(data->unicam_[Unicam::Image].dev(),\n> params);\n> > +     data->sensorMetadata_ = sensorConfig.sensorMetadata;\n> > +\n>\n> As this code deals with RPiCameraData only, could you move it to\n> RPiCameraData::loadIPA() ? That way you won't have to prefix everything\n> with data->, and you'll avoid passing sensorConfig to loadIPA().\n\nAs explained in the original reply, I put this block here instead of loadIPA()\nas the DelayedControls helper needs the device node already opened in order to\nvalidate the controls that are passed in via params.  If I were to move this\nto loadIPA(),  it would split the opening of unicam_[Unicam::Image] and\nunicam_[Unicam::Embedded] into two separate locations, which I thought\nmight be undesirable.\n\nRegards,\nNaush\n\nNaushir Patuck (7):\n  ipa: Add sensor model string to IPASettings\n  pipeline: ipa: raspberrypi: Open the CamHelper on ipa::init()\n  pipeline: raspberrypi: Conditionally open the embedded data node\n  ipa: raspberrypi: Move the controller initialise to ipa::init()\n  ipa: raspberrypi: Remove unused member variable\n  ipa: raspberrypi: Rationalise parameters to ipa::start()\n  ipa: raspberrypi: Rationalise parameters to ipa::configure()\n\n include/libcamera/ipa/core.mojom              |   8 ++\n include/libcamera/ipa/raspberrypi.mojom       |  27 ++--\n src/ipa/raspberrypi/raspberrypi.cpp           | 110 +++++++---------\n src/libcamera/pipeline/ipu3/ipu3.cpp          |   3 +-\n .../pipeline/raspberrypi/raspberrypi.cpp      | 124 +++++++-----------\n src/libcamera/pipeline/vimc/vimc.cpp          |   2 +-\n test/ipa/ipa_interface_test.cpp               |   2 +-\n 7 files changed, 116 insertions(+), 160 deletions(-)"}