diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/mm/Makefile | 2 | ||||
-rw-r--r-- | arch/ia64/mm/ioremap.c | 43 |
2 files changed, 44 insertions, 1 deletions
diff --git a/arch/ia64/mm/Makefile b/arch/ia64/mm/Makefile index d78d20f0a0f0..bb0a01a81878 100644 --- a/arch/ia64/mm/Makefile +++ b/arch/ia64/mm/Makefile | |||
@@ -2,7 +2,7 @@ | |||
2 | # Makefile for the ia64-specific parts of the memory manager. | 2 | # Makefile for the ia64-specific parts of the memory manager. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := init.o fault.o tlb.o extable.o | 5 | obj-y := init.o fault.o tlb.o extable.o ioremap.o |
6 | 6 | ||
7 | obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o | 7 | obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o |
8 | obj-$(CONFIG_NUMA) += numa.o | 8 | obj-$(CONFIG_NUMA) += numa.o |
diff --git a/arch/ia64/mm/ioremap.c b/arch/ia64/mm/ioremap.c new file mode 100644 index 000000000000..62328621f99c --- /dev/null +++ b/arch/ia64/mm/ioremap.c | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * (c) Copyright 2006 Hewlett-Packard Development Company, L.P. | ||
3 | * Bjorn Helgaas <bjorn.helgaas@hp.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 as | ||
7 | * published by the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | #include <linux/compiler.h> | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/efi.h> | ||
13 | #include <asm/io.h> | ||
14 | |||
15 | static inline void __iomem * | ||
16 | __ioremap (unsigned long offset, unsigned long size) | ||
17 | { | ||
18 | return (void __iomem *) (__IA64_UNCACHED_OFFSET | offset); | ||
19 | } | ||
20 | |||
21 | void __iomem * | ||
22 | ioremap (unsigned long offset, unsigned long size) | ||
23 | { | ||
24 | if (efi_mem_attribute_range(offset, size, EFI_MEMORY_UC)) | ||
25 | return __ioremap(offset, size); | ||
26 | |||
27 | if (efi_mem_attribute_range(offset, size, EFI_MEMORY_WB)) | ||
28 | return phys_to_virt(offset); | ||
29 | |||
30 | /* | ||
31 | * Someday this should check ACPI resources so we | ||
32 | * can do the right thing for hot-plugged regions. | ||
33 | */ | ||
34 | return __ioremap(offset, size); | ||
35 | } | ||
36 | EXPORT_SYMBOL(ioremap); | ||
37 | |||
38 | void __iomem * | ||
39 | ioremap_nocache (unsigned long offset, unsigned long size) | ||
40 | { | ||
41 | return __ioremap(offset, size); | ||
42 | } | ||
43 | EXPORT_SYMBOL(ioremap_nocache); | ||