get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2196634,
    "url": "http://patchwork.ozlabs.org/api/patches/2196634/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260215163847.3522572-6-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": "<20260215163847.3522572-6-den@valinux.co.jp>",
    "list_archive_url": null,
    "date": "2026-02-15T16:38:43",
    "name": "[v7,5/9] PCI: dwc: ep: Expose integrated eDMA resources via EPC aux-resource API",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "32930132c32da30c59a6d80ff436449ad968cc3a",
    "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/20260215163847.3522572-6-den@valinux.co.jp/mbox/",
    "series": [
        {
            "id": 492228,
            "url": "http://patchwork.ozlabs.org/api/series/492228/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=492228",
            "date": "2026-02-15T16:38:38",
            "name": "PCI: endpoint: pci-ep-msi: Add embedded doorbell fallback",
            "version": 7,
            "mbox": "http://patchwork.ozlabs.org/series/492228/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2196634/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2196634/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-47316-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=T/ovfZFL;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-pci+bounces-47316-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=\"T/ovfZFL\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.229.101",
            "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 sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::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 4fDWpP1gD2z1xpl\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 03:39:41 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 42157300BBB9\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 15 Feb 2026 16:39:28 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 183812F3632;\n\tSun, 15 Feb 2026 16:39:13 +0000 (UTC)",
            "from TY3P286CU002.outbound.protection.outlook.com\n (mail-japaneastazon11020101.outbound.protection.outlook.com [52.101.229.101])\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 7FE4E2F39B1;\n\tSun, 15 Feb 2026 16:39:11 +0000 (UTC)",
            "from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)\n by OSCP286MB5196.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:34b::5) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Sun, 15 Feb\n 2026 16:39:06 +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.9611.013; Sun, 15 Feb 2026\n 16:39:06 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771173553; cv=fail;\n b=GAA2zF7HQTuIT+H/E2qvsfbh2KK78wXPTS0591rrxWcbsnbBXY+l5hKM+2zV9XCAhOSLloX1NcRnwslwRxpY1GEemP2EmC56R+rn6mssl8NT/WZ4MsGHNoTgVYXTYcj2ufe/4HIehHQOBDKuWAQR6aDLuuYsasYDbKcQ0fpX6Q0=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=o0fo+LE4J5rAaeuBIrFm2nKcQNBVQQk26HS9u/uiIH8PQrqyP8U8guaUuiZNK45t6o9h/SMeT4KEDoAFa+mfEU6teG/tb0a+1KPlzvjbJ/se0eg4Wyrd16mtccbnB1E/IU5fH6nvda6Nf1A1SAHf4jYqqw5wnvywBDx/79BL+HIdnwxpwnF7WmtHb3/yGpQhZXJVcXvrCGdysW4gI/Hpl23xckIfmcsuE88+ozjNWc1oShSTtq5t1EBw+oj01nNpSMc5gGUVGnQnF1f7xQdfC5QhM9CYzkFc3tSkM5aLrLxg7sPTN0SYV/1EQwLT8tqOcn1qyWFyH+59PqMepcnsYg=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771173553; c=relaxed/simple;\n\tbh=gJQ0sRkZ6vUfxS1wtuwVRj2R6mIIEZwYvg07Yt9XMqg=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=ooZ/w66auAooDT8sNEDteOrv4T6Wjk/Ymah3bpbt9BUIcGHcf+3foh2u52U2ybnJtGFnM81ZVEZEz1GyYlCPelw5ROPtMVzPLKh5KqCbbJTSE8BCm8CKTm9GFekb2aZyh5+4cOcoohYiOx53T5k8IBGa/YZ52CKpCb9YAUCdrSc=",
            "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=5WxmsAc17oVlQJKPf6xRLziiFoTNMAWHD1uw1KDj7SQ=;\n b=cDEhcUmqa01LBU/QobuYIXBk5WJWK5qfqXhdExdL9uSH4P2Oro5h+xZ56dwAAqhGAQhvRqEFuwLVjfY+gi5IOEhwfS8jPgF90mnT3CJ4mJFdlXTZtzxHCbh0XDH+NcknIYL2u92aFoOm4RMGXp7wMaJGl1Db72Nl6djk4VVBMdm+GRWYmuPKSrapzKJaaeCPMWs909qYuMcc0Zc3m3q/nFqVhIllYwLQrpNKMHXc4FpIMehh+uSZJdBfxSfZj5M+DQObDir3gdZ5UMPiPDHSTcAJ3Fy6hXEvFAe0eOK/8XMhoin3JY7SigV4TLPGIvNShWss1VAAPEw5N1xUOQ2Gxw=="
        ],
        "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=T/ovfZFL; arc=fail smtp.client-ip=52.101.229.101",
            "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=5WxmsAc17oVlQJKPf6xRLziiFoTNMAWHD1uw1KDj7SQ=;\n b=T/ovfZFLKInya35oQ1EHhuQ0C36oz+zO59d4hS5yY0Pal/wW7WNxa0M4xPuzS+Jso0Lx6smtrqJYoy8EG62xHvoUeVZcvKZSXh/iIfLI10qcuA1DtfEBQ7bukOFIzv/FPr4ICUWI2k1X+pZznYvlKNdHEZJ4PJshMqO3cHstrWc=",
        "From": "Koichiro Den <den@valinux.co.jp>",
        "To": "jingoohan1@gmail.com,\n\tmani@kernel.org,\n\tlpieralisi@kernel.org,\n\tkwilczynski@kernel.org,\n\trobh@kernel.org,\n\tbhelgaas@google.com,\n\theiko@sntech.de,\n\tkishon@kernel.org,\n\tjdmason@kudzu.us,\n\tdave.jiang@intel.com,\n\tallenbh@gmail.com,\n\tcassel@kernel.org,\n\tshawn.lin@rock-chips.com,\n\tFrank.Li@nxp.com",
        "Cc": "linux-pci@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-rockchip@lists.infradead.org,\n\tntb@lists.linux.dev",
        "Subject": "[PATCH v7 5/9] PCI: dwc: ep: Expose integrated eDMA resources via EPC\n aux-resource API",
        "Date": "Mon, 16 Feb 2026 01:38:43 +0900",
        "Message-ID": "<20260215163847.3522572-6-den@valinux.co.jp>",
        "X-Mailer": "git-send-email 2.51.0",
        "In-Reply-To": "<20260215163847.3522572-1-den@valinux.co.jp>",
        "References": "<20260215163847.3522572-1-den@valinux.co.jp>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "TYWP286CA0024.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:262::9) 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_|OSCP286MB5196:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "44f625b9-310a-4e39-a19e-08de6cb0bc1c",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|921020;",
        "X-Microsoft-Antispam-Message-Info": "\n ZnOPGDaRDAqvOz0zLE0aIJWAViWCeMzWhHIboOaGqHL63MGwaYi70XAmQUJsu/ciDgPx5BCUmLPIYFPTnCOLbtjIJqF3iHXGFLse7BrrSKrh/VAqvA3WbHKfSdlWmm8OAK0iaDzfv/q6PpvUjtYIxHAE74cl7/oZMLdQzv+mm8KwfgHfUA4uAt1nJy8QheUk9GKlYIlvNbDvytgLa9rsxOtfAWhbnv4JiJCtOTZs0HMHxvpZ+rhHGjNCe1mhClCKYk/ZRzgn2wdmdU1yM4pvllSbsH4BxIc3P55sqvtEw4UB0XmxHqPoYhaSJ03YRWaK9oTlpfagg+IpWej7ysvO+lYx0WuevLp7UbKj6X5RN5/zEniLl3KwyVdx1l7gJUVSSWI6n6+ARl2eyTujvE/wpZEQ5F/IKbk5Chx6xCPnC0n8O/LAGgITI9Xs3x4t5lEo7M4OdKxNsqLFhI/5MxnahcWL9CsJVc8PUYuycFmTr415AG/20avjTu35Fwwv7HAXq0obmnPzCqtvg9IvfUtxwU+cgRWr4L9tfWIqx9RebFp1W8i7JzAeiiTXC53JWvy96FgDz3i3T65Ow+rRKVh8CjpJXT9IhqB3UQSxgAh5JX2yy4i42Od9SoZ+wTrRTO4R58uwHGgjvqokAi8an7Axgd+2zDZv94C+ZtKuiTplMPfWeq6t8rn0KJGgsPyajl6jc8VP6kSPm1rYEbsc9OEHgTPSQlSS0hCMVuQBL5gQiAIpgMwdQ2iXmF9e3FBLKAHR4WUxtEFoGizxN7s2Dz433L32TgnzwKMI12NpUHcinoRFRHud700ZLrmNrSxCrfvcQTjNM2ZfSGn/q7a4XduYG5duvY6RMSi+t7dqzCF9GIZMzC+PWmHmCcaRcJIqyeYeVaV5bU7sPpli+j+AecsN41dl8qOngQ9oBEHDfZgpxOgEnmNlwbLPDtHO5jfWvrV7o9edewu6SFFvKXzRvWeTdO6kJH/dvUxxxKLl2NvN8/P9S04aE1Ot+fU3pMK7V+mLZ+AA5ZgX6At+lhgRUXhFfC1IbusNEL6yEzwUlUdDLwNmNue0lxaNqnnzSvHmSeApJB+sPZq9BD2Dis6X4pxEpvxdb0xJGFrEXiNH42/8ZilYj84kwlDGOpUnImt8XL9zwZwaI2Ls4kn93qKD4CFDTOsMeAVxs8pBIU/d+gC3gaipkpW4IoAwtlOvm/2Kc7oddEWcGeS4eGpLvVxJRtHsjkv2AoinQsls5f2BPp4K8JxmyyheHSX3gdHw9mOIY8MeqmeEcuGlHKvqmV9nJel4j4DgTevLqWXsOOOa4vScmQDMFAQHit3MvhxOUZ4QfJuSfquYr07s/NHCj6vJaLUrKfHc7GZC0lOylkfwHmYWgIPqhOh3sP7h5jXgXGL54RGIITKyoJUD3oAYiv7hwPyiUcocTpMK/y3SpG2B9jhtwATUQ1kAWR7RcPUm+bxDIFiZOeeAlEOfzEAw+MQtFFX0vAx5QbFpeuOJ1EmUy0FeFnPzQDRuwH9P4hkLBIZFGUZMKoemsWIK23MU9re1fFH5xwo2XB6jV5/GyDBXxxqxEw2AgPNk1v/Bz+zFXrnj+hgkAiupvR8a/3c6XK+uKjQ2aQ==",
        "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)(1800799024)(10070799003)(7416014)(376014)(366016)(921020);DIR:OUT;SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n 3gLYmr366/iPSSw1PG+ptSRFGFoDfsp7upM41nbMNc6NFcQwK9SSfIs4138LRnOkXL6c9PN5HsdDnqviT4CsrBBMnZ8djVpsT5Du6uewQhkQvPDXaDUNb7nTBMNmAgDaWlyBoCn7GwECS1SPqA/2Pjp5rsIrgrOT8Z5FSqeiLAX5RFHVNsryk5GaxRFxTd53lI5tJIgJgAWU2nFKcjV2xIHpBsHn7GcMZt80FWoNvuHNHNPN0RkD8B5sMewClsGqkPzhMeVR5TkNbPEdnCk/j21BMQYLw4nFCkkw1GP/nV9oGFcTo3tsGiiaG0q+Nt56GOxBxt+0x8Sw0BefeMlfsWAbX2ibu8Ehnc1Ke3JB0kYhlj4bkPkZUHoFndNH971T+bWECvrVBfpGym2aV9N09m0Gjn/wuuAwhO5ZSTuTfk+r29RM0yLVZZc9+lwbj8crjwPRmcrMZgAjBHVezGHAhaVSNsDqOKmAzIzLs0xqV/SElmynKJLxnX8sZifzI0EF1K5pAJknHoJuufqAw5IXPkr/PV5+5HJ34LPtD2jaVdfU1Y6Hgh0JGrKRRY1ygX80OGLe4OLzQqtWzDIoDuhvecgADSieqRH7QOd8wY9CursmmFMV8fKcTAKCRVBwmvIv6yV6OSDOLQXou2vIsv066eECoyFLoTre0F0SJNGU33tGCJzysas7I/NLqWmL4Sk1ChIl9Ktqy9kUKUrYYb+QbQe/ocvTl+upWzlGhtOF2DrO5YjsZEVklpUHqHp5fJAsQG+2NqZqXziFWF3maWqzObQH7yyU5+MSKE9Www3oj9xsAZKnFScow71epuXFTtFliwIpVAtOdb/rRVH73Hv+CSRq7ei2eVcK257nccR/tvg+7R7tqjNE7b189qUrQs0xAASiTL4NPNyRpkM+rLXwBSmzrhM3Wq14cFLvy4bA2uRrDQonL+AericRQQfPzK9jykQmKYbmvFVtp6ZC1Yv5mZtqy1UA5mIYOlG5TICgy4CXNXwLmEYKiM7Vo6hAr5IHeuPmmZVW7hmCb9XkgpA6g1aadG5RnAz14suesaTbJoWZPcdmkeYNbVOqdh1yUV6/ZLIIwg89yv3+KoCkoL0OihzVTICjzvscOaBDaLA5ML3OggX9QVSC3OoY2aHkqTRKd+UwNnraXECsbMmhBK4UMcrFaA1xREPDKPVmBRb94UaABIaXMEwmwDSbvodJWAKTp2qyOBkhrbqGu4HI7wcV1W5pv4yNrl6aoiYK9GDb/kttFfrN6lUEcUWmvVY/IL606SQJ6f319b9xrso1/sXFezauWQaqG8deaIY6GdTx+GGtEEg33PbR5kYyqxRRmitUFtLDuzJ8ZOISm+DqHDWvNcWplrVPLGXx0OSiOhHGYotyCeCRDnd6Mobfrcymh1ZpgEW8l4mxdmq70KVDh/aqUI63/x99ASso4MA2e+Ky2QJpZt69UgUUSpJ5U0UihLXDh+NTCN20dDTUT9UUthP57yhhnW0G236QiuSx2EryYrxXTt8j+U5+hW0tSrWuseQqNyfFBNZ5VdJNXqEQbU6bf8xk+p5TXoYjAtte1R/xazw+svCBe5SPph21uwwRtUr2W/xpyV7ERjKtmhz6XmX3l9Dypq7Es3i9390VC7xibdAy/8h4ir9I8AloatbCgwTLRDy/gS3SnTbLbfkpPnXMIA5SolZS386j0xTRiHqvSrBgDguJByemD0vuOzmZiplvbdbd3ZNEWZTmfjzABcEO+pXPKAVZEgFEUNreaTWqHec1kYVoVBPZXCeuoxFZA4X6",
        "X-OriginatorOrg": "valinux.co.jp",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 44f625b9-310a-4e39-a19e-08de6cb0bc1c",
        "X-MS-Exchange-CrossTenant-AuthSource": "TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "15 Feb 2026 16:39:05.9626\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 Oaffq4UOMtUJLjhU/e3RSJYQGWHZoehZ1SwdpYhBmXprFTEK4yDcPT7ZN0eYuxOehx4771NXBRH5WkQKFVgWbg==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "OSCP286MB5196"
    },
    "content": "Implement the EPC aux-resource API for DesignWare endpoint controllers\nwith integrated eDMA.\n\nReport:\n  - DMA controller MMIO window (PCI_EPC_AUX_DMA_CTRL_MMIO)\n  - interrupt-emulation doorbell register (PCI_EPC_AUX_DOORBELL_MMIO),\n    including its Linux IRQ\n  - per-channel LL descriptor regions (PCI_EPC_AUX_DMA_CHAN_DESC)\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---\n .../pci/controller/dwc/pcie-designware-ep.c   | 149 ++++++++++++++++++\n 1 file changed, 149 insertions(+)",
    "diff": "diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c\nindex 7e7844ff0f7e..ffd2797b7b81 100644\n--- a/drivers/pci/controller/dwc/pcie-designware-ep.c\n+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c\n@@ -808,6 +808,154 @@ 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(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+\tint ll_cnt = 0, needed, idx = 0;\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+\tunsigned int i;\n+\n+\tif (!pci->edma_reg_size)\n+\t\treturn 0;\n+\n+\tdma_reg_size = pci->edma_reg_size;\n+\n+\tfor (i = 0; i < edma->ll_wr_cnt; i++)\n+\t\tif (edma->ll_region_wr[i].sz)\n+\t\t\tll_cnt++;\n+\n+\tfor (i = 0; i < edma->ll_rd_cnt; i++)\n+\t\tif (edma->ll_region_rd[i].sz)\n+\t\t\tll_cnt++;\n+\n+\tneeded = 1 + ll_cnt + (db_offset != ~0 ? 1 : 0);\n+\n+\t/* Count query mode */\n+\tif (!resources || !num_resources)\n+\t\treturn needed;\n+\n+\tif (num_resources < needed)\n+\t\treturn -ENOSPC;\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/* DMA register block */\n+\tresources[idx++] = (struct pci_epc_aux_resource) {\n+\t\t.type = PCI_EPC_AUX_DMA_CTRL_MMIO,\n+\t\t.phys_addr = pci->edma_reg_phys,\n+\t\t.size = dma_reg_size,\n+\t\t.bar = dma_ctrl_bar,\n+\t\t.bar_offset = dma_ctrl_bar_offset,\n+\t};\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 (db_offset != ~0) {\n+\t\tif (dma_reg_size < sizeof(u32) ||\n+\t\t    db_offset > dma_reg_size - sizeof(u32))\n+\t\t\treturn -EINVAL;\n+\n+\t\tresources[idx++] = (struct pci_epc_aux_resource) {\n+\t\t\t.type = PCI_EPC_AUX_DOORBELL_MMIO,\n+\t\t\t.phys_addr = pci->edma_reg_phys + db_offset,\n+\t\t\t.size = sizeof(u32),\n+\t\t\t.bar = dma_ctrl_bar,\n+\t\t\t.bar_offset = dma_ctrl_bar != NO_BAR ?\n+\t\t\t\t\tdma_ctrl_bar_offset + db_offset : 0,\n+\t\t\t.u.db_mmio = {\n+\t\t\t\t.irq = edma->db_irq,\n+\t\t\t},\n+\t\t};\n+\t}\n+\n+\t/* One LL region per write channel */\n+\tfor (i = 0; i < edma->ll_wr_cnt; i++) {\n+\t\tif (!edma->ll_region_wr[i].sz)\n+\t\t\tcontinue;\n+\n+\t\tresources[idx++] = (struct pci_epc_aux_resource) {\n+\t\t\t.type = PCI_EPC_AUX_DMA_CHAN_DESC,\n+\t\t\t.phys_addr = edma->ll_region_wr[i].paddr,\n+\t\t\t.size = edma->ll_region_wr[i].sz,\n+\t\t\t.bar = NO_BAR,\n+\t\t\t.bar_offset = 0,\n+\t\t};\n+\t}\n+\n+\t/* One LL region per read channel */\n+\tfor (i = 0; i < edma->ll_rd_cnt; i++) {\n+\t\tif (!edma->ll_region_rd[i].sz)\n+\t\t\tcontinue;\n+\n+\t\tresources[idx++] = (struct pci_epc_aux_resource) {\n+\t\t\t.type = PCI_EPC_AUX_DMA_CHAN_DESC,\n+\t\t\t.phys_addr = edma->ll_region_rd[i].paddr,\n+\t\t\t.size = edma->ll_region_rd[i].sz,\n+\t\t\t.bar = NO_BAR,\n+\t\t\t.bar_offset = 0,\n+\t\t};\n+\t}\n+\n+\treturn idx;\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@@ -823,6 +971,7 @@ 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\t= dw_pcie_ep_get_aux_resources,\n };\n \n /**\n",
    "prefixes": [
        "v7",
        "5/9"
    ]
}