diff options
Diffstat (limited to 'arch/parisc/include/asm/io.h')
| -rw-r--r-- | arch/parisc/include/asm/io.h | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/arch/parisc/include/asm/io.h b/arch/parisc/include/asm/io.h index d3031d1f9d0..1f6d2ae7aba 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 */ | 177 | static 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)) | 181 | static 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) | 185 | static inline unsigned int readl(const volatile void __iomem *addr) |
| 186 | { | ||
| 187 | return le32_to_cpu(__raw_readl(addr)); | ||
| 188 | } | ||
| 189 | static inline unsigned long long readq(const volatile void __iomem *addr) | ||
| 190 | { | ||
| 191 | return le64_to_cpu(__raw_readq(addr)); | ||
| 192 | } | ||
| 193 | |||
| 194 | static inline void writeb(unsigned char b, volatile void __iomem *addr) | ||
| 195 | { | ||
| 196 | __raw_writeb(b, addr); | ||
| 197 | } | ||
| 198 | static inline void writew(unsigned short w, volatile void __iomem *addr) | ||
| 199 | { | ||
| 200 | __raw_writew(cpu_to_le16(w), addr); | ||
| 201 | } | ||
| 202 | static inline void writel(unsigned int l, volatile void __iomem *addr) | ||
| 203 | { | ||
| 204 | __raw_writel(cpu_to_le32(l), addr); | ||
| 205 | } | ||
| 206 | static 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) |
