summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authoroftedal <oftedal@gmail.com>2013-10-18 22:28:29 +0200
committerJiri Slaby <jslaby@suse.cz>2014-10-31 15:08:33 +0100
commit1d9e79d6ccb5b00cfe7e695b7bf29a9df421e037 (patch)
treedc5ac54753f9b9d46d1135c50e95dd1fbffcf208 /arch
parenteaf019930a792be35c923e73ebe4d9ce5ef1513b (diff)
sparc: PCI: Fix incorrect address calculation of PCI Bridge windows on Simba-bridges
commit 557fc5873ef178c4b3e1e36a42db547ecdc43f9b upstream. The SIMBA APB Bridges lacks the 'ranges' of-property describing the PCI I/O and memory areas located beneath the bridge. Faking this information has been performed by reading range registers in the APB bridge, and calculating the corresponding areas. In commit 01f94c4a6ced476ce69b895426fc29bfc48c69bd ("Fix sabre pci controllers with new probing scheme.") a bug was introduced into this calculation, causing the PCI memory areas to be calculated incorrectly: The shift size was set to be identical for I/O and MEM ranges, which is incorrect. This patch set the shift size of the MEM range back to the value used before 01f94c4a6ced476ce69b895426fc29bfc48c69bd. Signed-off-by: Kjetil Oftedal <oftedal@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc/kernel/pci.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
index bc4d3f5d2e5d..cb021453de2a 100644
--- a/arch/sparc/kernel/pci.c
+++ b/arch/sparc/kernel/pci.c
@@ -398,8 +398,8 @@ static void apb_fake_ranges(struct pci_dev *dev,
apb_calc_first_last(map, &first, &last);
res = bus->resource[1];
res->flags = IORESOURCE_MEM;
- region.start = (first << 21);
- region.end = (last << 21) + ((1 << 21) - 1);
+ region.start = (first << 29);
+ region.end = (last << 29) + ((1 << 29) - 1);
pcibios_bus_to_resource(dev, res, &region);
}