Show a patch.

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

{
    "id": 26331,
    "url": "https://patchwork.libcamera.org/api/patches/26331/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/26331/",
    "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": "<c6a502b4-4193-40a6-8cfa-62a19bfb5011@opendigital.cc>",
    "date": "2026-03-25T09:31:45",
    "name": "ipa: libipa: camera_sensor_helper: Add OV01A10",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "e706a70d845a18a50f1df3187b2f251ff8babef6",
    "submitter": {
        "id": 264,
        "url": "https://patchwork.libcamera.org/api/people/264/?format=api",
        "name": "Stuart J Mackintosh",
        "email": "sjm@opendigital.cc"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/26331/mbox/",
    "series": [
        {
            "id": 5845,
            "url": "https://patchwork.libcamera.org/api/series/5845/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5845",
            "date": "2026-03-25T09:31:45",
            "name": "ipa: libipa: camera_sensor_helper: Add OV01A10",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5845/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/26331/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/26331/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 DFD02BE086\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 25 Mar 2026 09:31:52 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F17B862837;\n\tWed, 25 Mar 2026 10:31:51 +0100 (CET)",
            "from isp.services.fr2.cloudient.net (services.fr2.cloudient.net\n\t[2.59.188.206])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0649062788\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Mar 2026 10:31:51 +0100 (CET)",
            "from 103.82.220.81.rev.sfr.net ([81.220.82.103]\n\thelo=[192.168.125.173])\n\tby isp.cloudient.net with esmtpsa (TLS1.3) tls\n\tTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)\n\t(envelope-from <sjm@opendigital.cc>) id 1w5KaY-00E6aA-02\n\tfor libcamera-devel@lists.libcamera.org;\n\tWed, 25 Mar 2026 09:31:50 +0000"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=opendigital.cc header.i=@opendigital.cc\n\theader.b=\"LFc0oXW7\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=opendigital.cc; s=mail;\n\th=Content-Transfer-Encoding:Content-Type:From:\n\tSubject:To:MIME-Version:Date:Message-ID:Sender:Reply-To:Cc:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:\n\tList-Subscribe:List-Post:List-Owner:List-Archive;\n\tbh=ZuT7pdifTa0BuCKmh+UB9tvTccXKmcllGxhL25WPc5I=;\n\tb=LFc0oXW7U5keq12XkBWjWKsg2h\n\ts/SDYZaUHbED54bDJpxCLcpXLFtqvHq7BWBMcOaXO15685UxPHSMIpS2KIgIH6nvbuU1jeMlK/nXi\n\tY42vZ/DBd3x6/enZQ0leMEVDf/NiObrY/2lmqm3WD0pk9TY8IfMZLtBhe4l+DgSyKbXZeXd1ywr65\n\t/FGNuSY17h/O24IZqVCCd4yq5IFwsRy6R2oQmb1XqWPJHqZpkxYnSw0/mBVGCYaji1zRg1S/LZao/\n\tyxK8NPHcnATvk3zHoReFTwgGvpoe5u9CndIa4MK90zOHuLR6p83Ik0xbr4LDQF0rjTX1PEekiW2Sv\n\tMfzAttyw==;",
        "Message-ID": "<c6a502b4-4193-40a6-8cfa-62a19bfb5011@opendigital.cc>",
        "Date": "Wed, 25 Mar 2026 10:31:45 +0100",
        "MIME-Version": "1.0",
        "User-Agent": "Mozilla Thunderbird",
        "To": "libcamera-devel@lists.libcamera.org",
        "Subject": "[PATCH] ipa: libipa: camera_sensor_helper: Add OV01A10",
        "From": "Stuart J Mackintosh <sjm@opendigital.cc>",
        "Content-Language": "en-GB",
        "Content-Type": "text/plain; charset=UTF-8; format=flowed",
        "Content-Transfer-Encoding": "7bit",
        "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": "From ae84819121c206dd352c5e24942c1170ff7c6819 Mon Sep 17 00:00:00 2001\nFrom: Stuart J Mackintosh <sjm@opendigital.cc>\nDate: Wed, 25 Mar 2026 10:19:05 +0100\nSubject: [PATCH] ipa: libipa: camera_sensor_helper: Add OV01A10\n\nAdd a CameraSensorHelper for the OmniVision OV01A10 image sensor,\nused in Dell XPS 13 and other laptops with the Intel IPU6 camera\nsubsystem.\n\nThe analogue gain model is derived from the V4L2 control range\nreported by the sensor driver. The minimum gain code is 256 with\na step of 1, giving the linear model:\n\n   gain = code / 256\n\nThis corresponds to AnalogueGainLinear{ 1, 0, 0, 256 }, consistent\nwith the pattern used by other OmniVision sensors in this file.\n\nThe black level of 0x40 at 10 bits (4096 scaled to 16 bits) was\nconfirmed by dark frame measurement with the lens covered.\n\nWithout this helper, libcamera's AGC algorithm cannot convert between\ngain codes and real gain values, causing auto-exposure oscillation and\nthe following warning:\n\n   IPASoft: Failed to create camera sensor helper for ov01a10\n\nSigned-off-by: Stuart J Mackintosh <sjm@opendigital.cc>\n---\nNote: Colour calibration (CCM) for this sensor is not yet available.\nA tuning file exists at /usr/share/libcamera/ipa/simple/ov01a10.yaml\nbut contains no calibrated parameters. This is deferred to a follow-up\ncontribution once calibration data is available.\n\n  src/ipa/libipa/camera_sensor_helper.cpp | 12 ++++++++++++\n  1 file changed, 12 insertions(+)",
    "diff": "diff --git a/src/ipa/libipa/camera_sensor_helper.cpp \nb/src/ipa/libipa/camera_sensor_helper.cpp\nindex e3e3e535..72466867 100644\n--- a/src/ipa/libipa/camera_sensor_helper.cpp\n+++ b/src/ipa/libipa/camera_sensor_helper.cpp\n@@ -653,6 +653,18 @@ public:\n  };\n  REGISTER_CAMERA_SENSOR_HELPER(\"imx708\", CameraSensorHelperImx708)\n  +class CameraSensorHelperOv01a10 : public CameraSensorHelper\n+{\n+public:\n+\tCameraSensorHelperOv01a10()\n+\t{\n+\t\t/* From dark frame measurement: 0x40 at 10bits. */\n+\t\tblackLevel_ = 4096;\n+\t\tgain_ = AnalogueGainLinear{ 1, 0, 0, 256 };\n+\t}\n+};\n+REGISTER_CAMERA_SENSOR_HELPER(\"ov01a10\", CameraSensorHelperOv01a10)\n+\n  class CameraSensorHelperOv2685 : public CameraSensorHelper\n  {\n  public:\n-- \n2.47.3\n",
    "prefixes": []
}