diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2016-03-02 17:20:18 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2016-03-12 07:00:29 -0500 |
commit | f976721e826e06ba1cdfce701495b49e2e25289d (patch) | |
tree | b84029e6f7e7866ef0a2b7a8c35ab4efae2ab48b /arch/ia64 | |
parent | ab97b8cc560eabfd8139dd97924a09e46a3c9632 (diff) |
ia64/PCI: Use ioremap() instead of open-coded equivalent
Depositing __IA64_UNCACHED_OFFSET in the upper address bits is essentially
equivalent to ioremap(): it converts a CPU physical address to a virtual
address using the ia64 uncacheable identity map.
Call ioremap() instead of doing the phys-to-virt conversion manually with
__IA64_UNCACHED_OFFSET.
Note that this makes it obvious that (a) we're putting a virtual address in
a struct resource, and (b) we're passing a virtual address to ioremap()
below in the PCI_ROM_RESOURCE case. These are both pre-existing problems
that I'll resolve next.
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/sn/kernel/io_init.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c index 40c02635f19f..0227e202b6bb 100644 --- a/arch/ia64/sn/kernel/io_init.c +++ b/arch/ia64/sn/kernel/io_init.c | |||
@@ -185,9 +185,8 @@ sn_io_slot_fixup(struct pci_dev *dev) | |||
185 | if (size == 0) | 185 | if (size == 0) |
186 | continue; | 186 | continue; |
187 | 187 | ||
188 | addr = pcidev_info->pdi_pio_mapped_addr[idx]; | 188 | res->start = ioremap(pcidev_info->pdi_pio_mapped_addr[idx], |
189 | addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET; | 189 | size + 1); |
190 | res->start = addr; | ||
191 | res->end = addr + size; | 190 | res->end = addr + size; |
192 | 191 | ||
193 | /* | 192 | /* |