diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-parisc/io.h | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/include/asm-parisc/io.h b/include/asm-parisc/io.h index bcfe0b09c93f..29da31194b91 100644 --- a/include/asm-parisc/io.h +++ b/include/asm-parisc/io.h | |||
| @@ -25,31 +25,11 @@ extern unsigned long parisc_vmerge_max_size; | |||
| 25 | * eg dev->hpa or 0xfee00000. | 25 | * eg dev->hpa or 0xfee00000. |
| 26 | */ | 26 | */ |
| 27 | 27 | ||
| 28 | #ifdef CONFIG_DEBUG_IOREMAP | ||
| 29 | #define NYBBLE_SHIFT (BITS_PER_LONG - 4) | ||
| 30 | extern void gsc_bad_addr(unsigned long addr); | ||
| 31 | extern void __raw_bad_addr(const volatile void __iomem *addr); | ||
| 32 | #define gsc_check_addr(addr) \ | ||
| 33 | if ((addr >> NYBBLE_SHIFT) != 0xf) { \ | ||
| 34 | gsc_bad_addr(addr); \ | ||
| 35 | addr |= 0xfUL << NYBBLE_SHIFT; \ | ||
| 36 | } | ||
| 37 | #define __raw_check_addr(addr) \ | ||
| 38 | if (((unsigned long)addr >> NYBBLE_SHIFT) != 0xe) \ | ||
| 39 | __raw_bad_addr(addr); \ | ||
| 40 | addr = (void __iomem *)((unsigned long)addr | (0xfUL << NYBBLE_SHIFT)); | ||
| 41 | #else | ||
| 42 | #define gsc_check_addr(addr) | ||
| 43 | #define __raw_check_addr(addr) | ||
| 44 | #endif | ||
| 45 | |||
| 46 | static inline unsigned char gsc_readb(unsigned long addr) | 28 | static inline unsigned char gsc_readb(unsigned long addr) |
| 47 | { | 29 | { |
| 48 | long flags; | 30 | long flags; |
| 49 | unsigned char ret; | 31 | unsigned char ret; |
| 50 | 32 | ||
| 51 | gsc_check_addr(addr); | ||
| 52 | |||
| 53 | __asm__ __volatile__( | 33 | __asm__ __volatile__( |
| 54 | " rsm 2,%0\n" | 34 | " rsm 2,%0\n" |
| 55 | " ldbx 0(%2),%1\n" | 35 | " ldbx 0(%2),%1\n" |
| @@ -64,8 +44,6 @@ static inline unsigned short gsc_readw(unsigned long addr) | |||
| 64 | long flags; | 44 | long flags; |
| 65 | unsigned short ret; | 45 | unsigned short ret; |
| 66 | 46 | ||
| 67 | gsc_check_addr(addr); | ||
| 68 | |||
| 69 | __asm__ __volatile__( | 47 | __asm__ __volatile__( |
| 70 | " rsm 2,%0\n" | 48 | " rsm 2,%0\n" |
| 71 | " ldhx 0(%2),%1\n" | 49 | " ldhx 0(%2),%1\n" |
| @@ -79,8 +57,6 @@ static inline unsigned int gsc_readl(unsigned long addr) | |||
| 79 | { | 57 | { |
| 80 | u32 ret; | 58 | u32 ret; |
| 81 | 59 | ||
| 82 | gsc_check_addr(addr); | ||
| 83 | |||
| 84 | __asm__ __volatile__( | 60 | __asm__ __volatile__( |
| 85 | " ldwax 0(%1),%0\n" | 61 | " ldwax 0(%1),%0\n" |
| 86 | : "=r" (ret) : "r" (addr) ); | 62 | : "=r" (ret) : "r" (addr) ); |
| @@ -91,7 +67,6 @@ static inline unsigned int gsc_readl(unsigned long addr) | |||
| 91 | static inline unsigned long long gsc_readq(unsigned long addr) | 67 | static inline unsigned long long gsc_readq(unsigned long addr) |
| 92 | { | 68 | { |
| 93 | unsigned long long ret; | 69 | unsigned long long ret; |
| 94 | gsc_check_addr(addr); | ||
| 95 | 70 | ||
| 96 | #ifdef __LP64__ | 71 | #ifdef __LP64__ |
| 97 | __asm__ __volatile__( | 72 | __asm__ __volatile__( |
| @@ -108,8 +83,6 @@ static inline unsigned long long gsc_readq(unsigned long addr) | |||
| 108 | static inline void gsc_writeb(unsigned char val, unsigned long addr) | 83 | static inline void gsc_writeb(unsigned char val, unsigned long addr) |
| 109 | { | 84 | { |
| 110 | long flags; | 85 | long flags; |
| 111 | gsc_check_addr(addr); | ||
| 112 | |||
| 113 | __asm__ __volatile__( | 86 | __asm__ __volatile__( |
| 114 | " rsm 2,%0\n" | 87 | " rsm 2,%0\n" |
| 115 | " stbs %1,0(%2)\n" | 88 | " stbs %1,0(%2)\n" |
| @@ -120,8 +93,6 @@ static inline void gsc_writeb(unsigned char val, unsigned long addr) | |||
| 120 | static inline void gsc_writew(unsigned short val, unsigned long addr) | 93 | static inline void gsc_writew(unsigned short val, unsigned long addr) |
| 121 | { | 94 | { |
| 122 | long flags; | 95 | long flags; |
| 123 | gsc_check_addr(addr); | ||
| 124 | |||
| 125 | __asm__ __volatile__( | 96 | __asm__ __volatile__( |
| 126 | " rsm 2,%0\n" | 97 | " rsm 2,%0\n" |
| 127 | " sths %1,0(%2)\n" | 98 | " sths %1,0(%2)\n" |
| @@ -131,8 +102,6 @@ static inline void gsc_writew(unsigned short val, unsigned long addr) | |||
| 131 | 102 | ||
| 132 | static inline void gsc_writel(unsigned int val, unsigned long addr) | 103 | static inline void gsc_writel(unsigned int val, unsigned long addr) |
| 133 | { | 104 | { |
| 134 | gsc_check_addr(addr); | ||
| 135 | |||
| 136 | __asm__ __volatile__( | 105 | __asm__ __volatile__( |
| 137 | " stwas %0,0(%1)\n" | 106 | " stwas %0,0(%1)\n" |
| 138 | : : "r" (val), "r" (addr) ); | 107 | : : "r" (val), "r" (addr) ); |
| @@ -140,8 +109,6 @@ static inline void gsc_writel(unsigned int val, unsigned long addr) | |||
| 140 | 109 | ||
| 141 | static inline void gsc_writeq(unsigned long long val, unsigned long addr) | 110 | static inline void gsc_writeq(unsigned long long val, unsigned long addr) |
| 142 | { | 111 | { |
| 143 | gsc_check_addr(addr); | ||
| 144 | |||
| 145 | #ifdef __LP64__ | 112 | #ifdef __LP64__ |
| 146 | __asm__ __volatile__( | 113 | __asm__ __volatile__( |
| 147 | " stda %0,0(%1)\n" | 114 | " stda %0,0(%1)\n" |
