get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2220212,
    "url": "http://patchwork.ozlabs.org/api/patches/2220212/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260406155717.880246-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": "<20260406155717.880246-4-den@valinux.co.jp>",
    "list_archive_url": null,
    "date": "2026-04-06T15:57:13",
    "name": "[v13,3/7] PCI: dwc: ep: Expose integrated eDMA resources via EPC aux-resource API",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "3fe2ad9acb2c236add5abb91ddef1b0ac5a98f5f",
    "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/20260406155717.880246-4-den@valinux.co.jp/mbox/",
    "series": [
        {
            "id": 498879,
            "url": "http://patchwork.ozlabs.org/api/series/498879/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=498879",
            "date": "2026-04-06T15:57:10",
            "name": "PCI: endpoint: pci-ep-msi: Add embedded doorbell fallback",
            "version": 13,
            "mbox": "http://patchwork.ozlabs.org/series/498879/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2220212/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2220212/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-51958-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=MIBRLvia;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-51958-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=\"MIBRLvia\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.229.111",
            "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 sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\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 4fqDXq0bfgz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 01:59:23 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 6D4CA301C882\n\tfor <incoming@patchwork.ozlabs.org>; Mon,  6 Apr 2026 15:57:30 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 2418D3358B8;\n\tMon,  6 Apr 2026 15:57:30 +0000 (UTC)",
            "from TY3P286CU002.outbound.protection.outlook.com\n (mail-japaneastazon11020111.outbound.protection.outlook.com [52.101.229.111])\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 26E9B33688E;\n\tMon,  6 Apr 2026 15:57:28 +0000 (UTC)",
            "from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)\n by TYYP286MB4187.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:10b::5) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Mon, 6 Apr\n 2026 15:57:24 +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.9769.017; Mon, 6 Apr 2026\n 15:57:24 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775491050; cv=fail;\n b=USbNS33/EZzqbETblaEOxljmW/CCoxsH3MrD3onVT9nFB4670r3esiug248evzrXrljxXRrwHDBOdxwHTYPBNQXz9hmXvFB20zITj2jMWSv2wx8EPtzZRq6PHhzGACfFJqGGnkOYSoG2C2kUE/mPzw0qZwqzr/TGx035PVkqvCM=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=cfs9SM+HVDxaO6OtJmKbGD0uNa5Byv1HnR3P9aq2k9FIFxOCPVSRc6Q5OchMo1ckNr8DKf/DNNGkRTedlDfR0fVQSdgGOhgIs5lsEWkq+V0G3sVRvca24Xrv+AWWWGZ5C/Wl05+er0OybKvkWUj0Y/F/tcMHKP1Rxw/MuR6zxZkYdcVlNbbRKKRT0bj5LC+PlrjHoAjlI9F9HX1Mu4vOpwhwTh7zKt+JYOAGn1ziCwFud25lgeN1/hUU7Tv/DOR287A2nEhu5+LmJwj9iKfPxvzyictQ902nQR9Jjdb89mX5QbWXHu4xps0ioz486neWsW3yobpzVluojwmecpYoyA=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775491050; c=relaxed/simple;\n\tbh=ZHfSoTilucSBMKXbC+oDyKYA+h0/PEx9E/CmbMydi6c=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=EmEcaRfrpBHEITdlB57+j9DbUvzZE3LFOMAohkvt79S2ONg4cNPo8O6mnQ+zU3RoTApGdwiQHMWsMsMeJtTxvORFE+dE/Tz8nVcBb2WFpLctqm92uvVuvNkVcGDIjDtpMP8004w9C84owxJ17J708RZYlROINkrkrz8qv9EF1to=",
            "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=m+YcyJrVo9PcebSFe1ize+OnskN6MubzU5t/jCWFzdE=;\n b=uff4wxGY9w0lTiekRGDPhKecKu3s3BFdqX11pxEe+MOk3sApA8+HzjIMM44r+0VXQLkrIF7X5dc3gAwyWNbm0kI/y+xSQQ8WysHdS+M71fnQ8kn3JK4uxLs3c8VYu5inH15Lvk90a4DmKaKF0cdlvvvRB6V9AOUX1XyBzo0sD+vX/MuoV9plvged87MMccQ7Q2al6PaY1Wu6KO/PGt+sJ7oGmz1JnTrxDCeHGrKN/TUuiQyMoXTQ9WXLkUvKFzflVoY/gadWRpriVvzIRUsbYmq8JOCH/G/LVPOX91XQYTUU+nRR4aD4jVJHRINsAhMm7vujFxXNTNoq8qxJBhPprQ=="
        ],
        "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=MIBRLvia; arc=fail smtp.client-ip=52.101.229.111",
            "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=m+YcyJrVo9PcebSFe1ize+OnskN6MubzU5t/jCWFzdE=;\n b=MIBRLviaCd0lSnxkc+aRBsPH/i2WfVN4435m54CQkgl9VlCyktAshl5Cv7OTAOgswnEMmGvhYa/Zeem5RZ6pxScP8fLYrdozyJO1ZRQcNkuxzw/2UfBE/fIj+fd/ulnNKMYNrJffee6rVEhVdL5osh3IyfhgzXI/MLQy7i1TYEA=",
        "From": "Koichiro Den <den@valinux.co.jp>",
        "To": "Jingoo Han <jingoohan1@gmail.com>,\n Manivannan Sadhasivam <mani@kernel.org>,\n Lorenzo Pieralisi <lpieralisi@kernel.org>, =?utf-8?q?Krzysztof_Wilczy=C5=84?=\n\t=?utf-8?q?ski?= <kwilczynski@kernel.org>, Rob Herring <robh@kernel.org>,\n Bjorn Helgaas <bhelgaas@google.com>,\n Kishon Vijay Abraham I <kishon@kernel.org>, Jon Mason <jdmason@kudzu.us>,\n Dave Jiang <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>,\n Niklas Cassel <cassel@kernel.org>, Frank Li <Frank.Li@nxp.com>,\n Bhanu Seshu Kumar Valluri <bhanuseshukumar@gmail.com>,\n Marco Crivellari <marco.crivellari@suse.com>,\n Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>,\n Manikanta Maddireddy <mmaddireddy@nvidia.com>",
        "Cc": "linux-pci@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tntb@lists.linux.dev",
        "Subject": "[PATCH v13 3/7] PCI: dwc: ep: Expose integrated eDMA resources via\n EPC aux-resource API",
        "Date": "Tue,  7 Apr 2026 00:57:13 +0900",
        "Message-ID": "<20260406155717.880246-4-den@valinux.co.jp>",
        "X-Mailer": "git-send-email 2.51.0",
        "In-Reply-To": "<20260406155717.880246-1-den@valinux.co.jp>",
        "References": "<20260406155717.880246-1-den@valinux.co.jp>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "TYCP286CA0043.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:29d::14) 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_|TYYP286MB4187:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "42edc950-ab05-4642-532d-08de93f53191",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|366016|376014|10070799003|1800799024|7416014|56012099003|22082099003|18002099003|921020;",
        "X-Microsoft-Antispam-Message-Info": "\n\tWFvNKLjNWKn3O1Y3JW5lr+5XK0E+5zMpdISBEL4OmlMfe0oyEK3PmJtYEQcJkpvPjcCtceQrJauZDTRtzWLQm7D69alxDgbTUPS03N4vPEnkbQ3SY5EYEP5SeBaKjWIQQ43BFDJSqgX+RChb9MysZVTlS3FQ9aLIexRgMrmuDkMpMteLfPUh4lj31vPvzQxB4j+ltluBnIgn+U3V5Dam+cCfLI8qbrNEigr20zXf4ZaKXa8shJFT/obM121hH5c4RgHSjB8ETLHwY0pn7QzGjHGVXp2dGqUGoh7YCrYZoON6mRfMh8780zGa1e5GO4AnC0lhpkCYbhUU0Oog2U/Nij7M3AwCVjyZe3l5ESYTF0Yi8+uZtzDvFIsuvexvoLZ6FJiGcQ1ofTzWoDHUhDKTKvAsVYxhJXppNY1kDkRaftXu6cVkVYWycpZgXxKa/7jWraZLEtCt5xrLyF+wJFcOzaQMUOzCD4rgA4avoXbjUHD79mwhtOzI5vDzL9uzhzzc28KadabVP6t57YuQL7BcJ8es62VA1mUQkCxHc/VfQzu9JY/1zr6y34e7W2H4cZtR9eRwyZSeiAfPTiAZFqFwxcGfEZt1sz3pDyQpY6CGsr+sv8oZuCco7es1svBIOPx0Y0wPti+y/Kn/Zv3EB2I8armLIiINZZzNWDh3TkMgAodqbSVznvI1NMrG7U5fB5JrBsWzSwiNZd4udIhPyX4lSE1w2rKXg3KM4B0JMFYIQESzcWhQWzBSrjC7Kue7dNc14d/FrTusm5DkZIgfDplyJg==",
        "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)(366016)(376014)(10070799003)(1800799024)(7416014)(56012099003)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n YRlOqULppJUCvw3UdaLqqdDmlBmpivrJ5Y42T8N6ibGK4etxgMbp9SoCgP2mjIPa05URO/LxzbEJZB9UTsB0UusUHh8kcqEznnwG4Olur9tzInmWWvl5TcqsZ+vR/C0oD8CjfK59vD+xOdIBCf0esFUe4ttKLi7DOnF+c6g71je1LpLawCvhc3edeFto2WNWVPlDZcuk3pM36pwXnIDfWWwPMa/zKCi9gk5hTKiD6mC5N3WPwvib7qUbGcA+JcERkGLHyWpKH2URr8cnIAmNc83WYND8cqBO3BiEBQXzcI0jFqFtuKMKfqYoreGnSYoqxABhsJQ+0VhkIki38A9R6SnKF2UNWjm17LU8NHkxrVRuzg1CCBGCcLy/cJnXG8GHsazUeLquafQuP4sMLqvX0I9+GuVnzJFKDIaUGV+0w91VoeRfqaxvBSfKyNzAdNPaBcp9lq5Jy1NuKM8egz36pF+aM26QyNAFPNnaTeO84zIvtNwDAOwQhuMvNKQ2beuKM20YYMSzuLH2idOyKzwFCfwg8s/LC1WnARurDtOdl/SerGw4zreFSDr2XdTBRZpSMVCMNoJeSA+J6e7u62FCAz9yeVQVta5LL5qGENYQFcJ6r/yFhB3vplEN8LbAlveKw36kcB41UCzCPLTo8zS3lshEJIkaNRc3RwFyl0Vet+r7bJIZiSecPSncfKPA0KBBZP2yBogX8cidyFBJipyrWh6lOo7FL0maZu0CAZxz1Md4QOKxFEQ+rRBq0rUbC0mGXikfXNvG/azRj+6Ca43Tybj+jiG16BNAmt89cFU2O+YKV4CndOgVeFik0i6iC+TyQoKWh5JOHbPzHgsYhYRKrNoE1LFlWTjR8C9cH3LCiy4gYTxgdQgJZPVFXJw+qlqAJPXTRPp/PbfeXM26n1V92s9dvhc8FvdiTHYRI+3YGsr+PPAk14OVoqzKzEWptPDViGR+kF6OAgu3+W6Z3CH38azNr54Y9DboTduFVqpSTG5MgCUDNIysRgXx4VQ/VWnIWhYE3K9FQO4Qz0haqj/3Geo4S5WJjEjjFkppLV1Qb5GZ2Yu/uCED5E832rFX2J+QMYOdnj1zXJVEC7/6BgWAK61kk3cc9uwOYWSCgtTgEAXOtbbRWxaR0PEsQCnh7/GLxQWJosaTpKX02FiqLbMZOYvhjFdZeZhCv+NyR/ksOPJRrrnzgQOw3yamerZSil0ubHFJotoj71X1VRp2vGxjkAZbHSK+x9igPQw875ydXFa5YFiajIw89yHDBQzyAgXyOVgNOJGMQlsYe2HtgaK0LxErz51vv1ZJkBgd+sAL+STf06tjIj2cekVKCmfvDd9FL2zxre1/HSVXKjr6Nbdh4bVGlH9RurVzLqGGHRndG3RV9UXxm1yLqSO24DH2xOJ0pYdgx5zLb47S//6QlN3v72BFAbY172QlOcQnARiv7wC41Q1ZDHXfCfYWytg11H1gnM8SHrxfb1h1JB5wJhh6RHOflWmGGTpywQIgsTZujtZ9lLYLnqVCMdFLIBE/p6wOHS3mK5f1z3D9kpurqWsaRyceIIYZHVpqqswGlZABKjDA0d2FWYzAyYvyqlaWMFVIzNPKcIVyElsIJAA+tjp//1JMhJsr5qLEpQ6MLXaopW57sqnBRTG9hfpHtdOLhqk4RrSGr2pWPndG62b33YRH+U2yF+ObhoJQBrXrUPudt2imikYc20rmclBVG+NYygOFu12SCuCwEkJd96dI+gs7YivZdJzyEvoXmStS+GOzOJo7NMKV2R0Hp7quaUCpR1cc",
        "X-OriginatorOrg": "valinux.co.jp",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 42edc950-ab05-4642-532d-08de93f53191",
        "X-MS-Exchange-CrossTenant-AuthSource": "TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "06 Apr 2026 15:57:24.1578\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 kZZiVPYjWWWyQDgxk/JJrqcUorIKp38TkevwgZ1eas6gzLtpOfe46cR/4hHJQUe3NjXH5Qqm0UiOpbYo8XaHXQ==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "TYYP286MB4187"
    },
    "content": "Implement the EPC aux-resource API for DesignWare endpoint controllers\nwith integrated eDMA.\n\nCurrently, only report an interrupt-emulation doorbell register\n(PCI_EPC_AUX_DOORBELL_MMIO), including its Linux IRQ and the write data\nneeded to trigger the interrupt.\n\nIf the DMA controller MMIO window is already exposed via a\nplatform-owned fixed BAR subregion, also provide the BAR number and\noffset so EPF drivers can reuse it without reprogramming the BAR.\n\nSigned-off-by: Koichiro Den <den@valinux.co.jp>\n---\nChanges in v13:\n  - Updated to use the revised direct-count aux-resource API.\n\n .../pci/controller/dwc/pcie-designware-ep.c   | 119 ++++++++++++++++++\n 1 file changed, 119 insertions(+)",
    "diff": "diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c\nindex 386bfb7b2bf6..c3c354265307 100644\n--- a/drivers/pci/controller/dwc/pcie-designware-ep.c\n+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c\n@@ -9,6 +9,7 @@\n #include <linux/align.h>\n #include <linux/bitfield.h>\n #include <linux/of.h>\n+#include <linux/overflow.h>\n #include <linux/platform_device.h>\n \n #include \"pcie-designware.h\"\n@@ -817,6 +818,122 @@ dw_pcie_ep_get_features(struct pci_epc *epc, u8 func_no, u8 vfunc_no)\n \treturn ep->ops->get_features(ep);\n }\n \n+static const struct pci_epc_bar_rsvd_region *\n+dw_pcie_ep_find_bar_rsvd_region(struct dw_pcie_ep *ep,\n+\t\t\t\tenum pci_epc_bar_rsvd_region_type type,\n+\t\t\t\tenum pci_barno *bar,\n+\t\t\t\tresource_size_t *bar_offset)\n+{\n+\tconst struct pci_epc_features *features;\n+\tconst struct pci_epc_bar_desc *bar_desc;\n+\tconst struct pci_epc_bar_rsvd_region *r;\n+\tint i, j;\n+\n+\tif (!ep->ops->get_features)\n+\t\treturn NULL;\n+\n+\tfeatures = ep->ops->get_features(ep);\n+\tif (!features)\n+\t\treturn NULL;\n+\n+\tfor (i = BAR_0; i <= BAR_5; i++) {\n+\t\tbar_desc = &features->bar[i];\n+\n+\t\tif (!bar_desc->nr_rsvd_regions || !bar_desc->rsvd_regions)\n+\t\t\tcontinue;\n+\n+\t\tfor (j = 0; j < bar_desc->nr_rsvd_regions; j++) {\n+\t\t\tr = &bar_desc->rsvd_regions[j];\n+\n+\t\t\tif (r->type != type)\n+\t\t\t\tcontinue;\n+\n+\t\t\tif (bar)\n+\t\t\t\t*bar = i;\n+\t\t\tif (bar_offset)\n+\t\t\t\t*bar_offset = r->offset;\n+\t\t\treturn r;\n+\t\t}\n+\t}\n+\n+\treturn NULL;\n+}\n+\n+static int\n+dw_pcie_ep_get_aux_resources_count(struct pci_epc *epc, u8 func_no,\n+\t\t\t\t   u8 vfunc_no)\n+{\n+\tstruct dw_pcie_ep *ep = epc_get_drvdata(epc);\n+\tstruct dw_pcie *pci = to_dw_pcie_from_ep(ep);\n+\tstruct dw_edma_chip *edma = &pci->edma;\n+\n+\tif (!pci->edma_reg_size)\n+\t\treturn 0;\n+\n+\tif (edma->db_offset == ~0)\n+\t\treturn 0;\n+\n+\treturn 1;\n+}\n+\n+static int\n+dw_pcie_ep_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+\tstruct dw_pcie_ep *ep = epc_get_drvdata(epc);\n+\tstruct dw_pcie *pci = to_dw_pcie_from_ep(ep);\n+\tconst struct pci_epc_bar_rsvd_region *rsvd;\n+\tstruct dw_edma_chip *edma = &pci->edma;\n+\tenum pci_barno dma_ctrl_bar = NO_BAR;\n+\tresource_size_t db_offset = edma->db_offset;\n+\tresource_size_t dma_ctrl_bar_offset = 0;\n+\tresource_size_t dma_reg_size;\n+\tint count;\n+\n+\tcount = dw_pcie_ep_get_aux_resources_count(epc, func_no, vfunc_no);\n+\tif (count < 0)\n+\t\treturn count;\n+\n+\tif (num_resources < count)\n+\t\treturn -ENOSPC;\n+\n+\tif (!count)\n+\t\treturn 0;\n+\n+\tdma_reg_size = pci->edma_reg_size;\n+\n+\trsvd = dw_pcie_ep_find_bar_rsvd_region(ep,\n+\t\t\t\t\t       PCI_EPC_BAR_RSVD_DMA_CTRL_MMIO,\n+\t\t\t\t\t       &dma_ctrl_bar,\n+\t\t\t\t\t       &dma_ctrl_bar_offset);\n+\tif (rsvd && rsvd->size < dma_reg_size)\n+\t\tdma_reg_size = rsvd->size;\n+\n+\t/*\n+\t * For interrupt-emulation doorbells, report a standalone resource\n+\t * instead of bundling it into the DMA controller MMIO resource.\n+\t */\n+\tif (range_end_overflows_t(resource_size_t, db_offset,\n+\t\t\t\t  sizeof(u32), dma_reg_size))\n+\t\treturn -EINVAL;\n+\n+\tresources[0] = (struct pci_epc_aux_resource) {\n+\t\t.type = PCI_EPC_AUX_DOORBELL_MMIO,\n+\t\t.phys_addr = pci->edma_reg_phys + db_offset,\n+\t\t.size = sizeof(u32),\n+\t\t.bar = dma_ctrl_bar,\n+\t\t.bar_offset = dma_ctrl_bar != NO_BAR ?\n+\t\t\t\tdma_ctrl_bar_offset + db_offset : 0,\n+\t\t.u.db_mmio = {\n+\t\t\t.irq = edma->db_irq,\n+\t\t\t.data = 0, /* write 0 to assert */\n+\t\t},\n+\t};\n+\n+\treturn 0;\n+}\n+\n static const struct pci_epc_ops epc_ops = {\n \t.write_header\t\t= dw_pcie_ep_write_header,\n \t.set_bar\t\t= dw_pcie_ep_set_bar,\n@@ -832,6 +949,8 @@ static const struct pci_epc_ops epc_ops = {\n \t.start\t\t\t= dw_pcie_ep_start,\n \t.stop\t\t\t= dw_pcie_ep_stop,\n \t.get_features\t\t= dw_pcie_ep_get_features,\n+\t.get_aux_resources_count\t= dw_pcie_ep_get_aux_resources_count,\n+\t.get_aux_resources\t= dw_pcie_ep_get_aux_resources,\n };\n \n /**\n",
    "prefixes": [
        "v13",
        "3/7"
    ]
}