get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2194472,
    "url": "http://patchwork.ozlabs.org/api/patches/2194472/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260209062952.2049053-4-den@valinux.co.jp/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api",
        "name": "Linux PCI development",
        "link_name": "linux-pci",
        "list_id": "linux-pci.vger.kernel.org",
        "list_email": "linux-pci@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260209062952.2049053-4-den@valinux.co.jp>",
    "list_archive_url": null,
    "date": "2026-02-09T06:29:46",
    "name": "[v5,3/8] PCI: endpoint: Add auxiliary resource query API",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "0d754d3326ef22ac3252333580e440041ab8ea3b",
    "submitter": {
        "id": 91573,
        "url": "http://patchwork.ozlabs.org/api/people/91573/?format=api",
        "name": "Koichiro Den",
        "email": "den@valinux.co.jp"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260209062952.2049053-4-den@valinux.co.jp/mbox/",
    "series": [
        {
            "id": 491464,
            "url": "http://patchwork.ozlabs.org/api/series/491464/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=491464",
            "date": "2026-02-09T06:29:44",
            "name": "PCI: endpoint: pci-ep-msi: Add embedded doorbell fallback",
            "version": 5,
            "mbox": "http://patchwork.ozlabs.org/series/491464/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2194472/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2194472/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-46976-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-pci@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.a=rsa-sha256 header.s=selector1 header.b=Mn28/C/M;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-46976-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=\"Mn28/C/M\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.74.104",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=valinux.co.jp",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=valinux.co.jp;"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f8ZZ131n0z1xtV\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 09 Feb 2026 17:30:17 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id AC20A30062EA\n\tfor <incoming@patchwork.ozlabs.org>; Mon,  9 Feb 2026 06:30:06 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 1C06831A05E;\n\tMon,  9 Feb 2026 06:30:04 +0000 (UTC)",
            "from OS0P286CU010.outbound.protection.outlook.com\n (mail-japanwestazon11021104.outbound.protection.outlook.com [40.107.74.104])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id C91E131814A;\n\tMon,  9 Feb 2026 06:30:03 +0000 (UTC)",
            "from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)\n by TYYP286MB4425.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:10b::6) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.17; Mon, 9 Feb\n 2026 06:30:01 +0000",
            "from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM\n ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM\n ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026\n 06:30:01 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1770618604; cv=fail;\n b=XlrWc2tKioCiNmTr8fRnMvfzE5H/wF8i12IodTn/sAuXvNkugOWKA/yeLpl/wlc/0V9VQz/8nK77Lx9GSAwDcJBGwp319fIEfWfNEgRrqxcfURJlFap1q423XfYkuMigUwso/u5WCvywZ3upSJDX2h3Wh+a0ZimGlsZBMN/uLxU=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=e0XpceXpFwGyim0mEAIOpQicyQ7Z14MHiJZ5d9UVK5oP0nVLRa29gnHZZWl2K+lptTL/NZ30O5iGlREHYVdM72WbVw1M8/wvqwVLl8/JWIGTp/itFrWBbCo2C2hHaIjcHA22KmytdHHhZPnxNlYvoUN//5DEUchhPdLB6HYG0/ZQ59PPpcgW7SmivYbJWv1ls20uYJFryf3s6X37RdXOXL9uoGA7F6l9+muqN9lDIU6DCA2dODaymuf1e0/0jCUbXczG4v69jCpOYaRIol9aaQUBxdOEds366r+pL33SPgVKxLjqYT6ac8VE5t5hoUqn0BwESQjl6gR3henM3L8DMQ=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1770618604; c=relaxed/simple;\n\tbh=RuEu5ELvxMj5sc6sxKixNVeRDRkAahwzkDV43tCtMpg=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=jGjccOKBbqHCQcnBfDSnHFajmrHf/7Ul1D5LHaUfRmYnUhKtubTcC0E3hIwQP9ctfR6rnlq+Sh79YzeRcsxm0ahKgZLfrgXoiAkRPbo6J1qU0Sk3oejxePVsKzizhnmo9hm8O+rpE5b1y1091jq+5MQ+pRe35jMk0yNB/FM89gc=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=yMsq/VHFkA0P4T3E98nvet/M9krabS6F1m1j/RtHSWY=;\n b=V6Bc0hmsirlIYdYogReyoX/xjttKoKX/4US6Tt4epo0BBLZnldVkgpZ0425jKAwVGR7Cd535Am/rqbp/cZkxcVeHVBpkbtQjNIFZNYxiFFONwQfAtIqNh0JyOv1nSxwO8JZgU5BpqVr9BFY5SCmy6FUle+UDI4gfQw+ZYv3U3OlX0gqFNAjxgJQ8eR0K0The0DwLerqUqyU9dTTjIT4Y8cYA+wL1T/BTDjcsdBSEKXtToATkVj9ZVkFD1U0Usaym9CbTTaYb9RhHUMS5AD+84WMhma8DpV21cagQTzbh81RjnslcJiS0X1801MFrD0LvLRRmj5CQ+Xq5goqXj8NWgQ=="
        ],
        "ARC-Authentication-Results": [
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp;\n spf=pass smtp.mailfrom=valinux.co.jp;\n dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=Mn28/C/M; arc=fail smtp.client-ip=40.107.74.104",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=valinux.co.jp; dmarc=pass action=none\n header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=yMsq/VHFkA0P4T3E98nvet/M9krabS6F1m1j/RtHSWY=;\n b=Mn28/C/MP5BOxMY6S5BpqWoPmRSoYjGt4ndzogJX1duOGsPzIGolFlrxVm3LqStoFvL5wGXhpJZxDwAk2cLebLR2fH0xCadBmxZixplZJuqTfWjBfdHUqgD67f+F6u0NCTLhJm8lESWUWAVDX/fwQDkJ3FMEianaofXemWNToUE=",
        "From": "Koichiro Den <den@valinux.co.jp>",
        "To": "vkoul@kernel.org,\n\tmani@kernel.org,\n\tFrank.Li@nxp.com,\n\tcassel@kernel.org,\n\tjingoohan1@gmail.com,\n\tlpieralisi@kernel.org,\n\tkwilczynski@kernel.org,\n\trobh@kernel.org,\n\tbhelgaas@google.com,\n\tkishon@kernel.org,\n\tjdmason@kudzu.us,\n\tallenbh@gmail.com",
        "Cc": "dmaengine@vger.kernel.org,\n\tlinux-pci@vger.kernel.org,\n\tntb@lists.linux.dev,\n\tlinux-kselftest@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org",
        "Subject": "[PATCH v5 3/8] PCI: endpoint: Add auxiliary resource query API",
        "Date": "Mon,  9 Feb 2026 15:29:46 +0900",
        "Message-ID": "<20260209062952.2049053-4-den@valinux.co.jp>",
        "X-Mailer": "git-send-email 2.51.0",
        "In-Reply-To": "<20260209062952.2049053-1-den@valinux.co.jp>",
        "References": "<20260209062952.2049053-1-den@valinux.co.jp>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "TY4PR01CA0027.jpnprd01.prod.outlook.com\n (2603:1096:405:2bf::11) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:405:38f::10)",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-pci@vger.kernel.org",
        "List-Id": "<linux-pci.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "TY7P286MB7722:EE_|TYYP286MB4425:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "c8a4d6d0-f5b5-4d4f-d09c-08de67a4a785",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|7416014|376014|366016|1800799024|10070799003|921020;",
        "X-Microsoft-Antispam-Message-Info": "\n MOfXkUbmj4ct9muAEJU0aLwrwdbkK+ZpBh3XpqRq5E/SPw6adyK08s4NA0+qTB9gOqiefZPGk9vtd+yMhNCPNgV350Qhe43tFmNzo9p8SW7PPgnJgtjibPhyKG4kMzRfX3A4i0K3tNRYq8KXKw8L7pV02fwypmX3Q8TAhnyyiLatSzKq8rup/rRGjmotboOUX+sTXd2+1O/GFPXEpSQfiKFG0bl1697FR71/gmFbGI9v9TocpEVc/aHH4gd2bSrKSVZPddq3OuKEeWHVs0Y2xHBUIB1ViqIjUh6V76YxWPNsZCPlgKZigtCGCpzr9SgbkttKSF1lvaST5Ur3mZ0RBh361ujNeOnutpMgHqx1mncSzbXcYxrw/fKynvLq350TfHaelzFZOC2eQdevbtDRteZcRAIbNhancjsnEfCB9tBo9bewtxAsR3zE4cJZZvEVVEma7bTxDMKcdB/WNpfZtxlOimN6Myhcug6S7nKWlzuJYcuOk9TDP5IiURRnhWoLx27BYHjsfoYzDl/Huccp3KRtHeh6wlfGQ3a27wVFNttvDKOtglKVdzPY3vqhi7EmqxQ6avsz2K7UEgD1hSdofN0eRdTnGqGWxDOwSnPffXdFoVpof5IQUZKaMEatyNv+LuyUh8tskdbPx+PQVBUxXsBYFeB5RNNACVDTYLwn9QpXgvaew0lCOA865Po+HrrRbwxTQEuUYq++S+H0hnIzbpiIeKlcVgHWJ/uQjp/dYdDbZbUV76vmlvkKLxPen14fBGiKcG+TlVWvqtL2okpljbatU1TcUeaD+vWQL4eJueFBzIge6RA0hq4S5ku9/8LUoe3UVEkQr25GPra2+UKeKCKyme5sxS6x1EFHNCwUxE3Ua3HAdZq4beHAwC08c1pxnd1l/WDc1xtRUxy12Cm352qgImwNgTnOej9Z9qRgpQgo3hxEikt2FUIpU2K9e8jBbji4TaVNuhyIxhriep2pstaEapTWDqFn/KbeZzs1WhLJDczMpEbEfj2YlheEu9uUkgyKbppVjJEKHkTaiV6DzoCoYyym+d9OnyJLPz3lC7agwNSz/+RRJDZvlOfwI8QXdNFofCeO//8KIkljF2ocJ9aHjbOvitZqVzHD5NO0eioNpVV8zsw+xRm3K42lfozokmd+k/ec311u51l4XrhfAPDZZ3N3s1hTERW7doKmfmEu+iuNNeYgQnjIp+lx+Me41JIeuljl6Q+JOq9YSQOm/r7ovBem06hXjxSpB9BLcyFMu2wAvqNhRoS/G+5mCybB97ghIGKNMAChlifWOca5Yu60AbQQIP43O3as8apYSJgJWF2G+jtyOiqweHgaPtsawNeqPYWk1YLzNrP5KlxJ6k4w3+80Ogty0Q6BtXN8OUuRzAimbU/kaU7FPot/Y2DyqHQM9tvYZpPv2h51RMMsLtWohb23LuoWnSo96Alc3wFwxiWxktIIwVVR140rCqUSFvunDJkBshW2V6skjR79W8QPF+3bV9FxHe0U0XBee7CwOf5VDPeD99oA8OMfmNqg4n0hZl6QRJ+kajLOz+c9M2vgAYjPX63TLOQjGQN1hbKQ18Q28A92Vq69toCqBPJF7Ik/eEXahP0GsidgzK4+Ng==",
        "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(10070799003)(921020);DIR:OUT;SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n fPuE3yj3ZBFra6ZqpqiwwWDBf3MUWbmtYSfvsgTfbjpYFwaDlJafVuFxNI254eCsYVvGPQFBOoSq7Ed6Y4MWkDhGMTVTynR8vfI/0l1Calik/EcWWqrKDvOdeE1XC56vC+lHyB6wI83GAxxWI5KA7qbBIIhqGEz/Fb4mq0BE6x/MWGtlze1m0DSc9FYEIzOPhVJWqVFwtHbbHcEamIIPnBMh2u1JdGs2vg35QLDRK4NVwYzhjq07yytDbSAXT1R2HSZtg/AcTDhzZDXOvhdhFfpTZL7dyDWslhPz2Cd0FntXZUFwfLnxpKsJZQmD9UAdxx/xseSOY8zG3DPtIsB430HmZIqeuoauqNoClnnjjW8EHHnC4992iZydOvdX8BnaslkpZ/fbuw9p3zM92fX8KAqRdjdObV7DRe65Kk/KkSps+cMOZQJch2UDge6hcexYnHdHgBQdPPyY2JFxQv/qfS1Z3M1KJECHWk1RnJqRbntyyyCnTlhw4qcdoh/cFG7aLPYxPczHEKahObvlXoQljLWeLFT6y0H93jtNdrlSB2HK8MHy+c6APFo1LhGQ93k8iBfn4W0UwGb85GnxnAPj9FAfCqmNHcgEO9SMcqIsNrRD22twJUr8+aRTQ+yLo4na/a1vTt7MEInTgmptnPJgsiyvOuYJX49Uiq3gUOBQFfEYs8byYah8oGL9ioTNRqlguba81VLt0izt8CEl2UN/sUxm5YHWIJAu0VAdO/rntVDu2aGEtz7qAGzDC66M4gUn8RA3zVdnHjfOl4VwJz2EEAWe4QtmYoxSr4RPrsuKoGvyWyBEGKyYGMZJjI3d3ZUhc7yES9YXj3kRgMQ7krB/UVQyxDP1e3b33JFvofQMEoiI/IxZjT6A+cM1/5gAyzEA3/Wvd5KOPKPmAEm4pxTyt7vheFkJOOcGOkU0r6e39tg0yj8U0yyg+g62BDrDxwccd8sJg5ibfgddGlkP7P5XANzCkDLoAr0Mu1ISjHVM5Ya/jEgHP8gt/iNlHYalImcNYCWbWkiMsilCGJlNWgAnjwoBuZ+mCGjgN7y7bU6+Z78CgNxhpPDv0g+jueeTmqK231uXG2Wi3thEsiM5kz8+VgX9WpaNBBZXGyhFvG3dIaE24UgjTpfsHxk+kTwudzvBhR4vXq4AfWk7Ze3yRm5aIwe1x+Lu4L+dIWaV8JK5gAfldKyOmoYMKzwqSzAgAkI07NXN7kZsQXLmYoZKx6GklyGdFYfoJedcsZPShma2KC+feQgys4VgzJpH4QNz5kv3a/Qp0bw+cAwSdy9F7OUzrEFoAEB6W3uaAEmEDs9fqvol4MlFpZaz/IRSJevwsjmyFxMyS63N9mIMcpzk927KO+QkYP/pyLjmQUGA4xE+w1qtjVFtqE0Jngjwki6KA/zkAw4/nIoCjvqAw6IynnntU+uWHAGER1xUhRcIppGdvsmHJRGT2f5gcVKB/orp3PEFMZJHk+xfDNpjL91TdugVIkZpy19zK/7eH/q/qRxUt2yqLKdLd/0pk7yWVLxJYHwLku5pqWMWf+rQCH2F/HPt9/k0WkmQy2769V8kFMP8bRRZWz2I5bJsvxxbTNs8eZTq8WpXQtFc7b3QV1rtyypEvEVrjnmweXPS3qCXgBmHN2tB/t7fROmCFnzm0kKGLasnT1vJCtY9kKqEBoOD5Uyihr+zW0KSoIlCkopBPtXpnjXus2m4VsaPGcvBxjAiJsO0pqNSXykD9RpuCINKaAij8TiLuB01u9o2R6R7z/GNldRSQjxpnzMn6cABZGhcIHdA",
        "X-OriginatorOrg": "valinux.co.jp",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n c8a4d6d0-f5b5-4d4f-d09c-08de67a4a785",
        "X-MS-Exchange-CrossTenant-AuthSource": "TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "09 Feb 2026 06:30:01.6548\n (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "7a57bee8-f73d-4c5f-a4f7-d72c91c8c111",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n cHjxY5UMPOZJiPJVITeIfL2GL1L0+U9c/S0qhQ+88hZmuu65fz11aQBUb3AfqKZyn0uJRAChEn0KrOVxk78W2A==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "TYYP286MB4425"
    },
    "content": "Endpoint controller drivers may integrate auxiliary blocks (e.g. DMA\nengines) whose register windows and descriptor memories metadata need to\nbe exposed to a remote peer. Endpoint function drivers need a generic\nway to discover such resources without hard-coding controller-specific\nhelpers.\n\nAdd pci_epc_get_aux_resources() and the corresponding pci_epc_ops\nget_aux_resources() callback. The API returns a list of resources\ndescribed by type, physical address and size, plus type-specific\nmetadata.\n\nPassing resources == NULL (or num_resources == 0) returns the required\nnumber of entries.\n\nSigned-off-by: Koichiro Den <den@valinux.co.jp>\n---\n drivers/pci/endpoint/pci-epc-core.c | 41 +++++++++++++++++++++++++\n include/linux/pci-epc.h             | 46 +++++++++++++++++++++++++++++\n 2 files changed, 87 insertions(+)",
    "diff": "diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c\nindex 068155819c57..01de4bd5047a 100644\n--- a/drivers/pci/endpoint/pci-epc-core.c\n+++ b/drivers/pci/endpoint/pci-epc-core.c\n@@ -155,6 +155,47 @@ const struct pci_epc_features *pci_epc_get_features(struct pci_epc *epc,\n }\n EXPORT_SYMBOL_GPL(pci_epc_get_features);\n \n+/**\n+ * pci_epc_get_aux_resources() - query EPC-provided auxiliary resources\n+ * @epc: EPC device\n+ * @func_no: function number\n+ * @vfunc_no: virtual function number\n+ * @resources: output array (may be NULL to query required count)\n+ * @num_resources: size of @resources array in entries (0 when querying count)\n+ *\n+ * Some EPC backends integrate auxiliary blocks (e.g. DMA engines) whose control\n+ * registers and/or descriptor memories can be exposed to the host by mapping\n+ * them into BAR space. This helper queries the backend for such resources.\n+ *\n+ * Return:\n+ *   * >= 0: number of resources returned (or required, if @resources is NULL)\n+ *   * -EOPNOTSUPP: backend does not support auxiliary resource queries\n+ *   * other -errno on failure\n+ */\n+int pci_epc_get_aux_resources(struct pci_epc *epc, u8 func_no, u8 vfunc_no,\n+\t\t\t      struct pci_epc_aux_resource *resources,\n+\t\t\t      int num_resources)\n+{\n+\tint ret;\n+\n+\tif (!epc || !epc->ops)\n+\t\treturn -EINVAL;\n+\n+\tif (func_no >= epc->max_functions)\n+\t\treturn -EINVAL;\n+\n+\tif (!epc->ops->get_aux_resources)\n+\t\treturn -EOPNOTSUPP;\n+\n+\tmutex_lock(&epc->lock);\n+\tret = epc->ops->get_aux_resources(epc, func_no, vfunc_no, resources,\n+\t\t\t\t\t  num_resources);\n+\tmutex_unlock(&epc->lock);\n+\n+\treturn ret;\n+}\n+EXPORT_SYMBOL_GPL(pci_epc_get_aux_resources);\n+\n /**\n  * pci_epc_stop() - stop the PCI link\n  * @epc: the link of the EPC device that has to be stopped\ndiff --git a/include/linux/pci-epc.h b/include/linux/pci-epc.h\nindex c021c7af175f..5d3e1986b49f 100644\n--- a/include/linux/pci-epc.h\n+++ b/include/linux/pci-epc.h\n@@ -61,6 +61,45 @@ struct pci_epc_map {\n \tvoid __iomem\t*virt_addr;\n };\n \n+/**\n+ * enum pci_epc_aux_resource_type - auxiliary resource type identifiers\n+ * @PCI_EPC_AUX_DMA_CTRL_MMIO: Integrated DMA controller register window (MMIO)\n+ * @PCI_EPC_AUX_DMA_CHAN_DESC: Per-channel DMA descriptor\n+ *\n+ * EPC backends may expose auxiliary blocks (e.g. DMA engines) by mapping their\n+ * register windows and descriptor memories into BAR space. This enum\n+ * identifies the type of each exposable resource.\n+ */\n+enum pci_epc_aux_resource_type {\n+\tPCI_EPC_AUX_DMA_CTRL_MMIO,\n+\tPCI_EPC_AUX_DMA_CHAN_DESC,\n+};\n+\n+/**\n+ * struct pci_epc_aux_resource - a physical auxiliary resource that may be\n+ *                               exposed for peer use\n+ * @type:      resource type, see enum pci_epc_aux_resource_type\n+ * @phys_addr: physical base address of the resource\n+ * @size:      size of the resource in bytes\n+ * @u:         type-specific metadata\n+ *\n+ * For @PCI_EPC_AUX_DMA_CHAN_DESC, @u.dma_chan_desc provides per-channel\n+ * information.\n+ */\n+struct pci_epc_aux_resource {\n+\tenum pci_epc_aux_resource_type type;\n+\tphys_addr_t phys_addr;\n+\tresource_size_t size;\n+\n+\tunion {\n+\t\t/* PCI_EPC_AUX_DMA_CHAN_DESC */\n+\t\tstruct {\n+\t\t\tint irq;\n+\t\t\tresource_size_t db_offset;\n+\t\t} dma_chan_desc;\n+\t} u;\n+};\n+\n /**\n  * struct pci_epc_ops - set of function pointers for performing EPC operations\n  * @write_header: ops to populate configuration space header\n@@ -84,6 +123,7 @@ struct pci_epc_map {\n  * @start: ops to start the PCI link\n  * @stop: ops to stop the PCI link\n  * @get_features: ops to get the features supported by the EPC\n+ * @get_aux_resources: ops to retrieve controller-owned auxiliary resources\n  * @owner: the module owner containing the ops\n  */\n struct pci_epc_ops {\n@@ -115,6 +155,9 @@ struct pci_epc_ops {\n \tvoid\t(*stop)(struct pci_epc *epc);\n \tconst struct pci_epc_features* (*get_features)(struct pci_epc *epc,\n \t\t\t\t\t\t       u8 func_no, u8 vfunc_no);\n+\tint\t(*get_aux_resources)(struct pci_epc *epc, u8 func_no, u8 vfunc_no,\n+\t\t\t\t     struct pci_epc_aux_resource *resources,\n+\t\t\t\t     int num_resources);\n \tstruct module *owner;\n };\n \n@@ -309,6 +352,9 @@ int pci_epc_start(struct pci_epc *epc);\n void pci_epc_stop(struct pci_epc *epc);\n const struct pci_epc_features *pci_epc_get_features(struct pci_epc *epc,\n \t\t\t\t\t\t    u8 func_no, u8 vfunc_no);\n+int pci_epc_get_aux_resources(struct pci_epc *epc, u8 func_no, u8 vfunc_no,\n+\t\t\t      struct pci_epc_aux_resource *resources,\n+\t\t\t      int num_resources);\n enum pci_barno\n pci_epc_get_first_free_bar(const struct pci_epc_features *epc_features);\n enum pci_barno pci_epc_get_next_free_bar(const struct pci_epc_features\n",
    "prefixes": [
        "v5",
        "3/8"
    ]
}