aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/sysdev
diff options
context:
space:
mode:
authorGravatar Pali Rohár <pali@kernel.org> 2022-08-20 14:33:27 +0200
committerGravatar Michael Ellerman <mpe@ellerman.id.au> 2022-11-30 21:46:48 +1100
commite082e99f6f87f5204b2531d5a3db7bbd929d23b1 (patch)
tree80035e85fbdf71c1cbe6af0a5938fbdee7fa9f5d /arch/powerpc/sysdev
parentpowerpc: dts: turris1x.dts: Add channel labels for temperature sensor (diff)
downloadlinux-e082e99f6f87f5204b2531d5a3db7bbd929d23b1.tar.gz
linux-e082e99f6f87f5204b2531d5a3db7bbd929d23b1.tar.bz2
linux-e082e99f6f87f5204b2531d5a3db7bbd929d23b1.zip
powerpc/fsl-pci: Choose PCI host bridge with alias pci0 as the primary
If there's no PCI host bridge with ISA then check for PCI host bridge with alias "pci0" (first PCI host bridge) and if it exists then choose it as the primary PCI host bridge. This makes choice of primary PCI host bridge more stable across boots and updates as the last fallback candidate for primary PCI host bridge (if there is no choice) is selected arbitrary. Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220820123327.20551-1-pali@kernel.org
Diffstat (limited to 'arch/powerpc/sysdev')
-rw-r--r--arch/powerpc/sysdev/fsl_pci.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index 974d3db6faab..b7232c46b244 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -1139,6 +1139,19 @@ void __init fsl_pci_assign_primary(void)
}
/*
+ * If there's no PCI host bridge with ISA then check for
+ * PCI host bridge with alias "pci0" (first PCI host bridge).
+ */
+ np = of_find_node_by_path("pci0");
+ if (np && of_match_node(pci_ids, np) && of_device_is_available(np)) {
+ fsl_pci_primary = np;
+ of_node_put(np);
+ return;
+ }
+ if (np)
+ of_node_put(np);
+
+ /*
* If there's no PCI host bridge with ISA, arbitrarily
* designate one as primary. This can go away once
* various bugs with primary-less systems are fixed.