aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-01-30 07:33:40 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:33:40 -0500
commit6371b495991debfd1417b17c2bc4f7d7bae05739 (patch)
treef5990360fde1f5bd9a03834f4381eea2c86408bc
parent5a96f4a55c3b0bfd40771a973b173e1b94909559 (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.h15
-rw-r--r--include/asm-x86/io_64.h23
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 */
119extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size);
119 120
120static inline void __iomem * ioremap(unsigned long offset, unsigned long size) 121static inline void __iomem *
122ioremap_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
125extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size); 127/*
128 * The default ioremap() behavior is non-cached:
129 */
130static inline void __iomem * ioremap(unsigned long offset, unsigned long size)
131{
132 return ioremap_nocache(offset, size);
133}
134
126extern void iounmap(volatile void __iomem *addr); 135extern 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
153extern void __iomem *__ioremap(unsigned long offset, unsigned long size, unsigned long flags); 153extern void __iomem *__ioremap(unsigned long offset, unsigned long size, unsigned long flags);
154 154
155static inline void __iomem * ioremap (unsigned long offset, unsigned long size)
156{
157 return __ioremap(offset, size, 0);
158}
159
160extern void *early_ioremap(unsigned long addr, unsigned long size); 155extern void *early_ioremap(unsigned long addr, unsigned long size);
161extern void early_iounmap(void *addr, unsigned long size); 156extern 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 */
168extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); 163extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size);
164
165static inline void __iomem *
166ioremap_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 */
174static inline void __iomem * ioremap(unsigned long offset, unsigned long size)
175{
176 return ioremap_cache(offset, size);
177}
178
169extern void iounmap(volatile void __iomem *addr); 179extern void iounmap(volatile void __iomem *addr);
180
170extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); 181extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
171 182
172/* 183/*