On Mon, Jun 16, 2025 at 7:32 AM Manivannan Sadhasivam <mani@xxxxxxxxxx> wrote: > > pci_pwrctrl_create_device() is a PWRCTRL framework API. So it should be > built only when CONFIG_PWRCTRL is enabled. Currently, it is built > independently of CONFIG_PWRCTRL. This creates enumeration failure on > platforms like brcmstb using out-of-tree devicetree that describes the > power supplies for endpoints in the PCIe child node, but doesn't use > PWRCTRL framework to manage the supplies. The controller driver itself > manages the supplies. > > But in any case, the API should be built only when CONFIG_PWRCTRL is > enabled. So move its definition to drivers/pci/pwrctrl/core.c and provide > a stub in drivers/pci/pci.h when CONFIG_PWRCTRL is not enabled. This also > fixes the enumeration issues on the affected platforms. > > Fixes: 957f40d039a9 ("PCI/pwrctrl: Move creation of pwrctrl devices to pci_scan_device()") > Reported-by: Jim Quinlan <james.quinlan@xxxxxxxxxxxx> > Closes: https://lore.kernel.org/r/CA+-6iNwgaByXEYD3j=-+H_PKAxXRU78svPMRHDKKci8AGXAUPg@xxxxxxxxxxxxxx > Suggested-by: Bjorn Helgaas <helgaas@xxxxxxxxxx> > Signed-off-by: Manivannan Sadhasivam <mani@xxxxxxxxxx> > --- Acked-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>