Show a patch.

GET /api/1.1/patches/26876/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 26876,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/26876/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/26876/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/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": "<20260612074647.3118148-1-bogdan@nimblex.net>",
    "date": "2026-06-12T07:46:47",
    "name": "[v2] ipa: libipa: camera_sensor_helper: add ov08x40",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "273f1ff25a6892f5ae9bcf9ac9f885452d06eb9d",
    "submitter": {
        "id": 273,
        "url": "https://patchwork.libcamera.org/api/1.1/people/273/?format=api",
        "name": "Bogdan Radulescu",
        "email": "bogdan@nimblex.net"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/26876/mbox/",
    "series": [
        {
            "id": 5991,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5991/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5991",
            "date": "2026-06-12T07:46:47",
            "name": "[v2] ipa: libipa: camera_sensor_helper: add ov08x40",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/5991/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/26876/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/26876/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 07B38C328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Jun 2026 07:46:58 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A8515623C1;\n\tFri, 12 Jun 2026 09:46:58 +0200 (CEST)",
            "from mail-wr1-x435.google.com (mail-wr1-x435.google.com\n\t[IPv6:2a00:1450:4864:20::435])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ABCA361E76\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Jun 2026 09:46:56 +0200 (CEST)",
            "by mail-wr1-x435.google.com with SMTP id\n\tffacd0b85a97d-45eee266c6cso548999f8f.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Jun 2026 00:46:56 -0700 (PDT)",
            "from nimblex ([2a02:2f0c:5605:2700:831f:a7f3:441:bb79])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-4606f26f309sm3892588f8f.14.2026.06.12.00.46.54\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 12 Jun 2026 00:46:55 -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=\"AEKqfPJ/\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=nimblex.net; s=google; t=1781250416; x=1781855216;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=x81P1+PSXYnb1gCYKmFovk69d8TIXdubOfhhX4nu7Zc=;\n\tb=AEKqfPJ/VyBbU4F5qR6fit8TRPr8UeNadPM1RBqT1aOcwCYqUxDHtj21MJrCvo2NGb\n\tsRu2sihY+qQkza3wI4BA976yjfk5ecvhCu+1TLBl3G6TUqoKPcvPd8h1y2ibLpUVLAF5\n\tgtX3RQDg0nVww0sQ3ORwXPLw3iTwMa+/NsRt8=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1781250416; x=1781855216;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=x81P1+PSXYnb1gCYKmFovk69d8TIXdubOfhhX4nu7Zc=;\n\tb=J3AhPzEwGyQFuF9BxLHdHh4HJA24IWnha0KiMfo1gVcK0Q2lmRFMdKTQWG0BnlEYLT\n\ttTL3N4EBZoUKINR8Cl1AQf+3Typ5xdjekzUI1aIfsgkLHR/PG8wcX+oiNpjA7asR/LHf\n\tDkf5qhdxI/tM2Hnne1jDYGIWA3l5qpQVk5hxqH/tFTYd5utBaeg0i++3pPOxs5o8ttdt\n\tJHaw0qSzWVUWVvL3hsk1eMXQWpo/KksjQQpF7uoEPtNVtRsGCUQH56DRvpHbmlIg55UW\n\tzf7gWQd0LObRBAfnCiqNDQY+GEb5OLcA+dQeslnvkWDu9i46ioyCeRXlBKZ4WF9JhCh8\n\tsRvg==",
        "X-Gm-Message-State": "AOJu0YwTj5wDfWeboCPCx2mye/Vg78KZlIL1c60E8J2LLNMc3hqSDofu\n\tHJzG4ODVPv78eqQL/Rof0U+jDJoL6jK5n+ORNEvICsI9ueeZmS2MVgZd9m9Pk2IwBi6PlEX1/RN\n\ttZ66yQgI=",
        "X-Gm-Gg": "Acq92OGmA5lBlCn0Vc8ePmFd0S5KQ2jl2IcUSdbgfJKSY2NNH+lIxthQQ4TnV9SE6XU\n\tK6JrZNH/jAeCH1OlXo4xr+IJXxtuwrPToWCSmktCbKMo/kjLBll8afpLeXnCtyNNAz0Y1/6z+/6\n\tBlr6DSfVlj6lk4pIaFOnEBuY02yH42hKorsZK11reOjLx/rRITq81DlqXLin/HEy+HWbpYtM2LI\n\t3/LkZAp3VNWhVGBcWXcXHXDNooIeKgaIzw7iJQ3NFbnSe2S4nxuldO+8MPWY2nLKm9G0LQHllX0\n\tR3fFR3p14OC69B+G4MYGIGVcUgOLyDgCmT69qlEr660ms6ovr2TiW9M8brs+xORVO3D06s6JAqk\n\t3CSrEp72V225kqmkPN84Shi5IYv1SQBbynJtJjYDn2o63BgIABAe7VMngsgDjcdNUUQdP46e6Tv\n\tC5c3reIR4eVDswN7l2roc=",
        "X-Received": "by 2002:a05:6000:615:b0:45e:e44b:312b with SMTP id\n\tffacd0b85a97d-4606da6a8a7mr2582011f8f.18.1781250415950; \n\tFri, 12 Jun 2026 00:46:55 -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 v2] ipa: libipa: camera_sensor_helper: add ov08x40",
        "Date": "Fri, 12 Jun 2026 10:46:47 +0300",
        "Message-ID": "<20260612074647.3118148-1-bogdan@nimblex.net>",
        "X-Mailer": "git-send-email 2.54.0",
        "In-Reply-To": "<20260512164926.2947313-1-bogdan@nimblex.net>",
        "References": "<20260512164926.2947313-1-bogdan@nimblex.net>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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\nThe sensor outputs 10-bit Bayer data and, like the other OmniVision\nsensors, applies a fixed 0x40 (64 LSB) black level pedestal, which\nscales to 4096 at the 16-bit width expected by blackLevel().\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---\nChanges since v1:\n- Drop the explanatory comment on the gain model (it is already\n  covered by the commit message).\n- Set blackLevel_ to 4096 (0x40 at 10 bits), which was missing.\n- Move the entry so the helpers stay sorted by sensor model\n  (ov08x40 sorts before ov2685).\n\n src/ipa/libipa/camera_sensor_helper.cpp | 11 +++++++++++\n 1 file changed, 11 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@@ -653,6 +653,17 @@\n };\n REGISTER_CAMERA_SENSOR_HELPER(\"imx708\", CameraSensorHelperImx708)\n \n+class CameraSensorHelperOv08x40 : public CameraSensorHelper\n+{\n+public:\n+\tCameraSensorHelperOv08x40()\n+\t{\n+\t\tblackLevel_ = 4096;\n+\t\tgain_ = AnalogueGainLinear{ 1, 0, 0, 128 };\n+\t}\n+};\n+REGISTER_CAMERA_SENSOR_HELPER(\"ov08x40\", CameraSensorHelperOv08x40)\n+\n class CameraSensorHelperOv2685 : public CameraSensorHelper\n {\n public:\n",
    "prefixes": [
        "v2"
    ]
}