aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/probe.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 4b47b4bfb066..70c4ed2e67cc 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -403,14 +403,19 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
403 child->secondary, child->subordinate, 403 child->secondary, child->subordinate,
404 dev->transparent ? " (subtractive decode)" : ""); 404 dev->transparent ? " (subtractive decode)" : "");
405 405
406 if (dev->transparent) {
407 for (i = 3; i < PCI_BUS_NUM_RESOURCES; i++)
408 child->resource[i] = child->parent->resource[i - 3];
409 }
410
411 pci_read_bridge_io(child); 406 pci_read_bridge_io(child);
412 pci_read_bridge_mmio(child); 407 pci_read_bridge_mmio(child);
413 pci_read_bridge_mmio_pref(child); 408 pci_read_bridge_mmio_pref(child);
409
410 if (dev->transparent) {
411 for (i = 3; i < PCI_BUS_NUM_RESOURCES; i++) {
412 child->resource[i] = child->parent->resource[i - 3];
413 if (child->resource[i])
414 dev_printk(KERN_DEBUG, &dev->dev,
415 " bridge window %pR (subtractive decode)\n",
416 child->resource[i]);
417 }
418 }
414} 419}
415 420
416static struct pci_bus * pci_alloc_bus(void) 421static struct pci_bus * pci_alloc_bus(void)