summaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorBjorn Helgaas <bjorn.helgaas@hp.com>2010-02-23 10:24:26 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2010-02-23 09:43:25 -0800
commit2adf75160b10bf3f09ed7d3d04e937f923fc557e (patch)
treedb2998c5403f6c12bb207fd80a1e1fca2ec4a1b4 /drivers/pci
parentfa27b2d108fa49685129867a8c5b968344d6e197 (diff)
downloadop-kernel-dev-2adf75160b10bf3f09ed7d3d04e937f923fc557e.zip
op-kernel-dev-2adf75160b10bf3f09ed7d3d04e937f923fc557e.tar.gz
PCI: read bridge windows before filling in subtractive decode resources
No functional change; this fills in the bus subtractive decode resources after reading the bridge window information rather than before. Also, print out the subtractive decode resources as we already do for the positive decode windows. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci')
-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 4b47b4b..70c4ed2 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)
child->secondary, child->subordinate,
dev->transparent ? " (subtractive decode)" : "");
- if (dev->transparent) {
- for (i = 3; i < PCI_BUS_NUM_RESOURCES; i++)
- child->resource[i] = child->parent->resource[i - 3];
- }
-
pci_read_bridge_io(child);
pci_read_bridge_mmio(child);
pci_read_bridge_mmio_pref(child);
+
+ if (dev->transparent) {
+ for (i = 3; i < PCI_BUS_NUM_RESOURCES; i++) {
+ child->resource[i] = child->parent->resource[i - 3];
+ if (child->resource[i])
+ dev_printk(KERN_DEBUG, &dev->dev,
+ " bridge window %pR (subtractive decode)\n",
+ child->resource[i]);
+ }
+ }
}
static struct pci_bus * pci_alloc_bus(void)
OpenPOWER on IntegriCloud