From patchwork Tue May 12 16:49:26 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bogdan Radulescu X-Patchwork-Id: 26747 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 D28F1BDCBD for ; Tue, 12 May 2026 18:38:28 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 86A8B62FEA; Tue, 12 May 2026 20:38:28 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=nimblex.net header.i=@nimblex.net header.b="kypwnBYZ"; dkim-atps=neutral Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id A72D76271A for ; Tue, 12 May 2026 18:49:50 +0200 (CEST) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-488af9fdaa7so33250835e9.1 for ; Tue, 12 May 2026 09:49:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nimblex.net; s=google; t=1778604590; x=1779209390; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=0HTuvWAp204HDcqpDIROa4gpRTABaf1PBUZ8dI0cEQM=; b=kypwnBYZwMakk4gy8/5fXQ+ZdlLcxWhelnGwbKwBTJvZ8Mi6CRzXm5vJu/N+W/b0a+ vAChYBFJTdjtQUF8sCeMQljnfp833Vw3FpwMjLzsHOfTmnJfodhajGHhNa7KTO1FqWga IV3MJcTLO0fsNYYLISokY9qeQCvTwNC3ctwYg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778604590; x=1779209390; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=0HTuvWAp204HDcqpDIROa4gpRTABaf1PBUZ8dI0cEQM=; b=YiWZz9uqdEq7q2yF1noWXYcm2m2/GWUDI0ME5nbxTFGNpcaaR/wEmqP7M8KUJHYdTC cyojieATFlpCkvRJrPH0cnEoIJuMFSD1faVUDxRYcui834LNzFCfI7vUwyCB65vD4/gf /0erXgdvNYtQsV3jhv2iaItrxYxLnoVSIX4e3h/9vYk5KSPna23T2zytQhlbOoKF1Og/ P2tV6IsG1VZ7O9OeoLW0Qqpuf/Q9MJdeJGK35e2p3WIsdyrR7shO5OeSIDp89RhKgcin c9la/2txbwzzPGOPqr2K9MTuitoEbMe6Izn2PofMaVXgRaUXt92q+h4Nu4JIu9vNf4Uw LeYw== X-Gm-Message-State: AOJu0YzclhCTr5BPDbg/MNZuOzujIYEXTu53eatNhaA0w7W2abGLGbtg x8HhT516NUZuyBiylHsTpkrndDVAtT9ZVZ6sICgBpRSDAP/yG76YnzmY1Bb4PFv7XJJThYN7q8t GdX6W9BE= X-Gm-Gg: Acq92OERQ5flLQXbC7um5NxLtbMnhLp+7/7fWVawA7NSSoNjUFiQQoleuSEsbp1w03L Z0DIp8Zc1tzam9rhEkatuA/lfW8rP+Ba1FunkGM+pz5zo311l0kl7kbm3FtUMKnbkKrxSp4xTwf 2MNK3gkPUnsaAZZJq7IrkXG0S7Ow+i+xsi1FJDevMROEfYe+A4qoywl7xCfTjPqq6Oq42rXSYaE JpFeCMbsAKEglc+6WMIGdJarOPCEhP8l5IQBwXd6BzzQt3ApCP7ZJjfm1+/jfsYjM9eAIBrysyg HFQlbwZPn5x3ubKXNzuaq5QwhIktSyiLpdzSXOp765q32v3T0qlbzJ+EmCpMwsXMiP3LgtNkQsR jVxyPksqNgQCvj/aVonT0FcqhYiwMu3R+/xy3yCnex0beCnQzksmwZhGjKu4ifL+xVAFGYsQSM7 GPZdq+xOwKy9H8ppktXyRFIvCC61IsJw== X-Received: by 2002:a05:600c:1f85:b0:48e:8741:fd4d with SMTP id 5b1f17b1804b1-48e8fe72438mr59263775e9.18.1778604589715; Tue, 12 May 2026 09:49:49 -0700 (PDT) Received: from nimblex ([2a02:2f0c:590f:dd00:8c23:d8de:dbaa:cf0c]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48fc8d624fbsm24905025e9.10.2026.05.12.09.49.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 09:49:49 -0700 (PDT) From: Bogdan Radulescu To: libcamera-devel@lists.libcamera.org Cc: Laurent Pinchart , Kieran Bingham , Hans de Goede , Bogdan Radulescu Subject: [PATCH] ipa: libipa: camera_sensor_helper: add ov08x40 Date: Tue, 12 May 2026 19:49:26 +0300 Message-ID: <20260512164926.2947313-1-bogdan@nimblex.net> X-Mailer: git-send-email 2.54.0 MIME-Version: 1.0 X-Mailman-Approved-At: Tue, 12 May 2026 20:38:26 +0200 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" Without an entry for ov08x40, the software ISP used by the simple pipeline handler can't run AGC for this sensor and logs: IPASoft: Failed to create camera sensor helper for ov08x40 The kernel driver (drivers/media/i2c/ov08x40.c) advertises analogue- gain register values in the range 0x80..0x07c0 with a default of 0x80, which is the same 1/128-step encoding already used by the other OmniVision sensors in this file (ov5675, ov8858, ov8865, ov13858). Add a helper that follows the same pattern. Tested on a Lenovo ThinkPad X1 Carbon Gen 13 (Intel Lunar Lake, IPU7), where this is the only front camera. Signed-off-by: Bogdan Radulescu --- src/ipa/libipa/camera_sensor_helper.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp index 3028197..eb9acd1 100644 --- a/src/ipa/libipa/camera_sensor_helper.cpp +++ b/src/ipa/libipa/camera_sensor_helper.cpp @@ -755,6 +755,23 @@ public: }; REGISTER_CAMERA_SENSOR_HELPER("ov64a40", CameraSensorHelperOv64a40) +class CameraSensorHelperOv08x40 : public CameraSensorHelper +{ +public: + CameraSensorHelperOv08x40() + { + /* + * The Linux kernel ov08x40 driver advertises analogue-gain + * register values in the range 0x80..0x07c0 with a default + * of 0x80; matching the convention used by OmniVision's other + * 8/13MP class sensors (ov8858, ov8865, ov13858), the gain + * multiplier is encoded as register_value / 128. + */ + gain_ = AnalogueGainLinear{ 1, 0, 0, 128 }; + } +}; +REGISTER_CAMERA_SENSOR_HELPER("ov08x40", CameraSensorHelperOv08x40) + class CameraSensorHelperOv8858 : public CameraSensorHelper { public: