{"id":17846,"url":"https://patchwork.libcamera.org/api/covers/17846/?format=json","web_url":"https://patchwork.libcamera.org/cover/17846/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/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":"<20221123134346.129807-1-jacopo@jmondi.org>","date":"2022-11-23T13:43:42","name":"[libcamera-devel,v2,0/4] ipa: Validate controls in CameraSensor","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/?format=json","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"mbox":"https://patchwork.libcamera.org/cover/17846/mbox/","series":[{"id":3633,"url":"https://patchwork.libcamera.org/api/series/3633/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3633","date":"2022-11-23T13:43:42","name":"ipa: Validate controls in CameraSensor","version":2,"mbox":"https://patchwork.libcamera.org/series/3633/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/17846/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 57FC6BE08B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 23 Nov 2022 13:43:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 02E4B6331A;\n\tWed, 23 Nov 2022 14:43:55 +0100 (CET)","from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net\n\t[IPv6:2001:4b98:dc4:8::224])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B0B7463311\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Nov 2022 14:43:53 +0100 (CET)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id AC91EE0009;\n\tWed, 23 Nov 2022 13:43:51 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1669211035;\n\tbh=iRrim9+teyWTJh/z/rf10JrcAOEpuorjlleJ4CQ5Apw=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:Cc:From;\n\tb=t9qIUiE5UG7gZT+QEJEOWueOTEtL4UY7x/kGb9MMUP8ps81c4ZqOxWzFXOp9N64+D\n\t9aErC/wuphxI5EZa3ex+HBLlKatL0iZp2qGou2HUMydRdOusIEvhmyUYQSpNzmCLC+\n\tK2cnTuoNCBYO96GWnJiwGj+DflGb3LrCbjauNyAzpkQWhtXXIYCFebzCPkEDYC/fy1\n\tPC8TEy0Wymqo2gpUJE1yDvnBN2oAbSHFB1afcQ+OD98HnZZ1wiDtxGPvsPznBQBTKv\n\tKPYTdr50OV/0uVIb8zmQPvwqiKJw/zMxBGpVM0F3OGhwifCC0XNrYsUTEVdOdT9+wJ\n\trQo+tBYMFslyQ==","To":"libcamera-devel@lists.libcamera.org","Date":"Wed, 23 Nov 2022 14:43:42 +0100","Message-Id":"<20221123134346.129807-1-jacopo@jmondi.org>","X-Mailer":"git-send-email 2.38.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 0/4] ipa: Validate controls in\n\tCameraSensor","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>","From":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"Nicholas Roth <nicholas@rothemail.net>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"The CameraSensor class validates that the sensor driver in use supports\nthe controls required for IPA modules to work correctly.\nFor in-tree IPA modules, whose pipeline handlers already use\nCameraSensor there's no need to validate such controls again.\n\nMove controls validation to the CameraSensor class and align the two IPA\nimplementations\n\nOn top of the first patch two drive-by cleanups for the RkISP1 and on\ntop I've collected Nicholas' patch that register FrameDurationLimits for the\nRkISP1 platform.\n\nTested on imx8mp with the RkISP1 IPA\n\nv1->v2:\n- rebase and collect tags\n- Move error message from RkISP1::configure() to RkISP1::init() in 4/4\n\nJacopo Mondi (3):\n  libcamera: Move IPA sensor controls validation to CameraSensor\n  ipa: rkisp1: Use IPAConfig in IPA::configure()\n  ipa: rkisp1: Fail hard on empty CameraSensorInfo\n\nNicholas Roth (1):\n  ipa: rkisp1: add FrameDurationLimits control\n\n Documentation/sensor_driver_requirements.rst |  7 ++\n include/libcamera/ipa/rkisp1.mojom           | 16 ++--\n src/ipa/ipu3/ipu3.cpp                        | 29 -------\n src/ipa/rkisp1/rkisp1.cpp                    | 91 +++++++++++++-------\n src/libcamera/camera_sensor.cpp              |  1 +\n src/libcamera/pipeline/rkisp1/rkisp1.cpp     | 28 +++---\n 6 files changed, 94 insertions(+), 78 deletions(-)\n\n--\n2.38.1"}