diff options
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_cds.c | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 2 | ||||
-rw-r--r-- | arch/powerpc/sysdev/fsl_pci.c | 14 | ||||
-rw-r--r-- | arch/powerpc/sysdev/fsl_pci.h | 1 |
4 files changed, 17 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c index 2539bb560694..9b559ebc66f8 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c | |||
@@ -272,4 +272,5 @@ define_machine(mpc85xx_cds) { | |||
272 | .restart = mpc85xx_restart, | 272 | .restart = mpc85xx_restart, |
273 | .calibrate_decr = generic_calibrate_decr, | 273 | .calibrate_decr = generic_calibrate_decr, |
274 | .progress = udbg_progress, | 274 | .progress = udbg_progress, |
275 | .pcibios_fixup_bus = fsl_pcibios_fixup_bus, | ||
275 | }; | 276 | }; |
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index e67e10d3272f..e9eaa0749ae6 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | |||
@@ -431,7 +431,6 @@ mpc86xx_time_init(void) | |||
431 | return 0; | 431 | return 0; |
432 | } | 432 | } |
433 | 433 | ||
434 | |||
435 | define_machine(mpc86xx_hpcn) { | 434 | define_machine(mpc86xx_hpcn) { |
436 | .name = "MPC86xx HPCN", | 435 | .name = "MPC86xx HPCN", |
437 | .probe = mpc86xx_hpcn_probe, | 436 | .probe = mpc86xx_hpcn_probe, |
@@ -443,4 +442,5 @@ define_machine(mpc86xx_hpcn) { | |||
443 | .time_init = mpc86xx_time_init, | 442 | .time_init = mpc86xx_time_init, |
444 | .calibrate_decr = generic_calibrate_decr, | 443 | .calibrate_decr = generic_calibrate_decr, |
445 | .progress = udbg_progress, | 444 | .progress = udbg_progress, |
445 | .pcibios_fixup_bus = fsl_pcibios_fixup_bus, | ||
446 | }; | 446 | }; |
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 2eefcde5b0da..faafae601a72 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c | |||
@@ -142,6 +142,20 @@ int __init fsl_pcie_check_link(struct pci_controller *hose) | |||
142 | return 0; | 142 | return 0; |
143 | } | 143 | } |
144 | 144 | ||
145 | void fsl_pcibios_fixup_bus(struct pci_bus *bus) | ||
146 | { | ||
147 | struct pci_controller *hose = (struct pci_controller *) bus->sysdata; | ||
148 | int i; | ||
149 | |||
150 | /* deal with bogus pci_bus when we don't have anything connected on PCIe */ | ||
151 | if (hose->indirect_type & PPC_INDIRECT_TYPE_NO_PCIE_LINK) { | ||
152 | if (bus->parent) { | ||
153 | for (i = 0; i < 4; ++i) | ||
154 | bus->resource[i] = bus->parent->resource[i]; | ||
155 | } | ||
156 | } | ||
157 | } | ||
158 | |||
145 | int __init fsl_add_bridge(struct device_node *dev, int is_primary) | 159 | int __init fsl_add_bridge(struct device_node *dev, int is_primary) |
146 | { | 160 | { |
147 | int len; | 161 | int len; |
diff --git a/arch/powerpc/sysdev/fsl_pci.h b/arch/powerpc/sysdev/fsl_pci.h index 700d47827994..37b04ad26571 100644 --- a/arch/powerpc/sysdev/fsl_pci.h +++ b/arch/powerpc/sysdev/fsl_pci.h | |||
@@ -82,6 +82,7 @@ struct ccsr_pci { | |||
82 | }; | 82 | }; |
83 | 83 | ||
84 | extern int fsl_add_bridge(struct device_node *dev, int is_primary); | 84 | extern int fsl_add_bridge(struct device_node *dev, int is_primary); |
85 | extern void fsl_pcibios_fixup_bus(struct pci_bus *bus); | ||
85 | 86 | ||
86 | #endif /* __POWERPC_FSL_PCI_H */ | 87 | #endif /* __POWERPC_FSL_PCI_H */ |
87 | #endif /* __KERNEL__ */ | 88 | #endif /* __KERNEL__ */ |