[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>
This commit is contained in:
parent
d80e2bb126
commit
2c1a2a3441
@ -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;
|
memcpy(to, (const void __force *)from, count);
|
||||||
volatile const char __iomem *addr = from;
|
|
||||||
|
|
||||||
while (count--)
|
|
||||||
*p++ = readb(addr++);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
memcpy((void __force *)to, from, count);
|
||||||
volatile char __iomem *addr = to;
|
|
||||||
|
|
||||||
while (count--)
|
|
||||||
writeb(*p++, addr++);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
memset((void __force *)addr, val, count);
|
||||||
|
|
||||||
while (count--)
|
|
||||||
writeb(val, p++);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define IO_SPACE_LIMIT 0xffffffff
|
#define IO_SPACE_LIMIT 0xffffffff
|
||||||
|
Loading…
Reference in New Issue
Block a user