Patch Detail
Show a patch.
GET /api/patches/26747/?format=api
{ "id": 26747, "url": "https://patchwork.libcamera.org/api/patches/26747/?format=api", "web_url": "https://patchwork.libcamera.org/patch/26747/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260512164926.2947313-1-bogdan@nimblex.net>", "date": "2026-05-12T16:49:26", "name": "ipa: libipa: camera_sensor_helper: add ov08x40", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "d8cde227740199417c0d7ea61f5d300e372ada94", "submitter": { "id": 273, "url": "https://patchwork.libcamera.org/api/people/273/?format=api", "name": "Bogdan Radulescu", "email": "bogdan@nimblex.net" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/26747/mbox/", "series": [ { "id": 5941, "url": "https://patchwork.libcamera.org/api/series/5941/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5941", "date": "2026-05-12T16:49:26", "name": "ipa: libipa: camera_sensor_helper: add ov08x40", "version": 1, "mbox": "https://patchwork.libcamera.org/series/5941/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/26747/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/26747/checks/", "tags": {}, "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id D28F1BDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 May 2026 18:38:28 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 86A8B62FEA;\n\tTue, 12 May 2026 20:38:28 +0200 (CEST)", "from mail-wm1-x336.google.com (mail-wm1-x336.google.com\n\t[IPv6:2a00:1450:4864:20::336])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A72D76271A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2026 18:49:50 +0200 (CEST)", "by mail-wm1-x336.google.com with SMTP id\n\t5b1f17b1804b1-488af9fdaa7so33250835e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2026 09:49:50 -0700 (PDT)", "from nimblex ([2a02:2f0c:590f:dd00:8c23:d8de:dbaa:cf0c])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-48fc8d624fbsm24905025e9.10.2026.05.12.09.49.48\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 12 May 2026 09:49:49 -0700 (PDT)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=nimblex.net header.i=@nimblex.net\n\theader.b=\"kypwnBYZ\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=nimblex.net; s=google; t=1778604590; x=1779209390;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=0HTuvWAp204HDcqpDIROa4gpRTABaf1PBUZ8dI0cEQM=;\n\tb=kypwnBYZwMakk4gy8/5fXQ+ZdlLcxWhelnGwbKwBTJvZ8Mi6CRzXm5vJu/N+W/b0a+\n\tvAChYBFJTdjtQUF8sCeMQljnfp833Vw3FpwMjLzsHOfTmnJfodhajGHhNa7KTO1FqWga\n\tIV3MJcTLO0fsNYYLISokY9qeQCvTwNC3ctwYg=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1778604590; x=1779209390;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=0HTuvWAp204HDcqpDIROa4gpRTABaf1PBUZ8dI0cEQM=;\n\tb=YiWZz9uqdEq7q2yF1noWXYcm2m2/GWUDI0ME5nbxTFGNpcaaR/wEmqP7M8KUJHYdTC\n\tcyojieATFlpCkvRJrPH0cnEoIJuMFSD1faVUDxRYcui834LNzFCfI7vUwyCB65vD4/gf\n\t/0erXgdvNYtQsV3jhv2iaItrxYxLnoVSIX4e3h/9vYk5KSPna23T2zytQhlbOoKF1Og/\n\tP2tV6IsG1VZ7O9OeoLW0Qqpuf/Q9MJdeJGK35e2p3WIsdyrR7shO5OeSIDp89RhKgcin\n\tc9la/2txbwzzPGOPqr2K9MTuitoEbMe6Izn2PofMaVXgRaUXt92q+h4Nu4JIu9vNf4Uw\n\tLeYw==", "X-Gm-Message-State": "AOJu0YzclhCTr5BPDbg/MNZuOzujIYEXTu53eatNhaA0w7W2abGLGbtg\n\tx8HhT516NUZuyBiylHsTpkrndDVAtT9ZVZ6sICgBpRSDAP/yG76YnzmY1Bb4PFv7XJJThYN7q8t\n\tGdX6W9BE=", "X-Gm-Gg": "Acq92OERQ5flLQXbC7um5NxLtbMnhLp+7/7fWVawA7NSSoNjUFiQQoleuSEsbp1w03L\n\tZ0DIp8Zc1tzam9rhEkatuA/lfW8rP+Ba1FunkGM+pz5zo311l0kl7kbm3FtUMKnbkKrxSp4xTwf\n\t2MNK3gkPUnsaAZZJq7IrkXG0S7Ow+i+xsi1FJDevMROEfYe+A4qoywl7xCfTjPqq6Oq42rXSYaE\n\tJpFeCMbsAKEglc+6WMIGdJarOPCEhP8l5IQBwXd6BzzQt3ApCP7ZJjfm1+/jfsYjM9eAIBrysyg\n\tHFQlbwZPn5x3ubKXNzuaq5QwhIktSyiLpdzSXOp765q32v3T0qlbzJ+EmCpMwsXMiP3LgtNkQsR\n\tjVxyPksqNgQCvj/aVonT0FcqhYiwMu3R+/xy3yCnex0beCnQzksmwZhGjKu4ifL+xVAFGYsQSM7\n\tGPZdq+xOwKy9H8ppktXyRFIvCC61IsJw==", "X-Received": "by 2002:a05:600c:1f85:b0:48e:8741:fd4d with SMTP id\n\t5b1f17b1804b1-48e8fe72438mr59263775e9.18.1778604589715; \n\tTue, 12 May 2026 09:49:49 -0700 (PDT)", "From": "Bogdan Radulescu <bogdan@nimblex.net>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tHans de Goede <hansg@kernel.org>, Bogdan Radulescu <bogdan@nimblex.net>", "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", "Content-Transfer-Encoding": "8bit", "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": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Without an entry for ov08x40, the software ISP used by the simple\npipeline handler can't run AGC for this sensor and logs:\n\n IPASoft: Failed to create camera sensor helper for ov08x40\n\nThe kernel driver (drivers/media/i2c/ov08x40.c) advertises analogue-\ngain register values in the range 0x80..0x07c0 with a default of 0x80,\nwhich is the same 1/128-step encoding already used by the other\nOmniVision sensors in this file (ov5675, ov8858, ov8865, ov13858).\n\nAdd a helper that follows the same pattern. Tested on a Lenovo\nThinkPad X1 Carbon Gen 13 (Intel Lunar Lake, IPU7), where this is\nthe only front camera.\n\nSigned-off-by: Bogdan Radulescu <bogdan@nimblex.net>\n---\n src/ipa/libipa/camera_sensor_helper.cpp | 17 +++++++++++++++++\n 1 file changed, 17 insertions(+)", "diff": "diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\nindex 3028197..eb9acd1 100644\n--- a/src/ipa/libipa/camera_sensor_helper.cpp\n+++ b/src/ipa/libipa/camera_sensor_helper.cpp\n@@ -755,6 +755,23 @@ public:\n };\n REGISTER_CAMERA_SENSOR_HELPER(\"ov64a40\", CameraSensorHelperOv64a40)\n \n+class CameraSensorHelperOv08x40 : public CameraSensorHelper\n+{\n+public:\n+\tCameraSensorHelperOv08x40()\n+\t{\n+\t\t/*\n+\t\t * The Linux kernel ov08x40 driver advertises analogue-gain\n+\t\t * register values in the range 0x80..0x07c0 with a default\n+\t\t * of 0x80; matching the convention used by OmniVision's other\n+\t\t * 8/13MP class sensors (ov8858, ov8865, ov13858), the gain\n+\t\t * multiplier is encoded as register_value / 128.\n+\t\t */\n+\t\tgain_ = AnalogueGainLinear{ 1, 0, 0, 128 };\n+\t}\n+};\n+REGISTER_CAMERA_SENSOR_HELPER(\"ov08x40\", CameraSensorHelperOv08x40)\n+\n class CameraSensorHelperOv8858 : public CameraSensorHelper\n {\n public:\n", "prefixes": [] }