On Wed, Jul 09, 2025 at 01:35:08PM +0530, Manivannan Sadhasivam wrote: > On Tue, Jul 08, 2025 at 08:15:39PM GMT, Brian Norris wrote: > > On Mon, Jul 07, 2025 at 11:48:39PM +0530, Manivannan Sadhasivam wrote: > > > --- a/drivers/pci/pwrctrl/core.c > > > +++ b/drivers/pci/pwrctrl/core.c > > > +static void pci_pwrctrl_perst_deassert(struct pci_pwrctrl *pwrctrl) > > > +{ > > > + /* Bail out early to avoid the delay if PERST# is not available */ > > > + if (!pwrctrl->perst) > > > + return; > > > + > > > + msleep(PCIE_T_PVPERL_MS); > > > + gpiod_set_value_cansleep(pwrctrl->perst, 0); > > > > What if PERST# was already deasserted? On one hand, we're wasting time > > here if so. On the other, you're not accomplishing your spec-compliance > > goal if it was. > > > > If controller drivers populate 'pci_host_bridge::perst', then they should not > deassert PERST# as they don't control the supplies. I've mentioned it in the > cover letter, but I will mention it in commit message also. Sorry, I think I partially read that, but didn't really grasp how it fit in here. I commented on patch 3 where you try to implement this. IIUC, you're making excessive assumptions about the use of pwrctrl. Brian