diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2012-02-23 22:19:04 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2012-02-23 22:19:04 -0500 |
commit | 4ba2aef3157f483fd67ac2616f14dbc32a3f751d (patch) | |
tree | b7aa91d0e79109bbdc76fb33247ce9ad91f8084e /arch/xtensa | |
parent | ac1edcc579b6554211221ee5eeac7dfc15a6da17 (diff) |
xtensa/PCI: get rid of device resource fixups
Tell the PCI core about host bridge address translation so it can take
care of bus-to-resource conversion for us.
CC: Chris Zankel <chris@zankel.net>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'arch/xtensa')
-rw-r--r-- | arch/xtensa/kernel/pci.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/arch/xtensa/kernel/pci.c b/arch/xtensa/kernel/pci.c index 61045c192e88..eb30e356f5be 100644 --- a/arch/xtensa/kernel/pci.c +++ b/arch/xtensa/kernel/pci.c | |||
@@ -153,7 +153,7 @@ static void __init pci_controller_apertures(struct pci_controller *pci_ctrl, | |||
153 | } | 153 | } |
154 | res->start += io_offset; | 154 | res->start += io_offset; |
155 | res->end += io_offset; | 155 | res->end += io_offset; |
156 | pci_add_resource(resources, res); | 156 | pci_add_resource_offset(resources, res, io_offset); |
157 | 157 | ||
158 | for (i = 0; i < 3; i++) { | 158 | for (i = 0; i < 3; i++) { |
159 | res = &pci_ctrl->mem_resources[i]; | 159 | res = &pci_ctrl->mem_resources[i]; |
@@ -200,24 +200,9 @@ subsys_initcall(pcibios_init); | |||
200 | 200 | ||
201 | void __init pcibios_fixup_bus(struct pci_bus *bus) | 201 | void __init pcibios_fixup_bus(struct pci_bus *bus) |
202 | { | 202 | { |
203 | struct pci_controller *pci_ctrl = bus->sysdata; | ||
204 | struct resource *res; | ||
205 | unsigned long io_offset; | ||
206 | int i; | ||
207 | |||
208 | io_offset = (unsigned long)pci_ctrl->io_space.base; | ||
209 | if (bus->parent) { | 203 | if (bus->parent) { |
210 | /* This is a subordinate bridge */ | 204 | /* This is a subordinate bridge */ |
211 | pci_read_bridge_bases(bus); | 205 | pci_read_bridge_bases(bus); |
212 | |||
213 | for (i = 0; i < 4; i++) { | ||
214 | if ((res = bus->resource[i]) == NULL || !res->flags) | ||
215 | continue; | ||
216 | if (io_offset && (res->flags & IORESOURCE_IO)) { | ||
217 | res->start += io_offset; | ||
218 | res->end += io_offset; | ||
219 | } | ||
220 | } | ||
221 | } | 206 | } |
222 | } | 207 | } |
223 | 208 | ||