On Fri, Feb 14, 2025 at 12:39:33PM -0500, Jim Quinlan wrote: > Our system for enabling and disabling regulators is designed to work only 'system'? Perhaps 'logic'? > on the port driver below the root complex. The conditions to discriminate > for this case should be the same when we are adding or removing the bus. > Without this change the regulators may be disabled prematurely when a bus > further down the tree is removed. > > Fixes: 9e6be018b263 ("PCI: brcmstb: Enable child bus device regulators from DT") > Signed-off-by: Jim Quinlan <james.quinlan@xxxxxxxxxxxx> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> - Mani > --- > drivers/pci/controller/pcie-brcmstb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c > index 56b49d3cae19..e1059e3365bd 100644 > --- a/drivers/pci/controller/pcie-brcmstb.c > +++ b/drivers/pci/controller/pcie-brcmstb.c > @@ -1440,7 +1440,7 @@ static void brcm_pcie_remove_bus(struct pci_bus *bus) > struct subdev_regulators *sr = pcie->sr; > struct device *dev = &bus->dev; > > - if (!sr) > + if (!sr || !bus->parent || !pci_is_root_bus(bus->parent)) > return; > > if (regulator_bulk_disable(sr->num_supplies, sr->supplies)) > -- > 2.43.0 > -- மணிவண்ணன் சதாசிவம்