From patchwork Thu Jun 18 19:57:12 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Fend X-Patchwork-Id: 26995 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 6CC9FC3261 for ; Thu, 18 Jun 2026 19:57:19 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4BAE2656C0; Thu, 18 Jun 2026 21:57:18 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=emfend.at header.i=@emfend.at header.b="kkMwNPZc"; dkim-atps=neutral Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 667FB61754 for ; Thu, 18 Jun 2026 21:57:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:Message-Id:Content-Transfer-Encoding:Content-Type: MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=nGuqUfoPekJgNMbiuBLZ43+/DdUQD5Pe9obqKTyFqfw=; b=kkMwNPZcSk6VFWIm3kr/lCyHyn Y9hpvV/vOOOrdEaLbIOsXFg53iQUkhIHE5X8DiSSxuZRWkr4tOZl+cqRd4dKigP8UpdygOfASXqeA WZgYuHGypgk/Xnt2Q8vx+p+78LCMJlzt4NUf5SRi+S9/wPJNURjmA9WScnJhYHzgq42s=; Received: from 194-208-226-106.tele.net ([194.208.226.106]:51429 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1waIrT-001Zr5-C4; Thu, 18 Jun 2026 21:57:15 +0200 From: Matthias Fend Date: Thu, 18 Jun 2026 21:57:12 +0200 Subject: [PATCH v2] libcamera: libipa: camera_sensor: Add OmniVision OV08D10 sensor properties MIME-Version: 1.0 Message-Id: <20260618-ov08d10-v2-1-aa5a38e15bcc@emfend.at> X-B4-Tracking: v=1; b=H4sIAJdNNGoC/2XMQQ6CMBCF4auQWVszU4hUV9zDsCh0kFnYmpY0G tK7W9m6/F9evh0SR+EEt2aHyFmSBF9DnxqYV+sfrMTVBo36gq3uVchoHKHC3sx8Nd1kbAf1/Yq 8yPuQ7mPtVdIW4ueAM/3WfyOTIjWhYZ5bJqdp4OfC3p3tBmMp5Qut0IPLngAAAA== X-Change-ID: 20260327-ov08d10-078ce984b8a4 To: libcamera-devel@lists.libcamera.org Cc: Matthias Fend X-Mailer: b4 0.14.2 X-Spam-Score: X-Spam-Bar: X-Spam-Report: 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" Provide the OmniVision OV08D10 camera sensor properties and registration with libipa for the gain code helpers. Signed-off-by: Matthias Fend --- Changes in v2: - Added black level - Rebased - Link to v1: https://lore.kernel.org/r/20260327-ov08d10-v1-1-b08eec3e1d21@emfend.at --- src/ipa/libipa/camera_sensor_helper.cpp | 12 ++++++++++++ src/libcamera/sensor/camera_sensor_properties.cpp | 13 +++++++++++++ 2 files changed, 25 insertions(+) --- base-commit: cde4eddf895cd09d05137bd99425d238cd8a6018 change-id: 20260327-ov08d10-078ce984b8a4 Best regards, diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp index 3028197e1cced6f96a7cb3ebfb14d976cac96a99..e89ea1808f5658b66c12a56af9d709fbe62fe69b 100644 --- a/src/ipa/libipa/camera_sensor_helper.cpp +++ b/src/ipa/libipa/camera_sensor_helper.cpp @@ -653,6 +653,18 @@ public: }; REGISTER_CAMERA_SENSOR_HELPER("imx708", CameraSensorHelperImx708) +class CameraSensorHelperOv08d10 : public CameraSensorHelper +{ +public: + CameraSensorHelperOv08d10() + { + /* From Linux kernel driver: 0x40 at 10bits. */ + blackLevel_ = 4096; + gain_ = AnalogueGainLinear{ 1, 0, 0, 128 }; + } +}; +REGISTER_CAMERA_SENSOR_HELPER("ov08d10", CameraSensorHelperOv08d10) + class CameraSensorHelperOv2685 : public CameraSensorHelper { public: diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp index b217363d872a7cee81fbf50242e13cf0f6819da5..0e346edac66c7b85650b0e7c30496f1f10ab445e 100644 --- a/src/libcamera/sensor/camera_sensor_properties.cpp +++ b/src/libcamera/sensor/camera_sensor_properties.cpp @@ -325,6 +325,19 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen .hblankDelay = 3 }, } }, + { "ov08d10", { + .unitCellSize = { 1120, 1120 }, + .testPatternModes = { + { controls::draft::TestPatternModeOff, 0 }, + { controls::draft::TestPatternModeCustom1, 1 }, + }, + .sensorDelays = { + .exposureDelay = 2, + .gainDelay = 2, + .vblankDelay = 2, + .hblankDelay = 2 + }, + } }, { "ov2685", { .unitCellSize = { 1750, 1750 }, .testPatternModes = {