Show a patch.

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

{
    "id": 24498,
    "url": "https://patchwork.libcamera.org/api/patches/24498/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/24498/",
    "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": "<20250930122726.1837524-2-stefan.klug@ideasonboard.com>",
    "date": "2025-09-30T12:26:22",
    "name": "[v1,01/33] libcamera: rkisp1: Only connect delayed controls at start/stop",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "85d34f8fc37b5b4be8f4cbcdc9bdaff3cfcb97e4",
    "submitter": {
        "id": 184,
        "url": "https://patchwork.libcamera.org/api/people/184/?format=api",
        "name": "Stefan Klug",
        "email": "stefan.klug@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/24498/mbox/",
    "series": [
        {
            "id": 5468,
            "url": "https://patchwork.libcamera.org/api/series/5468/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5468",
            "date": "2025-09-30T12:26:21",
            "name": "Full dewarper support on imx8mp",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5468/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/24498/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/24498/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 0681CC324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 30 Sep 2025 12:32:08 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B26296B5F3;\n\tTue, 30 Sep 2025 14:32:06 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A73BA6936E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 30 Sep 2025 14:32:04 +0200 (CEST)",
            "from ideasonboard.com (unknown [94.31.94.171])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 61B06220;\n\tTue, 30 Sep 2025 14:30:36 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"oD87gvvk\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1759235436;\n\tbh=BtyttId+RSHnpn6/RIQh9Tpcn88MdDojifzZ4WPkTLo=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=oD87gvvkVSfDExpjOp6+64NaB8u6D/EDnMTlf4p+zcvOfX/uU34IBo6cqb9dbXxPf\n\tzMdfDjjXxg01f73ItxYajvG7KGaVqZFWVvoC0FeEoPf8SEmJQYCl/StiRuz/zta4nr\n\tberJ5ULn2VZCoIP1BGr1j5FhtaLiy4l2S3gqdjsk=",
        "From": "Stefan Klug <stefan.klug@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Stefan Klug <stefan.klug@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>",
        "Subject": "[PATCH v1 01/33] libcamera: rkisp1: Only connect delayed controls at\n\tstart/stop",
        "Date": "Tue, 30 Sep 2025 14:26:22 +0200",
        "Message-ID": "<20250930122726.1837524-2-stefan.klug@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.48.1",
        "In-Reply-To": "<20250930122726.1837524-1-stefan.klug@ideasonboard.com>",
        "References": "<20250930122726.1837524-1-stefan.klug@ideasonboard.com>",
        "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": "From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nThe RKISP1 path may potentially have multiple cameras connected through\ncomplex pipelines such as video multiplexors or multiple FPGA paths.\n\nThe RKISP1 pipeline handler notifies DelayedControls that a new frame is\ncommencing by using the frameStart event on the ISP and using that to\nsignal to DelayedControls that it is time to process the controls for\nthe next frame.\n\nWhen more than one camera is connected to an ISP it is important not to\nsignal events to an inactive Camera.\n\nMove the frameStart signal connection from CreateCamera() to start() and\nintroduce a corresponding disconnect at stop().\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 9 +++++++--\n 1 file changed, 7 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex ecd13831539f..605a0724615d 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n@@ -1097,6 +1097,11 @@ int PipelineHandlerRkISP1::start(Camera *camera, [[maybe_unused]] const ControlL\n \tutils::ScopeExitActions actions;\n \tint ret;\n \n+\tisp_->frameStart.connect(data->delayedCtrls_.get(),\n+\t\t\t\t &DelayedControls::applyControls);\n+\n+\tactions += [&]() { isp_->frameStart.disconnect(data->delayedCtrls_.get()); };\n+\n \t/* Allocate buffers for internal pipeline usage. */\n \tret = allocateBuffers(camera);\n \tif (ret)\n@@ -1168,6 +1173,8 @@ void PipelineHandlerRkISP1::stopDevice(Camera *camera)\n \n \tisp_->setFrameStartEnabled(false);\n \n+\tisp_->frameStart.disconnect(data->delayedCtrls_.get());\n+\n \tdata->ipa_->stop();\n \n \tif (hasSelfPath_)\n@@ -1354,8 +1361,6 @@ int PipelineHandlerRkISP1::createCamera(MediaEntity *sensor)\n \tdata->delayedCtrls_ =\n \t\tstd::make_unique<DelayedControls>(data->sensor_->device(),\n \t\t\t\t\t\t  params);\n-\tisp_->frameStart.connect(data->delayedCtrls_.get(),\n-\t\t\t\t &DelayedControls::applyControls);\n \n \tuint32_t supportedBlocks = kDefaultExtParamsBlocks;\n \n",
    "prefixes": [
        "v1",
        "01/33"
    ]
}