From patchwork Mon Apr 14 18:30:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050886 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C2834C369A2 for ; Mon, 14 Apr 2025 18:42:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=fBhEmQ+5keqgx7M1lTMSB3Zen5LLbLZOcXbwQxpRbuU=; b=uXT5sf+oXrUVKb52RSaoea9qPJ vOr4q4Xl2bFTGk8gYhYQsQQR/ZMOc4gkyixPRWnxmQmA7Z/rtzBDnNzH+bBobvIKooh7nMdNH5Tc5 iuGqJMoVFMbckWTA2/lpmxCGmvW6vqdcv85h2Aw6z1F59f1BaWeLD58HYKUpmaBLXwEyVETMtkf8o 7iTVD7L7B1n0amQukuM0inculAidxIUc28fNN34Wm179Xd2Jf+G4gyy+2NPjkiVbVF5VrTmIqRObE 9dfZZvIkKUPNrEkLZxIpCRZ1rsX+XNx/aRL0ml1V1xYrrwoNNCsSS4j+b/Zp00f339mvSeApqwyPz WRX6xWmg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Ol1-0000000394E-3bx3; Mon, 14 Apr 2025 18:42:11 +0000 Received: from mail-westeuropeazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c201::1] helo=AM0PR83CU005.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4OaW-000000036jI-3D1m for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:31:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a1pqDlbAGgDAauyXKxbANyntJhrIE7sCzPSJjuHv6jZnUUDn67c7noEJF0UuzdtYLwrcklceOFa0X6aV/T4PdDo23k62S3xhEUBHFc95YjhuySwmBRuCrOjyVJi3Kx2Xk1l7IHDF9YlLK4hXeP4LaG6x6pu+W9ZUc7WZu/TGKV9PmiFW7c+3fQHoM7zE5FEbLRelYeqWjPoN+WQv0qhnMbgQMPtkdUH1Q2vmEtnqrqcOWmt5jESsALWjA7LAcZczF4gfg5hPxSpHhsHBocQt3cYfXU+NRlwhQsiBcM66FPuJrSWaBNUy7WlssTSVjmnu235sw5b6ShnPtLkqaPrWfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=fBhEmQ+5keqgx7M1lTMSB3Zen5LLbLZOcXbwQxpRbuU=; b=iVfzMfgYGGO8CtZaS2WNp0TPiSE+Gma46d3fiGqp0e++U5JRtbtKEY/ho/4K54qbxxGV1F7C9UFdd0/9iUgVcvq3XSRhy7BAGdgJX/N/MMD+2JouZnT0jAQiMcIFqze5qpGpxiO/41mDy/mpJSlrvQ5C+YICW3nDry+t4mguRivvqW+PhVCcARVH2puWKSDxIg4ZGRQC5JjQuid6Xt1Rjm6Ma5AdLXm6bJhOfGANncO1RzLYqfPP3HuqKv6HpAgal53tZ0CqM7mo7WNkqPLP0SC5+9bgGz9xxdoKDRKO1JoemNPsIgAEgOri5TSEdXporiYkkhsPmSgMDsr2JSfzig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fBhEmQ+5keqgx7M1lTMSB3Zen5LLbLZOcXbwQxpRbuU=; b=iaMkLBtVsVHlOvG8bshFKtYpuRNUFJ+kJUJBkMDeYsjoYfEGXJnEOo9yAtXLmVppVp3TU0JOHmPwO8BslpDOKa0SuJ6n5KzWJX3lBUeh+GEiQzqNNu1EkJdN+/az7DMO3QjZ+wcH83TkDacZRi7RqDkjxiYB1nKi48RIHNU5cMCtZ1ianaEkId1/fmhvw7ePeoFx0GLZV4/RcYnqIl78EsQuBkDt5n2qde7FgibAYzfbFm6433DJZTXZAIzDBg2eiZyT7kpj9fEWIRDuEz1lyNsIlMDpKOfukfahwZHZVlMxA63Yu0jRRz5BcOe18e4446AOum/Tr0IHPtCuH61Auw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:31:18 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:31:17 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:30:55 -0400 Subject: [PATCH v18 01/15] platform-msi: Add msi_remove_device_irq_domain() in platform_device_msi_free_irqs_all() Message-Id: <20250414-ep-msi-v18-1-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=1529; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=ThyZOhwaDsp4V1j223U0prTZIbMrn8Rf6YEorwRizOA=; b=b6JzLr6TJS6NDSF7+zA4FSE24DWLtOJKbt3Y3TgD/ueri2IVpzWsSgX1kMdWz12VzLB7cq+Gq aZ/HGbPt7ZaAmY3Pj9O+OYYy2JabMuvbmeubwCSr7FR7xBvvjWuowOR X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: aeaaa865-23b0-4d4a-bda2-08dd7b828bc4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?pYaxjEisBcnM1zy9kPFgM95SuYvo+Pb?= =?utf-8?q?2CAKRnWmodjVUHdZKhf5cmCEuNCuSs3q8OlSLPQSTOakG/7wsb2PQZ2jieW334bJp?= =?utf-8?q?VHEoadUSKgkAYobCdTmppXDTmiqgKkf8INSc5lRKG236ILBBojJnl1JjM527io/36?= =?utf-8?q?tItrbG4J68+8BwVBeafS5CXXnSrQqqsd209R0HWZ99egYPp0ksqIrK7TWCoVoZm5E?= =?utf-8?q?Qr0Fcg/9P8OojKZcAQLaYHRTtmfver91+bItfxb7kB9HlKa3GXT3grfrQMGQWhk6O?= =?utf-8?q?rEKuXKCK/0kcO6eoscYkQYKe/NzPXl71FtKj6LLPJUEp6XCdagtWUD1ajda+xdddx?= =?utf-8?q?Vcw6SwK1z9a2i/v52re4misc8EF8TR5xdzea7kcfp+qMI4UFGlwpAa0Dw+PMy32cj?= =?utf-8?q?S1bk4CgvRY4ZBmJIc1FaJf5CYw93xQ/pEZorr8umvOv5AXx3Q1+73ZzuS++TGKd8V?= =?utf-8?q?hr4f962IcSuHHxXXJ3dl7FgMOLWBOLozwQF836dqwxUXJOJXlMSm7xO46vbHkLCWB?= =?utf-8?q?3gN6dMQ/KnxLu5o04pJJ4rp3sY4QuD0YangzBGCvyowwfrBj6okqhjFD3k4LAAhTM?= =?utf-8?q?q+SFbpqZhqTyY+YYI9RvsiwOIXOWoKbVfCpRVEf2bgoO1JtKRMKQtCHFJht52OYuj?= =?utf-8?q?PQExdNTIdVADI74MD4cUn9sttffaSG9UZvObjwNmHBS2s6PZREHctkKZ1EwxpamXH?= =?utf-8?q?IoOA/EZNoVpzzuJU9gTaiZkSR9Gw5ku3GUPuLmXJwLYHMnhzCb3Zyw+HKJFnMWsf1?= =?utf-8?q?kWfNHjX5h4MVZkpR7vJJA/AAn86Mha1jU5AS0nDyYcxo7LQxQlGZeWnGcWW7adQ60?= =?utf-8?q?S9q2OTt9Wsm0hVlJ6crn9kIzp+0a1OSerHdltvzIs48n8v/2F9HE+e9WizizXsHqu?= =?utf-8?q?dzjlSbImdDxLbWsckEnkOCQrOHKgqSwhu00cyi7aDFJnLCG0HKsBW+/kc1+wrjhR9?= =?utf-8?q?LjlHGA5mONiUoOazdby492aSSTwsl6crLpqph+JHY8w8NCDK+5lvihhELgwXatEFa?= =?utf-8?q?z95po3XxMUfszOLlpnz8dszAighlUq9BRT9iYLBt/18gxMS4xQPFooVh33rkTYI2c?= =?utf-8?q?jbsC32tCZuu3FwarborkwZAmlwlyGAsmnvYm2QQZDdxSgKWYmZBdWWy/s9mfnhTUu?= =?utf-8?q?QWarq1WJyE7MD6kfb4bz650xHq3l42mEQobi/ZbrQ38RUBnwuO98FgXnj+GPSoKu8?= =?utf-8?q?Xai6I9yEsCh/ub/OZUR4pDirMSk43XV2c6uQQ1Kb4rC9h0Qgw8mUno4uKcacouNPS?= =?utf-8?q?ftci1sJ+m5ZHZswg3mul7QZOdriVf4RSC/5OivP30jAL+6209FL981raZQS2xaxkb?= =?utf-8?q?Cc8v7X3Pg72xggogukA9uLT8vJPWMAkTs8CXMRx/pI106S1tVZhMk6+r0DrUXCFRk?= =?utf-8?q?g25rwLoe8zPabz+GeOc8t+2gZS0GheY4i0ppMAnwdkkiZxLt8ev4Ms=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?RxvV63xXe6SI81+QSi9vjFMLeOZv?= =?utf-8?q?2Py/kOIutKgofzMGBfzysw04iJZawIuxC+424PbIMHtUIVNqSJnPGgJscYtiJ6fka?= =?utf-8?q?A4wNjvEuuL3yc59dWOnODNylMFGyKiyisQm5o7GlutX8TV06t1JJfLwFQaIvqCX46?= =?utf-8?q?UOUna+83kT91LkMUUrgECVfFWGtyFw+webKEkpU/O5kJRHJcd3o7rhtaBEzUVTyft?= =?utf-8?q?tlnFJMm6wa5YcGXEL9B+Voq17C1v9wRAUelNkWHYhyKxWSRva5XL3JWtIfLOJURUO?= =?utf-8?q?VLWwkE4QGUwbmVU80fUuGtAMD/rt4XC3ma/9QNEuJ3yHU+ztmkq+KilzNTnxI/43W?= =?utf-8?q?wkPVwq0F5tkBv66UDFF3/5MfIjSEpGsXLzv05gYyLkQiGPNY9kuDkNnr2KTmEu8yT?= =?utf-8?q?d8ezvL1Y+Vv352i4/UlQUiE+TxwzDQbbdtAbaRzolPlHaypKvhMb0qsltxjLuI4iz?= =?utf-8?q?TF9FSfD8OmWbK6oUhuHEkiekuRq0mKVnfYblZ6n/36pivtgzBB4f3qKhcxlpigmHG?= =?utf-8?q?4qyvCzX8Xy3i3jv7FnLvu6VZEP6B9kYVypUC0X5LQ9tjnIcFN5poH+Tvacdsyzv8l?= =?utf-8?q?VYhoiCgDs2yUQi+LFVIM5THP4uRfOgoQz0rNf4chSVxRx4zqBON2FJ6b72cynUOGO?= =?utf-8?q?I+L3Dkvj81HQybzjDqtHtwuwS/hst9Foqy0VFWzm51l/5RTjgaDfPMCq3Cq+11n7t?= =?utf-8?q?OZl+RO7o3ibfx8FIMdOBDxZQtC+MYz0r7Rzcr73k0vX8HKooJ9nlgZ5ZsF4+1oO4f?= =?utf-8?q?NyyInK3YgyPGqTaC6ESJRZwgAEfwnUZ8jr0BZVb6ea0uSjnGmxZ1sQa0xbEvHz6XX?= =?utf-8?q?3VUzaMp2nGXxs369YHMiNzBWz8Ndtkewz7bu24DsXY8StDRVaUfxwQ/KQ/3P12Y1L?= =?utf-8?q?shx3dikmaQDF2XLLCq/EkcN8nHQKXCS1qVTpIhL0Dg70EIIUdp7XwWRa4mepwC8ty?= =?utf-8?q?XhqKIiVFUQDqO+SOweU2bH38M+yJtg/Gk72MSu2zg+GCsBdM/jDF4cfjxCM+Dh1Og?= =?utf-8?q?8jWqJTleHF/BWsjUUUvC1KdGlt2qxsrPxV4+j4xaGMVZa87pbVkuOHEojzt4pzJdz?= =?utf-8?q?RYmdAfBbDy5x7STmdR1e9x1DGTqWhSOIsGKAv9Um1PQh6ruJmu8x+zgbU+noSp3Fu?= =?utf-8?q?Y9hSjLyjBJjwtrYZd3eO/T6RZQCeMLBRE8+oUOlEr0FTnEyYFyATK8loAHuwDkTZj?= =?utf-8?q?BMHFYWCBtfuH+1expvyggVeIILUUUThZ5yZQsOpvAYxQPTLl+XcQwbFRQyfpVVQ5H?= =?utf-8?q?nAZvlKPRSAXZYbJUoyt9pcNXY5Z9Evatvqb9LRnOAPis6foer8N3NkIgXt1Y8zOR9?= =?utf-8?q?1lR2guug51OH0DXZUG/shmVFnqvOEyGOtOWcZcIscQ1jVgrIYl7hbWFyZEjLYr1UA?= =?utf-8?q?+nrXO/bwE/pUxDxIKIERzK8UKzTXxfebrwey9+0XmpH21/HcnJfEGQQfJNwSVZHz0?= =?utf-8?q?79WrjWcNIhFt5tAMzkIHfdXRa7DgaeeoyqtOgQ/BQAqD//MUrNjjdvac=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: aeaaa865-23b0-4d4a-bda2-08dd7b828bc4 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:31:17.9096 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: G/j8mmzCHdFMWM5BxuBFX8x9Hw6aw3vNK3MVuzqrA7VjpIjFYygEtTmYNDlGt8GmGiFC9yKmjXa50cpKMhFZLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113120_811211_B76791FD X-CRM114-Status: GOOD ( 13.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org platform_device_msi_init_and_alloc_irqs() performs two tasks: allocating the MSI domain for a platform device, and allocate a number of MSIs in that domain. platform_device_msi_free_irqs_all() only frees the MSIs, and leaves the MSI domain alive. Given that platform_device_msi_init_and_alloc_irqs() is the sole tool a platform device has to allocate platform MSIs, it would make sense for platform_device_msi_free_irqs_all() to teardown the MSI domain at the same time as the MSIs. This also avoids warnings and unexpected behaviours when a driver repeatedly allocates and frees MSIs. Acked-by: Marc Zyngier Signed-off-by: Frank Li --- Change from v14 to v16 - use Marc Zyngier's suggested commit message - Add Marc Zyngier's ack tag change from v14 to v15 - none change from v13 to v14 - bring back from v9 and remove fixup and cc stable before it is new use case. --- drivers/base/platform-msi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c index 0e60dd650b5e0..70db08f3ac6fa 100644 --- a/drivers/base/platform-msi.c +++ b/drivers/base/platform-msi.c @@ -95,5 +95,6 @@ EXPORT_SYMBOL_GPL(platform_device_msi_init_and_alloc_irqs); void platform_device_msi_free_irqs_all(struct device *dev) { msi_domain_free_irqs_all(dev, MSI_DEFAULT_DOMAIN); + msi_remove_device_irq_domain(dev, MSI_DEFAULT_DOMAIN); } EXPORT_SYMBOL_GPL(platform_device_msi_free_irqs_all); From patchwork Mon Apr 14 18:30:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050887 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0A42DC369A2 for ; Mon, 14 Apr 2025 18:44:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=GR0Z1iTOQebA6NDkRDEaFkcBL+OLXn2bv7Llb/KWBuc=; b=a8pU9sCElOTTbOvlp8pTbcNOyw tekqYobinlBhPVOsvEFGoN0R432N0unwPp4u0DaVyp/KDe2k/cLjmYltI1tr3zGB/I71+dHp9tfMi rgGHOWgaof8IcwsRpdnn9kmBemE7bytB39lMsqKJFm9565gHIO/lkr9vha63dDR5Pxaj3c4iDSS80 dBtJzy1V1HoSBJ550g/Xr1BT7Fm7b7fRYeC8O7Mj/SvE+/2Cc8jUNhP+4k9P1lCk53CaFi70z5pT2 CFQccKVdf1o5OMq8DCxWQVFbJBzrppRFLwC2W04BMvSWk+ac7MSLkpKAnExbDnp+MmHsu0G6Io45I nnhj48MA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Oms-000000039Sp-2G5J; Mon, 14 Apr 2025 18:44:06 +0000 Received: from mail-westeuropeazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c201::7] helo=AM0PR02CU008.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Oaf-000000036mM-48T8 for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:31:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uKwZfQgY+ieqsCQHiF5K33YN1SRhO4NJ5m/edG2chW4oTy8oiwL9leuU1vXrhx8qUCTXnogxq8+V/IWaSWpD+/bbdjf8nZRdA3H/9lYbKEEhii4aZ2swxwAklSg6uHKU2lcbSHpHH9C9WiE9b2NlLHKhetLZouidLugMk5YaUXwL4q7HHZbIQHL5vxhps/77d7LaTI/ofqTAWlq2inBXZzEcguUIAjpoc9+uurK7foFNghkMuoFKGY5eNx/S9iBAGYgvvuW83C6gfz2ioIk8CNBJyFoq5SuEAYeil5S/jOqnYinoKvLdAa+e37DDeQKLwQB6+qQmpBm0c8UPiTj28w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=GR0Z1iTOQebA6NDkRDEaFkcBL+OLXn2bv7Llb/KWBuc=; b=Bq7nA7MiFeLDS16k9ozv11HofapcU4CK9PoOWKqMKDxRWzC9tYyf/CxXN/M65h0c39BEDWdlaZJyFPAZmjvupwk5qyWtDuWN1SEN1qeYXr3+YaK5DPfz3z64Xbfd8zkwotIXk/mXmpgS8VAzRK1gTO4KDxwjPOZvM+nxD+aODKerH50xJcUunXaW26kPFnBNQnabFSCjoqS8LNhJa+zRM/BVObi9HaS1r2BH7vj/yrkumuPJJdCoBhr//UEOgrwwHRUmy/2r0jzlbId4h5J7qOUJtRISHTe2f37Cue/NnM9tEEw+Qv4acW6SgLXapsNGZgSA73g0nfFimfyeDz/JGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GR0Z1iTOQebA6NDkRDEaFkcBL+OLXn2bv7Llb/KWBuc=; b=UpxvSlVUHjEkscH9D+La8hWIZeXZd/N6xgB56RMA+tsuJ5f/2zmGtjnPc716QAAku7qH44ZeKezPjyITuTmwj7X563AxnV1OPLIbMC69TeR0K2Up3UrYLNuIbJz9FkinKDcHB/Oge7unkzNSvs1CjmSU2YWQ/PD/f5DZHC+5AHK6QQSkFy7uomaB7Vpl9V/BE5SuqX6pKaVsyOWuaQLgoU1KdF4xvLrgvbxv18Dw61miyKT3P5e3z9Ltfousua8xQtOQwnHKoWveswtvWzvvMJ+yhOTC2bSoa3vYZ6VSYbzsZZ/tKEbvGP5jBOFpxaHOc/MN788og4yPXZhjhbB0hQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:31:24 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:31:24 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:30:56 -0400 Subject: [PATCH v18 02/15] irqdomain: Add IRQ_DOMAIN_FLAG_MSI_IMMUTABLE and irq_domain_is_msi_immutable() Message-Id: <20250414-ep-msi-v18-2-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=1874; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=p7gntWoxGh4gHuQtzBxv9euNYS3wHZIeRIkw2TEkLdk=; b=t87vp/iAJ5+ZTIxg7gTHu5pYJEUnSrZuJ9oWaxM3zOmy/1v7XWE1vGROL331Er1Z7obs7OWWC LWwJtZ0VOkkBJWZ972IZ7dSMY8QI1fVGhRzg2gTN6OnvOg8XL3HZWy+ X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ebd285f-6204-4dcb-03ff-08dd7b828fb3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?95D0hoeis4BDCaunInV5XN31wen4+xA?= =?utf-8?q?h1qD83hr8zrfmzNkU+9GldFcK5NFSHZPbDbHHs/A320CEsSzFweWCHSRcQqzGhcoL?= =?utf-8?q?A2oQNbUtIslVNHnfONx1aYCbES80fOyZXwuEakXJLMJMr+2FP+v5ZxaT7yMIJ4VqJ?= =?utf-8?q?zOKnLBCHVnmKKLD776DjvEs4qYe/NIyo41dFOu7OY8zUNj0Tfn0mRvC30PuC+de4F?= =?utf-8?q?EVZjS9IS2Lzjl4d36HmNRgsOcMtPM1FroCs31dzFMe6MRoRvuMuq2vU6N9eNLj9ww?= =?utf-8?q?xb8xOB7yWEVshfU3T902np3Ah2RCTiynoet/IKqxUaegnrWiuCQVEr2qZ3PHc+ORX?= =?utf-8?q?Ji6cc7hz1PobqNkHZewfo97Yg+4cGB4XrR+GVJDZ/jbD2JuPG50lopu4sYnbJVkr/?= =?utf-8?q?IW9sOAcj8IckpQoHxtQzLNvAT3bw2aB7Iz8vMUi/Qo9ia3YAYxM1x1bOJC6CMJXNk?= =?utf-8?q?Nqz1ylEN2O7Gd96HZsWLA7kneU6a6sfbNN29+R2WUjmS0+npIgJXpl6Q2nUKLDub2?= =?utf-8?q?5PYojt1YwDL63EN9XUJqJQpRA4/1nkqfluMv1FL1Nfhfp8cG0fWXxe2b8R0lT/lfO?= =?utf-8?q?SiSpgUiPx3HudHvZ//L5haRpOVEUFbf7zBuHyVeAnF5ZU0Bt8XS/943wAW8zTrUJ0?= =?utf-8?q?FSjnJ6D6iknuvRDKi9wYqLlOvisEXfZnRgAGkW/FYQ4BlXhZA0tUgki62kllsb2ok?= =?utf-8?q?Ft8Xyh0bBqPXutoauU30Bk0y/kXErbWLbUbf55cP0qd0AWWZVWw6mGhJO6hO7GptW?= =?utf-8?q?Ejev7yZnV3EeNI1hTvvbZefmcgNDbPu8JNZzs4I0R7zzqC6uQ7/r/yvQSp2eKmFij?= =?utf-8?q?wiCx+1RSOByVXNXHKrXA33ICQtXqFkDDFS1LKs3gXfBaQgkW7GPChGpr/81CTzn/r?= =?utf-8?q?Y0FfNAllhnm/pecp940IUtkfXO3iSlYV9g1qqkJeH5oYtLuXRoQxpeJJOlFHgSLSC?= =?utf-8?q?UceTX5l1lPl6OcB49kKLgCObjFP9L9wqNLD6oGdbdb0xSpcNcwC3/hQ0OIt2cpade?= =?utf-8?q?/v/LQvs4v9BmYKfpgkK2sYKhu9V3ZyLc5VfUnjNU+zZZ+MYpi97kI/4wH2ZmC7r5V?= =?utf-8?q?zAMupcaCmEoy7UyYKvuxtn7bwCA/uske00D0TIIFkIRft4JD52t46fdR5DD+nLlF3?= =?utf-8?q?ol4fxs4mKT6BjyS4yWbwqBLYE+LdBwfieLcFy310FDYhhLHT4JmcHudDovz/rTRU7?= =?utf-8?q?RO1Qdt//NkxTo05zwKla3Txy8wdQd8Kqklm/+Xb+J5XupB3E27iqiEirnoMXoo0rV?= =?utf-8?q?V7LgiOo0IEPNC5tpA7hrsAUE+MTbUD5op3Cvtx8PO7bJAYhwIGWonvCMgUeXCiFOC?= =?utf-8?q?fAv7agmrHwUeuJZX6osSWShFgAZG7FZqbfem6q/bEfq3CYSZ3LWvXLiJhG7J9NNx2?= =?utf-8?q?sXGQCleQ7xJyP1fKNonR9tCYxqFXm1zFMQh6nngqwLv0BrhFH0GeW1DdVLiYYUIwp?= =?utf-8?q?85sBYOPqtz?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?qYaOxCuGia4ohMrHN0yUpFeph3Fn?= =?utf-8?q?wdvCdFFfDa3S/XIGpgDCWs2svz2q2qniRxzoqt/BJNVQN9MOq+nLbjaqNeo/PGvLu?= =?utf-8?q?8QPsNoVAyF6badKHlWUMZyhYZDUrn3eq2RDjBCUG4JTSg3ICq/PeZBU7Zzx2JtdqN?= =?utf-8?q?Jz5xFjWlx5Sq1GMAGU29SSVrOjcyTb/2Ks7/XaAZGFKazo86TXaYcunb9viMQ/c7b?= =?utf-8?q?vcxKz3FQrQJD3OHHLvAfw1pfPDhKwM6Y8nkDDb6eN0fJ9mUzd1Ri6zR/0UWk6uhJv?= =?utf-8?q?gZlEhlFZc88xXuFyJBMzEzQAIWvN80Jtvs9DFGzXqqyUYmYG7BfFDSAXEeHQFK/k2?= =?utf-8?q?4qxujs6RQNusvDC7akEl87p5Ffw7G6BXcqve/IkLRrC2lzst6HaP3bLaK18JTtVsY?= =?utf-8?q?nV/62C48PyZFP4XfiI7aNdAKjoxHH5M/2PXs8T68Aoc1bHkYwNTz6AVsOxfPcgyvc?= =?utf-8?q?hmq7/R5TmVXBwFKku7cNSWNnlPDK2p7EJfy/w5e8NKQeBpdOEcRnLq1gKEkKanR/3?= =?utf-8?q?GqCsAz+8Yrk04ENwer6Ipoevy1s9+Mr0B1O+rbb8H3seZDh73cQLS2ZieyyvKzLzp?= =?utf-8?q?FE9ZoGsfKNORDH8WYkezgseg9X+heB3NoQHh5v+J3XB8OIThZOYsXsCBOaOrtzJHh?= =?utf-8?q?xzMcRitWJm0eduwYAL0I4iP0KAXsBM/25T/PgJEJG64/p6wdGuIzeLd82vmh9GfFg?= =?utf-8?q?sjbcqG/s+ribdhslZMUydWz5QIxAp7UF5shP4umPjwFP/MwuCjIDRqo4s3s/Um6ZT?= =?utf-8?q?sMEn95gH0tZOX4rpt4/mdmEmvV2McpBYzlNUtTgTNs9yPnk0ow63tqIjSqSFVkjq+?= =?utf-8?q?i2Po3xDkB55NlaRL5sMEES66uSLvPWwoqcEEiI0bmF5Zt2+YIUnUHB0ElCLrqa4MC?= =?utf-8?q?xkzT1gUyr+nrIXldk/MNlDF20vyxyhlC6Ws1VlRcKRtOAetYyum/PcN0PBs48ZrQu?= =?utf-8?q?etkagLlHalPXYGz3xKEVU/nHVcIp6UeI70T72LXc3mUHuULGJ23/9OCh+DpIZYFIc?= =?utf-8?q?no1D9h5/FvJhnkKJtJ5GgM+hSX8PENogVkIXCgfWZ6a+LZDnNZ5enlrQ2q0hsyFp8?= =?utf-8?q?GoRMbuduwLWYkMcP7Rw9HUdZ14cuNaMnEwa+a/6JsRT5lrHS7eb+WQ67/HR3TzSuS?= =?utf-8?q?EFFYZxEn+OXSZ6RtIGjzuycVvsbeSX6MWvyLvVW53EP+5hz4GhiOon/dm634e0fkE?= =?utf-8?q?08vMFp6peA72aWIROba98A7H46YXAHuW5rJ6N79vsPY8i987zovoWfLiAGW0qGj6U?= =?utf-8?q?dFXkklvXZp+e2h0coBDhBhQwHn/XGykX5EBkt3O8Hz63l5zzUhHCVpe+84x0li8WF?= =?utf-8?q?QZgWf6Lcl5xOca9yOUAC++lBPAQYg3cfnWCydJp4HOIasS2+fZ5tdHD3YuBNClSrY?= =?utf-8?q?R4Tv6y/R8z7G44jEiaVq938Kd8aaHJlltCbKEicHfd6eh9LcRvv5n49cLuVYasesO?= =?utf-8?q?1sU9MccWxFFpSU2OpLpwt5W+VMPxApPKVE3im+OXg+9Bincc98FSTIPo=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ebd285f-6204-4dcb-03ff-08dd7b828fb3 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:31:24.4893 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cBTu83cs+T58p/eJT6yBU0lh3qVWgvWxa63XaeAttS7q4Z1nW1iN3boMkK3z9SHEYuGDFWFbqOGrwoH8bi30Pg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113130_035438_23FBBC8E X-CRM114-Status: GOOD ( 12.95 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add the flag IRQ_DOMAIN_FLAG_MSI_IMMUTABLE and the API function irq_domain_is_msi_immutable() to check if the MSI controller retains an immutable address/data pair during irq_set_affinity(). Ensure compatibility with MSI users like PCIe Endpoint Doorbell, which require the address/data pair to remain unchanged after setup. Use this function to verify if the MSI controller is immutable. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v14 - Roll back to v12 version because Marc Zyngier have concern about add DOMAIN_BUS_DEVICE_PCI_EP_MSI. https://lore.kernel.org/imx/861pxfq315.wl-maz@kernel.org/ Change from v11 to v12 - change to IRQ_DOMAIN_FLAG_MSI_IMMUTABLE to minimized the code change. --- include/linux/irqdomain.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index 33ff41eef8f73..86222602744e9 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h @@ -231,6 +231,9 @@ enum { /* Irq domain must destroy generic chips when removed */ IRQ_DOMAIN_FLAG_DESTROY_GC = (1 << 10), + /* Address and data pair is mutable when irq_set_affinity() */ + IRQ_DOMAIN_FLAG_MSI_IMMUTABLE = (1 << 11), + /* * Flags starting from IRQ_DOMAIN_FLAG_NONCORE are reserved * for implementation specific purposes and ignored by the @@ -691,6 +694,10 @@ static inline bool irq_domain_is_msi_device(struct irq_domain *domain) return domain->flags & IRQ_DOMAIN_FLAG_MSI_DEVICE; } +static inline bool irq_domain_is_msi_immutable(struct irq_domain *domain) +{ + return domain->flags & IRQ_DOMAIN_FLAG_MSI_IMMUTABLE; +} #else /* CONFIG_IRQ_DOMAIN_HIERARCHY */ static inline int irq_domain_alloc_irqs(struct irq_domain *domain, unsigned int nr_irqs, int node, void *arg) From patchwork Mon Apr 14 18:30:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050888 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 958A0C369B2 for ; Mon, 14 Apr 2025 18:46:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Wvzvkawi1c4jyl+gIIApohWSfi73eTZ55zDdwaLFIxs=; b=lxnVkcHpoDRv4I6vUk4U2e4rFk JkOpZ/TjdtOSxACt0J5Cj9TPYaT/VB7ko9KZ8cb9goLx7k+01AZjEnUM7xhWItmrRRwfd43l7+G26 no8XzLdL74mzjDcWjJDkvA4vIDxS8Ex4/0fc3urnUcgsQTRhKlILLFHOcA5eDhn33Qv6iOVC0u/1A z7p5I1fYrku3VceDvjbAULKUwr5qFYMJG48Hw8Zvz6XDkx2dcxv9a5Kdj+4sUUGgUjFn0HaAbBdSc 8HajWGTA5bpUyXb9coNCtOd/DjLM+5IyFfILV9gwCWEdXlamIAMpjIKteSxdsAAJ1eqoHZGEhL9Er we39pnVg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Ooj-000000039wY-16SC; Mon, 14 Apr 2025 18:46:01 +0000 Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Oal-000000036pI-44OG for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:31:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pA+ahjOy8tdzwoTpJL3SOoCBSzAky2qmTYXegezQNtZwpOK9vf4xCvvhYZHEPr6dMo4bJUQZ04r/ePncQXN1O4VvuPOXMNGfC332P8nYXn567j1FX1TpOTmP7yHr0Cr0OANJM/niAMt8f2RyJRw7qv3HyFdl7luUfIuoi2C4jyBb+6rE1PIYzTWjsPNUakUlA9AetYv10Plr32gKyIQFGAbr2VP/vTQxRt3+mM3O7lzjp4fI5kj7Yv8dqRcabIxSkOK5DEt+3VsAPv7zPvb89fKAz4aeaKgtMwoEuf1ekU3ATW3a9znev3Ec11E3P5fID3dB7YMCakBZZTujpjoPrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=Wvzvkawi1c4jyl+gIIApohWSfi73eTZ55zDdwaLFIxs=; b=Y4NvCpw3FcJE2JyhIkNqM8vRQIrYPN+/L5kiq+x5y6eV84fatwiWdqo3WZ0DVWfLrI+Oh2hZo04KAZbW3N+BR8QKecumziA4uoz+MzcpGpoj5jcJv96T/kKGPqu2BrzqbCmaZnu2Qoejx8afk8E7p8M/xDqTSPT21chJeKePWahg5+/tihStUZaFUElnnCQWsiLDY3X3ytd6g+J6sIwavNDaHQRzREvpc5TL3LKsiLxrfJR7kU2n6aCrNUSW6M1gsmKqlesj1Yxda0tPNrsPhL87OCiB9Imb9cMpr2+FbKJVNHPz7PPaoe2tr/JvKlLspB222ZM3G18eBMk6nQB4VA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Wvzvkawi1c4jyl+gIIApohWSfi73eTZ55zDdwaLFIxs=; b=QsL3ZzVw7RmSlT+gSzqs8f44xrQ2Lbj5F1N5vJ58FwOkf3jOnynUIvVXdRhzKhwYzrsVYGxGNQnUS1QT5ZH34U/a9xuMXJ40V76TiUfGfWB61lcDlTqu9mOZ+GhtC24g6lXeHvDumw8gSsxdm2sYYcbREyFKebaXMuDt6Z6AFZqVhCohv/G0uDRdMP38SoE9HkpDhEYjIrSM+IrroQcVQ/tiXypr6alst1bpJVAqO+lqUQlcV7rL1C463wd4nOJ0XJx0ckrFAKGI7GBIU4NnOHFRVGzv3KUQEc92sORErNtO98AS5/NSp6Ei2BOdVMHxBqPv3BIMbGRB8559Qnbhvg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:31:30 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:31:30 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:30:57 -0400 Subject: [PATCH v18 03/15] irqchip/gic-v3-its: Set IRQ_DOMAIN_FLAG_MSI_IMMUTABLE for ITS Message-Id: <20250414-ep-msi-v18-3-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=1326; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=nuOSilx0xFIrmQ7q/FNnVVZ6I8tKFEDBakFZ9GZOgfU=; b=Sf3sB4dNtQXzD6YOQ/pD2JzOx9fmBiQs2IKGY+ml+bOjPCgQffdjprNSwFJm5w3h4IOo1oixG if00czfRb1xBDqZdF0OQzvT1EQ/Fx9VosA/N+o609bYhGNwNpHTByM7 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: b2fd5c6d-699c-4e01-f6bb-08dd7b82937b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?N3CQahtGxgYB5egBEbwXKMRlTNXTGi9?= =?utf-8?q?sVUw4tYjrXFM4tGQo0cGxrONvT+SozAKDeRe3Yq1VMPIWHbptJksEvWWDveHELFTn?= =?utf-8?q?WpHZv0Pq3J6d1axzRUxoBoj8N0/cCP4gyMMXvjva7GG2B3M8MbiCiw2wSFzTwNb2b?= =?utf-8?q?3I6VVgRc0r2FG/J1OW4hS2VWI6okpyBedSp9NfIwEa9n2JhGgvbdk5GYz46uTSJNa?= =?utf-8?q?gT63YdknpBdeANnYDvfiPmZ2a7SKAs68tH4pk5uTfipJw4y79Va+V7VC7viv7+Ayp?= =?utf-8?q?r+Uw6yYlXeZ5vviH9K99nKt6e9nS+xj7KWWZ5g5gWmXTEbzkm+Xhn0klozBkDH/0s?= =?utf-8?q?MLVlMw1z1v5+S9nQrN9QpM53V29cLl8fwVM4pv6QUis8pIb3zCf6mJOniq9YkysZB?= =?utf-8?q?q05T8H3idpNhBrgS0/LV0dYTl+y76vllbUjuie+fBbYctH0u9o1W0pZdfLKXMFtsX?= =?utf-8?q?KQTuj7fntNvlFqfDzLMW+G4/SM1xRxAIuEcqUwn3txMZIGC0pwlfHK0yg/q30bWND?= =?utf-8?q?ia4T2qkqmbFBIkoiTUX926wrJlTEiDiITg2/FADEhKw7ErN8yJZFD/V1p7o28VQPV?= =?utf-8?q?2Ofuo5tlvVhm4xEZyNDAEKpFaKUwrC6ppOcCzTUgSSrfjR/tl3WUtin0NTE2ecNWe?= =?utf-8?q?EKTqqpULuPAvTl2iGfHugbq8FiTX18RGD+CPqwKi8WRtfDJIUiVJkbzGl00UK+FTx?= =?utf-8?q?v4syD4k6S92PBOFMK3d3bHV0d7cqiRFQ70ZA65S1lsYy6udHx8qPWuQ0A2r7e8eMc?= =?utf-8?q?KKQkrDUeGncOIbq3037MQIt8AlKO2DUYfYFYzFxxgpb08NnJFZvqUkaJenqmABJmF?= =?utf-8?q?yyyWTciBiXhPpWGiHR2KNe942lMqsDMKEt3kqlpWzs4mCaK5CEOyH371e1NQMuOGa?= =?utf-8?q?IxxLIzYQQqkV44kQB9Art/2G4cKRsdyquA/YzC6hLT2tVHBwrgjIg+sd114XPmaaY?= =?utf-8?q?mfEGmqT6V5uFHsRfKm2uM93fwNoGIppDDXR7Nxpj9qGLNzfndc96uL7Sz5lfLPbsU?= =?utf-8?q?UM2LwAXOQAZF9q7j6HamuKFp57Z2NiIGyvqrjH8Hi0mbZj2YdQFfURZ1Lh37c1l2t?= =?utf-8?q?W00PwL+r9rlDpRBEPbBtvaD5Ffuto6QWhGbrUWTmGJ/z5952Ni3bMx/3ftxC5MW7U?= =?utf-8?q?2EOSUkGF+LMkgHx1ur0mzZk9ysOueiXBbh+Zkx1/U5k7CHJqQVKk6m3hjoHxoVBs8?= =?utf-8?q?yvhDjhojz26Mu+I+QI5RWc2iQqcBTrmyUy5onLvXEGdtoV0Oj284u3+pQe4szA2+3?= =?utf-8?q?/X1lllsy+XSQUyj0dOrvOYEVzSgsNJOWW3ZPb3ElEvfQg7dOzyjQf56SG3XPzhnKD?= =?utf-8?q?44iPwjoNmnD+ilbf4KDM4KLf8p+mhR9IS7+9xh7N1ygIey5whNp9fLMNifDRTeUp3?= =?utf-8?q?eO3aBWioBtaNsw2SrUS6/Wde4Dl+oGYSHTQmm7x2zAAmLe95Hz+itBtck2cd7ZKOn?= =?utf-8?q?X3+zwElMbd?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?hvEB6uM+CjAZocwwXMmu0ukKK6T9?= =?utf-8?q?mR9BMADzzCud1zukmVY53Hj5SZnP4DvH0DBP2ja9BQ3wPKS0E+V/MMOPMMsxP2z3G?= =?utf-8?q?14UmT9/QuvEpA7FZskI2mE4qlDm0HpKIdJm2WIG54ppXg14fas2wvlz627Arc7AAl?= =?utf-8?q?eAZ5miqEqLstVHyzE9F3SnoSVvEQHBgLFuJsdzRFqkUvi5iXIcKrRoSqP8LgGmt64?= =?utf-8?q?l4EV9u3kzqQYg03eZk0E2WORCQuaw4p8no4n2+K7b3OwRVyO2+xzChmnzIhp+bqrs?= =?utf-8?q?wb5p/SVlOPibV+dl/bugkKFnkaYxTQGwXBbqvREk4NyfkUXSnj912H4LN9eXTNtZs?= =?utf-8?q?dDxZES0RkObeGQHQReCLLHI/5d5za2MY1LsTV7yKv9ceglcZw52C4cLdUhGjTlS1D?= =?utf-8?q?KjI9dTH6oalaO3Rs02+W+KBYkMFVjEC5FL4lAB3FMpFkcl2WkLjLTnkjJ7fDrmIjP?= =?utf-8?q?ELJkOxjDNYRwGd9OdYbJjMNmdYsocJoXgAxt/FwKl7aYhvd7uEcpKL8zFe5/EjDzn?= =?utf-8?q?daUxSrGi1uycA2lQSPx8pfkVD/9oF74cW6k5syWIIDCc+iNZ+dI7/geivNF3avWUK?= =?utf-8?q?eR6o3o+enNN5FkrqNunOovA/4vqzrx+tg9ff5e4gwacTFzwFQBNntHZ79D8tdy44M?= =?utf-8?q?D0zWyB7uJb51kp6bo0sa4HuEKARFlxdhw9a7fVPfNgvgevjANieNqSWfK1GEagaMZ?= =?utf-8?q?Est9hkgw5ESLCJW388BzC4Y3kzxn40YGzh2sDvWP5mEGGxIsTqRVy5AD18kIcYifp?= =?utf-8?q?GYr1epBm+nKTgJYUcDnA6PCBcf7g/XCBomfh6Ah92PpvpGq4BA868n8Mo5ayuvQnS?= =?utf-8?q?v/clGZtSAD9iV86Uz29MKoh9M1QZKuRf2EhqJpGsj6hpSvtpKrTkE4F2eFi5G87TH?= =?utf-8?q?aJoIACtWkuv8Kd/I8iNil161BWY4x60qOVYxRcGEAIMwTLWUpnlC93AHO9++k3juv?= =?utf-8?q?w2yNaHuj3gQukEVqxxM5Ck/SRvxUayT1mHxar3sXlig81yuyHQbqs3Vk+2n6OlwTL?= =?utf-8?q?fttxcergN7pIoJ+nk6J+IefR9eYOf/B6hvfsveckrZVGZip4+iFCnvvL1UPGbEJ1c?= =?utf-8?q?WQwi93P8VZMsoKHimFlvGpzUJgfbizHXoOyi0fHBphXBZ4XUvIDQ9u7uLb6hMIWVw?= =?utf-8?q?gpUNva68Y9FvExgPFGKbVhWg5Qj1+0REYVTuYcWRCXunvfD2kl+cv2/gbyO26kqd3?= =?utf-8?q?gCwpHf+4WGHo54iCzjSdzqn4ff/jhP5lmQXK8MUoCPE0d8UEb2qa7WEgMThtyYEJ8?= =?utf-8?q?lOorWxw6uZJfLr04Zo1QYrcALSwYd6YVEQRBDf5mlEKvIlGuZOSr0KLPdp/7ecntZ?= =?utf-8?q?fKe1afOG8KXHQbtLE/mO5dQqshdKk2MqTYUv1JcD5yN0F55vMkPnFVOcHpncyhg5n?= =?utf-8?q?L/2rF4O4rccQOxo7xUfpzG/9wj1ViLd3bNChXIaeibwU26/sYWNaXaeFjtkZHt4di?= =?utf-8?q?CQHY1n3e98+3v62BD6m09JHhnOFMwAeGJwDPf0quGCzzp5mayjeRwh1I=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2fd5c6d-699c-4e01-f6bb-08dd7b82937b X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:31:30.8215 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6G8zmK8LlzYita6zHavyv46RY9CxFhM15povE8Ov0ZijMBrWHu/RQjtZ7LanX1HkPznPd3PsLo9o+1dqFajlCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113136_025064_C41E093E X-CRM114-Status: GOOD ( 13.06 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Set the IRQ_DOMAIN_FLAG_MSI_IMMUTABLE flag for ITS, as it does not change the address/data pair after setup. Ensure compatibility with MSI users, such as PCIe Endpoint Doorbell, which require the address/data pair to remain unchanged. Enable PCIe endpoints to use ITS for triggering doorbells from the PCIe Root Complex (RC) side. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v12 - roll back to v12 version because Marc Zyngier have concern about add DOMAIN_BUS_DEVICE_PCI_EP_MSI. https://lore.kernel.org/imx/861pxfq315.wl-maz@kernel.org/ change from v11 to v12 - new patch --- drivers/irqchip/irq-gic-v3-its.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 0115ad6c82593..fd6e7c170d37e 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -5140,7 +5140,7 @@ static int its_init_domain(struct its_node *its) irq_domain_update_bus_token(inner_domain, DOMAIN_BUS_NEXUS); inner_domain->msi_parent_ops = &gic_v3_its_msi_parent_ops; - inner_domain->flags |= IRQ_DOMAIN_FLAG_MSI_PARENT; + inner_domain->flags |= IRQ_DOMAIN_FLAG_MSI_PARENT | IRQ_DOMAIN_FLAG_MSI_IMMUTABLE; return 0; } From patchwork Mon Apr 14 18:30:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050889 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D3DF7C369A2 for ; Mon, 14 Apr 2025 18:48:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=eqFvcCRVkNjL1DXRoG9nvtjK9q1aouH/vJtmLYrjJy8=; b=meg7teIXo3aD/RP53kwwZly4T4 z4qR4yczgLvbngHGJm4M2yLhIMCO5E8HUj4DTwpYdE2ULADfQ1yQxm1xb2ZMaJkJYEXSida5CaWly TRe+TOeFvRh3YhBW+h6ijwFTFk8t0PaxF9jn5iAWrMYxa31y0M00Qiy4gIWBEwRSCAfIxJC1bl7Re /RpS+2kyRbFbNd+bTeW6znmRIWFhn8AmIyZ1GY488eX7BYlay4y7Rt6L0xhuHeTvX5H2kSqC4+HHK 2BOMEFpi/J9tDMIjpFz7XckPfh8e/a4BJButVjgYLMal1QNvOU0AZm3LUS1a9PFyVup+eil1TbpOU LYyPpS4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4OqZ-00000003AHZ-0LW9; Mon, 14 Apr 2025 18:47:55 +0000 Received: from mail-northeuropeazlp170110001.outbound.protection.outlook.com ([2a01:111:f403:c200::1] helo=DB3PR0202CU003.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Oar-000000036rD-0KfB for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:31:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qWq50Gx2v4ceURt3imtQwKV6gaEzGOj+NvVdT5m6u8q4PiGpQT91ha56TCuKnkeSpTdpKQ1QDitYygVwwQKHaA9IMON8jYcMGFZxeJrYGpeZXrnSjlYNyUsvYezl7eyt8s0311PxbUn0bCoU8tBBasWuBaVzXKA4aqwuieozoVwZNIZbhhIK5QvoxBcPVlUqQPyNkYgGi7vak5wzXvU2Ma/BhPzPclRtrsm8cWXiMoYZA+mCiuqBoXceGDCNzbDgNviO/TQiYH85nujF2rc5esYFVb5SJYLHg4zcAJblWy6augoXu/tXRfY223lA0dbK9uLPzFLkxPznYaQ5NcKpbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=eqFvcCRVkNjL1DXRoG9nvtjK9q1aouH/vJtmLYrjJy8=; b=CW4ITh3mdI32sCgqaGAHnCQDnruLmjEKERTk7yPgcK/8xxK2mqeMu3VIjBUnnkKni4gr/TWNEf+lfJtXIMMzgtkAAuIwu6SAiF9+lD26I0laA+5HRvLP9L6P1rthVZyTQG5rGHM4nJvRoPIR4jlZRoxna/Emw7mcmb5Z+Z0Eli7AqrFnBCP8lVljY5bf/3fpmJr2O21xxot8dz7VHVIl9MowUCMKJgYzPHWHUKLQPm8gA+8fn1jrTPDv6BCZCOfKqjmHWMDNtH8FZbN2rDQWFUPPAr0ghr0nksu6sAb6VdvTrPu9Lyw+cHj8HFuOxgDSok6jAWOQbEsXdE324P7WYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eqFvcCRVkNjL1DXRoG9nvtjK9q1aouH/vJtmLYrjJy8=; b=k+eVNDOKIMaUgr6ImKK4pwCEF+4KKTZccRMaAM1h9rAp4XS+4tqIYGZYO/OGmtqX+ifwYk0cJlJ2n8afVLleAUN6Z1nDlu1wylBzb2hfy/Jprd+b+AX80+ey7wAWUSdiM3vofMSfv/4VJiDercCg/Q+AuhPlkoHQ768W2dmKGVmws4rXj1WJlSsQFUYFsDml96sj1YF7oiDG+WMJzB8OLLvc+X51XJHUl1aPuoBLIZ9/lRWq2Q02o+T0mxgXW+14HJUJLZRwv7p/UDUpVfYMBETyaT4M1vdcTNyQ7DPFxKsdBMqOBOEsv6wrxRfi8OExdG7vyPBKOidrSdwLWm5XGA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:31:37 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:31:37 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:30:58 -0400 Subject: [PATCH v18 04/15] dt-bindings: PCI: pci-ep: Add support for iommu-map and msi-map Message-Id: <20250414-ep-msi-v18-4-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=4533; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=DICYXBAwY6+u/JnFgOyQ63yT+g3nHSDoM8gnluX1F38=; b=cMqoO0DB3vUMnMnxEnoUyMJIbe2ztPJfIJbuPaYC0B1rm15/aESG9ZqyU7+ioL1F++ozn4o0W f9uZ6PrwCwMCoPZb1aGzioxU+5qwEgtw28D+lhyAEUwUSNfssKbHM2L X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 180b9db7-889e-4e6b-9e3d-08dd7b829751 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?dWB+iByTLoSxQBRc22fT7duWKmPcdnt?= =?utf-8?q?b8RfxYdB72dqvLovXF3jt5CySb6QDl7fvCMT+xJW1GX5WH0zQVLcWgQrPN5iL6Uaa?= =?utf-8?q?/4nDmYJEldh2G4c0WuJAPUrWaVnjNb/IaXXJluETaUQT1CXgMVxTXxt2IX+c+nfzP?= =?utf-8?q?KZ1vbHfHiEVLXYCHk8yIFCJUzSNqCdi5NrEXdEtieCJFssgG5AT0JX3fgrQn8Snnt?= =?utf-8?q?NIqYLuv9d2S1kQN+pnksyiq945wyajdFBVfKlHQhOMUw1lRQGSCK5mF+hwYq9+3S1?= =?utf-8?q?4HScBSxvoSYEIStIKWnycppqWcncKvbjbifjRDkD72hGhoLxanHomfU54SXRwsVyf?= =?utf-8?q?0tJa6qpOZkplaAqMfn2kqadRG3xC0M1g7yFyBMhO4/bN/BIZx1p+umUpBMQ4UPPmi?= =?utf-8?q?RysTi0vC7EttuxJ12a6sSHJWG6OoDhu4lOkMbeQ3G8nO8WuENCa9ppT74QRzIuQ7G?= =?utf-8?q?PeOEML8t2KkRvHaEQlls50s1iqYB6KZ0JeN8Ir7j7u2BY8VDGDHHB/ncfpANMdHHT?= =?utf-8?q?f7BsMrdZm+ZW4IBN2V7Pq2/xdr9KzoTpofcYoyu4NDlmAwIrRzlq3uO3TTHteW7F2?= =?utf-8?q?4F0QeKp45nu7lWW2IW2Q3PXXEVmsazueOhQw56b1MpaorVesuv5ULBSnERjblgltC?= =?utf-8?q?zjvTmHmqNghnHP7GBCbmjoLvNsnIShv0ReRsHh/lp+nDkj2EX9aGMBguRHa0Gg77E?= =?utf-8?q?L4vHb9UfFvstG3HfPs/OZij/qeTWXB8JHUbvnMwR6vdUMeWSAgwVcTOP5G18wEwGP?= =?utf-8?q?whrfUF0ZNJL2pfzHu+hKe79N0OvqhqJ6AB0DOuLmDcaujMc94c8I7wN4ne6BC4+JI?= =?utf-8?q?ZvF6pmWFvvKHUf8kzU8dcP9UQksBR1iYBXMyTj5NgfLK68TEW6SH1sq4eBei9X1SD?= =?utf-8?q?5w82zJcZaVanT3S9xJlkCbwo0Fq84cHX8tbUmp1vo8BXMdOBhkMavsAZoiTUAs1+d?= =?utf-8?q?dxn44Qckgdl4GQyWUL89T5XiAq1hHLEIpsGO3M8Jy8jVAMuD8RVIc6Gu+YO/9T13I?= =?utf-8?q?cRw4bnl7a82uP+2ypavyMKSCLZdDuEzOK+Vx+aoeH3VVi4GTXWCMN5EL0rcepmAVm?= =?utf-8?q?Rj9Li9DPl2k+QYraOv1r12nbs7FpFDDCwLDDaufpEbfH4WAS5kSNcEO1hwitSg5QR?= =?utf-8?q?CVB2GGk6M6zB17OpNDyyik+ntVsaLoiZgx/a+yEbgrUGkUaOIzVUcqSnXNFk/kDM1?= =?utf-8?q?WP8nFdQyi11zh3Yq63ExLiFlG/058pTMJHTA2Ginrsx1f2woNzxKUlKPB/yGPfSbk?= =?utf-8?q?L4oH8+m1RtgH9z4zziODlJIF22M/+MBjNTizKCwPVYZ++ftHcWOEk2H+I1G0HIqcJ?= =?utf-8?q?76QES+w+cpdRxpakaaZPPXU3/cXS69DSwcKj66M+BI2qdHJDASrSZ43738YsdQ7xI?= =?utf-8?q?9FV+WspADCiEkdjQx3MTbrMcctPW/zjJburp1wV+mWQcZ1zdaVrv7k=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?nKTiRJYoJWhva5BTsfK8U3zP+Mvs?= =?utf-8?q?R7966YrNSYrdiozSP8wiMASZTdyryb0MxF7XMXg0NhNY3fHl8wyBiM6MhZfbI44cm?= =?utf-8?q?NI2Ym+zXqdajEruUARwiPDDUvDD9KUml1c176+bl5d15BtnzjdkxEpEm2X9Y5GtIS?= =?utf-8?q?QHowVt83CiMJBwrATegb39erhXqGeFb0M7CqUuU4AKC6QAZ1+/iYPlM8FU10f+ETS?= =?utf-8?q?t6fpwQ+OKDGSX4pCuyGZT1OjRvCcTKUcjXDE7aULR1YtbKINuDPT4oWcpuNsynCk6?= =?utf-8?q?oXv9q/A+ic6RwtKBt+5ndV7zEASqFjMu9VMIV3KklOjYpu1u4s4PkpFDFYhGNrN2F?= =?utf-8?q?DSjYfkKbECE5i/8q6putxbbT1I+3/UEvozHgy9uYPvBk2X5J7pDPUHg93vO72bgrt?= =?utf-8?q?6LwYhaCJ9aFUaNM3S+ONqPdiaE08QpshvePRZmx6uNI5D6tX6uNuHX+zGdqBnbHdx?= =?utf-8?q?x+8Jx1dKYH0BeyVg6f6snYQ3WakBtVaFsGcSnOu8aG/y3VwQWPXh1Ni++8zn/QJ+r?= =?utf-8?q?uoJUwsXOUEJNgF3lMIIhj+9d2xuHudmu3ya660j98puQZCZEmMNRCFhGuOS1z2qz+?= =?utf-8?q?OnwayfQj0EqTgEnHHVDMjgodj1NLFdM1QtiG3I5MHG3RXhFrALZC/B8nVdv37TrKY?= =?utf-8?q?/EP+Gw39Kp+Iu9l1rkqFifLC6AQBvdEEEs1AxAgrjHX8v8WnLVEEwTKInTOjDpevE?= =?utf-8?q?1uPtZ3lm4ujfWX3s3LjNpYtKT3eHWjy9ujnqA/GlCGMfnWJoyeyjTUxWYh9bzDtLs?= =?utf-8?q?o0Wil2n2VimAM6spsCL/1Xutd04An1qIzpXQ2GPGF+BPFyfYriXbvyRIXKpmi0NGa?= =?utf-8?q?UX6cDtC/jkbAQbz8TatjY+nGlPe4oiB02TOySDdRd/NVju0Z1zJqeBDqIDvZVtmcJ?= =?utf-8?q?y3FgqvJz9dbvJBeyYLiDWr8/gRpqgb1hPFzb6ovad3IZX+xApjZXP21OHeP2R1L9E?= =?utf-8?q?w7yAzEVOegkMQble32NFdxeoXHVlikGHYcRtSVdYe+9LsEQbThekIQ8J42avmeaCD?= =?utf-8?q?p/8hnSyC1aTBoDn46BVZjI/xDbVUuPAQP3y+iB8XnkT8dYJi1/MwfXu/X+rhEcxIe?= =?utf-8?q?Ja4drntaIU6fd87FcB0wydhqRr/PrdEXjSRXRTkJgxVDTLCvshXSKCIAsWPjMz7zf?= =?utf-8?q?A7S9dC8pB4yE7Fyg5VfQLhpTLCW3/T/LxKqWPUjxrfxdbOC6KrLG8VX8kNfEuK4fa?= =?utf-8?q?GSZ54H7Sqjm+kZAuSVkcBePqns2wntKMoZkQAnbIxc92ObJLlLZI7uoBV5DFAAclv?= =?utf-8?q?c5m2H19cdOpLpSuVAHnLvQGjDMgncgp7E74dsvSyJapOPr4nm1ivDzow/msos/6W+?= =?utf-8?q?SzOllS7IInj7rwMrnaEXR4uKMOX0E2SecKyruQfi6dXRitTFg0I0Y3TT2s9qO9aEK?= =?utf-8?q?5qmXWve8iIFaQWG2Z4vQd1oAZbVLQ5J68eEFoHw8AsWJFBldioq7qNXt62ye7TCPP?= =?utf-8?q?0IpLKFG3w0J8Y/iv11PKnXQ5z6Td9IDIkaDSsgmmit+F1DV02wsF2vV8=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 180b9db7-889e-4e6b-9e3d-08dd7b829751 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:31:37.2743 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: L3/HZf18u8qytUbtU0ubK6EhI+I6bHQZM5gvq4t/u/NaoXRWCkCRUs9swNFyPtE2EmmeAupX0+MdrJ2uFi+OvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113141_268080_459AF1B2 X-CRM114-Status: GOOD ( 16.94 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Document the use of (msi|iommu)-map for PCI Endpoint (EP) controllers, which can use MSI as a doorbell mechanism. Each EP controller can support up to 8 physical functions and 65,536 virtual functions. Define how to construct device IDs using function bits [2:0] and virtual function index bits [31:3], enabling (msi|iommu)-map to associate each child device with a specific (msi|iommu)-specifier. The EP cannot rely on PCI Requester ID (RID) because the RID is determined by the PCI topology of the host system. Since the EP may be connected to different PCI hosts, the RID can vary between systems and is therefore not a reliable identifier. Signed-off-by: Frank Li Reviewed-by: Rob Herring (Arm) --- Change from v17 to v18 - mask max value should 0x7ffff - order according to property name Change from v16 to v17 - new patch --- Documentation/devicetree/bindings/pci/pci-ep.yaml | 68 +++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/pci-ep.yaml b/Documentation/devicetree/bindings/pci/pci-ep.yaml index f75000e3093db..214caa4ec3d51 100644 --- a/Documentation/devicetree/bindings/pci/pci-ep.yaml +++ b/Documentation/devicetree/bindings/pci/pci-ep.yaml @@ -17,6 +17,24 @@ properties: $nodename: pattern: "^pcie-ep@" + iommu-map: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Device ID (see msi-map) base + maximum: 0x7ffff + - description: phandle to IOMMU + - description: IOMMU specifier base (currently always 1 cell) + - description: Number of Device IDs + maximum: 0x80000 + + iommu-map-mask: + description: + A mask to be applied to each Device ID prior to being mapped to an + IOMMU specifier per the iommu-map property. + $ref: /schemas/types.yaml#/definitions/uint32 + maximum: 0x7ffff + max-functions: description: Maximum number of functions that can be configured $ref: /schemas/types.yaml#/definitions/uint8 @@ -35,6 +53,56 @@ properties: $ref: /schemas/types.yaml#/definitions/uint32 enum: [ 1, 2, 3, 4 ] + msi-map: + description: | + Maps a Device ID to an MSI and associated MSI specifier data. + + A PCI Endpoint (EP) can use MSI as a doorbell function. This is achieved by + mapping the MSI controller's address into PCI BAR. The PCI Root Complex + can write to this BAR, triggering the EP to generate IRQ. This notifies + the EP-side driver of an event, eliminating the need for the driver to + continuously poll for status changes. + + However, the EP cannot rely on Requester ID (RID) because the RID is + determined by the PCI topology of the host system. Since the EP may be + connected to different PCI hosts, the RID can vary between systems and is + therefore not a reliable identifier. + + Each EP can support up to 8 physical functions and up to 65,536 virtual + functions. To uniquely identify each child device, a device ID is defined + as + - Bits [2:0] for the function number (func) + - Bits [18:3] for the virtual function index (vfunc) + + The resulting device ID is computed as: + + (func & 0x7) | (vfunc << 3) + + The property is an arbitrary number of tuples of + (device-id-base, msi, msi-base,length). + + Any Device ID id in the interval [id-base, id-base + length) is + associated with the listed MSI, with the MSI specifier + (id - id-base + msi-base). + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: The Device ID base matched by the entry + maximum: 0x7ffff + - description: phandle to msi-controller node + - description: (optional) The msi-specifier produced for the first + Device ID matched by the entry. Currently, msi-specifier is 0 or + 1 cells. + - description: The length of consecutive Device IDs following the + Device ID base + maximum: 0x80000 + + msi-map-mask: + description: A mask to be applied to each Device ID prior to being + mapped to an msi-specifier per the msi-map property. + $ref: /schemas/types.yaml#/definitions/uint32 + maximum: 0x7ffff + num-lanes: description: maximum number of lanes $ref: /schemas/types.yaml#/definitions/uint32 From patchwork Mon Apr 14 18:30:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050890 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0D703C369A2 for ; Mon, 14 Apr 2025 18:49:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=mGHcDy0qLXRPv9bDtIJ2M7IEz1TWHDvcXEwtams7Bbg=; b=OP0xU1CuFoaol7rzJtUP/ZE+fI nAv0ZbnhoTOmgdyJLWFS5Sbp1hKhYp++UkoQYRA9D9vuBefE2liht59F83w2dZwmSHr7T1pW1wKgU 4qooHC2Ay+4CHJc0ImkXxoPqWrBtlGV7r8tQMZCFKtWUMHCEreRe5bR4r3/XePMu8ZRqrd7b6YubY Nr1CMKqiZaQB7jPIEmKvCsWaD20wMd83ZwPBfiJy1MU1p9lH8sEhbhWW9gpX+ez5Nrj7Hzcp2ARp2 R4PlAd69KVU0sELF9huCM2O5k3dxG3cLXVBdfRuEneAiZw6jfm1EhuLsPjKFZ3sPUcngxI8Jo3vfa 6pOXHPCA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4OsO-00000003ARb-3PrZ; Mon, 14 Apr 2025 18:49:48 +0000 Received: from mail-westeuropeazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c201::5] helo=AS8PR03CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Oay-000000036tH-1aKK for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:31:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N7AqabQtKmm7CRymhR4AAZwy3MNeV99jwET66TdcXORTbxnVinSONzUA+8EKVenrB/DgakmnJZXm+/ic7DHzCAvAM2Sah6UX4ine4gUWzrLWQh4HNsYbQd41ISht8itfDKQADXFdBhZ1/fP0JTD8kvad92IX3RiWARqe0wEmayPsZIAVgPOBgO3R3mI+SBZ0EYh5oBkX8CmOPurVsQ6a/E1GwOTkB7AQQgWSziPYKH1d4UDcreb2FfnBn2Y+TW7zvMZnc0lS+0oJzMvZKvQoY2ZPR73fESM1Hp5xWa4veUveHwzSnZ1E17xLgUTiN4IYUTHN8IC1q/CXirMY2DA9Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=mGHcDy0qLXRPv9bDtIJ2M7IEz1TWHDvcXEwtams7Bbg=; b=dols7QL8VPQwAHZMSgRI0VWGKrVOm/icboLF8Y0X37Oqq5V0z2FSadsIqar8I72WqNeJyef9GoKuw0slK4xh0dOrgzn1r2TQ0Wvr4UY7BZTGZt81rz6TEYrOun2YZCuvjPOZ3L57YwvB4gjKMkEM3EzP/Bz3l9+MMFnQrzgHtGn1FpibUqHKHRbTeXcwJPcyubVlRAPKiJbBuNWcr1Jxw+TP7SXC/lBEtjI9eOWPB6nkcanNhfQvAK1qanocNXgdmQ98TWVkssXn4Jm9ABlJg/c/evpVXk3Lse82KzGpPeTETixcplFX/N/yuH7kZ8GXj0oqRyAZ8ZfRT+wPgtYAYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mGHcDy0qLXRPv9bDtIJ2M7IEz1TWHDvcXEwtams7Bbg=; b=TdUFkipzpSanNCXE7xZFibe45kurcdiEoqiVsJdO2hMhD3GoZVl8SKpJMabW9IYP9LELP+cW70kh/lYAy/LVfNMUYuGVN6mfbEcWWefvVI+bZHrgDGxmKqq/0HPjmvi05mqK3TGjvZQdcxv/JlFqX5PzY1tRYQaXl85gkPSTQuwrr33fRRDmh1jCvPfHo8D09JNVOn29G+rZbYZByis5NgIRaStrbfWF3rrKedBePKQ+l9eDgOLPNKTv/FqI0QvUteEYrujQcr0zWvfWYAjQvKiy9vn3a0fxu5it+W6J6qkEdWO2d3hDsxuqRHwJcXkiQDJuXEMObxjrR+vofJA68A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:31:43 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:31:43 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:30:59 -0400 Subject: [PATCH v18 05/15] irqchip/gic-v3-its: Add support for device tree msi-map and msi-mask Message-Id: <20250414-ep-msi-v18-5-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=1711; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=jis4uAlk2Y8+00RUPuARjfibBzjm61NUigLnBik7ARw=; b=M169c5a8igsdcHqV1CjIUVQEpAB+ONQ1dje9iaO8DI/KlF//vdcpr1DEez81JPyNcAQuly683 TGQpno4ameOAmMeMtYsXy94LVG92Af3/pgRaHei2HrbjWsvWmaQt8YB X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: a945349a-0f41-420e-27bd-08dd7b829b27 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?6n0M4oP5R2ZfPZe5mWNiCFkdc9GOUib?= =?utf-8?q?ao+OB1MALInmuI6exCH1e4wiPzCdZ1/UnamSrx0862uNNphn8B/oSE+IAGswkG5Ea?= =?utf-8?q?L2m/HlmoasUiM+qqK0sFjqBZg4hRuAa28cT5QH4xjodb3tHQ1/4/x3igai8OiGNln?= =?utf-8?q?dpeZk29sdPiFpo2fLLrf5iDOd9Yk1TxA/946IW+U2tnplpodB7lVfb4JBpkpk07BV?= =?utf-8?q?VAWdIkUlnYGfG6cRe7UCRdgBwnazscsf/R8BYqa+ugQMktviF4+eWcLNFTumaPUzp?= =?utf-8?q?yPgGV5wPn1FWnJseKQDBeUNOJGKGpYWIijmIl00UnnbW7LiVBGiZmXK1Ig6mRTEjy?= =?utf-8?q?lAgZ0xcot9uNLF+qIxSak7nfV63SZoTlxyL7nxZC7pWE9P3RhktOIJeGJ3KbELmWF?= =?utf-8?q?Sw6ef3asWfQqJcVlf9+OjKCHOzQcAN3T9kVO0l2vN/nh6svIRQ0utiOZ+RSxUWCXD?= =?utf-8?q?DVw/a/AJAj/WWFwx/qB913sUawIdNS8cEKw5LsBwrTJUzL94jwy7t8fBmyjCNeggU?= =?utf-8?q?YhXKfp+W8UI9Dy3SwAbcxYbSE889f4da0WxqwkaEX2rcy88/0JVuffzMj7SIXhOIN?= =?utf-8?q?K4JqOoFpQdi5CeTipMSIjoh6jOTmarzbi1aD7fFHYq744PdMSljH5NfL1OGF9Ee6U?= =?utf-8?q?7+ywGPA0vB7N76gaxXU3gSIE7zMR0u395CkOEc8qLKd1GFtiTM5f4gEDmyNjHeeQG?= =?utf-8?q?xG2k05U/2VPhPDWc2c0SsGDdSsqt+xWHbuCzKv9ia4N/0MDRFRSepl8zXCltmdru8?= =?utf-8?q?BPXv58vQ7JZ+7oPD5Vry/+aEYO9PTAdhkQCJi9sc4MR0J/5AqzYpoODY+v8YlKJL3?= =?utf-8?q?l9RaYZUvf3ZIxYX0nj5Fe7yGGCkOFPa1f1MebhPNyufYwgtjULZup8q/byo2HyMDL?= =?utf-8?q?IdhEUotWbvuIkHIDdDomnMSxwnafCR10p+n8iP7LgajUHejFSBWizipTZDGgtCsQ7?= =?utf-8?q?oZQpf4gENP2+NJad4stUKYabhxg5cl93L0iZDldzCBpIfQu2Z8ZwUW99L/Fot8Q83?= =?utf-8?q?CyQFzjV70euAnwcv6N60Z6aue8yYHvfspMFyVS+p2/QiHXzckM/9fe2UQzaT3YC/t?= =?utf-8?q?IhvsBrjTBMWZXqavKPxerXCEn7yTApLHaI0fU2eG18UIu+RhrQaJL/1SWbhDTvAun?= =?utf-8?q?EKPSIbOWmfsyhd5VR8FMqu0RIZMKl/squ0WXiLnWMP2ZSnThcKZqm1w2HwZPYrwH5?= =?utf-8?q?6aQVPktgzd10A4FP++GiGFbzmtU5wqy6QSsziy4YLu5ig64JBwpWWuuFu9E2bvfYf?= =?utf-8?q?SnkaYBN3J5dmrZIkMlP/bOYSl/fylaVOXMUWZMmHjKCXH80B5wJtaTxAelT7kJN9M?= =?utf-8?q?Ynr0z5RC8ppCAiw7l2LzL3tKxWmDnoWqxjqMW729WvV32ijzHgkAu+L7h/zpJnuxz?= =?utf-8?q?JXPGbK+TSE/ZmCJWoRQ3CAj8aLj3+SDDA+y1ayVL4MhF72435JWZo4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Q1zeSMDA3NWpVf6ognTukxeNHlgq?= =?utf-8?q?va0v11734xC+wTjyEuFcwPVKEAFozmrmPUXOqwvIOjyBGJIpp3CD7LHxC2JKbv3mW?= =?utf-8?q?rx3i4JoJLQ1guY5cDOpDgBFAvVKe0IAsuYdkVRG1KDYT3afl+gTrfqpZHUHBEZjCj?= =?utf-8?q?OIoAAae2VQwl1S5/gHOjtBrekaNK787qofLiVEtTsIZHo6Tblz3P6gQHhgXJHevgU?= =?utf-8?q?Sb7bmilClZQsDLPeF+QaUsyFK+O4hyK1uN6RMDKtKWlabtcXHERYC58So91GTwIWe?= =?utf-8?q?hXQmW90W11jmk0CXQkGn376qhmbyQrK84RgwU7Q2dhmCcbLvDBEIzOhtnmovyeRCT?= =?utf-8?q?iGxM9CQTqeCaIdvAZerdoX+fPi21INjeXMtSE0VdctSMCt1qLsr15uqh/NSzezz/n?= =?utf-8?q?9ef95ZT0j4bi4fGpmAotqAvz/H6zaUm21/ABMUMqr/GA6yvd1OukFbQ415oh53jlT?= =?utf-8?q?PsNzpjNFwdBG7aoOkli5Km7m9aLZyAszO5+b8MOxt5zJRRckTEExrDGWa6SwPCPc4?= =?utf-8?q?8RHVU5TVGn2q6ysrdCTauuK0ygBG7QKlG5ugA7jui3JdLkLt057zYhafhEf1udXW7?= =?utf-8?q?nrjaAn4VZGud1zLJ0qVH5V9YR3SSUUmmoEyHwveVbmal/4Vpxm0Av5Jfcjiy50zLA?= =?utf-8?q?aou3wRF18myPpLxdrP8U3N/K/F+sFbJNaMK27AaM6QDHEA8isT3iVBpgQdlyr6qry?= =?utf-8?q?HgJdi+I1iy4+WA4MIfBD2EG54Z8cEy6ImsOXn/K26MilKOmvtsBR3KefEb8+gKNj6?= =?utf-8?q?CfXujfiqpa3fYV5uzIZ36DK9ETisGJUh6ru7A2U47oR3lWa4n/N0R90gxS2VL+f1O?= =?utf-8?q?JEfUlfrcf3baDseGxOBwycvlY4NpTga5i/woyW22T+nUV6INZL0OGnETYEbStwv4D?= =?utf-8?q?lkhdN+vZvcXlcMOChqkkCPGTwKib03I9+n2A23vsjmvNMUN9vpquoHMro3Wo3jEEc?= =?utf-8?q?ET/QDrE59zFBgOnTXEx2EiE5ebH+HLMZORoprnw+MyCp+k7A9yS7VczSjUrUkgz5Y?= =?utf-8?q?oxGNShQUbfCW8ECowRYJroSLSWpaVPBtmifwqfYuOXCMNnur2sft8SKGLY0I4fK58?= =?utf-8?q?mbfUgM8S+qvP3o/dfAS2Fmd7SoJGaNYqqJyCUtcSh2ms0zt2suroFhfMaOxnDqBiH?= =?utf-8?q?qPmx704SmMMagrySuJDfJ36VLF5waEz+PE8Yj+haps/YNDCCWXoObpGGCFmMUREAn?= =?utf-8?q?KkQYW7haX1+EXfNEc92Z0iIXZEa1jguiLzlh7AtrL7/Inn1HH+eDj60xfu/c9KlXP?= =?utf-8?q?ISRi9IM7dxITsLBXDwfVCHKbMeu5bOYJra1VpjeiG3SMt8lOEC/RC7H+yiSpDSGCO?= =?utf-8?q?EAR6GE20NFobtjnZJajuUSBZVpEHH5dHJqDxCuHHa6IyDbHricf9ujCP8gTBfOQQ+?= =?utf-8?q?ZhrB/ukbN2th/25/bDdiJO3olIey0fREmMsFOYsq6ty9HiTcoZYXByPgXwaDEywMT?= =?utf-8?q?wErbElG1JsmZ/WJ046Zt7xnowFC1y1pySiX5M2TcPZpuX2cmS79tE3fY=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a945349a-0f41-420e-27bd-08dd7b829b27 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:31:43.6526 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OjsMtssG9LnH7Flk3qK/6rNoW1/kurEBqvyBnif72TlGaEviKt0PdQ2ioFEu7oesfKh2f//gwxeZqm9nFVfGSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113148_423639_567BAA14 X-CRM114-Status: GOOD ( 13.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Some platform devices create child devices dynamically and require the parent device's msi-map to map device IDs to actual sideband information. A typical use case is using ITS as a PCIe Endpoint Controller(EPC)'s doorbell function, where PCI hosts send TLP memory writes to the EP controller. The EP controller converts these writes to AXI transactions and appends platform-specific sideband information. EPC's DTS will provide such information by msi-map and msi-mask. A simplified dts as pcie-ep@10000000 { ... msi-map = <0 &its 0xc 8>; ^^^ 0xc is implement defined sideband information, which append to AXI write transaction. ^ 0 is function index. msi-mask = <0x7> } Check msi-map if msi-parent missed to keep compatility with existed system. Signed-off-by: Frank Li --- change from v15 to v16 - remove ascii figures in commit message change from v14 to v15 - none change from v13 to v14 new patch --- drivers/irqchip/irq-gic-v3-its-msi-parent.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/irqchip/irq-gic-v3-its-msi-parent.c b/drivers/irqchip/irq-gic-v3-its-msi-parent.c index bdb04c8081480..68f9ba4085ce5 100644 --- a/drivers/irqchip/irq-gic-v3-its-msi-parent.c +++ b/drivers/irqchip/irq-gic-v3-its-msi-parent.c @@ -118,6 +118,14 @@ static int of_pmsi_get_dev_id(struct irq_domain *domain, struct device *dev, index++; } while (!ret); + if (ret) { + struct device_node *np = NULL; + + ret = of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &np, dev_id); + if (np) + of_node_put(np); + } + return ret; } From patchwork Mon Apr 14 18:31:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050897 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A217EC369A2 for ; Mon, 14 Apr 2025 18:51:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=CV43Lv9xcy4k1Ss3c5nbEs7m6Hdf2yF4V9lxFdIqHso=; b=XJBjndAv9WXIpLszYJNi5FF7vD kWEuRMzavrROsb3jCzo4giUCTYY/CfETvN4j5dvWGbCM9u90YlUxagvYUb5rDwn4q1PqkLmIyIiH7 feRpunHHfk4bKXYA+VQ1Rau1n2fqQA1WeCqY3nAlOsayqne0UbRBpgXbGmJLvNW+hKqo+Zv3LMx7d FqIN1lSfp/qDkcJRkPNKiSE/9LGpRS8z/yjhDU3mWRPwrAF1mvco+S6chlPUDvd4EeziA/lEtlCF6 mcHWbZ5Y8GMbRjaAlYePbIZTYNtVPUL7HfPT3pmBhVFkK+xTLZBvG9E9/lH1Sj5TxSJQBHE7XZBSj wRhxlYng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4OuE-00000003AcE-25I6; Mon, 14 Apr 2025 18:51:42 +0000 Received: from mail-northeuropeazlp170130004.outbound.protection.outlook.com ([2a01:111:f403:c200::4] helo=DUZPR83CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Ob3-000000036vm-2YiB for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:31:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YfcUfU4BRFHwcJyv7iz0JGZYZF2zrdPIVswWAMgK5hkAdQh/3C21e1EmJ62WWXLYFbW8fZjXwVVDJscZ+mrO5Rzn4gTnOJNQBewDjij6G2nPpGqtxHfsTNBtfSjHzKKcRxo19OhPIDgShbXdP6upd0J5LUMIFzSmRJ4Rr1TisPLN+yRa+S4DrNs19sQE46Rr9YfulhswXBXw/HchP22piB9NJ+0OZ9oJV59WESLOdZqZV+bdPVtKCRBAH4v3XJgWyikVqlFqro0RyGwjET+/dZ/70LfG4K2FvXCM1qaM1BIH327ikiR4MY1CvsoqVd23gB31LhN33C5vPuuagcVPeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=CV43Lv9xcy4k1Ss3c5nbEs7m6Hdf2yF4V9lxFdIqHso=; b=f42/jeqayDkDDZcVoopGnTLJ39boXpe9Vk14k1qEdjmXdviHgyMEqYzFsqnpoDoP8aDQHfajMqRfEEL3uUai3FWBIG41A/MTeEXFdjHm0cgI7X3s9lwXjI44fIgnHi7W5adCtQi9jn1K9VfIutcTJOJJfExXBdl+S/lmWdUAzfOAvMlULZW2K++73NaFibALWFJ9wNgmaiyYigVtIqiX9bN56aJhZhqqf7u1U20abYKKSxzTMmYALoTM9uNcnOKh1UUntzSlIXHKMsx9hdgljjBzRNGHmuy7nYi9xL2FYP3C3ZTFvu8yA9KzH3lRwXci5PM23TYSg8/OaWjHIsLG+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CV43Lv9xcy4k1Ss3c5nbEs7m6Hdf2yF4V9lxFdIqHso=; b=gIeEkS57ujCOWbKAAQgBh+A3YXN5lOxert/gIMcIUUJamPD2+n0+4htexSoA/boGPxISIq9TEBJuZeqyfjfiDQ676vO/aM5P7rpFayXdrzODceMc4OrYIJosQBtS3vN5LaBlXKeY/9lqbdFrV7jWEXnKCkUS4cWwHc2wFtgZoPM48xfZmp0LCQJ04FWNokJvx9y9dJyGFU7hpo+idwA8Kyh2t7+9bkj1pTpU3gQfucz2eVP1D2uZkvInjg+CxCW+ZwMBHmFF4Cxkl491p1awOCu0pzphJMr/VDHlYSAWWUW2AE/BHlPIIVuJSUmL3Y6P28pUCoSmoaHo5yIjyh3tbQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:31:50 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:31:50 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:00 -0400 Subject: [PATCH v18 06/15] PCI: endpoint: Set ID and of_node for function driver Message-Id: <20250414-ep-msi-v18-6-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=2203; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=1rniyVcGag0eNeLrwWvT+jPUnbYZckhT5xHhMRAAH+k=; b=M3XttcIZE2pngOxFRfxV2aPLfa0RAPtnnD9lKF59WlR7mZzldABZFnoY5rwp7zgVNqaNLThtw dxECiC90i4uB9/02b7C+KkBk8wyiQw/LS16q7Z8+FkW4qMZ/wuvbkz/ X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 15b24752-751e-41d3-df3a-08dd7b829efc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?MYynAiH47cSmmBHfuiBpad82sGkBF5Q?= =?utf-8?q?+2WgDlpmAtMJlBFPZeKciwIy8rCGm/yTs+vpLUBQ02Yw6iVPVYUG+31XNBAS0oYCL?= =?utf-8?q?cnxyag4tmS5J/U3FRbT2IKMv/GawvhDjeBVpylV0pdbMoMOYWDtQDRZVc6C+IZ67Y?= =?utf-8?q?SjELVy5x3ucD+vmLy43Bip4QyvaWCV6gLG5yXeSL1FvDaQcANUYPNabBV4jt5+Z0b?= =?utf-8?q?b/UFEuzTj4ck1YMfNz4YV6qCpskQfyyViYhMzfrwQCCx1GFMYwUmRfVQLUr4XMblP?= =?utf-8?q?POOnijfA+FUPyAvr2Hq13b8uAGvMYdPUR4PH0vUi9xcse2XhU9ViBod8gJOepwNfo?= =?utf-8?q?UusJRD1tKRnih7mEvkRiYbClH2GNG5ELur+kxOAWNC0f0GJ1agWs5689/1NeS59HA?= =?utf-8?q?ANmq2jPlfd7ypwVykQ17ATj1Jt+m61bFIkJ39zX6pfA8FPqgj1k79sX/zbzIOG4hH?= =?utf-8?q?YVXK+x54XM2ZS1YzpkY5Mr8dlVwL8M2OWZEcvJ1U4BoE2U0zloUrql5q036QnYKsZ?= =?utf-8?q?HRF3FIYzCyA5Zj454ozdy2YmOMqrTL/WCiY/hoJeLf7P0hRhGEWBvpcYASsBdIVls?= =?utf-8?q?xRaYby6SQgVVfl2AI+y8yT/CMDumOL61v6HTeTa9jCYVxsYIc5v8OWG4oQcfmWg4R?= =?utf-8?q?sBMRKVIKzuyCKVcQboy9id8paQ6y7z5jUdT3djg0Fn0kSM8q3IZffy2gYNKC1UkCC?= =?utf-8?q?SEqWlZvIstq5uxWvk61+iCttrvUHy54ku10jdhWZKmhTjdIDZoE+nLohztWURUpGp?= =?utf-8?q?VUPAnLhmL/KwvngK+MNzgPanaplJmcaP0B0/wDdAA76jaCyRh1ofKlMmHp6OO1cNe?= =?utf-8?q?lo/O+a6CYVzkuZ5pSwHW05E3zqP8DZwty/C7CSO3gEyH+xJdqq8Jlvl9FhNqCItlu?= =?utf-8?q?8uGRg75vvTq5ZZ5vzQuYYcA2Rp4S++EKI+/sVPnHua4X7g/mwvToktUENtXIQgNZE?= =?utf-8?q?W44BpxttvEOqCzidHBM/n5iB1A5ezesG5j00bjZBcr59v9HzvoLbVTEgs7E3HU0ww?= =?utf-8?q?w+2623UKSjyTtcNCvkX/HWTJ+AFJCVVrSd2rmjf0x4Fpzhg0R6SkUb4GCvfK105+J?= =?utf-8?q?jt2DOgoUDM47eNk2gu0Fwb5u0M9sbP5Uda1ShqOi8Du8tG0zZdpbLDuBF+W9zCOGe?= =?utf-8?q?qGAJrIBrvZFOD5Bcg4uyn3wE/xIQGL1wVf3CuBfDpgryH51TelgxVeLNy4KfY8hoc?= =?utf-8?q?zTE6a995WcJJT/b4ID5ZRN7JvWD51TpIcW0I9ay2FYcSIw3oMbzNexIlU8Cldg1z+?= =?utf-8?q?BDIWb58iXcFux0te+TuAoyG8dVXeJdXleXenmXHXuOSShESOk25CuOWhXTYheAj7U?= =?utf-8?q?Ht0irjfhz/V3j325g5JpE4f3kYLalaRrmGl9JFOsmvVDEDCf+hZ0fabxnXTL+6LkC?= =?utf-8?q?tXeJ3qnQXQQq5G4VEO7OX4WezB2p5xIzfv+29UQFK19tPRsR9yzYOw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?h6XxuTFhQ9ipkQdzUhiXzHL+fT8c?= =?utf-8?q?H3hNPdAr2h335XISWh30loGhQ/5a9H/A9nS95fSgi4Wf4uox+GYXVbn6udWMEMf9p?= =?utf-8?q?KB8a6e0EHSY57ImuHfF63Yx/NXOuMVOQHEhVK9oYHoeXAo/9ueHGPZ38I6fomZ6UB?= =?utf-8?q?qznskOcdR1CpIetNbq91/mo8RBp1XOeEBp5AXUDVBXFviI0GW9Xj8jO2UQ8PLUchC?= =?utf-8?q?HAHvENGOf0b2GoL/HrrrJUgkmv8Zr3VQEh2652K7eU6AMb4ciD1ODEb15cvMcktjo?= =?utf-8?q?/pYcMEldEq2EwK2BQKnJerp3uGQFMmqZ2N07uIAiUQm5QizWc0O3uAUcCz2hxwghi?= =?utf-8?q?o/oyxpPk1zfdanN91pn5q8Hd6bChte6FQ3fphRh6Jhk0iCKkjlgrEEh8nNEuhiEuv?= =?utf-8?q?uQNYrtAQFizYRS1zR9/s0xm8Gwn6bgwZddVs45uW+uaKh5FoUmgzX/sNzG0d7CEHt?= =?utf-8?q?rc8OQ7yAoyWzO3TxP959WhNkDSkyTZSbdSiZNNxXWabmx4PKqQX0d9/PX0O17NXWH?= =?utf-8?q?xeM0khTbaLw/X27cJ/1zOpeuheWM4U5QL8rMVQdvU3wpJmHf0ylr8MjGYPpOFRujh?= =?utf-8?q?5eDjncEGROssZ+NXzN8b7JmkP+CHuu/i9UDAeO3IkbOwkcyudEeHAHCXBcZcVkdJc?= =?utf-8?q?T+14ne14wvpV+jfblV9iLp9vbhYY7jEhtZIbTkCAGj4QfwfQrM7c5XRVwLazIa5PO?= =?utf-8?q?2RI4BzYII34QvLraxJFcYrxuFT+7DJans5tfOKmmILdbS+sOjdyOmwxiMibQSdj/q?= =?utf-8?q?bF8OSVyuw7pL8N6MsKqJFDW9jSyYL9Ce9rTgnlMdcLJe6JA0DAP2kgBbBCOTzUrIP?= =?utf-8?q?nQktw5XLiLP7eEs+DAmY5aqj4oaZVKwRT3FdS3syB6Kh7J+FT2OH+uAul7DHveNew?= =?utf-8?q?s9sPHG9El2VKb52xzwCNY4co586fYZPvT6iRYDk2g/J+HPXf+84cO4xNAgSqxR5zq?= =?utf-8?q?GxqENbQ+kjy7bZlModd+AprCaNQNdlJfccSzYIgjrfynyBBilzqeVJTISzgjqv8pa?= =?utf-8?q?uWmF9JWHtfUos7lzKHEM8nBQuxBFdD25CV5LYEsTKAHaf+BrLye5b4WQx3x4QrjUY?= =?utf-8?q?2TyV0wobLu2Ele1qCu76Fua19XMvHMbskC9DTInx+zizPlzTQbQxPXhUGhAqNGNGh?= =?utf-8?q?Mjt1m4cX2UwFQ27gsSQhJycXySz1mqrM7leQlh8Zw1T9iW4Hu7Wzw5MKsTytHDTI2?= =?utf-8?q?MoysC3sJ/+hyQs0pXmt6l1dbswzYPQNPSyTovNt6nV0tpmaYMxPeE6nqzfA2DghWK?= =?utf-8?q?rcXmX3td/mKJ9E0J3a1er7T0rlBf/+71cTpNZgLuX8y4V9ULhZEo51IHjeQwY82Rt?= =?utf-8?q?EL4dphAiciNB2qHdAAXQjlvQNAKQMRKiWC88UOfeLCmtpTOdBW3dfvEA15GASdFM0?= =?utf-8?q?E0RK4Szva1mXqHlckHCqq+uW9nlYaTyCbYLrJk7iLujK1DaNARujPwS26QdNF9vNl?= =?utf-8?q?nxHTocDWqkTMTZtYCBrc3UCj5nPeYn8v5qbPdI6YVhBNCvx7F26G4C3I=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15b24752-751e-41d3-df3a-08dd7b829efc X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:31:50.1408 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3Eoz48DY+soC5H9I965MBtDeBDwC4/MSGBTCb8eiwPXXRhJzy6piwFHkjc2+UOIroCky1qDxTN9jMcVZcBK3kA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113153_657034_070F4734 X-CRM114-Status: GOOD ( 12.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Set device ID as 'vfunc_no << 3 | func_no' and use 'device_set_of_node_from_dev()' to set 'of_node' the same as the EPC parent device. Currently, EPF 'of_node' is NULL, but many functions depend on 'of_node' settings, such as DMA, IOMMU, and MSI. At present, all DMA allocation functions use the EPC's device node, but they should use the EPF one. For multiple function drivers, IOMMU/MSI should be different for each function driver. If multiple function devices share the same EPC device, there will be no isolation between them. Setting the ID and 'of_node' prepares for proper support. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v14 new patch --- drivers/pci/endpoint/pci-epf-core.c | 4 ++++ include/linux/pci-epf.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c index 394395c7f8dec..d04224b8e1631 100644 --- a/drivers/pci/endpoint/pci-epf-core.c +++ b/drivers/pci/endpoint/pci-epf-core.c @@ -120,12 +120,16 @@ int pci_epf_bind(struct pci_epf *epf) epf_vf->sec_epc_func_no = epf->sec_epc_func_no; epf_vf->epc = epf->epc; epf_vf->sec_epc = epf->sec_epc; + epf_vf->dev.id = PCI_EPF_DEVID(epf->func_no, vfunc_no); + device_set_of_node_from_dev(&epf_vf->dev, epc->dev.parent); ret = epf_vf->driver->ops->bind(epf_vf); if (ret) goto ret; epf_vf->is_bound = true; } + epf->dev.id = PCI_EPF_DEVID(epf->func_no, 0); + device_set_of_node_from_dev(&epf->dev, epc->dev.parent); ret = epf->driver->ops->bind(epf); if (ret) goto ret; diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h index 879d19cebd4fc..1040d83740f9a 100644 --- a/include/linux/pci-epf.h +++ b/include/linux/pci-epf.h @@ -213,6 +213,8 @@ static inline void *epf_get_drvdata(struct pci_epf *epf) return dev_get_drvdata(&epf->dev); } +#define PCI_EPF_DEVID(func_no, vfunc_no) ((vfunc_no) << 3 | (func_no)) + struct pci_epf *pci_epf_create(const char *name); void pci_epf_destroy(struct pci_epf *epf); int __pci_epf_register_driver(struct pci_epf_driver *driver, From patchwork Mon Apr 14 18:31:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050898 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 48172C369A2 for ; Mon, 14 Apr 2025 18:53:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+xqxkgKvm1gj3A6xt5BIY8xtOtyrPDV5+Mm8vHnWShk=; b=MElHTHoeumQDi2Ts2QucE4fari 1VBb0PVxxJEfwrYH/t3hQpDzb/ohFxbpg8oQ3iiEbKPBFJDKOGW5w6s0fGBsN6FjevbvwpHRc2CQP SBoB3XgNXsZ6rLjzpd+kQQR5HJc4su4pZPAap2oNAN/Y6Fun0xhbW0/YM7paE+XUe8pGXF5lsDvZK HWhE4ZbH5HKuvDTTi+MkV9Q9XAcIBaM0wludfythIG6Q9TvGzibEFwziwxb8X485Ll9ivk6xjQqQK is0GezxfyDP2ey/egdxkZpA602GrFGcK5JerLC3pkZyF82O9DylQsGgVFFTXmoVOYGJ0kI3PSgLU3 A0j72azQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Ow4-00000003AtZ-1Kx8; Mon, 14 Apr 2025 18:53:36 +0000 Received: from mail-northeuropeazlp170130004.outbound.protection.outlook.com ([2a01:111:f403:c200::4] helo=DUZPR83CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Ob9-000000036xK-0dXQ for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:32:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ixtZJFa7QQPJxkB5GNEaR1yG73v+ZJ3ZyhfVURDK1PAaCYwnIz5l4y8DOn3cfaPiOeryYbyuzHIFEIQ1Bjg2SPX2WXLxq89I9yZn8BVXcjlrP0TcEiIzIT0QYTzp9f8ABWM/cOmV5k9db/JolZrmkYNWcOqwDuCxeCw16j4jdCEg2yW8bz0yzIhhiYFk0pYHeOQRr9x1ySQ30dl+sJsmDJWQC6ZUHCOEmI5yYw+M50E+Kod4xBBfhJOhRpkbMG5lqLcR/20mRVD4lmZqIrUBZxIch8IQbAXR5pR8DXGuUy/l30Z5k7XWGk6kGMKg494A7OGystmh472kvscmN+HVow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=+xqxkgKvm1gj3A6xt5BIY8xtOtyrPDV5+Mm8vHnWShk=; b=Bqa7i1Vhplp7wxYk02+CgadblV0NLFYXZXvQn1+8ZEyt0iKwZtWz4HiQLxKFtrdwRIsudDMShDBDPd0T01tSPrxlMUmCMX9jOxpQbFmmTXgxOJLZ8mJ8sAR5Dp/sOLp7ru66U7PAx+HXQPhXyZRCt4VgBo8T4PDeIUWDLEze/aSKIRRPkle3XgTfpay6F1Eg22PZU6l3XgyVB8lgbutGZeG+rAJsvmUKnH4SwurC1+5kvZ/sT1MywULfnQWlVfCRC+h51XXNnZ/HpklMCmz2N3xvpVb+DmJGsTdeNyHxKlxLLfB71yhFwbLxZWctZJUITelklMm/UnmqbLuBckTSFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+xqxkgKvm1gj3A6xt5BIY8xtOtyrPDV5+Mm8vHnWShk=; b=k8jNkT0NqguI97p6lFbeDPeOXRWrahmv2xNNACPZABXfXsT+aJ1HcecIMwtklTp8tFvs5mcFBmUsUb9QGsMJlYANzzCDctj34v4d68wSqKzAEV/zwt5UXccgaSWv1C/zIW778EZXMcJQ9a4IfpBgsFC7G+LyTlinb8BvKlVubzxzxP7Gxr94/fSOcvggbFvz37++sPJTpOAm9uqykiIfxnepZTXU/xMAxW2gCLowm7I8O4pzptwlWhikUMoXH0dkNzyQFYH9Vx9CqUzoNbmBwkqPWbvnfMrzLsOhTdFzAjwtqPzRRVfF01J/68Gfg67ubMuJCFB9MV+nIMIklEyqGQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:31:56 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:31:56 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:01 -0400 Subject: [PATCH v18 07/15] PCI: endpoint: Add RC-to-EP doorbell support using platform MSI controller Message-Id: <20250414-ep-msi-v18-7-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=8330; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=zWJgc1SPoeJ2QBwxQHqDEE5KTaCTR3/w/iApYH7Ymro=; b=cFdEOqN1WpyeEwRmGErVYyxabXs3IiyDvRFwvHO+AdT2sw033Ha+HSjJew43mhwn4zdtBUxX+ tDim1d0Z1duC1/Uzu9Yg3HIEAk+E432+CwM3rAPEGwdLk3TyUxo8g+6 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 759b0aca-b383-4727-08c8-08dd7b82a2e1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?5w4N/MX6huLZ7FWC+7oWNuF0VhcbMGt?= =?utf-8?q?deHUO1dCVEA5XYQtJqFjBM49zBZ6VK93yid2OeRxm0P87qH0GIDSMNfgoyjbVyhTJ?= =?utf-8?q?u4fHaN0A5aMBm40wi9sv1DTvweDCNwhD0Vy/R+q0FAYqfJHBl2YIvbDXJWXpZUEnO?= =?utf-8?q?agwJ4zK/gSRuXTJY2aK24bURatFKOG5ir3/638u7/jJ1bNMQ4/Ok21Pq+Cu8rgy+3?= =?utf-8?q?sOMv0hNC8yw7zq1tHMGMgWttuDzwpp4NuhT3n9Dn2ftw5bbn92VjecHh4aUavsqZB?= =?utf-8?q?fjQsbVi5onElIq+WkC3m66BvZcbISwnLJKbz2Amn4JtONZHmfTmzhshQWGMF/hcbK?= =?utf-8?q?kBT4YWYY7yJIsD6mz5/cZHmvJZ7+zEPDn74FhNB1o7l5yWGA42dB6BbY+5AeTkGBO?= =?utf-8?q?xXQbSd1/b0LZ/+SVKWZR64DjB40cGw9U2dytXA1+NIdTsD0rzkPdF1UXy3M6RzHQc?= =?utf-8?q?i1Axke4xZllfn52ySlV9PwDqaXyUB/YLZOkTRI7DykbxexRwL9XFwSjOa8OO2ZP2Z?= =?utf-8?q?7e9WyoDOMVIWG7Ow8iZGsk/8jWOy1qirlUDPE4Ez/+HqVBN5jXeBnSRi5ffIfYCPb?= =?utf-8?q?IIo+9KtHYf/3AsyWH0rbJhxLs9lJuEx/U0buTKU8K/sF/DmmmoFUZ0qaSY5I2u47S?= =?utf-8?q?vv/tJUmDOiytaxewvLBCX4wFdwJOtQlwBEDoWBRPJZwXV5x2GI0QhpF0iCEwm+GWq?= =?utf-8?q?KT/FxtPMVwNiM3qjiGOCgRMhUMTv11cmtExofXbbkejIE3wwhD4tXYHX8eMpMqnt3?= =?utf-8?q?kp6zW30bIAsk+hHQINAlYh7yIiAgV9obVfPnkJUNV6UNdzWVlzyEYnWv7FBEqFotU?= =?utf-8?q?hG3GflPbRHdL48GxTGuG4rO1jme/fH7mX9u5uvMhFlQWa9d783n4x7TlNleNiVueY?= =?utf-8?q?9tTcUR9MvVgRS0uMw0l/vclplFBVJR5++5FvWzuSMzuQ9THYvt1NzcPOXIu2xMJ15?= =?utf-8?q?kl2gkXalo+jlhgbT1eP4dsZFjKZQVrMJze0SHvuDAClFcket8jMMS2kexvAOJ2edo?= =?utf-8?q?bDmZdSM6Nw08oUftmwz6+VG/YuDb+Xr8DIHqYcY70w+vCp8ZiFcHXoZPdoP5xQ4PN?= =?utf-8?q?IjqfI1U6l3Ts4JeZesongCnxkjAR8IMR4rpqSNh1u4fXN4fKklCakGrE1vmvrt4Ib?= =?utf-8?q?Rbxg+LkrNbXWKV9mESbW5pXy4OuYQ/kUQt2VpgEl6FNUYtVJhjHbbm71LWzd1eM/A?= =?utf-8?q?by1o9AVQJnfBVmYWGzJCgM/ARmmgwj4td5GzAQmFeNxUFznX0awBcjg5RhJBDJPww?= =?utf-8?q?AG7wjHsYcL/R06Pw92yBzJkfD7OEgGnIn0GEu57BakB/k3vg4OGUHJUfrR6ImLHEM?= =?utf-8?q?4gZ5jPt//7xK3EM5ZJkvljMT9OJ/O6yUqWVNS7rxQ8UKW3U7sk5w211vJvr/6BZOG?= =?utf-8?q?uy2DCruJ17Vua7CXfAAhIb290JXmSoXGheRA2hsf/IEx+zakHdWlGj5FTMZ6b+D8Q?= =?utf-8?q?S4USrAn9rt?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?no4Vq/yRcT6c4MukOLRNXq8nPoX9?= =?utf-8?q?WPR7ckArPalxURvIrDRipVTVnuRAKoZMM5E0m3gC8VEuTHSgu17ZJfZPP93gLq/SS?= =?utf-8?q?97/YTVZTVoESHHJPN/3VgvRuTT0mbL/4w51NAlhyEBHyYWw3Bs95cigtCHmOLOUwc?= =?utf-8?q?DUVcxuem9xq0wtdWZYH0dkmyqZ+lOA9sitU7Tv3Nkn6svZ5eYgqkJ0FhsD/gUc+J0?= =?utf-8?q?4rihiIp+rs1XkZSy7k/8S+0gLN7aM2UTiho3A14voMAH4UPogsCOlY5Q8eiC9lU4i?= =?utf-8?q?bCjwmpEv07CtTxT8/UdB7IQNE3TLmL32SjiVu+REZEQiIGlU6WCznbAlBWTrYFjfX?= =?utf-8?q?VXmaIjWS8XfZBFofdbTIamne8l+BC3wBCzlrfBHNgH7Et3i938LFq0NEyrGd0ok32?= =?utf-8?q?p0Jh3z6gnMcmNTsDmRVyRhMLMTTf5OccjxWOKxJ0pWyxzGkHWJlYzKXzx/W7dcTy3?= =?utf-8?q?YDPAeIKjap+Zxla7YyMj+VCMHa3uD8BpIrNFauguc1fHV5cAC4/JnwsakPiAKysuG?= =?utf-8?q?YXlGHHWb3lcJsrsSP5b83wdBbL8fFjWttgdtYCypmoWd/7rvc+SUfIE9TgRoJy0rM?= =?utf-8?q?3/k/NWmHRwEXJG+Obd4xrZhDa+NR2k7hVa70thyVgUFe4YMontyfjbCStGW/h1rUl?= =?utf-8?q?eKe3WeW6wxENg0a6pWr6SHIIEWXZOojUwzhEyq3uFPxrQEfa48akxT2m3mQ1h/P3b?= =?utf-8?q?bpIfKAoXGYK3Z2ifulOddyuQBrzwnsJUmg5h0l7Z0IhLJets1iPdszSY/FLq5J/Qf?= =?utf-8?q?dFZ7/IgSDFBs74qYlcLZqtHfT5vOt1XSOeWWfe3rXlYEJVcFgit8USrC5kDx2X+iK?= =?utf-8?q?Y07v618AZbOToI9Elfs/gn29uXw/qZ+VazWqO79+uljCaWajDuRhbtuUp3aU9zak1?= =?utf-8?q?Uf01lzDQIA7docNtliUyKo66nqJA2+mV58fYjhjuITCEQSe0HDnwhHxroIYhqf3zt?= =?utf-8?q?wf1VpuZt2AErcgwe9Qhy3FyhDdC3ayeZ+cltV7nmQSzOnrgixlFpRTEdCHCEH8mXN?= =?utf-8?q?epFAH9t/VF04QaqEJBtYfD3xZzpRoNhOSLNOWttbqsd4GM4QSKL+uPeN5LqVHv6fS?= =?utf-8?q?cFR6Tf18Wqg8kOOCeRvgNOq7lk27CvGIR5DA+BFSiw1xAJ0TfYDeZqS6j8MDBb7n7?= =?utf-8?q?s31JD00nt7ZTh/cTItvpKKg1JsvOTXHmKoqFhKwCbYEjJRxZDOn4j1M5BPdinAUOr?= =?utf-8?q?reuTTW1v8LUrSG59BtdsiKlmscmMeMLrplDh3Q4TeEczXMdDscv3aNwHGfoGVd8lU?= =?utf-8?q?0U+GIkh0R0O785vJeu0g/4FEwEiacfD9I9XKbrytPF8iEVrYvWe7IhIxe8+Gsosl6?= =?utf-8?q?IhgzcJHLInx7rzAHeLroxjszovubOGR5vvgOCsJV7mzpZBK1QBClmjZl003bJCTmi?= =?utf-8?q?wPsJ6MXSo3Zy20dOCGy0X3f+BkLBo6Xh4wH1tgdjbVTAwOYfl3d8e+++kkait7HM2?= =?utf-8?q?35KJEyLDrSwaDPOX6NbEAY5bUvNniQyhEL+GagHKB590CXSkx70GRUUE=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 759b0aca-b383-4727-08c8-08dd7b82a2e1 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:31:56.6511 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UJipJgVEm2ecVsIq0Bp6MIfgvdTX/zMzhI0Pvr5jPZswVI4Lo8nSPbdsMb8tl6pNBhR4+oimsdrPGOyYOYYvZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113159_345146_18EC2103 X-CRM114-Status: GOOD ( 21.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Doorbell feature is implemented by mapping the EP's MSI interrupt controller message address to a dedicated BAR in the EPC core. It is the responsibility of the EPF driver to pass the actual message data to be written by the host to the doorbell BAR region through its own logic. Tested-by: Niklas Cassel Signed-off-by: Frank Li --- Change from v15 to v16 - fix rebase conflict Change from v14 to v15 - check CONFIG_GENERIC_MSI Fix below build error | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202502082204.6PRR3cfG-lkp@intel.com/ All errors (new ones prefixed by >>): drivers/pci/endpoint/pci-ep-msi.c: In function 'pci_epf_alloc_doorbell': >> drivers/pci/endpoint/pci-ep-msi.c:53:15: error: implicit declaration of function 'platform_device_msi_init_and_alloc_irqs' [-Werror=implicit-function-declaration] 53 | ret = platform_device_msi_init_and_alloc_irqs(&epf->dev, num_db, pci_epf_write_msi_msg); | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202502082242.pOq1hB1d-lkp@intel.com/ All errors (new ones prefixed by >>): drivers/pci/endpoint/pci-ep-msi.c: In function 'pci_epf_alloc_doorbell': >> drivers/pci/endpoint/pci-ep-msi.c:49:14: error: implicit declaration of function 'irq_domain_is_msi_immutable'; did you mean 'irq_domain_is_msi_device'? [-Werror=implicit-function-declaration] 49 | if (!irq_domain_is_msi_immutable(dom)) { Change from v13 to v14 - basic roll back to v9 - use device:id as msi-map input, its will handle it - use existed platform_device_msi_init_and_alloc_irqs() - pass down epf->dev point, because epf->dev of-node will be the same as epc's parent. Change from v12 to v13 - Use DOMAIN_BUS_DEVICE_PCI_EP_MSI Change from v10 to v12 - none Change from v9 to v10 - Create msi domain for each function device. - Remove only function support limiation. My hardware only support one function, so not test more than one case. - use "msi-map" descript msi information msi-map = ; Chagne from v8 to v9 - sort header file - use pci_epc_get(dev_name(msi_desc_to_dev(desc))); - check epf number at pci_epf_alloc_doorbell - Add comments for miss msi-parent case change from v5 to v8 -none Change from v4 to v5 - Remove request_irq() in pci_epc_alloc_doorbell() and leave to EP function driver, so ep function driver can register differece call back function for difference doorbell events and set irq affinity to differece CPU core. - Improve error message when MSI allocate failure. Change from v3 to v4 - msi change to use msi_get_virq() avoid use msi_for_each_desc(). - add new struct for pci_epf_doorbell_msg to msi msg,virq and irq name. - move mutex lock to epc function - initialize variable at declear place. - passdown epf to epc*() function to simplify code. --- drivers/pci/endpoint/Makefile | 1 + drivers/pci/endpoint/pci-ep-msi.c | 82 +++++++++++++++++++++++++++++++++++++++ include/linux/pci-ep-msi.h | 28 +++++++++++++ include/linux/pci-epf.h | 16 ++++++++ 4 files changed, 127 insertions(+) diff --git a/drivers/pci/endpoint/Makefile b/drivers/pci/endpoint/Makefile index 95b2fe47e3b06..c502ea7ef367c 100644 --- a/drivers/pci/endpoint/Makefile +++ b/drivers/pci/endpoint/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_PCI_ENDPOINT_CONFIGFS) += pci-ep-cfs.o obj-$(CONFIG_PCI_ENDPOINT) += pci-epc-core.o pci-epf-core.o\ pci-epc-mem.o functions/ +obj-$(CONFIG_GENERIC_MSI_IRQ) += pci-ep-msi.o diff --git a/drivers/pci/endpoint/pci-ep-msi.c b/drivers/pci/endpoint/pci-ep-msi.c new file mode 100644 index 0000000000000..549b55b864d0e --- /dev/null +++ b/drivers/pci/endpoint/pci-ep-msi.c @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * PCI Endpoint *Controller* (EPC) MSI library + * + * Copyright (C) 2025 NXP + * Author: Frank Li + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static void pci_epf_write_msi_msg(struct msi_desc *desc, struct msi_msg *msg) +{ + struct pci_epf *epf = to_pci_epf(desc->dev); + + if (epf && epf->db_msg && desc->msi_index < epf->num_db) + memcpy(&epf->db_msg[desc->msi_index].msg, msg, sizeof(*msg)); +} + +int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_db) +{ + struct pci_epc *epc = epf->epc; + struct device *dev = &epf->dev; + struct irq_domain *dom; + void *msg; + u32 rid; + int ret; + int i; + + rid = PCI_EPF_DEVID(epf->func_no, epf->vfunc_no); + dom = of_msi_map_get_device_domain(epc->dev.parent, rid, DOMAIN_BUS_PLATFORM_MSI); + if (!dom) { + dev_err(dev, "Can't find msi domain\n"); + return -EINVAL; + } + + dev_set_msi_domain(dev, dom); + + msg = kcalloc(num_db, sizeof(struct pci_epf_doorbell_msg), GFP_KERNEL); + if (!msg) + return -ENOMEM; + + epf->num_db = num_db; + epf->db_msg = msg; + + ret = platform_device_msi_init_and_alloc_irqs(&epf->dev, num_db, pci_epf_write_msi_msg); + if (ret) { + /* + * The pcie_ep DT node has to specify 'msi-parent' for EP + * doorbell support to work. Right now only GIC ITS is + * supported. If you have GIC ITS and reached this print, + * perhaps you are missing 'msi-map' in DT. + */ + dev_err(dev, "Failed to allocate MSI\n"); + kfree(msg); + return -ENOMEM; + } + + for (i = 0; i < num_db; i++) + epf->db_msg[i].virq = msi_get_virq(dev, i); + + return ret; +} +EXPORT_SYMBOL_GPL(pci_epf_alloc_doorbell); + +void pci_epf_free_doorbell(struct pci_epf *epf) +{ + platform_device_msi_free_irqs_all(&epf->dev); + + kfree(epf->db_msg); + epf->db_msg = NULL; + epf->num_db = 0; +} +EXPORT_SYMBOL_GPL(pci_epf_free_doorbell); diff --git a/include/linux/pci-ep-msi.h b/include/linux/pci-ep-msi.h new file mode 100644 index 0000000000000..6dfbe9353f0d8 --- /dev/null +++ b/include/linux/pci-ep-msi.h @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * PCI Endpoint *Function* side MSI header file + * + * Copyright (C) 2024 NXP + * Author: Frank Li + */ + +#ifndef __PCI_EP_MSI__ +#define __PCI_EP_MSI__ + +struct pci_epf; + +#ifdef CONFIG_GENERIC_MSI_IRQ +int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 nums); +void pci_epf_free_doorbell(struct pci_epf *epf); +#else +static inline int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 nums) +{ + return -EINVAL; +} + +static inline void pci_epf_free_doorbell(struct pci_epf *epf) +{ +} +#endif /* CONFIG_GENERIC_MSI_IRQ */ + +#endif /* __PCI_EP_MSI__ */ diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h index 1040d83740f9a..dcc6e2a2c6b3c 100644 --- a/include/linux/pci-epf.h +++ b/include/linux/pci-epf.h @@ -12,6 +12,7 @@ #include #include #include +#include #include struct pci_epf; @@ -125,6 +126,17 @@ struct pci_epf_bar { int flags; }; +/** + * struct pci_epf_doorbell_msg - represents doorbell message + * @msi_msg: MSI message + * @virq: irq number of this doorbell MSI message + * @name: irq name for doorbell interrupt + */ +struct pci_epf_doorbell_msg { + struct msi_msg msg; + int virq; +}; + /** * struct pci_epf - represents the PCI EPF device * @dev: the PCI EPF device @@ -152,6 +164,8 @@ struct pci_epf_bar { * @vfunction_num_map: bitmap to manage virtual function number * @pci_vepf: list of virtual endpoint functions associated with this function * @event_ops: callbacks for capturing the EPC events + * @db_msg: data for MSI from RC side + * @num_db: number of doorbells */ struct pci_epf { struct device dev; @@ -182,6 +196,8 @@ struct pci_epf { unsigned long vfunction_num_map; struct list_head pci_vepf; const struct pci_epc_event_ops *event_ops; + struct pci_epf_doorbell_msg *db_msg; + u16 num_db; }; /** From patchwork Mon Apr 14 18:31:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050909 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E448BC369A2 for ; Mon, 14 Apr 2025 19:05:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1IZAfUVaAOa7chBgO8REmAJsb14Zp8lXTUd7dS+omz0=; b=kzyiQVKwMdpEKoKb/QotBDqRO5 OLuhST/I+E8CKx1S/vItxgUZ9Y4Wv5y2S/hfqnyWmebGIO/8kdGvYYD9FP1r5xPgNelAPY3txxnqH FCd+oCWhBMneZ/W54gCdr/uSASI8hZG++c9AoQU5Ib5meLdwzLWaGub+vP/JhIWqMdFkUyXjOoSKq MdBJItOfWXgQNMII7Gbsp3NE86SddQ+QG9XfWVVJG+d3eTYF4I6v+xchPjWB7/ndB+GXOiA2i4sCz DRPvhrQR5bmiv4IfE8GCleabBYWydHDmcH1R/wjRauy0c8Ni4AzZxi2U0pORgnljHwhq6nv1Dv6Pc sxbJM/wQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4P79-00000003CRM-0CqU; Mon, 14 Apr 2025 19:05:03 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4OcB-000000037EV-1O7k for linux-arm-kernel@bombadil.infradead.org; Mon, 14 Apr 2025 18:33:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=MIME-Version:Cc:To:In-Reply-To: References:Message-Id:Content-Transfer-Encoding:Content-Type:Subject:Date: From:Sender:Reply-To:Content-ID:Content-Description; bh=1IZAfUVaAOa7chBgO8REmAJsb14Zp8lXTUd7dS+omz0=; b=Tzt/j/KO2FmZ/rrE8NtcM3vYcW U6nSCC/eGGP9UId7yWolCWJUFkooGdGW3ax5zk2vfcSR0SOyDQUA3uJ4kimyaKbWQDPbdXqywxQOr 7LMCHZtchyaom9hwpSWtu9mepzjUtU00/C6VSeaLKijTBnLT1aLATrvSbOhOYI2qAN3SZw2sLL7pQ sK6vdxwzACniDXUQJb/z5JccuAIuQIf4zZuiz10xoY2KV7t+KVFbJoABna18CzhCoPhmqRzaz8bnz qqojGNZkaU3Q0xbJu6OZusifdHCwGpkVNXY3Y865dIoi6bmoQ38vc7B0FDspcCx7DFGjyjKT15wW0 VdAZE/fQ==; Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by desiato.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1u4Obq-00000009khE-0XQt for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:33:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D032PPl3x3ridpf9RgCfg1fjS5dQFkGKeoBKu94jfyHYIqFAYUOgH4REPfZh7INIaFkvRlVCZREszU2Df8oOvFRECR1EyB3Rz7o4cvv83f/YBtcq+Vb6Zk+BJrbspuLRTnD1l6VQWaDcM9v2sWRrTpDYfq6Q2dQ8xvWAHcVl5qlUIpbnBqLvaSJ9i6mOVGPwp7ayx8Z98N2M7ZpWheFEA25jnmZWtBcLlDOyoJkP5UZ1cxyhCDhdKImoS/XZw8K9OAbMxSFFsf9LOHyvOZ6XZbs0JIuFK6K0ccMmVUVvg0gS7QysmJARV4zEvOLZMQiCAcvD+vcPZsq3UM2SgU8gaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=1IZAfUVaAOa7chBgO8REmAJsb14Zp8lXTUd7dS+omz0=; b=RifgdC0Q0asZ8G68BCWdIxzUH9DKXIBRAB+8qUzFDLzTMVAgrIPWxDZs4Y3mYbcrfn83mT6k7lJEv8xoffE1O8zdHWP1yWfeI0MJPaDJy2nluyetZEzXRXYODjKl4x2iU1zBra8/u9OY4DTknhSSMZeS37+0YO6WFYvvBfYmpWm2VnHDlVpecVOZMciqUxyIsFf2qS8hxf2Kdyv0jpHfapwSITXGHwHw275/H5StVwLAJt3WFFG/0yFA33hr6pUHoosw91KqLwV4hC7MdlKX1VVSjBA7AybNnjuYr+VN95mzLPpEiA0YqRBljPIWhudGl2n7pOx6PU2Xmpmu0LwKrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1IZAfUVaAOa7chBgO8REmAJsb14Zp8lXTUd7dS+omz0=; b=KzL+6Xd1ewP2xF0GxyZhzGvPqAOXKvPrDoovJDprp4lUQSNal12krE0kSA3QAe1D/l/eUW4BphEGnYcCYKGBd+nXayy6mVzkl+u3rfRM8YucXK/8DL7DqZb/ivewm7xREFd8fl3dgfk5uZlin6hfOLjH1wVCOQyf7siAimOJNDxoLoJm50U9wzO1GEr9EkY2t8D9juwsudC1z/DoUBiwA3t166VB0ZK+FNELPpK/D/lTzy83WoY7pBqHC3lFcmisHLLREFRHSNSOMJu7TKXmT5flKnMO59z5O+fkdUbNegnPefS8yXz3pAy2tqLFouBZCcwrJUqFk5xVlt3QukWEsw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:32:03 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:32:03 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:02 -0400 Subject: [PATCH v18 08/15] PCI: endpoint: pci-ep-msi: Add MSI address/data pair mutable check Message-Id: <20250414-ep-msi-v18-8-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=1143; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=N/Rcdz4WASrCVzB40i3dK6NDhujmvhnmUfU9wknM7Kw=; b=lHyGx6dxwWJki8Nz8Y7RAQKXFWnbq2mTSjz+me8Iad2NRB2fNQU5ZSS5KBajxLkqNLiOXGHO5 HjCf4nPhw/BCsttd3yEqRTdesJi3woT9ywpTJUFV7RZMy+tjURhs+X7 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: b7e42046-ee22-4ea1-af50-08dd7b82a6bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?EDPfOr8czBUOr750inAFqs4GvBwMs6m?= =?utf-8?q?Fz+UWgatfYk4ERZY7cKd0UxLIBVElf5Xfa0zmwB5lzsX4Sou5tp4TU7JHm4Et27YW?= =?utf-8?q?defQywjjrbRAM52b48KIRIaoaOnkxhymjZg36DZNeEmocBXYdu3G7iUFuUbYYHqdZ?= =?utf-8?q?B+jDdVu/zECbrcMPrEslow9kYkEXwWSHKJgTsqNHhv15yW2uN8NxBmcR0JMeP+BVt?= =?utf-8?q?+AAnCBkD3GeMkU08+jfDY2+Jrqdm/PY+bqrGV+IN0MtfmcKR8GdiijIFTs5Xb/9bh?= =?utf-8?q?wX38i2iadckaS+sq8GdEW3wGWgqRT6Qn7VXlk4tcLeJcKjuYNSzLCJLXdd7ky9MC3?= =?utf-8?q?rwn57Wi9M+c8Yyh5mrgmXJAABS0PEp79IW/mhXdAv2l5bXrOUo1rY19Px7QmMPMtE?= =?utf-8?q?gukhm0gvAk6BSO4lxkY6Wg99wZDultFN2Af2Qd4oG8JoZuSrvEgvM4qdBnYMPGeyP?= =?utf-8?q?hsMZ5zBwPzMc/aOLPxKdLzvo3bLBlG0KxUXTtwRq9ycZC0AhMpUfhrjs93mx7o8gw?= =?utf-8?q?ZtzdBWeFrF5Cd/IQ0CNj2MhcH3yymH7+NyNZ/3luqoP5dkE83AjsOug9iu7nmpIdR?= =?utf-8?q?QrREkw54HfGvVb92coZf2vyq6/9JMZXxfQmLDm4LlQC/TTJb6yijnr03oeS88EQA6?= =?utf-8?q?nRSaH3/2AcDO9yD5KAvo35wYtfJYyOxgj8/AD3m5A17hFGypVa0Aa8zixTIe9p1jo?= =?utf-8?q?4W2RBSVWweA5gIdZVzfqv+teAd/39asy+byAP6NWTPROi3xKFSrb3uR0FRDs361ej?= =?utf-8?q?iDp9uK+a0Jg8+OLVvoMdXs1UuKy/wXh87OhkNQRqXW/h018T7WKwevsR5NnUMGtjT?= =?utf-8?q?nQ9IY7f/BWWYjPXi7hjAeIL5WwQFILQXqB5oYWKpgj9MY8GKGT6i7msjggcu9qImd?= =?utf-8?q?JL1Tcm8jjMuunoAPAad/b6F69GFnBnq/yk5MCq4Ug+RnVD9YbBMGWglJb+M0CIzCf?= =?utf-8?q?lWjAGp9IzEh8b/DI63ZzueBJdZTmHupS4QTymqk9swKXxkJXHjJjHk6YG0FG9yDfV?= =?utf-8?q?/EvuvLzomE2EHwvkghaaXLNwNK5njPbgLDtzliEh/sKT4UGxgAihTUzU8Bk7W7GfL?= =?utf-8?q?r9tA+4DED7a4AVLOSLcz5IKZ+cvH7LMzX0XYpWInApIRKKvrZnKnOWfaHIDagJJKq?= =?utf-8?q?SV19ikNzuRVH3OvFC6B1dTxpLquXt5cKmWjd+B4ygCfZISy/ICr7fUhua0bgtNpND?= =?utf-8?q?zz/wQxYAeXxOvJXuELi16Lnf3gQitLrfYmvg4lAWqF6LRh3crnUIWTXr2KYzCJvpk?= =?utf-8?q?ngiJDLcrZfrZcAvPuC7BSRQNW4Z6pYkkGwnrXFbq0oXrAqNC+qZ/Decf1dLLnulNm?= =?utf-8?q?FwJrF/7UgFwwc+/sTyeEG1+VrlNiYuNOe8h/4xRJCNQdgc4Pev28NGQTXE8Zmw6YX?= =?utf-8?q?tYVcvpOH3lPJjVOPrkkx0vn78xiYpI9JRSNd9QW3DQxcGoqXbbcQWA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Ld4Mh3r4zDbBULcpNdX/MTPustoF?= =?utf-8?q?uAdoMS5deZD2901bmEvEfvHgllthw7nzkquj9yUhnN6v6BXGXCtk42d1RSL81jmyh?= =?utf-8?q?tsdtw9Mbie5op6Z8fAK9FBlc4xAQI7DVFmuYlw6JloGTAyam3glD/nBBisTH3PzHF?= =?utf-8?q?rftx1d2LtVC0e+IrnTa+xXxwVRBxtmCe9ixH7YA5guCGoDDIL5c8YyDf3jGVlyVJ2?= =?utf-8?q?Y/7UPeXI2ipvXxoqtsPI13iyKs3U3gDwC95+QQrx0/HoUicT8NCRns9w1njpIaCcv?= =?utf-8?q?LkvCTLa2suRw6hekDGCZAbI4w95t01y5A0nx9E0hd+ktyWKZCyioL5g/B5vLxcdjk?= =?utf-8?q?eeRWSzlkvyxSE2Qkzaov/6zN0xoq8aCZmGJ2/7UWpti/v8yuJzPIdvXzCuM1cdNJ0?= =?utf-8?q?LJhohDpD8ZZTLrEIoFsI9K5qeOF1SrzdgbTaJqDhgPPp0QyAlzlF9tA9UwktR5tOn?= =?utf-8?q?EPJDHYkYo9vMY8m1zxoJvm7NxL9AMv68dr7w4FJyYEq3Csj+wJglWwG1PkAnQt1Fa?= =?utf-8?q?qlmBky1e9bEO4S8kB8rUAf4BKyy4/8+UBuvbpG51PAhqTqp5aaYm7bFqyUhFGW4oi?= =?utf-8?q?4lAn08oYoc16izIywtDe0phj7LZw5F0Mbyn/9cT4AV0dIO4+lA/BnIvs2+087t5IZ?= =?utf-8?q?hJYXIpMCuMo3lRdDZiohGfLkMqtWn/HZHcUEbTsHh3B6dOpv1oQOWir/1T+vpwv8A?= =?utf-8?q?8OtQWaYihd/Dtn3S7UzW6DJOhofchvRkRXgy9I7uVmbdshIJ9KYFFPfh9eYc9vEgM?= =?utf-8?q?6wz6O7fnAbPezpwzbXaI/Y248U73fX8ZxCSLQ+8ELycHn5kVyiqd1p4DG9SEZtLuE?= =?utf-8?q?gBWgDEQeCicIYVw9tsJeVq2viJWjSLlXrYcYALvOtTEREff/YEVxcHlDAn4lh6UYh?= =?utf-8?q?BYCkw4ggmj4Tf4fv46UZPTR/MFx3hbL7SYHGhZZAlpvB8XlnWY0K0EIdT7V6eT5iD?= =?utf-8?q?txhdh9EZ2Fda7EYecSZebalqAxYvWDqO42KKvJn2Qvh41LcT/pEOrcwTxwFh0oznU?= =?utf-8?q?DSSL1LJizX3TH5SxBviJ+jO/8AJ+NmhEMpLXd0ecvOEDEOkMNq4lk8CUqTFhvbLZw?= =?utf-8?q?OYjwrZRwRgScyeEPqZfhxasGu24dMS+pgVTRC1DJULEtEeBf9L0T/oe8k+kphwGFd?= =?utf-8?q?psH946nsYEylBEn7l8lQPSAKoHZC1ED8eM7sz7DNuWn3GlQxb58jJEiZDGihAIeav?= =?utf-8?q?cd/5jvwviqVX8EKvjvkgoIfbOO6Kw/fMpxLXjI+j4UHc3TmHRkJTn0a0gkTnRNZv1?= =?utf-8?q?V8p9HEZc2Ak+Qzqhun3kkildUSfFRwLWe7874+LWEHgq8ckYG+NryDSlXUnBGG+cF?= =?utf-8?q?5SRLVgy9OXKXifQXA7EE1AvJtvHr4XFlJjNu3OSM1Gm5/LgnQ7IWrAvSoNEk9G8mf?= =?utf-8?q?YTLLv5wbplfzRe/PXzA7s++NKanCF5qKnbCq+ePas04AxSxTzwPkzYVSL9+KGSllq?= =?utf-8?q?jqFwcWLF691ZEu14B+j9i4DEBXRjInYj+YIyD1z8f+0eIUxUzyMj7J00=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7e42046-ee22-4ea1-af50-08dd7b82a6bc X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:32:03.1578 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eEocsnhmrSknPLYIa35D1iufXtPXtq48GOKJiIydHPnuX+R32cyoakXp1l2YIS8fGmpuQgums9E2DCqcT5byeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_193250_304528_FA889520 X-CRM114-Status: GOOD ( 11.01 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Some MSI controller change address/data pair when irq_set_affinity(). Current PCI endpoint can't support this type MSI controller. So add flag MSI_FLAG_MUTABLE in include/linux/msi.h and check it when allocate doorbell. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v14 - bring v10 back Change from v9 to v10 - new patch --- drivers/pci/endpoint/pci-ep-msi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/pci/endpoint/pci-ep-msi.c b/drivers/pci/endpoint/pci-ep-msi.c index 549b55b864d0e..c0e2d806ee658 100644 --- a/drivers/pci/endpoint/pci-ep-msi.c +++ b/drivers/pci/endpoint/pci-ep-msi.c @@ -44,6 +44,14 @@ int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_db) dev_set_msi_domain(dev, dom); + if (!irq_domain_is_msi_parent(dom)) + return -EINVAL; + + if (!irq_domain_is_msi_immutable(dom)) { + dev_err(dev, "Can't support mutable address/data pair MSI controller\n"); + return -EINVAL; + } + msg = kcalloc(num_db, sizeof(struct pci_epf_doorbell_msg), GFP_KERNEL); if (!msg) return -ENOMEM; From patchwork Mon Apr 14 18:31:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050899 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 69233C369A2 for ; Mon, 14 Apr 2025 18:55:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=u+qwraQmG61cZxMtmXO5VrRkCys/e7X2Bx0RuL0d/hk=; b=bhbQdmMVMADLPX7JsjldMEueHu 6J2pqMkC1HVkWbRcrzIwEbtD0eQSZbamnHQDAYleffKOs7TIgscTbuxYRsYa4CrB60PLR5aSj0JoR fISe1y3w1d/Cmf0AO5ATQ3Mj8OnTzemqc53oNWy/oMRGswDQEt7Xgn4SEiZug2FQ+KiFptZoAoawf Pz674KkdDkU9kYBJ1vDdCW70CRk90igj8x0hM8a74fXBYI3Jh9gXKu7e4cUR1ujrRGEdLXzm3aak1 zZHouGTkOpkyjhMjeN2CLa//4GGNJKt0+kuM5/dc1xaSO9AiQljINv20bIBCjQ7teGtasYnRPkax/ WodtdCRw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Oxv-00000003BG6-0CTy; Mon, 14 Apr 2025 18:55:31 +0000 Received: from mail-westeuropeazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c201::5] helo=AS8PR03CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Obs-0000000377t-0DeS for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:32:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w8zTSw6B8N91TcgYHJ/UO46XWS0E29wi4QnDoucr24Vgu8rI2W+9muQC9FuDS032cfENAd6IngYOHi6iLShrMGcFEkrHTi/0z8r0fk8Oh7USQ3OXK8pkh0g2ShRnJZbX9Ti0xrpOA2ZLVIq1Ntmv/kPElsmZqyVfgpvimUk0MhArVttRNsyJckuy+aRh2TIA+DAPCSKidM8huk8lQ8+Lbm44+/p0ug08RGvkLJg0ut35iDutMYkEMnLRi/KlS/DMY4REbnzC9D2bh8biU6h1spk/Oww4CYECmSQFOdYSCG5NmcmpfJNMMQ2eTF/ckv2TXl9XETqFPIONDDLCCL1OsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=u+qwraQmG61cZxMtmXO5VrRkCys/e7X2Bx0RuL0d/hk=; b=tzfwzwtpzlMhf52vesr7XhDq8UjppPWqq2SVnrVjDKZW81RNUo4+ZkYPatHle44niycI442lBgUWnowLgHzORHxp2t+9xXbseKCkIw31bltP6j25AX21NIQU+Ui4JKj5I50VQxH5Xp/RxmPDqA8QYeJ2huXNMBq0n4ymlO29SwAVdSFzIsXkLBW3OpP89rNrRCVo8deOLCNyXMiA5iWlvGPmdiZA8pqOT+aFjrj0Ug3FQ5B730yQ763B798eacHkxnQGRVpBTKA1nQQiJk8cHGwEBMnTYECkbeKowzFf1GWS5P7KSc6zoQriI0RlIhbFERqQhzuYwK6q0cPNfV2YYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u+qwraQmG61cZxMtmXO5VrRkCys/e7X2Bx0RuL0d/hk=; b=Fu6H9394QD4wPRftd2blMvNnXiCWB85fVvom76ROnNjfv3ulWP9do+Vse8WtdF6KcElCaRpVHdceliibeY2yAEkiUwbaa1GVqXanYpiUgDE6ugMlOOIYVMz44w91i2+bB3Jc8iFLQjONbDl2KYA7z2RSPvIXBS5jrmggN0/xf7Hgt6qT/7ZbLqL9KvinNB1tJ4qd9Xne9JDnZWJxv6TsZqzpNYrND9yVkJgDZP78YiY9wVyclYkFExL2vDkYvnxDopxiWkJl6PtRmqM7gJcZF3X8fqLKAZpraHJ0LfLskBvOB2TmSRxyKcP91D0AmvUtQnktYzTYEqWMTWKtKgSqZA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:32:09 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:32:09 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:03 -0400 Subject: [PATCH v18 09/15] PCI: endpoint: Add pci_epf_align_inbound_addr() helper for address alignment Message-Id: <20250414-ep-msi-v18-9-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=4364; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Mp2cXn9FsMWsG/hvucQeIBBPPQdjWFLzH+Ukbq7aPzU=; b=Dg9HNgYvd+aJfWpM1GSctMJ/TmWfRkrMLouKSAGPXkPQmxWAmKjX7tfqsLcLulk2zdY4a0PWZ PDSQ9kxMpkiAlAY/r5c3juCKV1GE44eJXXaxXD3k7NYcTZpIDvzGwxP X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 60038eb4-764d-4c94-1595-08dd7b82aaa1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?k8aAOA4P5y7b0oEQ1dzEawj4zJkvSDB?= =?utf-8?q?qYRdr4+KKPjlyf759Kps/5dxVvX6JmTV5ZEDAJ30GFI4TDsfui5aE0jjsal2e/ydk?= =?utf-8?q?Nf8STSecNk2RyGwaCDB3m9unxCvutKJiqfKMXE9EGUH5SKFn7BUxwq6kxFFuDE1Gj?= =?utf-8?q?G8TBIHf7qUlg/0OtMTRLolaQ48ECcrb4SEBkN9SroUanNSUKnd9BtzDemImZVV8/F?= =?utf-8?q?HqSPqYmLkBknbxNyIE2R3A6hIripqWui/3j+BBhwdzdDTgKjbFGsOUC2QOEdX1KiJ?= =?utf-8?q?l+FweCIZ0P4LM6mGtdkYfacIQ5LmTh3BpLXgHY7z99NcNoZSrcjl0eH2zFVpUX0vU?= =?utf-8?q?rPyywC++V3U/tUPuAw3gBuvn14n+68Bu8+NFPO8q/JGStYdmty4vBebhv9QVzgpri?= =?utf-8?q?DCwxZbT33XrS10sUvCfZH9brN3qz80dFSmeGsdKpJ+8n17QLlsZjr/l9XFcjwtc/e?= =?utf-8?q?4Pl5Fa+PsQnQKRNeTAhbeZaJAuFD/qVc6BKmxZS1Vb0Dk6XN67OhtMJWdKaf6HW5c?= =?utf-8?q?41WQYuzTAk5Gi9cqx8O9Xbkc27//0Jl+Dgxea+3qXxKxHj5oPzVwE4fWZ8T24f7zG?= =?utf-8?q?rKLD6wbblf+i3ViuAvcbs9yFdRxOWtOgwiWR5HYAizqWE658VTH+xWoNp/5e/bsyL?= =?utf-8?q?i2fsCdeXtdcmZgefXCQm2CPm5gm/pRU7P5DvgK+D3D3sMM4aIoEtJr46Vh9/dfbwB?= =?utf-8?q?lzv+AS0vJSeWy0/3B3ZCu2TRvu7xM5aFXN7X/8/p+HpGmegOEgzPIwr225hFgKcaH?= =?utf-8?q?1aV6tCWFPtSH+6lubgrGayjYOR8W47HIAQSZMpRwcj72okDPmysZhqN55hO0scdtN?= =?utf-8?q?87IoeuuG/2GjwjTfxqckmZCr2lLVkv35JA5Txlob5pyb+uz1J8kI9ZL5hRpBRRMRc?= =?utf-8?q?GAfw5MRNDMv7Br0gdmux9Uq2Ff1RKWHHwME+s5F11A75XBF0DGQi6DU53kfcsuxVd?= =?utf-8?q?iCgXp6Z4GBvgjQa5jwiPQ0aeCUly/1F0FXtGOFDMrn9HSXsK9E8gj2xzAIeEx2C3m?= =?utf-8?q?gV6Q5NbJp1MdqXtRx+cRvmVxTdZThcDU66WhTfk9a1hT38BLDpNHlXGMLgxErYWC3?= =?utf-8?q?Q2bx/Bf/aLPGKZtzE0GmESIsgMHFq2N1cffFickhsgkjYCpYPvmQrjEAb5xACvpIf?= =?utf-8?q?CM3AD7w1485KXRI1HudayJ2ClV69lL28eXDX1DLtOouv0Ib8UCPb7h2PkXM/+mqdm?= =?utf-8?q?fan/nItVmVyySqzsyw9hKuxMJp64ac5gXv6GFcb7ixgFeyxLr768JuEWkgOnQ+qNJ?= =?utf-8?q?L3eAFiBIQy4FGhrLSYPUu30gnlfwP+O7NDsEJn83LEltngsp/d+XELFp6OJpZQQxB?= =?utf-8?q?BmGb9qYxliJRu7bh3QGAVKpsBgZm2JVxkCW797nvl5sXFC7Y0BpRt6OfVrMx52Ehl?= =?utf-8?q?nQS5u7igGAFEZwupPMa32VqWYnC60lj9h0ZY2r/f0jK2ZdpuK1AK8IkfPUDpke7Ul?= =?utf-8?q?RBWLYENcwN?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ei5PfeFFQ5brX5+S8qC0VPp3699j?= =?utf-8?q?9wx2nFniMaV8hoCop7svoSePJ8IrWp6iAq40VNE9ZUroRdSb5mW9MpElii881QTul?= =?utf-8?q?8dx+4BrkiG8AYVmLzS2xbcPi05MRRR0AEY9J07r9JXm9HU+oUsaWCU5Rty45AZa3t?= =?utf-8?q?EjWth2qQbSnevAraxKAzRzWkrQO9QiCdAj/rzj0O8xFG2StRj1wIBf5zBcoSo7PsN?= =?utf-8?q?ap81cIEdzhHctxJn/1co9ae/gH7mYYCsUGozEfVLuT/+4fzNc6qS7ebTfDJI+Km4I?= =?utf-8?q?oHqIhOp85PwviOpVr3bpCrUkfeiZDcuGIZmla733i99+P04G5cqc71Ht7mZ9ptTjm?= =?utf-8?q?r89eNMDB11WujnR4/mrlVvYEnQhr2af5ImHD6HSrEnmSNYmK2JNpRNcRgBz4RLFW4?= =?utf-8?q?ZKW8HCSRE/1e0cMzdaKotCcxvEV8LzMW6gEtPcsP83nhJfJK8iZL42vxiGb47RAUZ?= =?utf-8?q?VJot5SrinoVO6JCmalegU64fdPiwNHbSj3wzR99vcDEc+/IzZk40EqNmkmq4aW20l?= =?utf-8?q?HtdGzKR6RXplOn6YE0aBjXO7+MSCWMIU7Xw0459T8d24hzky2Sg7/s1K69WfXsSuO?= =?utf-8?q?J7pHBii/XmSda4nMSIfefEfS4+76OjQiKBbWr+khEEmERUDilnpyiCyOxevV/6MA9?= =?utf-8?q?RMpcmeMVxxHn+TBC1Dvzqb8Hfo9efPuLfe0BsjDdncBUAhDcjzXqfG7UHOEcpY02H?= =?utf-8?q?QZTgUQlQS5IqspsshuG47NXqH38fxkqnUkUMHFvRhdTMbUnBDRCC6vIqEi7LM/W+r?= =?utf-8?q?CCX6rfvriuDAHxKJKBI4NLEV7sHVwR8n3nqV4FDN98gpfm6+UE3YVGyBoNqOio38M?= =?utf-8?q?YWt71j1B5Ui7Mx0d/En0kfKF/v2RjhKjU7ffG7uw++F1XRqcz2MnWcFfLALyKihUA?= =?utf-8?q?2xD5JjrYLn0Rg2aqO+9pVc1YVarV48Wh7G6ZwdBEHgDB5tHiMatc++0/VAfR8okRS?= =?utf-8?q?ed72clgaOI4Q/OzfbKhVuv1FueVGex70Bf5ej5pfD9WOtrqx9BWptO2hfnPp8ByAt?= =?utf-8?q?5gp4pB1cu4DGq/j78728IYLCtIzTIMaQ/0QI/1OmJ9tL1x+JmUdDjZIM+H2DBkT7C?= =?utf-8?q?oAWVwopnRMrI3df3EWo7YbkOeIJkrWZv0L7c/cdYOJrjolxfup3ieBRLnqmucTn2Y?= =?utf-8?q?w9fzSRkiKOebOzafda7f5okaGWMlFtrqqrG5M2lM9hnkvSD/98nUCqmlZKxHQ6Awh?= =?utf-8?q?hhJ55lngS5PxEhWMT5EemwJCgaOc11iIULGAAR9w1LdF4QfoTSChdFNCCk+gAXjb4?= =?utf-8?q?Iq7rMmUTtaVi4f8elIHDDIrR5nO9y1/T1QRo/T30iVqx6Yq6RJctTkgevehUKFM7V?= =?utf-8?q?2oZtr6RSjjsFgaqRrtMnC7tDvux40mB1Zmg5fc17sd05NgwKCDkxj/c1pdBFpsGHJ?= =?utf-8?q?95t50ev2ykg5HQNuQGoyEqJPL3hHRFBmG6Xdu9wVos0O9crnPcwuIJYlvdkCZdt0m?= =?utf-8?q?UtasVzZWs47ys++bDTJg1IU9vejYsagyW/FVndE50jR9nyT6Krl43g3g=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60038eb4-764d-4c94-1595-08dd7b82aaa1 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:32:09.6752 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eFacAYvx5tA9m3oi7SR//LapI9OIej1kJxhaZkmotVnaKS76xmjc+fyJ2vadg9e6jQFnCBbRGdTsFmlmnuov9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113244_251169_185E5193 X-CRM114-Status: GOOD ( 19.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Introduce the helper function pci_epf_align_inbound_addr() to adjust addresses according to PCI BAR alignment requirements, converting addresses into base and offset values. Signed-off-by: Frank Li --- Change from v15 to v16 - none Change from v14 to v15 - change out address type to dma_addr_t to fix below build issue | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202502082311.G1hWGggF-lkp@intel.com/ All errors (new ones prefixed by >>): drivers/pci/endpoint/functions/pci-epf-test.c: In function 'pci_epf_test_enable_doorbell': >> drivers/pci/endpoint/functions/pci-epf-test.c:726:42: error: passing argument 4 of 'pci_epf_align_inbound_addr' from incompatible pointer type [-Werror=incompatible-pointer-types] 726 | &epf_test->db_bar.phys_addr, &offset); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | dma_addr_t * {aka unsigned int *} In file included from include/linux/pci-epc.h:12, Change form v9 to v14 - none change from v8 to v9 - pci_epf_align_inbound_addr(), base and off must be not NULL - rm pci_epf_align_inbound_addr_lo_hi() change from v7 to v8 - change name to pci_epf_align_inbound_addr() - update comment said only need for memory, which not allocated by pci_epf_alloc_space(). change from v6 to v7 - new patch --- drivers/pci/endpoint/pci-epf-core.c | 44 +++++++++++++++++++++++++++++++++++++ include/linux/pci-epf.h | 3 +++ 2 files changed, 47 insertions(+) diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c index d04224b8e1631..529dbaaf76750 100644 --- a/drivers/pci/endpoint/pci-epf-core.c +++ b/drivers/pci/endpoint/pci-epf-core.c @@ -473,6 +473,50 @@ struct pci_epf *pci_epf_create(const char *name) } EXPORT_SYMBOL_GPL(pci_epf_create); +/** + * pci_epf_align_inbound_addr() - Get base address and offset that match BAR's + * alignment requirement + * @epf: the EPF device + * @addr: the address of the memory + * @bar: the BAR number corresponding to map addr + * @base: return base address, which match BAR's alignment requirement. + * @off: return offset. + * + * Helper function to convert input 'addr' to base and offset, which match + * BAR's alignment requirement. + * + * The pci_epf_alloc_space() function already accounts for alignment. This is + * primarily intended for use with other memory regions not allocated by + * pci_epf_alloc_space(), such as peripheral register spaces or the trigger + * address for a platform MSI controller. + */ +int pci_epf_align_inbound_addr(struct pci_epf *epf, enum pci_barno bar, + u64 addr, dma_addr_t *base, size_t *off) +{ + const struct pci_epc_features *epc_features; + u64 align; + + if (!base || !off) + return -EINVAL; + + epc_features = pci_epc_get_features(epf->epc, epf->func_no, epf->vfunc_no); + if (!epc_features) { + dev_err(&epf->dev, "epc_features not implemented\n"); + return -EOPNOTSUPP; + } + + align = epc_features->align; + align = align ? align : 128; + if (epc_features->bar[bar].type == BAR_FIXED) + align = max(epc_features->bar[bar].fixed_size, align); + + *base = round_down(addr, align); + *off = addr & (align - 1); + + return 0; +} +EXPORT_SYMBOL_GPL(pci_epf_align_inbound_addr); + static void pci_epf_dev_release(struct device *dev) { struct pci_epf *epf = to_pci_epf(dev); diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h index dcc6e2a2c6b3c..299ce1f1e2d80 100644 --- a/include/linux/pci-epf.h +++ b/include/linux/pci-epf.h @@ -241,6 +241,9 @@ void *pci_epf_alloc_space(struct pci_epf *epf, size_t size, enum pci_barno bar, enum pci_epc_interface_type type); void pci_epf_free_space(struct pci_epf *epf, void *addr, enum pci_barno bar, enum pci_epc_interface_type type); + +int pci_epf_align_inbound_addr(struct pci_epf *epf, enum pci_barno bar, + u64 addr, dma_addr_t *base, size_t *off); int pci_epf_bind(struct pci_epf *epf); void pci_epf_unbind(struct pci_epf *epf); int pci_epf_add_vepf(struct pci_epf *epf_pf, struct pci_epf *epf_vf); From patchwork Mon Apr 14 18:31:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050905 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4C2D6C369A2 for ; Mon, 14 Apr 2025 18:57:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=kKlGqegoRweF1++Jqh2S5594pr64Kj2EekHsAJSq3y8=; b=qy+6cg3wvClBNS/oMmsVfc3Cw7 RiuaJWIN1aSO11fxn3s5/34Pt3Cx2p6ngwWzvVwgO9sfcv92FiPfwAIMdXOj6D7bXBu+UlwUZCIO7 DLfGnLAkiAYdqzGDSTYFl8IMlUY6xNcu7eGmXwwfCFndw3RbiHw5A5ARiSgMJCx7jTR+1HJeO9g4j VbR1Sn0qw1BU9qqXuP+CcErvP+iUGJJgJ/3t0jh1zR5JM0yCy+2ROXWoz0l6tsXbeQzOWPOqkqs4z /wq9EE4w2M4hl+2IBm7Vyh2eoi9VQn2L6D3wSXLyV/zTf4Q/kZV3reon23Od4jSOw7hbIc2wnI2cN pxuVnzeg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Ozk-00000003BPl-3I9B; Mon, 14 Apr 2025 18:57:24 +0000 Received: from mail-westeuropeazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c201::5] helo=AS8PR03CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Obt-0000000377t-45KC for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:32:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g1D098SAsDarngZrX0kAesxNpjvD/SzSryfGaJOEa5cmydUXoF+6P9idkNFG0Y7mAc4B+kd5iMF0MNe1Ioqwe21zqR5I4h7NKgvmZfmxl2UGnZcm1MG9/qgdxjqXtoH3bKASKtpQE30wNSasjwgEEOnr3cWYOzuWa3zTEMKGXm+Z1Iq3fJCsKw3dXtQuRODQbHrWOhJ81DyoSxKfsVzzRRJIUZInwUF/6LFwpeQjEfIwjyLt4c3ZzD9ulVULs6+XcqzrQGkmwoZHtkvH1ZlHC2aqDWqVRUqN1H+CjWaagSNQqwDJVzLfc7smTogHPeVp771u7dY+lijfZWX6THOs6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=kKlGqegoRweF1++Jqh2S5594pr64Kj2EekHsAJSq3y8=; b=zWXbyBBQkwPT97d2WWIX46Cdak1+EJqBb1KaiLLYqPrfTd+AgnaPUMjKUTQWhU+ncY1d63K1p1CMkIogRDtYpXraaH4TgsQwierRBxmm6A9fUOLGXoBLWuXwfXp/fzwe44wcOGAxIanawaJfPgx1ohlB4p4FTrKRmm6hexucbseG86J2Air/phJWt4GG+oQenXsF5syhzdjZz2zOJOckcFGYNX2ogAF1j1CDD4UDynT8aqYqQC+WkUANK9qvZGiSfLAmtySAYhfHZRBhggdAR5mspDEbNwyEjFYNz2Y+hahDmnbbkNPjvOWxxx5DzCgiw5VnkddLwCKCEvMiYrHDKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kKlGqegoRweF1++Jqh2S5594pr64Kj2EekHsAJSq3y8=; b=ZVNfE0U3wDpNdHaXTFvaCw6qpa0tZtH+8IcXkaftBrKKdf7CMjRVauaHD3pj6CU0VTaXK36AqYi+zfYTnSbEajg+umGqMiF3Kvfm1QN8/SpTNqQn6jRpNo2orB4TPEO7WOI7O6vRlGFTH+VecJR0SZde0MCqIc1pbkPYysLm8BAWnMUs5j3475yA2JNApwOLbRk7w07daQRTh2QnVZgSva82F75eDJr+8Fo/uZVMUeg5X1DzwIH45B3yoHgF8sUpodiETGc1CelRHmDNWIct1Pdhwly4hFmnslxv7Gglv4APTDJRf4g1cRZfX87GSdtAMStveXTb/csaq4H6FDYHCg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:32:16 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:32:16 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:04 -0400 Subject: [PATCH v18 10/15] PCI: endpoint: pci-epf-test: Add doorbell test support Message-Id: <20250414-ep-msi-v18-10-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=8739; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=GZxnLuC67KA9+f1ZFFupamn6BH671XQaImre37vE7/Q=; b=WA1OAWYCnqei22MVeDwGjCnpnVfO0FJuK6HZFsm7mP++4OGJXz23fcWBa++hGzQhZ0W6pbP3R XOmQzKwC39ZA+n5pSREs/MFVL+aFofhBMp7eAtXNgDDssjK0p+EbL8M X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 49cc0544-fdfe-4f0d-55db-08dd7b82ae98 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?8iS9hPSPOr3+kjUiwQYsSzIjVgUistq?= =?utf-8?q?F+QY3hOeNhbwYpH0AfYUpteMTwfjjOnP5LdW8Up2lPt9HSQAQUq/Ty+Xz5scFJqOG?= =?utf-8?q?Rqmjitj4j5ZYDD/L51TC8k92QZ0jDOlJTl/Q/K6lVBm9OsGFcS0wBkHfYrf7VcjgK?= =?utf-8?q?7MGXZKMrWY/yjh4679ps1uKng2IwliU+j8SLK21PTpumf43cWO699N3UJNyR6tftD?= =?utf-8?q?yDPWTGqPs4gNVDP6KPxSlajUl7YxWNI73aW/ILvnVR6C1t5EtB8Mn+jekxzNADVQO?= =?utf-8?q?4BTwK4tK2uMoqo2cAAFD7f+q1HyinFXE1fnCNGhWVEYRswlUXx2AZXhg1Eoen9IPl?= =?utf-8?q?kuAbzlfblwDko8xreqfNqs5heKC+NRwEkkKQ5d/OpByz1V1i7zzTbVjMYUvjYKozu?= =?utf-8?q?y72nKBPR5Io8eu98U8ZfTLGifudt5c2OeJGJ6fHM0OMlNK/om+yr0ETMP0a/5Ux2/?= =?utf-8?q?HhwmeNiS7DjNoWJq6FlYa2wYApVwTs7hHPnna7rnt1z4ejQ6lyIrMPzwVI0zaxt6V?= =?utf-8?q?axUQErD4KLOPVQDQsD8BX7kNIoPcXX5wmEJO28rpSjuVI0OG9VOqhiU63nzaLfu3H?= =?utf-8?q?z0KsGHqJwWhlQTdkt94fo48k1JCZBRFu7iywpPSfWM4/DkisEqUefphir2VTSeGCL?= =?utf-8?q?CjeibbD1b1AlIF/5dIL3KMuKJyt4pbObO4xZOyhDb+6MIg8oBGDpQA+GJB+RYk2r8?= =?utf-8?q?UrrYZQGd2ZYhv0lcT2ADqE9Xq+fx9Tgoys8sqEFDSElOXzAgRqwSBqOzx+5RKlZPX?= =?utf-8?q?cacpe7xBGqLh0cQRp8AAcUHvAQcdaZyh6ZOB480fJNe6zlImrj1Xff/OrZut5KXMV?= =?utf-8?q?lnkqlZOuZva5i+Cf318cgDYGMJsw5EamIkuw6lPLJtQe8HlSlkCBH+Vw0ZmUAQWTY?= =?utf-8?q?Q3lK8EaJXamTf5AyvDFfTxuBpQLznvCS92hS8eGJBB/vdnimLMCtia9EwLyKlwUzC?= =?utf-8?q?fesXgCiAmqa6gIAqVTF3syF4ilhJ9QV9jZsthx83OHjzNG4HKVMCmtpYHtuaOQY+r?= =?utf-8?q?l85omdy2gG0WzjVxMtvezSbnR+KhxRLFDdezg5eB4qPobWHJWKrfwvrVIoVruBfwa?= =?utf-8?q?wh0qbaAYfTJLwnX/8QNsLcITtvB0S2shTsBAgh92Y5oBjO0/i5fCkXM0Ni8FfIgQ+?= =?utf-8?q?cqSN9+OvmlNj2xQsQEb2jlKGUvM5jIzLAQYq8tifHXRNFVijx5ePDaxz77Jiep23Z?= =?utf-8?q?oXbjlRMRD92LoC8ISf5weQzXUqdneYq/K1MiXZnSf6R1B2rQU0wwQ111l0gmNw3f0?= =?utf-8?q?bxoCsAxXIoXpBabE+VrYJ/xSvgcRzWIUnkzRuyxrgkRsjGHuOmj1uCVTCz3mTEnMs?= =?utf-8?q?wjuRAJEr3+rZA6ZU77zxdvmxKZ10q3ZLxY5ExyVNad88TiUxs9YB6DgRoR91USSnW?= =?utf-8?q?JqD83ZSoY10a8qjyp3eZD7dPGwZS/qEiaX4+9g+qdkSyR2OrHgPCvw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?b2V3E8kAUaLGuft6Bk8C6OUiY70U?= =?utf-8?q?UGm6hmKadgck+9LYk9aO9ptjkJShIDZybAoQwHsL4BCiAHl4/UdUrG4QyZc5Odfey?= =?utf-8?q?dV2f0WalULJcNdCq1D72hIRa1E9zOZ6YM0mPhVRXexV4EcFqq3r+q10KU8J5OodWe?= =?utf-8?q?XJzYtCfSBQimMEOhtcNVG/50FDPKMUiDqgIQMJNQHKUKvFeIi48e21sg3bInpUUEg?= =?utf-8?q?wlBXvjVjn6oEBBwMYi7Bg3IWM5hB1qHkL2Da1JwrERKYjRD3epPAprHbD/Dk7VcfT?= =?utf-8?q?3eOPea+pX4smmJFdGZonVetrSpswDebF6AYZyFP731hHoZgGH8X4tTqwn6NYch4MT?= =?utf-8?q?LGd7IVCm0ikeiXDenPtRvZMCch3mh3cAAKwG3CquZ4gr6q+FdH4PQuQTByps3VwT7?= =?utf-8?q?XDEmnOYioxkok9PcMrNq/D4VvQTMSB3y1VdzXmwZlMNX/QVyUwB5YG93CAYSTYsPM?= =?utf-8?q?i1sDaJ3++Un3onTpSkcJJ2aeLLBVHoc8Li46lVIQi1vcsrG+fokfLnNvWp/aU6hj2?= =?utf-8?q?ozRVVtUoie61vSvGFtASfcHVA94eWcWyfCpRLuDTEe3vdebj0fb0n/YfpM97C4ssJ?= =?utf-8?q?LAyvKpyMVHlSpWSGGdJB7AajnLX/yLX4UC4tyoGL4FGZKICmnB+WPxersF5yloGg4?= =?utf-8?q?Fel3QFETE4afOh346AUWiDgULcHOfXuLs5y518sURVzB7PMbOCjnyXxmwO5fy0eSO?= =?utf-8?q?UEbbkd7INerKA8cevHK8SoJ9cXLI/QFxZ60Poi3qMwQenydqKLd2o77yMk0MR5PnP?= =?utf-8?q?JJ0JWng4mxz/So8O+uFYWVTIfzbQXdcknc0Ng/dwUApzEScOMCWyoNE0mnUxdwBVH?= =?utf-8?q?vsOTjlm5Gi0VuPAbzM5wJNW3Lcw8HjFpdH+xCK7VZ7Sy9iN2mFxEfZkK5t0JRTAAr?= =?utf-8?q?qzfJqEmH1HKt6giGoPtZH2KCH1jom+Hvn5z/di/v8nI8Y4yavz51L3WfadMIXRDwl?= =?utf-8?q?ryg3HDNBo292H1xnwLW4U39i3La/bYP5c4dBx6tDdm164VFZb5y/A8mwS6DkSEKv1?= =?utf-8?q?PKfdA3g3yVka8eVMWCb38zRWrKQl8CBWcFviIAiY8dJ/shWGXOOKGi1PcNJTYA254?= =?utf-8?q?QxlHZZB9gBmeRdeiLEWWafYBpZQ0Lfvcjf1dpA2ruA7jACu/4XBYzHzejW4EJlLBL?= =?utf-8?q?/mFxgkjIXvcYN2yfOCSc82wPyb0yP8+CEMlpS09ZJuW+xQkbuuQh5+7I5Ph1hdGD1?= =?utf-8?q?nUzG/irZZRlFlOYiGqKPK85UQm6hv64kn7MnD/708+Z3uprrdjCSTT5Bmplb9en1y?= =?utf-8?q?iGD0WGXs1WZl6cxXxoaug9fZr+SyivwzHS2X5Xhh4fXy0tv262eF1y5K6feG+zJFU?= =?utf-8?q?JbN6f1BaZ6hI7rx9y7VYwZEXZ0sMdfRp4ExODOr9z4hZCvxWzJYSYftexqyOs+lFF?= =?utf-8?q?dPI8pyAutx1B9WwWz2N/QUDIiHjxrTmJxZpEuJRnXzwTh73SNXK4eX7lCsNIADqLC?= =?utf-8?q?+AjtK4MNhuwNUctS8I21ZFG9vCEQvVKKwdUnf3B7UUAkQoyWmU8N5xI0=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 49cc0544-fdfe-4f0d-55db-08dd7b82ae98 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:32:16.3405 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HNZ7N21q5MYd5sLtvbWtrB0yo9qX9R8JWDxOf3F34Uqah41A8iwDEWVF4fx8dUNT+Qa2+run7XiuskpVhY0k/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113246_025111_B31F14DF X-CRM114-Status: GOOD ( 16.45 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add three registers: doorbell_bar, doorbell_addr, and doorbell_data. Use pci_epf_alloc_doorbell() to allocate a doorbell address space. Enable the Root Complex (RC) side driver to trigger pci-epc-test's doorbell callback handler by writing doorbell_data to the mapped doorbell_bar's address space. Set STATUS_DOORBELL_SUCCESS in the doorbell callback to indicate completion. Avoid breaking compatibility between host and endpoint, add new command COMMAND_ENABLE_DOORBELL and COMMAND_DISABLE_DOORBELL. Host side need send COMMAND_ENABLE_DOORBELL to map one bar's inbound address to MSI space. the command COMMAND_DISABLE_DOORBELL to recovery original inbound address mapping. Host side new driver Host side old driver EP: new driver S F EP: old driver F F S: If EP side support MSI, 'pci_endpoint_test -f pcie_ep_doorbell' return success. If EP side doesn't support MSI, the same to 'F'. F: 'pci_endpoint_test -f pcie_ep_doorbell' return failure, other case as usual. Tested-by: Niklas Cassel Signed-off-by: Frank Li --- change from v15 to v16 - use le32 for doorbell_* register and use cpu_to_le32() and le32_to_cpu() when use it. change from v14 to v15 - none Change from v9 to v14 - update commit message by use pci_endpoint_test -f pcie_ep_doorbell Change from v8 to v9 - move pci_epf_alloc_doorbell() into pci_epf_{enable/disable}_doorbell(). - remove doorbell_done in commit message. - rename pci_epf_{enable/disable}_doorbell() to pci_epf_test_{enable/disable}_doorbell() to align corrent code style. Change from v7 to v8 - rename to pci_epf_align_inbound_addr_lo_hi() Change from v6 to v7 - use help function pci_epf_align_addr_lo_hi() Change from v5 to v6 - rename doorbell_addr to doorbell_offset Chagne from v4 to v5 - Add doorbell free at unbind function. - Move msi irq handler to here to more complex user case, such as differece doorbell can use difference handler function. - Add Niklas's code to handle fixed bar's case. If need add your signed-off tag or co-developer tag, please let me know. change from v3 to v4 - remove revid requirement - Add command COMMAND_ENABLE_DOORBELL and COMMAND_DISABLE_DOORBELL. - call pci_epc_set_bar() to map inbound address to MSI space only at COMMAND_ENABLE_DOORBELL. --- drivers/pci/endpoint/functions/pci-epf-test.c | 142 ++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c index 50eb4106369f4..b9cb1ab218f2b 100644 --- a/drivers/pci/endpoint/functions/pci-epf-test.c +++ b/drivers/pci/endpoint/functions/pci-epf-test.c @@ -11,12 +11,14 @@ #include #include #include +#include #include #include #include #include #include +#include #include #define IRQ_TYPE_INTX 0 @@ -29,6 +31,8 @@ #define COMMAND_READ BIT(3) #define COMMAND_WRITE BIT(4) #define COMMAND_COPY BIT(5) +#define COMMAND_ENABLE_DOORBELL BIT(6) +#define COMMAND_DISABLE_DOORBELL BIT(7) #define STATUS_READ_SUCCESS BIT(0) #define STATUS_READ_FAIL BIT(1) @@ -39,6 +43,11 @@ #define STATUS_IRQ_RAISED BIT(6) #define STATUS_SRC_ADDR_INVALID BIT(7) #define STATUS_DST_ADDR_INVALID BIT(8) +#define STATUS_DOORBELL_SUCCESS BIT(9) +#define STATUS_DOORBELL_ENABLE_SUCCESS BIT(10) +#define STATUS_DOORBELL_ENABLE_FAIL BIT(11) +#define STATUS_DOORBELL_DISABLE_SUCCESS BIT(12) +#define STATUS_DOORBELL_DISABLE_FAIL BIT(13) #define FLAG_USE_DMA BIT(0) @@ -66,6 +75,7 @@ struct pci_epf_test { bool dma_supported; bool dma_private; const struct pci_epc_features *epc_features; + struct pci_epf_bar db_bar; }; struct pci_epf_test_reg { @@ -80,6 +90,9 @@ struct pci_epf_test_reg { __le32 irq_number; __le32 flags; __le32 caps; + __le32 doorbell_bar; + __le32 doorbell_offset; + __le32 doorbell_data; } __packed; static struct pci_epf_header test_header = { @@ -667,6 +680,126 @@ static void pci_epf_test_raise_irq(struct pci_epf_test *epf_test, } } +static irqreturn_t pci_epf_test_doorbell_handler(int irq, void *data) +{ + struct pci_epf_test *epf_test = data; + enum pci_barno test_reg_bar = epf_test->test_reg_bar; + struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar]; + u32 status = le32_to_cpu(reg->status); + + status |= STATUS_DOORBELL_SUCCESS; + reg->status = cpu_to_le32(status); + pci_epf_test_raise_irq(epf_test, reg); + + return IRQ_HANDLED; +} + +static void pci_epf_test_doorbell_cleanup(struct pci_epf_test *epf_test) +{ + struct pci_epf_test_reg *reg = epf_test->reg[epf_test->test_reg_bar]; + struct pci_epf *epf = epf_test->epf; + + if (le32_to_cpu(reg->doorbell_bar) > 0) { + free_irq(epf->db_msg[0].virq, epf_test); + reg->doorbell_bar = cpu_to_le32(NO_BAR); + } + + if (epf->db_msg) + pci_epf_free_doorbell(epf); +} + +static void pci_epf_test_enable_doorbell(struct pci_epf_test *epf_test, + struct pci_epf_test_reg *reg) +{ + u32 status = le32_to_cpu(reg->status); + struct pci_epf *epf = epf_test->epf; + struct pci_epc *epc = epf->epc; + struct msi_msg *msg; + enum pci_barno bar; + size_t offset; + int ret; + + ret = pci_epf_alloc_doorbell(epf, 1); + if (ret) { + status |= STATUS_DOORBELL_ENABLE_FAIL; + goto set_status; + } + + msg = &epf->db_msg[0].msg; + bar = pci_epc_get_next_free_bar(epf_test->epc_features, epf_test->test_reg_bar + 1); + if (bar < BAR_0 || bar == epf_test->test_reg_bar || !epf->db_msg) { + status |= STATUS_DOORBELL_ENABLE_FAIL; + goto set_status; + } + + ret = request_irq(epf->db_msg[0].virq, pci_epf_test_doorbell_handler, 0, + "pci-test-doorbell", epf_test); + if (ret) { + dev_err(&epf->dev, + "Failed to request irq %d, doorbell feature is not supported\n", + epf->db_msg[0].virq); + status |= STATUS_DOORBELL_ENABLE_FAIL; + pci_epf_test_doorbell_cleanup(epf_test); + goto set_status; + } + + reg->doorbell_data = cpu_to_le32(msg->data); + reg->doorbell_bar = cpu_to_le32(bar); + + msg = &epf->db_msg[0].msg; + ret = pci_epf_align_inbound_addr(epf, bar, ((u64)msg->address_hi << 32) | msg->address_lo, + &epf_test->db_bar.phys_addr, &offset); + + if (ret) { + status |= STATUS_DOORBELL_ENABLE_FAIL; + pci_epf_test_doorbell_cleanup(epf_test); + goto set_status; + } + + reg->doorbell_offset = cpu_to_le32(offset); + + epf_test->db_bar.barno = bar; + epf_test->db_bar.size = epf->bar[bar].size; + epf_test->db_bar.flags = epf->bar[bar].flags; + + ret = pci_epc_set_bar(epc, epf->func_no, epf->vfunc_no, &epf_test->db_bar); + if (ret) { + status |= STATUS_DOORBELL_ENABLE_FAIL; + pci_epf_test_doorbell_cleanup(epf_test); + } else { + status |= STATUS_DOORBELL_ENABLE_SUCCESS; + } + +set_status: + reg->status = cpu_to_le32(status); +} + +static void pci_epf_test_disable_doorbell(struct pci_epf_test *epf_test, + struct pci_epf_test_reg *reg) +{ + enum pci_barno bar = le32_to_cpu(reg->doorbell_bar); + u32 status = le32_to_cpu(reg->status); + struct pci_epf *epf = epf_test->epf; + struct pci_epc *epc = epf->epc; + int ret; + + if (bar < BAR_0 || bar == epf_test->test_reg_bar || !epf->db_msg) { + status |= STATUS_DOORBELL_DISABLE_FAIL; + goto set_status; + } + + ret = pci_epc_set_bar(epc, epf->func_no, epf->vfunc_no, &epf->bar[bar]); + if (ret) + status |= STATUS_DOORBELL_DISABLE_FAIL; + else + status |= STATUS_DOORBELL_DISABLE_SUCCESS; + + pci_epf_test_doorbell_cleanup(epf_test); + +set_status: + reg->status = cpu_to_le32(status); +} + static void pci_epf_test_cmd_handler(struct work_struct *work) { u32 command; @@ -714,6 +847,14 @@ static void pci_epf_test_cmd_handler(struct work_struct *work) pci_epf_test_copy(epf_test, reg); pci_epf_test_raise_irq(epf_test, reg); break; + case COMMAND_ENABLE_DOORBELL: + pci_epf_test_enable_doorbell(epf_test, reg); + pci_epf_test_raise_irq(epf_test, reg); + break; + case COMMAND_DISABLE_DOORBELL: + pci_epf_test_disable_doorbell(epf_test, reg); + pci_epf_test_raise_irq(epf_test, reg); + break; default: dev_err(dev, "Invalid command 0x%x\n", command); break; @@ -987,6 +1128,7 @@ static void pci_epf_test_unbind(struct pci_epf *epf) pci_epf_test_clean_dma_chan(epf_test); pci_epf_test_clear_bar(epf); } + pci_epf_test_doorbell_cleanup(epf_test); pci_epf_test_free_space(epf); } From patchwork Mon Apr 14 18:31:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050906 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 784C5C369A2 for ; Mon, 14 Apr 2025 18:59:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=F8Qp5FfqRuQHFYCFtVEMJWoCYl4K1g4dfDwvdzdP/uM=; b=e+Q6RIssNXPpDmKl3iH8Eqrx/7 nxP98ei9P5lOdYcmR8mY1J+2Kl00NZP3Q7gjdifHeRvPqCLMyUBgeZZzYKhAPQ4ZTMoUG9jGoi3X2 3attz+1azLUtLQuCX3o2eKQr2MvX904+kqcRguL9qkPfb2to5v88W/gTF2491CX4xlgOu9Q3aFRpe ucKvowLSnAgBLfWCDpcvq6WIesymJ4gE4h0rnokx0cNS8/udw+VLwZEtv/DwF+9QPADEamRm7A00n icpIAeC3L85LafiHL0fDYuz26uc2WsR0nBrB1JlH5LMjAcJYOs+qqzogqIV0Yh96nxVKluZNtys81 cYSHqgtw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4P1a-00000003Bb7-2LxV; Mon, 14 Apr 2025 18:59:18 +0000 Received: from mail-westeuropeazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c201::5] helo=AS8PR03CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Obv-0000000377t-2YJU for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:32:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TY54cp5mFEyMR9cT83dgnPTNM79j2hEAv1Amidj+AUS6Z+4GwV3xdgcZlwGiCl86kQ5Pk3pLm5E8gXCvICY5+bk5rnVkliG0CPq47ktVr5t2ed21izY/qdpp0z/TWl3C1PeJJxBS5NVtVQAwiabuw18EKoS2AIkB7WegXNwTP6TZUarJNVN/zYFf/vDvX86RVYzbvcbzy0uN7jue2RPLgCIK0DMPymLIlG/lb0c2ub+OE+u5ajFjtdYum7jWVlVmZB3bTtmD5BIQS1IG7ffRnYz8z2ToleEdku+JjJqYDkqOxkHWDVnzZpZFDrfwb9MVAgyt2r6eDzOpRUqnreKkLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=F8Qp5FfqRuQHFYCFtVEMJWoCYl4K1g4dfDwvdzdP/uM=; b=Cm0OWV5zP42TpTG6moyHX8YWBrJ8azfvYi3/k6//v/svCvfUhEriBNXzV9YGL192rdBH4RWsPKcrv0Rh804Jmyih4mH0pmCuyNmyh1wOnQhydA4hdKtm6auHWwNfhHVU8TIWVwhihSkfgCGaaw8+xt31PM38iF3bMaJtw/OFh6zlBykjt02d20ownRmQL31I4z8VBSJflqbJi1Ng2PysXYuHwTLQ6zIsdxs5RBLNsxl9MK7iW8hFUHFt6JOiVcp/Vj81LcXbboIznA8KjCpsNBivG7BdVVonrpq2Q+Zh5/8a8RLpnzNGGkTjE+vKHyFBv8hBthG+x9CisiBxMQcvCA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F8Qp5FfqRuQHFYCFtVEMJWoCYl4K1g4dfDwvdzdP/uM=; b=W81TDJKBgVzdlxIX8babS1AZw4kuueV65fN8Eyb94Rk1HfKWtJc9eZRwa9PVfStSSfqdFRvPT3SGhr2XXmuM9IRRUE2ufCzFuj5UUiNjB4Zosr3+H9AXHVzmjc0MgBKiuTp0m4aOoQwuPgcHZqx08MTxuEE1X9Q8I7o2Deicb9DS3IWFx57oP+7ExG619E92aa5K3V1bStO56svFWJZB/7gzUPFDktUrbacSaPpN082JNhGnWabFDP5Sjm0Yy8pc86NFGOkDZ2jxH1c13/bCxeB6cM1GojsiBcUC9xUtIAoevsip6YHPOHffcguHGrJ0qsV3ZCyp3VD8DD3IcYEcUA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:32:23 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:32:23 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:05 -0400 Subject: [PATCH v18 11/15] misc: pci_endpoint_test: Add doorbell test case Message-Id: <20250414-ep-msi-v18-11-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=6407; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Q75HpsG7AQZeyq/78WIzVSdGpQ6JBJuHxf6b6uNsmfE=; b=3oM3ZicDSjq1fM5V+zNEEqoxvMCosTgFqPYXLw8Oc4ysynjGxwUgD9oWMvDBPIoZCp3CotdUF L3gta7UCD9QASlDW/c1Mue8O87sJ5zljSyBiAEZ/Hpufmm9INwaBHtq X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 1dcb41bf-876a-41f8-f9de-08dd7b82b2cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?VpWPukgodgYqpE21ZLTvb/EB26Rbv01?= =?utf-8?q?h10z0gsx7X1X3AJvNeU2AzcVupeEJaL9vVBbatCX+2QM0MwfpBx/O7dQd2MoKvFoP?= =?utf-8?q?axbt2briFg5b76+AIuRs1K5qzwkqIlyVPN593bwd3wnW/omlHMt+IGn8ELGx234l8?= =?utf-8?q?7iRXiWGkNXzqt5aowHeQ+wOK3fe5Z1UsX6wuQpVoIiNJwP0OSARdLcZYAzirXigKU?= =?utf-8?q?10cjHjjt2ci4mSyzzaZyT877mry8drYz0Imc7x7yhPRNR9RqY14jy0OYG5LEM6jsG?= =?utf-8?q?WFBGsajEYO6sEYUcVoxNh8k8WnPAo/ITatEh57LZMIYUpY7f17qJ+2g3BgZuVjo5P?= =?utf-8?q?5No0aW49aq2hV1HxD31Zk9cCTypoITtWFLk1mc+m5XL58DUB7SKkYvSe8A1bdC+rS?= =?utf-8?q?CB4c1MJkHtWHcQ0R2uo8Ms95suqzciiAHOs7yiIgb3iGOdq4lgSyPXe47KlIM8B4C?= =?utf-8?q?bFNKFFMUnjOadyHVfOA1RSBptPe7UGRNIUECDFdxZ2dRyxxUQWmazvt3sMHyMHQwA?= =?utf-8?q?p6/Wog0Q3WH1hKhw3oOXZBsVzGCtK6VvpoZ2Dr06Iw6i+2NAdS2kIwS7sMdBCAYhB?= =?utf-8?q?NrMo7kBqh5nWd3BKXQeBIioxJy6uYjtraOOd6cM1n7SO54nvsgPs3PSBmvYhYW+JZ?= =?utf-8?q?+5eQp97LZ57LvByfiiVyXsVNHsGHjKI/68IKUmixa7LHNjo8t6kpUTH1KCe3tP9fB?= =?utf-8?q?EVjjOAt5XwBloxWhczsQy3KNuIDWzha0Vf2U/imlintQbH7JdCOPmQakmvZfxwJ0y?= =?utf-8?q?iwIC5xOB0r/YvCdvO0H/d06lvLLflFLG2aW4giSnLxJOA7ybWf2dUk5o6WJrX8mQS?= =?utf-8?q?vAEBNqxc+IRGI3PMiKY951iLnEDTStgPNHpCQC2IoTfIKFROJZt1tLu6b2sMn8sd/?= =?utf-8?q?aMra4CGxKUzPIKHkDnxNe2oLjqwVKbXnEOc8vaNUCL9tAvT4ZdmAdgz+MJjhh94cg?= =?utf-8?q?drwVYB03Gz9h28CwS+2ohWj/jJ87N2okPvyYABISu5lqW9YNPflc796Afqb9iWU0v?= =?utf-8?q?A3aBjhjuZZc0mziCjFSEncQID/88JsxwsZpN26pi2J5nxuLQ0gAGUKB000F5Dylil?= =?utf-8?q?XFULK656Klz6/ANGcIFl408TlbUjDaJXCMxv5TwECfiOP0rwt753Jd2190wuYI8g2?= =?utf-8?q?wzauZNyny0kP/NIC1J6Ahp0EEmXnHUZQKBkLEri21MApUl+/s4YVPPsEK9xlnZm1s?= =?utf-8?q?oCNaT+RVIYyzB/xqig7lSHnyDm0l6J5QhGb8C4gydbf2VgDydHAtw16KIWI2DVi44?= =?utf-8?q?VJFHft66CMSOCqtRA8KGfFiQKraHZ/yb0MHIj2U5uYsCz3jwzaaSigfHDcbr/yejS?= =?utf-8?q?zmL2L0j7nj4485ZLId7xQkzIXxrMQt91K/UbP+2Fe1//S3NIE7qFeunCK5j+Eeody?= =?utf-8?q?GEdE3CaPlL1epsvBIPbi+UNZKIx2JjsvqBudjQd1nRAs4fzSXYWdBQ=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?/Sh+bAWsj9QctOADyzJi3z/vJvRE?= =?utf-8?q?IXJAjrx3hjKaBV1wkH7nm4O3bt0u0UOcg4v1ey/Ncv5TodgnD0HMkshtmEEpcxT5G?= =?utf-8?q?iwAzJv1EO4KHGRG3+rAFvYNnUkdXDqKWrfkzGqJYZE9IKD9+kUOkj+OvD0qlIAOKv?= =?utf-8?q?OLqo2uh0Qbrv36feUA8zuKH8pfaWSgLWWjO1GYfo7hXmzN6D7OA/ITVgoszhC6RQH?= =?utf-8?q?MiuZTwNA44qMD6wxWhTBSyvZZ42GEMZiTlrBiN4ZAET0CZBOFVaVxB11UqF5f7kxZ?= =?utf-8?q?85y4/5mwo6E0ebE4YRlECCPCmSyWObep7VGbYzohxmraLpAz65pskGETTgdpj3hLl?= =?utf-8?q?UAj0dP0c0+yOoG89qjH1GvS0Pfj9am6yLAhywnMnZrY3mwO/THwyX/g3EwxRaUuvA?= =?utf-8?q?Oj5QH83hF2X+emWorhnYfhYInJGaq+i2/XlvAUp7U2X2gmhk7hGMl9TQFxFPK42DB?= =?utf-8?q?POPDL7PxnckyLCrjPFBTBjPwQssANf/WBL5kMX2dOJ+zeAn3xv7Ni/9qDooHnXtP9?= =?utf-8?q?8uAnp1XmwdOmJhm9OFA3HfB4oYNTE7GhlhW+js9/ec6JmZpQisYP2ZksPXUOTSdLF?= =?utf-8?q?ibHe5wYPi+DfDo/r6184id5TYQpjcYeoQnTyvwBh1JuzV/CvDzOLjMf2y8DKlrsj2?= =?utf-8?q?tk+Zam66LsbQIpF4KqEJ7YKqyfAnBBmShajZOkaLqtdIWDafieFMrBMoWVg4wB2cz?= =?utf-8?q?NzaHtCB/s8EQMSqFvDJcfgz0+X5O45i+P7ORMRuR05zW10nuz4YjG69u8HRoIi3HR?= =?utf-8?q?eNowHyqH/y2iVwQ/EYtkir/0FnxABcvzFyNmsIkZEpGSQqSb9PD0uNX93qQaoMcO1?= =?utf-8?q?VwvDZbJrPA4kc+xtcGjJx/NcCDnwvhxdmbkVE7DYioe82Z2TVBykzutPWyQkR8W2+?= =?utf-8?q?WTq6WOY8Ec8Ryj9ZW4VZHvE2w41x8E3kYhcHiy0JTsLKouYvr+gy7aMMmeiNjB0pB?= =?utf-8?q?oAMh6ae8KFipInMAcDILCjvafz/zm4LTnVWRcc+7B8kPGpcFt26LcSYCwaiW2+6qO?= =?utf-8?q?SoKlsz3ki61SU+fY6R/A5xThuyPy8Ox5+PGPfhxG3nlu1xEqiikZXjEN5Ur3fPZEe?= =?utf-8?q?8FNFzdm8ex9G45aGpUG1fVbidVFGkCie/pvA+mndkiVYIggmhvkbOnOuMluylMCYQ?= =?utf-8?q?Os/p7gGRw5kv6ElvbVkUbPsXOEX6fZ+3RoSVu8ufZ2LOVQsHnOZwRg3+ie73B2uyZ?= =?utf-8?q?PjJxKWHm0kIoT4jbYC+RHhyw6PhBkc+UIyu7BNJ9qKuvZlvybx9wT2/3Hs68/LsKL?= =?utf-8?q?V43H7uJXNXqWI4wa+KjjKuHejMv/fQ9MViI7j7UK/ahyrIpCqSGfhS/ZiT40xLtgL?= =?utf-8?q?1jezamHUZDGJmQ16XsylW2UeoX/E+H+FIbjU8YW/jo5or0OjY1QqbhUvlmn5VRXaV?= =?utf-8?q?jKnKr1IMCLyRmxgNt6Fa4cxznWlc4Lwh/Mf5VjUBbwhAWbx2LJNk2PeQvnyDtMM1+?= =?utf-8?q?XUsPYp75RLYCjbr7mBxvKO5JVcY0S4rTFOLsRrBGGkQdR3y805ySz4N4=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1dcb41bf-876a-41f8-f9de-08dd7b82b2cc X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:32:23.3826 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Sg2anMZeRCxpgn2lTcP2CiIMz7YAR0j3Jiv6YMLROe8X+dY2rr/c/1IHMWT0mgCXKAMQSuMbWnqUdKdaJIXcqQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113247_662319_D672A16C X-CRM114-Status: GOOD ( 15.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add three registers: PCIE_ENDPOINT_TEST_DB_BAR, PCIE_ENDPOINT_TEST_DB_ADDR, and PCIE_ENDPOINT_TEST_DB_DATA. Trigger the doorbell by writing data from PCI_ENDPOINT_TEST_DB_DATA to the address provided by PCI_ENDPOINT_TEST_DB_OFFSET and wait for endpoint feedback. Add two command to COMMAND_ENABLE_DOORBELL and COMMAND_DISABLE_DOORBELL to enable EP side's doorbell support and avoid compatible problem, which host side driver miss-match with endpoint side function driver. See below table: Host side new driver Host side old driver EP: new driver S F EP: old driver F F S: If EP side support MSI, 'pci_endpoint_test -f pcie_ep_doorbell' return success. If EP side doesn't support MSI, the same to 'F'. F: 'pci_endpoint_test -f pcie_ep_doorbell' return failure, other case as usual. Tested-by: Niklas Cassel Signed-off-by: Frank Li --- change from v14 to v16 - none Change from v13 to v14 - update to use pci_endpoint_test -f pcie_ep_doorbell - change ioctrl id to fix conflict Change from v9 to v13 - none Change from v8 to v9 - change PCITEST_DOORBELL to 0xa Change form v6 to v8 - none Change from v5 to v6 - %s/PCI_ENDPOINT_TEST_DB_ADDR/PCI_ENDPOINT_TEST_DB_OFFSET/g Change from v4 to v5 - remove unused varible - add irq_type at pci_endpoint_test_doorbell(); change from v3 to v4 - Add COMMAND_ENABLE_DOORBELL and COMMAND_DISABLE_DOORBELL. - Remove new DID requirement. --- drivers/misc/pci_endpoint_test.c | 82 ++++++++++++++++++++++++++++++++++++++++ include/uapi/linux/pcitest.h | 1 + 2 files changed, 83 insertions(+) diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c index c4e5e2c977be2..0f3af7adea107 100644 --- a/drivers/misc/pci_endpoint_test.c +++ b/drivers/misc/pci_endpoint_test.c @@ -37,6 +37,8 @@ #define COMMAND_READ BIT(3) #define COMMAND_WRITE BIT(4) #define COMMAND_COPY BIT(5) +#define COMMAND_ENABLE_DOORBELL BIT(6) +#define COMMAND_DISABLE_DOORBELL BIT(7) #define PCI_ENDPOINT_TEST_STATUS 0x8 #define STATUS_READ_SUCCESS BIT(0) @@ -48,6 +50,11 @@ #define STATUS_IRQ_RAISED BIT(6) #define STATUS_SRC_ADDR_INVALID BIT(7) #define STATUS_DST_ADDR_INVALID BIT(8) +#define STATUS_DOORBELL_SUCCESS BIT(9) +#define STATUS_DOORBELL_ENABLE_SUCCESS BIT(10) +#define STATUS_DOORBELL_ENABLE_FAIL BIT(11) +#define STATUS_DOORBELL_DISABLE_SUCCESS BIT(12) +#define STATUS_DOORBELL_DISABLE_FAIL BIT(13) #define PCI_ENDPOINT_TEST_LOWER_SRC_ADDR 0x0c #define PCI_ENDPOINT_TEST_UPPER_SRC_ADDR 0x10 @@ -62,6 +69,7 @@ #define PCI_ENDPOINT_TEST_IRQ_NUMBER 0x28 #define PCI_ENDPOINT_TEST_FLAGS 0x2c + #define FLAG_USE_DMA BIT(0) #define PCI_ENDPOINT_TEST_CAPS 0x30 @@ -70,6 +78,10 @@ #define CAP_MSIX BIT(2) #define CAP_INTX BIT(3) +#define PCI_ENDPOINT_TEST_DB_BAR 0x34 +#define PCI_ENDPOINT_TEST_DB_OFFSET 0x38 +#define PCI_ENDPOINT_TEST_DB_DATA 0x3c + #define PCI_DEVICE_ID_TI_AM654 0xb00c #define PCI_DEVICE_ID_TI_J7200 0xb00f #define PCI_DEVICE_ID_TI_AM64 0xb010 @@ -100,6 +112,7 @@ enum pci_barno { BAR_3, BAR_4, BAR_5, + NO_BAR = -1, }; struct pci_endpoint_test { @@ -841,6 +854,72 @@ static int pci_endpoint_test_set_irq(struct pci_endpoint_test *test, return 0; } +static int pci_endpoint_test_doorbell(struct pci_endpoint_test *test) +{ + struct pci_dev *pdev = test->pdev; + struct device *dev = &pdev->dev; + int irq_type = test->irq_type; + enum pci_barno bar; + u32 data, status; + u32 addr; + + if (irq_type < PCITEST_IRQ_TYPE_INTX || + irq_type > PCITEST_IRQ_TYPE_MSIX) { + dev_err(dev, "Invalid IRQ type option\n"); + return -EINVAL; + } + + pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_IRQ_TYPE, irq_type); + pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_IRQ_NUMBER, 1); + pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_COMMAND, + COMMAND_ENABLE_DOORBELL); + + wait_for_completion_timeout(&test->irq_raised, msecs_to_jiffies(1000)); + + status = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_STATUS); + if (status & STATUS_DOORBELL_ENABLE_FAIL) { + dev_err(dev, "Failed to enable doorbell\n"); + return -EINVAL; + } + + data = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_DB_DATA); + addr = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_DB_OFFSET); + bar = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_DB_BAR); + + pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_IRQ_TYPE, irq_type); + pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_IRQ_NUMBER, 1); + + pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_STATUS, 0); + + bar = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_DB_BAR); + + writel(data, test->bar[bar] + addr); + + wait_for_completion_timeout(&test->irq_raised, msecs_to_jiffies(1000)); + + status = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_STATUS); + + if (!(status & STATUS_DOORBELL_SUCCESS)) + dev_err(dev, "Endpoint have not received Doorbell\n"); + + pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_COMMAND, + COMMAND_DISABLE_DOORBELL); + + wait_for_completion_timeout(&test->irq_raised, msecs_to_jiffies(1000)); + + status |= pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_STATUS); + + if (status & STATUS_DOORBELL_DISABLE_FAIL) { + dev_err(dev, "Failed to disable doorbell\n"); + return -EINVAL; + } + + if (!(status & STATUS_DOORBELL_SUCCESS)) + return -EINVAL; + + return 0; +} + static long pci_endpoint_test_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { @@ -891,6 +970,9 @@ static long pci_endpoint_test_ioctl(struct file *file, unsigned int cmd, case PCITEST_CLEAR_IRQ: ret = pci_endpoint_test_clear_irq(test); break; + case PCITEST_DOORBELL: + ret = pci_endpoint_test_doorbell(test); + break; } ret: diff --git a/include/uapi/linux/pcitest.h b/include/uapi/linux/pcitest.h index d3aa8715a525e..d6023a45a9d03 100644 --- a/include/uapi/linux/pcitest.h +++ b/include/uapi/linux/pcitest.h @@ -21,6 +21,7 @@ #define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int) #define PCITEST_GET_IRQTYPE _IO('P', 0x9) #define PCITEST_BARS _IO('P', 0xa) +#define PCITEST_DOORBELL _IO('P', 0xb) #define PCITEST_CLEAR_IRQ _IO('P', 0x10) #define PCITEST_IRQ_TYPE_UNDEFINED -1 From patchwork Mon Apr 14 18:31:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050907 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 602E3C369A2 for ; Mon, 14 Apr 2025 19:01:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=mO0i/b34tXG//kvU4HGnKVOSOCmwct33MArJWNqY/sY=; b=sRttSk2s2dR+qFvgfJtz/8sjtP tuB+8b59zqncjVsjwi8QS25mxrnXxPVnHL6nD4H+eObDFFvbXxRauqtFnums3XVMm7RVaYeq4cBh5 egeKQQ1EvSOp96mItq2wrWNFvscD6Hs98ecvxfMbkfR+21SQh90/76w1idYQmEBTH8m2tdzmlRcub 7SbRiL0A/xt/DdFYVX+HGl7p7OMAp17FJsvoS+xxT2ybsQNI5nidn54gt269uPNim+amK37DvNDNL L0gd3mDQHGblpteSrFTj6XFBeBt06QRCQcRAOkOLsVZw982l08nYXyIufJY3XE9ECXSaU/XZm24VA YZJeBj3w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4P3R-00000003BpA-29ww; Mon, 14 Apr 2025 19:01:13 +0000 Received: from mail-westeuropeazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c201::5] helo=AS8PR03CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Obx-0000000377t-0n0o for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:32:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BNix5Shu+n7C5wN6xZswHiqeMIren2PsdNzYccTanu3BqCDNATT/hVh+m5y3NEY4GqFsEBZ4MDyqi0q7xjQF4bivGohdFwBLpPW27UaXDtNRW/vIgBDcbV+GYaZujbmYPuEQ5m2X7t2CnMVbJ/HXkmS9xi/092EWQdPzDdCesf+6OBTb/6wbtqzoIfdPkS4i3o5NIJzf00CE93twzbkxz+T5ebk/EKyTVG0WaSRjbjMswHf+IOkG42Qk53eVOx75XLzvPPg8kJfUXvU5dsTSz4f4kZNAokTfNRQC0z4QY5og7CyDYnu50AQ4e6c3DT3PmF5lSBIUl9iH14uk8FOy8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=mO0i/b34tXG//kvU4HGnKVOSOCmwct33MArJWNqY/sY=; b=nqOtwlFbiFNkXFySfS807KkFOJ63/1zwq/fsg1w/RJbuBXXHVEn2bjzywgMcxHi7JyBzzTB7X4X5oxkBjOn/m7jbcrsskyJU20q4LoSExOvL2bRBcAsiPy0kaazXUXAsUSgXnEGtXc2KthVhlUtFLz2W/aQ8Hd0YQlKUkMaDoy+DPz5hi00Q+FyEgipLh6VY8mKhVi4+CvVrAJQyCXK1du6gRiHqT/nNkSTPVoIj4iRgxyO7KhDBbmCP0ypiRYHWuDuIVDwr9D1OfMTiFvxq2R5GlNjnYuI8wdbqlx1wups8vGWVseCOrasGeRHFBQuSHdVY2z9JLr4o/pow1FmnSA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mO0i/b34tXG//kvU4HGnKVOSOCmwct33MArJWNqY/sY=; b=TwcHh/pwvFlJSThanmI7UvaqGe+L+BKfaTyD41diDd3dI0LozPXPYLKflULt/D1ET5riQg3uSoX3E7Ha1oPgW8XntPEtcu7z+lX1UpBvu/pRyqNqtY3HSp6uHKaSjBKPRDoPIAd2MzjCkKxbUzyZa1mC9GrM5UUDJEPa7wA+ZvMTU0dFSCs36A3DyiM8qHZsSbw52eM1li12f0RBzvbczlsBJGJ+3XVfUxnY9FbXjtNC/JNPrvBh2NMbBb5PIAtEv4j2napDO85ouT2xMmDZPgFMDdBlNwAyndpwpzIzL1VwDLAOfprOKKOSNIUkXGhEGO/GaBs9Ed91RZQnP70Jug== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:32:30 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:32:30 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:06 -0400 Subject: [PATCH v18 12/15] selftests: pci_endpoint: Add doorbell test case Message-Id: <20250414-ep-msi-v18-12-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=1300; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=+SgZEl+0x0mkZbAhvLt5Evhno7zgilVYjrIje6KjXVc=; b=JehGXaSQJ4KujakP5WgF9HhvLyEet8gPYZZL23fyfZp9mULVD+CHUw58BGB4YF5+HFQWNX8qo MRC3lKct3LXCKqRbK/esigFO609/Pvo4nunkyX/HbdNLFDAfCILpBav X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: c87d510e-2065-4ded-3b08-08dd7b82b729 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?uyoGRTNmtClWxX4KP9XoIpAm0c0ZCLT?= =?utf-8?q?OLJMvdJpH1q6cIDYaqgbJ6WKDXuLOqaiwkSPzSk1cwh2+2y0OzpAHFhCVfTlUVMUz?= =?utf-8?q?9uIaTmwJkHxbb02CjC70RigL3N/gLtT1rC6t7QADFrq1yHtWSCkxytu5zGQbJs9TK?= =?utf-8?q?WcFDwpZTfCzROA273ii/lUer3dhznGoB4RJTeuNK78ELn4F0IZz+u9drv97+/5fgN?= =?utf-8?q?jNt5jUVyAL48HemTNeyfmRdP7O4bWHOrWClnNnzolRSqb0xneNdjz7w5zO9Q6bUbN?= =?utf-8?q?NDLYwxh5LAvyehfsF+aFzfRGQqGsYRbBB23RtnU7ulG66OMTt9BQjXv1PlojgPtFx?= =?utf-8?q?n7ORv2uHy+1QMqnS6CO37B0dfqcd+4iuXBYW8YYri7no2dPiRhz5d421oQhsqIRkG?= =?utf-8?q?YWqqWbCWTt9QPG8YKl5b/YFbxOZVPVFxLdOFm76xZGdmG4U2V77Nz7nA1z8U8/TDU?= =?utf-8?q?A8roLjtcmuCT45cZZTAUCotSGx7G1RtvyzaLSS5jxFf3lZoqUHJ2Dpms08rtxJEI0?= =?utf-8?q?rux7Ujla3yS3gfAVOQ7u1BxRGWNQ1pCNfkFcHj9NqQCnWMJ7fBhSQIBGu82UGnakv?= =?utf-8?q?PJ3yfVKZ69boe5fdHErIvV/1CA0MvEXwXWkbfedx6CPuvjE2qBpb8ol7ti4QvRDxY?= =?utf-8?q?DszCfvb64JV+zbtSlaA+Wlvgdk4bmADn/U+c+xbQugbapLTonw7G5FIgzQT+uU6Pc?= =?utf-8?q?Iykc+aaaJ403paLHyBNjzisRhjVvkm9MBHLNxiaStlo9aCsSIi8r2RQuyb+dc5mhs?= =?utf-8?q?zOeEVB+0A1Qb13SkglAI3WrDs/a+vSfpTqRhOJK/9vG/KfR0L+62HATDwzyn7B1Pb?= =?utf-8?q?iS/yPeBusSNGajP353M70JYc0vdZqKyIwPGYO1FnOs/7AFMZWXTeWphMLVFJG7sus?= =?utf-8?q?xfUWc3yC5ZKjxWEynAgZ5jJPvjKpteEko/on6auXipD9AoYGTDMIMKvMBS/6yEk87?= =?utf-8?q?DIYsnMCIHUh2ww+IK70OaZ6n0FyAMrv+7o6L9tPjMdfBD93PAyJHaI2DN15vc7faN?= =?utf-8?q?wA46m/UuTEDi9MsFAK/RIsCD982DSor3SU99Scx7aMl/JlbFCBLAPRoiUel9RTTWp?= =?utf-8?q?AYHUw+5Dy4czTZAwBI9qu4DxskCjIbk2n9c1NXzt+symn2JxOYNadALe5dNFmFN4e?= =?utf-8?q?4WMVQpu+VXiLVn1acVz+P+qo4Oifo41RRNpXbUTJ6pGmE1AEQ/GbyRFp4RsJCTlwA?= =?utf-8?q?gQ2pBxNDxo4CWKKj2p3PQshIsIm78wsV7XvhKl3sUOrGYXoYnd4HM+WFiJL8Ay9wm?= =?utf-8?q?sGGcR+SllGhV4si5EqOr+ih8tivtQkZEXXq4Jc4MvWRGoId9rHLYWFGukjbjZcSa2?= =?utf-8?q?r0AnYJ1IscQK1OWr33zxKGaexZj8xMNhhCQFy/RUMoxd01zhA3jLCCmYY25X36y1S?= =?utf-8?q?NhZb1wIy9BkEUWj0JDnsbR9Biu1OHIOSIvCZwjrU3+tuoprtZKlgrw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?SgwOGONc7EF4lxeNL8E76XJBIDvI?= =?utf-8?q?amcdPS2322NvWbUdoNAVw3hAkJt31Qz7ZH6nVSSWg24n2fuYQaCAmD1UX+TnpoQod?= =?utf-8?q?EfOIOrx2YWWIW3hv1pbbXxne3eQIhjaVJXznzBRGwlRYclYNzTqdf2VIgjESIZb7B?= =?utf-8?q?X/RfSt6Cy/DtBFvr/Soj/U2zefSQTUt4QARn/QMuMCfocFkeWvnTVVJD56Rm1LvLo?= =?utf-8?q?fRbO/8x7zItnewQm0p6bQB+urn9fxDXLTl1Qi0Gl+tc0oW/zEqwt9hgWfYyktDaIF?= =?utf-8?q?q0FrhBFtspYlzF+TOz1YbTdzhL+7xK9+5sXoOqLRPeE9YHkclFWEVXqmngvZjmgT2?= =?utf-8?q?OwM8uOUzcqY21a5Gs7IQqiRXjxzhrah/pnvxImfuyELvlCGC0kgBswiEYwHhfPi82?= =?utf-8?q?qX2oy/d5T85bwe1vhcs0YUI7SMILctRZ0spAQKKaTmnS7yuj5NshH16rYCEof+gdX?= =?utf-8?q?D5WeH8uBKFMvDPaaCLA2raVS8F5hRxW4fERSkhNDBAarNA2VttoGDmgKqNkUfxXfr?= =?utf-8?q?y39g4InjSsx68fGHT0XH4/2QMZ5qVfozO44RQKENboNVOnvZLruqPSWNpVs2D0hll?= =?utf-8?q?YC3ZqQx5MRH6NmmltsWuIUKkmKjfO15jN+FzONElo70hO7GxdxWZqTUnKO+gLpoW0?= =?utf-8?q?iQMHPRWYBdsl1wPxn0z7Od0xblYRZD4a+/4uJvdGAWcZmQFFMbLapQt2t5QZKKI81?= =?utf-8?q?alb8SIdNfWxGLBHtlRt3kwkhTwdc+mDdh2JOXVwS6+mZK0s6QvfEnKmx8LPwLPuPc?= =?utf-8?q?CEkZ9RjL/sPG3flm+XlGPLVArv5ppl5VgEkutzWV3c6TYvJuQ1UuStGTzHGCbLN8M?= =?utf-8?q?+DqRbfzZOgk4Gc5PsvuHRUiSXgv5zUlH6c15nVQCEbqa6rijNcHOw888d6znyIh6V?= =?utf-8?q?FmgAkn76sjp+WnEmONYud/Ypf1AwnSJ7t1hFi7prBPsgijqADBpHCFxPLQASPYnTv?= =?utf-8?q?K5Si8RliqNpZaeJwZys4ZGETusdjLvc5V0cKe4MToqe00o0bjDWcEPiOGD1znYAvr?= =?utf-8?q?sWdUkPHHbzhAzL3plQwa0VSJJWSS4ZW5Av95LHFKjKP1Scm+WNvcLmYH9Ir07hFJC?= =?utf-8?q?rvQHLpsWgizMlDFIp8O28zyVkco7oqaWPi6rO8w8DblVKd2vHwpG3FKdufjGkY40U?= =?utf-8?q?KvH0y+lRBS8ZUPi9EPv0z7BPA8XYzL2zuYhMoGLhPAY7XeRir/IVTMJktfeVdJf/0?= =?utf-8?q?nIt0y6IjesuAPpV4YyBQUUTxMthdOa5Ugc45y63p28p/uyaLkv8BNDJVEzkNZLOdh?= =?utf-8?q?SyJOdRrzB3wpk27AxcPn/gbDbUFWIX4z4T+WBHS0hvm1Bx2s0U/GGRX3ZQyaHAWgm?= =?utf-8?q?7TOlkNiELWtD1bUU2nm/z1PyXWVU9ne/R1RxNw5UoqhCHNqJXp/0RWtql/1dEDAA6?= =?utf-8?q?5psMw2GyVS35SM2iHYgOk6+c3vjkRW4EJwi+V4osHxcV+HTXNcr4fJ/nkLPLHKVwG?= =?utf-8?q?minCEkv59lk1j3+JkkS0rhy8ymb6EsQGMbnmkGBB+OAAAwcukqa5HyU0=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c87d510e-2065-4ded-3b08-08dd7b82b729 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:32:30.7006 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ycstlvjybAg65+oM71ppWIK5hI1qvx5qE/LoB2pkA1rKEA242TBcaUmk6LShpRvE1QSyg02fYPEFE+Zz9SeJcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113249_234007_5649EA8F X-CRM114-Status: UNSURE ( 9.70 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add doorbell test case. Signed-off-by: Frank Li --- change from v14 to v16 - Add set IRQ type change from v13 to v14 - merge to selftests framework --- .../selftests/pci_endpoint/pci_endpoint_test.c | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c b/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c index ac26481d29d9d..da0db0e7c9693 100644 --- a/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c +++ b/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c @@ -229,4 +229,32 @@ TEST_F(pci_ep_data_transfer, COPY_TEST) test_size[i]); } } + +FIXTURE(pcie_ep_doorbell) +{ + int fd; +}; + +FIXTURE_SETUP(pcie_ep_doorbell) +{ + self->fd = open(test_device, O_RDWR); + + ASSERT_NE(-1, self->fd) TH_LOG("Can't open PCI Endpoint Test device"); +}; + +FIXTURE_TEARDOWN(pcie_ep_doorbell) +{ + close(self->fd); +}; + +TEST_F(pcie_ep_doorbell, DOORBELL_TEST) +{ + int ret; + + pci_ep_ioctl(PCITEST_SET_IRQTYPE, PCITEST_IRQ_TYPE_AUTO); + ASSERT_EQ(0, ret) TH_LOG("Can't set AUTO IRQ type"); + + pci_ep_ioctl(PCITEST_DOORBELL, 0); + EXPECT_FALSE(ret) TH_LOG("Test failed for Doorbell\n"); +} TEST_HARNESS_MAIN From patchwork Mon Apr 14 18:31:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050908 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BB550C369B2 for ; Mon, 14 Apr 2025 19:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=7Uw8VyfQPkoGAJ9vh4Z/t75FAVRHjabfWtBpwRAHpq0=; b=pXievG0tPnePvj0tjCfj5+PWw0 TmhvpgPRbzjmIyjBVmoKLDoQNpIh/a5vn+++N/fimS2aSwkJMQhhNr4CcfoGIe2lhR0R6w/xljfD6 OVFZKHggH1yMj9RSTUP9WI6O7Zv1QMLsVHwfXHN8Ub2NMVyZ4+LPnqGip4fKzIVMZCpn9jaRx0uco 8GK9GLTTa44N05GBE2PnMdzRNZ5v7ETaYqMjcVT4xpIHraM3myeaAWdza4NBEg3CXKBJLegHrp8JG ChSkev0L4WghfPwBE9+3KKQbyCFUTp8kAoc9f7yWTRy3lXDmjnTag/cTrd6giuyKTf9recDC1W4Nz 7/hZ94Zw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4P5I-00000003C1P-10Mq; Mon, 14 Apr 2025 19:03:08 +0000 Received: from mail-westeuropeazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c201::5] helo=AS8PR03CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4Oby-0000000377t-3W78 for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:32:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YjUG2bHJDbLzIBgVThn8h1YM1feYbd+73QJeQg7RsepJfuOkTtK0JXp+0ztonVBxjlKYVJ0qXQw/34l/Qg6mz51zlAtZAmNsBFN7Y82/5p+x963vgNNqbUMsarO3x+4rmT5YgVp4VMA+HlrUG5mtHknXYPhNL0KwDBVyefV+3l1n+qGJm6R1BN0T9R4ZZqAae2pnEGgKgnrpZS3kwUER/iO6DRALeS/gj3nxOPLiGHRdm4D0tVutUFyOnV0Fw5WyB/SHqVawPL2BvJChu41C3yYdXZ7mW6QUXaP/BTJUAn1ZsrkE3BM/WmImee8ER/KPgHoEXFFHHVPX9bZ1y+C+LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=7Uw8VyfQPkoGAJ9vh4Z/t75FAVRHjabfWtBpwRAHpq0=; b=jv5RjJiT17XUzmoy7JWhx88PTdFYf8rAj2thTCuSwsEGfrJkEOBAk1eQM3Gv9fmWyhdTAQpwkHMhNjsm6t4uzUpKujqaamiQziwnEq7AhrTfTW446EDjOaCpnaLZUO+D83kztdYPN2x080hxUhxxNrL4zdWx1iOJvBOxuTlKZ44VXvcqnMTqgo0zfknIFD5fTF9Txss3vvESqGuvf024nZuUE/cz51ekV5wfyCRglGvFx1/OTiv1TKo6DMJufF/5lQRUY6eKSVK9rx6jTU6bqj28RFKG34Aik8FfL2g45aObq/vLAYxBIIvBuLz7cBLIhqA25CKE67nrbifw7ZJvgQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7Uw8VyfQPkoGAJ9vh4Z/t75FAVRHjabfWtBpwRAHpq0=; b=O55pMEq0shoJ5ObABAhEHwjoRK1pKNOKUwh6qnGeerzFTGJg6SSefSWjhXjdJA493n/Ts68rIHHgslPDHTEDL43mihYrS5zgcXTze/I27KZhV1ins1v0RxKdSUwi98pFdyVPFvehwcqJoYbbvvLs7WXn3n2k4565T/5hhkb+ng8V2lnlDNBYJ+XxnjY3cLYQfs63xZ88fvOo2HhkUsuJ1/NBfnd1zmh2cM3xQn7PtvLwXKKNp1HS3+WQ3gKaPVgX0TvjjEGxxkgL8HqHoY3plBFpwDCQ6EEGoCm1EvXJEJsvo2vzF0YTF4/EwUToTEStjw7xVRxU0bO4FW4o91wJTQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:32:37 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:32:37 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:07 -0400 Subject: [PATCH v18 13/15] pci: imx6: Add helper function imx_pcie_add_lut_by_rid() Message-Id: <20250414-ep-msi-v18-13-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=1816; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=E/+49PZzSike5Srwi1bFi+VTiZ02VK7QUYMJGqtvfmU=; b=rC6rKjv1mazcvsk0eTe9Dinhuwq/5ME+KshqrH42IOh/pdPHQjD/XQo00jBATNrJ9wz4Xjfx1 wBE2EC0ad8fBpoSYC3dLBRVwA5PqRyzIx1NczTrTOlwpTyTc35EUJap X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 26abeedd-65a0-46a2-db46-08dd7b82bb33 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?BHoVMbzuBTQgIa60s65Kf8oVbKEr7B5?= =?utf-8?q?1az9LHLPzT7MX/RyRRTge7z/ELPyrVb3+Ek47w8i4UYQr1KLzmKqhX7JLsaxBcunR?= =?utf-8?q?7ZskdqP6r2vB43wZppSa6nzSsIIa8W2MIp6SFbEolJo4zWw/PzzcKG39L4ruBHvwS?= =?utf-8?q?NKVWbSI/SB4Ci85lj+E4tdKTji2nTS5w2vkQVGoW/+l/uApRiffZ6A1F748b7kwZ9?= =?utf-8?q?4EJVx5Uf+LIBok0e4dWtO5GNR+OY9avJjAlocVNu0b2u8LTk2tmjsvxhyMwsMWWsG?= =?utf-8?q?lfkjV6CuQpXpJ4yBGeGtfWa2/BeD8ZfdZ8xmli8+kU1Yn6ememkh24due03e6Rtko?= =?utf-8?q?QAPDQ9EX1u18eWxMZA4YszS9xDw7ZfsxGLGu1f3ut873SiBoSVncV0lYiFBWlWvIR?= =?utf-8?q?RkHRJV8jS5nvr/ImsiTOlb4WALSe5XtbL4zl+5qBXnbZooMwstZaVNt4ajWxW4M8K?= =?utf-8?q?XkNN4/lQpgnM1lk8Be9o+zIkSBBJWLpmpUMXcITd5CKY/PAWLOxvLq1j1qS82v3Kx?= =?utf-8?q?4T7QcyLEvS1HcK+dsCZDMGkKa1FHVasLl/dOLi0c/azRO3lVypHntiHhPcqYmjWSb?= =?utf-8?q?iTYR+4NGJTwCpyamsRcQ1WI6jJjiPZ4awzpwN+JlrPvyolHcRQRiO+1a4EaUZ5mcb?= =?utf-8?q?OjZFW7cdW/SKRuyFXEwAQX0cl/uVXkWehsHnDiWFf7LK/jyc3ouUkXEF12x4asHdb?= =?utf-8?q?wnrg0nujY0KWsl6XQr7RgvVgEXBcYV5FqRN9wxkvbb1tupBY0awmLzRDls40yaEHj?= =?utf-8?q?Z+lXPOn3VBJpXFZSBDKbA3e7/syNVBQ57TtA6+ztDiwDgc3Ut4+bzwR/dB9IJ/PAB?= =?utf-8?q?s0+dUUr5kVGCiTp0jnuxrM9v3T6YMn2NdLnnAIOSn/6Hlb1EIkfwMKBm5tmfS1gyM?= =?utf-8?q?vF4kpKRGYvP+FiBE71pZ25gZ6x/PoaNZDm4+rSIPG/MTMhO8jrZqfEt+qkjRiezWK?= =?utf-8?q?o1Udzc/mUqzdOc241GFJW1knZclMQiYbkkmH1xnTb3Sdw0HB4PpnVrW8u4sBaVRYG?= =?utf-8?q?YK7M3HIRbbPCLlm75K5g+pj5tdBDVio3F/B+VBbBaVaWRs0Pql9RvmsgxTrDiISWU?= =?utf-8?q?eTCez1fDWFrWMW/4kwEwgwKAUPAF98i4CtSLmwC+uoLFeHEP7OWYLWAdgXie8TFeQ?= =?utf-8?q?KD4Ey5FQ3xz23RVS9eQNqrdTRetGkRi53YXGl/QPaSKrewVoaWe6+kF4hvt2O340+?= =?utf-8?q?1U8Zyqk7o+E5YO1FFG2gqs4JSQZ3LK8/dDyyC64B/MpjD2ZyRgAcRfyQWF9fjTOOn?= =?utf-8?q?OZ8VaIR/vqee5iWKkMXzw2BcXqir8w03s3UyDj9Jg3b+1aaPQSBLusCk8tlnPzmsJ?= =?utf-8?q?Q51Nx0y3AI8MA5tvz8bKABx/ds4sT/uTHRN/zAwmwzCqZ+pvPcdnkozpZR0ta94TZ?= =?utf-8?q?dJ2bzWPo6pOrkGyX6RhHz741fnrSQbflDZyCwllrjLvEs+AAs/TyBg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?S0NWcITGUzp+68vFOuDuKoQLskqC?= =?utf-8?q?CPjcn77LUzEVF4+lH1ccUQeaa0RwmhaWC3l6gfFvTYuuHZBGz1VEnPyygwHT1nMgq?= =?utf-8?q?/PK3EZhtG7W1HyZZZOm7d3GyC0s7++MOqWh46iCGTKu/knWC1Dh27lhCXyy0FMO3a?= =?utf-8?q?yjoYoo9mWkQJyawHLJ1cZiXiYq/vIBw5JbuBT9M2j+Xqjksx2ZSrJhbhcDOxsTmNl?= =?utf-8?q?uB5KM1meyl7rM91JUgg3kdsyEEhyaTaA0ZdwkInzjJimADYwx73nyZuCVTeklQUQV?= =?utf-8?q?SGuVyK2dl12fbYAAhBEKOtW1qSNQ25IckCtrakNbM0IKCN2/GKZbHq1/BUZUO+I3l?= =?utf-8?q?Xk6TCwgtWgp0y28NB2DkflJZ44PdFboYZ1c3lf7hjhDIW0xkgGI/ptf1cZCCa/qd4?= =?utf-8?q?bgXUiXOeErzsYpvakgSUqIoKia9ZFpcKSOJa3tXDG/CQ4R2b+qAblZtCoP+RbqeYx?= =?utf-8?q?qxoCXt9c/r81QzIkT2ubM8UUqJA//GtoIQwOd4BRVy85GNTyK6vHl4IJFrMw1UxHf?= =?utf-8?q?HsPg42W06UL9Eo1B3TcAEXa8GS3jZ9iDYkjB1WniTJW0RhvR6pRu1LxDCTJnB+g1P?= =?utf-8?q?Y936V2CHIagtOmbKpwGUuzTsnAi4o/WiyBgDFk4/sUmFAIQb7MB3jhbPPIKyQHNqF?= =?utf-8?q?Qo4EIQYBpqzrDihbXNT9V6Z2YLZeEwlHb0A1/ryiRiDNvlUK01hwedPBrnJjaD2er?= =?utf-8?q?cYTl+smvH0IJ0CJLkFJR5JF34UYw8X5LuLm6y65YSQGp38MTP2njrj+a/Tao9q8Vk?= =?utf-8?q?PkN7EnShuiNXltmk76CbKXgRpTuDFdZuXs+/pE2W+0ULgjMXGZArT5j2pRfsXDlI2?= =?utf-8?q?YNPZd8wdrBHiDzyXzpHwMT9hsz8/xBRmLsbrJV9/y9NoXXtnlCE2vJ1s9YEDmmir2?= =?utf-8?q?kLbRxb6LsQMDtUS4t0ocIzalUfmr+k+RsGgN9xw1QsQFTXj3yvM3HpHw+Gi8iv+cB?= =?utf-8?q?hczRuTWtGYqriDYa0sLROP6//SwlOe5LHJ+U5pD2kdKaAikgrJa0CeWWh4YO/J3ql?= =?utf-8?q?JKXjDr7sT5fXJxU2mgICZaYqYmoDZuAjQeAFMxE1lhMB8NxbNMIIJcfmFLTOU3tis?= =?utf-8?q?qMaNu2KFxpUQPZP0X1SUTi7VZsPwQ3FX3iaJObkK2ldcnuzcAtokbvu+XEewqdmuI?= =?utf-8?q?pdhkaIce9jP2aHQlcmxANGPMVHfao3ggqQyLljtMly1TgU8pxYLzlw/M1+aUQH6hi?= =?utf-8?q?+6OVfTP84lGYq4oHUlLDbK/I3Azk1q0eH0ICYE13p+1ElwtwHuqT2rB2p+pg97/Q3?= =?utf-8?q?LyIKDwiVoCqfXF4EA+N0fQaSlTEn0cMSPxpA3Lew0qEj+ebO6oq2Zo+5FOHgj0G1f?= =?utf-8?q?IBLPObqkcbM2+nkKUurGedUymKQgE0COa2aGZfiSQxK1IscUp7yG2jqbca0efl5qD?= =?utf-8?q?fjlyy97O7lWZTw4DhQ2RRoPeXdAPGBeElFpSwJ5dRw2kYxY9jHw3wAVvEZAhyDYsl?= =?utf-8?q?Lrgh4FosmBufLwYi9SKFDe8BjfBDiF7WD1F1DNoKgorTWQ14tDy9Dxxo=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26abeedd-65a0-46a2-db46-08dd7b82bb33 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:32:37.4624 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Wb+tWrchVnP5KjuOSRLhzR4s0F/jJ/D9qk6oVv99k/fgulpf/aG1HD2ELzEMfJIfRwqtNJGVGyu5f+IHSrDwkw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_113250_891277_7011ADC3 X-CRM114-Status: GOOD ( 13.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add helper function imx_pcie_add_lut_by_rid(), which will be used for Endpoint mode in the future. No functional change. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v14 - new patch --- drivers/pci/controller/dwc/pci-imx6.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 5f267dd261b51..d1b1365e7469e 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -1025,18 +1025,14 @@ static void imx_pcie_remove_lut(struct imx_pcie *imx_pcie, u16 rid) } } -static int imx_pcie_enable_device(struct pci_host_bridge *bridge, - struct pci_dev *pdev) +static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid) { - struct imx_pcie *imx_pcie = to_imx_pcie(to_dw_pcie_from_pp(bridge->sysdata)); - u32 sid_i, sid_m, rid = pci_dev_id(pdev); + struct device *dev = imx_pcie->pci->dev; struct device_node *target; - struct device *dev; + u32 sid_i, sid_m; int err_i, err_m; u32 sid = 0; - dev = imx_pcie->pci->dev; - target = NULL; err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask", &target, &sid_i); @@ -1111,6 +1107,13 @@ static int imx_pcie_enable_device(struct pci_host_bridge *bridge, return imx_pcie_add_lut(imx_pcie, rid, sid); } +static int imx_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_dev *pdev) +{ + struct imx_pcie *imx_pcie = to_imx_pcie(to_dw_pcie_from_pp(bridge->sysdata)); + + return imx_pcie_add_lut_by_rid(imx_pcie, pci_dev_id(pdev)); +} + static void imx_pcie_disable_device(struct pci_host_bridge *bridge, struct pci_dev *pdev) { From patchwork Mon Apr 14 18:31:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050911 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0BABBC369B4 for ; Mon, 14 Apr 2025 19:09:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=MbXHpTIvY3lK/PUhp27uVmw/pyQFw3cH2yjbLrE9G6w=; b=Iesjvm0FEbDNa8uU+wVmg/ubcQ NAiRc69WbRlgKr2j5Uu+bfv+vAbiS8nTp+p/9am9Th3tT9cEmmUf58wGPM46jZDalABGhrnt1XAe0 sNjkDmIBArzel4tYzUt+czWj3GK/UARirJZYNSZNdV0eAZ2XDIjztKnQ+9pInnruA/yQ2ViXWZ+uo peqcDwQ1AqqWVkcJxCQ6TnmlTtxq4eevoaJQePFICsNmwDJVVEJcRjb2DN6gAkW7M/QK3n55Gmi7d Ec9vMLGu4dOzDogUqQuZfLosGXuiUHMRdR2RR0I/hUiP4lP2/5MzbEraq4ZwXfvr8IQ3dRIdcN7Ez v2Q0do9g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4PAt-00000003DZv-1w7m; Mon, 14 Apr 2025 19:08:55 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4OcP-000000037JS-2aZ1 for linux-arm-kernel@bombadil.infradead.org; Mon, 14 Apr 2025 18:33:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=MIME-Version:Cc:To:In-Reply-To: References:Message-Id:Content-Transfer-Encoding:Content-Type:Subject:Date: From:Sender:Reply-To:Content-ID:Content-Description; bh=MbXHpTIvY3lK/PUhp27uVmw/pyQFw3cH2yjbLrE9G6w=; b=orzdFy/RZDbbMLQjf71dtkDjy0 KTrDM7D8zIn2V1s3GAdjXukEaZ5m2AnfKBxDPc4jWsxonw0qvvfR0dUe5alLr5PcZmGXsxCwcor33 2t+4M2YLW27cI8UlvMbvGDPuagHVwjobdkwHSNr8KQJW7Dqrf+YePed901jjcLTCxJ9sqbSN8x3S0 AU4A4q4/eEhss8+LVG++7ECg/K2QFkTTegNERdTd5uePnRWxgSM3GWWH2J6ytj1uDZTezAL0vtODE 0tlmFm1OFm06irBercy3BaktCnDWgIaAjoxM1qD13JnT6ZQRH3qRrYutjDjSE9KU3aUgMy9xQB7Pa MkpaJr0Q==; Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by desiato.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1u4OcL-00000009khE-1IJ3 for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:33:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZHzZ90nffCxaIMMdtFtCfcCG5CQUru0k9wUvzJ2pVSIhUpyN0UUG+sbhxUtaG7YuIawXRNFRyfaZpRfnYY0kR7z1NxDAnjPYc1jnhd2SAR8I4TDrK2nLF1gAOpcAoefqsajc9HRKX/gL0EEpKqnMQmKdsyQNGUzompMP0wxn8byQ7G75xWYwuLPMYGtd4f0YZ0uoTog5ZLYVoURPRtCIW/MwWLMbvgnNJUPhG1dW6BUsw1BtlTWei9kNPsEwLGz74qCy36jgYzbU75f9YgHIKYkMUj8hr1Al3QidZR2mD2G9HaAfh+9Wi+Q0h0MeWFvNqKOQLUoskoG+4oj4S1oG3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=MbXHpTIvY3lK/PUhp27uVmw/pyQFw3cH2yjbLrE9G6w=; b=OZ3XoSqyYjShnziv5xx3vSa5ZD0wAoxdScnE1DSvsxpUv6FMrZKqP6+f6T+n4wlMco01m/RtGBBaTgGlKeBSoRGw+nSNIy1IWcafxN2XpzXSI8Bv20KX4O70bouJ601jdarD37uS7foQD9j2aKNIpQ/QKcRnox6MCfOAeLIlb3pxOnMuLNiJEtmXKy+8NjtIpxlZiCUW6jG9/SZk/AxhdZraw0ZaUn0+YQFu9CLFXEVUpWWfGLIbbbIZp/gDYDon1tkkoAHxhgYIwWW3W1BuJOyK6MuQDkDfbaERodyYUaby3Uhs7GuQ09W75bElIpnPsy9AnVx1DiRYX5dso7ao0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MbXHpTIvY3lK/PUhp27uVmw/pyQFw3cH2yjbLrE9G6w=; b=TNikwv/taLFzK3s536UbEO6EmDPU3lyHevqu3508mjZaHBqkPNzOk1TtHJeqyknUtntGwVKrgtCwgaj/79gQ7ZbDDt7WA0qvrD8lKtQl+8DNk1QmpattcZeX4JSTPARwQOgK1/t8ic2CHsSOH9EGRNju5lRDKG6YxkCMKa4tJwVlGNG9jjJA0nKYmMXj0TXtz7Zk3RjHlVZ3fDMtt9dgouCdNpaQFwj4sD504CzcXwwZL+/exi6s6EXZMZE9GBz3sY7KnWx2OSKVy0wN1+Yq8QYBr9kuFBUvXCdgJ7Nt2GMriPikfCzS2ZmF5JgdTmCwefuJDdV9D5AI1pW6/ExRCw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:32:44 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:32:44 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:08 -0400 Subject: [PATCH v18 14/15] pci: imx6: Add LUT setting for MSI/IOMMU in Endpoint mode Message-Id: <20250414-ep-msi-v18-14-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=1486; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=y13NGoBJeE1mUHUBweMBxtJI2C8OON0QvH2vvgiDgJs=; b=G/17/COGstLE1tHnTP3oVWqeE0YhVFBNgA5LOQviUomcrEJRo/CvYpvszT+OJj43e/zVF7Lta qFitKfz4bg5CQCcDk4ndRfGys0zVM61zIolTAPUmMi+LllrbYegkjlu X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: ffffdbdd-b271-45a5-354b-08dd7b82bf38 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?37SzjStlGazBQ5KCiTcCtkw0dTeM8MX?= =?utf-8?q?Ij7FzRzpwrYECG3xjX6Ex8qjeBPu4uqR7ekPsfOOf2oFxVRHL65sA5IDwqccShZt9?= =?utf-8?q?3HzDP1NSgOOd61/Cl4wKF7j/fmYMN3N4sv2m7SghFCF/Udfrj/IeIvb3m9BFU2jss?= =?utf-8?q?4UAc8tssvUWCFz6bCQJsJKwtt1U/8k0r5mncm+FND1YreoiTe4BlSO8ybckq843dj?= =?utf-8?q?YRzwe44CCjqx3ZHdMrzQIvq4qYyFUjKh771WDXbZUK7bYHbEBvZA66ggqwwJECCH+?= =?utf-8?q?UTm9+3MEt5ypM+rYcPnPS+Y0QAthKlJsbCfpuZm4gApKIgX0GTWvJmBNe4tt8yLSw?= =?utf-8?q?MAd6KWaRm/f3Gy5+67BK9jnjrmnhK2TX+J7NgzxGlfg22VSYa8vAYvdtSEpwP8dl7?= =?utf-8?q?zO0OO9tjjrPxF16ulxX8pbXR/A3LZ5BYtrMRxfOdXN3SCia5vZBsbmPC8Q1277/PO?= =?utf-8?q?GnPznuGtboGBFFHrRFylEjCWEiWj1a10JiqpzDUr4v1PbDgqJG2onX1q/3nKa7L/I?= =?utf-8?q?8WZwZGVildS3GC72kc0ag/q9PuMEBKBv0i4XnIzOw6J00D5gnElbbF0jFEdsNDjgr?= =?utf-8?q?hZ4RvWqsAWqH4lrTPS09tatG7O0xU2OifSr4zoMqALvrLdpnHZrx4UqS/RJMv8a4R?= =?utf-8?q?+Ff1eVE9VmAyz25iiMRlvHcESBWDp1eX51ldjy1uKAMuAUsHmUlEP3cci5Ki6g8+G?= =?utf-8?q?tWx70v++IZ5E0ollJ7ioR+EXz0e7+paXcZ4icHeKKKvXkVMnsue/s9X1YaLReeSqj?= =?utf-8?q?rqlaJC8tHlKrSkj34nZCilXtDepCaCJYbpny4huCYbIVgiE7+4KpQOcKB76BUhnp4?= =?utf-8?q?O2RK8tw1JZSaRi18Bf6k2CJNHJUM172MvhlbzVTXcNKlGJ9Q1zEXURLuDiWxYy2d7?= =?utf-8?q?mcZSSDxzsjAa2SVuDOFivQeBcidiy9JG9hE0XxImhalpyGTJtZt6G8q6BoZ6FvLYP?= =?utf-8?q?uVtl4a9Hwkh78DBSYZQ7lNXB5nhn3HDzQpcX38xKkh/pGVUOJAIx2LfNu72aQytic?= =?utf-8?q?dQzGvQ39ft+chUxLs/PNbyoNGG/V2zEbgLH02JmmS+1FzXniQM+BlMEg5Ph9si5BW?= =?utf-8?q?5TBlxe/ZgXsCOVPXJRJIulIPDxhTT9Pyk7mNViLwGygZ449NdYY8QypK62hD1mWZA?= =?utf-8?q?zDvwSdK0GQ/eU7izIXX/zs3+PCXJpEMeYolx6Innoo8PvPL+o+RMKX3jCNlHrbsDN?= =?utf-8?q?ufk/Oc3+VUGJQre2pJOWMu5/5v9B+wBBPAD1gd0C2uwUR1so7J6+zRXKgiOwhzRU9?= =?utf-8?q?EcQk2hSAnwRW4AVvHk4MsG2bPwHshfib2d3AxiDzHSVGPivQufwsMLXuYEb+UYqZw?= =?utf-8?q?wlfiJDEEyzNCBxgRJzEzctzIouQyXeSvrKTlrxC6gT/NNc8WfPcAnWsBoj4Py/86C?= =?utf-8?q?opHi0dhiggwf0U+yQkZcH/Gmd1O2nv8vfs8oHDcOVvoX+vChjD2IFI=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?rFP21JbGI1ny5dRiUhuDGBOdOsCC?= =?utf-8?q?MFw5b47zuwRuSg+WXmMlQoc4MBXUDiwCq58662GBWEDmwT6D5cQVo6sHTIY+kZl6U?= =?utf-8?q?2+b8YJCb+hdb78Y3AzqJp2vWCVUu7EKr+5v7EtVpMnEpHiNugd/z83vT+QHo+D08p?= =?utf-8?q?88wbj8mFZoAO5vEFq3Y6rTwqAnFwvLXZpgWEZgXqDMovsOMn2vG4hW/DXes4Lr616?= =?utf-8?q?GLBbOYMPm0flQzsjJaAZZ0V6AiAStXN3vfdcfzPo5mKm4Oh7bYRnvhgHjPg92PkE3?= =?utf-8?q?4Uv5CwANYsC10YaHPMfETOg1lJlgVD1ddoAyJczbkvSIxE+D4jrRToVolH49Jeycr?= =?utf-8?q?z9lItHeuPxABeKdMWVBBmJBLbaBmd152GBEuXclzmg/rMd70E0NDAu9+OuunKwaXC?= =?utf-8?q?YTTVp/u44vXt1IWtN/KHWsV5VvK4uTuXGNDXoV/xJj7TP8EjcVVUDmGnRG0UF/0QB?= =?utf-8?q?CkDJ1O1xEu5fK5dtbaaAC3gLODnsdigGpWeVCctKYrLjUCHrRttXbbuH1b1oMOSdF?= =?utf-8?q?XgJ8RBSIPFRUSUdAG/QUOO0Xkh5b95CEWvWU6caB+eijCQgB84nlaJqoG3mNs6uh7?= =?utf-8?q?92CLq/abwRCa5DQ0q9mCTDu/GOiXMnt71BFkTPJsaFlqx9jeQHky9HsbxpYo3/Vpq?= =?utf-8?q?gNPe6kHSL+qNpLqcf+Pm5yP5HOP6GGjwwQVDRZ9mcw6JfhQEW4EjwatdXB9Hvq7Pt?= =?utf-8?q?xPbr6EbsagI3KJIudbbUhmCw53+f181VGsZH9kfwndk8HI4ZRplvJvu++G1F9DFo1?= =?utf-8?q?/WJwc/XONQlnFUaSpXbj/CAtb9gGBcDoU4qMf2geA3t1IILRQ+Cj4qrE75xadkgfZ?= =?utf-8?q?m0MIMXbXOzS3NQHVQrlBNPLNOOV+7Si677TBM/mkk1nvM0kWHL2pU3A/4wocFIu19?= =?utf-8?q?tSjv7bOT+RoUFMCXFRElsFDabW3uZDmezeCNyCTgUzWVI49WynaeBoq9YbDEDmbR/?= =?utf-8?q?c9tsBWda3hp8JtPrY4vUdgiMu2uT/loBZjUtTT6hlYBSTPWzafoybuNsbkpSOv650?= =?utf-8?q?ULHCRtpGkXIcPszI1ywKnadeg8oix5bLDxlHCmuMaaEVmqnSdaUATE41Y1H+E1mug?= =?utf-8?q?dYB4FzNlgalNF4jkutfLLdyf1Gw49q3se6NKjkdjbvNAibDEP3YYHAftIpO3iSJWP?= =?utf-8?q?vd6ZKYR6Wl40svzb7K0NbV9bfsTGo0Ex95L+WsPqSP0Z8xRmYF2yNmjjYZ2QEGoyb?= =?utf-8?q?7FhjKjrAELAmx08+xK8QMf4zKaf37xxFttSJoINIoKPg7r6iQOHZZ2ciLAr26qanF?= =?utf-8?q?n2DWC718v4JZsIa26FowXix+BxPj6dajruwWDCOTvpK3A+D2VGI34FIx8Q9iyWvFJ?= =?utf-8?q?/br+B4epo06Ox9ogZp8T4ctgVS0gkdvDHcXH+NKkvIsBZqRlw4k8LOG9KTftn6kfe?= =?utf-8?q?lwMEuilEMTsUaTsI382QiXI9EcCjCI1GdKeYTnzCwmOF5hqQW5DPkiiXYhqtGrE4l?= =?utf-8?q?2kS+BpZowz92jBeQleqJKYgftMDrdGWiKYI0wOs0xt047BACFhZLQlBs=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ffffdbdd-b271-45a5-354b-08dd7b82bf38 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:32:44.1919 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8CX9ELf8dcAaE9e+r9xElMg4pLNHzp5jEmSjYwoMM3wYqqtAnS4QrIH3Mlw9izAZB6FfC91FAzsRC8KbMbrmmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_193313_715105_BF0D29F5 X-CRM114-Status: GOOD ( 14.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Support only one physical function, so call imx_pcie_add_lut_by_rid(0) to add a single LUT entry when operating in EP mode. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v14 - new patch --- drivers/pci/controller/dwc/pci-imx6.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index d1b1365e7469e..a6e4630fcf530 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -992,7 +992,10 @@ static int imx_pcie_add_lut(struct imx_pcie *imx_pcie, u16 rid, u8 sid) data1 |= IMX95_PE0_LUT_VLD; regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA1, data1); - data2 = IMX95_PE0_LUT_MASK; /* Match all bits of RID */ + if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE) + data2 = 0x7; /* EP side's RID from RC, only 'D' is meansful */ + else + data2 = IMX95_PE0_LUT_MASK; /* Match all bits of RID */ data2 |= FIELD_PREP(IMX95_PE0_LUT_REQID, rid); regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA2, data2); @@ -1622,6 +1625,9 @@ static int imx_pcie_probe(struct platform_device *pdev) ret = imx_add_pcie_ep(imx_pcie, pdev); if (ret < 0) return ret; + + /* Only support one physical function */ + imx_pcie_add_lut_by_rid(imx_pcie, 0); } else { pci->pp.use_atu_msg = true; ret = dw_pcie_host_init(&pci->pp); From patchwork Mon Apr 14 18:31:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14050910 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 80DEFC369A2 for ; Mon, 14 Apr 2025 19:07:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3HXJMXZ9LGUTZustVJgA/C/zKgpGDb31Acgkq44bsAc=; b=i1+AgV6SRwaMUYeNi/uTn+5yxL GDOWpxisMhklfEg/pltmlVKUjyLKdZVR6stRCeGTusZCzfDvvCC+6QNXt74BQAdBW89EO631dhRgq ft0YD76PU3A4R+eNGyTnJPQ4louC1SWBhyy4ISumoRvxlBznTKllioIvxdTVfz1OszIEZNxK7ohzF 45ReXuEk3rBFbwZBy9/Knkle8s3Cja/nLGAJ1UTuB3VfPjpjZCffeFNqK4HHhJfRAzMZT4Tey8kt2 EjNmihcSGo8YAyxtKQj2E0iRkxgZ35I43JPEOQ1eMQdSwZunZqIxvvBQTQifSN9kRvk72RQ9ur3J6 O1PumItQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4P90-00000003Cs3-3Bxw; Mon, 14 Apr 2025 19:06:58 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u4OcM-000000037IJ-1f3J for linux-arm-kernel@bombadil.infradead.org; Mon, 14 Apr 2025 18:33:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=MIME-Version:Cc:To:In-Reply-To: References:Message-Id:Content-Transfer-Encoding:Content-Type:Subject:Date: From:Sender:Reply-To:Content-ID:Content-Description; bh=3HXJMXZ9LGUTZustVJgA/C/zKgpGDb31Acgkq44bsAc=; b=PJJnd0RO7ynpMg/VuFwf9Vjons aojFSwN7suM/9rsCjXMKk+AmOqh+2O+VC2+Y57l91NlDJZs6P5Y5M5z92V66itgPqC+09iwaJVlXh P+6e7xu6FyJNVSU21kocFdUSNgvM2OtfKfqYDwcbaBcu3dBlbmovfoWctsY4LCcrOMpUwN4ZxhNMG OHggYqQBmagrM4izPBoDqXvbiKEe5qPX3V57AncwPZXEPL3SDTJjD77y+t6CaOx7Oq8RRebu4IMJD 2xxK83bc1efqcvcUveHfIVsLcmjOEIHphm2zoJHFiF/v+t/00ASx7gPb32VOqNGEpAbx4W7SCTdwT mFSIvmUw==; Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by desiato.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1u4OcF-00000009khE-232r for linux-arm-kernel@lists.infradead.org; Mon, 14 Apr 2025 18:33:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QofYd/+E0dlOm5HThk53sJYmSh1EgAejdztVK4uS+n46VB9T17VeNRGfh9vbUG0Jxd3hdRJ0u7aakBwQ8HPQiy1ul8wH1XScrWNgubx9BTQZoAeGATH/+faoADSsTjkpJGTLrtw8DoQFQ2RbB/bbAPUvWdDzLGFEe/3NO3pTey3w74IkKXDljACpBVN2TiIH2MR574UGLMsWQT+2OY0CwLpqSYwrNFqFbLxfCNJ35iP7Q1OZW6kSeHsD9zUvysoZId/KqB/7hpXhmghxWvPbNSXvb301tgpjQn/JeFHZ0pkp4hmvJPARE8wWE5dmDGdh24GJ9GcxdAxxa2gbET9T2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=3HXJMXZ9LGUTZustVJgA/C/zKgpGDb31Acgkq44bsAc=; b=xKzgWYMikQ7bVp0IrJgiBXim0iTsxtDugAoT2vGYxJ5oGrLDIsN01kwP5ZrplWA4gl8G0yQMykOQPH8WhoikL31Lq8/0JW3jnbMONgRxBaXLSHLKsFTXiJqvlQOt8D26/YKT8xpmRqaIXxm11ko+7LAiI/Np4NR0DLTfEdG9QEeejvewRkkHooewzQdBZ9S+R9e0BmOxYAEVksXbsZZtWtt5Vp0aT8MXKBDypBqB5F22SEPW9GO8AKMGEPF7pgx0bhuPBTbLmW5338CjfRHUxDlmQbthrCGbFweE2AqkUmgRI8E7AqZ9bQq5ka4pE24fTyhifbn5IVPj10/WPDrYPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3HXJMXZ9LGUTZustVJgA/C/zKgpGDb31Acgkq44bsAc=; b=PxHPupQH6qNbxkY7H7SyySR8P1Mv4JrPuxAuJcUSi/A17FTT9sEeqvvScmakyvnQm3fh4gfrooq+xiQmnc7l66SnvtIcd++pXhVCa2fHVqhJZAMyLhF9giaw/X8wsTXzoeom7JCtf9JsmHYRTiZHZJHMhHKaeiN2g8ZYJO1LB1PfAKUMuyGNsCmNErbkVf6CMta5D0/SQynihp5ZBm7FdpKSy8JkeZN51sV1ikwLOAmTL+r3t4mHZhJwtHh5k4ggMbCc4ji0+8fXb7zHiIa/3YGTX4b4OfibajnNG2LN9Hd5guV/YHidMvkGKIIQK+SVSXxI2fAF0cQMBt5Oo4Tz0Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by GVXPR04MB10245.eurprd04.prod.outlook.com (2603:10a6:150:1bb::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr 2025 18:32:51 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025 18:32:51 +0000 From: Frank Li Date: Mon, 14 Apr 2025 14:31:09 -0400 Subject: [PATCH v18 15/15] arm64: dts: imx95: Add msi-map for pci-ep device Message-Id: <20250414-ep-msi-v18-15-f69b49917464@nxp.com> References: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> In-Reply-To: <20250414-ep-msi-v18-0-f69b49917464@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744655465; l=827; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=qxV51hE9iVaqehK/qn4rz9KrbxpDkLsIBLjf7RRGT20=; b=1zj9eSgOn+rmyo2cw1RJpm1r3xGjbYHkylDMqmpqOgP448OJnuNdkt2pQOfNj1pmu1ygcwGsn /nxsX1RsenUAnfiaeBLDpiXLJe0LioDDiQhLBikTw+R8oUBZZCr8RlB X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7PR17CA0021.namprd17.prod.outlook.com (2603:10b6:510:324::27) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB10245:EE_ X-MS-Office365-Filtering-Correlation-Id: 18a8769c-9496-4f15-4940-08dd7b82c33e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?UXGpGeEpZnyv5EXdQN7cOrpapiJlKJT?= =?utf-8?q?gWqnVUP8dILrES4oqnYOPZWULZCjg7iaJCFsN226SeaR2g5aRRA87LUvtSKiMdm1x?= =?utf-8?q?Lq4yTvYPyG5Xa3YKeJcQ2kbRrDWgIveGGDtaYEgVj3n/tiSkRmPrj7IRa/y9Xf1LH?= =?utf-8?q?xxt2JxGl/VY16qA2SPnW++KGykbnIXGJRRcQjpqKg1Wum7nkIJVG8FXmS+ZQ4lfS6?= =?utf-8?q?/XQfeQm6oBJ/3q+mi5ocqfbG2YSML7zwM7/WKoJ7wQK9dFW3M4wdjdYpS36dbSfhy?= =?utf-8?q?ZM+vSZaIW7umQ89GiVvPUjP8Np2FWag/fQVxfE3u2002ZlbtHqttOcbhmopO7tqIP?= =?utf-8?q?juTlu+cOUEBlTigMyK8wDhFGP7YlPT8RU+b8g8Q5XOEwB6CJkdZnVwaKjAzMlkfd0?= =?utf-8?q?pxuvaAg7QpJzS99/Hdg6IxIpkE1bPcheS1lrGbnY5m4WYSkcu7VR0z2+jw8AohMNC?= =?utf-8?q?nKwycnZ/B79IJ/kwy4tGzyjGQUcFHXbrpMVl5FRsML/3uj7vEt1ieOwpPlJlbUuMq?= =?utf-8?q?A1LR3scf6IUdviEgDbI1rKhmS/XtTe0TeyTJiPZe7ZsqfcLVy+Y8koOf0R1/GpMHf?= =?utf-8?q?53oHVf0/tcMWRtwXEEhNfJ1svEaKzP35LrlCfYZyBH74SSFs97oa2RCYLlszV71Vm?= =?utf-8?q?5BWFnPmxXIutZYhXrkUfW82uSvDp0thUhAKSJAKN/sPKPtiaiZfLdBfw+QNuhZ+Zm?= =?utf-8?q?9mSVFyVgxuX6136PFAhDWRr6rW9MwhW9J52z89QbwD1m+2GkSwI5pnZ4d1EoSFE5U?= =?utf-8?q?d4EZF3zdvDNsjnltdnft34yXaRRMGoL/b4JKPXFQcoZuvimh94DQ7cMUpHWWZbT5k?= =?utf-8?q?6SMd+ZJF1xDvubjHL6NPxeNZku4Q/Gm7URtAhOecZRHvkhiUueq3XRHkv2DrKt1QT?= =?utf-8?q?xMYwjkvx0180k0/WPgIDf+eZ+KCz2pVvuOY2XHhy+uwUYriQ26fNpRnVuBLMdhUCw?= =?utf-8?q?LXZtkNr/nnh/abrpnARYfaYnlEQmLbakVIidHB0tsOF6NTSRK+1LAPgKovqMC+4bV?= =?utf-8?q?kK7Bdfr4ljB04W4sl4eyIYR+DAf7j1sJMI14B5l14wqzbUoiK8yLYhj5hVcbU36Ig?= =?utf-8?q?JmRhgBlvTvIgyPh+D48XY5o+yI4LO4WQ9lR5oBoIC2U71vwbhb9gdKnS0jo2AWDbU?= =?utf-8?q?dDlH94uPlcwuwQr8c/iWY+Pxx3mF+NgJSsIXCx88Agya+1SIbSpvcg4C2k4eqxQUu?= =?utf-8?q?twz5co+pAcwDvwbhnkgPGPbWd1SZ9zuMjPKKkyn2Xf8OGPwXd9Dwo/kb/YGDzCbnR?= =?utf-8?q?4J4lSACTepS4wFhJLcxqW7u90gSwcYxBa25HfGTPTfbjuzswz8LSdo4CQ12K6c34W?= =?utf-8?q?2BdFlKPjbv08P2RFeChZVbtrEEnZ2whJM8eZM1lePCGm08b3148LuvNFXamO91vSX?= =?utf-8?q?aCZrCD/YhiLs2iL6WKviKsdTjGRaxY16gv3VlHI3pHOxZXlOerrI5c=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Vapy8r8gCXAHY4rKzozGv2s4pD5a?= =?utf-8?q?ZnwbHLzZz6ed2YHELcOJ598rVwVLCCt3636Gpy3e4iWgMtqn5lLjLi+wv+wL+XNVo?= =?utf-8?q?FJJ2ydaIlLlLBlwJRIa55c2BBflzEu8C8Lp1VUOlImSg9y31iOB0IYo8WHY8qYKec?= =?utf-8?q?kh9OVtQKGlt7ODc+6X6Whh8ESm3pn0HVTmapFxw7+mHrjrLRt7xNn2ZgYzaV83t+T?= =?utf-8?q?/BIIt0oYNpiy6fDZtLeOtnJs6qsX0Dk2M77Vx26biDMLGyuP5ibsPCrtQ5zagCYcC?= =?utf-8?q?eeIRBBbA1NrRvj4OrQDNFUGcAs73UP6o1N3YJP8YkgzdLg1GSA/Hpw+DmTr5pi5Nn?= =?utf-8?q?S8oCiE/4mluKzqH7YyVApyRSCj9nd6i+NDnve/KMrRYuXImvWI22ZBJfp952CMhTJ?= =?utf-8?q?bg8RqSU01/7G7bsPHUfVaWbeFf6ITDLjVh+oMa64gxXRxZZlRndx4klKoU9npx/ya?= =?utf-8?q?VbDktL+n6WjVU4U7wcIALp1ELB+kTxGxvxA3+8ssJ4YqR4inesMyBlxXAK9HYH1tD?= =?utf-8?q?qLcjFLuYaOyw3vmp+nVA1GnT8FzRFc6cG+85U5BpEk30gIUwWEgd7Gb5+79VieY59?= =?utf-8?q?VajzmOwwp18IvmLkE4PG0p89RmcFz15qKdzU9xyGQlfcH7BJELWe9BUoq9JOs64KP?= =?utf-8?q?qhlsF/CHSAMgxiif4BSaDekhQtpy3joHrJWktYRlMeBOnr/O2Z+i1OQl5edqHbp0K?= =?utf-8?q?t2+2yc4nO4SLEzpYuzH/beJGO9BrA+TZG4fAAJOk9+Ry4GoBYk4N511NFscNMpEdX?= =?utf-8?q?OV6Cf+Sf6K2xHUs+d+bSv7MdgaP/CvJIPBhJUN8QVrvRYJWVIR95PzfesTetmSXlG?= =?utf-8?q?wmbpMlAAef2AiWcuEN4ebADAf+H5//vjmArItvXePLuWnu165eYONoW4DFe9r7jgt?= =?utf-8?q?yyqtnbGxm+jioejsoQR7zkwsSKu8hQ1sMdbF7P5LGi8ftO3OlMKItJ/RMS+GV95Ke?= =?utf-8?q?3ak1YVelsiuIxs0dYQi+L2A2ISBYs8xukzbdid4QqQr2QfeBTsVm+QNgLMneUXBta?= =?utf-8?q?9x1eDA30D1fHWWE1z0J1f6wZgT7Qoqvj5LrePhxLgemc/0pATRkgZaeY0BEKWXKY3?= =?utf-8?q?EmKL6E9afcj46mhQKB1nPvJxYLAtI8T2XHEtaizi/3HeqZoWEWUzCPV/tEZMBQwC5?= =?utf-8?q?wOLsrnFa6EW5oF2aO+tgSjlZujr9vzkPIqQLP76itxSpCAsy5WvzrlvFV+5K6AmqH?= =?utf-8?q?a82e75vt6FJ2mPDqrP+uI3VXKtl0F1hn5mjlnMxcqvWOV74eV+lLScFgqzQVdD1cj?= =?utf-8?q?M+w4R6XWLb2IF8NrPCiRChBHBzBWLmWWzmLLGQyApvGqpKy0SL2z5HfmBtAlL8+tU?= =?utf-8?q?IMxsRFWB3NPzPwRTwyO6ZJXYD8hvRc7Rrligl6FlMR8bDJ/dYz8Nql7JrP6rmuWKC?= =?utf-8?q?LaI0M88gozuWdYOwLNF95FHb6qbffnDk4Tsq3PjyAlPCjAZhQBUWn6nxmbff4H5Om?= =?utf-8?q?RHmpJ/NmnXI6L6itsZhBqKknPj/4jbFNMnq9BZcsMrCPGJ34ePhek0jI=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18a8769c-9496-4f15-4940-08dd7b82c33e X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:32:50.9851 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VqaWIJaw6p9PevJPrpjeJQV8dwG596quAHuvY0nWA7iMt6qsTJdWRvY5bB69NgokvX4iTeA59NYxFztICYYGSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250414_193309_183033_D6244491 X-CRM114-Status: GOOD ( 10.06 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add msi-map for pci-ep device. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v14 - new patch --- arch/arm64/boot/dts/freescale/imx95.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi index 15ba83ce691f4..c3c76991f1c8e 100644 --- a/arch/arm64/boot/dts/freescale/imx95.dtsi +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi @@ -1768,6 +1768,7 @@ pcie1_ep: pcie-ep@4c380000 { assigned-clock-rates = <3600000000>, <100000000>, <10000000>; assigned-clock-parents = <0>, <0>, <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>; + msi-map = <0x0 &its 0x98 0x1>; power-domains = <&scmi_devpd IMX95_PD_HSIO_TOP>; status = "disabled"; };