summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2007-03-07 10:40:44 +0100
committerHaavard Skinnemoen <hskinnemoen@atmel.com>2007-04-27 13:44:15 +0200
commit2c1a2a3441a754a9b5a8e7184071154f8a9bd61b (patch)
treea11527d9a32495d800c949e9616b82c5c25aba5f
parentd80e2bb12606906fd0b5b5592f519852de8b0113 (diff)
downloadop-kernel-dev-2c1a2a3441a754a9b5a8e7184071154f8a9bd61b.zip
op-kernel-dev-2c1a2a3441a754a9b5a8e7184071154f8a9bd61b.tar.gz
[AVR32] Use memcpy/memset in memcpy_{from,to}_io and memset_io
Using readb/writeb to implement these breaks NOR flash support. I can't see any reason why regular memcpy and memset shouldn't work. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
-rw-r--r--include/asm-avr32/io.h17
1 files changed, 3 insertions, 14 deletions
diff --git a/include/asm-avr32/io.h b/include/asm-avr32/io.h
index 27b1523..e30d4b3 100644
--- a/include/asm-avr32/io.h
+++ b/include/asm-avr32/io.h
@@ -240,30 +240,19 @@ BUILDSTRING(l, u32)
static inline void memcpy_fromio(void * to, const volatile void __iomem *from,
unsigned long count)
{
- char *p = to;
- volatile const char __iomem *addr = from;
-
- while (count--)
- *p++ = readb(addr++);
+ memcpy(to, (const void __force *)from, count);
}
static inline void memcpy_toio(volatile void __iomem *to, const void * from,
unsigned long count)
{
- const char *p = from;
- volatile char __iomem *addr = to;
-
- while (count--)
- writeb(*p++, addr++);
+ memcpy((void __force *)to, from, count);
}
static inline void memset_io(volatile void __iomem *addr, unsigned char val,
unsigned long count)
{
- volatile char __iomem *p = addr;
-
- while (count--)
- writeb(val, p++);
+ memset((void __force *)addr, val, count);
}
#define IO_SPACE_LIMIT 0xffffffff
OpenPOWER on IntegriCloud