From patchwork Tue Jan 28 22:07:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13953236 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 BD357C0218A for ; Tue, 28 Jan 2025 22:12:48 +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=zgA/tH8fOJAo5SkcG52zN2NzIf4+m2UNmjV5YfqCDw4=; b=D5qut0KknCRxAU/Qby1UacUo4S Dpf67KsCUPQs3CQFkHR0yKZHJx/6BPPE6/kqjFn1Ew95HQ70ghefAQC/fhsHrSWvFo34RhJEQIUTq lds0f9Hzv9mylHi01ZmdJpfMKDfJQLfV5wTR9AkjE1fC06p/eV6Y8sHVDAMQb4NEgENjGUT3VZZ/W 7Yj4E0Ezwz8IupT4CKAymlniDLcZiSHXv/cWAX7M7sN0WKc0CvgPJnR3RvWaSjTWUR8tU300X9k/g E6ax/uhrwm861LQxHDYzVZiA59W9vYeYM+0Im32FM4Y0Xa6CgivCUmvIDelmV6YjeykK04pjOveL3 FSit6XFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tctoz-00000005uGR-2YcY; Tue, 28 Jan 2025 22:12:37 +0000 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tctl4-00000005tXI-0EaJ for linux-arm-kernel@lists.infradead.org; Tue, 28 Jan 2025 22:08:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UfeU3gITMyOoKeO+wLMKaWX6k2/4LHuJsyWMfTMKZd/fzT/K6LRh9hmAj1fyQtFMoyB2uXY+nWQMBBKCz56wUhCAdHqfrG3/u+ZEqhPwE6ni/C8iHyTOHfvytssa6KhxeT0wE/i0wL/N6rlwyAkkBVioWdF4oWvYiLl5XdUlWWrisqOJ3fivzfh0NeF1yg//fB3hoZUfzxH7ldfTunY/OYU6GmaT66n7zvbpo8fw3Wkg9+hj9YvYxgQ/1v3TCzZNsGsCm8O/DTOw6ArPlQUHPlc3Bh8BeI2KPlapXnRjYkhbjxljAqupED2I+WFn+ThJG1qQhYWgZjkrvRqF79BYMw== 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=zgA/tH8fOJAo5SkcG52zN2NzIf4+m2UNmjV5YfqCDw4=; b=TYVB4ZM8nr5y8yb2VT07AzhDzmnw/bkBmL6CI3bH7NkfxgaGox8cUeViFdiyvwmYPDjTO7n3TcRACFzrU3ROo8buSZiMo3P2uuGZArZMfqtW7VJAeCbcsW3HPAA7smgJgPWfybEyoajGJaIxMM/BqzcHQav+CurlstZ4ZWkeSaxo/Z61f3hZ2VtEmHEtySkV2tyEllcXgz1AH2mSHIT/WFRz4B4zaG2o+NctKDRu8Wzvnwt3CwCoRp+xHuos8ze266ZhyFhFH0tWdQZz7CeTGY8H/TATzu2YccZe4MJnN7SxeZ/6vbZxoAHT181avBLfruy/6Vi8Z24+5b/I4laJCg== 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=zgA/tH8fOJAo5SkcG52zN2NzIf4+m2UNmjV5YfqCDw4=; b=S6I8xtfZY6xYAM6puDegM6ytwaF4KxS4IhHtTAZgeidD3dwFF+koPQHj2kDzMu6cvTp7qSXqxLb6Hc1HPaOxGipJkbUSqgknuZ/78iG0ZKK7H7pe5WiSO80wmgBMtomvMWvujcQMV+Ymz/MrfJsOj9g8LHSzQdBNKvouSEwPhvkNHrdEVlJHHF5s3S7S11d9ECaxx2zfCSnYVgeV58ZcXmvp0sQHMQxSCpdGvpO4ITaLSE+LDqpgOqFYGKav624HUHpFpOoOZ4Zt1bcuQNTohqt2dJBAVknv2Tt10wLe+CA4w1ukWL5uGCZmo334qleFyYJOGhNfFt7cHM+THCk9xQ== 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 AM9PR04MB8555.eurprd04.prod.outlook.com (2603:10a6:20b:436::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Tue, 28 Jan 2025 22:08:29 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%5]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 22:08:29 +0000 From: Frank Li Date: Tue, 28 Jan 2025 17:07:34 -0500 Subject: [PATCH v9 1/7] PCI: dwc: Use resource start as iomap() input in dw_pcie_pme_turn_off() Message-Id: <20250128-pci_fixup_addr-v9-1-3c4bb506f665@nxp.com> References: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> In-Reply-To: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Niklas Cassel , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1738102098; l=1066; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=s6o84+rwYoULnhQEXwAB8qc9+uDgyGOz45L78dOCBOM=; b=0juyvV0ugVTYVd4moa9DBOmNe6YnK84+XUZleSDZWXJ8lCvCy4mVNmcb1WHfg44XwHDUyOz1a TpkjvkpR/bIDk8UkKWCn3tcp7gcYvufZKWTzBWmbATDQWZ63Z7eEZPt X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0130.namprd03.prod.outlook.com (2603:10b6:a03:33c::15) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AM9PR04MB8555:EE_ X-MS-Office365-Filtering-Correlation-Id: b3159dfc-f08c-454a-8979-08dd3fe84bc4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?W1AbXiOIVXeaocwIA0SptFvZ685Zyli?= =?utf-8?q?ugHzGRDVOcCuddW2paQFMz2nUC1N4Qcj8O5puHaEmYhVRJRmOxXhfuz2mySV6tTLd?= =?utf-8?q?UT/ZkGCujoJcTn1iLZFsVc2uvmYSGd46WEuPWBzBatVMj9clT4XtuwjDhx/NOsqx3?= =?utf-8?q?VR6owKdH9ZnVTcJ5cyeB9w7SGvkuVptTBDT9mSzbzBpoIvAdk8KeW9HBJMjx2ntVQ?= =?utf-8?q?NP1EP+0b/+UTw9WlqSUU0sOKOCclOaytt0/R3whPRvwCrygbRXMzL3QixhJHhB8p+?= =?utf-8?q?UdCKQTcbaQYD2AkxUbLWMFiQgc+tIboOUKjoPEJOGAeYd9AtprZV8NkBrL0Gl1MOD?= =?utf-8?q?v/Fu6/elEAxOpCqYW8kpljYtEGXoxAbj39P91Nw03czFXV3lB9b4K7Ilzwz3iIGY6?= =?utf-8?q?Wka7kb7EQ0+ui3+n7mGhSjxh2guxQZklMe7r7zQIiadkyLhjDCeH/43j4RBAziPjW?= =?utf-8?q?YaW2G/7N55zePMfjrHVHGES1PDAliekv1yas4bhB0+gNg6P/+QATcMQ0CAyjkoHTD?= =?utf-8?q?RkJi0OjlUjuNUo1NHSBSi9gUufixS2zJcT3guaMt41Gwo3ndxJGGVKhJozu0bpgDF?= =?utf-8?q?p3n7IAN/l4ed7tp0kaIP1ARfb3ZbIZeTdFjV3nVk+DV7PL+5WjCKdA8beYzNdvXSw?= =?utf-8?q?k32DsGmxbh4njaRevSe9lbGk6bPkjLaKMShrXDvUwJcvtz+vGJjvtV3CvmNgvwVwj?= =?utf-8?q?Fvr8AtIZO/C6NoiMw53WJvbE1IGP9CWliyhuWocRZnPUU9dCCjFSl9mLBpdKzQMW1?= =?utf-8?q?AMje/KD8Ip0y+uEK+f98n1W7gXGsKclpiT7mJnLcEzjT+ryfEhAl6LCpl6Bk6FTjp?= =?utf-8?q?8fqiPG5Hlj+XcJ6r+k5EmEiCAK+YpKnaSBHfsMC8ATkHutOKVa8SiqqFCsidIhIvQ?= =?utf-8?q?3u98N4ZuktbfVjDccYG466RT1Kr9tpnQH/wL4TrEnArYWwuYjKO+Y1Vd3hPFnAqyp?= =?utf-8?q?HgnDPmzGgPdARoEuFKFIOv20q1eb4bH1wIxyFpBsvjkzt5hKF/YwAHVXb0gzNYTUq?= =?utf-8?q?GsCEGUMbvB6DNrfaelGPgW1n0vU9MaL7iQO+cL7mwAb08KvY+EY/+910qEO3Nfx5W?= =?utf-8?q?gSraes4aKnz4Uq+8Qe0Vi0G1ytye8k1oH/GMnuFpc+/llw+Enb7xkvgULyPfLD6rl?= =?utf-8?q?aqQeyNW2dG64CdyduzjrnjUrd2nE138Yn2yYfP2sZzia0novCoiRTaNelFOWdvFVi?= =?utf-8?q?1fVXYEDOIme/JeNNRF8VY7Cq03RR1HS7hHXZOdAQ7kYmrZCnouWoC5o2I/lsTbFCO?= =?utf-8?q?w0FjqkJ8tvHJHwfnra/2CFbSeTfkmFoY1W+fHs8OzmElbIJTqj9dS7HjZLAkTV7E2?= =?utf-8?q?1To1XAWuM8hPz8gR9jcsddBZScBcZm91fCG5OGwQMz6ogkreMh0P+8lS4uZoSPNdj?= =?utf-8?q?1WvNpEkF9g2fQm9/XPo+zQKE5wDCE6rFA=3D=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)(1800799024)(366016)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?jtzZ/urRmxBrqCpRg/pJOQv84lBJ?= =?utf-8?q?bIWl5Tszdb8lRzVIJ8KCoq6xPbkEr52LeIejxs3R6rDOx6jhx4IJhvsFJgcAtdRbA?= =?utf-8?q?giUTNVafwndgTnRN4tqHkyNuddX0rlf29c4JV9cWkUQVAoBz0HPNYtjHXZYpIxA7O?= =?utf-8?q?mrH2Dt55nfjQUUbhvLod5CA6MtMbTHt2B//hK0auXd9YjWKrLHUU41TjLAGCEmnhk?= =?utf-8?q?Q3x/pJYFvEWZe2SyO/7dfXG991oH7Syd+Psk42CJJloJwZPfVlSGq+B3vtVK7GbZm?= =?utf-8?q?TqQeDX+w2D+ueRN6jDvw01PDRmJW7OPrJAT03b2uTdz4OV+TTuUlgJBzdN8NXfzOJ?= =?utf-8?q?OpI0p4wpdV1XqD/vQEMyD9LXzkyDTAXn8j7K12dPud5BtbeM5UgwC6fmd9I+kNQjn?= =?utf-8?q?ZRcldZgzk0JyHUlzWCNlnh57GF9wpH3wUn3/WxearoffdPhriGuVYRlkMkhTSS57g?= =?utf-8?q?l3Ps2paD2n1kvHI2Px+4cMEELDbMLsvtceL9d6h+4OwyIRn5C7OdUE5D/7558H+LW?= =?utf-8?q?UhNfxFrncnqyzts8/tnSb4xy+DivwKNLcQ+x7Iynio8tpMp0QKIzftbhLmR5dfLB4?= =?utf-8?q?+ZeXHhrjro3KYXQBIpf6cgPpbSEQtx5EWJ3p85yJnNftW77JVs+woKWImf9pLdjcq?= =?utf-8?q?GaAnv6e4tlG9Hu0lPYYxWrY3G70FCLboE2JuF9p7QfDw8MHsH3r4UzOpzh/L9cBHg?= =?utf-8?q?ruVFVGJ5/n2Tn16+FqPE8TxmMjybgpOHwIYnDKskM3Pt561GX3l0eq+KJllH4lvNZ?= =?utf-8?q?1D3oK+r3upCT63m0cHKb02E9VPnHvpS1MNacp6cUrMBy8AF04d/XaWa+57tLDAA8Q?= =?utf-8?q?X6kjePadgtAfUWm2r+Ie7/Z+PClZGM6NcK4G04f2jvFpXNoDWSIF7vJe6BiqlIYXm?= =?utf-8?q?ZPYg57RV29g7zP5+4WQLgW1hEXfhlT6OKuTcH9pyrXxobTLZNLO6iQsaRkopCy9C0?= =?utf-8?q?0RclXG5kfd88AQ883urvrhRkIukhu7SQQT0MDQR0r7ocBxHzajB/v1C8fwzho5vYG?= =?utf-8?q?yxy+Fj1+jAoQG6XlgxLD1LLawSsPfdF7GPKyCeCeu9TusRghbJBSnW0hHoTf/vA9h?= =?utf-8?q?0Tj0SGZW8pokOyI++wBlmOGgeoi9/EL9MKQ1eDNT+7+ptvSQWw7dln3PcF/xSvnOs?= =?utf-8?q?Vi6RMpbABjFeSkzUc04t0afy1Wxhv1BI93i8MIfbfhjXM+N6nMCPEhEqN5FYv1/3a?= =?utf-8?q?7QoO5aWmaB8HZcyTUnIy+fbOisem5mlE3A+F17Dty79oZN851a0bTjIi0HfalHw+q?= =?utf-8?q?s2SDsjimoGmPSytPdRLOn2qtJkBiJGCC66tNVPdaSJ8gT7AXBgVz+lsE6ciVx1CPS?= =?utf-8?q?BkNhi7is2phUrA5oFSMtknXdPZeMwtV0ThBSN7HKkdGmz2Ecgmv3DZqzRj9JkEqmV?= =?utf-8?q?sEmpRMeLzkUSSrADyFv1WW1mZIm/XfV1rgHTV2BzMzM5Z7MIvOWxypeckiyWBCDMT?= =?utf-8?q?Y/cY7EHL9+/fHd26Btpl8yMs2LYrD7JAw4ImGXrMTwrx44E+PuuXojG2hYQkntADj?= =?utf-8?q?GLuaxSD75t3f?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3159dfc-f08c-454a-8979-08dd3fe84bc4 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2025 22:08:29.3664 (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: sY6LnzTuURr56fCa2eDkcKim4hGtxgBWOmFvhsuAsNTQwQ2F8tHaj3/kv1FpV6pN3FdoUKmesL5oMfpcX/cNkw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8555 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250128_140834_098304_2BFCA2EA X-CRM114-Status: GOOD ( 13.11 ) 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 Pass resource start as the input argument to iomap() instead of atu.cpu_address in dw_pcie_pme_turn_off(). While atu.cpu_address happens to be the same here, it actually represents the parent bus address before ATU, which may not always align with the CPU address. Using resource start ensures correctness and clarity. Signed-off-by: Frank Li --- change from v9 to v10 - new patch --- drivers/pci/controller/dwc/pcie-designware-host.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index ffaded8f2df7b..ae3fd2a5dbf85 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -908,7 +908,7 @@ static int dw_pcie_pme_turn_off(struct dw_pcie *pci) if (ret) return ret; - mem = ioremap(atu.cpu_addr, pci->region_align); + mem = ioremap(pci->pp.msg_res->start, pci->region_align); if (!mem) return -ENOMEM; From patchwork Tue Jan 28 22:07:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13953237 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 AD098C0218A for ; Tue, 28 Jan 2025 22:14:11 +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=uTuZtBV4X19Rh9dpt07l8O2/CoaPLj4uomuMR/R4G/4=; b=hzx68V0zJVpMDd5z0aBJXKWsQJ CPj4fMqFsyg3VPtY3Oij/gO30ty37MszMRi5j+aoZjZ067lvtMwU//1OynIgH9Dt2YRizFUAZlxod 7sC7g5g/ODwGzTB9XzeSKO85VB25MgswMzO2vRoTgYKAWYJ3NqtojjLVTIi/FmqxRMd8JtU0ZrL8u DqjBIEBckN+aNPW9lm+zQaG55Qw6eCourJyY59Av9yuJs45A9s5nAhmfC0k926gGxB0vRXbQrIWyI 1EI0Ydn+sW0pNzVK9sPAW7nr6FZERZLgFMbRYUDhxHiNwgJsm0CpRN1KKKDW43SZC/PR6du9usy2o rkh6w++A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tctqI-00000005uNA-0y7M; Tue, 28 Jan 2025 22:13:58 +0000 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tctl5-00000005tXI-1wne for linux-arm-kernel@lists.infradead.org; Tue, 28 Jan 2025 22:08:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sHV9msM7L6FvCXn9BJsQy7UcQUV/0AXJd17Yv6qkad/vnRIzIXgT2H9UoOjt8vp+Nkw8hlSSBEM+bIAzH1f0uKzLPyUeir5+KZhnWkWLO9tvoxxsoJ5M5IOcRhnvykK8mlI6Ojo3oa+6opOpTXyeiJsZ6EgdBQHq6YqMWNZOgOrvEbxEYjzSnNMbO8JD5SoRmFxN9ZlhDLJNOwA854ksljo9YT9OzNrM1VbLh4YArKpFoHqZi7LYnX/0/xvS7Nyethsx61E8cDLQ7XQu5o/M9deK8GzcO3J+d9PSy5QQcH0LK0R1tUtEEGXS0u4T8nQMagGxD/r0LXJFeaHCXCPg1A== 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=uTuZtBV4X19Rh9dpt07l8O2/CoaPLj4uomuMR/R4G/4=; b=MOzkFde6H0ULFHzSl3EWP6w4AISNX/k4w4sjF/WzqeGHwStxEcp30zFjOERcyjmA1uw4VYebgmmMmuU0qHUhTzwF1lMGWKipX+pcN3JrPXBXzuUu72hR/TgIooxc69lkDiJ/zVf48ocN9u/xymuuxa81J5YKdYEjFJbLJKQXlQuND04aBF8X6asTbyBdb4anDADa1H6kOR7RQrXa42mWRZs2E8+7tnmBiSJwXrp1S1+jCj4lQaIYl1ZJOm8H8/1yC6m9E0HgWQeTlsCt4znwVtxWt2DJ2Oj+baDxLstz7cGdaiVhKBIj3PbLCd8aFS54+P7wTM28QK376kRoQ0cUrQ== 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=uTuZtBV4X19Rh9dpt07l8O2/CoaPLj4uomuMR/R4G/4=; b=ZrBEblGTmECPjTAu5WhVdrOtq/8g3oUG+PT1yDXTOywYoJi5kRKiY+LBG8L9vYVgUJGTOHICqVD84vAsgG9/CKcRTmVaCqbGsdQS7S+Z9URUnrVtJKUJhuNIWUx45Dtb2UuXi3OjpaUTxajcygYP4w/iXSCARL6WRmoERS6JDMbtgYGNd/ozMg37nRwCOBA5MuNpeXTtQ2AODWSet4fp2Qgy1ziixGQl0oBBZ0mebXXzQdMXDkQi37xv83lrBXDtknyQLRN1IBCDBUc1T22a0Wv1mtopd0cbIHjuZTE9QrMebdLcGEdGArJD/6YXSegiLjf9MunACBC9Zjf0aaX5ig== 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 AM9PR04MB8555.eurprd04.prod.outlook.com (2603:10a6:20b:436::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Tue, 28 Jan 2025 22:08:34 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%5]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 22:08:34 +0000 From: Frank Li Date: Tue, 28 Jan 2025 17:07:35 -0500 Subject: [PATCH v9 2/7] PCI: dwc: Rename cpu_addr to parent_bus_addr for ATU configuration Message-Id: <20250128-pci_fixup_addr-v9-2-3c4bb506f665@nxp.com> References: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> In-Reply-To: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Niklas Cassel , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1738102099; l=8860; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=zdPiv6W4EwoEDikp6bIO3+h//fUGK+Gw+OhRncm83oA=; b=9SJ5Ha9pZUHxUxBTELsyjYZOVqsLA985hLWG/ZygSP1mnYEOJPGkDQxvP+8FEViYtsib6oScf vCREh5pHoX7BqioHcroCzbRxgQsBpCWMeE+pELBxAbqnGS11+lBeT2d X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0130.namprd03.prod.outlook.com (2603:10b6:a03:33c::15) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AM9PR04MB8555:EE_ X-MS-Office365-Filtering-Correlation-Id: eed99987-69f1-4b5b-abe5-08dd3fe84ea3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?8qUXhKxDo26POEyw0sP9etFB3hQSdJd?= =?utf-8?q?EyNxFkKwHOLHLWgpQJpxOlFeJ49gZm4W7Rsye9Z5Q+kHv1+iM/3DEzGvaS0FNA0TV?= =?utf-8?q?1Tj0FWzWWiFrr9fRJu1k3HE4OOHcCCNxvMo4c8V1lzip4+jR+mkCLLUnrJJseOU3N?= =?utf-8?q?FOZxTF3D2mjGwO95YFshyKgKbZHYgnwcoufTXSdaqu8PETuJRQctnNrQZHZpr6FDu?= =?utf-8?q?GPjmI9jgwhqsxRvJrq2NKzvbq32eVmqryin0GLwT8OkEQtQmdYmq0CA7Nd7g/64Fv?= =?utf-8?q?1rAPz1PMZz1x5o5HCynj7VEd8f8ypin1cI00y0Q0X4osIBn1qfk77ZQQLM9IYepsX?= =?utf-8?q?5weMoQ2/yKHSLjJJ9x0u9sUqHbQJYFNvSCN7XVjldor2F3zCnb6DdUrgwzCpjOMBo?= =?utf-8?q?hpGWbsBq6QqZMo5TUadks0ecnr07n2HKDXvEGmQ1yYkZ6EuzLWf5ar+QmcR8La40y?= =?utf-8?q?gkY+YHZ3o0W/DfnaHU/ldPPeEkI4pbRAZXalOLBQG70kX42isFao/r3GZbwjzeIrB?= =?utf-8?q?pvAFs9pIdC0941cZzfucrr8BwqhUAD2Z7r+HzQIu+pZKtkq9t6TSNMvrbsSz9MqD5?= =?utf-8?q?Bd62tHuNQdudMW2kgYBgtPr/iuygelHiBk9dsEsFH5lLgiWew+4yj7C7BMdhwWdHk?= =?utf-8?q?gFLhsO76Jwx2J6a52fhmyY/RxqbpX/h+dEV5vftpMV2gL72ILCgs90hnWj2fqkOIL?= =?utf-8?q?sfyTQRK2/SplRA4Tn5QBKL3b/V7qm/JGJDg37N64EGxfRLEUo4pgufgXdSf3FNA3y?= =?utf-8?q?eHGfkv9M9JQ+dYftzERQo1b26Y6dVPpz7X0OKyFhLmHp24SD61b3N4tlj86jUWFMP?= =?utf-8?q?m2wkTUWI9VMJdxMCY+aVxLYlERkBSQFui8biPX1CicYbwJbslh/B3wH/ZhiRqfv09?= =?utf-8?q?ZjtLj+CZYlKWXix2BT2aUzBfQOYXBzsI46Vrki7UBMNd8fQ8hIXlcY20bt/Q5KShy?= =?utf-8?q?Br5IJham7p9XDXPq9VD4djWVyl/3Pl/HzVoWQS42y+KrW/K0DP/0TpM+gzAsW/ehh?= =?utf-8?q?rgxHN+SjS2XZn6MFxud4yxMmKOtxVQKIlVGW561mVb6S05p7t1D2rlo20jJycK7bl?= =?utf-8?q?9GUZ5cIQvOY4SEt54YHrFwMVInJt4FrOAyBgvMCbki3eweszOFMowRhDM8jVYJyGL?= =?utf-8?q?ztQ7t9cLXMHAdCkCqFcqpqaztMRqwUQok1+dI62igeb1gvHQaAXXiRe3xmyDjSp8F?= =?utf-8?q?cBsQjVkjg3bc+VJKnLptDSQ/vQpJk+J/7ukwVhvNpBWQH2t5j//7Eld00O5uK9sO4?= =?utf-8?q?DIibhlNeZBzsUe0wEZcFD2RXLrei84k1vVG3Z2QXoH1yyuuKLlAPQDuNXKOTTPBub?= =?utf-8?q?aORlJs2mKzAxpLYJzFApXxbKUXR9Tda1JLdxnwu0lz5j3vVvLuiqEjdtqI/f65dj8?= =?utf-8?q?47PpZeFhf0psfkKSceJbonmDRgWc2kEzw=3D=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)(1800799024)(366016)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?AyPc7l/QZxvpFJGrzOG6IfmkYnAB?= =?utf-8?q?8DtQ4Nl6Wlq1x3B0AjcC8UesDkwAfYQJF/t3uAQqVfAs6SBs7hmbJA0Hb9iISYl30?= =?utf-8?q?kuxaIE2P5Suc/SzSaY9ZghOJLhCSVOLcyZO6ifjEJZFRS71YAV9byHogE+Y0XStSE?= =?utf-8?q?28dHz+p6RQsORjG/S/ec0WG4id/IunhMOGGJjO8CSUtkgz2suDOufS8rck5aAjhhV?= =?utf-8?q?8w6bambQCbJtnBq8lKyhypkJWTgK7YLJfr21J+8Kln3pNLRfsGqL/clm6MNWTThd6?= =?utf-8?q?mu/RO0remBUsffUshDjCtw7u1CiK91I/1Q81holth0heBnvUFn9KXdvR3iKuggdP/?= =?utf-8?q?IY2GeDzz4erWaa7AUsTbYQUPBD9/z8gdEj/bgoLwdJu7y5d87Vy+K4kX5dz6WRAjK?= =?utf-8?q?w4qIfK6ebMEE/fhg4W4RV2NyZCdHvlt2yJZ3CtgoK24ZDm6ELUf1ljesytJaaN5ti?= =?utf-8?q?NyTcgoCyf6Zl3FKMpuzRXGtgFX3W5fpDvbHlP83ElrfSe6pqK2p/dlvOMbq1cNCZu?= =?utf-8?q?J71a15PdoOaby59VvQnximmERWRW+Png0Ubn+AtLfutA7zQge4lYXOL3TT7F9iD0n?= =?utf-8?q?riFD7kjIRue9UuGd7l+UpwGcPiMuTzNsXbVD/V1xzeL4KMpoZ1xneYrtEE3GIgU+b?= =?utf-8?q?fKf7i9oUvuLdp54K1U/fzU1Y06B3nFN1oaL7k1coLuSM+1tkLHLjlK6LC5PIosdZx?= =?utf-8?q?JS6Yes+NwUi2NUP+SM1xzBAev3/OTWzKOqoN57a4usPYDTVzQnzoi50qHV2NTokAh?= =?utf-8?q?w4zNTTNZ7j/oFzdO4xwAKCFwzd7VtFSXro5vzPMoRXmTuyj3Od/CEeIOKanuJif0W?= =?utf-8?q?H4nZzk/KbRHF3TUP/2rfEiDkJaSzujSDwZQcc8mxfw+mcdr9uOlztqSUv7qEiqnhr?= =?utf-8?q?Og8rnIvOIlqXAFhYfRLrpi5iokkr0ae96VY3HZu8kNVUkMCaF9Q76hOEP7IoFItMu?= =?utf-8?q?0P/rBRV+RwQWSBJde8NsnAgYQHo9+1rsZ5LPpM16yn1JixzfbumWo831Vp+/PGf3e?= =?utf-8?q?I+8Ux7waa9s00dX8D9u9SAbmROdd6oHND/a3Pw7tDMt+zF3hJmE4NNno7qNrmdBBf?= =?utf-8?q?ra5br5xQypMck7X5QCYYUEv8rQHAS8+OXYjFhbLIm5zg7ZPq599EL8cV3gHp9oEeo?= =?utf-8?q?Qfo0GAEwwL6UknepHZ3AzYht3GUX5jXFJpc4WftZeEbLWXvsHbsZhcNxCVoCXHkmS?= =?utf-8?q?N1QqJ/CQZ39z5HWzdzEMc+/ceiw4mNSNwGn68MyQ3rvmiobYXZu3u/74+vTmgIJZ9?= =?utf-8?q?eRNLsPldt+xEuECaqRozkH9p8YL9G+ouWL6bh8gJk4f700fPXBBz4ZJba2aBYdyVf?= =?utf-8?q?B7/HYx2Qu1+z+bCU/ysYYPQZWJnMPhBeE/bHWb32l1YQ2SnUfoxJmbwuJjywugNmo?= =?utf-8?q?XkbTmZe9DssFajtFlQtVFDvqRTX1+xOqHNBt0AaOSAKV0wYtyGhoyjoAeY1jFIAcy?= =?utf-8?q?EDurl1Mr/5hgOJZypsbQGZ5Dy3QbvEC20QTVr5YV6f7CCc8F6uhOoabyC1rqNcW6u?= =?utf-8?q?cFiPIWZIgKV3?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: eed99987-69f1-4b5b-abe5-08dd3fe84ea3 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2025 22:08:34.1834 (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: 2qAa9UtudV5vmuQbRqwHinlA3hTV8v9XP94aQibl3BxKxzwas/XOEzvdsDA9fsCcn0vhD5TglHrbTWl+qPChrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8555 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250128_140835_513977_6B5FCE6C X-CRM114-Status: GOOD ( 15.39 ) 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 Rename `cpu_addr` to `parent_bus_addr` in the DesignWare ATU configuration. The ATU translates parent bus addresses to PCI addresses, which are often the same as CPU addresses but can differ in systems where the bus fabric translates addresses before passing them to the PCIe controller. This renaming clarifies the purpose and avoids confusion. Signed-off-by: Frank Li --- change from v9 to v10 - new patch --- drivers/pci/controller/dwc/pcie-designware-ep.c | 8 +++--- drivers/pci/controller/dwc/pcie-designware-host.c | 12 ++++---- drivers/pci/controller/dwc/pcie-designware.c | 34 +++++++++++------------ drivers/pci/controller/dwc/pcie-designware.h | 2 +- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index 8e07d432e74f2..80ac2f9e88eb5 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -128,7 +128,7 @@ static int dw_pcie_ep_write_header(struct pci_epc *epc, u8 func_no, u8 vfunc_no, } static int dw_pcie_ep_inbound_atu(struct dw_pcie_ep *ep, u8 func_no, int type, - dma_addr_t cpu_addr, enum pci_barno bar, + dma_addr_t parent_bus_addr, enum pci_barno bar, size_t size) { int ret; @@ -146,7 +146,7 @@ static int dw_pcie_ep_inbound_atu(struct dw_pcie_ep *ep, u8 func_no, int type, } ret = dw_pcie_prog_ep_inbound_atu(pci, func_no, free_win, type, - cpu_addr, bar, size); + parent_bus_addr, bar, size); if (ret < 0) { dev_err(pci->dev, "Failed to program IB window\n"); return ret; @@ -181,7 +181,7 @@ static int dw_pcie_ep_outbound_atu(struct dw_pcie_ep *ep, return ret; set_bit(free_win, ep->ob_window_map); - ep->outbound_addr[free_win] = atu->cpu_addr; + ep->outbound_addr[free_win] = atu->parent_bus_addr; return 0; } @@ -333,7 +333,7 @@ static int dw_pcie_ep_map_addr(struct pci_epc *epc, u8 func_no, u8 vfunc_no, atu.func_no = func_no; atu.type = PCIE_ATU_TYPE_MEM; - atu.cpu_addr = addr; + atu.parent_bus_addr = addr; atu.pci_addr = pci_addr; atu.size = size; ret = dw_pcie_ep_outbound_atu(ep, &atu); diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index ae3fd2a5dbf85..1206b26bff3f2 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -616,7 +616,7 @@ static void __iomem *dw_pcie_other_conf_map_bus(struct pci_bus *bus, type = PCIE_ATU_TYPE_CFG1; atu.type = type; - atu.cpu_addr = pp->cfg0_base; + atu.parent_bus_addr = pp->cfg0_base; atu.pci_addr = busdev; atu.size = pp->cfg0_size; @@ -641,7 +641,7 @@ static int dw_pcie_rd_other_conf(struct pci_bus *bus, unsigned int devfn, if (pp->cfg0_io_shared) { atu.type = PCIE_ATU_TYPE_IO; - atu.cpu_addr = pp->io_base; + atu.parent_bus_addr = pp->io_base; atu.pci_addr = pp->io_bus_addr; atu.size = pp->io_size; @@ -667,7 +667,7 @@ static int dw_pcie_wr_other_conf(struct pci_bus *bus, unsigned int devfn, if (pp->cfg0_io_shared) { atu.type = PCIE_ATU_TYPE_IO; - atu.cpu_addr = pp->io_base; + atu.parent_bus_addr = pp->io_base; atu.pci_addr = pp->io_bus_addr; atu.size = pp->io_size; @@ -736,7 +736,7 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) atu.index = i; atu.type = PCIE_ATU_TYPE_MEM; - atu.cpu_addr = entry->res->start; + atu.parent_bus_addr = entry->res->start; atu.pci_addr = entry->res->start - entry->offset; /* Adjust iATU size if MSG TLP region was allocated before */ @@ -758,7 +758,7 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) if (pci->num_ob_windows > ++i) { atu.index = i; atu.type = PCIE_ATU_TYPE_IO; - atu.cpu_addr = pp->io_base; + atu.parent_bus_addr = pp->io_base; atu.pci_addr = pp->io_bus_addr; atu.size = pp->io_size; @@ -902,7 +902,7 @@ static int dw_pcie_pme_turn_off(struct dw_pcie *pci) atu.size = resource_size(pci->pp.msg_res); atu.index = pci->pp.msg_atu_index; - atu.cpu_addr = pci->pp.msg_res->start; + atu.parent_bus_addr = pci->pp.msg_res->start; ret = dw_pcie_prog_outbound_atu(pci, &atu); if (ret) diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index 145e7f579072c..9d0a5f75effcc 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -470,25 +470,25 @@ static inline u32 dw_pcie_enable_ecrc(u32 val) int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, const struct dw_pcie_ob_atu_cfg *atu) { - u64 cpu_addr = atu->cpu_addr; + u64 parent_bus_addr = atu->parent_bus_addr; u32 retries, val; u64 limit_addr; if (pci->ops && pci->ops->cpu_addr_fixup) - cpu_addr = pci->ops->cpu_addr_fixup(pci, cpu_addr); + parent_bus_addr = pci->ops->cpu_addr_fixup(pci, parent_bus_addr); - limit_addr = cpu_addr + atu->size - 1; + limit_addr = parent_bus_addr + atu->size - 1; - if ((limit_addr & ~pci->region_limit) != (cpu_addr & ~pci->region_limit) || - !IS_ALIGNED(cpu_addr, pci->region_align) || + if ((limit_addr & ~pci->region_limit) != (parent_bus_addr & ~pci->region_limit) || + !IS_ALIGNED(parent_bus_addr, pci->region_align) || !IS_ALIGNED(atu->pci_addr, pci->region_align) || !atu->size) { return -EINVAL; } dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_LOWER_BASE, - lower_32_bits(cpu_addr)); + lower_32_bits(parent_bus_addr)); dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_UPPER_BASE, - upper_32_bits(cpu_addr)); + upper_32_bits(parent_bus_addr)); dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_LIMIT, lower_32_bits(limit_addr)); @@ -502,7 +502,7 @@ int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, upper_32_bits(atu->pci_addr)); val = atu->type | atu->routing | PCIE_ATU_FUNC_NUM(atu->func_no); - if (upper_32_bits(limit_addr) > upper_32_bits(cpu_addr) && + if (upper_32_bits(limit_addr) > upper_32_bits(parent_bus_addr) && dw_pcie_ver_is_ge(pci, 460A)) val |= PCIE_ATU_INCREASE_REGION_SIZE; if (dw_pcie_ver_is(pci, 490A)) @@ -545,13 +545,13 @@ static inline void dw_pcie_writel_atu_ib(struct dw_pcie *pci, u32 index, u32 reg } int dw_pcie_prog_inbound_atu(struct dw_pcie *pci, int index, int type, - u64 cpu_addr, u64 pci_addr, u64 size) + u64 parent_bus_addr, u64 pci_addr, u64 size) { u64 limit_addr = pci_addr + size - 1; u32 retries, val; if ((limit_addr & ~pci->region_limit) != (pci_addr & ~pci->region_limit) || - !IS_ALIGNED(cpu_addr, pci->region_align) || + !IS_ALIGNED(parent_bus_addr, pci->region_align) || !IS_ALIGNED(pci_addr, pci->region_align) || !size) { return -EINVAL; } @@ -568,9 +568,9 @@ int dw_pcie_prog_inbound_atu(struct dw_pcie *pci, int index, int type, upper_32_bits(limit_addr)); dw_pcie_writel_atu_ib(pci, index, PCIE_ATU_LOWER_TARGET, - lower_32_bits(cpu_addr)); + lower_32_bits(parent_bus_addr)); dw_pcie_writel_atu_ib(pci, index, PCIE_ATU_UPPER_TARGET, - upper_32_bits(cpu_addr)); + upper_32_bits(parent_bus_addr)); val = type; if (upper_32_bits(limit_addr) > upper_32_bits(pci_addr) && @@ -597,18 +597,18 @@ int dw_pcie_prog_inbound_atu(struct dw_pcie *pci, int index, int type, } int dw_pcie_prog_ep_inbound_atu(struct dw_pcie *pci, u8 func_no, int index, - int type, u64 cpu_addr, u8 bar, size_t size) + int type, u64 parent_bus_addr, u8 bar, size_t size) { u32 retries, val; - if (!IS_ALIGNED(cpu_addr, pci->region_align) || - !IS_ALIGNED(cpu_addr, size)) + if (!IS_ALIGNED(parent_bus_addr, pci->region_align) || + !IS_ALIGNED(parent_bus_addr, size)) return -EINVAL; dw_pcie_writel_atu_ib(pci, index, PCIE_ATU_LOWER_TARGET, - lower_32_bits(cpu_addr)); + lower_32_bits(parent_bus_addr)); dw_pcie_writel_atu_ib(pci, index, PCIE_ATU_UPPER_TARGET, - upper_32_bits(cpu_addr)); + upper_32_bits(parent_bus_addr)); dw_pcie_writel_atu_ib(pci, index, PCIE_ATU_REGION_CTRL1, type | PCIE_ATU_FUNC_NUM(func_no)); diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index 501d9ddfea163..ac23604c829f4 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -343,7 +343,7 @@ struct dw_pcie_ob_atu_cfg { u8 func_no; u8 code; u8 routing; - u64 cpu_addr; + u64 parent_bus_addr; u64 pci_addr; u64 size; }; From patchwork Tue Jan 28 22:07:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13953241 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 0D4C8C0218A for ; Tue, 28 Jan 2025 22:15:33 +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=5TzfpaF1gM/sUK/g+VlPeyqOC46cDtlQN6XZqFyFtYM=; b=mTPq1Gu6phqz5N84DfKlCFH+4g gQveoWVnLRA2NMBDaz9gKzpdjQjILu9cgyqrwGSWXKg3XE9yTaY7sDan7Mr3oBFwbQ/JgjPVcItEx Pf87qAlAaLbRKJCaM+2udWmICr7E8wtD7xLoUOuCR0qOd/u5worN3YT62xWCx1+e8JfUQ0kU06mWH fcuVMDPJNBjAbPEfB5nzS0VK8uyyW+HLz4lfi3OWw5xK9bfZpK/z/tSubtGKjMcEIyXa12Fj1D8Jg MKjuN7rmvAHzMGbDshVXcfSNDV0mXcJvB+mYTma7GF2N89ngw0HmL7B5k+WuY0UGUkfoObIjKFlk1 f+7dbVAw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tctrc-00000005uUM-09p6; Tue, 28 Jan 2025 22:15:20 +0000 Received: from mail-norwayeastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20f::7] helo=OSPPR02CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tctlE-00000005tbI-0UTe for linux-arm-kernel@lists.infradead.org; Tue, 28 Jan 2025 22:08:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NliEYE8On6GVsrvdhj0BnnmX6pXumHqk5ABYUDeTBvOgup+pMfcX1/vxyvMpNTY+TlDiYh/PTF4/9azrcEobCkO4GY5CxPTQDdcTuKULn66GCoA+/0G429J//Ig2w0GvJ5J4u/6H/3UhcI/+JVRtJ5XUfThchrJWRADoQZbpHzsP08Mt/uThVkPtxgWqg0khDAT8lTlbVKNXAq9CXhq4VX2CZwCWlJtI0FiMfiR0C4HcG6fP5KH6jbtyqe9nFHB4EvcfpLWwjAWzV632B2jSScbAWLSedPPdVElanTkXbwcDDza6577yB3PgEzSycSGhZMvHGse462v3Sd8rtPqmrg== 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=5TzfpaF1gM/sUK/g+VlPeyqOC46cDtlQN6XZqFyFtYM=; b=ePCmgbRcJOQgY9ynGWiwHwRLcDHSzh4GlQPdfMamr/LHa4aLdcZb+S9fqCINEC6eqi/ONikf9SNRCgXC8uBynWBL6yIWDyJ9zSoRTQixiRQ64Q/IWhC0kc7yLmKsBCCHlKAjR/ALSmYvbiAYFyPwoIPjCAbbYxSgUF5huW1eJt2fqy2uls1W9xgAyEQJZak8Mm/j9I2KjwWBcWSOdvo39HTKQ6BLbsQpdRB2KjAtb2im4rE2GDJyLoN0Xg8s0Zdb2wij1Pgxj9KmJklV+6ITe7CFYEbyIAqx+4w2s7we0Iwh/cWhuapDzGZUjBFIdLyNbv0IIOQpnpDmnvBrTmHNcg== 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=5TzfpaF1gM/sUK/g+VlPeyqOC46cDtlQN6XZqFyFtYM=; b=HcHUwzwwm8BicdEIXy6FNFdF3aNUDzUEcE3/nB1md/c9OftdYI5+1F1j/exO2dE+6usDR8PqrgsNnrUE7w82n2qtAH8KRB5uUbHtZU/QWT6nXRKxPDr7nNYFWSEe3gWeAQWfZNQ5beyLUJr/XEFlvX1kTTcByIolHZW/vpNlC1MxcqWaQpdkvRBWFbOU03xOsm0nLLWPkCnq1ddazYwfMC4JyF44ixg/iS631kLImk2YK0Zh/GwGQXAH6hyDMTrtcIthBJ5r18KEs0KkFJwOdgQ278xAyN6pXTTek067gDcU/7SC9GbY+W9hS192eeNCJUAJmZ8aWrdH2a/oqlLVYQ== 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 AM9PR04MB8555.eurprd04.prod.outlook.com (2603:10a6:20b:436::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Tue, 28 Jan 2025 22:08:38 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%5]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 22:08:38 +0000 From: Frank Li Date: Tue, 28 Jan 2025 17:07:36 -0500 Subject: [PATCH v9 3/7] PCI: Add parent_bus_offset to resource_entry Message-Id: <20250128-pci_fixup_addr-v9-3-3c4bb506f665@nxp.com> References: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> In-Reply-To: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Niklas Cassel , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1738102099; l=4272; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=xDd9TefF0lK4uHkh/J6G2tkWLfne0/VQDc21sWcAiYg=; b=x6rEXtYPQr2iyX+EHkUdtEriWbrtkBn6bQMQThrD1Y4xW/dZS2Jo1ZjuzUQBJYyUrZ/falMcS UUK34NX510PCcJDKfZD4xhQ8E6gehk6Hg2FtuetDDt8mvBLoKNvvlxx X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0130.namprd03.prod.outlook.com (2603:10b6:a03:33c::15) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AM9PR04MB8555:EE_ X-MS-Office365-Filtering-Correlation-Id: 3177cf8b-9858-425c-1b1a-08dd3fe8517a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?YhNXTgKo0RATYuNR7do1BM7CrJvFmNB?= =?utf-8?q?nBcI0xnsOlpnKPO2WzmdOx4aLoQyhnw9onGmB9IEt+LNkTzZ6e6iKcgV1IcdmMRk8?= =?utf-8?q?bUGheSnkRNmWd1bJkN9Y0guw5RlNWPCRppXncwFKw5kGaSYiuOcAM5E9DrntkGZTR?= =?utf-8?q?j1QudWYddKnbktLK6lfwDD6sXyQzeBZ04u+m4O5OWTnlMDzOWHm5fSASxDREtOoGK?= =?utf-8?q?7ckx316H5ao4t2hsboRCXhRAzl9bJX4wvy/JuTaB6+ChafhHPUuRnCwqEes+C+6n8?= =?utf-8?q?KLYwOVA19fe6aXmfUpiztVqGziVKjwetZgJK3w/5YgxJjR4uKyTv89NZpEEf4RzG4?= =?utf-8?q?LbYMPRad8UWcxsuk6TPijfqiK5hTzm/62ypfW4ErA4tUQEHrLe8Ui0dtyWtatK9Rh?= =?utf-8?q?oN5DmhcyciYqIWk2USrL1BST1HYmoCjp0ppJYbK3eBiQ8eUTMK1PHW9kzJAu7nFvt?= =?utf-8?q?pm0LhAcvkttNxN4C6fwOLucibrIoNuPVm8nJQzHMvfMZBMwd+zXyaa/AJMgn7HeO2?= =?utf-8?q?pfGne2WMOsB5hzjgCreQ3xNtaTOiZBFVF3kgRB8QKJtJP/7Ydewh7iQWhDZqkWivL?= =?utf-8?q?x29TUwyBcrueNv6gOMDuaca19X6cthGWRxE8hg+7T1m199Lntq+TItygMa+z+K1VB?= =?utf-8?q?QKZWFUwVTJTCba/N9ioi0IvE2eDt73KZa1d5gYgdBTqAfbqmYgoeiJvF0rSueIef/?= =?utf-8?q?8MXGQg0WQJ8k571X0Kgo/bxns/Vei4HPEK0O3u0BIby59Mzm2/RYgznb+llRW1pxT?= =?utf-8?q?2q6jMRAEwU+9wX0iq1uqixK45E0aDHlY6icTgZvEqSpIRuuL7VBv7AjMSNlQVkRqY?= =?utf-8?q?Y6ddykWA1cFlvdIK0GOAaP9RHepsMkTP5NKbua6JChT2tkYCeQb1IP6h9AGEhpB0O?= =?utf-8?q?pi/XxnoYPdaSOXowZBQX2xidXDU5qB4bQEAi2QLLr/K7dL7Aj/H4M8HBNFBe4/pzr?= =?utf-8?q?GJCR6A4+ovbUREw0lbNUAx0wQv8J4rZL9061s6inL7/GbGpoyeDhLx6Ma9I2bXzVw?= =?utf-8?q?0HHfBBp9dtYNVTM1uXOdIAF5Gh/u87WIHPhThU+Rgl91jCnNx5fnccEwjPtHeZVI1?= =?utf-8?q?tHkApJmDGCR70Durt8hyGZ4dL3AFVxhehqpoQeIS+NUnabqfx6e24a8Aq8m1en5Gv?= =?utf-8?q?+JO/BR2OMWhFE2un6bZ2rEAxlzB7//YjKrninzxlc2laAZTnAS75wUVCDpR5aUofG?= =?utf-8?q?qQDW3Z0vJeI6dZ1Rwqqm/dJ0hwMXcUFrBhaIy1ag6cD5dog4TTRgqFbUvcvcossI4?= =?utf-8?q?W6N7qAmppW9KBhbSdB3yfTI+gbr8A1vvpDrxbSyi0d2e8EIJlhAB/4TujCH3hBw27?= =?utf-8?q?50NveQ/3pl4D3EPHQw2PJq72pY+qQnh25YPRmSs3MEIyaJqb6N6inYUgVvQmNSyOc?= =?utf-8?q?LFHa7mk9DwFFntzMmyJGJhgr6tahCILuA=3D=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)(1800799024)(366016)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?klMVNo8Q57WMThr68KPPoQNN+JN1?= =?utf-8?q?JzxYbKv4BHnkipMx+Y8T2n7TYCjjXoYl24VX8xn74nbAaQ142PAx1OQPoA6AdDqzc?= =?utf-8?q?DBixHt1o4efm1wf+6UfN4uDzf/yogKuq0aGwyqjo7EVeYmHgL9Hez7ayRkt5DlgvY?= =?utf-8?q?yXWx1O23YgAwi3sSdtDUz9bcMS0O4roeXw/gtHQwtmEdAjkTz9oyxzO3DQzqXY2vD?= =?utf-8?q?H9fDesyGdkn57XGTYlXYULzph1JTTwP67S27VNv+hpPss2NBHNxXp7rNLTea4f9U+?= =?utf-8?q?iXZQ0zdcPXMWnaImsk0l15DEVvMU1s/ihlCSfZX9bnKrUpiFvtqJti4ACY8sRwbnz?= =?utf-8?q?1YNYs0mtZyX9Dfi4EGD0H9N1RC2T4u6DbzoCMr+VKzfYLtpvUt/hOyFXWlSHt0A5s?= =?utf-8?q?dreo/zXw5oIpg+khiFR2GdKRvrnLQOzwhhlsd/D9PDdXGcA7yKgL+taHmjv48Rs/t?= =?utf-8?q?LrAGaHCnVmJM+8g/ux7dC5iI6vVFSUj4ZfpTXHn5mBvij7KbwJeYUWnNCb41UnwHV?= =?utf-8?q?8mhPNu+FKhaOuL8dQdn0hsZoIJsv7ROo+YKcyZ5NxTjAAhOaQibQk3LT7At6yMVJI?= =?utf-8?q?GfGUZjJSZDeCOwhpqxjZQpVrQkxCkPbuaLX+qeQ/v8/LtQBSnuVZ1JovBpywvb4Kp?= =?utf-8?q?5ZZtK0h9/dGLAGMyDRFhlJk4XrvwTsW9dZ2FTOHZWrXfW+l88taMo1pICFRJff74u?= =?utf-8?q?NpkQ/yakY4IFDlFXzCb1wLheUzzTZsdfQanunhS027W4hH3T9uSl2FKpSDT9aViJY?= =?utf-8?q?hnTN0cGziwYnNJRffhDxQ4ywneFfQ8NteO4bVN+SgOiTRV/8Oh3T1PyA4QU3lPo7t?= =?utf-8?q?ZATqgb4drOqMmfwuVTgp3gpC/PRs13oovcbJIQxfJBOWlqSmepsyaRY5NoJO469TG?= =?utf-8?q?8ntupChhOOWfDGTzk6F97MQ6/6ny9qG8QxjgTtERuYDkWOjv4GkQpDGkPDCh7clkH?= =?utf-8?q?FHGdcmaXpzBi/CpZDWBb0WbkVp9dVWt12r+aZD0D844DnLTueVNBQF+vzzzuahusZ?= =?utf-8?q?gzDcuFkgNS77toOMNxksbOnfbtnWMpyTMzbEQT+MX8SLxsOIx7YLbBXrswOv4dhcx?= =?utf-8?q?P6bU5a9TQgoo0hNC3FQPyAOsRWqC72XBaLevSAGf4KLJgy2Cco6F+WxmoW5PUYttk?= =?utf-8?q?HMj834XavMKsyP1YOiW7j/FibfWn6qv1r8tjDcf/kwY841IomELEaSn1Y0RJd6IUK?= =?utf-8?q?QXW0dl/noai8jyHN/9r+muihwrVAgu1OCG+8LXcJ/UCKZRDcW7bdjFg05+aqBxX1s?= =?utf-8?q?X/kbqMTUhSyyE5Q2gDo3THgOEgvJVQHGPt6z+y+SgWF6wU58I0S24NtFI4QwTb2WR?= =?utf-8?q?hDY1rC+7RDOyDcuO6zp668j5gMfp6j1ssQTYnc7Y8rq4ylT1Qp+ua8c9gG10to/+S?= =?utf-8?q?aNoXqqvkEo1s5qxDhdaix7rqwmH7ewVeCyO86KhqdN0o1E4I+FDZxQnig8GkY8ZrH?= =?utf-8?q?3qtLvR9o+bh2YLCfaq5k6c+Cwg6FbHkwJuEU94j59+69l9uC3oFF9SBaqLcoOxZ3v?= =?utf-8?q?Yv9QpjKW+dUr?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3177cf8b-9858-425c-1b1a-08dd3fe8517a X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2025 22:08:38.9330 (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: G6ieKBKCWDgoQWQBsqpf4tEVJrYjdEYfn2xU+pNHh72ShLb0fww8FlFSJGkfUcXXSxE6jlV48/4vU9fxC1DvXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8555 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250128_140844_326742_990D79CB X-CRM114-Status: GOOD ( 15.63 ) 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 `parent_bus_offset` in `resource_entry` and a new API, `pci_add_resource_parent_bus_offset()`, to provide necessary information for PCI controllers with address translation units. Typical PCI data flow involves: CPU (CPU address) -> Bus Fabric (Intermediate address) -> PCI Controller (PCI bus address) -> PCI Bus. While most bus fabrics preserve address consistency, some modify addresses to intermediate values. The `parent_bus_offset` enables PCI controllers to translate these intermediate addresses correctly to PCI bus addresses. Pave the road to remove hardcoded cpu_addr_fixup() and similar patterns in PCI controller drivers. Signed-off-by: Frank Li --- change from v9 to v10 - new patch --- drivers/pci/bus.c | 11 +++++++++-- drivers/pci/of.c | 12 +++++++++++- include/linux/pci.h | 2 ++ include/linux/resource_ext.h | 1 + 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c index 98910bc0fcc4e..52e88c391e256 100644 --- a/drivers/pci/bus.c +++ b/drivers/pci/bus.c @@ -31,8 +31,8 @@ struct pci_bus_resource { struct resource *res; }; -void pci_add_resource_offset(struct list_head *resources, struct resource *res, - resource_size_t offset) +void pci_add_resource_parent_bus_offset(struct list_head *resources, struct resource *res, + resource_size_t offset, resource_size_t parent_bus_offset) { struct resource_entry *entry; @@ -43,8 +43,15 @@ void pci_add_resource_offset(struct list_head *resources, struct resource *res, } entry->offset = offset; + entry->parent_bus_offset = parent_bus_offset; resource_list_add_tail(entry, resources); } + +void pci_add_resource_offset(struct list_head *resources, struct resource *res, + resource_size_t offset) +{ + pci_add_resource_parent_bus_offset(resources, res, offset, 0); +} EXPORT_SYMBOL(pci_add_resource_offset); void pci_add_resource(struct list_head *resources, struct resource *res) diff --git a/drivers/pci/of.c b/drivers/pci/of.c index 7a806f5c0d201..aa4a2e266c55e 100644 --- a/drivers/pci/of.c +++ b/drivers/pci/of.c @@ -402,7 +402,17 @@ static int devm_of_pci_get_host_bridge_resources(struct device *dev, res->flags &= ~IORESOURCE_MEM_64; } - pci_add_resource_offset(resources, res, res->start - range.pci_addr); + /* + * IORESOURCE_IO res->start is io space start address. + * IORESOURCE_MEM res->start is cpu start address, which is the + * same as range.cpu_addr. + * + * Use (range.cpu_addr - range.parent_bus_addr) to align both + * IO and MEM's parent_bus_offset always offset to cpu address. + */ + + pci_add_resource_parent_bus_offset(resources, res, res->start - range.pci_addr, + range.cpu_addr - range.parent_bus_addr); } /* Check for dma-ranges property */ diff --git a/include/linux/pci.h b/include/linux/pci.h index 47b31ad724fa5..0d7e67b47be47 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1510,6 +1510,8 @@ static inline void pci_release_config_region(struct pci_dev *pdev, void pci_add_resource(struct list_head *resources, struct resource *res); void pci_add_resource_offset(struct list_head *resources, struct resource *res, resource_size_t offset); +void pci_add_resource_parent_bus_offset(struct list_head *resources, struct resource *res, + resource_size_t offset, resource_size_t parent_bus_offset); void pci_free_resource_list(struct list_head *resources); void pci_bus_add_resource(struct pci_bus *bus, struct resource *res); struct resource *pci_bus_resource_n(const struct pci_bus *bus, int n); diff --git a/include/linux/resource_ext.h b/include/linux/resource_ext.h index ff0339df56afc..b6ec6cc318203 100644 --- a/include/linux/resource_ext.h +++ b/include/linux/resource_ext.h @@ -24,6 +24,7 @@ struct resource_entry { struct list_head node; struct resource *res; /* In master (CPU) address space */ resource_size_t offset; /* Translation offset for bridge */ + resource_size_t parent_bus_offset; /* Parent bus address offset for bridge */ struct resource __res; /* Default storage for res */ }; From patchwork Tue Jan 28 22:07:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13953242 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 5B797C0218A for ; Tue, 28 Jan 2025 22:16:54 +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=AR+2m4CQnHQSIMlrcvoieh13m5iawrwuvaQGxMLHjm4=; b=z1kkYH86OX4473KTKhkA62xOpe DsGBAiTtqPsdPEAB1jQvEB7AnQV5QkT/WmOGASHbuZ4oRNFtIjzw6CIcMUkULfya54+KYib9dzNNN i1U+5IPts/PLNzt213VxpQteHHmwA84LufGh39AsQzN5jIQh2R3UnVbOFlOgenh/FApXB5vPQ3jxV 1l0KtTtbblSoevyCDHMjaAvFntDnyiY7KTGbJIw0Z6N8Bz8Q/Q1HVAAL+seWJO+1ppzIdojlTEnw8 opIEJ1W8LAXlf+ZRLFcoE4E77W7+6gTmFwLpiEnHlHX79wr0CeaoukzdSGXJ4r6lQhDU0rSPfoTe+ lD0+8Q+g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tctst-00000005ue6-2s37; Tue, 28 Jan 2025 22:16:39 +0000 Received: from mail-norwayeastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20f::7] helo=OSPPR02CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tctlF-00000005tbI-3M0c for linux-arm-kernel@lists.infradead.org; Tue, 28 Jan 2025 22:08:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ALMsEQGhXm6dM/VVcsXGMM5u4tJvpY5/MfO4XONvKM2WmYlj3M+VGqySLhyX55lW1x/H6O1Z6btGUUe+2cK+bAF2j0Ngnw4UvyeIIuduR+y9MyiMduylB05sJS8O+C8rboI4Fy1ny5wCzusCgu1Knf6U2akDrdSOjithHbCvmo0JwYP3ZA1gjURMJ9ZQBaGz28JLOPTK+nrAJp4BYjA3JbNCVcVl9qx/7XT2/of0DaQxUcNmGWZ2fokOLHiL0ayU4eD9nhCK8nMrJvinIxVEPS9oVubqv5S9ecaj7EbMQ61VEEA0rQYd11p+x1duB9xS0UtjLONnQq71kfMUeXFa7A== 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=AR+2m4CQnHQSIMlrcvoieh13m5iawrwuvaQGxMLHjm4=; b=d8xxQIfxGI80DrCCwfrBw9hv2ehxkDOmwMT3X7SzcmYnhxPLPKhPQjAxdeC6Iq8aEBGV88dOvdPY8QvG8wnsmjhBGAUkWJycAxkiK7DItRtSnuOG43S1BiLcoZqxW3R2SdFWqFSIhCYaFmyuLRd7qL6Zt7tES3A9Q3OtQCzeg6i5pCPGG3Kg7xHa11uX5gFkP/QmOhqeC0f4kViChv4u279mcBGFiFVsT31CENk4GJ/Et2PeDpAZ0Le+hKteBr9iARCcxu1sElbtxMbyrfu4GfEteSI9EQj27EBLAbtc9KEL1GsE+strIKijYksshxiRbyykxuRcrlWcf0Ojgz74yA== 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=AR+2m4CQnHQSIMlrcvoieh13m5iawrwuvaQGxMLHjm4=; b=msSS9SUzkde18Dge7be4mvOZ3yXw8jtJz39mz1UtfP8XpLmvPCkil714vUUJRcKjUYzR0dvMyYvOMuZ5UhZUQUeqCOZ1nfjZNeBuRVsBk9kXzxKIDPEXACHTBWHoXUJXTSy/N7brhh29iQMKLdIP7os34aoyRCbn1HW95Um4Bdq1G+MZGoX0zZSSgRkn5FMUkfIlXg+V3eAADqb2F5DLkdfM2scck6Pq/KzoO3NxclSKpvh5+/7wX7vuHZVn/pBVKOsPgAdNBNhruxICpYn21NANElKCO48LDVJJZ+f53ZMmO2HK+CMbe3uP7W0n1C31SBQUSNkeY4NxmUmq516ZfQ== 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 AM9PR04MB8555.eurprd04.prod.outlook.com (2603:10a6:20b:436::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Tue, 28 Jan 2025 22:08: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%5]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 22:08:43 +0000 From: Frank Li Date: Tue, 28 Jan 2025 17:07:37 -0500 Subject: [PATCH v9 4/7] PCI: dwc: Use devicetree 'ranges' property to get rid of cpu_addr_fixup() callback Message-Id: <20250128-pci_fixup_addr-v9-4-3c4bb506f665@nxp.com> References: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> In-Reply-To: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Niklas Cassel , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1738102099; l=8990; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=ugQwsOgSZA1155syuYkmLaAvf8QM3mw8WwLdBYfCiCE=; b=u6HcIQblCH1F6kIy9TTvhw8EgsD0kHST1G4KRLjrEwjac8iNghQXBO9XP6eyopGXTg83IeNKE wwLHG01HlFgBEEwrPm0era1L/SQ0llFVVq074Nz5i7tTKwCnxxu+M9c X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0130.namprd03.prod.outlook.com (2603:10b6:a03:33c::15) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AM9PR04MB8555:EE_ X-MS-Office365-Filtering-Correlation-Id: d9427fa6-894a-468d-553a-08dd3fe85455 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?T4lg2WLQCwizUiERzBYyM5BGwnoiTxO?= =?utf-8?q?oiq5cFm46lglW13+WG2kjJ3swoMxe/KG8Ka8HSCiC5HHeqaBhwFzHFrHz7MDAwzcB?= =?utf-8?q?Zj3fdubKWPGrFgE63Cj6bKnmvaRo9h7bBW+Pj3ahRL8PnkuzkhwD1Q2sl3k/0viVp?= =?utf-8?q?DxNh+5sTrr4tfbnwiksxJUHOySk2fRMv5PzRwpKVLLd2O+BZYT3i8o/S93hqi3XcA?= =?utf-8?q?TtDiIyp3aTDxynLe6feB/bA7exeBGlNNCP9ZsRQT5X+O7OQZ6uBsovwigAoEfsdg7?= =?utf-8?q?w0DjTbhaL37pcSwgt+h57PTV3N+aYXOjX73oBc4R/4wP2S3i72toiMy3hAMI3HHuw?= =?utf-8?q?mYqBN95sDhv8v9x+UOhrXXnM8gEHpdaxXtaS+0lFM+Spl3la3qS2Q5o2Sju++MCyw?= =?utf-8?q?BgVlT6Slj4wki370An1Tv2OmVkmS/o00yG/ATDoOMhFcifR+LfpvdkNsuI9mvf95c?= =?utf-8?q?D0WV3ORTvHqcT/j+SzRJJCZx+f0/oaru6iG6/tA+7WV10ITqwWiE7ToSXnGUK1HZL?= =?utf-8?q?ZGb6ME0kHDdJWKSVmDsNRNuV/PjSl53Y6t7rfrJ2dKm0EoFiFIe37wCSmGZN7d18X?= =?utf-8?q?oM8zgyFfURnvcwvoRRfFL4x2qHK24pU3ebOYiZSLuTvZ65HTxVtEg7Tkf2/4huymf?= =?utf-8?q?g6DEwM53We+mwtIemcyhaMiN7+h1omAX+DtA50BAotR+FtrHMRpvU8WiNH2KnOWQM?= =?utf-8?q?CrYEy7jFlur2LZ/yDkOaXQg0ytdkodEZEhkuKRJ3b803cbeRayu+x8EnebW6Bnnch?= =?utf-8?q?J6Se5kKwywdEEvoND8w0t8a7eqyJvnFXRIhhQayJO/ha/ktTlKBABdL0B4U9Vrl2o?= =?utf-8?q?yxdbg23c1GYiaV10xtpJEdaytCxj841VqeVHiOS2WYARfuckbihJu1yqDFhuiOBAb?= =?utf-8?q?7cBeHM/Wmvk6o2kZ4fobnpP8uAR3rO+TwvPHb9HLbPe6L1LaP2P2cU5ULuDaPm/1N?= =?utf-8?q?kcsxTI/I6V2Nfen7hUaUE31qnaBjAQV7hma5Wjb26q1Lq6vh9Y/LDn6+JLsyqn+4m?= =?utf-8?q?19grm1ZHL85NUYZSp5v2CcOK5lWaNLAB2rTuEf/ed11Tf3WnyJ5R7k3FSSC/EecyL?= =?utf-8?q?woSAxJ9e/mhDlomMB7RTjJ++hv4LdCwb5P5xZlGYBdhmZOwBrw5xqdgyJARKiSycZ?= =?utf-8?q?cZDeEgHGKJIPv0BO0UkF++QEdRbXOHP42nQ15hhgk9H73OsYeah1mB/7xX+D+3yXK?= =?utf-8?q?p74uy2pdyEAqrQGZ11J957GGnpbBxFTd9/kKL3waFue6P01NzRDNWO7nf3rMrIMBJ?= =?utf-8?q?+mSg5qRHHMsp3gAAFQtrfAj+Yc1quwt+Ny30GpBgGrbR7MVfKyBcI2Iuh142nslPa?= =?utf-8?q?D6sESxvk2IUPxue29KuPtcFJfCXV7p+lOBittrr3uXeaMrAWpxkGik171JnSiWjmG?= =?utf-8?q?iyOvNV6iu8TUyGrhJqNdjZxMs9hUZ6M2Q=3D=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)(1800799024)(366016)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?l31UG+TdUqDIbloBktJhyIJx0hLA?= =?utf-8?q?9HhCE1pUCSfC/tbAy4s1ijeAsDntUUE7mn7j8TmpJAA/PcqFcnjZKbfEUZCqHS85v?= =?utf-8?q?9nrACyRV9V2BwFhdEA3aoeEAXYyw8A98QqUygyM0f0lrnwbCdNsfJILkKZh4EghNw?= =?utf-8?q?qzkcdG+oLKTy8PsziFwmQOvSxVQOicui58roSpvuX9rfuCjYk4A8PoMfelLPY6/Vi?= =?utf-8?q?aJSHTD3E3YOsRrMEMcCHtWZmfwnXNfuUzNXR4k0qyL+tO1tdYFild/L2pGRVW2qkR?= =?utf-8?q?QjSecAmawGd6VxM7TioL48BezdwOfdhiL4qZMxJBnV6ggz/oNk4O2oLAB/QGeJfSc?= =?utf-8?q?APwMBXDpRDvYzgGO2z54k5lQ9+D1jVvy9pzHzB6LnNuDl+6xrNhCj0XMq1o4QpgBR?= =?utf-8?q?f3++8+cH4BoW74mwJSEPbYuQNKp2cLa1Y9zwzj/Kt8LtMIoBpkr2GgHPRDS64QeB5?= =?utf-8?q?B9vZ5B9TOhpvT/l2TK4gT1xY6L40qvP9OGpohNK02jVQmcl8SYAOtqkAZUfUCsb9B?= =?utf-8?q?OXXoV0/8EjXe7OfxKZEXYGWYBc9Nk7HJoGYz+tsHeP46uq61G8eAuzMEfqSKAlX31?= =?utf-8?q?TxT4be9h2XZnnMCHnNXlW1Nx6JUMFQcoc3fIkSIsyaGyXIMVApWB8ONLgR9bOptI8?= =?utf-8?q?V3K8rCz+LI8mYqc3oWn61IDFTICqOc2w5bnu3QnY1iiXS1ZTC+m4vBdNblGRHL9h0?= =?utf-8?q?EL9zAr7jc5vcxcwhBw0qDVSit9tyrRfu6BvbvRRJqzZ1NMEGoklEr9sobyqJiyuq7?= =?utf-8?q?7X+iQ08sDyeArOKr42RwYJHHZQm8VJvNLH09wiKsSAXk0eZFZ8iAeKuEfQ6lp8uJB?= =?utf-8?q?FQrTkY0UP50ieCfNw/3YN8jhpT6JApxzxj3FcGActl7sX98Xd5G6UNvtQYxHSTqRO?= =?utf-8?q?YONIzMy+Ug3uWem+SVIlrTnnCfauFQxQRqGuIm5DGqa2aHM/srpFetcvVKCXmSG2T?= =?utf-8?q?Oqdxca21q2gC1r2LlcJ+blJm8yvdWS2r4wKcc4YC9kBZoTniOKSbPgtgnc3he/0d8?= =?utf-8?q?Q5r9t6mOpJiCxjdXP762Pve5zX0VvfdUO7m5XCKWx1sgmyeIDvjkAmR16eMngD+mc?= =?utf-8?q?dN5c6/YGEHR3hJEPZuwFNVfV/Z4PDkT5FoEYN0uHLxJe0LCBEzM6dSMWz1HBk4KEm?= =?utf-8?q?q+0VrrQMirTiEa6Q7zw+TSidJhLmrumCQ0wzLc5+Q4q3z8sfcPywVBH5iTvNZGIPt?= =?utf-8?q?HuXV5HBODKYahzs/S1TIEl1X3Yzs8Ykr7aVHCXQpOGxrJxO2XOvMB6LjkPbWq9oSQ?= =?utf-8?q?LdmHWzKretYn3C3kNLvRCHbj5IG1zQtqAanHsinIphBnGyqyl4TFVnz3YJw02pmm+?= =?utf-8?q?x5XgmkCAoiAep35RVltbWYlHMxMwGHZ6w98fbjjRilShFKXSG0Qs1NGlKaJ5PIRIW?= =?utf-8?q?jx+w3KruI8lbjpf7kamYkxN6qlYVmnS5ySc78a9K0KS6R1hqg8wKB6LexHFfdYBBX?= =?utf-8?q?BmNYjplniCV/lwB9J7LbUoMjhzory3JppaAzcT0I3Ful11hYUTOkAPk5Vv6w2i86e?= =?utf-8?q?lOY38ka7aVFj?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d9427fa6-894a-468d-553a-08dd3fe85455 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2025 22:08:43.7340 (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: XjuYLdUNBh8tHWD8P3DPwVWon3uCIs+IWi/2gQaunxG5lmm8o2zj9J+hKwACHmas9pbpPkSWHu64Fs12nyswgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8555 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250128_140845_843256_97E573D1 X-CRM114-Status: GOOD ( 14.21 ) 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 parent_bus_offset in resource_entry can indicate address information just ahead of PCIe controller. Most system's bus fabric use 1:1 map between input and output address. but some hardware like i.MX8QXP doesn't use 1:1 map. See below diagram: ┌─────────┐ ┌────────────┐ ┌─────┐ │ │ IA: 0x8ff8_0000 │ │ │ CPU ├───►│ ┌────►├─────────────────┐ │ PCI │ └─────┘ │ │ │ IA: 0x8ff0_0000 │ │ │ CPU Addr │ │ ┌─►├─────────────┐ │ │ Controller │ 0x7ff8_0000─┼───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ PCI Addr 0x7ff0_0000─┼──────┘ │ │ └──► IOSpace ─┼────────────► │ │ │ │ │ 0 0x7000_0000─┼────────►├─────────┐ │ │ │ └─────────┘ │ └──────► CfgSpace ─┼────────────► BUS Fabric │ │ │ 0 │ │ │ └──────────► MemSpace ─┼────────────► IA: 0x8000_0000 │ │ 0x8000_0000 └────────────┘ bus@5f000000 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x80000000 0x0 0x70000000 0x10000000>; pcie@5f010000 { compatible = "fsl,imx8q-pcie"; reg = <0x5f010000 0x10000>, <0x8ff00000 0x80000>; reg-names = "dbi", "config"; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; bus-range = <0x00 0xff>; ranges = <0x81000000 0 0x00000000 0x8ff80000 0 0x00010000>, <0x82000000 0 0x80000000 0x80000000 0 0x0ff00000>; ... }; }; Term Intermediate address (IA) here means the address just before PCIe controller. After ATU use this IA instead CPU address, cpu_addr_fixup() can be removed. Signed-off-by: Frank Li --- chagne from v8 to v9 - use resoure_entry parent_bus_offset to simple code logic - add check for use_parent_dt_ranges and cpu_addr_fixup to make sure only one set. Change from v7 to v8 - Add dev_warning_once at dw_pcie_iatu_detect() to reminder cpu_addr_fixup() user to correct their code - use 'use_parent_dt_ranges' control enable use dt parent bus node ranges. - rename dw_pcie_get_untranslate_addr to dw_pcie_get_parent_addr(). - of_property_read_reg() already have comments, so needn't add more. - return actual err code from function Change from v6 to v7 Add a resource_size_t parent_bus_addr local varible to fix 32bit build error. | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202410291546.kvgEWJv7-lkp@intel.com/ Chagne from v5 to v6 -add comments for of_property_read_reg(). Change from v4 to v5 - remove confused 0x5f00_0000 range in sample dts. - reorder address at above diagram. Change from v3 to v4 - none Change from v2 to v3 - %s/cpu_untranslate_addr/parent_bus_addr/g - update diagram. - improve commit message. Change from v1 to v2 - update because patch1 change get untranslate address method. - add using_dtbus_info in case break back compatibility for exited platform. --- drivers/pci/controller/dwc/pcie-designware-host.c | 34 +++++++++++++++++++++-- drivers/pci/controller/dwc/pcie-designware.c | 9 ++++++ drivers/pci/controller/dwc/pcie-designware.h | 8 ++++++ 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index 1206b26bff3f2..a0c8e6f66ec4d 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -413,8 +413,10 @@ static void dw_pcie_host_request_msg_tlp_res(struct dw_pcie_rp *pp) res->name = "msg"; res->flags = win->res->flags | IORESOURCE_BUSY; - if (!devm_request_resource(pci->dev, win->res, res)) + if (!devm_request_resource(pci->dev, win->res, res)) { pp->msg_res = res; + pp->msg_parent_bus_offset = win->parent_bus_offset; + } } } @@ -427,6 +429,7 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) struct resource_entry *win; struct pci_host_bridge *bridge; struct resource *res; + int index; int ret; raw_spin_lock_init(&pp->lock); @@ -448,6 +451,26 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) if (IS_ERR(pp->va_cfg0_base)) return PTR_ERR(pp->va_cfg0_base); + if (pci->use_parent_dt_ranges) { + if (pci->ops->cpu_addr_fixup) { + dev_err(dev, "Use parent bus DT ranges, cpu_addr_fixup() must be removed\n"); + return -EINVAL; + } + + index = of_property_match_string(np, "reg-names", "config"); + if (index < 0) + return -EINVAL; + + /* + * Retrieve the parent bus address of PCI config space. + * If the parent bus ranges in the device tree provide + * the correct address conversion information, set + * 'use_parent_dt_ranges' to true, The + * 'cpu_addr_fixup()' can be eliminated. + */ + of_property_read_reg(np, index, &pp->cfg0_base, NULL); + } + bridge = devm_pci_alloc_host_bridge(dev, 0); if (!bridge) return -ENOMEM; @@ -460,6 +483,9 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) pp->io_size = resource_size(win->res); pp->io_bus_addr = win->res->start - win->offset; pp->io_base = pci_pio_to_address(win->res->start); + /* In case ranges in pci node provide wrong information */ + if (pci->use_parent_dt_ranges) + pp->io_base -= win->parent_bus_offset; } /* Set default bus ops */ @@ -739,6 +765,10 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) atu.parent_bus_addr = entry->res->start; atu.pci_addr = entry->res->start - entry->offset; + /* In case ranges in pci node provide wrong information */ + if (pci->use_parent_dt_ranges) + atu.parent_bus_addr -= entry->parent_bus_offset; + /* Adjust iATU size if MSG TLP region was allocated before */ if (pp->msg_res && pp->msg_res->parent == entry->res) atu.size = resource_size(entry->res) - @@ -902,7 +932,7 @@ static int dw_pcie_pme_turn_off(struct dw_pcie *pci) atu.size = resource_size(pci->pp.msg_res); atu.index = pci->pp.msg_atu_index; - atu.parent_bus_addr = pci->pp.msg_res->start; + atu.parent_bus_addr = pci->pp.msg_res->start - pci->pp.msg_parent_bus_offset; ret = dw_pcie_prog_outbound_atu(pci, &atu); if (ret) diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index 9d0a5f75effcc..909b14986660c 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -841,6 +841,15 @@ void dw_pcie_iatu_detect(struct dw_pcie *pci) pci->region_align = 1 << fls(min); pci->region_limit = (max << 32) | (SZ_4G - 1); + if (pci->ops && pci->ops->cpu_addr_fixup) { + /* + * If the parent 'ranges' property in DT correctly describes + * the address translation, cpu_addr_fixup() callback is not + * needed. + */ + dev_warn_once(pci->dev, "cpu_addr_fixup() usage detected. Please fix DT!\n"); + } + dev_info(pci->dev, "iATU: unroll %s, %u ob, %u ib, align %uK, limit %lluG\n", dw_pcie_cap_is(pci, IATU_UNROLL) ? "T" : "F", pci->num_ob_windows, pci->num_ib_windows, diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index ac23604c829f4..483911ab9e629 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -380,6 +380,7 @@ struct dw_pcie_rp { bool use_atu_msg; int msg_atu_index; struct resource *msg_res; + resource_size_t msg_parent_bus_offset; bool use_linkup_irq; }; @@ -465,6 +466,13 @@ struct dw_pcie { struct reset_control_bulk_data core_rsts[DW_PCIE_NUM_CORE_RSTS]; struct gpio_desc *pe_rst; bool suspended; + /* + * This flag indicates that the vendor driver uses devicetree 'ranges' + * property to allow iATU to use the Intermediate Address (IA) for + * outbound mapping. Using this flag also avoids the usage of + * 'cpu_addr_fixup' callback implementation in the driver. + */ + bool use_parent_dt_ranges; }; #define to_dw_pcie_from_pp(port) container_of((port), struct dw_pcie, pp) From patchwork Tue Jan 28 22:07:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13953243 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 3A2B7C0218D for ; Tue, 28 Jan 2025 22:18: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=7fSCFufz+vLfv0iVWwiZZozCv5CsPviKj77WcAlKDHg=; b=yRf/Vvf1OTmtfElT95Cce6ojXg +R3KDdFuDcIf+cFd2IOsjw4is4ZklSytc+gxBC9KuTwvZNPA7dZPoAdqlemycbWtCPdtIB/rRd9V/ fVfrgiATQNc5rSUpnw5/n+0jLPhHPGddpNUUKcyWb9S6cNVbbbLvFDzNkGIUykb0D0RvPxgrlIxsL 6JOJ3WS0pLIygF4L+uKT1UEiqsZTMJJIRFRDqGfLFKQUR31ix4xtJW37jJdA3+gG8AiQd7B+GocpI 8bffj4MPsZGOyprDhlnXUs13ags9O5V4GLgW0b+n3kG7bGipa6VkISAMtk1CifHcBEN4Qvkx5Cr1L uN9fwGNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tctuD-00000005ulj-1VcS; Tue, 28 Jan 2025 22:18:01 +0000 Received: from mail-norwayeastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20f::7] helo=OSPPR02CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tctlK-00000005tdl-38kB for linux-arm-kernel@lists.infradead.org; Tue, 28 Jan 2025 22:08:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=b/WgAqi/K5PS/k/ZbAIpkKrOWJyS+VJDBEvEonH+SyeaM5WGXbZfqUDMYSauq9EorfXkQ6a/sN1d/24GyZVrKLmB9cZZexuWi3JixHnEE+7V4d9vlS8ix4ueP2ArbMVsRziCROOb/4lTdbrXnwt0krfIGDEItPSV/wq8MKGBDI9X26AaqSWzR4f2fBWT5Bj44d5miiMycfFQdC19PLvC1F+/l3TokreXLxSyjuRqxjEDSueeWozRHTA0uv6B8L+pkUPstnnvUTeeS1MclpbsJEEACPQ3YEb2Xz2gbGqNoGrVDVEs3Z4GplWQaUtZSCQOyTiuS8/nhmzsTTepePjbrg== 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=7fSCFufz+vLfv0iVWwiZZozCv5CsPviKj77WcAlKDHg=; b=L5/Mf2Vv4UTVO4DiWOFuazrKYK+xV2tC97t6WaJFHuY6dtQa79X5vikdxQvDTcrPuLEoqo0RhQuLtu7V125LqX1VAi8ekmTXdeW2t6sMdmLa8qFchEqeZZd+af95/ZRf4mQ/8QSW4GudxmwnGBWjAVRu+hAZlXnB4VujaJLuJrlGP06IpfTpfeRAcc/2OdzhHCnUVL+l/UOBt4pHlubOfip9osDlxlNf4tqOO7Lf477TcgBgdqkUvu0AcSQSMVLABJ8eg2I+INghyix5ywb4Oz+73CTiZMzETW1gngaEFIRgsb99N6Un3uUOYVziUR7PkpbiAgkKzoff5xyzo8uj1A== 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=7fSCFufz+vLfv0iVWwiZZozCv5CsPviKj77WcAlKDHg=; b=BUCbGoHUJP9YECc6vyeWAt0X17snr1fGiarcgJLyCTCjH+wcQTYf4EfDf8HXCHwEu55SAARnNsOMngjyYiaK0R5GZ1FhKt5idywyzUojxTTRTxao0kLvpkOOUXRecujDMFDjpBGe7iIs4sTfEoppidWpeE7uV7HCI5aFITzrKFnN9D5gYg+jysGeo0rRLs36Uf3b8yMcHXet7j6sJnur5lGmLzXhE8qCfvvXDBN05DvjsqYAdZAqlZLt0ldXEo0T67xnqbwQJp1knI+U1mNjl5gIni1AkjHtn7reH4i6Qz7GJdIzLrey4R2CL4WGZA4sV5XkvLqIDW/hQhlfTEfUcg== 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 AM9PR04MB8555.eurprd04.prod.outlook.com (2603:10a6:20b:436::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Tue, 28 Jan 2025 22:08:48 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%5]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 22:08:48 +0000 From: Frank Li Date: Tue, 28 Jan 2025 17:07:38 -0500 Subject: [PATCH v9 5/7] PCI: dwc: ep: Add parent_bus_addr for outbound window Message-Id: <20250128-pci_fixup_addr-v9-5-3c4bb506f665@nxp.com> References: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> In-Reply-To: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Niklas Cassel , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1738102099; l=6514; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=02IqYa+1YrbDOfvh4y1Vhp/mynerMSdKgPWbl1z+Sjk=; b=truqNOct702hD9EFPO4up2i49kvg/juEc/NJjYHKaQdvpgPegJqxYQtaFMzEH3dSD9ak8SZo+ 3rKNXAawLBBAPbjyvH1NtsHgH5NV5xmif5kpH3mwljG9xPFlplBP2JN X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0130.namprd03.prod.outlook.com (2603:10b6:a03:33c::15) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AM9PR04MB8555:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f8657a6-001d-42c4-a57d-08dd3fe8572c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?kgxoYbIiAmOQBY+loIEYiBHgftV6kMH?= =?utf-8?q?Xm9JA9ZlHlSJkRE2hGLFu2+tlZXVWj4VC+AxgPqliQz+oHn8hUODwREKVL7mtNL1V?= =?utf-8?q?v85LxXqyNsuDJuoEmldDI6Ho91/DBZwu+gs6NtJ5gE8iwl7s9F6ux92CV8gkBJBio?= =?utf-8?q?E408p83FR56xtCI5LLD/AOhfBowhUQpIpUfHAIptvAaV7DoS5FfSXWKz3NzJfX+HM?= =?utf-8?q?+3sdxHffvH5B2c/BuVMHqLPOvAwmsfHvY55dC3tMcMi60FF2Freu00EhiLKnHaiQw?= =?utf-8?q?MTMvLySpoSh9xRhdexLKem6J0t5m0w4QTQNZJC/t2mg+jhUV1jDmMLM5IQ9O9A4EJ?= =?utf-8?q?UbRRdHS+Gm2+reyyf2HReAf0azHuvtEagj1bkDyKLBiUyNjlo+C0EHtdZkNvjd54H?= =?utf-8?q?2q5nPEOyU4ToXXwV0n44RPZQxVY1tGPdrwbmUwJdnEYAUBJvce2UDKkwcuW0WMpsk?= =?utf-8?q?1j53D367ELyI7PkTAjupqtL9/qCU3saMRS0QwmXcbNUbDdvjKnCRoGlMhs2IY6gTy?= =?utf-8?q?E0dJryB2HyVve2sy4adgLgwr+6Omodrlpj7fIkhEnOurCX68ExYggNzO/CMmhbM3T?= =?utf-8?q?m3jyFrUycoeNFWX7NhKG9j9ExK+71rjvb9iUaTmUVldjdMNPfONij2tXU413kWHTZ?= =?utf-8?q?E493Qq6qtCFJafE32QJ8hToJ9l8JV3f8z23XnntLIxAwTQ2ysfNCanfPjFaxO9ZcI?= =?utf-8?q?VzdoO59WjmmNrb3gGN1Sr1ubeXlm/h62K7+IcGu/mz7sCFj2JEO2s+f+6BtbO9F3W?= =?utf-8?q?WuAlN7i0UtDcfpWFfn/P7rbXRELEJv3sDCRKj2rG+nbucYnuibvn37Df6K9cplTlU?= =?utf-8?q?DN5DeygWt28BmAz6/8IJk+mTwDcXrTIs8LeGdtgjUEDTcvMHIMfJ3dMokYi3h/xgg?= =?utf-8?q?7dqQeejP+ZLBTq5qgu9wQisjCTCSHp0ZQrD9R6AlEG3VUUinNsLsof3mHMDKJOQ5B?= =?utf-8?q?1FVOm+JnzJc3i0c7el3bmrpIhMnZQUvg/Hba5YaTxQxL9OXM6+8oaofIcfy0Eb/2n?= =?utf-8?q?qj3Wo8G0XtUsjEVO2M6jSd70/NG+4w6jCH34d4QnJ0Mkdk4v7GcJNC65mjBwyolf/?= =?utf-8?q?lNh6potwTCENyOWrLYT7HRXrL2vJ/47nBksIJvKA12hUhlt5GqahS43uRrjqHeft+?= =?utf-8?q?dOtalknwoRxVurqvSw5TI6AP8KuiUKiDnTMquuzSVeH8cIDrgMqcB3l+GrTHoTb6r?= =?utf-8?q?yyYZAbv0GlVP0i4qwdrzbYMceKxpWDg+wZGKO+3G7S3eChJ5LaZXbrdkGB34pW4qc?= =?utf-8?q?0C5QMBsXU0KNvpkLXzvYHzGqm4We+vlkiLMkcEqARoeY2CIRWtkufvY4VQn4PlMJl?= =?utf-8?q?Q8R2BB2FFvZv3vE4t9cLaK71e/kH4pYak9payvtTOTx0vMwtoPsAjqjUWVHltDaDW?= =?utf-8?q?NaE+5blzcGp0Cx8k/PC1PB0r7Xo69rQ0A=3D=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)(1800799024)(366016)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?SCRkcTGgKkj+GOfBKR/O0QIiVYTJ?= =?utf-8?q?KUhyLM+JO4SD2zy7qTToZbwL+mh/X4B2lv/zAoaLbggeWh/4k2c+AAf8bkhD0YGFT?= =?utf-8?q?vpqSR7YKCo69v8HC4fFEMIBedxbLaASc8KesHAvOCLcDFAWN1bRKI+Q6h/iRM97ib?= =?utf-8?q?PctpPS93c6jf2wiDtumA4vifIH2xB9sQzJQmaHXTUylmWB7HA1OE6sSKGzJRcSi4y?= =?utf-8?q?8TRR6IAqKeeoD7/F9EMmOK3owHZemqM5+kTVMyveOag9QeXn6D4BikNGjHnZjMmMJ?= =?utf-8?q?2jKIWUOGuRwD6R+1Q/VxKPGeAmkFVpqnHPwco5jeZJR5bU1yRR7DqmCPx1n8uy6IQ?= =?utf-8?q?Xj/gJYihI0NCQ49+8S0f01kV4IlHqlZY8LSnmICfiwsjis2+GWWSkVy7IQz7rLvXr?= =?utf-8?q?4Ns8ZDk8LnzMeyZxPxVdelWRXZcc77UverBWdMLw0GuBCQhC/FoEyp6xXW4Ki2nXh?= =?utf-8?q?TRhB4kCJR+5ZrlWPs9l4rwfs2C0WjEo6qy6MW41+NbSnWpXCYU2ew8qDs2ImlDdPv?= =?utf-8?q?kIWFYmHbq56mcmJZ1icHY75OA3/Y9y8gnnbsmiyEkLFG6hpyG4J4WbUMNy7HZ7QTq?= =?utf-8?q?jjd0FeYTI7qPlTuDcc5uq/ssXT9ZyMAh0ekb+1gnFg42Wf7dkfauJmi6aJ/LEko4R?= =?utf-8?q?BQqc+eef7cU4FdN09lhXHplX0ocF0QCBvV1raCxZ7YjqvVz6ke2mR/CF73GaWZIPU?= =?utf-8?q?B6KjdMlFKLTOCtXRicTLRzKCR7x/qBuQby8iFXWq1ji09Uhh1XJ+Ch9MTqYkancEz?= =?utf-8?q?2J3GRCFvC1HbvjXc0/W+dwHM49QPIOCyBmHdNUngJLjwjuwvvKyae3MSQTIsL5FCn?= =?utf-8?q?EMAfH0wjF1Qquh7v2MlZ+rwPl3O8SJkYx7p2dudWoDsb9+Cdtpt9utrSsD1qk3FL3?= =?utf-8?q?GsInQfxPUI5LSqhPrrr17TqRI7QIN9UY5r5yA3Zg33JZyldL4v0lsuxGCFagrAjI4?= =?utf-8?q?kio9DRiNHxv/EtTfip063KY4/0ECNPaS6uQZWoFzfzk47zIfaDVD3sjD7gknJP+SW?= =?utf-8?q?3o5PQDT0oahmoz+iMLTMZGAYoNXOYSyTennbaC9suSl3/LIZXSNhZ1Pbj2JPu6Kya?= =?utf-8?q?/8Cdgdui7RfBbWxnl/IkE+ptftoPaVcInjUQZz6oGW7BzPXct/5LkisWf6HFvZydg?= =?utf-8?q?eW3RpPmOArJeH7Ud65YRwwJ82RkczqrDdjM+aDJ9TEzzbrJukv4nm7O+LVyruHHwG?= =?utf-8?q?R3WMcllOd1FoYhnDsFVWe7ZF9eIk2yCa98eZOOTdsO8+r1HcytoaSl8vlhr/oF1ni?= =?utf-8?q?Lgg9QQYtzsZPqxowM5+P9mas23RvR6qjfoKgkDcACy2Ngoopwc64dOGfaVr2qNfkw?= =?utf-8?q?JvXxWBTNGRlaG3fw7LyFIYoxR/Pb3AfTaxl2gbr7sdq/cQ8ip5dNVtFiLYHuYNSaR?= =?utf-8?q?4XPFErnQbNz1lrFoHhRxAHFAsZcToWjo1EYa/NQ7s8Uz5qk/yATP3NxlYGXIv4KvK?= =?utf-8?q?zV4QxVbBBxIrAkUutc4OuYMEE0QfApGPdyUg4I9/IyKTyc2NHFdcXegVnuWM3uRaw?= =?utf-8?q?4HAXix7NWK38?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f8657a6-001d-42c4-a57d-08dd3fe8572c X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2025 22:08:48.4829 (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: nNSXr/qY5uWadYiuU5CQGsNZP4MF/IoV8+6uEFTReTl5XOfZtrqFUsmwFg5yqOYrGGJxUp5VYXJAs6XPqjGgfQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8555 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250128_140850_956980_DF10DC89 X-CRM114-Status: GOOD ( 18.60 ) 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 Endpoint ┌───────────────────────────────────────────────┐ │ pcie-ep@5f010000 │ │ ┌────────────────┐│ │ │ Endpoint ││ │ │ PCIe ││ │ │ Controller ││ │ bus@5f000000 │ ││ │ ┌──────────┐ │ ││ │ │ │ Outbound Transfer ││ │┌─────┐ │ Bus ┼─────►│ ATU ──────────┬┬─────► ││ │ │ Fabric │Bus │ ││PCI Addr ││ CPU ├───►│ │Addr │ ││0xA000_0000 ││ │CPU │ │0x8000_0000 ││ │└─────┘Addr└──────────┘ │ ││ │ 0x7000_0000 └────────────────┘│ └───────────────────────────────────────────────┘ Use 'ranges' property in DT to configure the iATU outbound window address. The bus fabric generally passes the same address to the PCIe EP controller, but some bus fabrics map the address before sending it to the PCIe EP controller. Above diagram, CPU write data to outbound windows address 0x7000_0000, Bus fabric map it to 0x8000_0000. ATU should use bus address 0x8000_0000 as input address and map to PCI address 0xA000_0000 (dynamic alloc and assign from pci device driver in host side). Previously, 'cpu_addr_fixup()' was used to handle address conversion. Now, the device tree provides this information, preferring a common method. bus@5f000000 { compatible = "simple-bus"; ranges = <0x80000000 0x0 0x70000000 0x10000000>; pcie-ep@5f010000 { reg = <0x80000000 0x10000000>; reg-names ="addr_space"; ... }; ... }; 'ranges' in bus@5f000000 descript how address map from CPU address to bus address. Use `of_property_read_reg()` to obtain the bus address and set it to the ATU correctly, eliminating the need for vendor-specific cpu_addr_fixup(). Use 'use_parent_dt_ranges' to indicate device tree reflect correctly bus address translation in case break compatibility. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- Change from v8 to v9 - change bus_addr_base to parent_bus_addr - fix dw_pcie_find_index() address compare, which cause atu allocate failure when run many time test. Change from v7 to v8 - Add Mani's reviewedby tag - s/convert/map in commit message - update comments for of_property_read_reg() - use 'use_parent_dt_ranges' Change from v6 to v7 - none Change from v5 to v6 - update diagram - Add comments for of_property_read_reg() - Remove unrelated 0x5f00_0000 in commit message Change from v3 to v4 - change parent_bus_addr to u64 to fix 32bit build error | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202410230328.BTHareG1-lkp@intel.com/ Change from v2 to v3 - Add using_dtbus_info to control if use device tree bus ranges information. --- drivers/pci/controller/dwc/pcie-designware-ep.c | 21 +++++++++++++++++++-- drivers/pci/controller/dwc/pcie-designware.h | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index 80ac2f9e88eb5..d0d6c4e8df80c 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "pcie-designware.h" @@ -279,11 +280,12 @@ static int dw_pcie_ep_set_bar(struct pci_epc *epc, u8 func_no, u8 vfunc_no, static int dw_pcie_find_index(struct dw_pcie_ep *ep, phys_addr_t addr, u32 *atu_index) { + phys_addr_t parent_bus_addr = addr - ep->phys_base + ep->parent_bus_addr; u32 index; struct dw_pcie *pci = to_dw_pcie_from_ep(ep); for (index = 0; index < pci->num_ob_windows; index++) { - if (ep->outbound_addr[index] != addr) + if (ep->outbound_addr[index] != parent_bus_addr) continue; *atu_index = index; return 0; @@ -333,7 +335,7 @@ static int dw_pcie_ep_map_addr(struct pci_epc *epc, u8 func_no, u8 vfunc_no, atu.func_no = func_no; atu.type = PCIE_ATU_TYPE_MEM; - atu.parent_bus_addr = addr; + atu.parent_bus_addr = addr - ep->phys_base + ep->parent_bus_addr; atu.pci_addr = pci_addr; atu.size = size; ret = dw_pcie_ep_outbound_atu(ep, &atu); @@ -901,6 +903,7 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep) struct device *dev = pci->dev; struct platform_device *pdev = to_platform_device(dev); struct device_node *np = dev->of_node; + int index; INIT_LIST_HEAD(&ep->func_list); @@ -913,6 +916,20 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep) return -EINVAL; ep->phys_base = res->start; + ep->parent_bus_addr = ep->phys_base; + + if (pci->use_parent_dt_ranges) { + index = of_property_match_string(np, "reg-names", "addr_space"); + if (index < 0) + return -EINVAL; + + /* + * Get the untranslated bus address from devicetree to use it + * as the iATU CPU address in dw_pcie_ep_map_addr(). + */ + of_property_read_reg(np, index, &ep->parent_bus_addr, NULL); + } + ep->addr_size = resource_size(res); if (ep->ops->pre_init) diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index 483911ab9e629..3d9bf2b43bcf2 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -413,6 +413,7 @@ struct dw_pcie_ep { struct list_head func_list; const struct dw_pcie_ep_ops *ops; phys_addr_t phys_base; + u64 parent_bus_addr; size_t addr_size; size_t page_size; u8 bar_to_atu[PCI_STD_NUM_BARS]; From patchwork Tue Jan 28 22:07:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13953246 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 C47B5C0218A for ; Tue, 28 Jan 2025 22:19:33 +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=ek6Zk7JGxc1j9p1VFdmOCv0GNNKfJXOaWInK2IQR9mk=; b=JjclgYyMDSbhH1Aq+Y+wmDfh7z 5QVnd0qtouoxCxCJ8ZT1FJ97soq0m+Ogf+L1pykuy0iCZUQWfi5XuVIv8XhpkdaST9Dr4znG7a8o0 m2l7+wI996ZsuXQHhnO98dKwcTlM1vxFyg1a4DG0+mpfoMlz5OeNTiHNRYEe8TsQsh9IFhp5qWCSv 3LjA24RTIFnG58Y2xYeCf2c4Fx+NFTQZXFCJlTnN5TwEJRrx/uUqJKH3ZT8jB6D2kO0kNwo58EjUm pp7Jg8UVy+m2XXzxerkHikaj4sPqg4bquklfTl3WPoSR8BPwW2TgzN49L4wI4mGdrDDMMEPkS0dXh sXvNPbfQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tctvW-00000005uqi-03Bk; Tue, 28 Jan 2025 22:19:22 +0000 Received: from mail-norwayeastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20f::7] helo=OSPPR02CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tctlQ-00000005tfw-3zRW for linux-arm-kernel@lists.infradead.org; Tue, 28 Jan 2025 22:08:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jk4wcmcOF24mbHrxyVVZvtWMXJywxSQ5vOAbr1QVdiM1MGZd6RvM7DQnBBOmVHopReJ9CDDBdDWmL5IJmNoci9s9XqVMqjG5yG2V+/g72rybUk+mzMi+XYV3Epe/OKwfA8PvOn6zzv9KQ/g9UATwP+UH4he9BMVj/CMAuQEr1B7OSWPW5VNr+2GFJtzYjaUMGz1D3WZ85DykGzXcxmTzyDwE/xRBgqPxIIPKHqp8eL0WTvVT/oAGFxv0ImK8pbAoiFxilKeUU71/bYCqQ+9ipNpgxwJ9BbQoWXq1AbUYojiVEmVushEymkKY0Am/i+oWAlWjvCMn3+uxq7mt7iGnWA== 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=ek6Zk7JGxc1j9p1VFdmOCv0GNNKfJXOaWInK2IQR9mk=; b=Bnyk+O42fTJNrXUKBkwOWXo2B7aln2pqo67E+LtXvsPL5totD7cV7kb0YIEcL5vv8RcH58sfS3Z6ZmtdTGIsg+6f/KVjFmSD7ziJDP1IuIH6rHpILf3QosgG99JQxvz8aNY+QcpRmnsxZUZ2OgSuNbaxsEwO2WPNF7rVNZRhM6IdfcEV0nApOj94DlNFzIWB/ZHLPZvuyaNOp28L8p6roY/viEea63/r/43hgx1hHkn8dLTDiM9olDaRDLG8h1xwgYDvIrvfvRNbLcyipyeUeAUWuApr0f3HuCR2IFEQ1m/j9bW7SwncDyBLGvuO35vMiSkTcyK7mtV9dgjacgC9Ow== 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=ek6Zk7JGxc1j9p1VFdmOCv0GNNKfJXOaWInK2IQR9mk=; b=gzBJfiNb6AjdFo3Fky/3iLPmhyG66Gy3KBtoSt0veva78GnmSEvp5SOA0uC5Upwl4L95PeK1NY+WjUCqByvHgOYh6ErRNqKE+vW2qksw/9WkBe6/4jfWBLEqVTSyVOVJXKzXq8hkG79zMIXMNNvPoqVUyOf8rSjJgYNg2pNwlLRcJUuMlxshrnsOsWmDpIez91E3eIaX203aZm1MOjn1iROKLhdXAmmoSggxxwESqbo9l8AANh9k54FOCz4VyspKXAs/Pwyr8bjEq94W9shsdl+DvD6vVYH3keQD+5rs6X7hulOBWnggSgABSIZeE1xb3wJOwentl08e/RNjVmuSRw== 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 AM9PR04MB8555.eurprd04.prod.outlook.com (2603:10a6:20b:436::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Tue, 28 Jan 2025 22:08:53 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%5]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 22:08:53 +0000 From: Frank Li Date: Tue, 28 Jan 2025 17:07:39 -0500 Subject: [PATCH v9 6/7] PCI: dwc: ep: Ensure proper iteration over outbound map windows Message-Id: <20250128-pci_fixup_addr-v9-6-3c4bb506f665@nxp.com> References: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> In-Reply-To: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Niklas Cassel , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1738102099; l=1409; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Qtxc1V3k3e4Ca0xXnwE31Cml7yIQ9kLsWImFVASGIz8=; b=+mo5CH4A9gHYSrjIhSwt736ICapBVWSaLCW2H79VxFDRUagnRrLXvlZSZz6/eEB4Ts01iGG9s U7b11XwKC80By5EkByk7JMrO7si2GhOcWPbnG2kesE5Ktd5xAoa3zbf X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0130.namprd03.prod.outlook.com (2603:10b6:a03:33c::15) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AM9PR04MB8555:EE_ X-MS-Office365-Filtering-Correlation-Id: e8a294f6-7ee1-4bda-9168-08dd3fe859fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?4SajXoNcg8TOv+4rIS5c9eq5sfyHix6?= =?utf-8?q?eR+Rqol8bQ3UnQNrV2UzJOOv1mvZMvgH2d6ApmJ9ecwec5cxdNFHYugecL9fMzyHH?= =?utf-8?q?tesi3GUu/S5gaO+25x9x0eUy7XYerG2MOERu+Qc55/5THUVpg3I4A9J3B5qsjPvbL?= =?utf-8?q?tdlP7hmrLNqPJJGtnKM9Eh13/m1pE5Azz5XI6NVj8Kmy4L8Kd0JNyLqlsCsJPWq1e?= =?utf-8?q?r4Aci7zldgohsIYUJN1LpyVkS8T5yU6aaN7ilqfueD/wT4bxhNPP5PXtnKxClwOdn?= =?utf-8?q?c4RqbBsxbNYT7XoipjcnQ14XANYB64FA2AZPeXjSSpp8ZwmtA6AYsW8EUSieXcVoi?= =?utf-8?q?+SzmMpauw3NXjr3dc1OGdIf3R+k1PX/UwwncFDDjujEyEb7ckZrh4TLs8vjkZvD6s?= =?utf-8?q?F7wx8MY1nCDRYp2BKz14+ChdHqfvupHl7/C34eC4jm7vMM5+Z0QHoCrIm3LopVz9w?= =?utf-8?q?G0SuRFe80ey/Fnz1AVLUPNQoceWNcCVMvPviz+Rtd7jqUYOoDX3Y1wsCzJHb9cxX+?= =?utf-8?q?/LJUXlFB2csvf5bHWhCs7kXSISZLpHmabkWS8c2xSvfGIfmmr2EScgrtkwkStujfK?= =?utf-8?q?EuXFLu/++39eGGlpUfBm8Wd+5OACcdy4GHQqjspLFchkiViFqIKrFHMGsJi8GLuBk?= =?utf-8?q?Z74VE7XWBqo4Ddp5baM3T4K/XxJFSPYuGyJsVsEiO7ufFeu3vqeQWG51es1aZVoWn?= =?utf-8?q?c5+ANi+OhSFIZm5TBKOczeaVwCN2aijKzXEi20aJza4FMwKgULNu2rI4QiSfJBPI3?= =?utf-8?q?Ndg7qOBH9SA706E2hjpbhTegIIhxXNAbY2ztDaGpYiAW8aUeGzYTTPH4AapvG5+vA?= =?utf-8?q?Oi0mUeS3nFqn8osgrn8eebQdGySDq/NtRLT8l4XDwdZySD77aCskRWlkTBmqTB7j+?= =?utf-8?q?PVlkEMyhq3tZtBzH7OwT+kXnlfnphBhdH/SVSdL/7WIW42cQu/J2gOOrNd6lyLWWo?= =?utf-8?q?iu6uxFtl2sQyRMqEBzawBc0YIEqQNzwYsJGGz9m8hTecpsEiljP/yiw76mcHSN49w?= =?utf-8?q?cLEv6px0jwPVLLea1YlUXURDSaHqV1H5gnoVHlttT2XLxu3IAukslh59WPcUZAdDn?= =?utf-8?q?qT/bLsvZPOozftOEjEvqWn8e4FsAH9kCOJd2Ynb4FuFNsUaidlwUtWWGc4H/H3bpx?= =?utf-8?q?e4qWhnjS31Y5KerCAv/LZNssloLE3wEPUu4tGO8bzfCClu+Ho06KKDUGmPt/kBGap?= =?utf-8?q?w3l2J8kZn//Q3XYckTfBFpgN7ceqoLikxm9D7ImrEOJ431HUz7q5iqEBP+u0foEqE?= =?utf-8?q?FqMwWkEUDcflnPewAUTKsIyh9UL+fwc0WdV+NsTGy+s4OwyU9U9ByLZvEY+EhKdi/?= =?utf-8?q?KuiPAfIiQQA4FFQyahwZQNnhnxXQGAa3WyXnk5o4iThK+k9BqjVDHNYwEAF6jhJnh?= =?utf-8?q?bGNrSd4MAw4idJkPjS1BLhU6pe9THUfHQ=3D=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)(1800799024)(366016)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?mzRocLNE2NK8dH5Wy+GJqyqSL7Uq?= =?utf-8?q?7n7ECHFyGTyd2OBxvNvPcDx7rfhSCZPcIri2dPo9Ku5n2Yon8O4a+oVabQHxgkl4H?= =?utf-8?q?UFTPSlZz4UHXTSkU6tokiQKffXR5YHHiuN2e1WfT6c90oFwoIvpqzzYyNG0RdnZ1o?= =?utf-8?q?43AhsJEepfVEOJ9gxyTVKEw/oszHlhMpUvhSPmFusvLEpH6fj53YzBFTv2yAbjge5?= =?utf-8?q?xgFxvlauTBjj6f9/iPCjDmBacIBuLNmyH7GsXEAjgZJVOjQXh+ceEUMl60AW9k96E?= =?utf-8?q?sNnHm0KQb5YProueQx98SG8b90WFaaMLOzr2uQx4rA+f0IcK8YYjFboDQPgJg7dvz?= =?utf-8?q?1I0vBL6VT4H3wVOJR2sHkP2cW9P7r9EgBAUs1ezms9AknBxfIU/6hzv4ePFYXQEPs?= =?utf-8?q?N1gXA4M9J+J/TimD4fnqtBZgvxXlRU3lXjholWeM1hpC0jMePbOOZ0ANIadOnMIiO?= =?utf-8?q?RqACD6a0qKM2AKcrXuvPD6sI6SEt6LnsSZ4E8RhmTqk3na0O1nCvZAHlVLfSfhCYI?= =?utf-8?q?tbFPYGv5OZXKbBY0VuAgR7VaDymEkvxeV/zpjlgs/5cEFpcF0s0KHFfn9KcQy8a7W?= =?utf-8?q?2hNMbiMtULi131xdZP6FBsQ73BjG7XKqCx7/H5bAGh5Opiggsh+14uPsOGiTAJqTN?= =?utf-8?q?8LZw7bAcXpP0oUk1VOE0Lqm9WNlJMwQPLnMsRRxWFAS0LBZOZPD8QC/Xe9LUCzpyM?= =?utf-8?q?4gKcu1njkpTlnDymBZcfhDYPJ54XNET77fUunwPnnDoAlPruzQ0wO9AubZV6b2W0C?= =?utf-8?q?dGIc++FsC3dsEo89WKoOf1NSiiLbvS6v8+ttjJmRxbKTczZMzjYwzl3GaxdRYjOii?= =?utf-8?q?JphSkFqIhoLFCkJ+oa08pEZ52h4dbd/qvANscjD1NjcR1WOxxPdP1e4i/mDL8Xqq5?= =?utf-8?q?3st9b+dHDRrk3Zu1uFgFotPOLZ7OujKgMIKX7IshGwVXBB17NgA1vXjEAYB18cx+Z?= =?utf-8?q?eEPZjAUTU2yckOY+qWYW5y0ygE47MZn0bDHsAgrC3f+zVtRpeLnw/R42+AZ7JocpE?= =?utf-8?q?WjSSi//ENmr23+rqG0YFcP+jieL69kaxP9RyAr8E6zTUyLvWIexegTUrfvjKsYAW2?= =?utf-8?q?tmqHi3ANnTiyxIbDLNKotzXcza99bVWrUdqhTscHSJH7o8K/Qq0JJ/xJaQBpg+KkB?= =?utf-8?q?D/tJrwpFyutOohoy473ONMGS5ZUti2LtWzsjmr8t1v1ZXudCp36Dhc/iAFtAIGl+X?= =?utf-8?q?GPjhd7RrB0i0c8Z5XoE5MRzhwy4++nW0LnUTU4pmZiW2OpX3KwukRhdhcU0l7lCcc?= =?utf-8?q?ityq0eeEqEBWl+SDOW3SC/mUuAS+lMTrc+s7FCin6v1q7M3IsaiRbNX4NPBY3ROml?= =?utf-8?q?Zs6YaxdUKodDPZ4V1452UpR8tr68EARN4olRV2LOmidGNEle9q5iL5LBA+yUDYdab?= =?utf-8?q?M4Ex8khBAFJ9tTC580xzXbwfWlMd47zfXpAokyu9mXDnsYASgTQp0fyuD3TMvKrfg?= =?utf-8?q?VXL9J/lI3MMCzxGqe9L5iB/Rb0EZ1l5oS3ngSalpYaaziC/A655DHCBO0hjnictxP?= =?utf-8?q?Oz68R/sc6+8N?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8a294f6-7ee1-4bda-9168-08dd3fe859fd X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2025 22:08:53.2414 (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: XsjqgVKJv0GyZ0LvLHVLez+rK2RoAaoddkPPLem/F5evG5VMU1P4DEF3xkLJ/U/wiJDcbiIyBmRnSFzkIlOJ3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8555 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250128_140856_995353_F4BE84C7 X-CRM114-Status: GOOD ( 13.53 ) 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 Most systems' PCIe outbound map windows have non-zero physical addresses, but the possibility of encountering zero increased with commit 700cafbb642b ("PCI: dwc: ep: Add bus_addr_base for outbound window"). 'ep->outbound_addr[n]', representing 'parent_bus_address', might be 0 on some hardware, which trims high address bits through bus fabric before sending to the PCIe controller. Replace the iteration logic with 'for_each_set_bit()' to ensure only allocated map windows are iterated when determining the ATU index from a given address. Signed-off-by: Frank Li --- change from v8 to v9 - new patch --- drivers/pci/controller/dwc/pcie-designware-ep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index d0d6c4e8df80c..c1767450541a4 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -284,7 +284,7 @@ static int dw_pcie_find_index(struct dw_pcie_ep *ep, phys_addr_t addr, u32 index; struct dw_pcie *pci = to_dw_pcie_from_ep(ep); - for (index = 0; index < pci->num_ob_windows; index++) { + for_each_set_bit(index, ep->ob_window_map, pci->num_ob_windows) { if (ep->outbound_addr[index] != parent_bus_addr) continue; *atu_index = index; From patchwork Tue Jan 28 22:07:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13953247 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 062D8C0218A for ; Tue, 28 Jan 2025 22:20: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=wJxChZP0aR0iCOpx4zJhPrHwj+xKeWc1Pssf1AAz6bQ=; b=uf+RixQvSbrvLv7hFifFhkpKRF qQZO8f/Gg63UPOYfCKQ+/OdmXHpVGc4Tr5r/0FczD9gwQueqnyEkAIq6s/WPNq9B4G6DiAQOw2a35 J2DCeIj2GNXPmlaPm88LyyfVfVlrY8nSN7XfILwqAjbMKvYiul80wZDkRxFnsM95/7kROMgpV96+E 0LAPpuDjDvTiy7vIYo+ZX4QaqsekVjCQ9OqR2rPYsVtwP+1BwqaBnFvwqzqb5Zmtf0wa3Z3EYSuNb DuuGXeth25dUTTibURHpyqY58jS4Vh3elEOqNGW+jHNwyHzh9FWghP4pzyawEdlJztRPOqLTIVJB9 2M/J+GVw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tctwo-00000005uyb-3CJ3; Tue, 28 Jan 2025 22:20:42 +0000 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tctlU-00000005tgd-0Jle for linux-arm-kernel@lists.infradead.org; Tue, 28 Jan 2025 22:09:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aMpqn7BkZcTE21npsfJVTqSfsmr+iohkzsgxiF7Z2FVCHzvplczElqEiAOYTsO+3Y91TwcDtVsPG1fCqgxQvACc0TL8Ld2IJ/4r/E+2VjrTlxmOhe+ZQt1x49ItNWpqjHENqWbTSu+un250UEraAdy+2QhBIViio6hyYL73mMg52Bn6jzxwkPDWQWLVeJRxkfKGhCZjkT4OpUJssocy6eDptAifJCetFBV4OeBzEisgnTpOBlkeYi6uK7Fh3MScj9Pb/JvgXePY2v9qnFgs6HmuFQzT+Xfj8HbvzE+7i8c2JkAF3a1n8mSTJDskft3aZiwWKaa44vwTChvyguhYG1Q== 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=wJxChZP0aR0iCOpx4zJhPrHwj+xKeWc1Pssf1AAz6bQ=; b=AQ13e9UEqHhfdm2wHNiWle+wL1YlnnUV4X5xgaVugPMchGnunnOX1zWJ2PigRomgwSPNPD9ygghAqhsuUXAkw7coDsrRbLxDBmIfavCJfDDmG9IIh/JuTqzslFR7FVskuwGf40SAdzgVGgTJ3E5QLJ6m8c83JnnUQ6vg9UZdY6SIe+koN2jk0ItWecMpDtkBXc2lGgKyAY7Mx80udn4giL0pvSRjbAPB+I8mEFLl8BCl+jlkNNRpWm+FypxKj/FYcxc4jspB5jvU/vVxrydwBl0xP/A1FlIaYuww8I2RUvylbfkZnLXR1M943SJNAWvDY5KFgfNliWmrAy4recb1oQ== 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=wJxChZP0aR0iCOpx4zJhPrHwj+xKeWc1Pssf1AAz6bQ=; b=AxiskoeqDB97aktKh6nD3CJ4FlxjCwoc6VvgzSPnwKIsQbydcWE9z+XJA44tzk1BFUyHiUuzLSKbKnFMKm1Yg+otaG+evIJiMdIEKQuUSnB7T9H6O4ysAOci5ciDtUdg9hqp4NRT82pldMay3HSmCB1T6JtZBdZ6QUHTVQimkuxV/LcU+mrNwgpKVvvcmnJ/QyPsoHM9ugd7qzDkAq6r2CEeZLbwMrAhOp0JL/jTjw6uKdTSvsKRW0rZ/UGB6sxUS6tBjhBJ6AXftQfgN2OTJgrxW+KAga/+Ev5knn0wGTQU2iIJMv8a22D2ZEb3zBvgNbxk1Ou5xK82TOR0c1crGQ== 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 AM9PR04MB8555.eurprd04.prod.outlook.com (2603:10a6:20b:436::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Tue, 28 Jan 2025 22:08:58 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%5]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 22:08:58 +0000 From: Frank Li Date: Tue, 28 Jan 2025 17:07:40 -0500 Subject: [PATCH v9 7/7] PCI: imx6: Remove cpu_addr_fixup() Message-Id: <20250128-pci_fixup_addr-v9-7-3c4bb506f665@nxp.com> References: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> In-Reply-To: <20250128-pci_fixup_addr-v9-0-3c4bb506f665@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Niklas Cassel , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1738102099; l=2187; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=82i+ZNN//yWfCS+EdpjUgo+KbP9Mi5MxOEllPA4oVrY=; b=jKJZ1FU69RghE7E2Y6Mg+P7Z+iK7AD42u2G9MBdt+1uL9MlogqwTnSfIaN0OhtJtZ+XLNgYdk eU1OWZGSxQ8B69FI0yYwhxT+y4v0+rvQjnMqSY3Xcg3mibWPpph1lcL X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0130.namprd03.prod.outlook.com (2603:10b6:a03:33c::15) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AM9PR04MB8555:EE_ X-MS-Office365-Filtering-Correlation-Id: de8aa5f3-d534-488f-0cf2-08dd3fe85cd6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?oZIrtPNjG+h8Sas1TK9TdQvE/0TY2bm?= =?utf-8?q?7SPSwkzIvhtkPcZ4eqkVsy/gyC0gm1vrfTo9PpsAxe6dt4jKOHHNgpukdp7RJ9K3X?= =?utf-8?q?bnExjitIiwJKy3UfAPIZzM3LfMufhJ92LAF8REDM91JOukPi2N4JQDeH4kLNs3I+1?= =?utf-8?q?wU2nmYBw769wbIiyUX7SSk0uL1TJT5W4o8vnsdO6m0Sxt0Zq7zWsWThnT8E0DrTos?= =?utf-8?q?qqS9dAVyu7DGBjgR1wfyazsG9pjlsWS4NHKaVEFGLPoACZOcWrWAmXjdtu4rjMsEF?= =?utf-8?q?gURRfOqdgaqz0SkFtDrNL88Vj2ou0h1encjbSJBrgy4CUPAtutMz++q3ljuLDmSea?= =?utf-8?q?i7Dr3YUH7DXgJ9i4Cz6Et0QMbbLINQERhfwYg2ykrEOOQXtHeGH1wN1l3if2eQws4?= =?utf-8?q?ysWeksdg+wAjh/32WkFfOYnk5jIqbanwSjbqbOoO33ZJQiG5RrrEy8LkUJVjXx/Xv?= =?utf-8?q?qpe/s2GBV+LinVB6kwZAa0HCRwK/oh/a20En4ipSKgFU9ttdVtz1YZBMFGgleD/W6?= =?utf-8?q?cKjFSoIdH9I0YYd4dE+f7JkeE1VHuXy7RvaXLjlZV9GMyTBg6aTNyQoBotq0f3QBd?= =?utf-8?q?x0fY9+1+wql8ZcwqFIj6tncTEzpNReVcyvNZNRE6veswKrjljTfbcctIWtQALL+//?= =?utf-8?q?7508mo9mCPM6r8LqQPwKqdDZpqslH4PsIeCFb2N5jyMXCK12m/SA2DtVrhQtw2R2j?= =?utf-8?q?lRRAtMTNqoKme5qgObkhzrCDYRDFoastx3ExKJ73aOvNoeLtG77sHEL82rjEu8fEW?= =?utf-8?q?vcCV7aXBXx7PrYBS6O2zunBOfLfEBrDsRC28KgZjS0kPhT4Jr2SiQsWnr3EhsF3p0?= =?utf-8?q?YKIu0ik/23mCPyPZt77aUBQ6o43Jg1PQ8n64ez9e7RRyJ+XqUygqnGsOiKxuWwZ7r?= =?utf-8?q?pI7HjowVmyibRYLJtncV21fCnpVYk9nQYaHxoRYnJjJ7MYYf2cTehSkouHh23D5rd?= =?utf-8?q?rLoGzBEd/w04jM8nos7wOK8mITpqMEwdebUmdVBeQeoeK5a9yxPiwtJoFtm1v4tys?= =?utf-8?q?78Rwbstg0LsOQwDKeLd1kmRu+Fefa9XxUNSeMxefO7IOp/9Lta5b++xdRgksxvcs0?= =?utf-8?q?+M+yMnZnlRyH/89r/+I2czlxfmp1Xhd6vfQOoLPldCx1iGUEgXXOQELsvq+2Fo16E?= =?utf-8?q?oQ1OpJZ8bj5SkXodKkf+U7/aTRBezi3Sa0BVs+sDeiS9kRXWXwUM036Wxgxwtr071?= =?utf-8?q?UF3ftPX4SGSZOuTjK3jV6N6IIhW2tGjbeetueKR0XCsC5hksYzPciRgwdhpfhtzOH?= =?utf-8?q?TD5vtp6ROFyBsVoE3HvhB+J4IR/4PgloJgpATMZmdIGE7hi6oE+MEFG8kJXbIZpU9?= =?utf-8?q?ZcotIbdo7m0PwIeUsqLSCV/P/E3S08BX23jxBSvl8lLqwqucxZc4DNR3nDubsa1yr?= =?utf-8?q?Y8j6QESEybZ?= 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)(1800799024)(366016)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?S6XfjwPpJG9LrnGmFyPCmdDtaCPg?= =?utf-8?q?S8C8aJWYyLAJHX5/1wxEe8pvesST8lXPPGworBf6jH9gvyQwvn31FhvphyXrKIsbR?= =?utf-8?q?EprIvW0keN9NJuIbiWTIuD7C4nxEX6kX+WosbjjXBFzrxx9yzrkaqnjV45kvJYToE?= =?utf-8?q?KEFrGP8omv6E2eXcXNN2xYdPMzRkt5Cu4wgIBifTgwRLFxpz5dlElK4pWWIm4Poti?= =?utf-8?q?wq0rgUWZ6J5c0TOJiLHRe4kTzLOPMRTh8QBbv2trxq5tSCGRdLwoyDRtoPXiu9S7X?= =?utf-8?q?MxxLKjHhrIkgGAJECYlr8garqxGBNYHspdKVOHGw8ys2Z4ONLWa45qbHP8ydfW4F/?= =?utf-8?q?JobyGgGLwZVB4M/Txh7hQr0/IrAGIU4erSxDQfe/E6H49HH0WApAO+/iROJY7shVA?= =?utf-8?q?+p7XxIvtbdzEpiiZCCKXkABOPH/ArVnPT4vJAxCL/uNzN5okxvfFT/EeYCnzcSInw?= =?utf-8?q?eq7ygq+T4YOKJU8Gc/wqEsUiPRAMpGD29jPE0WVRexFXCl4Twb49jHih9pj7dK5WP?= =?utf-8?q?e6p9IlcqcoWsZG0bjW1g3BBJMUws6H9Ue+kGAPeSJiesGzSqIGOHELnw/UKQtjoC2?= =?utf-8?q?pV5R6GmeN+sLKlCc42nhekIl72yyL5nRgAj+FNKzeWTTLVSmc8kOXR23GaylErv6E?= =?utf-8?q?efnXvnwqpb2QSxVchUPhD5v7T+QiDEh2aYNuDifrm3Q2RHM83r1EjculFndE3psrF?= =?utf-8?q?XcKOHhKUQFB08w4mvURn0Uh4NzojNpMb8eBUPEVkAXIfJuj0qlKAAG5pt3NkNUZG3?= =?utf-8?q?jvCukfx8TllX5BVr8oIvC6RTlUco3TTYKzTmz7YUK4Q8kbeVNyItDnjRXf4JEtSol?= =?utf-8?q?Qo3JR/164rf4W6PO2gekL+csL6nsKEIYU9crGift7BgrFsmWIqeGYr3+ELvyrGYRi?= =?utf-8?q?m53kPHl0WSpL5uEeD+j7PK8AX9UzuzGGLavd6ccMEQ89A4QQ8li0lpHF+W6+Rw6Kp?= =?utf-8?q?CqCw9NO43y9dTlNzWyWuKPxpBHaj/TY4xJD1Yx4iTF8uhichMPqaFaKKV3vV3X+r0?= =?utf-8?q?GlgP4o5rs2KiHE1inKGYND5xgjuIx2KhEeRfR7l7bqYu0bm8ni0YihdslTPpPsON2?= =?utf-8?q?DIZIxwu6ui1JCZ8VQkMgg6OCwAEKV1yRgLdom+a8PbuVLxCSr6XmuEnFsUHMfmodM?= =?utf-8?q?MGgMJR3xafoUHFmjDo9t+WHiEcSo+khjQRBXJR393fMy8aKu8SiNWECg/5iz2fSRG?= =?utf-8?q?IOU/xM/M5QUvPRcDFqfmsubr2AwupzuavWEAPdQVKig/UhNPUyLzBHZfULGpii/qs?= =?utf-8?q?iS93GoR6n1Gi1wc/bDSX6rqRgG1jCY/bdQ63QXc/azD1C/xPSYG17IME2gm9N9fNo?= =?utf-8?q?qSoPUlTeLJHzX+OPKuoUaufw6l2H1WSXIBBCMyY4xrjpn2JeqCRBcM9Br/X8EyULQ?= =?utf-8?q?VFCmC/LantzFkslFaUe/lFacg/utxpngVHBX31rNjptRY/kBla5YgjJLQb4kVAMuv?= =?utf-8?q?oKsMyR51zZi1dRIwfIzW9jyDIBRVdhPBcskNr9QJxpp9dD4GDzbpaKc7qcBBnbXMC?= =?utf-8?q?MdtPo11xHEra?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: de8aa5f3-d534-488f-0cf2-08dd3fe85cd6 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2025 22:08:57.9884 (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: WNO/bMXQFSN5Uc364JWnaC2psUsS3lraKRk4gHXfqqjJ5xTi0g+GqLOQ5RBBRzOsCAC3QXzF+k1pgusLiGkw0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8555 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250128_140900_125084_1EF017BA X-CRM114-Status: GOOD ( 14.12 ) 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 Remove cpu_addr_fixup() because dwc common driver already handle address translate. Acked-by: Richard Zhu Reviewed-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- Change from v8 to v9 - rebase latest linux-next (close enough to v6.14-rc1) Change from v7 to v8 - add mani and richard's review/ack tag - use varible 'use_parent_dt_ranges' Change from v2 to v7 - none Change from v1 to v2 - set using_dtbus_info true --- drivers/pci/controller/dwc/pci-imx6.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 90ace941090f9..d1eb535df73e1 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -1217,22 +1217,6 @@ static void imx_pcie_host_exit(struct dw_pcie_rp *pp) regulator_disable(imx_pcie->vpcie); } -static u64 imx_pcie_cpu_addr_fixup(struct dw_pcie *pcie, u64 cpu_addr) -{ - struct imx_pcie *imx_pcie = to_imx_pcie(pcie); - struct dw_pcie_rp *pp = &pcie->pp; - struct resource_entry *entry; - - if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_CPU_ADDR_FIXUP)) - return cpu_addr; - - entry = resource_list_first_type(&pp->bridge->windows, IORESOURCE_MEM); - if (!entry) - return cpu_addr; - - return cpu_addr - entry->offset; -} - /* * In old DWC implementations, PCIE_ATU_INHIBIT_PAYLOAD in iATU Ctrl2 * register is reserved, so the generic DWC implementation of sending the @@ -1263,7 +1247,6 @@ static const struct dw_pcie_host_ops imx_pcie_host_dw_pme_ops = { static const struct dw_pcie_ops dw_pcie_ops = { .start_link = imx_pcie_start_link, .stop_link = imx_pcie_stop_link, - .cpu_addr_fixup = imx_pcie_cpu_addr_fixup, }; static void imx_pcie_ep_init(struct dw_pcie_ep *ep) @@ -1645,6 +1628,7 @@ static int imx_pcie_probe(struct platform_device *pdev) if (ret) return ret; + pci->use_parent_dt_ranges = true; if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE) { ret = imx_add_pcie_ep(imx_pcie, pdev); if (ret < 0)