From patchwork Thu Mar 13 15:38:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14015315 X-Patchwork-Delegate: kw@linux.com Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11012013.outbound.protection.outlook.com [52.101.66.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9735826A1B2; Thu, 13 Mar 2025 15:39:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741880373; cv=fail; b=e9s8a4LU0MN41I7kM+TuIo+Wt7s3xcK0A6k/BOzU3whKJY8B5CPAsGYOlzZXkeLi7wRse2PoQL5iPW9JuwLyKEedT6pONxrUuj6fRiqnNb1Dfokw9GDrURsOt7A/g69fFPbSwbnj1Z5Hjo/LFj3pJn0pf+A2foNzdA0WcQS3PBo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741880373; c=relaxed/simple; bh=WktRzlW4auLU1QYWmCfEe7UHuQCDd9plPz0/brqDyKk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=jRIUGGTVix31UHUXXzE8PuCLTS1eIpxdc7itwQDfqQ7HJ9trfay0u7cH3wFK1kkA4jgKZTgDuZSAYgBRh175vxiV3cdpKNOKSn/0E1HfOB3z3TxncjRDVW565uMezpgfcVABHhhx+UcESWbLoed/ijAcD4/pHEB3pe/YEBF9bJE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=gfTDTDoa; arc=fail smtp.client-ip=52.101.66.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="gfTDTDoa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VFwVG/45tZKyQse9xgmLGXz01UPdYTPi2VDTwU19dnAXuInCX4bPcqhxu7LoHB9QnAMiGWjoDzrfVGhDgX4VRqDAtAtbtcnY+OmNWTGlajaW2cDGPo1eoNzA3tBDfJ9PR0og/bU04l4r+znx78+sCVqZhXO6tDcM3KbHvXBsIq6sra05K/9KIvnKuZBpTX0U3Q2GA3r0XcCHOdlQ+rw0nqivkLtGkCtINalmN8rzYFxw4ksnWpaSt1vpBfZAljME9aA0+4jeVwYwJtGmCssKK9nhEX/KmrPOdc4WQ66GhjFKocIh9GAkYa5tmSp/GiOu8N8H7rJhN6e/ZvF+vKmyow== 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=m262o4h6ra51Rb6Iz/mlzUtPdhX6n9We7m777bDr2MA=; b=XeSlPuyfl7ZVDSqBaepWkNA7Ha349QKaXqWOlXEZO4+gdzwj/blyU1+lPUj/cZtvHKXTLvQ6XA+cV5QdZaLlvnOyHDxLkl2t5QQWkRyPyZE7XkG9Q7279HQmi5WeDPD3pNrvzBXSSjs1Oa4tXHnUT6zLWUxClEIFTpMboOrF8jEfAlvCRYKRtJ5tuS9N3bBJZ6cpuF+k+S+W7D+1Lxa+HoJm16mV5GKa/3qbzoBod5bwEvCdk7/a/Pl95xhpgElra4ThOqRdEBjMUY5am6hSuK4JyaLRJBREJS/QNC7yh4m+ZAtYh251I4MH6/QZesmFwMcxEv71yXmMFoIhJvJH4w== 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=m262o4h6ra51Rb6Iz/mlzUtPdhX6n9We7m777bDr2MA=; b=gfTDTDoaipJeuMocF0wXLZmnywyL/XNaLAYf1FKyJlPsiWidfqhZuzkSd/6CJN+E64QyYj6wxvGRDQ8IrpoozClLqqWBxXu+Te9BxAqumst9HLu4l/7/w5BHtefwA/eOPZWb0lYXTl30zLuGqC1Axjekn3o6Weh6EpmP5wMAta89+X+avHcKE+uZ9lu7aGjVSTIxuS6Ajh6fYs9FISSqSUil5P8mAp0bT55GnJ0iUuwZ8/ia5xbVa+qlbjHili0uqYA02VTXVropj4nQdYzbEittsDnh1pLJQ2Iq+OMj6DcC6Nffayt+WwJ6JrjbeUjSVbKtuHVbchM115B6eQwG7w== 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 DU4PR04MB10316.eurprd04.prod.outlook.com (2603:10a6:10:567::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.25; Thu, 13 Mar 2025 15:39: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%3]) with mapi id 15.20.8511.026; Thu, 13 Mar 2025 15:39:29 +0000 From: Frank Li Date: Thu, 13 Mar 2025 11:38:45 -0400 Subject: [PATCH v11 09/11] PCI: dwc: Use parent_bus_offset Message-Id: <20250313-pci_fixup_addr-v11-9-01d2313502ab@nxp.com> References: <20250313-pci_fixup_addr-v11-0-01d2313502ab@nxp.com> In-Reply-To: <20250313-pci_fixup_addr-v11-0-01d2313502ab@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=1741880335; l=4863; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=ijnbbqkrbm2zGBkdDkKnT9lKB0pwFgDMV6ng/ql8F3c=; b=SGvzDpP9fJQr/iK7ZCsthLVSBVTLUGdJMnpdbGMVwkGYQ8nnA6bBcwr1g4ABl303p9V/AMi4R 9SjFKUzCENaCn25C0YrHgX5IPey2P3AIPvenbhpzPtxxY5BCa11eidO X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SA9PR13CA0038.namprd13.prod.outlook.com (2603:10b6:806:22::13) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|DU4PR04MB10316:EE_ X-MS-Office365-Filtering-Correlation-Id: 546c8954-3c9b-41d8-e08d-08dd62453dd0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|366016|376014|7416014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?XnEDFX8ALNha91mpYIbmVSFy5oUBsX+?= =?utf-8?q?9nnCURbHwwZE5WyQoG8A7lbum+NeCszRsa9KMaH1chuMYMaUS5DKQMTs1fuEep4k0?= =?utf-8?q?HZ7W9aO9OZqUnIcLqTQjPhcb23vMZo0AzLrujgmBcU75NDIjbMsBMJ/Z9kXB6mZW3?= =?utf-8?q?zXtSgu8BZlWGcDhzN7VtMkzP/F+TGCDoaY8vnYX9dvj+e1QupOyvVVcHX1XsZ3KKD?= =?utf-8?q?2xXWBc+gav41zzyIEsm3efoq9C+CJC76zhd9/+HL2FUjGQeJVxDHnbwwc9XTXAYwn?= =?utf-8?q?YDW8E3zKXU5fD66I6NhV2hmYfbzSp189L0l6QYZeZKbGFTSjqIvocs8lB73Yklu/5?= =?utf-8?q?Dvj0W+ercQ6HL/XFb6ml71f6witek7eSYmAK7lFOlZS7xbKs2WAJldAl4tJDJSyIL?= =?utf-8?q?7NbkC588ruUjsaLHF0AEMdFtXMuEes0zP/sx0IJWgD9PDv4QuTBu6JC1gxIo+NST5?= =?utf-8?q?tlCjyzfWCkI7JpupcplvSpbNAeHLjG9WV0rCgSbFDIQrw6TB8KGcKqhKps5qi6wbI?= =?utf-8?q?jLPlF+vXpgyRALxWgeyVkbr19nLlXK8djkR/bJxDiWI8D/VSENUEZh5DtvCwXS1Qu?= =?utf-8?q?M7eN1M6bx8p5YrdkLrLAh7u9qK2fgwBAuCu4UFIbwQAPigQccwsyg2ijKWDq3lA2r?= =?utf-8?q?DzeR7VopLEE/mmMtRMk9AiLYkf8TM2+mdNeKBv6qcZd4OSbTiy35PkAhWlqbQQUz9?= =?utf-8?q?ztOpe+Jd6VxTA0D1zZ6mFeW4ALhLkh5cJz7pQS5FySxS0nM+JLjPVPdGu+WrV+3cf?= =?utf-8?q?cSofbnBk9mf9oI+0jCWOxU1nO1BSiySfU4OqOkvQmbTAmvhbmF3OBJoKPvs9tCIBX?= =?utf-8?q?8cATxSrLf+yn92KBueE3zmXAd6XF6oA5R3l37x1XmxBUpZekZ/lu2O1oxZGFBUgdI?= =?utf-8?q?PWjwBIWeIlvMl5Rs2i5LzNSh6kUA//BT/T94v5TfVvs1LgLUSWlkoj6/5W90gNybC?= =?utf-8?q?FPMgvfTgcgbz/jMynA+AKlY91AC4Eb+p9g7Wl3VFA1v361C3sBuwYStvD7ToEJLnO?= =?utf-8?q?eTcKXKbIZC0kifsDs7trug8yDHjYRMmCh127HGe00vtrVc81nf9MjZDRBb3JGM1f3?= =?utf-8?q?o1IyTTQCp6C6lNCvPHUeHskqem/AlHUg8jOO+UITGYjAyDKjupO6OAQlgoHzcXeoA?= =?utf-8?q?96hQFbgvrYoqZWMmRg2BVeGC4h/8Ap6KFo7nKXRSplXLAT6sL74jIFDe2ApP2DMAw?= =?utf-8?q?RWJD1EtLbWjGYwMTPPb98tMqJXl2eqmeMKdraKbSyYe6jskn/gB2M6HnxfWWqod4t?= =?utf-8?q?rsZTunWkYV1Agfje2FD24lNEtcndIhcJKQBmEKRd/X8oyUhyi85QUZ7VCrYqzr+7M?= =?utf-8?q?4uBwP8UGgRczAb5UXQBBsRVtZsECI+hY61D41gitburuk1Oet9wGMCd0zoLLLfJLp?= =?utf-8?q?Ia8HwPNlQGhhMs60X2X54YykNr9noAgvA=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)(52116014)(366016)(376014)(7416014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?EKbVWyIPd5NhMPPyf0tYQYAW8J9a?= =?utf-8?q?fIlpqeHu1vMfb2H7vKE5M6AvKU95qMDJMYg6GKUYB5Me8yq3Q5uJJ7RXKsBwUrg1c?= =?utf-8?q?lk3OR5+6BEgdXRyViJLAawfcSYSd8ansqbs71AfDinjmX8/KEKJ+kEOw0HZN8KlZY?= =?utf-8?q?vBOCcD9WPGs+dtKSnfLayMbdt1OYegUcafs1crBFb57JYfi9bvQzU6uLSDFyYvAm6?= =?utf-8?q?gmSMSlsgh1fBkRwBxbBg/Ko7FgLcm5PlGds+QuXac7XqXGf9d3AmzvTNyZzmFFfzt?= =?utf-8?q?izt+uxx+brQuMWG3pnG/9ng3R5qRavTWHInHrH/EwNPyYC210KzeLbH4yZDRgKCc6?= =?utf-8?q?bWnjhP5Uzcxlz9hdf6bWOZJ+ySms2RQw1XTbsMs6WudedbZUf3ixUVSrOsWRG0hjx?= =?utf-8?q?MmJNH7dGXQRO0rmINqxfi57w4IDO8iQHCtWhoNbBkdnvJzhxOGuFMoWcMFcl+MJb+?= =?utf-8?q?TBL4p+uDbEGV/CZUGBE9Fw8Kw6rVLZjgGLSPiK3nTrMLZD4+iGS2wacMboYzk+0qh?= =?utf-8?q?RqkmFQzkt+wpzd+UsA+W+0JwMlCCBtRs2vaBfJNLLV4j4CQr2dgOzhz7+Q2r9hvU1?= =?utf-8?q?hqeOO5WWmTZphYCe5vKwwpeYjVcDhvhv0j7sDLD6BJ/2fzbuxxX3XJ0RaCsGxKENf?= =?utf-8?q?NzwXddNCKC18q2HeN0aZygaH/ur70VqRrwF+P1aYFl5GPCb963bLN9b1M32S3Txps?= =?utf-8?q?v2yetBp4bsnCYVvCgrY/jjPPzaSlAdO1wITl+fxMQsZkRp7BmMpr2/eN7vDWUaSs9?= =?utf-8?q?2QmIAhHVpy12MFpnoF2OZdlYlM20n8RI9YH85fsdkBqIUR0Ke8w1hYpU37gzzT/LJ?= =?utf-8?q?ohzGLhF6IKJGffduH2CRFYnY7bwSbVw9bKvHD9AAbDjZz7n2O6IbqzxtQsknuFAhc?= =?utf-8?q?6Au7hG/9jC4JcdUNXho9i3DNZa/bRbKsq3X6TPEaCGaVVRnF6tg3YO1JGD58gq1Ts?= =?utf-8?q?mAFadx9RuZLxGckIqLdgmZmgeNXLeJgdJT/Bh4Lz+ekJiOsMtDK5zb8KVZMzGuDJH?= =?utf-8?q?MUt9v6PkSK+BzJi3/naGkdHkvAbbUFOJh+0h1maR1p5kTPAMbVve7RiT7vQLfAlPB?= =?utf-8?q?WTgqFRb6TagaOfuHgyMesRlzov9e8ZCZB4nM1Qp/jP9yS72OHbnnSW8/5cNn0QwAL?= =?utf-8?q?VEMEEqQ+EE/slMoPzfpTS+vmsFNQJp4JwIJ515UahAwqPzF1FS4lPwWiz/d6X3cSS?= =?utf-8?q?UKvJdsiSBmVBnp5Dm+HeXJE/eAP0QyT+J6QsPx6VoNHBzPfB9S6sk2n+JS0Uq+lP4?= =?utf-8?q?CzvSJfFD6zQBDQmZ3KkFq+tFl/nkL/zET/ybegAW88pMVh0Mrmu+oWu98byddn4nO?= =?utf-8?q?TUPTYsRqXmb5FpwqLsYKg0mDBgR6rKdFJqNgKFaIWm99gDf3osxpOzOKJaaiUOzi3?= =?utf-8?q?Z5qYtTQZNXIYz9zsgWJYvr0ORQOidDTk23FhAz5vYUyqg4iuMRV1Kfy4r4Kz88RoZ?= =?utf-8?q?PhUjbNm124pk6eRcwVCQRV08lqqaF3NOgkWjJwHJCJgvrE1cl4bBKhI3udBq3zWqC?= =?utf-8?q?A6vfcc40KwY2?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 546c8954-3c9b-41d8-e08d-08dd62453dd0 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2025 15:39:28.9370 (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: dehnrPJgq5DRDXgSAWtJf95OeGJ6w0HZU86Xe36wQFwc7dzI02vBdZV3W7JandyWITQl4OkyizFu/3pakFjogA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10316 From: Bjorn Helgaas We know the parent_bus_offset, either computed from a DT reg property (the offset is the CPU physical addr - the 'config'/'addr_space' address on the parent bus) or from a .cpu_addr_fixup() (which may have used a host bridge window offset). Apply that parent_bus_offset instead of calling .cpu_addr_fixup() again. This assumes that all intermediate addresses are at the same offset from the CPU physical addresses. Signed-off-by: Bjorn Helgaas Signed-off-by: Frank Li --- change from v10 to v11 - none change from v9 to v10 v9: https://lore.kernel.org/linux-pci/20250307233744.440476-5-helgaas@kernel.org/#R - pp -> pci - add ep side support --- drivers/pci/controller/dwc/pcie-designware-ep.c | 5 +++-- drivers/pci/controller/dwc/pcie-designware-host.c | 12 ++++++------ drivers/pci/controller/dwc/pcie-designware.c | 3 --- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index 4ecddab131b33..e333855633a77 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -314,7 +314,8 @@ static void dw_pcie_ep_unmap_addr(struct pci_epc *epc, u8 func_no, u8 vfunc_no, struct dw_pcie_ep *ep = epc_get_drvdata(epc); struct dw_pcie *pci = to_dw_pcie_from_ep(ep); - ret = dw_pcie_find_index(ep, addr, &atu_index); + ret = dw_pcie_find_index(ep, addr - pci->parent_bus_offset, + &atu_index); if (ret < 0) return; @@ -333,7 +334,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 - pci->parent_bus_offset; 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 482d8ff751526..3e7df3d2ac269 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -637,7 +637,7 @@ static void __iomem *dw_pcie_other_conf_map_bus(struct pci_bus *bus, type = PCIE_ATU_TYPE_CFG1; atu.type = type; - atu.parent_bus_addr = pp->cfg0_base; + atu.parent_bus_addr = pp->cfg0_base - pci->parent_bus_offset; atu.pci_addr = busdev; atu.size = pp->cfg0_size; @@ -662,7 +662,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.parent_bus_addr = pp->io_base; + atu.parent_bus_addr = pp->io_base - pci->parent_bus_offset; atu.pci_addr = pp->io_bus_addr; atu.size = pp->io_size; @@ -688,7 +688,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.parent_bus_addr = pp->io_base; + atu.parent_bus_addr = pp->io_base - pci->parent_bus_offset; atu.pci_addr = pp->io_bus_addr; atu.size = pp->io_size; @@ -757,7 +757,7 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) atu.index = i; atu.type = PCIE_ATU_TYPE_MEM; - atu.parent_bus_addr = entry->res->start; + atu.parent_bus_addr = entry->res->start - pci->parent_bus_offset; atu.pci_addr = entry->res->start - entry->offset; /* Adjust iATU size if MSG TLP region was allocated before */ @@ -779,7 +779,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.parent_bus_addr = pp->io_base; + atu.parent_bus_addr = pp->io_base - pci->parent_bus_offset; atu.pci_addr = pp->io_bus_addr; atu.size = pp->io_size; @@ -923,7 +923,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->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 f17a25fe55a5b..8b546131b97f6 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -475,9 +475,6 @@ int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, u32 retries, val; u64 limit_addr; - if (pci->ops && pci->ops->cpu_addr_fixup) - parent_bus_addr = pci->ops->cpu_addr_fixup(pci, parent_bus_addr); - limit_addr = parent_bus_addr + atu->size - 1; if ((limit_addr & ~pci->region_limit) != (parent_bus_addr & ~pci->region_limit) ||