ppc4xx: Allow 4xx PCI bridge to be disabled via device tree

Submitted by Matthias Fuchs on Sept. 10, 2008, 3:55 p.m.

Details

Message ID 200809101755.46883.matthias.fuchs@esd-electronics.com
State Accepted, archived
Commit 5a013fc7bb48acefe94011f4b83fef95b381f875
Delegated to: Josh Boyer
Headers show

Commit Message

Matthias Fuchs Sept. 10, 2008, 3:55 p.m.
This patch allows the 4xx (conventional) PCI bridge to be disabled
via the device tree. This is needed for 4xx PCI adapter hardware.

Use the PCI node's status property to disable the PCI bridge.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

Comments

Stefan Roese Sept. 11, 2008, 4:30 a.m.
On Wednesday 10 September 2008, Matthias Fuchs wrote:
> This patch allows the 4xx (conventional) PCI bridge to be disabled
> via the device tree. This is needed for 4xx PCI adapter hardware.
>
> Use the PCI node's status property to disable the PCI bridge.
>
> Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

Acked-by: Stefan Roese <sr@denx.de>

Best regards,
Stefan

Patch hide | download patch | download mbox

diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index fb368df..8c13d4f 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -277,9 +277,16 @@  static void __init ppc4xx_probe_pci_bridge(struct device_node *np)
 	const int *bus_range;
 	int primary = 0;
 
+	/* Check if device is enabled */
+	if (!of_device_is_available(np)) {
+		printk(KERN_INFO "%s: Port disabled via device-tree\n",
+		       np->full_name);
+		return;
+	}
+
 	/* Fetch config space registers address */
 	if (of_address_to_resource(np, 0, &rsrc_cfg)) {
-		printk(KERN_ERR "%s:Can't get PCI config register base !",
+		printk(KERN_ERR "%s: Can't get PCI config register base !",
 		       np->full_name);
 		return;
 	}