Show a patch.

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

{
    "id": 26766,
    "url": "https://patchwork.libcamera.org/api/patches/26766/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/26766/",
    "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": "<ae369612-0d35-47b9-8796-d3670bfd9086@gmx.de>",
    "date": "2026-05-17T10:38:52",
    "name": "Raspberry Pi 5 Support",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "2cccc394378c0f1d58ed2aecd23db475bbed473c",
    "submitter": {
        "id": 111,
        "url": "https://patchwork.libcamera.org/api/people/111/?format=api",
        "name": "Christian Rauch",
        "email": "Rauch.Christian@gmx.de"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/26766/mbox/",
    "series": [
        {
            "id": 5951,
            "url": "https://patchwork.libcamera.org/api/series/5951/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5951",
            "date": "2026-05-17T10:38:52",
            "name": "Raspberry Pi 5 Support",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5951/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/26766/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/26766/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 53986BDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 17 May 2026 10:38:56 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5651662FEA;\n\tSun, 17 May 2026 12:38:55 +0200 (CEST)",
            "from mout.gmx.net (mout.gmx.net [212.227.15.19])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8C6F062010\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 17 May 2026 12:38:53 +0200 (CEST)",
            "from client.hidden.invalid by mail.gmx.net (mrgmx004\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id 1MQ5rO-1wkc163mF6-00IoZ3\n\tfor\n\t<libcamera-devel@lists.libcamera.org>; Sun, 17 May 2026 12:38:52 +0200"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmx.de header.i=rauch.christian@gmx.de\n\theader.b=\"QWESXrxZ\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de;\n\ts=s31663417; t=1779014333; x=1779619133; i=rauch.christian@gmx.de;\n\tbh=1ZinTgtdfv/Xxhsh6wj5v4dKMzHM2VAGONQBGp5slE4=;\n\th=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:To:\n\tFrom:Subject:cc:content-transfer-encoding:content-type:date:from:\n\tmessage-id:mime-version:reply-to:subject:to;\n\tb=QWESXrxZbBkNfrw5EJME86blWO0frUoka+nHsOX5pn0tlpjQGq1aeSyNeRA4bKVw\n\tzjOb24JoFlaAcpRvpPvLbQh35NxGvn74guTVxvWX719rDQ8XKkKY1Bi9JyJYXTXE9\n\tvXBLXL8bY6RGxes06G2bXcuYopP5q2WZiP6Li2Bcxz4G6QpDBNo2+nb2lD1Psuwz6\n\t9epoG6TVRYUhMb84weceoy9MbsM8QBqc7YfMsdCF6m/5VxNjqEEnynOWEqkkiq5bA\n\tU6y1m9zRAASwnzkUew04bOhy2blIFmL8ijp09he/0xGsIh22Ejd9if5UaGGy2YLom\n\tqOs3XLG5L21YA0h42g==",
        "X-UI-Sender-Class": "724b4f7f-cbec-4199-ad4e-598c01a50d3a",
        "Content-Type": "multipart/mixed;\n\tboundary=\"------------qLjylNzLH46rk94FLrR01W3z\"",
        "Message-ID": "<ae369612-0d35-47b9-8796-d3670bfd9086@gmx.de>",
        "Date": "Sun, 17 May 2026 12:38:52 +0200",
        "MIME-Version": "1.0",
        "User-Agent": "Mozilla Thunderbird",
        "To": "libcamera-devel@lists.libcamera.org",
        "Content-Language": "en-US",
        "From": "Christian Rauch <Rauch.Christian@gmx.de>",
        "Subject": "Raspberry Pi 5 Support",
        "X-Provags-ID": "V03:K1:36Z+Rk0f7Vk+avk2A4jl3K6K5JKdA5OHsK9IOodloF1/MxNpivW\n\tnmw5Hfa/lT8H8aO7qLfX/PkV/UZYajvPZiU9GpHWzHCpCI57tJqrht83ShqcWrejurPdDd2\n\tosekhqO2uHtMBoDq0Ju79B+mRLGV6a7/u00svlrLnpnUaK4S+eQVrQS4wigmMVOBb/Qhphq\n\tcF3am4RI2SJGWwLbBVfMw==",
        "X-Spam-Flag": "NO",
        "UI-OutboundReport": "notjunk:1; M01:P0:ZNHyyeSv8Ic=;\n\tLtB+cJrErAuCAJeqoaVKcYsl+aP\n\t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",
        "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": "Dear all,\n\nA while ago (actually nearly a year to this date) I was asking about the \nRaspberry Pi 5 support in upstream libcamera and Naush mentioned that \nRaspberry Pi is using a workaround in the CFE kernel driver to make this \nwork. I assume that Naush was talking about the kernel module \"rp1_cfe\", \nwhich is shipped with the workaround as \"rp1_cfe_downstream\" in \nRaspberry Pi OS.\n\nUbuntu 26.04 with its kernel \"7.0.0-1010-raspi\" ships the \"rp1_cfe\" \nmodule with workaround as \"rp1_cfe_downstream\" too, and also patched \n(patch attached) the upstream libcamera sources with a fix to detect the \ncamera when either of those kernel modules is loaded.\n\nSince the Raspberry Pi 5 support is still not available with upstream \nlibcamera and the \"rp1_cfe\" kernel module, and it seems it is going to \nstay that way for a while, would you accept the attached patch to \nreplicate the behaviour in the Raspberry Pi libcamera fork?\n\nGiven that the \"rp1_cfe\" module does not work with the upstream \n\"rpi/pisp\" pipeline, how do you know that this pipeline handler is \nactually working? Are you carrying custom patches on top of \"rp1_cfe\" to \nmake the upstream \"rpi/pisp\" work? Once the required features are merged \ninto upstream module \"rp1_cfe\", how do you know that the \"rpi/pisp\" \npipeline will still be compatible?\n\nAlternatively, couldn't the patches to the pipeline handler and kernel \nmodules be upstreamed in order to resolve this issue?\n\nBest,\nChristian",
    "diff": "Author: Pragyansh Chaturvedi <r41k0u@ubuntu.com>\nForwarded: not-needed\nBug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libcamera/+bug/2110144\nLast-Update: 2026-02-18\nDescription: Fix PiSP CFE entity match patterns\n libcamera0.5 includes the PiSP drivers for Raspberry Pi. But\n while registering the cameras, it is using different match\n strings for CFE entities than what are present in Raspberry Pi's\n fork of libcamera and the current device-tree overlays. This leads\n to camera sensors not being detected on Raspberry Pi 5, which\n used to work in libcamera0.4.\n .\n This indicates an upcoming change in these device-tree overlays,\n as Raspberry Pi themselves upstreamed these changes to libcamera.\n So this patch allows both the old and current match strings for\n searching for CFE devices. This delta can be removed once our kernel\n catches up and introduces the new strings.\n\n---\n--- a/include/libcamera/internal/device_enumerator.h\n+++ b/include/libcamera/internal/device_enumerator.h\n@@ -28,6 +28,8 @@\n \n \tbool match(const MediaDevice *device) const;\n \n+\tvoid clear();\n+\n private:\n \tstd::string driver_;\n \tstd::vector<std::string> entities_;\n--- a/src/libcamera/device_enumerator.cpp\n+++ b/src/libcamera/device_enumerator.cpp\n@@ -157,6 +157,14 @@\n }\n \n /**\n+ * \\brief Clear the entities search pattern vector\n+ */\n+void DeviceMatch::clear()\n+{\n+\tentities_.clear();\n+}\n+\n+/**\n  * \\class DeviceEnumerator\n  * \\brief Enumerate, store and search media devices\n  *\n--- a/src/libcamera/pipeline/rpi/pisp/pisp.cpp\n+++ b/src/libcamera/pipeline/rpi/pisp/pisp.cpp\n@@ -888,7 +888,17 @@\n \t\tstd::shared_ptr<MediaDevice> cfeDevice = acquireMediaDevice(enumerator, cfe);\n \n \t\tif (!cfeDevice) {\n-\t\t\tLOG(RPI, Debug) << \"Unable to acquire a CFE instance\";\n+\t\t\tLOG(RPI, Debug) << \"Trying old entity search patterns for CFE instance\";\n+\t\t}\n+\n+\t\tcfe.clear();\n+\t\tcfe.add(\"rp1-cfe-fe_image0\");\n+\t\tcfe.add(\"rp1-cfe-fe_stats\");\n+\t\tcfe.add(\"rp1-cfe-fe_config\");\n+\t\tcfeDevice = acquireMediaDevice(enumerator, cfe);\n+\n+\t\tif (!cfeDevice) {\n+\t\t\tLOG(RPI, Debug) << \"Unable to acquire CFE instance\";\n \t\t\tbreak;\n \t\t}\n \n@@ -1073,9 +1083,26 @@\n \tint ret;\n \n \tMediaEntity *cfeImage = cfe->getEntityByName(\"rp1-cfe-fe-image0\");\n+\tif (!cfeImage)\n+\t{\n+\t\tcfeImage = cfe->getEntityByName(\"rp1-cfe-fe_image0\");\n+\t}\n \tMediaEntity *cfeEmbedded = cfe->getEntityByName(\"rp1-cfe-csi2-ch1\");\n+\tif (!cfeEmbedded)\n+\t{\n+\t\tcfeEmbedded = cfe->getEntityByName(\"rp1-cfe-embedded\");\n+\t}\n \tMediaEntity *cfeStats = cfe->getEntityByName(\"rp1-cfe-fe-stats\");\n+\tif (!cfeStats)\n+\t{\n+\t\tcfeStats = cfe->getEntityByName(\"rp1-cfe-fe_stats\");\n+\t}\n \tMediaEntity *cfeConfig = cfe->getEntityByName(\"rp1-cfe-fe-config\");\n+\tif (!cfeConfig)\n+\t{\n+\t\tcfeConfig = cfe->getEntityByName(\"rp1-cfe-fe_config\");\n+\t}\n+\n \tMediaEntity *ispInput = isp->getEntityByName(\"pispbe-input\");\n \tMediaEntity *IpaPrepare = isp->getEntityByName(\"pispbe-config\");\n \tMediaEntity *ispOutput0 = isp->getEntityByName(\"pispbe-output0\");\n@@ -2144,8 +2171,9 @@\n \tint ret = 0;\n \n \tconstexpr unsigned int csiVideoSinkPad = 0;\n-\tconstexpr unsigned int csiVideoSourcePad = 1;\n-\tconstexpr unsigned int csiMetaSourcePad = 2;\n+\tconstexpr unsigned int csiMetaSinkPad = 1;\n+\tconstexpr unsigned int csiVideoSourcePad = 4;\n+\tconstexpr unsigned int csiMetaSourcePad = 5;\n \n \tconstexpr unsigned int feVideoSinkPad = 0;\n \tconstexpr unsigned int feConfigSinkPad = 1;\n@@ -2156,48 +2184,29 @@\n \tconst MediaEntity *csi2 = csi2Subdev_->entity();\n \tconst MediaEntity *fe = feSubdev_->entity();\n \n-\tfor (MediaLink *link : csi2->pads()[csiVideoSourcePad]->links()) {\n-\t\tif (link->sink()->entity()->name() == \"rp1-cfe-csi2-ch0\")\n+\tfor (MediaLink *link : csi2->getPadByIndex(csiVideoSourcePad)->links()) {\n+\t\tif (link->sink()->entity()->name() == \"rp1-cfe-csi2-ch0\" || link->sink()->entity()->name() == \"rp1-cfe-csi2_ch0\")\n \t\t\tlink->setEnabled(false);\n \t\telse if (link->sink()->entity()->name() == \"pisp-fe\")\n \t\t\tlink->setEnabled(true);\n \t}\n \n-\tcsi2->pads()[csiMetaSourcePad]->links()[0]->setEnabled(sensorMetadata_);\n+\tcsi2->getPadByIndex(csiMetaSourcePad)->links()[0]->setEnabled(sensorMetadata_);\n \n-\tfe->pads()[feConfigSinkPad]->links()[0]->setEnabled(true);\n-\tfe->pads()[feVideo0SourcePad]->links()[0]->setEnabled(true);\n-\tfe->pads()[feVideo1SourcePad]->links()[0]->setEnabled(false);\n-\tfe->pads()[feStatsSourcePad]->links()[0]->setEnabled(true);\n-\n-\tconst V4L2Subdevice::Stream imageStream{\n-\t\tcsiVideoSinkPad,\n-\t\tsensor_->imageStream().stream\n-\t};\n-\tconst V4L2Subdevice::Stream embeddedDataStream{\n-\t\tcsiVideoSinkPad,\n-\t\tsensor_->embeddedDataStream().value_or(V4L2Subdevice::Stream{}).stream\n-\t};\n-\n-\tV4L2Subdevice::Routing routing;\n-\trouting.emplace_back(imageStream, V4L2Subdevice::Stream{ csiVideoSourcePad, 0 },\n-\t\t\t     V4L2_SUBDEV_ROUTE_FL_ACTIVE);\n-\n-\tif (sensorMetadata_)\n-\t\trouting.emplace_back(embeddedDataStream,\n-\t\t\t\t     V4L2Subdevice::Stream{ csiMetaSourcePad, 0 },\n-\t\t\t\t     V4L2_SUBDEV_ROUTE_FL_ACTIVE);\n-\n-\tret = csi2Subdev_->setRouting(&routing);\n-\tif (ret)\n-\t\treturn ret;\n+\tfe->getPadByIndex(feConfigSinkPad)->links()[0]->setEnabled(true);\n+\tfe->getPadByIndex(feVideo0SourcePad)->links()[0]->setEnabled(true);\n+\tfe->getPadByIndex(feVideo1SourcePad)->links()[0]->setEnabled(false);\n+\tfe->getPadByIndex(feStatsSourcePad)->links()[0]->setEnabled(true);\n \n-\tret = csi2Subdev_->setFormat(imageStream, &sensorFormat);\n+\tret = csi2Subdev_->setFormat(csiVideoSinkPad, &sensorFormat);\n \tif (ret)\n \t\treturn ret;\n \n \tif (sensorMetadata_) {\n-\t\tret = csi2Subdev_->setFormat(embeddedDataStream, &embeddedFormat);\n+\t\tret = csi2Subdev_->setFormat(csiMetaSinkPad, &embeddedFormat);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t\tret = csi2Subdev_->setFormat(csiMetaSourcePad, &embeddedFormat);\n \t\tif (ret)\n \t\t\treturn ret;\n \t}\n",
    "prefixes": []
}