From patchwork Wed Oct 14 09:07:14 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 28450 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 0FE85BDCB6 for ; Wed, 14 Oct 2026 09:07:42 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B2BD068D7C; Wed, 14 Oct 2026 11:07:41 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gv8vJe6Z"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9994A689D7 for ; Wed, 14 Oct 2026 11:07:39 +0200 (CEST) Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c68:46f5:32b8:ff94:7599:1aae]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 271B3BC; Wed, 14 Oct 2026 11:05:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1791968737; bh=ObMvnwe20/XbCJY70Mw1DN06YAaZV9xOMcAw2gFZXeY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=gv8vJe6ZYevyuo/Syj7ZD9QZRxSUBXJ0mkl0vEAr+ckvbkDKMRZmwatB3SiR1+S7f NQeFSgqZbURPnzLUFY6309GBMbAPG9iSxK8Y3FxDZ+V6ymy6Maf3SxWlGWS0OQlp5W Lg9VDalTRuVygs9RPssVnclsOUoeDK1St24C0Pzs= From: Jai Luthra Date: Wed, 14 Oct 2026 14:37:14 +0530 Subject: [PATCH 1/2] libcamera: camera_sensor: Add Sony IMX676 sensor properties and helper MIME-Version: 1.0 Message-Id: <20261014-mainline-imx676-v1-1-f7550988d367@ideasonboard.com> References: <20261014-mainline-imx676-v1-0-f7550988d367@ideasonboard.com> In-Reply-To: <20261014-mainline-imx676-v1-0-f7550988d367@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Naushir Patuck , Laurent Pinchart , Kieran Bingham , Jai Luthra X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1790; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=ObMvnwe20/XbCJY70Mw1DN06YAaZV9xOMcAw2gFZXeY=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBqz0ZPhY/BbempK9SItohAkg+vgeLDrlHf7CJhC Nmp+LT7/p+JAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCas9GTwAKCRBD3pH5JJpx RSoRD/92GBCrNt2bQ4Eh3g3ZzaTDbObi7afBrCWsBM4qQmWFCF5gSVlcbHPVTg6N/dUcpVGfJWs 6NRZze6Bhbw+lHDIoVdlJhObD9px9PHIYDAXkfRCX4rwpBur7MK+W5rwg4gFzK1hEGi9zbPuO98 Jh5PmmttoE+u2BDRVE/s2aOJZITnlxWW/MlwqmePk6L3DT2clAWt/WgYWdvs2R3JsjJDgVn9kcQ JrK76iZKvDnRjX0LuGtnCPWfRopfzlpyVNbTVMKyeDQdR2ydZMezkaDbyaerET2iFpqxvMjYIG6 upfMzW7tZZ6kueFzFLRDQ1KrHwN80oY0TcX4Rw2cDKOkb32PmpIj0eWpUpfCaz0WfJviCXWLOBY MM2B2tZwZDVjfNjL0YA6R91zWENjJzfmhj402dt0vh45arsEh9j+Ci1sOYac/CvSeT6w3dixBV+ kawHPH01q1MLW/Gp36JTOsbkpZyQc8wowermvb184ttvCgIMA/A6GQhvmQW1AiF7Qtoj2PeOoZg E5uzaEY72exvS+dZY0WU8SlnDU7gttemhp5QmjddVUHVv0ds0iJXIc0OwL8W1nCkWgcjmph1D4D ctr+DEdd01xrCsQytuvECk6fQ5feY51Rdgwwe8IOkVL6Ear1yJIGjiPuSzmQs6umz9vsrPAD6NF dJMbJCk/iDZPudg== X-Developer-Key: i=jai.luthra@ideasonboard.com; a=openpgp; fpr=4DE0D818E5D575E8D45AAFC543DE91F9249A7145 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 the camera sensor properties and camera helper entry for the Sony IMX676 Starvis 2 sensor. Signed-off-by: Jai Luthra Reviewed-by: Kieran Bingham --- src/ipa/libipa/camera_sensor_helper.cpp | 12 ++++++++++++ src/libcamera/sensor/camera_sensor_properties.cpp | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp index 359040ec7418..46ea76a003d7 100644 --- a/src/ipa/libipa/camera_sensor_helper.cpp +++ b/src/ipa/libipa/camera_sensor_helper.cpp @@ -678,6 +678,18 @@ public: }; REGISTER_CAMERA_SENSOR_HELPER("imx662", CameraSensorHelperImx662) +class CameraSensorHelperImx676 : public CameraSensorHelper +{ +public: + CameraSensorHelperImx676() + { + /* From datasheet: 0x32 at 10bits. */ + blackLevel_ = 3200; + gain_ = AnalogueGainExp{ 1.0, expGainDb(0.3) }; + } +}; +REGISTER_CAMERA_SENSOR_HELPER("imx676", CameraSensorHelperImx676) + class CameraSensorHelperImx678 : public CameraSensorHelper { public: diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp index 20cfd0bc11a6..53bdf8b12f3e 100644 --- a/src/libcamera/sensor/camera_sensor_properties.cpp +++ b/src/libcamera/sensor/camera_sensor_properties.cpp @@ -350,6 +350,16 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen .hblankDelay = 2 }, } }, + { "imx676", { + .unitCellSize = { 2000, 2000 }, + .testPatternModes = {}, + .sensorDelays = { + .exposureDelay = 2, + .gainDelay = 2, + .vblankDelay = 2, + .hblankDelay = 2 + }, + } }, { "imx678", { .unitCellSize = { 2000, 2000 }, .testPatternModes = {},