From patchwork Mon Mar 10 20:16: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: 14010648 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 CE09BC282DE for ; Mon, 10 Mar 2025 20:35: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=mnGD3WiJcIUHK/QQYPPVXVa3JDkd62MKKkaM6nl/XQ8=; b=Ov02vNjMvBVMAwY5wxuPFkzzcI SwZa/IXva/r426MzYa/qdsd6Wb363jI71EY1Rwg/xdDYHwwqVHooCJVp40aWuWGvLGZkwvthY8bmy ucigQoD1XatrMUfSzK+CPkfoYLidnrbVu2RSsdca421wDRQO+QoWNu85cBL+nsuZ1qQghqguW6cmt lkeBMrbJo/nIhEoZ6H6nV03KYQ+Ws0y6sC+tJ7IiMh9lvyyUiyXvdI+ruGVQSpr/hkOV7/lR3VYl7 6cAIPFFfwUNjrxVXfRBD/AfhW3OHpnBtCIr5kZcWrKojf6BkYodHX2RFo6cjJ4buPXwB6mGwDWAfW XDs2C4Og==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1trjq4-00000003tAl-16Fx; Mon, 10 Mar 2025 20:35:04 +0000 Received: from mail-northeuropeazlp170110001.outbound.protection.outlook.com ([2a01:111:f403:c200::1] helo=DB3PR0202CU003.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1trjZU-00000003qc5-2dex for linux-arm-kernel@lists.infradead.org; Mon, 10 Mar 2025 20:17:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NqPm9Js3rrTz6FvJdV4woLeGYO8BeLIUqmy/FSUYF3NptmtDijdKYCYLuekjQfFfEleNnH0koUbstNniZhErOszsHF0QQ5YxJKTgFcaBvE3AtuAJTE+8hErUv2Ko3XZNA4f/3GB58jEOpaPZ7RtQgui8XeHpA8gM9W9vRcPW6862bm5Ax32vQ6nt/5w+atzqoAewdfa22zgzrNBcxoAC1fP+KOdm1R90F2n1qc/wTr2+1U0l8ua15Kdixwbau3wmjgyJhmhf4E6B5t4jQua/mrLSWsFuelY6MmWWKAiT54HhN12GAppAcvpYCLfvOv4i0WICO98DWSVahw9AA8xvSw== 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=mnGD3WiJcIUHK/QQYPPVXVa3JDkd62MKKkaM6nl/XQ8=; b=cIUk1oPyWhmeHeNdH09arqUdt4ibJxNLJEKIdwLP45gdC9mO+3Xge+1TlumilDkXG0CPtgeEu6pLcJFvtn/OakZDQ5HnG7gOdRNseHVjVM6XAjP240kPMBEjZsUVdadwzoFrB3aUQifT0UyZsaGbU4UXWG7m0jwGVCc9/6p8vKJcjamhG1biRbXAdR2rMOZoJa3QXgLcLiHv+I4eIM56wtp++y+zergDdGcLTVgVNU+viW3bW5ZcwSbwDneYabaoJbATkzOFBM75VgqoGFC+ZJT5SwLzTu03PeGKQqR5loIV+2kYv6GbMVp5UfLtsN78H0liJakliHKpx9a7pPVX8Q== 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=mnGD3WiJcIUHK/QQYPPVXVa3JDkd62MKKkaM6nl/XQ8=; b=CG8bi4YFGvRjmxZ9UrzCMz+We9Ca1Xbavw3Js+m3KuLt+XNP7kFiUdai7clh533yM+ujk6BAtYGlOs3ovskKFfX0IHEWpleQocJfei8H5yGT+l3rN4IUSOW8PSMgvy7v3n15KybEsI1+3BOTjGsVcrMnjpeXXML4h1wHL7V17uCBgMf88aDRAWA5ezkeSCovmhcLYPCt9Glkttd+Yb4FLesM6mEbTiUCSjteK5v8iUTw9Yv4121jpCavkx2BOKyyGCT46fLONFB65fgTzlV9eSZAB/Hudi0ueE0YfvBu8BIzdnkDeJnseaid8RB9dyxSTFK57zKsBpqYux/6dKjMsg== 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 AS8PR04MB8261.eurprd04.prod.outlook.com (2603:10a6:20b:3b1::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 20:17: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%3]) with mapi id 15.20.8511.025; Mon, 10 Mar 2025 20:17:53 +0000 From: Frank Li Date: Mon, 10 Mar 2025 16:16:45 -0400 Subject: [PATCH v10 07/10] PCI: dwc: Use parent_bus_offset Message-Id: <20250310-pci_fixup_addr-v10-7-409dafc950d1@nxp.com> References: <20250310-pci_fixup_addr-v10-0-409dafc950d1@nxp.com> In-Reply-To: <20250310-pci_fixup_addr-v10-0-409dafc950d1@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=1741637834; l=4829; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=QFCJ0UFvmjJ5pvzmkxILKJdn2lN/6NHTku1LIcUM4ww=; b=85q7rOAtro5MMcuFEnC6VCIAYraC/oZmW4uWJ5JmTudzJ2c3MLKTs6WbuASqMg7arX1sf1Xdh tIXlBnZ/eouC/tqBbJotmmX1A7RzGVyH5fjch4/cQr1cZmcIJjgG3Rs X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: BYAPR08CA0058.namprd08.prod.outlook.com (2603:10b6:a03:117::35) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AS8PR04MB8261:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d8e54cf-91e9-4fb6-6a66-08dd6010a395 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|7416014|366016|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?kQs2Y8BBmlC62sm2YduaDqELFqcCfP0?= =?utf-8?q?a7d9jlf1LmTh71Rk4aiXxmM3Nm2jX6zyjgRCi6OcCPMWaZ3FP//jsg3iOe9l0RpG8?= =?utf-8?q?PhT3s7RVnaTrxsJvhMU76bIPf6lS7y5VJuIz+eS1pwEoDME1EmxR5DUewDqrMLl5Z?= =?utf-8?q?DK+pfpT/LW9sirs5ymaQy/lRFCtGgmDi2c5tus3t1TtxrW3lxsAWy2rTAM0mfOm0m?= =?utf-8?q?TDr7Uh/OVrYjUpUpTsnL+SJiGcpXQyKVV0hkHl+m0GCGn3xSFqe9AbLSD2tnfblQp?= =?utf-8?q?UyDPNPRZERZa55y3zTq0i+LIj+LjW1x/SB7JqVDzuJS88pyKVLMqVmdwqmGFbVZZ1?= =?utf-8?q?/caGFVHIDfhvrcMNNLowjQpTJ94Ei5AOV7s757fbudQNCEvNkBZeHIieGGg1eqSb+?= =?utf-8?q?Ta8WWuEizzj4H9yFq7m3cyuKI5/7/Tx005vydPYbmAt9KBvUS1PmpVYRoSm/wbJ6y?= =?utf-8?q?a/bFj5Muyzt4bCt7zePCd/R9fhKYRutiq5fLPPQq7A08Rr+1JfDU94hFcZfPabHt7?= =?utf-8?q?b+U1J4+QUThs8jku2SraFO3ZvQaUpHslMuO4kEIjpTMK3s/LW7TnAefCXwHjhEkPe?= =?utf-8?q?/PQiEHAN3wbRo5L0KFDcIZEiWdxRzhS6gJbmE6FqshiaA0NcD87rBmPBj0kUtvSyH?= =?utf-8?q?xFbxkiOQyFpkGquMohJ8nNSIqJXGmTY6/tScFZa1lslqCsbrquMjmW2utzZh+ylx3?= =?utf-8?q?AQTvsDMFir4hiEYkQe67lOX/3a6NjRmXmuK1yJ+xEegdcdS3k7zuo4d1HtIif6p6v?= =?utf-8?q?rb47B6YRuAL2oT9tgyBbYECZ5bwaj4FoLY88puUoANOglSTgfJ9/yRCvFroRmAHh7?= =?utf-8?q?aMUZC0EiMpmUznVW18YoNqA7UZmxnSrY/v9q2PDAibijaevRxHIkr17Xy8GC3H3bI?= =?utf-8?q?ns+l8+I22Ua1MQfkhPqI/GrUYDYPs0vt5cTa+KN5mSmSnTjGZllAwmSfHkBH6SuuK?= =?utf-8?q?OlpGH/7nEIKgsyUhck1MZQ/UDVLz/mhpDeRfwGV16WEweW65LWUVHW7hhccCW9J7/?= =?utf-8?q?s8pPIulMMXAqXn9bgNMVr3WAwE0I+ls29Nojfy+dIfu96GcN1Q0HHZQHKAzl2AzUT?= =?utf-8?q?ali4PQ7fH3VTjnIdGUd3ivBMSzz9zQl8f3uar9bUbQp9imH3Pym3UlIaFgY8hIxmw?= =?utf-8?q?xyRzZteLgqYG7cj5WvUVRG6Hh9Ahf1QNEpDu3cRcY7xU6MrKiBxlqMz0mKYeD6hjw?= =?utf-8?q?KWZv6scN2nai0h1xdsFOgl6/6bN8/rD8WSGztIPSJgv5YBHpEOwg8Y0s+LegesjEO?= =?utf-8?q?4knwKIeJiQlvGOb8ar/WX1CrRq9+laQl4jSdpcxaa3kVtbGEsV519wliNTqhjJmIg?= =?utf-8?q?tdJIssQ2nI6z1jxk+OEwDlr+Hb/w9L+NeD4+wce0Yur/RR1ra3xG9EghukBxjV0xn?= =?utf-8?q?m4gSqds2OoQySk5bOnz/3OQCGX1xTrJOw=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)(376014)(52116014)(7416014)(366016)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?+3FkdZquqCA1YTkW9+lRlGPAnMHN?= =?utf-8?q?LTLi/IzRoTr7rZyFhT94zmddhPiilyev8tfxOAMAD1soDsU4UYr7iu6MESK5VH2Nn?= =?utf-8?q?rpntYOLsUfP3EUhdSF8B9LskJ5ChcHmrRTdp7fQV7To6gSOR7163SLtbaBQyHkLqX?= =?utf-8?q?Fl7b+e0oobGkwJhNii/H4VtYSLDvTbg1pjWNE53qUdYa+6dU/ZOPetcbi6Mxb3xv4?= =?utf-8?q?51gSj8VoKxMKO8XD3DkMTfzxcS/lxOsyJp7VBTUChkLb+m8D6YTKfEhHgR9M22Rmd?= =?utf-8?q?sWUlJsd0K1KW+JOiYJDxFew+jPVKNFNC+EPSkW0Q6Aieef3MBQ1om+ddEeh07MxA+?= =?utf-8?q?SXSnAm47mnki6iR4BcZJ/henPo5hGatyMyEcjClsnWk+EXxniM0K7bL+HKb7kfuJY?= =?utf-8?q?6SvM7wy/dZ8AR3MNRiMrwgaIcPCQUCIXiCj9GH0lOSw/u6BCEjjFqPqtMBZHvLjp/?= =?utf-8?q?4s+A6mtf67b03h14dfug2l+LmJYp1hJz8fTWrBukibXjc7olY3KIuyOWqxh3S7f8n?= =?utf-8?q?+rseKUad+FPCjUpGSu91w2hqVBqZcDeFIpSXuNJ+We+IPEPEqt3gIRCeYIjUFBD/R?= =?utf-8?q?kPhZv7MpK4Ew+aXOg6lfmrifqGWTh4nxZHuvOozP9K20Suh+pKCqpk+OAlk5SlAzC?= =?utf-8?q?Jlsx82Waz2ehFuyD+wTUBfVbbYp0H3GeeSJfpmSy7ubY4t4eSxZg/7LdM9z9mz8/d?= =?utf-8?q?cafCZF1kS8y+tg81Wa0d4gJbEdUqRZrjF21cpVbPZrNL7Vsio56bJ2qWZSuyq9RMb?= =?utf-8?q?PMG8Q7q7/5e/A52vWeo/34hcH1Cd85pxsL9SzMlpFew9dwt1wdRrab80zujvpyBah?= =?utf-8?q?p6b76c6KKBdSugax1PcWo6I4NBJJLIN5TLedJ5OCh3SOPlF4sXu9NA7xO5ogOCRbL?= =?utf-8?q?LAfF/o8gjbbGoKNnqdzbTQ0Igc3AUaBdNlAA2fngtCw411SAk3rXUXkIYSfI7Ptif?= =?utf-8?q?KrN32rluWX562hGiAM4aChO2VXdLVZmBog0vZ74LXwzKtcxUV/QyCTDtpPte2z/Kk?= =?utf-8?q?drhD4C63DSdse6Cd0to907K09hOcbHb3cgXag+VjWl061CgWg+L5EFo8c8bvgqyE0?= =?utf-8?q?/i43ryMd5o6fgQkPbvar6Wi4ARSukbY1/TFP+6GwdNqeAuCz1lueVpoVScn2tq08u?= =?utf-8?q?3rrFLjLDzhae0mjEYtfTVGSvkO0C7/eOafYPl89a25q496W0a7gzC0+O1EEZT55OX?= =?utf-8?q?PD5gYSX6kQY9M1QaLZ1Mly/MBwjKhuKKq28wRlHB0bgaiM2ANxcz7fCZJs7dH0NYI?= =?utf-8?q?FSrmDhOZ0PUDNQBAx4jloA1OlSy7+Q6mNHKywti0OaicPfKjRZkx0UjQ2FdxEV9Fy?= =?utf-8?q?g7U/Bs8K/lVtbwfUgeu5nvqGEsTx1OdvAxnn+0wCUNHv2KA927BWb1uFOoQgUNb0p?= =?utf-8?q?2q3pSBMB2gNbRD1nG9xHiSPHaaBw9phSHnOViKXnFgqE6uaBMca7fm9xXk7vndfc+?= =?utf-8?q?hLBRScaOrckVqbwe8CzTOBQPzWnySxn0mvRPyepEP5KsR68TNyb0gDorD2Pq7UDAI?= =?utf-8?q?KOSRf/KCYlr0?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d8e54cf-91e9-4fb6-6a66-08dd6010a395 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 20:17:53.7811 (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: BOZlCmVGBKkN5kNt0GDwq7wcDzejW7o44Q93kKjE/ZzGk+iFprMhDXW5+itFjfnWok3fdHzFcCoSxdx/GIK87A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8261 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250310_131756_830135_B660B596 X-CRM114-Status: GOOD ( 15.71 ) 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 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 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 d69d76c150d92..62bc71ad20719 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 eaa6dd4c7edda..a7b7e15d7b0db 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 70b4d3369158a..7061a7ec08cb2 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) ||