summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/pci-common.c
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2010-02-16 11:19:18 +0100
committerJaroslav Kysela <perex@perex.cz>2010-02-16 11:19:18 +0100
commitba9341dfef6b0201cd30e3904dcd0a47d3dc35e0 (patch)
treed83637979db83bb9d5a23e190148b90b60c976d2 /arch/powerpc/kernel/pci-common.c
parentd39e82db73eb876c60d00f00219d767b3be30307 (diff)
parentf167e1d073278fe231bbdd5d6c24fb9d091aa544 (diff)
downloadop-kernel-dev-ba9341dfef6b0201cd30e3904dcd0a47d3dc35e0.zip
op-kernel-dev-ba9341dfef6b0201cd30e3904dcd0a47d3dc35e0.tar.gz
Merge branch 'fixes' into devel
Diffstat (limited to 'arch/powerpc/kernel/pci-common.c')
-rw-r--r--arch/powerpc/kernel/pci-common.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index e8dfdbd..cadbed6 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1107,6 +1107,12 @@ void __devinit pcibios_setup_bus_devices(struct pci_bus *bus)
list_for_each_entry(dev, &bus->devices, bus_list) {
struct dev_archdata *sd = &dev->dev.archdata;
+ /* Cardbus can call us to add new devices to a bus, so ignore
+ * those who are already fully discovered
+ */
+ if (dev->is_added)
+ continue;
+
/* Setup OF node pointer in archdata */
sd->of_node = pci_device_to_OF_node(dev);
@@ -1147,6 +1153,13 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus)
}
EXPORT_SYMBOL(pcibios_fixup_bus);
+void __devinit pci_fixup_cardbus(struct pci_bus *bus)
+{
+ /* Now fixup devices on that bus */
+ pcibios_setup_bus_devices(bus);
+}
+
+
static int skip_isa_ioresource_align(struct pci_dev *dev)
{
if ((ppc_pci_flags & PPC_PCI_CAN_SKIP_ISA_ALIGN) &&
OpenPOWER on IntegriCloud