[PATCH] powerpc/pasemi: Seach for PCI root bus by compatible property
Michael Ellerman
mpe at ellerman.id.au
Tue Jul 31 21:55:18 AEST 2018
Darren Stevens <darren at stevens-zone.net> writes:
> Pasemi arch code finds the root of the PCI-e bus by searching the
> device-tree for a node called 'pxp'. But the root bus has a
> compatible property of 'pasemi,rootbus' so search for that instead.
>
> Signed-off-by: Darren Stevens <darren at stevens-zone.net>
> ---
>
> This works on the Amigaone X1000, I don't know if this method of
> finding the pci bus was there bcause of earlier firmwares.
Does anyone have another pasemi board they can test this on?
The last time I plugged mine in it popped the power supply and took out
power to half the office :) - I haven't had a chance to try it since.
cheers
> diff --git a/arch/powerpc/platforms/pasemi/pci.c b/arch/powerpc/platforms/pasemi/pci.c
> index c7c8607..be62380 100644
> --- a/arch/powerpc/platforms/pasemi/pci.c
> +++ b/arch/powerpc/platforms/pasemi/pci.c
> @@ -216,6 +216,7 @@ static int __init pas_add_bridge(struct device_node *dev)
> void __init pas_pci_init(void)
> {
> struct device_node *np, *root;
> + int res;
>
> root = of_find_node_by_path("/");
> if (!root) {
> @@ -226,11 +227,11 @@ void __init pas_pci_init(void)
>
> pci_set_flags(PCI_SCAN_ALL_PCIE_DEVS);
>
> - for (np = NULL; (np = of_get_next_child(root, np)) != NULL;)
> - if (np->name && !strcmp(np->name, "pxp") && !pas_add_bridge(np))
> - of_node_get(np);
> -
> - of_node_put(root);
> + np = of_find_compatible_node(root, NULL, "pasemi,rootbus");
> + if (np) {
> + res = pas_add_bridge(np);
> + of_node_put(np);
> + }
> }
>
> void __iomem *pasemi_pci_getcfgaddr(struct pci_dev *dev, int offset)
More information about the Linuxppc-dev
mailing list