From nobody Tue Sep 29 08:26:16 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010015.outbound.protection.outlook.com [52.101.69.15]) (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 3A6D23DAAC6; Mon, 10 Aug 2026 12:43:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786365811; cv=fail; b=QBIB5nxzhnMjaqAfBIB9TsPt5Y7n/0bfpGyiqmLqsgxNmC8yiMGCuxJzA1BZmVAoiYb0xztbTR+Hrd/ijFclx39k/0E2tZb9A3t5PePlBbd8jQFqN9pd20uHivx04m8lhgcBL93GkQYGsfo66FMG+KipAM3NVon+wq87BNdaFXw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786365811; c=relaxed/simple; bh=jbXKJNbXqTqm+ebq5snPRsXeBdyDnXm+2oIXlywbCbg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=qUh1ndO4FIBCxq/E2oAPHL0D6imYbPzvZUN3v6Xg9i2lK69MXtoSzjnjIbQvALuEN7vUyEGK3y8doVeyQcMliw7ZPiFkx5h2l2Txj+9kR/JffxUsOOiQtTrDgH4KocaHFruqRLO0/DjUzLV3w8lZj3oW1UdJSyjVB2V/z1zIJmI= 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=YHoQJfy5; arc=fail smtp.client-ip=52.101.69.15 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="YHoQJfy5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WEtJIQ7yae4QdzOFhBzpTzjbpES/zEGiWf9izm1sEpBj1SbMqu5FYRrF5SU1kUQfw1e5HB8lM+E0QbUm1JqAtfaNWj0ATy0hpNvFpKCic5ZzWqsqSTT4z1P+auCPcsAWKsqpSPuU6kKqN8hrF/p5pbPEJBs9Bq0PqrUkrqeyuNd4avZnjldR2gc/bH3iPAPTcOY9aP541OyqswPx724gliqlwYRZk9ekoYgobpiJ3YS8i0x9wqp8zIkpcjzQjoji3nF5BCupB4FZePkcymGHeGku+Awe6WzWDIrTxISbsnA24Lm9Uz/3F2AdCybgUs2nQS3v6uwOyyq0XsmP7yD+GA== 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=4KLYefPFNJ+gFax5WtPRbZORPEl4NRPDSKQKNix9jiA=; b=kqUc4nmkc19lXNc+BoPy8WZ4we4YJj8U/wnvR3DjhMV4EHsq4cAFV7cbpeppOCKfm2+WIPctdw/yYzwzq0xl/Ue/pMaHtMLAoLJLP5i2LbpCmPtFD45AVIbXp4d71B0BfSlqNF98K/FDggnXlVngKpYl75ljQ7S6octNcEohoTcpT9PKf64//NsKDVGeIWJGnCrZxZuqi7i5W/iCNCso9uLFW97oaHCuwryldp++1C9dW9RLUhYX4m5ibDXCpHPn0oU4DXsKdSXb4zm0bbs4lnZYx+4RMFpBEfIVlXFhN6XRPnMhO0wCgwEKbrWmxPuZKy89kc4isSXmnFzdwN8WrA== 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=4KLYefPFNJ+gFax5WtPRbZORPEl4NRPDSKQKNix9jiA=; b=YHoQJfy5DOVAKNRtxszrNSEhpEnRXY/deGZzmOYGtakidBOMX/TLTZM/WrMoZWqDo5+QJInT4Cu5xXJBwPAk4cpPsXNg/fwo62DoM5VZ19Hqxbv+OyaTd5iWgbT8srlhF3ZWkHxhANAQ8yTe+t+pxUFh0G6vifcF3CZcDtlKIgG9vdJBrP1dJP/904Wb8W7mn4041Y6Wp/ZgUlcZojktW4LVLBJAygCWQ488p5DqE3klVdXxkblNbSThmVm/HVZV5QXOcBQQ/pNjp0FbX1jGTOQeKZKeuWnn5eaH+icbRxwnafva5I7UGYpITQdPj5azNa+TB+EPv6O0mN0SfXW67Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by VI1PR04MB6861.eurprd04.prod.outlook.com (2603:10a6:803:13c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.25; Mon, 10 Aug 2026 12:43:27 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%4]) with mapi id 15.21.0292.024; Mon, 10 Aug 2026 12:43:27 +0000 From: Vladimir Oltean To: linux-pci@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-tegra@vger.kernel.org, Bjorn Helgaas , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Lorenzo Pieralisi , Manikandan K Pillai , Manivannan Sadhasivam , Rob Herring , Tom Joseph Subject: [PATCH v9 1/3] PCI: cadence: Preserve all error codes in cdns_plat_pcie_probe() Date: Mon, 10 Aug 2026 15:43:13 +0300 Message-Id: <20260810124315.433448-2-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260810124315.433448-1-vladimir.oltean@nxp.com> References: <20260810124315.433448-1-vladimir.oltean@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P191CA0021.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::6) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|VI1PR04MB6861:EE_ X-MS-Office365-Filtering-Correlation-Id: 026d44b2-4521-441d-7405-08def6dcf960 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|23010399003|366016|19092799006|6133799003|56012099006|10067099003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: AKHJnxq2kYDsCihXUZDF3u5R3OgJcbldVFvUUoJUD4e2W3pJRGZy8ZWyFJeCcmCN5HNRPi997wD/FdchUC6/rqQ5IMTFp1SUigjNi+2RldkDBy+nsq6RkCr+vsyNdKQn12+lXvr2nMD1wyttvEdR3iZy/7oB26kbJ2WtCmCjaGDzu0SCwtaMVNZ1ksDeArO2tJoW+QiF4NFwUTadJaO4mcy57MBOrsHr+XqlkZfvkDFQoanHa3UN1S7lvm7FyV6roO40ittIypTjMzu3CM8BgB27AOLhLfZ8BtUbV1ZRKrXZVgvd5HB7pT7qv4idkNHnUlWjAjjVAeSBQ8GXsqSpWVcT9QSExL/a+yMs+xEj/AP6Qo61RZMypgGUO97b+aKNQorW6s3UI2J18LurUFMaTme9kIcw/iTFdH03DmzakqS9X2zomQy6dGowWDOhoB/o+hB4dYY8b2k411MmzdC2BHtGegI+0bXb5CivHApbK5tzZprzrBSuKp7CvERpeZBSGFJC9u9Vlb8afeUQkkPpsuiU2EOdGcVCYdox8uVIUYjglkRgxhAG/2ZLbszfg5nCnxItM7VG5G8cbLqYcvIFfa3plI827IWeusMQFdbRiA0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(23010399003)(366016)(19092799006)(6133799003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b0ZleTRrY1hYMnFXZnBlMWd2cWNCS1BxRDdyWVVsd08wSTdzMnhGRkJsV29T?= =?utf-8?B?RmxlaHdPdGt4UmNFZ2ZpSVY1aUdmNW1mcC9GcTE4WnVkSDRreW9SbnpGM1Jw?= =?utf-8?B?Q1ZxWXppSno2MjhIVWZ0NzZZVHNjM2dieTFFbkx6T0NhaU5qRzdBRWNNaHFE?= =?utf-8?B?N3hCcjJvb05aMkdSVElLazFDNkhnc2xUNU5RODdKTG5OSkpEaEJIL1IxRmtU?= =?utf-8?B?OVJjdlRVRjZldlVoQk9xQUExYlgwdjc1RGRoK0dKV0toZHowQmptb1NoK0NP?= =?utf-8?B?UzhXU0l4elNvK1hwa04xcHlxMGRYTFFKNnVpQlVSZm5uQnJYS1JVTFIrY0lN?= =?utf-8?B?UUVMdzlqUzR2QjJCSmFyMmZWcEhEamt4RzhES3l3VzN2NVNKYXpESXNTVnMy?= =?utf-8?B?RE9lR2g4NG5vYys0UFlickxqeXdEWUVwaUtqa1QwRzFqandhR1VqVisvdmxY?= =?utf-8?B?RTZzOFFnTWpKODhnNzVLbVIxQlZjK2w0Rk1xMklvTjVWTUVOTzcyQW1Oak16?= =?utf-8?B?TnZZVVdPRllmcjlwVTd1UXVpdEEraXhUM1lFdE85cXRIaW9jNmsrNDlyQWpn?= =?utf-8?B?aUxCblhjWndMM2F4YUM4MTdvTU8yVERMZk45YWJadjJSOGRXeGpFTHp6bzV0?= =?utf-8?B?dFZ1eU12Z296Vmo2d3lwdXZUUndmalZRc3RnK0hmb0N0QjFHNy85Ky9aUVlv?= =?utf-8?B?SFd3QmYxanp1ZUpNWHAvS2xrUk9Qa2xqWGhmVXJBbXIwdDhKdzlwV2dnUTk2?= =?utf-8?B?VnpnMlhyRDNkQkpOOG1hLzNlcHN1ejZ4d0JzSndNMHptNkZGbHJBMUFxY0R1?= =?utf-8?B?eWxwT25SUDZyMzgrK2E3RExLc1ZLMnZRaU44MVFCSlRyUHI0emVuN0xTSDRG?= =?utf-8?B?QzNBY25IaGJ2ZVFsU3FNcU5Ga0dBNFNFQ3AvQzMxZ0RWekJXZ1VOSXRnbDZP?= =?utf-8?B?YWZMd3JtdEJMNWhqOXlNaTRNb3JQNGdFT3RQTm53dUM5b3RaSjdZWlRQcStM?= =?utf-8?B?NWNwTk5sVFplcFNtMHdIaWcwSm5yeGJZbXVIcWZGeENWSUZQRDJnMVNSK1NC?= =?utf-8?B?Rkw5WkxFQk5GWGdQZnNXTkt5bHZVMEpWR0lpc1I2NmppWEZ4b3hzZ0NYeEtu?= =?utf-8?B?WXgyVW1TUWVkQnJJM3ZVZjRXRGkyeXNERHBEeG9kUHpHRnNKRE9FbE9NL0NW?= =?utf-8?B?dEx3SW1DamhKSGlxbmxBSDh3eWJibUJGaktoeVhudWpYUERZRDRmaDBBUExm?= =?utf-8?B?WEd5bU1PdnRYUzd5ZXVNWTRLRk1CbGRkN0xWOXlWemFId2p4VjRIZFFKRVJN?= =?utf-8?B?R3ZJVk1jT1A4cDdNQy9tc083M1lOWXhWS0RmM3QvaXdqWnh0eVlRbkl2eEtn?= =?utf-8?B?Y3RPY2F0QUpuVVh4K3dTaVlWbjRKUWR3QUV5NXpzaE1ISVFiM0F2cUtmQ2I0?= =?utf-8?B?NmlIOEJSdmkxQ0dKT21oWldXRWRQNUhvMkxnNzJldkhtUDQ3cmdyWHVFekho?= =?utf-8?B?ZmhaNEtsQlUrcVhtZlVERnpTTXhIUXFES3hTMHk5Rkw3Skh6RUZrTUFYK2h1?= =?utf-8?B?Q0hEQkk4U08rM1dVdlpna1I5Q3VmZldWWlNmRWRKcUx4d2xIclRSVVp0UHds?= =?utf-8?B?RHkyWTk0ckF4WWE3UXE0dVFiQk5yZ1FxcURzaHIxNXNXUFhEUy9SNzVkbkJr?= =?utf-8?B?YmoveEw1ZDBvWml2N3J6WUJKR0ZSSmNmREhBMThyVWQ0UHp1ODVlOC9sYlZw?= =?utf-8?B?OHVQR3lZVENadFNpcGhwcGZMMlU2U0pqRXE1c1VqemdJelR0ZklzMUxFcVlx?= =?utf-8?B?djZpdWR5a2luQ2ZLU3NNbnN1UGNMZW45RFp2NjZNdlRnYkNUU0ZhZTFkMnpP?= =?utf-8?B?VDlxUGhCNi9SN2c0MG40enZiZjdBUkd5b1VIUnVnR3dkTit1eHV0aVhwdHdZ?= =?utf-8?B?eEJ2Nk1SRDhwOTk3NjhXWE9sWFNGemViZnJpSnU5cTFkSEpFQ2t6QndYYjY3?= =?utf-8?B?eWRPUDMzZnN4cm1sb08wd09HazNQKy80K256MlFrbzY0cFdNemdMcGNSQVJv?= =?utf-8?B?YWtUYlYrOUUyMDJ4bUl4Y1A1UEowNjhHRGYrN1lRNHNVVWlseUF5djZjMm5I?= =?utf-8?B?Z09kN0k2VGhocmY3RHlLUElqTGZnUW5mYTFPNW9MTTJVMkJoVWYxL3BsZ3Yw?= =?utf-8?B?djJTdVFyS1FCSkhsWkdBUks4R1B5MkhUWG1DVEJMR2ZXcHpHaGZySU1acWtw?= =?utf-8?B?ekxIWEZLMG9pU1V6cDE1TTl1SnJPNXVFTzY4UFk1MWtEOWEwMkM2R05UMTd3?= =?utf-8?B?Q0U1ZnowNkRGNENUZkxBYTZ1bGtVNlZkY3RRYXc5TEVwWmVZdFB3UT09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 026d44b2-4521-441d-7405-08def6dcf960 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2026 12:43:27.1260 (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: bk0F6j8LHKtylw71kmAc1h9tTquA3EyvBUwxO1GkfOBj8MH17fpxk9asvQdZD9a9HYenvRFa6uoMc0BMj3OUFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6861 The blamed commit functionally changed the error path of cdns_pcie_host_probe(), now cdns_plat_pcie_probe(). When the old code path executed "goto err_get_sync", the PCIe controller probe function propagated the pm_runtime_get_sync() error code. The new code doesn't, and returns 0. Similarly for the "goto err_init" previously triggered by cdns_pcie_host_init() errors, and now triggered by cdns_pcie_host_setup() and cdns_pcie_ep_setup() errors. These are not propagated and will result in probing success, which is incorrect. Fixes: bd22885aa188 ("PCI: cadence: Refactor driver to use as a core librar= y") Signed-off-by: Vladimir Oltean Acked-by: Bjorn Helgaas --- Cc: Bjorn Helgaas Cc: "Krzysztof Wilczy=C5=84ski" Cc: Lorenzo Pieralisi Cc: Manikandan K Pillai Cc: Manivannan Sadhasivam Cc: Rob Herring Cc: Tom Joseph v8->v9: add Bjorn's Acked-by, expand CC list v7->v8: patch is new, issue was flagged by Sashiko https://sashiko.dev/#/patchset/20260430110652.558622-1-vladimir.oltean@nxp.= com --- drivers/pci/controller/cadence/pcie-cadence-plat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/cadence/pcie-cadence-plat.c b/drivers/p= ci/controller/cadence/pcie-cadence-plat.c index a1ea24fc3b63..8aed8b4c3e11 100644 --- a/drivers/pci/controller/cadence/pcie-cadence-plat.c +++ b/drivers/pci/controller/cadence/pcie-cadence-plat.c @@ -126,7 +126,7 @@ static int cdns_plat_pcie_probe(struct platform_device = *pdev) while (phy_count--) device_link_del(cdns_plat_pcie->pcie->link[phy_count]); =20 - return 0; + return ret; } =20 static void cdns_plat_pcie_shutdown(struct platform_device *pdev) --=20 2.34.1 From nobody Tue Sep 29 08:26:16 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010015.outbound.protection.outlook.com [52.101.69.15]) (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 156F33DD523; Mon, 10 Aug 2026 12:43:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786365813; cv=fail; b=WqYI7ngAWyON5G5DPHAYSF8oO15mgEQ2eiyuIFgXwJMEIGIVy1odKKLJCtjeLofODCTJ76DY/ivv/qTGM/OvjLk5UD1qzotHdWNNpYvr2WeeWuOFjI5b7S6V/L6IGYUxGiSaouWSVMy99LY+EOEUhzxnxSNpAGhfB6h8mvnDjU8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786365813; c=relaxed/simple; bh=0FT9BRHxWL3Qcg3Lyzc4b057mI9f1sim0gSjll0InAo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=MOta5CinYeP4538QnMlgX3OB8gwIH+jBsgOYy/BV3N75Rb0a5LJal/BMaF+tab++YLL+Oc7FN7qm0umj+2/PVkwuvcs3GpT+DAX+07EOq44H4Z8Pt7/TyhMrUMK/SX7zatN/yufP8MKs7fHGaehdx7kg4Bm0UIl9misSi2I+GBU= 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=JSbq+1eE; arc=fail smtp.client-ip=52.101.69.15 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="JSbq+1eE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JJukTzSk8e1aJNARLAZHDJ8Tlcg/AezCgSrgEqScma0FtzfcI50dRl53ipZ+9aAz2S3xCIpSIo1CskX2Z6LbCoDQ4VjMoU7C/jW8Fm1RAgYR1lX0ctfTEEMouOxoAqKzl6fEUjZT9NrIgyQP0r2sq5nm3HGoas07afMtyzY5CIrDDo1gjyqcNqBjaVdjfBEjdWk/zT5x5sjYnL8YOwTo6Ei61fyBmBwcBpJaXW1z2Xvfrly7PlDggupkhcqbR8D9R5qGb2/IhYbeyQXlPIqaIxz0c2ErEXCBmcGI7g19L5o67K8f/TU8yij+u/7Mo+BYCIBlV5BsS0FX61NGxxBSLw== 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=mBAib2mGDj2jtO1fk+LLEJx/InP4rMTZBO5PlJbT1BE=; b=nFvPQPox1Xi2IMhKxF+yc2JQqLOjgTDD4csQaiHgifObYyD/ENuL+zMU4uYKPNvEA82xRWaM9NbTIQl7FbFfpg+JUHp0dfHtuwqaA3Mv/j8uIFfZBfyC5ujtxVyEowYrUJs3eUqjsIQPTeCWkjzm6DJQjqw6iWg3PMSUqDo4C/eVBStA1AULvMUmTZNYgKzJHfZGBrRm665skqSuRiGOQm9EpTJodHX+fajt/P7MQopqKhg6UXTHaQINV6h9oK78DhSBD9sAKuKxIz++8B5HDanSAlENXG716lUl2RHI3VW6njqoBQlvUnAEYmT/ImoAvAF0hL28GDgMTO8Ow7465A== 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=mBAib2mGDj2jtO1fk+LLEJx/InP4rMTZBO5PlJbT1BE=; b=JSbq+1eE/DeCzMxhT35OuV93oLPx4rKNGxPKbs4v2tOtXAH8UffCoi/04ee1/68ol062aWkf3Dt/sECZWrkVZ9txpTSiCWVtH9W7fMC1bPIpXuXZ2Yvmf3b8aAHw3l6SgYFx3DruiJZvWSfTvCXFlxNb8qr1UQ8jsCcmhauCrKENHrh17A2+dOZuTg0/JRMDieaEi7LRbRlKlK54d4JsCFTPnTTFmzMGDSze9qrizU8cdztqgo15qMi1FWoPvlxVm/n7Ij5eWFgw3xbm2YsiLokrnxtIE3OGHyr+Ax5KYpyPUIYSf2GUbhjt1vAAAmHZD8Tykf1Is4925eQ+JQxRDA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by VI1PR04MB6861.eurprd04.prod.outlook.com (2603:10a6:803:13c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.25; Mon, 10 Aug 2026 12:43:29 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%4]) with mapi id 15.21.0292.024; Mon, 10 Aug 2026 12:43:29 +0000 From: Vladimir Oltean To: linux-pci@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-tegra@vger.kernel.org, Bjorn Helgaas , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Heiko Stuebner , Shawn Guo , Yixun Lan , Thierry Reding , Jonathan Hunter , Shawn Lin , Kevin Xie Subject: [PATCH v9 2/3] PCI: Add missing headers transitively included by Date: Mon, 10 Aug 2026 15:43:14 +0300 Message-Id: <20260810124315.433448-3-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260810124315.433448-1-vladimir.oltean@nxp.com> References: <20260810124315.433448-1-vladimir.oltean@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P191CA0020.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::8) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|VI1PR04MB6861:EE_ X-MS-Office365-Filtering-Correlation-Id: a0f8ed69-225e-45fd-c625-08def6dcfa75 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|23010399003|366016|19092799006|6133799003|56012099006|10067099003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: CeNq/W8ySISWdAC/sR7WyOpgljSE2K2sX1ooyyPeV5W9lXHTdnMvShLpEoU/4CsG6bZkTklewRnHs/lgTNkLk9ngYuXU9lFlypOxWPtIGJcFAjF/QSNy2RzHpJe/cp4AcW6fNU95oAhyzEn+u9oGXyjORguFOdd0pvnwSJlCCeoq8eu7eMDskvAag4TElPl5QX0KFl+wClCHf2RfuM02JN5s20/882X+kcFouo+1dzqWGIO9FAPF2R2joRsE4fsN3caefB46uZDOygrk6NWS+YqSK73q+XKBKVM3xwZswDgh0xm5pPvy8U5T3CUkOJVlOANjo7v7VdBT0eExpRc6KGaZo4RAhWhgolfJooT9CJ9glBYV3hCuuJFlsVgFGAzDuhImRFAJTY9HyJUkBDltDtdTz01Y+soBtbZQQMlUM528IGV0qphvMOQB92PZJFH1J3WAFcuOW9hnu6mFopxmxPJ7XdEvQ+Uho7yI6cg8ozE1ncgGQmI6Q0z/Cajgv1GCQ8ALtnh0dZTwAxWSV2mmoRQ166ioTP99C+bes6CQeUB3sghliXELqvapiYNqiPVlnBNUpki5Qa4wH7KXaxkdAGn8eBAqtHN9amDCFo5Cki2BgoQjux6rN3+P5xnRPDirb2CfeXJ+X62itG2IWm+Sk8+x9etBQ9NBa5mvc5hZ28s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(23010399003)(366016)(19092799006)(6133799003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YlZEWGJFWUUwU2xlVFdnR3ZzY25XMTJJT3ppRnFSaVB1eW5UQ2tXTlVyMG1Q?= =?utf-8?B?dkdpR1N0QTFJdFozTHRRNzNXQVZYWDR0RmZnMjdjWDRmeklvamJqWkJScWVI?= =?utf-8?B?b1RkdzdvbzNKVU9McTFHVDhtdC9sNGFUdEM2c0lMT2krR3RiUFBvUExzY0Jl?= =?utf-8?B?d0xsSDJXVU9WOW5IUTNpT0lVWTlVWVR6ZURuaFkybmFZL1cxRHo5VWVGZGY4?= =?utf-8?B?aHJ6c1FvUXphL2ZYV0wrSVdKQUtaUHo1NGFWZEVzUmdCMlFwZkpHeldCRnA1?= =?utf-8?B?VjE4bTRMMEdXTk5ZalFHWWRpTnNCdUlGWmZXOHErblRVQjlIbXRzNlY0elRn?= =?utf-8?B?bzhPa2cyOVc3dHUwMmdMbnFKVWNuN0ZkdlV4SjRMcGVOc29UNVhadGM0OExs?= =?utf-8?B?NTArSUFScTg0VTVnNHBEVmplcDdnYUpkaElqTzVnY1FNSFZKTkREVExPRndN?= =?utf-8?B?cW9FTmdsc1owdU9RWk1VU3ZlSXVsQzhURUhRNG9meXJ6MWRFbU9WSUlIVXZT?= =?utf-8?B?dUQ3Zk9aMDdjN0x5dHIraVRCNXRiT3J5R09GOXVneDhuT2RMN1NWK2tpbnBZ?= =?utf-8?B?dlVPMXF5dnpjYlRQR084OEZIeDZYRmxBVHpyOVFLS09XT21BTWIrMDRkb1lK?= =?utf-8?B?d3JQclRkM0ZJeTJzQ1B5WXBTVWVDWFQ4M1ZQbG1abDJJUkxhMnl1UklVMStY?= =?utf-8?B?akZWRXU2RW0xSU1ZbjI2ZTd2Y3lrZEQxd2FrRGxRT3dxNFpqOW9VcEdEcXp6?= =?utf-8?B?dnVGMDFlRFdzRWF4N05wVUJSOXpGQStsSlpua2lhYm5kUXlCMUx5YzZqVWxs?= =?utf-8?B?Z3VFQUorMUlhbWlvQ2tvR0tkL3hNS1dWMmtKVktwdlJ4V2VkdU1CVkNGa2Rz?= =?utf-8?B?Y0VpQllHSzgxcngyZjBhQ25WLzR3NkhHcVZyUUZYT2ZSbmMzSDc3dEh6dlFp?= =?utf-8?B?NDRMM2hrNVZ0WEtPYWJ0V1ZwRVc0VndqZ3U4djVwNXZkQ3pqWXVxT3hheTZa?= =?utf-8?B?OTZpbVN5Y2VFN3JqTXBGNU9QNFVyZmRpMWNrR204UzJ5T0VValM1SzIvTlRp?= =?utf-8?B?L05IOVdwVGFHdHlFbnhaL0VLRHJEdWlyNUp3R3QwaTJYMDU3NTFRRjBTNjRk?= =?utf-8?B?R1dWa2Q3YXE3ZUJaYlYzWjI2aXczYW9EKzl1alRSaXQ3ZFlpVVdleE0zbGVB?= =?utf-8?B?UXg5cXlmN2VWQUFkcW5nMENnMjVvTUdCM1pFUEdBN0IwSWoxV3BDTFRvakpT?= =?utf-8?B?OWZ1VlV2a3hQb2dvcHllUFl5R3pYUldRY2dTWVdjcFRTbldRUVFEMzk1ZEVG?= =?utf-8?B?VXdiQjgybEZyNlRwbHNtcmdaS3ZzclpDS1o1dEd5Q01ZZE4zR3kwcythV3ov?= =?utf-8?B?b1BCNzQ3b1J6TlViK3FCNnU3QndKNHh1WWw1RnJyVnNhNW1OanA4UWszNkU5?= =?utf-8?B?cEQ3TFpkdXZ3cWtqOGRNeXFPZjZ2ZXY1cVFYcjBYVXl1bDZKSVhvMU9HMSti?= =?utf-8?B?eTlFMFZjdmdqeHdQaXduVGIraHVXWHN2aWE4U2xrY25pL0NKY2Z5VlhEMjhm?= =?utf-8?B?cDUrazJjSGMwK014Y0dJTU1oaTdVcnlLak5FcG0yam9qY3ByTHJJcGFhbUVv?= =?utf-8?B?bklLdngwUDVHWHE5eVRqOS9ydDY5UGUwdkkwbXloSG1KMTBQTjhybC9TeUVk?= =?utf-8?B?NHUvQ1VwU3hrYjJ4SUNNZ0ZuUjF3akc1ckRyTXIxWDJDQnNiT3ZMZFdsNEZo?= =?utf-8?B?ejBlazQvOS9aWEdJK0dkb2JKdnMrK2huMklMMmFSNHFpekdNM1pZYlA3cXM5?= =?utf-8?B?Y0FvUHZUY0o0YWh2WnJqaU1UanlJYWd4dXl5UHpiVmtvcUN6aU5mK0ovOWtz?= =?utf-8?B?clprbzltUzU3VDJIR2xwTjFZdDhCSjNPSDNxZVVMTEFJRFl6N2kvRjgwa0VR?= =?utf-8?B?Qk5WK2tGbzZZMXNBeHdrbWY2WVRhMjlLcWtxZzB4UW44Zkw3ZnQzT3FXcUdC?= =?utf-8?B?dDVMOHduTEhCbDFVaTVHcU1Fa2t3YlNwRXN5S0wyWi9zMmhMN0dXWHA1OXpW?= =?utf-8?B?TmJpYUMxRzB1Wi9PaGsvSlp2NkQyZE9vVWlBZDM2M1pCTW1BcHY2YjNMTU0v?= =?utf-8?B?L1BXZ0xpRTFQOEhCYnFsRjhOd1Z3MWp5Y2JFdmVaRGNJZW1ERC9GQ1pMZndZ?= =?utf-8?B?ZWxMRWRxUnRZTWxGc0RrUE1McTBEbW93ZWwvT0dCbFNSVjhGeFFIVVRjWUNa?= =?utf-8?B?M3hRa1J4UUtpejY2L1pKeHRsZjhSdGFzMXY1NDJkeUxMSHNSd3h4R0xuWDU4?= =?utf-8?B?cldFcEJ1c1N2NzY1QXVSZ3Y1a2tMTUVsR0VmdlZ0M0JGdUpEY1djdz09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0f8ed69-225e-45fd-c625-08def6dcfa75 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2026 12:43:28.9483 (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: TINhJ6gMTBbkr9KHfz2R+iXe8JmgAI3uHWd3fw7QjlKdPAFfi7qeOksiK2Lc6V3XqSfzobVfHedqOggH6DEJ/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6861 The tegra as well as a few dwc PCI controller drivers uses PM runtime operations without including the required header. Similarly, pcie-rockchip-host, pcie-starfive as well as a few dwc PCI controllers use the regulator consumer API without including . pcie-spacemit-k1.c uses of_get_next_available_child() and of_node_put() without including . It seems these function prototypes were indirectly provided by , mostly by mistake (none of the functions it exports need it). Before the PHY header can drop the unnecessary includes, make sure the PCI controller drivers include what they use. Signed-off-by: Vladimir Oltean Acked-by: Bjorn Helgaas --- Cc: Lorenzo Pieralisi Cc: "Krzysztof Wilczy=C5=84ski" Cc: Manivannan Sadhasivam Cc: Rob Herring Cc: Bjorn Helgaas Cc: Heiko Stuebner Cc: Shawn Guo Cc: Yixun Lan Cc: Thierry Reding Cc: Jonathan Hunter Cc: Shawn Lin Cc: Kevin Xie v8->v9: fix conflict in drivers/pci/controller/dwc/pcie-spacemit-k1.c with commit 995832b2cebe ("Replace by more specific (c files)") v5->v8: none v4->v5: fix pcie-spacemit-k1 driver, previously missed due to limited build coverage v2->v4: none v1->v2: collect tag, adjust commit title --- drivers/pci/controller/dwc/pci-keystone.c | 1 + drivers/pci/controller/dwc/pcie-dw-rockchip.c | 1 + drivers/pci/controller/dwc/pcie-histb.c | 1 + drivers/pci/controller/dwc/pcie-qcom-ep.c | 1 + drivers/pci/controller/dwc/pcie-spacemit-k1.c | 3 +++ drivers/pci/controller/dwc/pcie-tegra194.c | 1 + drivers/pci/controller/pci-tegra.c | 1 + drivers/pci/controller/pcie-rockchip-host.c | 1 + drivers/pci/controller/plda/pcie-starfive.c | 1 + 9 files changed, 11 insertions(+) diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/contro= ller/dwc/pci-keystone.c index f1b27aed488d..e9b012a5ea9a 100644 --- a/drivers/pci/controller/dwc/pci-keystone.c +++ b/drivers/pci/controller/dwc/pci-keystone.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/co= ntroller/dwc/pcie-dw-rockchip.c index f9efe2d44957..5d41e6096504 100644 --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pci/controller/dwc/pcie-histb.c b/drivers/pci/controll= er/dwc/pcie-histb.c index a52071589377..432a54c5bfce 100644 --- a/drivers/pci/controller/dwc/pcie-histb.c +++ b/drivers/pci/controller/dwc/pcie-histb.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include =20 diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/contro= ller/dwc/pcie-qcom-ep.c index 56184e6ca6e6..8364696a1b98 100644 --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pci/controller/dwc/pcie-spacemit-k1.c b/drivers/pci/co= ntroller/dwc/pcie-spacemit-k1.c index 0564c46e2f48..92a71ea90ac3 100644 --- a/drivers/pci/controller/dwc/pcie-spacemit-k1.c +++ b/drivers/pci/controller/dwc/pcie-spacemit-k1.c @@ -12,9 +12,12 @@ #include #include #include +#include #include #include +#include #include +#include #include #include =20 diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/contr= oller/dwc/pcie-tegra194.c index 63a0f56cad8e..8ab23d1d7bd6 100644 --- a/drivers/pci/controller/dwc/pcie-tegra194.c +++ b/drivers/pci/controller/dwc/pcie-tegra194.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pc= i-tegra.c index 59b56446c507..96bd522fa67b 100644 --- a/drivers/pci/controller/pci-tegra.c +++ b/drivers/pci/controller/pci-tegra.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pci/controller/pcie-rockchip-host.c b/drivers/pci/cont= roller/pcie-rockchip-host.c index d203c4876d30..be8ff99b243f 100644 --- a/drivers/pci/controller/pcie-rockchip-host.c +++ b/drivers/pci/controller/pcie-rockchip-host.c @@ -24,6 +24,7 @@ #include #include #include +#include =20 #include "../pci.h" #include "pcie-rockchip.h" diff --git a/drivers/pci/controller/plda/pcie-starfive.c b/drivers/pci/cont= roller/plda/pcie-starfive.c index 02d5aa6dc14b..b693eabdf85b 100644 --- a/drivers/pci/controller/plda/pcie-starfive.c +++ b/drivers/pci/controller/plda/pcie-starfive.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "../../pci.h" =20 --=20 2.34.1 From nobody Tue Sep 29 08:26:16 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010015.outbound.protection.outlook.com [52.101.69.15]) (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 3AB673DA5AF; Mon, 10 Aug 2026 12:43:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786365816; cv=fail; b=elDwZcQbQxV1JzH81OF/I0Kowd0T7Lq/H6cwgQ7X0mXcYRjqxGS6S+yXWAGXuc/Syx95yBpNRfige/Y1X4rg8YoByx1k886qVcaFRi4GRp+sqEmaIpxCvjVdYoeTvF9PGYbADdcER3/Uv2YWXmNUkVc5rr8YNV7mltxl1UdmgKQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786365816; c=relaxed/simple; bh=L1ADpQKeXGL0liuYUxZzasdnRDNYGQT0zf0A9XPeng0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=OlesOLybyyUz7sJMVSl4gMhO65RuYmFv4Ln4G+nRH0JNkkZzs2SF68ASbM6n8XSsoXIGtbSKSqLq0nuNaHIgRkOd7V9Ovvb0dI1ZyCYI9yG/esmRROhadT9zTAVY5af2vMiOR6xPivHSH7arv3vLv2Dl65Tv7s1OVK2LiSvCWXo= 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=jjJ6bW0v; arc=fail smtp.client-ip=52.101.69.15 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="jjJ6bW0v" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=P+tl+9JzyOz7d3zYwrI7WRGHdCKD2nHP20qZn+VAw2rkZaG30sHLsCIJirt8353wUTXtNqyRO4KY/Q09WVTYIRDqfDG2/xE3HPjEIAmP1X1H8C/nqFt8MCe6B7yVixa8eXT353hFehuLG04FyLdrchb9RNR23GxSGn/k+YWO4K8geISUhdGBj0y8coABEUW58x/vv733DR/maoBltrWGkGK9zdUPav7ZWSt6c46KOEjsMtDVIJ75GxIMitaBCCnocSf3M3Yy3+pEGWBpkvJbfhWAa9/9+E7LBEwLSx1bvlDIkDD1HBPRqqX+OdvvFcONkr3vmXfwFERAZjcrcmkbEg== 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=wuk0mfD52jXS1Cz7cM9gPx5BJJ4Zj+YQ5QxY2V57xZQ=; b=EpeXzl1p7a0U/cTAT6DtEzu+5kCXXoL9lD3tay1sbLM2XtfBCo9BE64eYZRSF4lhMr0n9Nx0hSc5AM3xOskljTLn/HjThwjLSk7PTXWq+TSwDdiL5xuPCXN9/30qV1nOMA/FFRfBQLV0MhrvzpQjra+E2mZpPoPfdNGYnH5EQtRF8zMKzmJtIdsG38vwvACtjZeVIVZ5i/+HL+MDzQmisFIYRKp++labyx9lNwW137KMS1mi78dCwVko+9xC1OROn8qNVW89AuCsqW18tWgxFXAD1XS2uACfFY30sB1ixzH2V0HElIDJDruVkAftXKJkoxVPrfS6OmlhDHUAJKJy/w== 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=wuk0mfD52jXS1Cz7cM9gPx5BJJ4Zj+YQ5QxY2V57xZQ=; b=jjJ6bW0vUkX5MpxennrFFnF5t/1HgUp6kuwbAnk/3+Vq/w/BCjiegEBkUI3wDNYNyVOIEaglxDQHjDC9ZVxXxEbVscOx8ftuI+oubw2lLFX29SdZcCPfTUXGgzMHLJ8LFfZE6zKmwC/L53jC+8wc1f6IQqL+GugFn11xQZpNz84SMh9kjT/O11X8oVtm2w+gHK4LWskcPjOkmS/H+Z9578gV4jGqgaEcVQT5InWML0bvZTejqo43ON873iELB6IoljhmXTEGu3aDkFp49jFnnzwFcVRNIn3ro1S5zu/4zuNYZ8vQ9BISI36k52Vc4Md15umuFrNYZ2PyOmkaz2aHag== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by VI1PR04MB6861.eurprd04.prod.outlook.com (2603:10a6:803:13c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.25; Mon, 10 Aug 2026 12:43:30 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%4]) with mapi id 15.21.0292.024; Mon, 10 Aug 2026 12:43:30 +0000 From: Vladimir Oltean To: linux-pci@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-tegra@vger.kernel.org, Bjorn Helgaas , Manivannan Sadhasivam , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Rob Herring , Vignesh Raghavendra , Siddharth Vadapalli Subject: [PATCH v9 3/3] PCI: Remove device links to PHY Date: Mon, 10 Aug 2026 15:43:15 +0300 Message-Id: <20260810124315.433448-4-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260810124315.433448-1-vladimir.oltean@nxp.com> References: <20260810124315.433448-1-vladimir.oltean@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0088.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9b::13) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|VI1PR04MB6861:EE_ X-MS-Office365-Filtering-Correlation-Id: 96619bf6-757d-4798-915c-08def6dcfb96 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|23010399003|366016|19092799006|56012099006|10067099003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: icsor8+uPeiW/AYL9HpqOmmDJ63fl274sPAVbE8+SrQzCglYSAeXsBR5zCsBfPN/H8X89olKnooCJRZpqUMl6Mmb6FK/xiPi00dSfIK/HY2FWVoffOcT4p2KKocPSaNMS/k8vZmpOfs62yLysmd+CnZfeGYzcFqZKvjHAgHuMhHm496ecrFsLldW6F1hd4eAiqNZrZBDm5uuOJv0CXHr74UiHxI8eskr88l/mcefNXPHLCcor4dCXyKz/ABo2qfCwna0fmR/VFyo94cN5XDBOIuMTQcIKBYI02kc0EEY0knNHjwLemfsiMsTgaP4A5Roh53PpDVJaBRv3pLGV74td7efgGA4nIghs++eywKdLfoZ98iUKpNAnnf9+FFtmqytTcV4cdEff0Do1393xDkdhBeUG6Ju+F34Ipv2e0q5XCtmzdOpOGPT+DmVt/Rex3Y1ymNeoL2YWZ8kQ9g+jouftP853o0wv1cm5Ny1o60tYwhL6dPZoXK59YV5DoD7qbnx8aP/xIEFvPqa1XaO+KVcBSlu07tz/lV6UbKuzqclk5sFXvBkTU7izH1XYD2KWlJ7Kfh+uIUQxSvQyS69WKbBIWzYh6tMyHSiOrPtl74ka53zcZDyx0r7LT6LrFdrw2vnf+2wT5w/f5KRMS56UhMJzBE//XFwzX5od63A2MYxB8s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(23010399003)(366016)(19092799006)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?LzZJODFRcFBvcDM5Q0o4VVF6YVdhMVlWenhaRXBDT1dWcFhBcDEvb2FEbDF1?= =?utf-8?B?Qjc4eWdPM01BdkgxTTRtcm9kT2hIbkhKem1YUnNZdHNweVBpQkpvdEJCVThW?= =?utf-8?B?TWo4VWFlemJDUUs1YksvVnlTeFVESTdhMjNyWVVQWEJaNno3RlB0dzZTbTBG?= =?utf-8?B?Ly9hZnp0MjNpdGI3dkdRMUduZmUvc3d4bTY5Z1RBQVpSL1RqQk1GditKdjAr?= =?utf-8?B?RzR1ZGF5aUlDNkQxRGNoNUROMm5IRlYvOUNGVkNhcnNXVHlvT0JTQXF1RDNO?= =?utf-8?B?Zmp2SXJyYjhmN1lPOVcxTU1WZzhyMlN3MXBHNHFnU3dvOTRRVG9mREl0dUJa?= =?utf-8?B?aUNhelhyMVhTVWw1UXFJUnVZWDlCRnMzL21zNDZzV3ZsNENxRFdyUnRNZG9N?= =?utf-8?B?cjREY2x2eUR5clZlSnh2SHdCVnRTM1duVkhYOFlUMGdYK0tZYkJrZi9sMER3?= =?utf-8?B?aG5aK3BzUzZKcExqWVdCWGs0WVVoVEhzZFFpbTZvWUFIeENDZjNmUExQSC9H?= =?utf-8?B?bHJRSXBxSXd2SGZ2OGtXVEJpV2lBcWZESXJvWG82QTJPVWhnOTZJRlRSZHNs?= =?utf-8?B?Qm9MU3h6T0xzTnlEQ1ZiQ25ocHpZUjQrQ0dIald5Z2NDc1pWR3ZxY0h1YWhz?= =?utf-8?B?dFRqUjlvaXdRWndkYVdUTXhrU0dERzJmeW1mNFpCODNZVkYrN1lwbWlScEl6?= =?utf-8?B?amRGTHVLSFZSV2JhQWlCMklHZWlSdEhzcW40eFJrS3lDOEE4ZzErcEdEV3hD?= =?utf-8?B?ODA5UTlDZDgyMk40WUZoMllvOFlRNkdJUWpmL0FiUGpITFNYYXUrbEZJS1Ra?= =?utf-8?B?QWtsT2FHMTFWQ25BWVovZjc3cDdISzJqTUNHNnljaFcyc1Jhbkw2OWFVTVYv?= =?utf-8?B?VHJPTldYM0F2WlFzRzdqVXVrRGxpV3lYVisvUDFaaDZ0N3FjQnFPNVJKdEpW?= =?utf-8?B?akJHOXE5K2F3UnJLak5JYUIrd0lkTGlXNHppRWRma2hIOTNJSjd1eDJGa3JE?= =?utf-8?B?YmV6eXMzNk9qbGRJM2hFTUFGSW9VQi9haEcrUjlIZGxsdU1wQlRNbU1VM24x?= =?utf-8?B?RG5Kd1hmcDRTMVZqeVF4UG5YY2g2dmM2d3ZlNFdDZjN1S2xDOFR0QUExaUFX?= =?utf-8?B?OG9xaUkydEw1R3RHTVdOMUt3ZEVSaXJBN2JYZU0xclU2cFpoNVpnL3BZaFcy?= =?utf-8?B?OUZ2a1lkWjZjdVBuMlRZYldxZEdWZEJBeDZXSk5YRi9JTDRLOU9iK0p1SEs1?= =?utf-8?B?K3BEbkF2VTZmRkpEd214ODR1K1UyakdYaUIxSjRMWTdmQnEzMXduTHZBZ2lm?= =?utf-8?B?eEdmT2g2OEV6dEU3L2J6ZGxQNU1jR2lzYXd3NGtvajkrOUpHNmJ5N0w3RGhR?= =?utf-8?B?Zkd3ZVBjN3lNbVZJV2ZKQUtBUnBxeTBMT0F0a0RwSzdTVmlMV0tYRnRiSlBD?= =?utf-8?B?cnh1U2dVOUFSVXFIbXI2Q01KL1Z6VitnVWdaS3RrSkpYaVZ3NktWR3d5Qkps?= =?utf-8?B?enh6UC92SGpraGZxVDZ0Q2hOb1RiR2cwZ2hLSjUreG95b3dxNDBYUFR2Wklz?= =?utf-8?B?bW9MVm5IVFppNGF6OHpXZXpSL0FJS0xZV2dUS2Q1RDUrU0wwMCtuVGVnQTFa?= =?utf-8?B?QnRiSTlNOU9lcEFkU3RMejErVlZNV0d1UGszOGdGK2VSUUJNbFJOM3Z6Z25S?= =?utf-8?B?MEdYZVRXQWRGQVdsVkFuekFTd29BN3d4RWhtU3hCZ2pHemFsZjdxTzRsNlpy?= =?utf-8?B?YndWVnhsZ2J6bmRROUVxNC9Wck1GTjE3ckovZnIzeitJclA5aWkwS3hldnZL?= =?utf-8?B?MXp0aXg4OUF1dXJCV0tMVWpHUitTM2tNQ2xoTWJzU1NJVWtnUzk5NDJsei9i?= =?utf-8?B?amxLMDhGUkpBS0VhWEZVMWVmbTZSbVdEK2p3ZThPQ2NQNkZIU0hvSHVITnRu?= =?utf-8?B?SzFic3pMekVYaW1BK09JZ053WDNpUjRla3gvWm8zblkvcVc1L3RhYm5ycm52?= =?utf-8?B?OFRHNFJrKzdPYjZWejZqS09uSG1NREoybW5VekpRT3V0NnErb2VFSERQUFpv?= =?utf-8?B?aUc0MlRTdFB6M0RQT3VVVVhld0pzSWZZVlBKaUJUcDIzbExlaUhzR0p1ejZJ?= =?utf-8?B?YkZhNmhVWVY1NGZ5aURQMkJneXdSTHpSdFFHVTZIT1d6RDlFQVJOMVdWV0lQ?= =?utf-8?B?cVQ0NDMzSVFSbmFYQmxIS1dBdks0RXUrdFZrZnF5WDdNMDhQQkRqVHkybExS?= =?utf-8?B?OVdxQWJTSjlVRjZCRjhqMWRHQ091dDhSZlU3SFNqajBwYnNpaUNqeXBjRlhM?= =?utf-8?B?MlFCQnRUTm8zSjg2RWVyeFdUOHN6SkFwTVM0OG9aVGkxaTE4ZEJQdz09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96619bf6-757d-4798-915c-08def6dcfb96 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2026 12:43:30.8161 (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: ScSUc1kVhg03FaScWJh+U+Age6dMzR5s7rCqkVS6FkqLTZWwQ2qd2EpxH019+dcOCcw/EwzVfC3IhbXooQI5oA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6861 This is practically a full revert of commit 7a4db656a635 ("PCI: dra7xx: Create functional dependency between PCIe and P= HY") and a partial revert of the device link pieces from commits dfb80534692d ("PCI: cadence: Add generic PHY support to host and EP drivers= ") 49229238ab47 ("PCI: keystone: Cleanup PHY handling") The trouble with these commits is that they dereference fields inside struct phy from a consumer driver, which will become no longer possible. Since commit 987351e1ea77 ("phy: core: Add consumer device link support") from 2019, the PHY core also adds a device link to order PHY provider and consumer suspend/resume operations. All reverted commits are from 2017-2018, and what they do should actually be redundant now. Signed-off-by: Vladimir Oltean Acked-by: Bjorn Helgaas Reviewed-by: Manivannan Sadhasivam --- Cc: Lorenzo Pieralisi Cc: "Krzysztof Wilczy=C5=84ski" Cc: Manivannan Sadhasivam Cc: Rob Herring Cc: Bjorn Helgaas Cc: Vignesh Raghavendra Cc: Siddharth Vadapalli v8->v9: none v7->v8: only context change - "return 0" became "return ret" for cdns_plat_pcie_probe() v6->v7: none v5->v6: collect tag from Manivannan Sadhasivam v3->v5: none v2->v3: - remove dangling set but unused phy_count local variable in cdns_plat_pcie_probe() v1->v2: - fully remove struct device link **link from struct cdns_pcie and from cdns_plat_pcie_probe() error path - collect tag from Bjorn Helgaas - adjust commit title --- .../controller/cadence/pcie-cadence-plat.c | 4 --- drivers/pci/controller/cadence/pcie-cadence.c | 16 +--------- drivers/pci/controller/cadence/pcie-cadence.h | 2 -- drivers/pci/controller/dwc/pci-dra7xx.c | 16 ---------- drivers/pci/controller/dwc/pci-keystone.c | 31 +++---------------- 5 files changed, 5 insertions(+), 64 deletions(-) diff --git a/drivers/pci/controller/cadence/pcie-cadence-plat.c b/drivers/p= ci/controller/cadence/pcie-cadence-plat.c index 8aed8b4c3e11..13edc6be21f5 100644 --- a/drivers/pci/controller/cadence/pcie-cadence-plat.c +++ b/drivers/pci/controller/cadence/pcie-cadence-plat.c @@ -41,7 +41,6 @@ static int cdns_plat_pcie_probe(struct platform_device *p= dev) struct pci_host_bridge *bridge; struct cdns_pcie_ep *ep; struct cdns_pcie_rc *rc; - int phy_count; bool is_rc; int ret; =20 @@ -122,9 +121,6 @@ static int cdns_plat_pcie_probe(struct platform_device = *pdev) pm_runtime_put_sync(dev); pm_runtime_disable(dev); cdns_pcie_disable_phy(cdns_plat_pcie->pcie); - phy_count =3D cdns_plat_pcie->pcie->phy_count; - while (phy_count--) - device_link_del(cdns_plat_pcie->pcie->link[phy_count]); =20 return ret; } diff --git a/drivers/pci/controller/cadence/pcie-cadence.c b/drivers/pci/co= ntroller/cadence/pcie-cadence.c index a1eada56edba..0ac980249941 100644 --- a/drivers/pci/controller/cadence/pcie-cadence.c +++ b/drivers/pci/controller/cadence/pcie-cadence.c @@ -222,7 +222,6 @@ int cdns_pcie_init_phy(struct device *dev, struct cdns_= pcie *pcie) struct device_node *np =3D dev->of_node; int phy_count; struct phy **phy; - struct device_link **link; int i; int ret; const char *name; @@ -238,10 +237,6 @@ int cdns_pcie_init_phy(struct device *dev, struct cdns= _pcie *pcie) if (!phy) return -ENOMEM; =20 - link =3D devm_kcalloc(dev, phy_count, sizeof(*link), GFP_KERNEL); - if (!link) - return -ENOMEM; - for (i =3D 0; i < phy_count; i++) { of_property_read_string_index(np, "phy-names", i, &name); phy[i] =3D devm_phy_get(dev, name); @@ -249,17 +244,10 @@ int cdns_pcie_init_phy(struct device *dev, struct cdn= s_pcie *pcie) ret =3D PTR_ERR(phy[i]); goto err_phy; } - link[i] =3D device_link_add(dev, &phy[i]->dev, DL_FLAG_STATELESS); - if (!link[i]) { - devm_phy_put(dev, phy[i]); - ret =3D -EINVAL; - goto err_phy; - } } =20 pcie->phy_count =3D phy_count; pcie->phy =3D phy; - pcie->link =3D link; =20 ret =3D cdns_pcie_enable_phy(pcie); if (ret) @@ -268,10 +256,8 @@ int cdns_pcie_init_phy(struct device *dev, struct cdns= _pcie *pcie) return 0; =20 err_phy: - while (--i >=3D 0) { - device_link_del(link[i]); + while (--i >=3D 0) devm_phy_put(dev, phy[i]); - } =20 return ret; } diff --git a/drivers/pci/controller/cadence/pcie-cadence.h b/drivers/pci/co= ntroller/cadence/pcie-cadence.h index b4d51adefea5..4a96e1869e53 100644 --- a/drivers/pci/controller/cadence/pcie-cadence.h +++ b/drivers/pci/controller/cadence/pcie-cadence.h @@ -260,7 +260,6 @@ struct cdns_plat_pcie_of_data { * @is_hpa: indicates if the architecture is HPA * @phy_count: number of supported PHY devices * @phy: list of pointers to specific PHY control blocks - * @link: list of pointers to corresponding device link representations * @ops: Platform-specific ops to control various inputs from Cadence PCIe * wrapper * @cdns_pcie_reg_offsets: Register bank offsets for different SoC @@ -276,7 +275,6 @@ struct cdns_pcie { bool is_hpa; int phy_count; struct phy **phy; - struct device_link **link; const struct cdns_pcie_ops *ops; const struct cdns_plat_pcie_of_data *cdns_pcie_reg_offsets; int max_link_speed; diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controll= er/dwc/pci-dra7xx.c index 3fc889944f02..bf6c5b86bb27 100644 --- a/drivers/pci/controller/dwc/pci-dra7xx.c +++ b/drivers/pci/controller/dwc/pci-dra7xx.c @@ -9,7 +9,6 @@ =20 #include #include -#include #include #include #include @@ -678,7 +677,6 @@ static int dra7xx_pcie_probe(struct platform_device *pd= ev) int i; int phy_count; struct phy **phy; - struct device_link **link; void __iomem *base; struct dw_pcie *pci; struct dra7xx_pcie *dra7xx; @@ -726,10 +724,6 @@ static int dra7xx_pcie_probe(struct platform_device *p= dev) if (!phy) return -ENOMEM; =20 - link =3D devm_kcalloc(dev, phy_count, sizeof(*link), GFP_KERNEL); - if (!link) - return -ENOMEM; - dra7xx->clk =3D devm_clk_get_optional(dev, NULL); if (IS_ERR(dra7xx->clk)) return dev_err_probe(dev, PTR_ERR(dra7xx->clk), @@ -744,12 +738,6 @@ static int dra7xx_pcie_probe(struct platform_device *p= dev) phy[i] =3D devm_phy_get(dev, name); if (IS_ERR(phy[i])) return PTR_ERR(phy[i]); - - link[i] =3D device_link_add(dev, &phy[i]->dev, DL_FLAG_STATELESS); - if (!link[i]) { - ret =3D -EINVAL; - goto err_link; - } } =20 dra7xx->base =3D base; @@ -851,10 +839,6 @@ static int dra7xx_pcie_probe(struct platform_device *p= dev) pm_runtime_disable(dev); dra7xx_pcie_disable_phy(dra7xx); =20 -err_link: - while (--i >=3D 0) - device_link_del(link[i]); - return ret; } =20 diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/contro= ller/dwc/pci-keystone.c index e9b012a5ea9a..8085c4f61403 100644 --- a/drivers/pci/controller/dwc/pci-keystone.c +++ b/drivers/pci/controller/dwc/pci-keystone.c @@ -130,7 +130,6 @@ struct keystone_pcie { int num_lanes; u32 num_viewport; struct phy **phy; - struct device_link **link; struct device_node *msi_intc_np; struct irq_domain *intx_irq_domain; struct device_node *np; @@ -1130,7 +1129,6 @@ static int ks_pcie_probe(struct platform_device *pdev) enum dw_pcie_device_mode mode; struct dw_pcie *pci; struct keystone_pcie *ks_pcie; - struct device_link **link; struct gpio_desc *gpiod; struct resource *res; void __iomem *base; @@ -1201,31 +1199,17 @@ static int ks_pcie_probe(struct platform_device *pd= ev) if (!phy) return -ENOMEM; =20 - link =3D devm_kcalloc(dev, num_lanes, sizeof(*link), GFP_KERNEL); - if (!link) - return -ENOMEM; - for (i =3D 0; i < num_lanes; i++) { snprintf(name, sizeof(name), "pcie-phy%d", i); phy[i] =3D devm_phy_optional_get(dev, name); if (IS_ERR(phy[i])) { ret =3D PTR_ERR(phy[i]); - goto err_link; - } - - if (!phy[i]) - continue; - - link[i] =3D device_link_add(dev, &phy[i]->dev, DL_FLAG_STATELESS); - if (!link[i]) { - ret =3D -EINVAL; - goto err_link; + goto err; } } =20 ks_pcie->np =3D np; ks_pcie->pci =3D pci; - ks_pcie->link =3D link; ks_pcie->num_lanes =3D num_lanes; ks_pcie->phy =3D phy; =20 @@ -1235,7 +1219,7 @@ static int ks_pcie_probe(struct platform_device *pdev) ret =3D PTR_ERR(gpiod); if (ret !=3D -EPROBE_DEFER) dev_err(dev, "Failed to get reset GPIO\n"); - goto err_link; + goto err; } =20 /* Obtain references to the PHYs */ @@ -1250,7 +1234,7 @@ static int ks_pcie_probe(struct platform_device *pdev) =20 if (ret) { dev_err(dev, "failed to enable phy\n"); - goto err_link; + goto err; } =20 platform_set_drvdata(pdev, ks_pcie); @@ -1337,25 +1321,18 @@ static int ks_pcie_probe(struct platform_device *pd= ev) pm_runtime_disable(dev); ks_pcie_disable_phy(ks_pcie); =20 -err_link: - while (--i >=3D 0 && link[i]) - device_link_del(link[i]); - +err: return ret; } =20 static void ks_pcie_remove(struct platform_device *pdev) { struct keystone_pcie *ks_pcie =3D platform_get_drvdata(pdev); - struct device_link **link =3D ks_pcie->link; - int num_lanes =3D ks_pcie->num_lanes; struct device *dev =3D &pdev->dev; =20 pm_runtime_put(dev); pm_runtime_disable(dev); ks_pcie_disable_phy(ks_pcie); - while (num_lanes--) - device_link_del(link[num_lanes]); } =20 static struct platform_driver ks_pcie_driver =3D { --=20 2.34.1