From patchwork Fri Mar 6 18:46:42 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Tia X-Patchwork-Id: 26269 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 4ED13BE086 for ; Fri, 6 Mar 2026 18:47:31 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 040D06262B; Fri, 6 Mar 2026 19:47:31 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=jetm.me header.i=@jetm.me header.b="pmNB6ydX"; dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="auylUig1"; dkim-atps=neutral Received: from fout-b3-smtp.messagingengine.com (fout-b3-smtp.messagingengine.com [202.12.124.146]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 16EB26262B for ; Fri, 6 Mar 2026 19:47:29 +0100 (CET) Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.stl.internal (Postfix) with ESMTP id 1E1E41D001EF; Fri, 6 Mar 2026 13:47:28 -0500 (EST) Received: from phl-imap-07 ([10.202.2.97]) by phl-compute-02.internal (MEProxy); Fri, 06 Mar 2026 13:47:28 -0500 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:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1772822847; x=1772909247; bh=CHN1xniAfXlwQmhfXAgCskP+NfdleaM3Yb9Adg8Ets4=; b= pmNB6ydXRNTtclbQNeoodsvW7c/7plZ6g1V/xSB/9oPr7DSaFDncqd2D2eggsE47 1XgGgrBAi4xERBQJamW2T6gkGRmHZ95xzrxOzQY7EXM0cM9CqepOI07O1eSB7uI1 PfH8SKKSCYKJ1QTvO+lPTVVJ05AibI3RGIUlZormgIZ0ESd7uxfGkForuAy3pbmk /tQM2urt5Ikq/SK0WyNfABoQ465syPHylKZaBJa1BVYWdXVdC110ZZqNkiKt5FBf QLG+mtXpQp3uuVVAnCCW+/XRBO8MHpQQ7KnuOXLJV9Vs7PsyXTezhNpBW1gVWmCO cRUkuQdTouwb8h04QNxE5A== 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:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1772822847; x= 1772909247; bh=CHN1xniAfXlwQmhfXAgCskP+NfdleaM3Yb9Adg8Ets4=; b=a uylUig1/T/LiMaJYy4Sb0iSidhtVztgCfPY1TV1/uv/DKeqaM8e1gLk1BbjcXb22 hByPeG+8/zO1NJRXua+ZCJgOc3a9LSS+cLA5nPeIzp2sreQKLeZg4YYjIx59OLzi DVFHw6MBVpawKY3ojdokGsMYmxxZYXdUHr3bnxu/o16ROgL9Ct9CRI5bAAxW1pib JKF2EPILvCBPP8ZjcjaWqrYBR0R4sSIpTgtZr8tUgOH8BowYoemGgjJ4I+Uk2L+/ o3+seUDyrn1XC3mtRsFIq0N8RgCxBB8T7izyrzbLv11cgTyXW0BtwhjrBg/TWMjL lpD60Gk69C2VdUweefvEQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvjedttdegucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepoffhfffugggtgffkvfevofgjfhesthejredtredtjeenucfhrhhomheplfgrvhhi vghrucfvihgruceofhhlohhsshesjhgvthhmrdhmvgeqnecuggftrfgrthhtvghrnhepvd dtjeeiheeijedtveeujeevvdekjeeuveekleeijeekfeejhfefveeiffffvdeinecuvehl uhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepfhhlohhsshesjh gvthhmrdhmvgdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghp thhtoheprhhosggvrhhtrdhmrgguvghrsegtohhllhgrsghorhgrrdgtohhmpdhrtghpth htohepkhhivghrrghnrdgsihhnghhhrghmsehiuggvrghsohhnsghorghrugdrtghomhdp rhgtphhtthhopehflhhoshhssehjvghtmhdrmhgvpdhrtghpthhtoheplhhisggtrghmvg hrrgdquggvvhgvlheslhhishhtshdrlhhisggtrghmvghrrgdrohhrghdprhgtphhtthho pehmiigrmhgriigrlhesrhgvughhrghtrdgtohhm X-ME-Proxy: Feedback-ID: i9dde48b3:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id D0D6B1EA006B; Fri, 6 Mar 2026 13:47:27 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface From: Javier Tia Date: Fri, 06 Mar 2026 12:46:42 -0600 Subject: [PATCH v4 3/3] ipa: libipa: camera_sensor_helper: Add OV2740 black level MIME-Version: 1.0 Message-Id: <20260306-agc-proportional-v4-3-e87c7e0d837a@jetm.me> To: libcamera-devel@lists.libcamera.org Cc: Javier Tia , Robert Mader , Milan Zamazal , Kieran Bingham X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1395; i=floss@jetm.me; h=from:subject:message-id; bh=CVayJSTkmCsf3E9vSV+wy3VZe+4o2pIj1TTFoqLh3u4=; b=owEB7QES/pANAwAKAbXuwwuoZ3cfAcsmYgBpqyEP1N2etlf4hTxq8on0NTxpNs3AChasz/vmZ zNwj/Eop2OJAbMEAAEKAB0WIQSbE7ILzw7eI0VKk8m17sMLqGd3HwUCaashDwAKCRC17sMLqGd3 H8LqC/9CLvtNbv/tp2eCP2K96dyZq62hLhKNle6Bp4odNM+Cm8Cwv1FW2IPyVUTFO3bSFEnaavp FDd+GIhf16pXxf8HxP2knf0fH5M9UhkwChLFSttPGXx1Vd22cWPoMgkX2/E91UTYmm2hzq/tTJu Se9FVRKNOenDMQ/4G9ZMqAMa75LwWc2x/XyTfzXnwC+laGN+gHdZbm9nJSz8KRbBm3DvOkm3q74 xsrtcql1wts2eaJFiHcc9UoJERnhSzF+ygo66lWqy21DYoHXd5fRfWEbjdIpYRuFW6KaFk339ZQ TxvdErmdEwymK41kVvxL7X7IdLcY8aql13p5ObZEp7nOGJfkSwTdq8GnIQ0NfUbZ73rZ2i1Z/37 NbeTFDeH7D3KBBSQkKiVQuH1nMmNCXG41pmnc93QKQkQuWqG5NUoF94QlGOQ2kdpBIJFa4kyrA8 Bd8kZW6IYrXqczkQOpqCGz+/G5Xep6FPdn8hx1RPua+EMAHWWhHxw6E//Lj6gXppCVyhs= X-Developer-Key: i=floss@jetm.me; a=openpgp; fpr=9B13B20BCF0EDE23454A93C9B5EEC30BA867771F In-Reply-To: <20260306-agc-proportional-v4-0-e87c7e0d837a@jetm.me> References: <20260306-agc-proportional-v4-0-e87c7e0d837a@jetm.me> 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" Set blackLevel_ = 4096 (0x40 at 10-bit) in CameraSensorHelperOv2740. The OV2740 kernel driver programs BLC target register 0x4003 with 0x40 for the 180 MHz link frequency mode. This matches the same pattern used by OV5675 and other OmniVision sensors with a 10-bit black level of 64. Without this, the Simple pipeline falls back to auto-guessing the black level, which happens to arrive at the same value but isn't documented. More importantly, the CameraSensorHelper is the canonical location for sensor calibration data and is used across all pipeline handlers, not just Simple. Suggested-by: Robert Mader Signed-off-by: Javier Tia Reviewed-by: Milan Zamazal Reviewed-by: Kieran Bingham --- src/ipa/libipa/camera_sensor_helper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp index e3e3e535..3028197e 100644 --- a/src/ipa/libipa/camera_sensor_helper.cpp +++ b/src/ipa/libipa/camera_sensor_helper.cpp @@ -672,6 +672,8 @@ class CameraSensorHelperOv2740 : public CameraSensorHelper public: CameraSensorHelperOv2740() { + /* From Linux kernel driver: 0x40 at 10bits. */ + blackLevel_ = 4096; gain_ = AnalogueGainLinear{ 1, 0, 0, 128 }; } };