diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:33:40 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:33:40 -0500 |
commit | 6371b495991debfd1417b17c2bc4f7d7bae05739 (patch) | |
tree | f5990360fde1f5bd9a03834f4381eea2c86408bc | |
parent | 5a96f4a55c3b0bfd40771a973b173e1b94909559 (diff) |
x86: change ioremap() to default to uncached
Prepare ioremap() to default to uncached. This will be the
safest - but first we have to fix CPA.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | include/asm-x86/io_32.h | 15 | ||||
-rw-r--r-- | include/asm-x86/io_64.h | 23 |
2 files changed, 29 insertions, 9 deletions
diff --git a/include/asm-x86/io_32.h b/include/asm-x86/io_32.h index 2a04bd17eac5..db3978846379 100644 --- a/include/asm-x86/io_32.h +++ b/include/asm-x86/io_32.h | |||
@@ -111,18 +111,27 @@ extern void __iomem * __ioremap(unsigned long offset, unsigned long size, unsign | |||
111 | * make bus memory CPU accessible via the readb/readw/readl/writeb/ | 111 | * make bus memory CPU accessible via the readb/readw/readl/writeb/ |
112 | * writew/writel functions and the other mmio helpers. The returned | 112 | * writew/writel functions and the other mmio helpers. The returned |
113 | * address is not guaranteed to be usable directly as a virtual | 113 | * address is not guaranteed to be usable directly as a virtual |
114 | * address. | 114 | * address. |
115 | * | 115 | * |
116 | * If the area you are trying to map is a PCI BAR you should have a | 116 | * If the area you are trying to map is a PCI BAR you should have a |
117 | * look at pci_iomap(). | 117 | * look at pci_iomap(). |
118 | */ | 118 | */ |
119 | extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size); | ||
119 | 120 | ||
120 | static inline void __iomem * ioremap(unsigned long offset, unsigned long size) | 121 | static inline void __iomem * |
122 | ioremap_cache(unsigned long offset, unsigned long size) | ||
121 | { | 123 | { |
122 | return __ioremap(offset, size, 0); | 124 | return __ioremap(offset, size, 0); |
123 | } | 125 | } |
124 | 126 | ||
125 | extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size); | 127 | /* |
128 | * The default ioremap() behavior is non-cached: | ||
129 | */ | ||
130 | static inline void __iomem * ioremap(unsigned long offset, unsigned long size) | ||
131 | { | ||
132 | return ioremap_nocache(offset, size); | ||
133 | } | ||
134 | |||
126 | extern void iounmap(volatile void __iomem *addr); | 135 | extern void iounmap(volatile void __iomem *addr); |
127 | 136 | ||
128 | /* | 137 | /* |
diff --git a/include/asm-x86/io_64.h b/include/asm-x86/io_64.h index fef0ce2ced81..7dee3c6e9c39 100644 --- a/include/asm-x86/io_64.h +++ b/include/asm-x86/io_64.h | |||
@@ -152,11 +152,6 @@ static inline void * phys_to_virt(unsigned long address) | |||
152 | 152 | ||
153 | extern void __iomem *__ioremap(unsigned long offset, unsigned long size, unsigned long flags); | 153 | extern void __iomem *__ioremap(unsigned long offset, unsigned long size, unsigned long flags); |
154 | 154 | ||
155 | static inline void __iomem * ioremap (unsigned long offset, unsigned long size) | ||
156 | { | ||
157 | return __ioremap(offset, size, 0); | ||
158 | } | ||
159 | |||
160 | extern void *early_ioremap(unsigned long addr, unsigned long size); | 155 | extern void *early_ioremap(unsigned long addr, unsigned long size); |
161 | extern void early_iounmap(void *addr, unsigned long size); | 156 | extern void early_iounmap(void *addr, unsigned long size); |
162 | 157 | ||
@@ -165,8 +160,24 @@ extern void early_iounmap(void *addr, unsigned long size); | |||
165 | * it's useful if some control registers are in such an area and write combining | 160 | * it's useful if some control registers are in such an area and write combining |
166 | * or read caching is not desirable: | 161 | * or read caching is not desirable: |
167 | */ | 162 | */ |
168 | extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); | 163 | extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size); |
164 | |||
165 | static inline void __iomem * | ||
166 | ioremap_cache(unsigned long offset, unsigned long size) | ||
167 | { | ||
168 | return __ioremap(offset, size, 0); | ||
169 | } | ||
170 | |||
171 | /* | ||
172 | * The default ioremap() behavior is non-cached: | ||
173 | */ | ||
174 | static inline void __iomem * ioremap(unsigned long offset, unsigned long size) | ||
175 | { | ||
176 | return ioremap_cache(offset, size); | ||
177 | } | ||
178 | |||
169 | extern void iounmap(volatile void __iomem *addr); | 179 | extern void iounmap(volatile void __iomem *addr); |
180 | |||
170 | extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); | 181 | extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); |
171 | 182 | ||
172 | /* | 183 | /* |