On Mon, Apr 14, 2025 at 7:07 AM Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> wrote: > > On Tue, Apr 08, 2025 at 02:26:24PM -0700, Brian Norris wrote: > > + adding pcie-brcmstb.c folks > > > > On Tue, Apr 08, 2025 at 12:59:39PM -0700, Brian Norris wrote: > > > TL;DR: PCIe link-up may depend on pwrctrl; however, link-startup is > > > often run before pwrctrl gets involved. I'm exploring options to resolve > > > this. > > > > Apologies if a quick self-reply is considered nosiy or rude, but I > > nearly forgot that I previously was looking at "pwrctrl"-like > > functionality and noticed that drivers/pci/controller/pcie-brcmstb.c has > > had a portion of the same "pwrctrl" functionality for some time (commit > > 93e41f3fca3d ("PCI: brcmstb: Add control of subdevice voltage > > regulators")). > > > > Yes, the goal of the pwrctrl driver is to get rid of this clutter from the > controller drivers. > > > Notably, it performs its power sequencing before starting its link, for > > (I believe) exactly the same reasons as I mention below. While I'm sure > > it could theoretically be nice for them to be able to use > > drivers/pci/pwrctrl/, I expect they cannot today, for the same reasons. > > > > If you look into brcm_pcie_add_bus(), they are ignoring the return value of > brcm_pcie_start_link() precisely for the reason I explained in the previous > thread. However, they do check for it in brcm_pcie_resume_noirq() which looks > like a bug as the controller will fail to resume from system suspend if no > devices are connected. The reason our brcm_pcie_add_bus() does not check/return an error is that the caller will invoke a WARN() on our error, or at least that was the case when the commit was submitted. We want to be good citizens. Also, for our driver, if the pcie-link-up fails, the probe() fails. There is no subsequent suspend/resume possible. We do not support PCIe hotplug in HW or SW. Regards, Jim Quinlan Broadcom STB > > - Mani > > -- > மணிவண்ணன் சதாசிவம்