From: Dan Williams <dan.j.williams@intel.com>
To: Lukas Wunner <lukas@wunner.de>, Bartosz Golaszewski <brgl@bgdev.pl>
Cc: "Kalle Valo" <kvalo@kernel.org>,
"David S . Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Bjorn Andersson" <andersson@kernel.org>,
"Konrad Dybcio" <konrad.dybcio@linaro.org>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Will Deacon" <will@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Heiko Stuebner" <heiko@sntech.de>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Chris Morgan" <macromorgan@hotmail.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Geert Uytterhoeven" <geert+renesas@glider.be>,
"Arnd Bergmann" <arnd@arndb.de>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Nícolas F . R . A . Prado" <nfraprado@collabora.com>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
"Peng Fan" <peng.fan@nxp.com>,
"Robert Richter" <rrichter@amd.com>,
"Dan Williams" <dan.j.williams@intel.com>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
"Terry Bowman" <terry.bowman@amd.com>,
"Kuppuswamy Sathyanarayanan"
<sathyanarayanan.kuppuswamy@linux.intel.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Huacai Chen" <chenhuacai@kernel.org>,
"Alex Elder" <elder@linaro.org>,
"Srini Kandagatla" <srinivas.kandagatla@linaro.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
"Bartosz Golaszewski" <bartosz.golaszewski@linaro.org>
Subject: Re: [RFC 3/9] PCI/portdrv: create platform devices for child OF nodes
Date: Wed, 10 Jan 2024 12:41:17 -0800 [thread overview]
Message-ID: <659f00ed271b3_5cee2942@dwillia2-xfh.jf.intel.com.notmuch> (raw)
In-Reply-To: <20240110132853.GA6860@wunner.de>
[ add Terry ]
Lukas Wunner wrote:
> On Wed, Jan 10, 2024 at 01:55:18PM +0100, Bartosz Golaszewski wrote:
> > On Tue, Jan 9, 2024 at 3:43???PM Lukas Wunner <lukas@wunner.de> wrote:
> > > On Thu, Jan 04, 2024 at 02:01:17PM +0100, Bartosz Golaszewski wrote:
> > > > In order to introduce PCIe power-sequencing, we need to create platform
> > > > devices for child nodes of the port driver node. They will get matched
> > > > against the pwrseq drivers (if one exists) and then the actuak PCIe
> > > > device will reuse the node once it's detected on the bus.
> > > [...]
> > > > --- a/drivers/pci/pcie/portdrv.c
> > > > +++ b/drivers/pci/pcie/portdrv.c
> > > > @@ -715,7 +716,7 @@ static int pcie_portdrv_probe(struct pci_dev *dev,
> > > > pm_runtime_allow(&dev->dev);
> > > > }
> > > >
> > > > - return 0;
> > > > + return devm_of_platform_populate(&dev->dev);
> > > > }
> > >
> > > I think this belongs in of_pci_make_dev_node(), portdrv seems totally
> > > the wrong place. Note that you're currently calling this for RCECs
> > > (Root Complex Event Collectors) as well, which is likely not what
> > > you want.
> > >
> >
> > of_pci_make_dev_node() is only called when the relevant PCI device is
> > instantiated which doesn't happen until it's powered-up and scanned -
> > precisely the problem I'm trying to address.
>
> No, of_pci_make_dev_node() is called *before* device_attach(),
> i.e. before portdrv has even probed. So it seems this should
> work perfectly well for your use case.
>
>
> > > devm functions can't be used in the PCI core, so symmetrically call
> > > of_platform_unpopulate() from of_pci_remove_node().
> >
> > I don't doubt what you're saying is true (I've seen worse things) but
> > this is the probe() callback of a driver using the driver model. Why
> > wouldn't devres work?
>
> The long term plan is to move the functionality in portdrv to
> the PCI core. Because devm functions can't be used in the PCI
> core, adding new ones to portdrv will *add* a new roadblock to
> migrating portdrv to the PCI core. In other words, it makes
> future maintenance more difficult.
>
> Generally, only PCIe port services which share the same interrupt
> (hotplug, PME, bandwith notification, flit error counter, ...)
> need to live in portdrv. Arbitrary other stuff should not be
> shoehorned into portdrv.
I came here to say the same thing. It is already the case that portdrv
is not a good model to build new functionality upon [1], and PCI core
enlightenment should be considered first.
The portdrv model is impeding Terry's CXL Port error handling effort, so
I am on the lookout for portdrv growing new entanglements to unwind
later.
[1]: http://lore.kernel.org/r/20221025232535.GA579167@bhelgaas
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-01-10 20:42 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-04 13:01 [RFC 0/9] PCI: introduce the concept of power sequencing of PCIe devices Bartosz Golaszewski
2024-01-04 13:01 ` [RFC 1/9] arm64: dts: qcom: sm8250: describe the PCIe port Bartosz Golaszewski
2024-01-04 13:01 ` [RFC 2/9] arm64: dts: qcom: qrb5165-rb5: describe the WLAN module of QCA6390 Bartosz Golaszewski
2024-01-04 13:44 ` Dmitry Baryshkov
2024-01-04 15:13 ` Bartosz Golaszewski
2024-01-04 13:01 ` [RFC 3/9] PCI/portdrv: create platform devices for child OF nodes Bartosz Golaszewski
2024-01-06 1:05 ` Jeff Johnson
[not found] ` <20240109144327.GA10780@wunner.de>
2024-01-10 12:55 ` Bartosz Golaszewski
[not found] ` <20240110132853.GA6860@wunner.de>
2024-01-10 16:26 ` Bartosz Golaszewski
[not found] ` <20240110164105.GA13451@wunner.de>
2024-01-10 20:18 ` Bartosz Golaszewski
[not found] ` <20240111104211.GA32504@wunner.de>
2024-01-11 11:09 ` Bartosz Golaszewski
[not found] ` <20240111150201.GA28409@wunner.de>
2024-01-11 16:16 ` Bartosz Golaszewski
2024-01-11 21:43 ` Geert Uytterhoeven
2024-01-12 9:43 ` Bartosz Golaszewski
[not found] ` <20240112094312.GA8704@wunner.de>
2024-01-17 23:38 ` Rob Herring
2024-01-10 20:41 ` Dan Williams [this message]
2024-01-11 12:40 ` Manivannan Sadhasivam
2024-01-04 13:01 ` [RFC 4/9] PCI: hold the rescan mutex when scanning for the first time Bartosz Golaszewski
2024-01-04 13:01 ` [RFC 5/9] PCI/pwrseq: add pwrseq core code Bartosz Golaszewski
2024-01-06 1:25 ` Jeff Johnson
2024-01-04 13:01 ` [RFC 6/9] dt-bindings: vendor-prefixes: add a PCI prefix for Qualcomm Atheros Bartosz Golaszewski
2024-01-04 14:49 ` Sebastian Reichel
[not found] ` <20240108191052.GA1893484-robh@kernel.org>
2024-01-08 19:22 ` Bartosz Golaszewski
2024-01-09 2:56 ` Rob Herring
2024-01-09 9:17 ` Krzysztof Kozlowski
2024-01-09 9:30 ` Bartosz Golaszewski
2024-01-04 13:01 ` [RFC 7/9] dt-bindings: wireless: ath11k: describe QCA6390 Bartosz Golaszewski
2024-01-04 15:57 ` Krzysztof Kozlowski
2024-01-09 9:13 ` Kalle Valo
2024-01-04 13:01 ` [RFC 8/9] PCI/pwrseq: add a pwrseq driver for QCA6390 Bartosz Golaszewski
2024-01-06 1:31 ` Jeff Johnson
2024-01-09 9:18 ` Kalle Valo
2024-01-09 9:34 ` Chen-Yu Tsai
2024-01-09 10:09 ` Kalle Valo
2024-01-09 10:14 ` Arnd Bergmann
2024-01-09 10:26 ` Chen-Yu Tsai
2024-01-09 10:38 ` Arnd Bergmann
2024-01-09 16:43 ` Kalle Valo
2024-01-09 16:46 ` Arnd Bergmann
2024-01-04 13:01 ` [RFC 9/9] arm64: defconfig: enable the PCIe power sequencing " Bartosz Golaszewski
2024-01-04 15:11 ` [RFC 0/9] PCI: introduce the concept of power sequencing of PCIe devices Sebastian Reichel
2024-01-08 15:24 ` Neil Armstrong
2024-01-08 16:10 ` Bartosz Golaszewski
2024-01-09 4:08 ` Florian Fainelli
2024-01-09 7:08 ` Chen-Yu Tsai
2024-01-09 7:41 ` Manivannan Sadhasivam
2024-01-09 9:29 ` Geert Uytterhoeven
2024-01-09 9:24 ` Kalle Valo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=659f00ed271b3_5cee2942@dwillia2-xfh.jf.intel.com.notmuch \
--to=dan.j.williams@intel.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=andersson@kernel.org \
--cc=arnd@arndb.de \
--cc=bartosz.golaszewski@linaro.org \
--cc=bhelgaas@google.com \
--cc=brgl@bgdev.pl \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=elder@linaro.org \
--cc=geert+renesas@glider.be \
--cc=gregkh@linuxfoundation.org \
--cc=heiko@sntech.de \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jernej.skrabec@gmail.com \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=kvalo@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=m.szyprowski@samsung.com \
--cc=macromorgan@hotmail.com \
--cc=neil.armstrong@linaro.org \
--cc=netdev@vger.kernel.org \
--cc=nfraprado@collabora.com \
--cc=pabeni@redhat.com \
--cc=peng.fan@nxp.com \
--cc=robh+dt@kernel.org \
--cc=rrichter@amd.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=srinivas.kandagatla@linaro.org \
--cc=terry.bowman@amd.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox