[PATCH] Fix the PCI-Ex link training bug on MPC8641HPCN board.

Zhang Wei wei.zhang at freescale.com
Tue Jul 10 16:34:12 EST 2007


If the PCI-Ex hose link training is failed, the kernel will halt at the
PCI scan process on MPC8641HPCN board.

This patch will remove and free the hose from PCI host list if the
PCI hose link training is failed.

Signed-off-by: Zhang Wei <wei.zhang at freescale.com>
---
 arch/powerpc/platforms/86xx/pci.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/platforms/86xx/pci.c b/arch/powerpc/platforms/86xx/pci.c
index 73cd5b0..0b7835c 100644
--- a/arch/powerpc/platforms/86xx/pci.c
+++ b/arch/powerpc/platforms/86xx/pci.c
@@ -210,8 +210,10 @@ int __init mpc86xx_add_bridge(struct device_node *dev)
 
 	/* Probe the hose link training status */
 	early_read_config_word(hose, 0, 0, PCIE_LTSSM, &val);
-	if (val < PCIE_LTSSM_L0)
+	if (val < PCIE_LTSSM_L0) {
+		pcibios_free_controller(hose);
 		return -ENXIO;
+	}
 
 	/* Setup the PCIE host controller. */
 	mpc86xx_setup_pcie(hose, rsrc.start, rsrc.end - rsrc.start + 1);
-- 
1.5.1




More information about the Linuxppc-dev mailing list