Преглед на файлове

[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>
Haavard Skinnemoen преди 18 години
родител
ревизия
2c1a2a3441
променени са 1 файла, в които са добавени 3 реда и са изтрити 14 реда
  1. 3 14
      include/asm-avr32/io.h

+ 3 - 14
include/asm-avr32/io.h

@@ -240,30 +240,19 @@ BUILDSTRING(l, u32)
 static inline void memcpy_fromio(void * to, const volatile void __iomem *from,
 static inline void memcpy_fromio(void * to, const volatile void __iomem *from,
 				 unsigned long count)
 				 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,
 static inline void  memcpy_toio(volatile void __iomem *to, const void * from,
 				unsigned long count)
 				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,
 static inline void memset_io(volatile void __iomem *addr, unsigned char val,
 			     unsigned long count)
 			     unsigned long count)
 {
 {
-	volatile char __iomem *p = addr;
-
-	while (count--)
-		writeb(val, p++);
+	memset((void __force *)addr, val, count);
 }
 }
 
 
 #define IO_SPACE_LIMIT	0xffffffff
 #define IO_SPACE_LIMIT	0xffffffff