Hi, This series reworks the PCI/pwrctl integration to ensure that the pwrctl drivers are always probed before the PCI client drivers. This series addresses a race condition when both pwrctl and pwrctl/pwrseq drivers probe parallely (even when the later one probes last). One such issue was reported for the Qcom X13s platform with WLAN module and fixed with 'commit a9aaf1ff88a8 ("power: sequencing: request the WLAN enable GPIO as-is")'. Though the issue was fixed with a hack in the pwrseq driver, it was clear that the issue is applicable to all pwrctl drivers. Hence, this series tries to address the issue in the PCI/pwrctl integration. - Mani Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> --- Changes in v2: - Used for_each_available_child_of_node_scoped() to iterate over child nodes (Bartosz) - Collected tags - Link to v1: https://lore.kernel.org/r/20241022-pci-pwrctl-rework-v1-0-94a7e90f58c5@xxxxxxxxxx --- Manivannan Sadhasivam (5): PCI/pwrctl: Use of_platform_device_create() to create pwrctl devices PCI/pwrctl: Create pwrctl devices only if at least one power supply is present PCI/pwrctl: Ensure that the pwrctl drivers are probed before the PCI client drivers PCI/pwrctl: Move pwrctl device creation to its own helper function PCI/pwrctl: Remove pwrctl device without iterating over all children of pwrctl parent drivers/pci/bus.c | 64 +++++++++++++++++++++++++++++++++++++++++------ drivers/pci/of.c | 27 ++++++++++++++++++++ drivers/pci/pci.h | 5 ++++ drivers/pci/pwrctl/core.c | 10 -------- drivers/pci/remove.c | 17 ++++++------- 5 files changed, 96 insertions(+), 27 deletions(-) --- base-commit: 48dc7986beb60522eb217c0016f999cc7afaf0b7 change-id: 20241022-pci-pwrctl-rework-a1b024158555 Best regards, -- Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>