[{"id":3678372,"web_url":"http://patchwork.ozlabs.org/comment/3678372/","msgid":"<20260416203905.GA29913@bhelgaas>","list_archive_url":null,"date":"2026-04-16T20:39:05","subject":"Re: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","submitter":{"id":67298,"url":"http://patchwork.ozlabs.org/api/people/67298/","name":"Bjorn Helgaas","email":"helgaas@kernel.org"},"content":"On Thu, Apr 16, 2026 at 07:14:12PM +0800, Sherry Sun wrote:\n> Introduce generic helper functions to parse Root Port device tree nodes\n> and extract common properties like reset GPIOs. This allows multiple\n> PCI host controller drivers to share the same parsing logic.\n> \n> Define struct pci_host_port to hold common Root Port properties\n> (currently only reset GPIO descriptor) and add\n> pci_host_common_parse_ports() to parse Root Port nodes from device tree.\n\nAre the Root Port and the RC the only possible places for 'reset' GPIO\ndescriptions in DT?  I think PERST# routing is outside the PCIe spec,\nso it seems like a system could provide a PERST# GPIO routed to any\nSwitch Upstream Port or Endpoint (I assume a PERST# connected to a\nswitch would apply to both the upstream port and the downstream\nports).","headers":{"Return-Path":"\n <linux-pci+bounces-52653-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=NIC+uZOP;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-pci+bounces-52653-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"NIC+uZOP\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxVH76HmGz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 06:39:15 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 5DE7C30231EE\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 20:39:11 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7CE65340A43;\n\tThu, 16 Apr 2026 20:39:07 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 591B8223702;\n\tThu, 16 Apr 2026 20:39:07 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id BBC9FC2BCAF;\n\tThu, 16 Apr 2026 20:39:06 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776371947; cv=none;\n b=Z8uQ3JUCImBzs3R8jJiktZAwZ1Xh8CAaueIOOG3/C3FAd4/YANcFbpih5/TdgNWvs46PtGb4VSq6Nyxe/qhAzRVILedSwmjade4Da7hnTLUn97AyL51YSlD0KTvBL78i03Wj2SQ2btzeubugKyyIb2UWLNX9TJhXwYe++58sVgM=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776371947; c=relaxed/simple;\n\tbh=RhBffrmsMOEQ9U00Vb6PjZXRgwm+dO9ZID94mEWA0Ak=;\n\th=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type:\n\t Content-Disposition:In-Reply-To;\n b=Kp7leOS5DE6VbFlZeXWD+3UXRMb8AfIpjaSWvrOzlfFDRtA2MjFBhZOIu00komA6UjFqdJRf7fP76yXOX/YQfRJDTghvRMKat+A1blXHsm40gQ/jh/HZBJ4qmU43l+acBEz5pR5xVP9GHsAh4+lkP0G/DzF3uWeQsBYPaPD7/yw=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=NIC+uZOP; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776371946;\n\tbh=RhBffrmsMOEQ9U00Vb6PjZXRgwm+dO9ZID94mEWA0Ak=;\n\th=Date:From:To:Cc:Subject:In-Reply-To:From;\n\tb=NIC+uZOPOTFu7mybYkK3oTnc3bdL2r8txodTtcrLDkhApF+K+rfsBdgJQ6aSWThkY\n\t JqpOvSaL0mArNGzN2M0iMSmFbee7mQNnEvqfAqWTLv6U1KEfdTbwejpFRsj+fVtIsb\n\t wSB1W7m+2Y7VxZfP8etFbgvKsjrTIkLkEtJ5SYXL4uJdRKyzpjQ/ujP14rk/WfLYuM\n\t fBLieuO+kfgLbJeeCbzU2S7ImUhAdGLeQU5oXRt9tS31b98FJutEdKNSmOLoQdXJtR\n\t 5Yq1GPtrt6yU21YRfIkHj1q/eLrGVHyqMdgbL0cy86aAHatdAKBahoPgjxliq8Dlw2\n\t my5ITqYYZj0BQ==","Date":"Thu, 16 Apr 2026 15:39:05 -0500","From":"Bjorn Helgaas <helgaas@kernel.org>","To":"Sherry Sun <sherry.sun@nxp.com>","Cc":"robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,\n\tFrank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de,\n\tfestevam@gmail.com, lpieralisi@kernel.org, kwilczynski@kernel.org,\n\tmani@kernel.org, bhelgaas@google.com, hongxing.zhu@nxp.com,\n\tl.stach@pengutronix.de, imx@lists.linux.dev,\n\tlinux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,\n\tdevicetree@vger.kernel.org, linux-kernel@vger.kernel.org","Subject":"Re: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Message-ID":"<20260416203905.GA29913@bhelgaas>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260416111422.183860-3-sherry.sun@nxp.com>"}},{"id":3678465,"web_url":"http://patchwork.ozlabs.org/comment/3678465/","msgid":"<VI0PR04MB1211449884AC3BC8E3711F1AB92202@VI0PR04MB12114.eurprd04.prod.outlook.com>","list_archive_url":null,"date":"2026-04-17T03:17:16","subject":"RE: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","submitter":{"id":77063,"url":"http://patchwork.ozlabs.org/api/people/77063/","name":"Sherry Sun","email":"sherry.sun@nxp.com"},"content":"> On Thu, Apr 16, 2026 at 07:14:12PM +0800, Sherry Sun wrote:\n> > Introduce generic helper functions to parse Root Port device tree\n> > nodes and extract common properties like reset GPIOs. This allows\n> > multiple PCI host controller drivers to share the same parsing logic.\n> >\n> > Define struct pci_host_port to hold common Root Port properties\n> > (currently only reset GPIO descriptor) and add\n> > pci_host_common_parse_ports() to parse Root Port nodes from device\n> tree.\n> \n> Are the Root Port and the RC the only possible places for 'reset' GPIO\n> descriptions in DT?  I think PERST# routing is outside the PCIe spec, so it\n> seems like a system could provide a PERST# GPIO routed to any Switch\n> Upstream Port or Endpoint (I assume a PERST# connected to a switch would\n> apply to both the upstream port and the downstream ports).\n\nHi Bjorn,\n\nThanks for the feedback. You're right that PERST# routing could theoretically be\nconnected to any device in the hierarchy. However, for this patch series, I've focused\non the most common use case in practice: use Root Port level PERST# instead of the\nlegacy Root Complex level PERST#.\n\nRoot Port level PERST# - This is the primary target, where each Root Port has individual\ncontrol over devices connected to it.\nRC level PERST# - Legacy binding support, where a single GPIO controls all ports.\n\nWe can extend this framework later if real hardware emerges that needs Switch or\nEP-level PERST# control. I can add a comment documenting this limitation if needed.\n\nBTW, Mani and Rob had some great discussions in dt-schema about PERST# and WAKE#\nsideband signals settings.\nYou can check here:\nhttps://github.com/devicetree-org/dt-schema/issues/168\nhttps://github.com/devicetree-org/dt-schema/pull/126\nhttps://github.com/devicetree-org/dt-schema/pull/170\n\nBest Regards\nSherry","headers":{"Return-Path":"\n <linux-pci+bounces-52680-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=neKor8hf;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52680-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"neKor8hf\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.159.27","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxg7v2YTrz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 13:18:35 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id C40FF307FC61\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 03:17:24 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 3C602350D74;\n\tFri, 17 Apr 2026 03:17:23 +0000 (UTC)","from OSPPR02CU001.outbound.protection.outlook.com\n (mail-norwayeastazon11013027.outbound.protection.outlook.com [40.107.159.27])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 5DAD934F497;\n\tFri, 17 Apr 2026 03:17:20 +0000 (UTC)","from VI0PR04MB12114.eurprd04.prod.outlook.com\n (2603:10a6:800:315::13) by DBBPR04MB7787.eurprd04.prod.outlook.com\n (2603:10a6:10:1e3::20) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Fri, 17 Apr\n 2026 03:17:16 +0000","from VI0PR04MB12114.eurprd04.prod.outlook.com\n ([fe80::feda:fd0e:147f:f994]) by VI0PR04MB12114.eurprd04.prod.outlook.com\n ([fe80::feda:fd0e:147f:f994%6]) with mapi id 15.20.9818.023; Fri, 17 Apr 2026\n 03:17:16 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776395843; cv=fail;\n b=STvPc1ShmhYt9vLVzC1KLmxF+bNMyaA2ym//VClI1gGkzMxIeiHdHGB9oxRdE/G+AAf7+iHsVk2zjeu7sOs+fIyUsqnko+uevgRY3e7EpbilPy60qzvxcqyRuYCKCdOJyh2iQMGOAqDwBj6eZuYXWy1I2jWWZ7qGv6pJBzH4BbI=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=GDSxQGqf0vX4sn7CVr2qFTvE3szE8Cl1tOBLlnZ4G1kZRQRPTxi1Aul3oBGu46AjiZQCcud3dOyIfrw/8aig8TnpikTeGGwgq4RTuLzDjx3Evqz3yB60XOfRFovXUz8+Gq8e98ErJLldm16TseZ6O26e6oLpANl8jhzoiGP+XlzDNSLe0B4ldtwvNuEJCr/FAHOsYNoEgVUEfljHexgP9QLkEWe1eVVYqjh9yKncGAo+4UdIxVR7wG8UfJrpG/qTDT8ntsU9t/UtNAd374OtgCb3gM196pbN813ApXvh+TqTDMgdQh05YE3EL39jUilFISmPQl6WxsAdseUxtXpsHA=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776395843; c=relaxed/simple;\n\tbh=r0I32NO3yxwSwuOpDBVpbc55f0+uVQaslOhJ8ZwLc5c=;\n\th=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To:\n\t Content-Type:MIME-Version;\n b=NLYgkFrH67Tp71sHTxArlt+I4LmOI7VEhykwUsojKvm1b6u6EflJBgOdo1I/9sW1uq+OExSYfkC6shl+VXdbhE6qNNJeOvJIWik4XvU7BcR5qeCPtqAJO2b4jjA+pWo771WfJOOmpNs5tLbWidRF7PYXW7Ra+WfTmLAiZhpr53c=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=AhC5Hv4KFrMNALYAHm6wZQl+WhK88pPM2cqbui3I3KQ=;\n b=KbtXo4GlKJI4DAhoqutxjLI2MK8eD+Su4pU17IJusZHndyCOViK+3zaL/Lf8RnNUL+Tl2lNDUtOzNALZQYLAxoGPzXLasdBSvH8VJvKq6LR/HCRtMtmy6EFNqdAKYYzH2RIMQPHPJFPBm6G5oQyA2UDTjkfxciUHAie5sFFYRB+JP6CfNZBRgj5WORF3QvLx3ImBqBMN4/rsNljm/wvZtPbEn/9hd8Ffu4ntj3yvZT9BWldIxKqyOA4qHXorpWVusCs8e+b7rvYJBEy/JvYQaaqFRjPK/WtAwlGbOPiLnpKcTheli3jlPL9k0AJGTqLDTW1UpK9tO97CbMDjPwEfWg=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com;\n spf=pass smtp.mailfrom=nxp.com;\n dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=neKor8hf; arc=fail smtp.client-ip=40.107.159.27","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=AhC5Hv4KFrMNALYAHm6wZQl+WhK88pPM2cqbui3I3KQ=;\n b=neKor8hfqjWXq7sjGhoGjURzKBadCGI6ZG/6InrMJ5oLK3KMVSFTGzsV21oLoqDa39EIVZo/fD2z8NHNkdNH65gvaNqpw1GxdRwukI75gNvYn69vw5H+aEFtNwZHBsiIv0Pwrmi34/9STjAfGrND80WkJ2AX+v1soOALih/78uZ7a0Az4O6J0dG7VeX7o/mXEIT24EjLslWn0NgoSG2VCmiZLswy0B5PIK+FCwpjh9P2SvH55HIWFZVhHWEppFZSsrv4w/ISEwFemK1uO5R8gbcA3uBOAchcHYPVmtO02SUhswFb8YAFyhxNhC2OPHK0RrH4gbdICMacC29VKlWPYw==","From":"Sherry Sun <sherry.sun@nxp.com>","To":"Bjorn Helgaas <helgaas@kernel.org>","CC":"\"robh@kernel.org\" <robh@kernel.org>, \"krzk+dt@kernel.org\"\n\t<krzk+dt@kernel.org>, \"conor+dt@kernel.org\" <conor+dt@kernel.org>, Frank Li\n\t<frank.li@nxp.com>, \"s.hauer@pengutronix.de\" <s.hauer@pengutronix.de>,\n\t\"kernel@pengutronix.de\" <kernel@pengutronix.de>, \"festevam@gmail.com\"\n\t<festevam@gmail.com>, \"lpieralisi@kernel.org\" <lpieralisi@kernel.org>,\n\t\"kwilczynski@kernel.org\" <kwilczynski@kernel.org>, \"mani@kernel.org\"\n\t<mani@kernel.org>, \"bhelgaas@google.com\" <bhelgaas@google.com>, Hongxing Zhu\n\t<hongxing.zhu@nxp.com>, \"l.stach@pengutronix.de\" <l.stach@pengutronix.de>,\n\t\"imx@lists.linux.dev\" <imx@lists.linux.dev>, \"linux-pci@vger.kernel.org\"\n\t<linux-pci@vger.kernel.org>, \"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \"devicetree@vger.kernel.org\"\n\t<devicetree@vger.kernel.org>, \"linux-kernel@vger.kernel.org\"\n\t<linux-kernel@vger.kernel.org>","Subject":"RE: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Thread-Topic":"[PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Thread-Index":"AQHczZH9Fw0NTzMvoUCb4PMSz4pIBbXiJv2AgABoHuA=","Date":"Fri, 17 Apr 2026 03:17:16 +0000","Message-ID":"\n <VI0PR04MB1211449884AC3BC8E3711F1AB92202@VI0PR04MB12114.eurprd04.prod.outlook.com>","References":"<20260416111422.183860-3-sherry.sun@nxp.com>\n <20260416203905.GA29913@bhelgaas>","In-Reply-To":"<20260416203905.GA29913@bhelgaas>","Accept-Language":"zh-CN, en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","authentication-results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=neKor8hf;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52680-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"neKor8hf\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.159.27","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"],"x-ms-publictraffictype":"Email","x-ms-traffictypediagnostic":"VI0PR04MB12114:EE_|DBBPR04MB7787:EE_","x-ms-office365-filtering-correlation-id":"31cdc49b-118a-4f80-b97a-08de9c2fd3e4","x-ms-exchange-senderadcheck":"1","x-ms-exchange-antispam-relay":"0","x-microsoft-antispam":"\n BCL:0;ARA:13230040|366016|7416014|376014|1800799024|19092799006|18002099003|56012099003|22082099003|38070700021;","x-microsoft-antispam-message-info":"\n nQIKTtESUfv6o46CI4Td4FzMFJe4PF9Tg4PN9sKoaMxfYLvHjiAxi1DndPEc3Ci+mxVDtxk8KnX8qcfcNhhqu1CHqw5E1zuMuROFOs/O9Lsxf3d7adCeKq2sktlEO6SL2WPbb2kbbZ8sgEk0RUKFEf4bGOJCnK/r1C30KYgRyhP4830RHjRH5nqrlvhGiESk7W59oYLaIySc5DK2+CgWd/wosdq1JtINNYUNm8dN8dkVXpYGc7VBXf97HpMuIwVAd5Alk5RLQjANifGAZyuVoR7GF0B2pp+LiOU1sxRp6O8+e4lyFljtdUYnHH7lRmCnBPygM94Fd/7Pgzy/m0UX1i2zSjXVoUQIJtvp1fYJeByJjngaxgYIeYOUZ8cUeO9FUQnDS2o5uyWf9bP9u+L4fjZaQI1NwI+FFc6ZdYO740qv6o9iJGNY9EGX89XqJYw4gdmGzowBxI/PuDuFLNrgeP0BoZY6LRJJQmmXWN0nw6mYs6fcHuF2AXZpe4wfRIia/kO22MRKjiMjC3YTs2mruN27eUjScQAdH/KbOuV97Md7o+ioNMxlBpShPMxbO1KBH+SdIlHZZMxcuxfOm2zXWswD6+Ia6I9gw4MUtGY7R6BMvir4HpffDh3RXuwwSkf7PdJfNWJkiXFKe3dZKna/m54zAFduWETkZkhsBkjhF/aloVesT/QzeCWk7a/gDDgg0PdPSWh8rzShTTA0SPuPTsYogfuJnbQCVNUZEx4K4BdbxRpZ2oxoeFL9wHEM2lE4iTBdkEf5g3sz4xiMUNcsulQFEMAWd//oDv/UO9qvU8A3faOIPl89Fco1gndBMwi2","x-forefront-antispam-report":"\n CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR04MB12114.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(19092799006)(18002099003)(56012099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;","x-ms-exchange-antispam-messagedata-chunkcount":"1","x-ms-exchange-antispam-messagedata-0":"\n tclBypOWKFdk9iMx18xMwQSwD2cv54njDR8Xluk9ZaeV51yjMwB6KuuBYsCwwuN0J9/ScCAyQbRmNkTe+Oacmy2q09fouDKjkxZHJjQ5Q66jFwfi+M7/BTok+rSBu5d6ZWjCXQ8bnlp6waIe6F+9ki0THZyktP/7Ks2kiRAvqoAssVyMDx6iD/Phl+xYOXjEArq2cnttkVbRw58z06uQwaIn10/Sff4BcKec1FNY6F1CMFcaeUogdLxYObGHrvtcZMRhVNY4gjfNRyRNv1tzmzc4rTzIXKYgRmr3hc6xPwa4E9XkaLW9jo1CUKdRkz3YTtauyEX7rPMxBU9KYRhq22NMzyw+5DoZHY5jG1i3rkE7fafbh8+55RbwUsS48dStiFJHtqn3cduJHLQDGrl119mlK0BCwMn2NDEBsY6Ar2PhGkw7wTMvS1rmiWk1fkACaTsGNy2tZkqAcAzzCIa87i9Ugc+QHDlGZu46+DR1sp/xWQGwigXhbfUTYNQCZ6yabBP5qoJPMC/KXeHcxhOQRQ1EQ6+5852hYvphVFDOodxBvHmEOM3Gk0oIre9l8x7GIf7Uy8AXZ4sV4CTRuCmctpCeAykB5APG7o3pDEh9lMkxTu0aa72vBvxA4QzC3NEQagiFuf/IRaR4OxCySfXuwPN36xzcLqxi8Q5jXvCGUH534ohZ1CKIUQG7U+AlVlSI7oXXCMoN++R4zKNI+arZyiwuN9yuj3ZN59tFpaqXZQ+KzudYYWd463eYt1s0c/yvHdiC+ybuZgKITa/jtfnGjGdAHa6/D78M5reTf2j7CwI/CyldB+y2xU0Lw4UptevU+Aus6J56ZRWkbpvFwKBoC9a3wKLGKfolAsQlJJGSKwWxtMLJq/xSoO5J91xioSeQuXwyljJZ3ko2nqGRIPQcv9IU6bt6GfFGHDgj2/nDzaupn/JYgTu9P9zB2RviLWQzbjBcdsHq+GIsKjYCQ0NPvp0OOhpkVl7kY9NUV/QUCE2XlJhxLi4zRDSybIXYK2fcQC2r2YdhOrblYYx1/TLMtXU2/23xi32iBpEhQQiAVvmyRPxxXUhja+mztuwUOU/716ityTLm6IaiZ8dzp2/50+drC4SAFXBniGTgaOaZS/5PaUS1Xi8xGtgbl6Xs8Nn6SXoDk8iWPUS0A+VdJfQol8whQqPgjAu+1DkFFhda9W5i0rkFfWypMGIdE5QkJfSlIvUGYmc3AGTTmAx52piXSfNoyjhCIT+ozevZIiPRDsrvNie1VqENexN6KXnDgcY9oh2/5F8neHqZ5K/gts62NZGGDWoCmVfTyuD7zH0tKljMyHGets8+QekgCqQ5hXHPTgQ1/V4JV6/9BATkPXZUHM9m26gQwJukvEWGMuvZMfIsPArXtvHnWEUALBD/UybITcokEWz3XkvH9tynqIhYuCx8/oOI23t0igHPwDychlyOSZx+bREjuAAHGJo0nZKQVp9aQddSsyAcz68vnOgpxpiIGBbueweMty64ZDsoTg0J7YAsz2bBMf2EJV2oKmqXRFkHYF9DaaKr4yKU1spZyDv76FLX9ZDgnumBOMKiv+E2YT9t8Ki5oLNG0XiWX8stSaYjxBLTowMYgMTdZyAfnuwBE9Z6oJLe7d+YnWDoavSr1JQe5jLpPQtou2MnThfQ7e7w63XAjRdO7MwQm1tN0fYx/TY96wy1yo+ufcNbIe7dYi1V4Sq0RNIn96PTSJqo","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"quoted-printable","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-AuthSource":"VI0PR04MB12114.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 31cdc49b-118a-4f80-b97a-08de9c2fd3e4","X-MS-Exchange-CrossTenant-originalarrivaltime":"17 Apr 2026 03:17:16.5279\n (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":"\n m8kzFib327Xh6xMpSpeD5lpgCFemiEBMr5Rg/E/uSri75ahCK74H6/IIoEsBbrqD5gI6zdkpLpkdE9HRtY83nQ==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DBBPR04MB7787"}},{"id":3678870,"web_url":"http://patchwork.ozlabs.org/comment/3678870/","msgid":"<20260417195533.GA92707@bhelgaas>","list_archive_url":null,"date":"2026-04-17T19:55:33","subject":"Re: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","submitter":{"id":67298,"url":"http://patchwork.ozlabs.org/api/people/67298/","name":"Bjorn Helgaas","email":"helgaas@kernel.org"},"content":"On Fri, Apr 17, 2026 at 03:17:16AM +0000, Sherry Sun wrote:\n> > On Thu, Apr 16, 2026 at 07:14:12PM +0800, Sherry Sun wrote:\n> > > Introduce generic helper functions to parse Root Port device\n> > > tree nodes and extract common properties like reset GPIOs. This\n> > > allows multiple PCI host controller drivers to share the same\n> > > parsing logic.\n> > >\n> > > Define struct pci_host_port to hold common Root Port properties\n> > > (currently only reset GPIO descriptor) and add\n> > > pci_host_common_parse_ports() to parse Root Port nodes from\n> > > device tree.\n> > \n> > Are the Root Port and the RC the only possible places for 'reset'\n> > GPIO descriptions in DT?  I think PERST# routing is outside the\n> > PCIe spec, so it seems like a system could provide a PERST# GPIO\n> > routed to any Switch Upstream Port or Endpoint (I assume a PERST#\n> > connected to a switch would apply to both the upstream port and\n> > the downstream ports).\n> \n> Thanks for the feedback. You're right that PERST# routing could\n> theoretically be connected to any device in the hierarchy. However,\n> for this patch series, I've focused on the most common use case in\n> practice: use Root Port level PERST# instead of the legacy Root\n> Complex level PERST#.\n> \n> Root Port level PERST# - This is the primary target, where each Root\n> Port has individual control over devices connected to it.  RC level\n> PERST# - Legacy binding support, where a single GPIO controls all\n> ports.\n> \n> We can extend this framework later if real hardware emerges that\n> needs Switch or EP-level PERST# control. I can add a comment\n> documenting this limitation if needed.\n> \n> BTW, Mani and Rob had some great discussions in dt-schema about\n> PERST# and WAKE# sideband signals settings.\n\n> You can check here:\n> https://github.com/devicetree-org/dt-schema/issues/168\n> https://github.com/devicetree-org/dt-schema/pull/126\n> https://github.com/devicetree-org/dt-schema/pull/170\n\nThe upshot of all those conversations is that WAKE# and PERST# can be\nrouted to arbitrary devices independent of the PCI topology.\n\nI think extending host-generic to look for 'reset' in Root Port nodes\nis the right thing.  My concern is more about where we store it.  This\npatch saves it in a new \"pci_host_port\" struct, but someday we'll want\na place to save the PERST# GPIOs for several slots behind a switch.\nThen we'll have two different ways to save the same information.\n\nWAKE# signals might be more pertinent -- we definitely need to support\nmultiple WAKE# signals below a single Root Port, and it seems like\nPERST# and WAKE# GPIOs should be saved the same place.\n\nI'm wondering if both should go in the pci_dev itself.  I guess the\nimplication is that a pci_dev->reset GPIO would describe a PERST#\nconnected to the device *below* the pci_dev, at least for Downstream\nPorts.\n\nI don't know about WAKE# signals.  When it's in a connector, there's\nprobably only a single possible WAKE# per Downstream Port.  But is it\npossible have multiple WAKE# signals from a multi-function device\nthat's on the motherboard?  Saving the WAKE# GPIO in the Downstream\nPort wouldn't accommodate that case.","headers":{"Return-Path":"\n <linux-pci+bounces-52728-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=oeyODZQ7;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52728-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"oeyODZQ7\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fy5HT61m3z1yHp\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 05:56:37 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 930BF3028B1D\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 19:55:36 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 97006396D08;\n\tFri, 17 Apr 2026 19:55:35 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 71CB7355F49;\n\tFri, 17 Apr 2026 19:55:35 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id E4050C19425;\n\tFri, 17 Apr 2026 19:55:34 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776455735; cv=none;\n b=tMh/gXmm+eAC/uB3M5UdtVj5hr1+0BEn9YcRilS8XtejAkkfBAw2EuhiQZpIjdjCsNpy1yzkSpfvBVtorii+LWrjJEOVfj5Gr8ZWnJdwFEdU1gA4uoxa4RDoIG56+X9j1hRM6mLDyLjN+fyPdLeAj7DxsuG8P8oJuz+c9vNjdX8=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776455735; c=relaxed/simple;\n\tbh=l+dL+bsfkqpxw8vBZ2qjjX1NYJoorXmurqTXyqgMrXM=;\n\th=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type:\n\t Content-Disposition:In-Reply-To;\n b=QBcEbN06/Lw93YXFZVVZUya4BLI7zO/rMLlsSdlijAHIKk0gfWv+bTce7qNVTA+X/2OQuPJpHvwuzZi8PwG2G6BG/jDMQhMC6xE0Qh2kq6HtnGBlQszQ32ZLt0A9CFIAbNTJWzFfOTqvlQNalLrAO2WP59zpL7Rw5GOvyJQOpks=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=oeyODZQ7; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776455735;\n\tbh=l+dL+bsfkqpxw8vBZ2qjjX1NYJoorXmurqTXyqgMrXM=;\n\th=Date:From:To:Cc:Subject:In-Reply-To:From;\n\tb=oeyODZQ7mydKqug4mEFFqwgFy2wf0FKAlp7sEFJNQSbj1jDtm1VgmE/QiQPf6wMmb\n\t D6zt0jL2JMD8k/PnfFAHGgbQYWawCD76DJ6c1cxShv6ZsPixx+NHg+fAHLDx6wWtSo\n\t j6P1XSuE4JxbkM/JjIL41MapnGeDAPaBqhHqJ5fdrx+owkVvW5RBdGMUu8YzGH5uMv\n\t rr5BQnn8via7fKYmj89e3OfqaLe0mNoiG+3E1vhRhcFZpC42zQZ4HxSVrQXPGd21h5\n\t XFp0/tLX+i+3NsVPU0mCh+pOoCIROYgYzKM7j/B3RMf8AwiLoqUpuHStC6GxYRdvl/\n\t RcVvpgff6WYVQ==","Date":"Fri, 17 Apr 2026 14:55:33 -0500","From":"Bjorn Helgaas <helgaas@kernel.org>","To":"Sherry Sun <sherry.sun@nxp.com>","Cc":"\"robh@kernel.org\" <robh@kernel.org>,\n\t\"krzk+dt@kernel.org\" <krzk+dt@kernel.org>,\n\t\"conor+dt@kernel.org\" <conor+dt@kernel.org>,\n\tFrank Li <frank.li@nxp.com>,\n\t\"s.hauer@pengutronix.de\" <s.hauer@pengutronix.de>,\n\t\"kernel@pengutronix.de\" <kernel@pengutronix.de>,\n\t\"festevam@gmail.com\" <festevam@gmail.com>,\n\t\"lpieralisi@kernel.org\" <lpieralisi@kernel.org>,\n\t\"kwilczynski@kernel.org\" <kwilczynski@kernel.org>,\n\t\"mani@kernel.org\" <mani@kernel.org>,\n\t\"bhelgaas@google.com\" <bhelgaas@google.com>,\n\tHongxing Zhu <hongxing.zhu@nxp.com>,\n\t\"l.stach@pengutronix.de\" <l.stach@pengutronix.de>,\n\t\"imx@lists.linux.dev\" <imx@lists.linux.dev>,\n\t\"linux-pci@vger.kernel.org\" <linux-pci@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n <linux-arm-kernel@lists.infradead.org>,\n\t\"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>","Subject":"Re: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Message-ID":"<20260417195533.GA92707@bhelgaas>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"\n <VI0PR04MB1211449884AC3BC8E3711F1AB92202@VI0PR04MB12114.eurprd04.prod.outlook.com>"}},{"id":3679199,"web_url":"http://patchwork.ozlabs.org/comment/3679199/","msgid":"<VI0PR04MB121145DB18C2B744856CA6138922F2@VI0PR04MB12114.eurprd04.prod.outlook.com>","list_archive_url":null,"date":"2026-04-20T02:59:04","subject":"RE: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","submitter":{"id":77063,"url":"http://patchwork.ozlabs.org/api/people/77063/","name":"Sherry Sun","email":"sherry.sun@nxp.com"},"content":"> On Fri, Apr 17, 2026 at 03:17:16AM +0000, Sherry Sun wrote:\n> > > On Thu, Apr 16, 2026 at 07:14:12PM +0800, Sherry Sun wrote:\n> > > > Introduce generic helper functions to parse Root Port device tree\n> > > > nodes and extract common properties like reset GPIOs. This allows\n> > > > multiple PCI host controller drivers to share the same parsing\n> > > > logic.\n> > > >\n> > > > Define struct pci_host_port to hold common Root Port properties\n> > > > (currently only reset GPIO descriptor) and add\n> > > > pci_host_common_parse_ports() to parse Root Port nodes from device\n> > > > tree.\n> > >\n> > > Are the Root Port and the RC the only possible places for 'reset'\n> > > GPIO descriptions in DT?  I think PERST# routing is outside the PCIe\n> > > spec, so it seems like a system could provide a PERST# GPIO routed\n> > > to any Switch Upstream Port or Endpoint (I assume a PERST# connected\n> > > to a switch would apply to both the upstream port and the downstream\n> > > ports).\n> >\n> > Thanks for the feedback. You're right that PERST# routing could\n> > theoretically be connected to any device in the hierarchy. However,\n> > for this patch series, I've focused on the most common use case in\n> > practice: use Root Port level PERST# instead of the legacy Root\n> > Complex level PERST#.\n> >\n> > Root Port level PERST# - This is the primary target, where each Root\n> > Port has individual control over devices connected to it.  RC level\n> > PERST# - Legacy binding support, where a single GPIO controls all\n> > ports.\n> >\n> > We can extend this framework later if real hardware emerges that needs\n> > Switch or EP-level PERST# control. I can add a comment documenting\n> > this limitation if needed.\n> >\n> > BTW, Mani and Rob had some great discussions in dt-schema about PERST#\n> > and WAKE# sideband signals settings.\n> \n> > You can check here:\n> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith\n> > ub.com%2Fdevicetree-org%2Fdt-\n> schema%2Fissues%2F168&data=05%7C02%7Csher\n> >\n> ry.sun%40nxp.com%7Cd68515fdc0f842ac82d708de9cbb4b2e%7C686ea1d3bc\n> 2b4c6f\n> >\n> a92cd99c5c301635%7C0%7C0%7C639120525411363026%7CUnknown%7CTW\n> FpbGZsb3d8\n> >\n> eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIj\n> oiTW\n> >\n> FpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ISzWCMSwqYBdw5w%2\n> BDB5ERK51Dr\n> > Tf2jzGtGh3wKNCMZ8%3D&reserved=0\n> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith\n> > ub.com%2Fdevicetree-org%2Fdt-\n> schema%2Fpull%2F126&data=05%7C02%7Csherry\n> > .sun%40nxp.com%7Cd68515fdc0f842ac82d708de9cbb4b2e%7C686ea1d3bc\n> 2b4c6fa9\n> >\n> 2cd99c5c301635%7C0%7C0%7C639120525411380537%7CUnknown%7CTWFp\n> bGZsb3d8ey\n> >\n> JFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiT\n> WFp\n> >\n> bCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=5cohkQIgl0CDlrOmD0dDIbj\n> Q3%2BVg\n> > VOhiOMDRQD1iwLM%3D&reserved=0\n> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith\n> > ub.com%2Fdevicetree-org%2Fdt-\n> schema%2Fpull%2F170&data=05%7C02%7Csherry\n> > .sun%40nxp.com%7Cd68515fdc0f842ac82d708de9cbb4b2e%7C686ea1d3bc\n> 2b4c6fa9\n> >\n> 2cd99c5c301635%7C0%7C0%7C639120525411391138%7CUnknown%7CTWFp\n> bGZsb3d8ey\n> >\n> JFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiT\n> WFp\n> >\n> bCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=WtjyGdvt4s84HynGc3%2F0\n> K3UfkZii\n> > naNAW1ypEd%2B11RY%3D&reserved=0\n> \n> The upshot of all those conversations is that WAKE# and PERST# can be\n> routed to arbitrary devices independent of the PCI topology.\n> \n> I think extending host-generic to look for 'reset' in Root Port nodes is the right\n> thing.  My concern is more about where we store it.  This patch saves it in a\n> new \"pci_host_port\" struct, but someday we'll want a place to save the\n> PERST# GPIOs for several slots behind a switch.\n> Then we'll have two different ways to save the same information.\n> \n> WAKE# signals might be more pertinent -- we definitely need to support\n> multiple WAKE# signals below a single Root Port, and it seems like PERST#\n> and WAKE# GPIOs should be saved the same place.\n> \n> I'm wondering if both should go in the pci_dev itself.  I guess the implication\n> is that a pci_dev->reset GPIO would describe a PERST# connected to the\n> device *below* the pci_dev, at least for Downstream Ports.\n\nHi Bjorn,\nOk, understand your concern, currently I've defined the struct pci_host_port  to\nstore the common Root Port properties and added the list of 'ports' to struct\npci_host_bridge.\nI will let @mani to comment and see if this is the appropriate place to store\nthese info, or if we should store them in struct pci_dev. Mani, can you please help?\n\nBut for now, the motivation for this patch is that many PCI host controller drivers\ncurrently share the same requirement: extracting common Root Port properties like\nreset GPIOs (at least currently in many drivers, perst is placed in the root port). We\nintroduce generic helper functions to parse the Root Port t device tree nodes and extract\nthese properties so that multiple PCI drivers can share the same parsing logic. I'm not\nsure if we should take a step forward here anyway?\n\nBest Regards\nSherry\n> \n> I don't know about WAKE# signals.  When it's in a connector, there's probably\n> only a single possible WAKE# per Downstream Port.  But is it possible have\n> multiple WAKE# signals from a multi-function device that's on the\n> motherboard?  Saving the WAKE# GPIO in the Downstream Port wouldn't\n> accommodate that case.","headers":{"Return-Path":"\n <linux-pci+bounces-52741-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=ZLH8JESd;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-52741-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"ZLH8JESd\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.162.69","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fzVZC0nWjz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 12:59:15 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 065993007956\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 02:59:13 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7DC5837F73B;\n\tMon, 20 Apr 2026 02:59:10 +0000 (UTC)","from PA4PR04CU001.outbound.protection.outlook.com\n (mail-francecentralazon11013069.outbound.protection.outlook.com\n [40.107.162.69])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 825C237EFEE;\n\tMon, 20 Apr 2026 02:59:08 +0000 (UTC)","from VI0PR04MB12114.eurprd04.prod.outlook.com\n (2603:10a6:800:315::13) by AS8PR04MB7704.eurprd04.prod.outlook.com\n (2603:10a6:20b:296::14) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.32; Mon, 20 Apr\n 2026 02:59:05 +0000","from VI0PR04MB12114.eurprd04.prod.outlook.com\n ([fe80::feda:fd0e:147f:f994]) by VI0PR04MB12114.eurprd04.prod.outlook.com\n ([fe80::feda:fd0e:147f:f994%6]) with mapi id 15.20.9818.032; Mon, 20 Apr 2026\n 02:59:05 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776653950; cv=fail;\n b=i4OADpyzEQ6e3tYozTd/jv0MsApIEOBRGXnbndU2vEWgo80oCQiCz5SlRjD906z9uabWxgUpoUzcn5qq4FyPHGUQdZSMHWitLDDfmBaVsV6qG1Ay5mBxVih9WbsGr06aU6ED6A+73f7g9Dnz0jZHAqnG9SMW90QKxdRCOSNp26U=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=VlYpoiArvz3ebiFFUOSvBvOhwbs1FWk9tCupSxWoFY3PQDEggmczMdpfvAHtVCX5Ko/NnwvIT78PNNkaruTZ1JIrdov2j+ALPkDtiEdyu372MgMsEMVcRP/qfbgdwhVIPqHJHRjX/M4cPNcktgdrSdw2x0MlC13iNbSq3QlnPDkjqN/57WSUSGc8zmkuI8uc32f8iugceFuJrmqjz/fQWEjiNqLZYqGFNEOe9vTJWV19JM6B9RwB/SpBvxE8AW8++gmUrK2a91GkgAHeTv2F/Tu8/gPLW2ejhyBHG4JvKH5to6LD+/KOlYeTCp4DTxNW31WnaOT8WlLfrb+rlyldDw=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776653950; c=relaxed/simple;\n\tbh=HgbxIGSaSBkgBUCArH+jcvekOdWpYOMAWv7x/V9asHg=;\n\th=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To:\n\t Content-Type:MIME-Version;\n b=IjbFtjJp+OC2svbwenh/cGVUwfTBy/YdcpJkOKBpzTgs1TH1BuTONuA7iMNwS0aMwxKu5LUfT4w8maoiOC1SRBc1ntNzwy4aS6TxzWgAoa4h9LuN0yXNtNeS1AQBkWjkyONmZFNGCP8gpyy1aYZbxNYioxllPWXj7HpR2Fs6REk=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=GohfPZ7b0PneqV8zfrmIrWMre5KXUq79+06BLuYuq44=;\n b=GUJBT43Ip7T08q8YJLZlJ/z9bcZVZZjnoas8/wflTdb9pz7Fztrv8GEBXmqZvTMkIUO+zo9oGHu2CAlRey96alfxPaYvbgCkxBbSxMB8I9dRxxkDaEOQhYFJD/pBSwVzSo3ZUyXfjVFu12khGI+WgoyAnNfd06Nh3N10yujm59ehapr3+i+WCRB5g4yk+XSW+G+UQW3Cg4kzuRBwCX7GKXsN2mNHUconRpoQ7HXCvswG0Sv3gHbKHB78D/xZQyS+eSgKFIfaMF9wexeMR+W/Sf36t2bOa+RwK1x+pDsY60HcrLdVZPa88DPwqN8eJRfRB220PpFynhag3UrpHlgyZA=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com;\n spf=pass smtp.mailfrom=nxp.com;\n dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=ZLH8JESd; arc=fail smtp.client-ip=40.107.162.69","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=GohfPZ7b0PneqV8zfrmIrWMre5KXUq79+06BLuYuq44=;\n b=ZLH8JESd/2IioCqFkaBPT072w1Jh/2wuS5/8EogZyUIrQ0S2PUAYUfnfV7qHhscGgfGvv6/+lWcc6+JyaiDT4WSyDnUWjLsMmEp4FIjLI86wqggV8dQNJeua8zcZ8aSD9g9PpR7Z25oF1QGZ/OvOpZWYmLj3F2mtI0AOR47813hXnKfhwv3ujr5lDmEqb34knn/iaA6AX2vO7ynPc2yTPQPPx0dh2ky6N18ts3iXNVLmqrGqwvFu5YN3z0b1/p1viOJ0Ma5UWUb9xFFOb+DZ2IC4EzV+E+kHqUQ2RYyiz7lieR/E6BJqzgmk+boTVx8+dFXVkDwykEiWLCKzwMONPg==","From":"Sherry Sun <sherry.sun@nxp.com>","To":"Bjorn Helgaas <helgaas@kernel.org>, \"mani@kernel.org\" <mani@kernel.org>","CC":"\"robh@kernel.org\" <robh@kernel.org>, \"krzk+dt@kernel.org\"\n\t<krzk+dt@kernel.org>, \"conor+dt@kernel.org\" <conor+dt@kernel.org>, Frank Li\n\t<frank.li@nxp.com>, \"s.hauer@pengutronix.de\" <s.hauer@pengutronix.de>,\n\t\"kernel@pengutronix.de\" <kernel@pengutronix.de>, \"festevam@gmail.com\"\n\t<festevam@gmail.com>, \"lpieralisi@kernel.org\" <lpieralisi@kernel.org>,\n\t\"kwilczynski@kernel.org\" <kwilczynski@kernel.org>, \"bhelgaas@google.com\"\n\t<bhelgaas@google.com>, Hongxing Zhu <hongxing.zhu@nxp.com>,\n\t\"l.stach@pengutronix.de\" <l.stach@pengutronix.de>, \"imx@lists.linux.dev\"\n\t<imx@lists.linux.dev>, \"linux-pci@vger.kernel.org\"\n\t<linux-pci@vger.kernel.org>, \"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \"devicetree@vger.kernel.org\"\n\t<devicetree@vger.kernel.org>, \"linux-kernel@vger.kernel.org\"\n\t<linux-kernel@vger.kernel.org>","Subject":"RE: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Thread-Topic":"[PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Thread-Index":"AQHczZH9Fw0NTzMvoUCb4PMSz4pIBbXiJv2AgABoHuCAAR4OgIADlH+Q","Date":"Mon, 20 Apr 2026 02:59:04 +0000","Message-ID":"\n <VI0PR04MB121145DB18C2B744856CA6138922F2@VI0PR04MB12114.eurprd04.prod.outlook.com>","References":"\n <VI0PR04MB1211449884AC3BC8E3711F1AB92202@VI0PR04MB12114.eurprd04.prod.outlook.com>\n <20260417195533.GA92707@bhelgaas>","In-Reply-To":"<20260417195533.GA92707@bhelgaas>","Accept-Language":"zh-CN, en-US","Content-Language":"en-US","X-Mentions":"mani@kernel.org","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","authentication-results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=ZLH8JESd;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-52741-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"ZLH8JESd\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.162.69","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"],"x-ms-publictraffictype":"Email","x-ms-traffictypediagnostic":"VI0PR04MB12114:EE_|AS8PR04MB7704:EE_","x-ms-office365-filtering-correlation-id":"d3705802-af13-4504-379a-08de9e88c886","x-ms-exchange-senderadcheck":"1","x-ms-exchange-antispam-relay":"0","x-microsoft-antispam":"\n BCL:0;ARA:13230040|366016|1800799024|376014|7416014|19092799006|38070700021|56012099003|22082099003|18002099003;","x-microsoft-antispam-message-info":"\n OGL6B8WakU+TuMH6L7CwHXM549Eyhj6+pfRuc+D9f+ppQJDipXEzwfp3308Y2yjPWmJEOI0zcTnyLVkXnFIa9TA02o+aG3R/eKkBMNV+0VRMfEjrnSxcCUz3Hrj5HCN5HxRB6sxZAnlCplVG8gvi3jL5aKZW0JU3TgUEN+2TpPZG0+HiTWmRjdRxKvaXwcDC+4E0C14ilMuRiJGbo6CENJnhiNHHOMqoawXDNvL+CyeN6nWb/ALuaFj3DYxp+M2t51xf/mar9SgepYoMojJpkkPMKzofVi1hp8pEdcjB7loGtcIyPtLqRyo2ThdGiHS/dMQ+SgZ2LfDpz7y/YiyeCp6PF5sOikC7S4UqUt519cvuiXTli9G2wKEFMHp5XM+iXZeC7rmWmbpKwa0FU9AlPXmftsSbp3aSCObsp3re+e1k0Ml8zue54qQnuwqPYXBDMoS4Z+YbfxERklLGXvdBWwGf8ia9RB3DHWZnlp5YzpjafWZxECUSLREiLD0YKMon1C/ovM2Pgz1kMiD32ZujaG15n6KAanBgcoB+H0bQqsXPZgdfTLNzAqIVz0T3lVqeFxCs/BSkoGX/4kqn2GQCQ6mxwCnXEI4NmoI6wknXZUyH4v96/+/lSrBEafPtkk1irgfWFLqNjyxC8wgPvi97tSbI4QlNjaeynDlGT4OKBjdQvyJv4JBK3GNMnyJg/qCFjw8gkAivfEoZeRvCZ1WjasTTnXM7k0XAlZ8KpBeTnleM19+w0ZTW8fTnMto+fbaFy9De4yl8MSxCWCM2WTjdwvVTVqcnulQpTYmFmJFT8Cc=","x-forefront-antispam-report":"\n CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR04MB12114.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(19092799006)(38070700021)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;","x-ms-exchange-antispam-messagedata-chunkcount":"1","x-ms-exchange-antispam-messagedata-0":"\n Nr9rVP+gw5A9YjuTLFcz6fbmjR14v4WXgxrwvEjKZshTs4RqIxlfUIIWC92J3zP6TjHgtNKxCgNWu+r4x7lfwDbj9wxdbxiCPGsbaGbiPzfxM7nMCK7T0xrT/3nSaeFfF52yas0uzzJlW4IOy+Pzq5g5ySRkQF9ZIGjpxF85/8ikGfYlmHlwE1A3qVnMR0ILoGRB82Mhdl8/1rZy/8deouQ7tjfycRlLEE6HzCpXgvln/mld97uzjtd+IxKaL8uFX2d4sLzqN1JD0inCus+xaXU3YGN1VR+5QxqvkchNdMn4Bc8+3XYbA7sFUCWyhB34Na1c1fVyiQo+xLWDh5wWzuhLD1o7FXN1svSjmszoaDzfi6nMkiWqJPlcw2Z9rcU+wFJY/ix5HghgF3Dt/Y9ZjA5RrJj6YRy50NxDNQI9yKsJDhYDktXOf4EfPDkgE+VIGXGZa0F/UGSIS9vZKRHgeqYPFYUIxgjyuGrw5NljBUd/x6Bco92byvkgtzdKxFOTmJVZNfk6Gp0sKRx7byNcnRVigwpLq/HeSQ6T46641+w3hRDLQVrmQyWThmS1Fci+ZaauoXXqIRtJjJgeH1RLNU/KEgE1+o2W+MSIiK18gLU1efcKYW7Sbtpof/uj7iiu8HwVyZxf+allnuBaQ5WtZweeHHhOPsDG2/OHMIAKIAvNGd7A51+c0gaM4yu2dMlNS5YjgwnbSr07lnXQy/kojkh6HxeR+wvNoPfu20jYijUbAz67B80yZYxqzjP/kiIOx3kcjiXlFucSmTu8kYXbVuu/x4MyQ2aN7vnGkWAcd8/7KGTC713eoUkmYDzdv1u8abNykf6X+Y7aDFOXhdFzh62qVkwMMcMCCX/pDQ6Z9mh2KWPFxE6l5OYLeqpxlvwBCBvJbjh7jJr+vv5Ky4avJXwdv7YGrtkqeI/92WVG4tILlCNweNJoGUDWYDDwAQ5IoUnCDVcksSN5a3G9CDyfJ1DZjkOfgZdXuApXRZB5bSn/M6jGiQTshktEthfXebWY7Y02hyXVoPR53QXGZTPRHy/duV6zFChzEsTAbjx5alXVAFvvPY2gobViUsja+C3PcDTvGH/AjIJu+abxLQKZaxTfiktyhulxLrT4dlKQTqgsLJOhveN8iAqXOatxg+cO/+Hzd4cDcx67m8yfBP4EfLng+k9mZ0rR8SUIYAOMBA14BKqUFov/zVE2xOlE/xnkjld/63fJbY8w5tq+qqLO/HjanRbidbwgNwiT1pa3TQsCpAjmdtzcglS5ujZ/uvonFySWDCfKZ2Ua8VXuvdIZU0bdlCb3svxDIR1LpugbfQkqqmdJYBb9wGbae6Ao92jpHERK18WNBcTeyKy69dJkSnv598X3oN0VWND/2zbxbI8PqKmxPF713wWe+zGAtPXxmoV2rIfYi4m5ymWlJWdrFLyFs7BlPrupvCdmgu2Jo3rHYS0mbUvrC6kLARF36yN5R4Dl4lTOV2IxLpAHUzsCGuZWnZCI5/0Z+Yqb1NZs9vY1g5SrxvirSCNaAEaLRSp6zYJ+bjIHGZMSgEgTG1kx2BaQZRYpl+5ErIENhaEKnF8zu+TcomlhaS6WVsZBL3D4VhbLinXnBH0JcTyUwT0hp2DQmOiqoRZPDdtp68pq4QUYt+GUPWjV30C9E+Jgym5tHgdywH4QxRP1Kd4/z+AIZLmaM5T3FSwJoh8rRhRGWUEVHYPjvYcAwWJrxIYmrUae","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"quoted-printable","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-AuthSource":"VI0PR04MB12114.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n d3705802-af13-4504-379a-08de9e88c886","X-MS-Exchange-CrossTenant-originalarrivaltime":"20 Apr 2026 02:59:05.0082\n (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":"\n UCJxq8a4NEDvQvCOcC6xQRuFGwni1BxfNHuoR9WjZibwfldgE9ztYYwlqW93s8E4tvS+FeYdkg476ADYC2qf7g==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AS8PR04MB7704"}},{"id":3679226,"web_url":"http://patchwork.ozlabs.org/comment/3679226/","msgid":"<viggqsxczf5d5hok4qpqhknalwb46xapsgdxbbgbqhruhyn2hn@wtck4yajmuw7>","list_archive_url":null,"date":"2026-04-20T05:59:37","subject":"Re: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","submitter":{"id":78905,"url":"http://patchwork.ozlabs.org/api/people/78905/","name":"Manivannan Sadhasivam","email":"mani@kernel.org"},"content":"On Fri, Apr 17, 2026 at 02:55:33PM -0500, Bjorn Helgaas wrote:\n> On Fri, Apr 17, 2026 at 03:17:16AM +0000, Sherry Sun wrote:\n> > > On Thu, Apr 16, 2026 at 07:14:12PM +0800, Sherry Sun wrote:\n> > > > Introduce generic helper functions to parse Root Port device\n> > > > tree nodes and extract common properties like reset GPIOs. This\n> > > > allows multiple PCI host controller drivers to share the same\n> > > > parsing logic.\n> > > >\n> > > > Define struct pci_host_port to hold common Root Port properties\n> > > > (currently only reset GPIO descriptor) and add\n> > > > pci_host_common_parse_ports() to parse Root Port nodes from\n> > > > device tree.\n> > > \n> > > Are the Root Port and the RC the only possible places for 'reset'\n> > > GPIO descriptions in DT?  I think PERST# routing is outside the\n> > > PCIe spec, so it seems like a system could provide a PERST# GPIO\n> > > routed to any Switch Upstream Port or Endpoint (I assume a PERST#\n> > > connected to a switch would apply to both the upstream port and\n> > > the downstream ports).\n> > \n> > Thanks for the feedback. You're right that PERST# routing could\n> > theoretically be connected to any device in the hierarchy. However,\n> > for this patch series, I've focused on the most common use case in\n> > practice: use Root Port level PERST# instead of the legacy Root\n> > Complex level PERST#.\n> > \n> > Root Port level PERST# - This is the primary target, where each Root\n> > Port has individual control over devices connected to it.  RC level\n> > PERST# - Legacy binding support, where a single GPIO controls all\n> > ports.\n> > \n> > We can extend this framework later if real hardware emerges that\n> > needs Switch or EP-level PERST# control. I can add a comment\n> > documenting this limitation if needed.\n> > \n> > BTW, Mani and Rob had some great discussions in dt-schema about\n> > PERST# and WAKE# sideband signals settings.\n> \n> > You can check here:\n> > https://github.com/devicetree-org/dt-schema/issues/168\n> > https://github.com/devicetree-org/dt-schema/pull/126\n> > https://github.com/devicetree-org/dt-schema/pull/170\n> \n> The upshot of all those conversations is that WAKE# and PERST# can be\n> routed to arbitrary devices independent of the PCI topology.\n> \n> I think extending host-generic to look for 'reset' in Root Port nodes\n> is the right thing.  My concern is more about where we store it.  This\n> patch saves it in a new \"pci_host_port\" struct, but someday we'll want\n> a place to save the PERST# GPIOs for several slots behind a switch.\n> Then we'll have two different ways to save the same information.\n> \n\nEven if there are PERST# GPIOs from the host, connected to downstream ports of a\nPCIe switch, they could be stored in the Root Port's (pci_host_port) struct as a\nlist of PERST#. This is what pcie-qcom driver does.\n\nIt is too clumsy to handle PERST# individually for each device. We tried it\nbefore with pwrctrl, but it always ended up biting us on who gets to control the\nPERST#. We can't let pwrctrl handle PERST# for a switch port and host controller\ndriver handle it for RP. And we cannot let pwrctrl handle PERST# for all ports,\nbecause, host controller drivers also need to control them for RC\ninitialization.\n\nThat's why it was decided to handle PERST# for all ports in the host controller\ndrivers. So following that pattern, this helper could also be extended to parse\nthe PERST# from all ports defined in DT and store them in the same Root Port\nstruct.\n\nIt should be trivial to implement this logic in the current helper. @Sherry:\nCould you please implement this logic?\n\n> WAKE# signals might be more pertinent -- we definitely need to support\n> multiple WAKE# signals below a single Root Port, and it seems like\n> PERST# and WAKE# GPIOs should be saved the same place.\n> \n> I'm wondering if both should go in the pci_dev itself.  I guess the\n> implication is that a pci_dev->reset GPIO would describe a PERST#\n> connected to the device *below* the pci_dev, at least for Downstream\n> Ports.\n> \n\nProblem is, PERST# needs to be controlled even before 'pci_dev' gets created. We\ncreate 'pci_dev' only when a device get's detected. But the PERST# assertion and\ndeassertion happens even before the pci_host_probe() call, which is the starting\npoint for enumeration. That's why storing it as a list in 'pci_host_bridge'\nmakes it accessible by the host controller drivers.\n\n> I don't know about WAKE# signals.  When it's in a connector, there's\n> probably only a single possible WAKE# per Downstream Port.  But is it\n> possible have multiple WAKE# signals from a multi-function device\n> that's on the motherboard?  Saving the WAKE# GPIO in the Downstream\n> Port wouldn't accommodate that case.\n\nAFAIK, a single device can have only one WAKE# irrespective of how many function\nit exposes. PCIe base spec doesn't indicate whether it is per-device or\nper-function, but the form factor specfications like CEM, Mini-CEM define it as\na per-device signal.\n\nMoreover, unlike PERST#, WAKE# is not driven by the host system. Host just needs\nto register an IRQ handler to service the interrupts raised by the device. So it\ncan be parsed *after* enumerating a device and stored in 'pci_dev' as done in\nKrishna's series:\nhttps://lore.kernel.org/linux-pci/20260403-wakeirq_support-v9-0-1cbecf3b58d7@oss.qualcomm.com/\n\n- Mani","headers":{"Return-Path":"\n <linux-pci+bounces-52744-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=a70U5ES6;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-pci+bounces-52744-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"a70U5ES6\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fzZZm0qVcz1yHB\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 16:00:00 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 2124F300371A\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 05:59:56 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id CF14535C190;\n\tMon, 20 Apr 2026 05:59:52 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id A7F10277029;\n\tMon, 20 Apr 2026 05:59:52 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 97238C19425;\n\tMon, 20 Apr 2026 05:59:46 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776664792; cv=none;\n b=SRG/MsUHuEw65N1TYLD//PWgJlLidMH6lxrwlBiFXyv5nX+dGVLcmhm3BGYKXHM+g8cSMjbD6jW1tZoChXzZBO2cfz7kK7ukr/1qqRrcGrm+zz5jStoaW7OGFUfRpwSYMS1I0oOPIidhU4b5wTr8KcYGbeCmKOk+zrkLPBFgIEM=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776664792; c=relaxed/simple;\n\tbh=qvl88XtpdJrz8xvd3WG4vIRbwZ4m+ixBTe9tfI8jYX0=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=sAwQsVrb/Z0GINW42mfLC18HoFiAqaUw+M1pKe11rUFzXn+yqsBto8ylAvlpw+s+0YG7sJ64i6wYt72zhLUG4UDxJurgF+iHNWIDzkihhV5Yye/8lnrEVOX6zz53feGH5faZ0zSL9/iVDSqqe/t/zTAyqMJuhM/hmYUnAkd2QqA=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=a70U5ES6; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776664792;\n\tbh=qvl88XtpdJrz8xvd3WG4vIRbwZ4m+ixBTe9tfI8jYX0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=a70U5ES6AjDceje7rOqIc7JnQIn22gpZdzWbf3e1gVc9efcR1maz9eUKMxJq2DOOa\n\t I8T4UsKNswsirAX8s3GwZtGavjXDUesSVhiMNuHkP9rk4Uw9/UySyDAbO4YjHrsVGX\n\t Gz7HJ3XN9bYIA8we2iuQVq8jtLYiATvFWZSkeo+GZL3oT79t2BlJxY/vmOSaWM0Nfy\n\t /nM55fF4TSFZpAi4z+X4qQ/eSRoIfa8PnfBDWS8AzFdLW5tWaHP6WIqx5MQgNdsmdn\n\t uNVIivsEoINM2+IPspRN1QCp8oiE9H+MrBU/Cm6Peo4A5wyeqfbL38e/MGQ6G5LAy8\n\t hXQUqEFPkmUnw==","Date":"Mon, 20 Apr 2026 11:29:37 +0530","From":"\"mani@kernel.org\" <mani@kernel.org>","To":"Bjorn Helgaas <helgaas@kernel.org>","Cc":"Sherry Sun <sherry.sun@nxp.com>, \"robh@kernel.org\" <robh@kernel.org>,\n\t\"krzk+dt@kernel.org\" <krzk+dt@kernel.org>,\n \"conor+dt@kernel.org\" <conor+dt@kernel.org>,\n\tFrank Li <frank.li@nxp.com>,\n \"s.hauer@pengutronix.de\" <s.hauer@pengutronix.de>,\n\t\"kernel@pengutronix.de\" <kernel@pengutronix.de>,\n \"festevam@gmail.com\" <festevam@gmail.com>,\n\t\"lpieralisi@kernel.org\" <lpieralisi@kernel.org>,\n \"kwilczynski@kernel.org\" <kwilczynski@kernel.org>,\n\t\"bhelgaas@google.com\" <bhelgaas@google.com>,\n Hongxing Zhu <hongxing.zhu@nxp.com>,\n\t\"l.stach@pengutronix.de\" <l.stach@pengutronix.de>,\n \"imx@lists.linux.dev\" <imx@lists.linux.dev>,\n\t\"linux-pci@vger.kernel.org\" <linux-pci@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n <linux-arm-kernel@lists.infradead.org>,\n \"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>","Subject":"Re: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Message-ID":"<viggqsxczf5d5hok4qpqhknalwb46xapsgdxbbgbqhruhyn2hn@wtck4yajmuw7>","References":"\n <VI0PR04MB1211449884AC3BC8E3711F1AB92202@VI0PR04MB12114.eurprd04.prod.outlook.com>\n <20260417195533.GA92707@bhelgaas>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20260417195533.GA92707@bhelgaas>"}},{"id":3679286,"web_url":"http://patchwork.ozlabs.org/comment/3679286/","msgid":"<VI0PR04MB12114304913B6AACF6A206E10922F2@VI0PR04MB12114.eurprd04.prod.outlook.com>","list_archive_url":null,"date":"2026-04-20T08:24:57","subject":"RE: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","submitter":{"id":77063,"url":"http://patchwork.ozlabs.org/api/people/77063/","name":"Sherry Sun","email":"sherry.sun@nxp.com"},"content":"> On Fri, Apr 17, 2026 at 02:55:33PM -0500, Bjorn Helgaas wrote:\n> > On Fri, Apr 17, 2026 at 03:17:16AM +0000, Sherry Sun wrote:\n> > > > On Thu, Apr 16, 2026 at 07:14:12PM +0800, Sherry Sun wrote:\n> > > > > Introduce generic helper functions to parse Root Port device\n> > > > > tree nodes and extract common properties like reset GPIOs. This\n> > > > > allows multiple PCI host controller drivers to share the same\n> > > > > parsing logic.\n> > > > >\n> > > > > Define struct pci_host_port to hold common Root Port properties\n> > > > > (currently only reset GPIO descriptor) and add\n> > > > > pci_host_common_parse_ports() to parse Root Port nodes from\n> > > > > device tree.\n> > > >\n> > > > Are the Root Port and the RC the only possible places for 'reset'\n> > > > GPIO descriptions in DT?  I think PERST# routing is outside the\n> > > > PCIe spec, so it seems like a system could provide a PERST# GPIO\n> > > > routed to any Switch Upstream Port or Endpoint (I assume a PERST#\n> > > > connected to a switch would apply to both the upstream port and\n> > > > the downstream ports).\n> > >\n> > > Thanks for the feedback. You're right that PERST# routing could\n> > > theoretically be connected to any device in the hierarchy. However,\n> > > for this patch series, I've focused on the most common use case in\n> > > practice: use Root Port level PERST# instead of the legacy Root\n> > > Complex level PERST#.\n> > >\n> > > Root Port level PERST# - This is the primary target, where each Root\n> > > Port has individual control over devices connected to it.  RC level\n> > > PERST# - Legacy binding support, where a single GPIO controls all\n> > > ports.\n> > >\n> > > We can extend this framework later if real hardware emerges that\n> > > needs Switch or EP-level PERST# control. I can add a comment\n> > > documenting this limitation if needed.\n> > >\n> > > BTW, Mani and Rob had some great discussions in dt-schema about\n> > > PERST# and WAKE# sideband signals settings.\n> >\n> > > You can check here:\n> > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi\n> > > thub.com%2Fdevicetree-org%2Fdt-\n> schema%2Fissues%2F168&data=05%7C02%7C\n> > >\n> sherry.sun%40nxp.com%7C232644f8bbe64279f77908de9ea20b09%7C686ea1\n> d3bc\n> > >\n> 2b4c6fa92cd99c5c301635%7C0%7C0%7C639122615977862858%7CUnknown\n> %7CTWFp\n> > >\n> bGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4z\n> MiIs\n> > >\n> IkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=r7szCLCsGFN2\n> 1ULZ\n> > > ibH7Ga%2FH0e6VyIdqznKCJ6yIGM4%3D&reserved=0\n> > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi\n> > > thub.com%2Fdevicetree-org%2Fdt-\n> schema%2Fpull%2F126&data=05%7C02%7Csh\n> > >\n> erry.sun%40nxp.com%7C232644f8bbe64279f77908de9ea20b09%7C686ea1d\n> 3bc2b\n> > >\n> 4c6fa92cd99c5c301635%7C0%7C0%7C639122615977892044%7CUnknown%7\n> CTWFpbG\n> > >\n> Zsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiI\n> sIk\n> > >\n> FOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=o3RIy1SfvTGfkX\n> 9rm8\n> > > dNH2or5SZ7v5bYF%2Fl1XGaf8aA%3D&reserved=0\n> > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi\n> > > thub.com%2Fdevicetree-org%2Fdt-\n> schema%2Fpull%2F170&data=05%7C02%7Csh\n> > >\n> erry.sun%40nxp.com%7C232644f8bbe64279f77908de9ea20b09%7C686ea1d\n> 3bc2b\n> > >\n> 4c6fa92cd99c5c301635%7C0%7C0%7C639122615977910169%7CUnknown%7\n> CTWFpbG\n> > >\n> Zsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiI\n> sIk\n> > >\n> FOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=d8SBGcqKcjYe1i\n> iqs9\n> > > %2F%2Bg1o%2FbECHYtnEULg7hTXyKmY%3D&reserved=0\n> >\n> > The upshot of all those conversations is that WAKE# and PERST# can be\n> > routed to arbitrary devices independent of the PCI topology.\n> >\n> > I think extending host-generic to look for 'reset' in Root Port nodes\n> > is the right thing.  My concern is more about where we store it.  This\n> > patch saves it in a new \"pci_host_port\" struct, but someday we'll want\n> > a place to save the PERST# GPIOs for several slots behind a switch.\n> > Then we'll have two different ways to save the same information.\n> >\n> \n> Even if there are PERST# GPIOs from the host, connected to downstream\n> ports of a PCIe switch, they could be stored in the Root Port's (pci_host_port)\n> struct as a list of PERST#. This is what pcie-qcom driver does.\n> \n> It is too clumsy to handle PERST# individually for each device. We tried it\n> before with pwrctrl, but it always ended up biting us on who gets to control\n> the PERST#. We can't let pwrctrl handle PERST# for a switch port and host\n> controller driver handle it for RP. And we cannot let pwrctrl handle PERST# for\n> all ports, because, host controller drivers also need to control them for RC\n> initialization.\n> \n> That's why it was decided to handle PERST# for all ports in the host controller\n> drivers. So following that pattern, this helper could also be extended to parse\n> the PERST# from all ports defined in DT and store them in the same Root Port\n> struct.\n> \n> It should be trivial to implement this logic in the current helper. @Sherry:\n> Could you please implement this logic?\n\nHi Mani, do you mean the similar logic in this patch?\nhttps://lore.kernel.org/all/20251216-pci-pwrctrl-rework-v2-1-745a563b9be6@oss.qualcomm.com/\nIf yes, of cause I can do this for current helper functions in pci-host-common.c.\n\nBest Regards\nSherry","headers":{"Return-Path":"\n <linux-pci+bounces-52754-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=JlJhJRN0;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-52754-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"JlJhJRN0\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.159.35","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fzdqh6zNRz1yD4\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 18:26:24 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 2EB9B302293C\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 08:25:07 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id A4B62388395;\n\tMon, 20 Apr 2026 08:25:04 +0000 (UTC)","from OSPPR02CU001.outbound.protection.outlook.com\n (mail-norwayeastazon11013035.outbound.protection.outlook.com [40.107.159.35])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id DFDCA388360;\n\tMon, 20 Apr 2026 08:25:02 +0000 (UTC)","from VI0PR04MB12114.eurprd04.prod.outlook.com\n (2603:10a6:800:315::13) by AS8PR04MB8900.eurprd04.prod.outlook.com\n (2603:10a6:20b:42f::9) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.32; Mon, 20 Apr\n 2026 08:24:58 +0000","from VI0PR04MB12114.eurprd04.prod.outlook.com\n ([fe80::feda:fd0e:147f:f994]) by VI0PR04MB12114.eurprd04.prod.outlook.com\n ([fe80::feda:fd0e:147f:f994%6]) with mapi id 15.20.9818.032; Mon, 20 Apr 2026\n 08:24:57 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776673504; cv=fail;\n b=ZpYJoAavZbi97JwDquWkf9yJXwtitIWfN57CjeG15zl+pjBsq7risgM8PxA2qn7YPV7UU8zNFWAQ/41/DkftKbJLaMpt+pTIH0iE+uKZyCwHB5bSC5M61cortjwplUlCfv1f2X4akkEPuG5vnJLqhf0CYRHjclZiJHosJfcxjyM=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Ltc6+3W1Tfzbjv2VFeZYlWwMcpAvDwZB3vuBk4jZbna+JHb6bDWveTtBIPrZC/swW2BzrDUL/sqQt6KUrIVjwRSqIpEtmhvLWns347ViavUOtApTL40sbmmiIGF5BtNPkrtZhj6CxyJtTihbmywPYq1dgdAmkIssIBy2ANe7D4yTKM4vGdUdCkxkYHFnPlOjTdOWzCUj0rPRJrN+XiCQ+FeOLlUP8TCmBjvDuJyvNlcZJp1xRhLgnuZ7UT+QyZtl+4zBbAUOF+O6d+TJu5GvcdeYb7Zpm4Gx7pW0wIgGMyVCONZ9UjmoxQpj4vY0K6v7/gVZJDNl8jfeeMqiFbprww=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776673504; c=relaxed/simple;\n\tbh=Sg7sa5OcdBLBkFsBm+3u0pfrC3cFNCJFONCxBinJY38=;\n\th=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To:\n\t Content-Type:MIME-Version;\n b=J8iFeU9RVnS5Y4BZ5GtoFaxaYatO03LdRCZvUqt2E9Vw54Bvxs/LH6nj02IPMt5wPfsaAn9oVCuJSxXncjvxp7N96KSNMckeWXpL6dYNv+mhdmKTHcHpmTi+dTydmlZDCZcZzmEcuRxq3H4EFFucbxH7b4GRJKaeWBF6ynOoAQE=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=Sg7sa5OcdBLBkFsBm+3u0pfrC3cFNCJFONCxBinJY38=;\n b=Vir0HmMpTnrNggsfQHMw/6rdDAeHNXRZLVj2YKmg0ID7a03lqvYaYQTw0nNAtUanGXx1ssfdVKQ/0ZbGV6RZlDDxfHznAylYtSTVNePIqI2msje1ZudARcmCrNhcyQqNc7g7+CTLpj2L8bUgAAne/tiGaXdHWiQBaUHjnpWWmdiO/XZOeRBB2z3toHMJ9CV/4gxGqEerWYLDdCz01v/bnTopyVtAYw0QpVb08GSK96DMzrEf2CVVtAMo/LdofJDg1pu26PysfLyRiMLhAw6LhzfVRCJlM4hFcbZ31Xh527NGaYK9GsG7yBk+dsc2p6A8ka6WWkJS1/UjA30Q+ioA8w=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com;\n spf=pass smtp.mailfrom=nxp.com;\n dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=JlJhJRN0; arc=fail smtp.client-ip=40.107.159.35","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=Sg7sa5OcdBLBkFsBm+3u0pfrC3cFNCJFONCxBinJY38=;\n b=JlJhJRN0nIT5U+9G5Fk/ujvWNDZ/zwBPzgZdj02eAGH9djA619ttel6mj5nE7/ejiaO4jUSqLirnZSRjJO4Wt+ygM8U6nb5Jp4HP579C3ulZAyu78K+8rbHj/hr/tg9Ak+5I2yxJp0WJjkpHbG4OK47e3kkDFLcT2gk6IGRkGko+gXNJoXvyRr9/HIrjnzNYhKSdKYhFxxlYwB+Fyh9llR4UZIczaY9EMKiZtQfsQ6a77P3iCZ1rt6Pf8KaIli+I8Ny5JEvNpNLRHkTi21r3lAiQ9t5u90/P1HS3Ru8jsu9AzYS/1j1E2assdmDZBD2GvE1SDa8r5G7YbRtXwI03ng==","From":"Sherry Sun <sherry.sun@nxp.com>","To":"\"mani@kernel.org\" <mani@kernel.org>, Bjorn Helgaas <helgaas@kernel.org>","CC":"\"robh@kernel.org\" <robh@kernel.org>, \"krzk+dt@kernel.org\"\n\t<krzk+dt@kernel.org>, \"conor+dt@kernel.org\" <conor+dt@kernel.org>, Frank Li\n\t<frank.li@nxp.com>, \"s.hauer@pengutronix.de\" <s.hauer@pengutronix.de>,\n\t\"kernel@pengutronix.de\" <kernel@pengutronix.de>, \"festevam@gmail.com\"\n\t<festevam@gmail.com>, \"lpieralisi@kernel.org\" <lpieralisi@kernel.org>,\n\t\"kwilczynski@kernel.org\" <kwilczynski@kernel.org>, \"bhelgaas@google.com\"\n\t<bhelgaas@google.com>, Hongxing Zhu <hongxing.zhu@nxp.com>,\n\t\"l.stach@pengutronix.de\" <l.stach@pengutronix.de>, \"imx@lists.linux.dev\"\n\t<imx@lists.linux.dev>, \"linux-pci@vger.kernel.org\"\n\t<linux-pci@vger.kernel.org>, \"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \"devicetree@vger.kernel.org\"\n\t<devicetree@vger.kernel.org>, \"linux-kernel@vger.kernel.org\"\n\t<linux-kernel@vger.kernel.org>","Subject":"RE: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Thread-Topic":"[PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Thread-Index":"AQHczZH9Fw0NTzMvoUCb4PMSz4pIBbXiJv2AgABoHuCAAR4OgIADzW+AgAAm9nA=","Date":"Mon, 20 Apr 2026 08:24:57 +0000","Message-ID":"\n <VI0PR04MB12114304913B6AACF6A206E10922F2@VI0PR04MB12114.eurprd04.prod.outlook.com>","References":"\n <VI0PR04MB1211449884AC3BC8E3711F1AB92202@VI0PR04MB12114.eurprd04.prod.outlook.com>\n <20260417195533.GA92707@bhelgaas>\n <viggqsxczf5d5hok4qpqhknalwb46xapsgdxbbgbqhruhyn2hn@wtck4yajmuw7>","In-Reply-To":"<viggqsxczf5d5hok4qpqhknalwb46xapsgdxbbgbqhruhyn2hn@wtck4yajmuw7>","Accept-Language":"zh-CN, en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","authentication-results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=JlJhJRN0;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-52754-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"JlJhJRN0\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.159.35","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"],"x-ms-publictraffictype":"Email","x-ms-traffictypediagnostic":"VI0PR04MB12114:EE_|AS8PR04MB8900:EE_","x-ms-office365-filtering-correlation-id":"2487fc2e-cc3f-4d9e-ead6-08de9eb64eeb","x-ms-exchange-senderadcheck":"1","x-ms-exchange-antispam-relay":"0","x-microsoft-antispam":"\n BCL:0;ARA:13230040|19092799006|366016|7416014|1800799024|376014|38070700021|56012099003|22082099003|18002099003;","x-microsoft-antispam-message-info":"\n KROOqezBiG0T3VskYJfVcVEYZ418HKEXkOQl3M3sC5A+cC2xr7pAate9BI1zxKl6i7yW+AUFgrLJUgN2Pa5PuSVgfIUY15vVUJdQCEdTcCAHCRYW7uN3D8tbz3feaoJspVH8U4x91W/0G8RyKnyQ6YyGjO7xK1FIVZbaVpW4TD85biEAf/eHqnBvB3NS7u2UXmkbkVHR6ogqYRqlCg2fd5qf6UQoLnAJA/yx00h2RrJQBeA7Z3qwI1/SN8nd5wU4Dy6q2MLb8PwsvtSHpab2QghPPJFSwp2LPxTrGCRzduZXvifRnSfhDxqhrXGL4E9u7wv4lLaEr62lwOdSq+abCXQM5KJOsIOlpV1W1MvEEzF+aB6TzyFa1hqSGe/PmBo//+6q/aXg6AbZ7cKDnefJ8MEzG2hWk2dXsHRgAuaA8tXW+eXGkKOPOPjCNkjLiP+ClDzJpUgYbXY6u2vl8H1FQYKh015JlMf6qEsYepPPNhx1vFR0IUcFm6MhvK9w6hUHxTi9dv2LVDfFiT+cCGQSjliOLT78Xnk/COjCtGPjTyYWpC6vO2J684R86Vn0lV+269fxHIoO1KBSaKNrd6rh/CCtAl2yze9Ssq1e9xNhGGzT0JyV/ftM/Vs7Zf8A/dHUX7Vt4ubt4EWcZ6bTiMj5iMwJsvq3ezuLorrG2zBtCNneG1PqxnswMT6LhL/iSgIt2BZeDNt+63cROefNeP+mQlPezvQKcs8SXa2nP2LqEH8QvhRm97tXmfPAnNXmyzVGURJIiCsjTRWAGiaVx69uAqdz9pEejo3uEI8F3yGuBXc=","x-forefront-antispam-report":"\n CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR04MB12114.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(366016)(7416014)(1800799024)(376014)(38070700021)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;","x-ms-exchange-antispam-messagedata-chunkcount":"1","x-ms-exchange-antispam-messagedata-0":"=?utf-8?q?yUdjAe7It3optCpPXSqa6R7i7HZT?=\n\t=?utf-8?q?84G4RWGjBtfipaxdSlkUJPWqDX1hrWIi4YknDKdDE8EAGZlI6hLydrHhTBE0GZbq+?=\n\t=?utf-8?q?PK/Qls4mA1fETEI3qB5awn7xExO+hVANo1Li4m/LO+h60toZNojtO2R+CLroaY6tp?=\n\t=?utf-8?q?DfOLZSxRBPOpYLeoPbdWhIczTTw5a8zGAl71piSW1b2McTTpEx4haVDd9Wl+2f3To?=\n\t=?utf-8?q?JoQ312+OKarik0VTVv1Gkc6up/ds0/Yjp4rXl/WwINEZnPf2XS+D01FB466AVjeqe?=\n\t=?utf-8?q?xZsfJUxf6Ui4YhS3pzMlsQbwx4FCsH0tTCVJl935MQhVOPNa2VTmjdmjWl/XyX6hx?=\n\t=?utf-8?q?wSAYkrFRYQU8tsFIVB4NPvPMmXAmNE47hBrYcEeLhO67y55J/XjYX7ilC6rNjfBp7?=\n\t=?utf-8?q?PwrZouJCV6BnlWGAbs0guMACGZpQClui8mZcMReqkWxAdZNVXxc35/3G62VrYSaFF?=\n\t=?utf-8?q?izAQ2mi7K+dpfT6dI1N0juYYQ5qp1q7AfggP+quwowjgXDqA2GtqgqwLScJrPe+pP?=\n\t=?utf-8?q?kFWxUfyjYE7nqZU0hPc4pAJKi6S1ZhUsRLUuq1tTHw6hnhTD4reo0JmaeaLHLxOaM?=\n\t=?utf-8?q?IgxnFMGzLVfLkgQ5DWr8Vo92Ft9S617HPhyXtAAFJSoxQ7d9ofT22lr1QZqlr66ab?=\n\t=?utf-8?q?l54oJ/5IdWyIlrd7JASTsmAHPPzlmnPLTU+mc7cu+ftF05yNK4VHRG8fVX7J2Fj1q?=\n\t=?utf-8?q?AvcP7aaCpK9fY4ZN61jjjU5JWC2SUzZNBRpelOQShbAvFe2J1hKx3t4CKzeOxvpqN?=\n\t=?utf-8?q?x7jgPEPKzugVyk6xNPLHzD+hKLWk7nNOzY3VJDW8M1/rUNEgS3MCnKfpZl+PbZFXl?=\n\t=?utf-8?q?+MPC9ywNjdgoADCl8kS0qgCQdBbubMeN7sIaYxmyxEuv7bMBDbWihEq7par3xKEkN?=\n\t=?utf-8?q?QDLDVXEr8IBDjMzkuHZxgc4/OH7gAJXpYsjTM2ManjLAKTv0wxcPk2v7E6vK549FX?=\n\t=?utf-8?q?sej/Wr3nkFAxPD4rPTU2ZAKf74jHphvy6+tiwsi0FGNPGO4lmzgk6sVVd3XPuDJTV?=\n\t=?utf-8?q?xWPiri5s6GifdgM32DnkuLXXzL0fP0WKphfmfxdo2GTpy/lI4ZbmBLemFl1iP1xDN?=\n\t=?utf-8?q?l61o78Hn8l7F2jGHmBRTSnMLSwvNJOec7UrJQ8ZAbiwg3Aw2H5SqJcVAju9nmeFXH?=\n\t=?utf-8?q?EQWjlA7UL5pxCj8i3eoYQZeq+V7Wf09914TepfrwwlT1yVZOKhETWo6eX+MfiFwq4?=\n\t=?utf-8?q?en15ujRUiEXtMwDU/wj/FurEK+XxgaIHGE1893Fn5TWdDfoqNpHZjdj9nt2OA2oRO?=\n\t=?utf-8?q?EDPzpU/sNvQ8AyM/e2FnQYC6HJwx9E3vbJzMZdLDLYQ4X2lanv4NuWRFaBoeYz1a7?=\n\t=?utf-8?q?ZQFFUTs2037pCdzz2SF6RozrxaRw17VotK51i7tKsd/4m36lEcbkZd9mekGpUt19d?=\n\t=?utf-8?q?RHX3oMlGZZiPInNsvPUiN8Dm5seIO9sb8zNnIzzWbzLE67/bcmcTv3ysQmptJnqKd?=\n\t=?utf-8?q?TX2+nnBxT2UNz+FqH/3vKU9p+/CsyH/JLFIBJ9gQgMdn/w4K5XS439Hac+6xhFzuf?=\n\t=?utf-8?q?bzEAol7xc7GQ/lZVBrVAR/o6+lulIHEuENaSQvju7ms78hJgbV+jD6vvyBhoUoO2Z?=\n\t=?utf-8?q?OU5UgFnz+BUoAVEJ3AN+GNUvXOhtKkAe9x9VPOmFgkfxuXDsaYd0UjRXWbexVAxPV?=\n\t=?utf-8?q?sdOvtTPXGa?=","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-AuthSource":"VI0PR04MB12114.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 2487fc2e-cc3f-4d9e-ead6-08de9eb64eeb","X-MS-Exchange-CrossTenant-originalarrivaltime":"20 Apr 2026 08:24:57.8382\n (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":"\n vC6LFQNy3CPucZp9szdDkyzRK4gnSk0zZhHSmYr4pvjSoNVwSxhXYKaHiyh69YFivuF/ua8zuI1j8eGV/hHs/w==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AS8PR04MB8900"}},{"id":3679325,"web_url":"http://patchwork.ozlabs.org/comment/3679325/","msgid":"<nwoyko5feezkakwjjgwdbpwrlv7a3e72avux36t72uzp5mc2x7@26q7fnpvwupe>","list_archive_url":null,"date":"2026-04-20T09:35:06","subject":"Re: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","submitter":{"id":78905,"url":"http://patchwork.ozlabs.org/api/people/78905/","name":"Manivannan Sadhasivam","email":"mani@kernel.org"},"content":"On Mon, Apr 20, 2026 at 08:24:57AM +0000, Sherry Sun wrote:\n\n[...]\n\n> > Even if there are PERST# GPIOs from the host, connected to downstream\n> > ports of a PCIe switch, they could be stored in the Root Port's (pci_host_port)\n> > struct as a list of PERST#. This is what pcie-qcom driver does.\n> > \n> > It is too clumsy to handle PERST# individually for each device. We tried it\n> > before with pwrctrl, but it always ended up biting us on who gets to control\n> > the PERST#. We can't let pwrctrl handle PERST# for a switch port and host\n> > controller driver handle it for RP. And we cannot let pwrctrl handle PERST# for\n> > all ports, because, host controller drivers also need to control them for RC\n> > initialization.\n> > \n> > That's why it was decided to handle PERST# for all ports in the host controller\n> > drivers. So following that pattern, this helper could also be extended to parse\n> > the PERST# from all ports defined in DT and store them in the same Root Port\n> > struct.\n> > \n> > It should be trivial to implement this logic in the current helper. @Sherry:\n> > Could you please implement this logic?\n> \n> Hi Mani, do you mean the similar logic in this patch?\n> https://lore.kernel.org/all/20251216-pci-pwrctrl-rework-v2-1-745a563b9be6@oss.qualcomm.com/\n> If yes, of cause I can do this for current helper functions in pci-host-common.c.\n> \n\nYes!\n\n- Mani","headers":{"Return-Path":"\n <linux-pci+bounces-52766-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=iV9s2VE7;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-52766-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"iV9s2VE7\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fzgMT0Kwfz1yD4\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 19:35:32 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id BCB5830285D7\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 09:35:24 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 472523876DF;\n\tMon, 20 Apr 2026 09:35:21 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 2231E13AA2F;\n\tMon, 20 Apr 2026 09:35:20 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 4C961C19425;\n\tMon, 20 Apr 2026 09:35:15 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776677721; cv=none;\n b=mKIno91d/R+RFjdXKz+GF+9jy7xbZsekgdiv828KPKqXvcAT91T+GmeidzP7ldz7U5X3HVzaxVYIaeD7FYHHLfaH9cLQw7GOVV7RUerElWpQv9Tzv4wFIoAlDCQEkWs71opdyLQNHpp8mP4NgXMwXH5qBZbpv7zIaNFgBXDwaNo=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776677721; c=relaxed/simple;\n\tbh=ie4pHq24hX87Ox/y+xM4soh8D6peU7BX9IY2UXo6tvo=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=O8rJuJPzI+mdY8jTJablrzni6hRQx82E7/Mx3WKykvRPtAiLo9XFT8Ccfi5/vCf+Z7/mBBdsfBI1thKdZ2jJF4Qk0muNuDeBoQrDqPXMKL5nVgjv7Wo/NIFQdNvsiR8qM6gULmqaL/DKWZ98oY+iHJ7CE2rO28jG2R5Xhxr7mq4=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=iV9s2VE7; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776677720;\n\tbh=ie4pHq24hX87Ox/y+xM4soh8D6peU7BX9IY2UXo6tvo=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=iV9s2VE7d9sBsBuzGHLRNE26Z22EnHXTiJ4oB0tzlYLUsoh7adXQjrGiO64itbhCZ\n\t Om6gFOOYbUfzpwhvKwAkzv7SRRB8Bi+81ZYByhhaH8AiyYH/py4Wz+GULEuUIgdj44\n\t WKkH3tlPvTs0mit1v59bSBi7j3dbvmgImK/GONTje2t5eucckT0rrUcSO35nDE25mN\n\t 8P/w+UqUlb9QyQApZK93jcQoxTEhKrhxyos1w7O81m/iWpXnxDYVP5nWiN5kmwEdts\n\t /UndC8ta1PzkwWXmoCWTM6O14Hpsx9uqN8KQS69u+ON8rvUss13OSrJvZDwtFlfHsB\n\t q5FIQySjmrYvw==","Date":"Mon, 20 Apr 2026 15:05:06 +0530","From":"\"mani@kernel.org\" <mani@kernel.org>","To":"Sherry Sun <sherry.sun@nxp.com>","Cc":"Bjorn Helgaas <helgaas@kernel.org>,\n\t\"robh@kernel.org\" <robh@kernel.org>,\n \"krzk+dt@kernel.org\" <krzk+dt@kernel.org>,\n\t\"conor+dt@kernel.org\" <conor+dt@kernel.org>, Frank Li <frank.li@nxp.com>,\n\t\"s.hauer@pengutronix.de\" <s.hauer@pengutronix.de>,\n \"kernel@pengutronix.de\" <kernel@pengutronix.de>,\n\t\"festevam@gmail.com\" <festevam@gmail.com>,\n \"lpieralisi@kernel.org\" <lpieralisi@kernel.org>,\n\t\"kwilczynski@kernel.org\" <kwilczynski@kernel.org>,\n \"bhelgaas@google.com\" <bhelgaas@google.com>,\n\tHongxing Zhu <hongxing.zhu@nxp.com>,\n \"l.stach@pengutronix.de\" <l.stach@pengutronix.de>,\n\t\"imx@lists.linux.dev\" <imx@lists.linux.dev>,\n \"linux-pci@vger.kernel.org\" <linux-pci@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n <linux-arm-kernel@lists.infradead.org>,\n \"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>","Subject":"Re: [PATCH V13 02/12] PCI: host-generic: Add common helpers for\n parsing Root Port properties","Message-ID":"<nwoyko5feezkakwjjgwdbpwrlv7a3e72avux36t72uzp5mc2x7@26q7fnpvwupe>","References":"\n <VI0PR04MB1211449884AC3BC8E3711F1AB92202@VI0PR04MB12114.eurprd04.prod.outlook.com>\n <20260417195533.GA92707@bhelgaas>\n <viggqsxczf5d5hok4qpqhknalwb46xapsgdxbbgbqhruhyn2hn@wtck4yajmuw7>\n <VI0PR04MB12114304913B6AACF6A206E10922F2@VI0PR04MB12114.eurprd04.prod.outlook.com>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"\n <VI0PR04MB12114304913B6AACF6A206E10922F2@VI0PR04MB12114.eurprd04.prod.outlook.com>"}}]