aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/include/asm/io.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/parisc/include/asm/io.h')
-rw-r--r--arch/parisc/include/asm/io.h51
1 files changed, 42 insertions, 9 deletions
diff --git a/arch/parisc/include/asm/io.h b/arch/parisc/include/asm/io.h
index d3031d1f9d03..1f6d2ae7aba5 100644
--- a/arch/parisc/include/asm/io.h
+++ b/arch/parisc/include/asm/io.h
@@ -174,15 +174,48 @@ static inline void __raw_writeq(unsigned long long b, volatile void __iomem *add
174 *(volatile unsigned long long __force *) addr = b; 174 *(volatile unsigned long long __force *) addr = b;
175} 175}
176 176
177/* readb can never be const, so use __fswab instead of le*_to_cpu */ 177static inline unsigned char readb(const volatile void __iomem *addr)
178#define readb(addr) __raw_readb(addr) 178{
179#define readw(addr) le16_to_cpu(__raw_readw(addr)) 179 return __raw_readb(addr);
180#define readl(addr) le32_to_cpu(__raw_readl(addr)) 180}
181#define readq(addr) le64_to_cpu(__raw_readq(addr)) 181static inline unsigned short readw(const volatile void __iomem *addr)
182#define writeb(b, addr) __raw_writeb(b, addr) 182{
183#define writew(b, addr) __raw_writew(cpu_to_le16(b), addr) 183 return le16_to_cpu(__raw_readw(addr));
184#define writel(b, addr) __raw_writel(cpu_to_le32(b), addr) 184}
185#define writeq(b, addr) __raw_writeq(cpu_to_le64(b), addr) 185static inline unsigned int readl(const volatile void __iomem *addr)
186{
187 return le32_to_cpu(__raw_readl(addr));
188}
189static inline unsigned long long readq(const volatile void __iomem *addr)
190{
191 return le64_to_cpu(__raw_readq(addr));
192}
193
194static inline void writeb(unsigned char b, volatile void __iomem *addr)
195{
196 __raw_writeb(b, addr);
197}
198static inline void writew(unsigned short w, volatile void __iomem *addr)
199{
200 __raw_writew(cpu_to_le16(w), addr);
201}
202static inline void writel(unsigned int l, volatile void __iomem *addr)
203{
204 __raw_writel(cpu_to_le32(l), addr);
205}
206static inline void writeq(unsigned long long q, volatile void __iomem *addr)
207{
208 __raw_writeq(cpu_to_le64(q), addr);
209}
210
211#define readb readb
212#define readw readw
213#define readl readl
214#define readq readq
215#define writeb writeb
216#define writew writew
217#define writel writel
218#define writeq writeq
186 219
187#define readb_relaxed(addr) readb(addr) 220#define readb_relaxed(addr) readb(addr)
188#define readw_relaxed(addr) readw(addr) 221#define readw_relaxed(addr) readw(addr)