Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2216675/?format=api
{ "id": 2216675, "url": "http://patchwork.ozlabs.org/api/patches/2216675/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260327035422.4020455-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": "<20260327035422.4020455-4-den@valinux.co.jp>", "list_archive_url": null, "date": "2026-03-27T03:54:18", "name": "[v12,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": "5c0355a9c908d9f6692dbb9d4ddebb88301d539c", "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/20260327035422.4020455-4-den@valinux.co.jp/mbox/", "series": [ { "id": 497685, "url": "http://patchwork.ozlabs.org/api/series/497685/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=497685", "date": "2026-03-27T03:54:17", "name": "PCI: endpoint: pci-ep-msi: Add embedded doorbell fallback", "version": 12, "mbox": "http://patchwork.ozlabs.org/series/497685/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2216675/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2216675/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-pci+bounces-51247-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=DjNdqFBO;\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-51247-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=\"DjNdqFBO\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.125.142", "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)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhn0331Tcz1yFp\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 14:57:07 +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 77D76303EE8E\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 03:54:37 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 2ADC82DC792;\n\tFri, 27 Mar 2026 03:54:37 +0000 (UTC)", "from TYVP286CU001.outbound.protection.outlook.com\n (mail-japaneastazon11021142.outbound.protection.outlook.com [52.101.125.142])\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 5BAC3374171;\n\tFri, 27 Mar 2026 03:54:35 +0000 (UTC)", "from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)\n by TY7P286MB7090.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:323::16) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar\n 2026 03:54:27 +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.9745.019; Fri, 27 Mar 2026\n 03:54:27 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774583677; cv=fail;\n b=gbgSQwrUnqu5FGbmJiM5O4jPJKyC/mCU0CAkUvd4tijK7uEV8m1/laQM+yTker7u8V7ZTdIRi5V0fYUpMJvrzXm5B8V9XTbjjyJiY/crQ/f9X94t8Zkg8SRNEY30PLqZyDVe4f6XtnvqcazL9wcHTP71HMwqFbBgTyW/djrF7GQ=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=ksvNP3MPZJkVly/GlRHLPfW6pcKw89iq4k+bVQ1MfZImslJW1CzMf18OD59XhBIgzBlgN85iz5mSNhSw47uU1a61DEx1TsoNAqLdehOJAQCb58xvZDWMVDMoSnqAfsFldzEAdSo4MOjBWRpJiAS2yVlojwA9K16nwrHHatKqTxa8DhwjRKQgZecp0kAzjqIlzQFWomiNKqmUaG7RbdfojM2ZQpX4gsrQrV7eQ3WknPJyez3eLJ15ZIsmrHGWFHcKzPzPfHx+n2l/myBb9KEEoOLptV+tF9/bCJS20Z/Iw0nJvQpdkm1pGBFN547yqonFAByWsF81cn4iiPfbWSTbwg==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774583677; c=relaxed/simple;\n\tbh=HYHjYYbJ+LK+MKgfogzUKbUDLxGKBbAfHQmsVYE8uvg=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=d/Yjem4gpOTrAyX3gxeuz32D3AtNblJ1mReM/h8aMseKDfo6Pe6ZC/f5xxUlbfe1D+fyKto6lam+xzgRdROhjKmBqcRjSBL0Ib3MUbFTJ5EGSq8rg05Ak6A2yckd8C8TEew4ru7fmgC2gnai58x4knMQWU5r4NAfS9XyZ5j5zng=", "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=SkG0mQ/dTmFeKTp/KBqXu1p+N2etQdhVWA0Lv2npZuw=;\n b=viVefzWaOLMMT5ZawbXGdNGzuxIUrtRXcbFMRJykR4xLO9F1ek/Sncn9KD59jMBhV/y/2vNJ2frssKwan40fust4qPw3LnxuDyXrC2Uf0fFQJlEpxnp7cFjwSNhT1gduSZXQhhtTOfXwhLjAu0EDL41g3EMeTdaO1sS85K4uiqbgSbxZ/8CwEZ3aWFJoV0Bt01/bEH65ajbUMY1lJGqu3vkMcyFyx2tliZ1LpyLpjY+cPpAPL0RtxorXSObrvXlkiM3sWfUw/Bie0fGBPs7da5Anb6BWzzGrjV3NXE18bJ2YVuj3iT1sNA6fmLvc7lVZiYbmNHpMe3D185nobSs4NA==" ], "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=DjNdqFBO; arc=fail smtp.client-ip=52.101.125.142", "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=SkG0mQ/dTmFeKTp/KBqXu1p+N2etQdhVWA0Lv2npZuw=;\n b=DjNdqFBOkNY527Vn8x3NsNZPbQ6JgmGh36aUmBFDNYcQ2viyR5DgKPNY22718VuIKcUttA1aau7CWUkYMZl0B686k8e77qB5dep1/fivuyVDB0z0hONom/yL48/1wzOdWTXWPts/d/7T/Up8B9yJxOj3MQfMI2rP4042h1/6fjs=", "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 v12 3/7] PCI: dwc: ep: Expose integrated eDMA resources via\n EPC aux-resource API", "Date": "Fri, 27 Mar 2026 12:54:18 +0900", "Message-ID": "<20260327035422.4020455-4-den@valinux.co.jp>", "X-Mailer": "git-send-email 2.51.0", "In-Reply-To": "<20260327035422.4020455-1-den@valinux.co.jp>", "References": "<20260327035422.4020455-1-den@valinux.co.jp>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "TY4P301CA0006.JPNP301.PROD.OUTLOOK.COM\n (2603:1096:405:26f::10) 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_|TY7P286MB7090:EE_", "X-MS-Office365-Filtering-Correlation-Id": "a3000e34-5967-40f5-ce62-08de8bb48b00", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|366016|1800799024|10070799003|376014|7416014|921020|18002099003|22082099003|56012099003;", "X-Microsoft-Antispam-Message-Info": "\n\tSaj1NrS/5QNZURB42KsN3DS/YDpaoMPmrw2K9NRBKhLtARLsMyRCX2z/aQpQRO+Ia1gVYX1qdVfl6MeIMQ8a1hTWz89w2tmQmLV9xgm6pyvJzNG7OAMTJOlOdW+5+IgMamZUhls2ZkqSsCOjXoyrQzp1m9bzBLxSgJp79vCmvA+tI2pGgNRmIjzj/zK8i/fsPvLkkKwJGf2Q4EFeO0OYAYaAl0/9uHY7pzuDBrrz1CH3xFaVyVep/eyNIs9Xt3V/HYRhJe53FG3QZOBvVZCJ9R+PJt6DpkMaOm+a20JVMAwRHOB6JLKaTquom5ESP3q5gEdVAH2zFBaS7BfRdaaCFWjoWrtTYOzG0oyJKTzKdJJaBWzughYDtRLnMrtxt+XjUXG6qB09dKhe7AU7STmYSmoHIo1REpQbFLlZYu7YznfjtgdHIlzLYule/1I+W9FnUMei9meYnroMfAb7G3gD3YINJGnhKCMjoT7LKbaRfHe+4bgwT94mWfMAWaIZzoc9qgg13SbJSpYOuXQZ8rkQbvvXP2w88nm6yTZr15u+eTDoGbQZEa8u0Q6mVkMcqp6wufWruSVKYTxBtfGJEYV4lH1TMtUr59jc0gXD140MnC1SoA0cQ1GyvrG1/FNUYnlFvZpArMnCMUyOPYp5r6k+bb4NjV9NN9EmXP9qh5RxeykcBUgH54Sw1E+OFqmZ3ROi3ROX8daJDu8tXfS6/nv7GOGGZ5o3zx9Q88aaFhpDbLOz6O3iXTjnnCmodtWLLFoPK4eh/yLi0KySOVMWTv2mVg==", "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)(1800799024)(10070799003)(376014)(7416014)(921020)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n 7eh8JO3V/kY55RnaYjvnaNiKLQ03Ry1+eVKenDZX0FfWMCoaS9zzq32Mg1LZlHUYsdxQiVRgI4IBDp0mLZ17RKEp1XoDOJ+yEMlN0UfeFXe5Ak61lJpqsoG6nYa5hJgqLpG5uIX4Ah6o7LQTJ3ZfTtV22ybfnxZYRGRNmCTXBUspUxytLCfBCrcERAorUMZEnEQ1v/RvQL10+wPqs2MMgT7h19YBMBOgA9A0/wpI4vMJE/vlNe7m5s68uwBCEaR4/mTvo1K+i7eeCoCJHjzirIHXB2wNm1T9RjMDLIymKVtbDK7dn0u4NG5RRy0U8GMVr5qeydeC7oFZvDWU8KZHekD00f+uRr/FjNpJRM+kV2ygwg8217BH+Oh9YwNYjqQVIGgZctXFnGE9Jr2T+spW7JfEA8nEY/r11JnSOP+sGOZ8j9h9QaeTHAL4DuuWTFymlIXbGswe7hoOVvgig644m8N4893cc/DzymDLo+l04zd2uvq4CZY4+9qaxbdoH+rBj9QZBugdHRD/uPgwlg8IjPICQ0mVTUZWRxbWnNvzabXCwQNitgg+ViouHQh+t6WxJC3WR9cGQsLAyp2q3ffF2pGLCUFR+v9OCZV1KSBR0Vmv2J2lWnA51+53qkFr1QwCjZeaO1rDAFcuWmhe7/KuyBzjDuBKKJ3JZnOKaSXtytjQjcBe1JaXHqPBe+aAsKxXfUV6qIXyDeWTtJHRD6ZMVOWUjO76IT8/l7IKQCP27pJeWEcCLBowmGeF7jUGdbCeQ3oCjwXQMgA6Gs5W7LzYshpoyyUXsRX26fmORohWgT9pTisAqlfuQL4K/CPnQDEgfVj80076UF2wRbJKDdDMpP1Sf4ZamPsqiFGLOMAc4402w9Nfg7O1SrmzlavxKA5DtwArV36gPj37oib+59H+0ZCDqw8ypjIE/cz/NOm9iDrsndNndEykiLGOEaVvosWVFQha0m9dEVD5T+0xIXPn74S6LdX3ljVkSrHkZ1M/YBwR81ApsVTlcxo5BqNJXvqI6axxT5hbsSruDfPS4rjXPLCzH3RkuM6SpQjmb6DdYcVDqToz8GoeR+ZOW8wo72Y/X4gd0EqC1I4bb1zIEbIWQOjZ67zHR6C1nvbcLUBaQo3VQPMCu+OkNLUgZKu6Dx6f/LyqX2C2KL3B7W97sckymcLCX6xk5rBmVnR91q5Q1svLdF445VAbhEyWipDRM6uPVHnYlPdwZHWsnLTDFxtA4Z7+tPNhau9GD6Nb6m/lC/D/iDxomYNja5wYel1gC+ADPYIT47wLQDU4f9lvkm/hjUA0DTzhEVO707EgRpRfqdbP/fUJr44bMg/szLESoJaosbqM7ZCW4i2Hd1NRUWGW/e91ZgiUJbV+WOpTs3fFf1jiuYKqKQaQFFCWFpWj0MIKzLp4PxeMtj8+Nct0OK9B3aBh+31LEijGZUJc6DaqiOwXms1ZdPaDAL1QbrIwcCYzSlHDPhyjYn1UDL2RghtAAj0Ra9TQhI403Ix81CnufnySb3+sNeUXqmrsfYaLn0PPSlVvF92RWnRPuTsb8OYq2z+Rvf5C0daP6aga2H/jvboFWQFVQ7grc/PexrkhANehljGhYZReIsxzKe/cHT4m4+rzzzguXdAFsxQXH50MS2kefbxSNiKzv6vQjOFeNmXecJUcnEJC+FzOMUnBvi+cCO+D1ZZ9nkLnIe4YGaILLnvlE8JfcQ7O5ksIxvblyKUjuAy5yrC44RY7LFSyQ1DGNKckunlRghBECxHHvKTJgSQUV9h7SJVki50GT8YcsKiT", "X-OriginatorOrg": "valinux.co.jp", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n a3000e34-5967-40f5-ce62-08de8bb48b00", "X-MS-Exchange-CrossTenant-AuthSource": "TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Mar 2026 03:54:27.6200\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 Ir1gaNaULyqb3ki4pUgHzWpnkULIqUdkLqUgJqs2ze4Zn4zV+5sD77hsngUJ4s4RgY311zOT+Qq3gx1XogHz9Q==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "TY7P286MB7090" }, "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 v12:\n - Implement the new callback .count_aux_resources().\n dw_pcie_ep_get_aux_resources() is refined.\n\n .../pci/controller/dwc/pcie-designware-ep.c | 123 ++++++++++++++++++\n 1 file changed, 123 insertions(+)", "diff": "diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c\nindex 386bfb7b2bf6..b92bc37404c5 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,126 @@ 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_count_aux_resources(struct pci_epc *epc, u8 func_no, u8 vfunc_no,\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+\tstruct dw_edma_chip *edma = &pci->edma;\n+\n+\t*num_resources = 0;\n+\n+\tif (!pci->edma_reg_size)\n+\t\treturn 0;\n+\n+\tif (edma->db_offset == ~0)\n+\t\treturn 0;\n+\n+\t*num_resources = 1;\n+\treturn 0;\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+\tint ret;\n+\n+\tret = dw_pcie_ep_count_aux_resources(epc, func_no, vfunc_no, &count);\n+\tif (ret)\n+\t\treturn ret;\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 +953,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.count_aux_resources\t= dw_pcie_ep_count_aux_resources,\n+\t.get_aux_resources\t= dw_pcie_ep_get_aux_resources,\n };\n \n /**\n", "prefixes": [ "v12", "3/7" ] }