diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2014-07-20 07:38:59 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-07-22 00:43:18 -0400 |
commit | 6b8b5507ed921d8fc5dc44f6eed0c14deb401495 (patch) | |
tree | ac17fc8095003d2e1f6e9f38c5d3a175e9f97cc6 /arch | |
parent | d650471a399e65e423967e0b7692c86228211522 (diff) |
sparc64: update IO access functions in PeeCeeI
The PeeCeeI.c code used in*() + out*() for IO access.
But these are in little endian and the native (big) endian
result was required which resulted in some bit-shifting.
Shift the code over to use the __raw_*() variants all over.
This simplifies the code as we can drop the calls
to le16_to_cpu() and le32_to_cpu().
And it should be a little faster too.
With this change we now uses the same type of IO access functions
in all of the file.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sparc/lib/PeeCeeI.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/arch/sparc/lib/PeeCeeI.c b/arch/sparc/lib/PeeCeeI.c index 6529f8657597..e6d183675990 100644 --- a/arch/sparc/lib/PeeCeeI.c +++ b/arch/sparc/lib/PeeCeeI.c | |||
@@ -15,7 +15,7 @@ void outsb(unsigned long __addr, const void *src, unsigned long count) | |||
15 | const u8 *p = src; | 15 | const u8 *p = src; |
16 | 16 | ||
17 | while (count--) | 17 | while (count--) |
18 | outb(*p++, addr); | 18 | __raw_writeb(*p++, addr); |
19 | } | 19 | } |
20 | EXPORT_SYMBOL(outsb); | 20 | EXPORT_SYMBOL(outsb); |
21 | 21 | ||
@@ -93,21 +93,21 @@ void insb(unsigned long __addr, void *dst, unsigned long count) | |||
93 | u8 *pb = dst; | 93 | u8 *pb = dst; |
94 | 94 | ||
95 | while ((((unsigned long)pb) & 0x3) && count--) | 95 | while ((((unsigned long)pb) & 0x3) && count--) |
96 | *pb++ = inb(addr); | 96 | *pb++ = __raw_readb(addr); |
97 | pi = (u32 *)pb; | 97 | pi = (u32 *)pb; |
98 | while (count >= 4) { | 98 | while (count >= 4) { |
99 | u32 w; | 99 | u32 w; |
100 | 100 | ||
101 | w = (inb(addr) << 24); | 101 | w = (__raw_readb(addr) << 24); |
102 | w |= (inb(addr) << 16); | 102 | w |= (__raw_readb(addr) << 16); |
103 | w |= (inb(addr) << 8); | 103 | w |= (__raw_readb(addr) << 8); |
104 | w |= (inb(addr) << 0); | 104 | w |= (__raw_readb(addr) << 0); |
105 | *pi++ = w; | 105 | *pi++ = w; |
106 | count -= 4; | 106 | count -= 4; |
107 | } | 107 | } |
108 | pb = (u8 *)pi; | 108 | pb = (u8 *)pi; |
109 | while (count--) | 109 | while (count--) |
110 | *pb++ = inb(addr); | 110 | *pb++ = __raw_readb(addr); |
111 | } | 111 | } |
112 | } | 112 | } |
113 | EXPORT_SYMBOL(insb); | 113 | EXPORT_SYMBOL(insb); |
@@ -121,21 +121,21 @@ void insw(unsigned long __addr, void *dst, unsigned long count) | |||
121 | u32 *pi; | 121 | u32 *pi; |
122 | 122 | ||
123 | if (((unsigned long)ps) & 0x2) { | 123 | if (((unsigned long)ps) & 0x2) { |
124 | *ps++ = le16_to_cpu(inw(addr)); | 124 | *ps++ = __raw_readw(addr); |
125 | count--; | 125 | count--; |
126 | } | 126 | } |
127 | pi = (u32 *)ps; | 127 | pi = (u32 *)ps; |
128 | while (count >= 2) { | 128 | while (count >= 2) { |
129 | u32 w; | 129 | u32 w; |
130 | 130 | ||
131 | w = (le16_to_cpu(inw(addr)) << 16); | 131 | w = __raw_readw(addr) << 16; |
132 | w |= (le16_to_cpu(inw(addr)) << 0); | 132 | w |= __raw_readw(addr) << 0; |
133 | *pi++ = w; | 133 | *pi++ = w; |
134 | count -= 2; | 134 | count -= 2; |
135 | } | 135 | } |
136 | ps = (u16 *)pi; | 136 | ps = (u16 *)pi; |
137 | if (count) | 137 | if (count) |
138 | *ps = le16_to_cpu(inw(addr)); | 138 | *ps = __raw_readw(addr); |
139 | } | 139 | } |
140 | } | 140 | } |
141 | EXPORT_SYMBOL(insw); | 141 | EXPORT_SYMBOL(insw); |
@@ -148,7 +148,7 @@ void insl(unsigned long __addr, void *dst, unsigned long count) | |||
148 | if ((((unsigned long)dst) & 0x3) == 0) { | 148 | if ((((unsigned long)dst) & 0x3) == 0) { |
149 | u32 *pi = dst; | 149 | u32 *pi = dst; |
150 | while (count--) | 150 | while (count--) |
151 | *pi++ = le32_to_cpu(inl(addr)); | 151 | *pi++ = __raw_readl(addr); |
152 | } else { | 152 | } else { |
153 | u32 l = 0, l2, *pi; | 153 | u32 l = 0, l2, *pi; |
154 | u16 *ps; | 154 | u16 *ps; |
@@ -158,11 +158,11 @@ void insl(unsigned long __addr, void *dst, unsigned long count) | |||
158 | case 0x2: | 158 | case 0x2: |
159 | ps = dst; | 159 | ps = dst; |
160 | count -= 1; | 160 | count -= 1; |
161 | l = le32_to_cpu(inl(addr)); | 161 | l = __raw_readl(addr); |
162 | *ps++ = l; | 162 | *ps++ = l; |
163 | pi = (u32 *)ps; | 163 | pi = (u32 *)ps; |
164 | while (count--) { | 164 | while (count--) { |
165 | l2 = le32_to_cpu(inl(addr)); | 165 | l2 = __raw_readl(addr); |
166 | *pi++ = (l << 16) | (l2 >> 16); | 166 | *pi++ = (l << 16) | (l2 >> 16); |
167 | l = l2; | 167 | l = l2; |
168 | } | 168 | } |
@@ -173,13 +173,13 @@ void insl(unsigned long __addr, void *dst, unsigned long count) | |||
173 | case 0x1: | 173 | case 0x1: |
174 | pb = dst; | 174 | pb = dst; |
175 | count -= 1; | 175 | count -= 1; |
176 | l = le32_to_cpu(inl(addr)); | 176 | l = __raw_readl(addr); |
177 | *pb++ = l >> 24; | 177 | *pb++ = l >> 24; |
178 | ps = (u16 *)pb; | 178 | ps = (u16 *)pb; |
179 | *ps++ = ((l >> 8) & 0xffff); | 179 | *ps++ = ((l >> 8) & 0xffff); |
180 | pi = (u32 *)ps; | 180 | pi = (u32 *)ps; |
181 | while (count--) { | 181 | while (count--) { |
182 | l2 = le32_to_cpu(inl(addr)); | 182 | l2 = __raw_readl(addr); |
183 | *pi++ = (l << 24) | (l2 >> 8); | 183 | *pi++ = (l << 24) | (l2 >> 8); |
184 | l = l2; | 184 | l = l2; |
185 | } | 185 | } |
@@ -190,11 +190,11 @@ void insl(unsigned long __addr, void *dst, unsigned long count) | |||
190 | case 0x3: | 190 | case 0x3: |
191 | pb = (u8 *)dst; | 191 | pb = (u8 *)dst; |
192 | count -= 1; | 192 | count -= 1; |
193 | l = le32_to_cpu(inl(addr)); | 193 | l = __raw_readl(addr); |
194 | *pb++ = l >> 24; | 194 | *pb++ = l >> 24; |
195 | pi = (u32 *)pb; | 195 | pi = (u32 *)pb; |
196 | while (count--) { | 196 | while (count--) { |
197 | l2 = le32_to_cpu(inl(addr)); | 197 | l2 = __raw_readl(addr); |
198 | *pi++ = (l << 8) | (l2 >> 24); | 198 | *pi++ = (l << 8) | (l2 >> 24); |
199 | l = l2; | 199 | l = l2; |
200 | } | 200 | } |