From 7d9159a69130a0897452f4ec5a8e8ed622e83e4c Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Thu, 19 Jul 2007 15:29:53 -0500 Subject: [PATCH] --- yaml --- r: 62855 b: refs/heads/master c: 6c0a11c118471f79795202348fbd0e6580341794 h: refs/heads/master i: 62853: 7cd4d7c52ce2904a3f27ecf8e2c260c19d305178 62851: 14b2eaef8863d6bc64410c7a38a0cf2bd6dae6f7 62847: 738901c8a243baa31fc11122b28921c467805568 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/85xx/mpc85xx_cds.c | 1 + trunk/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 2 +- trunk/arch/powerpc/sysdev/fsl_pci.c | 14 ++++++++++++++ trunk/arch/powerpc/sysdev/fsl_pci.h | 1 + 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 900b30fd08bc..a6bb3ba509f1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 66afe8780f297edb4c4716bc326e127ec2923422 +refs/heads/master: 6c0a11c118471f79795202348fbd0e6580341794 diff --git a/trunk/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/trunk/arch/powerpc/platforms/85xx/mpc85xx_cds.c index 2539bb560694..9b559ebc66f8 100644 --- a/trunk/arch/powerpc/platforms/85xx/mpc85xx_cds.c +++ b/trunk/arch/powerpc/platforms/85xx/mpc85xx_cds.c @@ -272,4 +272,5 @@ define_machine(mpc85xx_cds) { .restart = mpc85xx_restart, .calibrate_decr = generic_calibrate_decr, .progress = udbg_progress, + .pcibios_fixup_bus = fsl_pcibios_fixup_bus, }; diff --git a/trunk/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/trunk/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index e67e10d3272f..e9eaa0749ae6 100644 --- a/trunk/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/trunk/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c @@ -431,7 +431,6 @@ mpc86xx_time_init(void) return 0; } - define_machine(mpc86xx_hpcn) { .name = "MPC86xx HPCN", .probe = mpc86xx_hpcn_probe, @@ -443,4 +442,5 @@ define_machine(mpc86xx_hpcn) { .time_init = mpc86xx_time_init, .calibrate_decr = generic_calibrate_decr, .progress = udbg_progress, + .pcibios_fixup_bus = fsl_pcibios_fixup_bus, }; diff --git a/trunk/arch/powerpc/sysdev/fsl_pci.c b/trunk/arch/powerpc/sysdev/fsl_pci.c index 2eefcde5b0da..faafae601a72 100644 --- a/trunk/arch/powerpc/sysdev/fsl_pci.c +++ b/trunk/arch/powerpc/sysdev/fsl_pci.c @@ -142,6 +142,20 @@ int __init fsl_pcie_check_link(struct pci_controller *hose) return 0; } +void fsl_pcibios_fixup_bus(struct pci_bus *bus) +{ + struct pci_controller *hose = (struct pci_controller *) bus->sysdata; + int i; + + /* deal with bogus pci_bus when we don't have anything connected on PCIe */ + if (hose->indirect_type & PPC_INDIRECT_TYPE_NO_PCIE_LINK) { + if (bus->parent) { + for (i = 0; i < 4; ++i) + bus->resource[i] = bus->parent->resource[i]; + } + } +} + int __init fsl_add_bridge(struct device_node *dev, int is_primary) { int len; diff --git a/trunk/arch/powerpc/sysdev/fsl_pci.h b/trunk/arch/powerpc/sysdev/fsl_pci.h index 700d47827994..37b04ad26571 100644 --- a/trunk/arch/powerpc/sysdev/fsl_pci.h +++ b/trunk/arch/powerpc/sysdev/fsl_pci.h @@ -82,6 +82,7 @@ struct ccsr_pci { }; extern int fsl_add_bridge(struct device_node *dev, int is_primary); +extern void fsl_pcibios_fixup_bus(struct pci_bus *bus); #endif /* __POWERPC_FSL_PCI_H */ #endif /* __KERNEL__ */