From patchwork Mon May 11 18:16:00 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Tia X-Patchwork-Id: 26713 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 5185EBDCBD for ; Mon, 11 May 2026 18:16:10 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8F51D6302A; Mon, 11 May 2026 20:16:08 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=jetm.me header.i=@jetm.me header.b="ZVwdiXdZ"; dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="rz8bIDmo"; dkim-atps=neutral Received: from fout-b1-smtp.messagingengine.com (fout-b1-smtp.messagingengine.com [202.12.124.144]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id F400F62DC4 for ; Mon, 11 May 2026 20:16:05 +0200 (CEST) Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.stl.internal (Postfix) with ESMTP id 73CFB1D00151; Mon, 11 May 2026 14:16:04 -0400 (EDT) Received: from phl-imap-07 ([10.202.2.97]) by phl-compute-02.internal (MEProxy); Mon, 11 May 2026 14:16:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jetm.me; h=cc:cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to; s=fm2; t=1778523364; x=1778609764; bh=qAB9xtyNBG KrbMb1URXKEasN7IDSDz3MsUrNgR74SXM=; b=ZVwdiXdZV0oozb0cZY+cqN89Si bTv1n4Qe+M70ZnPicPJJ5tqBysm6OVgsdxHTt8grQ4EmdxHJYM3FdKxa5KNjZ1z6 kI5nc6JXW51QIzyMAvBFWeEpo4DoXWin67K0oL7rvc0lNOoCez3lfCgFrhy8iwxL AKjgxkvaDtNkpT4ZMyZKB6RjAnH5d6Kr0CINCNiYtltEeylpvzBYgtk+I/QqpMtU +/zcojnlHMMTgpl/RmdLiPDk05mVRrbLk6f6m33bUe6cqvVHY7Hg8qd4IecHwbHk HsGa6JlfQ/Vl0tle89P/waCRwkOG3Yt5Iu/mnXgwPFFIOhucm1zoxn/n+45w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1778523364; x=1778609764; bh=qAB9xtyNBGKrbMb1URXKEasN7IDS Dz3MsUrNgR74SXM=; b=rz8bIDmoz/Zl3Fxlw1u15nRNsHLUymWLiXElqwYmqzxj kmjnpa+pxT3eD1NtBnnJNZCKCI6Lr8Q5F2b0qGs4JEnYv+a+qI6dag/a0JpKoyBn jEEfnPW0T5jmnc6PPw+SLdd2T/w/dwCpxhejymOvXs8L/eBruwfs6JD4UI7rMKOl 3XtcmLe4ACusiH0NefkfLiEi25wHMuGKGovSeZjCuCT8fPXMpJcKIPqitUEaAhrq OP2e1Euu+R75P3zUThQ7p3b8pJlph2AizDV/qjaKCCwRIKwxLcWpL8uDuUf66Grd IvJZbK/XAopwBhbRmMc45GLZ0GRsf+Ihu3eecq2g6g== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduudeliedvucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepoffhufffkfggtgfgvfevofesthejredtredtjeenucfhrhhomheplfgrvhhivghr ucfvihgruceofhhlohhsshesjhgvthhmrdhmvgeqnecuggftrfgrthhtvghrnhepueffhe ehhfettdelgfekteevtdeludefgfektdeulefggfevuedufeehheeuveeknecuffhomhgr ihhnpehlihgstggrmhgvrhgrrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrg hrrghmpehmrghilhhfrhhomhepfhhlohhsshesjhgvthhmrdhmvgdpnhgspghrtghpthht ohepjedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhosggvrhhtrdhmrgguvg hrsegtohhllhgrsghorhgrrdgtohhmpdhrtghpthhtohepsggrrhhnrggsrghsrdhpohgt iigvsehiuggvrghsohhnsghorghrugdrtghomhdprhgtphhtthhopehkihgvrhgrnhdrsg hinhhghhgrmhesihguvggrshhonhgsohgrrhgurdgtohhmpdhrtghpthhtoheplhgruhhr vghnthdrphhinhgthhgrrhhtsehiuggvrghsohhnsghorghrugdrtghomhdprhgtphhtth hopehlihgstggrmhgvrhgrqdguvghvvghlsehlihhsthhsrdhlihgstggrmhgvrhgrrdho rhhgpdhrtghpthhtohepjhhohhgrnhhnvghsrdhgohgvuggvsehoshhsrdhquhgrlhgtoh hmmhdrtghomhdprhgtphhtthhopehmiigrmhgriigrlhesrhgvughhrghtrdgtohhm X-ME-Proxy: Feedback-ID: i9dde48b3:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 82E431EA006B; Mon, 11 May 2026 14:16:03 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface From: Javier Tia Subject: [PATCH v3 0/3] ipa: simple: Add OV2740 tuning + AIQB parser Date: Mon, 11 May 2026 12:16:00 -0600 Message-Id: <20260511-ov2740-tuning-v3-0-8ff3e57c7368@jetm.me> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAAAAAAAC/yXMQQ5AMBBA0avIrDVpR5G4iljQjhqLkhaRiLsrl m/x/wWRAlOEJrsg0MGRF59Q5BmYqfeOBNtkQImVLJUSy4G1lmLbPXsnlNGEKLXFeoDUrIFGPr9 f2/2O+zCT2d4J3PcDRgQrIXEAAAA= X-Change-ID: 20260511-ov2740-tuning-1c4e2204d27b To: libcamera-devel@lists.libcamera.org Cc: Kieran Bingham , Laurent Pinchart , =?utf-8?b?QmFybmFiw6FzIFDFkWN6?= =?utf-8?q?e?= , Milan Zamazal , Robert Mader , Hans de Goede X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1899; i=floss@jetm.me; h=from:subject:message-id; bh=XsfQfy939N7pxlBKVZ3BoTafo075W5+P/qYHtM+5mSs=; b=owEB7QES/pANAwAKAbXuwwuoZ3cfAcsmYgBqAhzg0HiqEY8tIUwHX9pB2CURW3Ysu6+EDl/c9 jKSc3LjZlmJAbMEAAEKAB0WIQSbE7ILzw7eI0VKk8m17sMLqGd3HwUCagIc4AAKCRC17sMLqGd3 H1vbC/9qbUg4HPZm4Ug2pe7BudQoqnTp7i6QHgzCdso8XquO7dV1wC8xUVdYJdZmxJWok+OftGT xXukCT9hjh6H+DXGNtWEuJlsGOUMnqxYjeWb7nxQUc2g3LOPHU8pqbayJ4cOTKvLYWQhC3ysEJR ayVqxdfH2QaniVZSX6GBU8ZhleUEof1grwt5f6RfNw177XTBQ+q1r+qdFBTTg/uLeryRGcUz2U7 UaL5fU7mHW0/UbISXUmeEiPXinDZIZZ1utN0Re5xGBw6Fw607AlF5PGrieqt402HfgcpVOtOYAL VsipLZ7bV6ToZR//iVCGksICBNTGEerYrwmTN3h8Z+VUIjrO4/G+WGZS0WE5csZl+0S0R5l2Trz cxbHAnLKSDUb5iRsmBn+46EsT5DxXLD5qx69hfTkUYFB4dBWh4Z2OPxmcIdaL3NmeWNCtg0xyqt P/VDO8rI2Xf7A38H87R8FsAMwe/KMhQ9ivjmgpLEpe5nGP+7YjdwdHVU9wYuV050RkYqE= X-Developer-Key: i=floss@jetm.me; a=openpgp; fpr=9B13B20BCF0EDE23454A93C9B5EEC30BA867771F 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" Add a calibrated tuning file for the OV2740 sensor based on the Intel IPU6 AIQB shipped with the Lenovo ThinkPad X1 Carbon Gen 10, and the Python parser that produced it. The first patch drops a now-dead guard in SwStatsCpu::finishFrame() flagged during review of the v2 series. Changes since v2: - AIQB parser: tightened the file header docstring to avoid duplicating the argparse description, cited ia_cmc_types.h as the format source, removed the --black-level CLI flag (black levels belong in CameraSensorHelper, not in the tuning emitted by this script), introduced a ColorMatrixRecord dataclass so the id=18 unpacking reads as named fields, switched the YAML output to PyYAML via a Dumper subclass, and now write the YAML to .yaml so the diagnostic prints don't have to be filtered out. (Laurent Pinchart) - OV2740 tuning: no functional changes; regenerated against the updated parser to confirm the output is byte-identical. - SwStatsCpu sumShift_ guard: no functional changes; rebased so it applies cleanly on top of the merged v5 AGC/AWB series. Link to v2: https://patchwork.libcamera.org/project/libcamera/list/?series=5926 Signed-off-by: Javier Tia --- Javier Tia (3): libcamera: software_isp: Drop redundant sumShift_ guard in finishFrame ipa: simple: data: Add OV2740 tuning file utils: tuning: Add AIQB parser for Intel IPU6 sensors src/ipa/simple/data/meson.build | 1 + src/ipa/simple/data/ov2740.yaml | 72 +++++++ src/libcamera/software_isp/swstats_cpu.cpp | 9 +- utils/tuning/parse_aiqb.py | 335 +++++++++++++++++++++++++++++ 4 files changed, 412 insertions(+), 5 deletions(-) --- base-commit: 500c2320619a47bd01d1ffe69ca4cc6eae6e00e8 change-id: 20260511-ov2740-tuning-1c4e2204d27b Best regards, -- Javier Tia