Recently new IO memcpy were added in libs/iomem_copy.c. So, remove the alpha specific implementations and use the ones from the lib code. Signed-off-by: Julian Vetter <julian@xxxxxxxxxxxxxxxx> --- Changes for V2: - Split the patch into two: - One that shuffles the memsetw_io and _memset_c_io around - And one that removed the memcpy_fromio and memcpy_toio --- arch/alpha/include/asm/io.h | 5 -- arch/alpha/kernel/io.c | 109 ------------------------------------ 2 files changed, 114 deletions(-) diff --git a/arch/alpha/include/asm/io.h b/arch/alpha/include/asm/io.h index d6e868872e19..ba45f84c97f1 100644 --- a/arch/alpha/include/asm/io.h +++ b/arch/alpha/include/asm/io.h @@ -590,13 +590,8 @@ extern inline u64 readq_relaxed(const volatile void __iomem *addr) /* * String version of IO memory access ops: */ -extern void memcpy_fromio(void *, const volatile void __iomem *, long); -extern void memcpy_toio(volatile void __iomem *, const void *, long); extern void memsetw_io(volatile void __iomem *to, u16 c, long count); -#define memcpy_fromio memcpy_fromio -#define memcpy_toio memcpy_toio - /* * String versions of in/out ops: */ diff --git a/arch/alpha/kernel/io.c b/arch/alpha/kernel/io.c index 353b1dcbd422..a6a53fcfafb6 100644 --- a/arch/alpha/kernel/io.c +++ b/arch/alpha/kernel/io.c @@ -476,115 +476,6 @@ void outsl(unsigned long port, const void *src, unsigned long count) EXPORT_SYMBOL(iowrite32_rep); EXPORT_SYMBOL(outsl); - -/* - * Copy data from IO memory space to "real" memory space. - * This needs to be optimized. - */ -void memcpy_fromio(void *to, const volatile void __iomem *from, long count) -{ - /* Optimize co-aligned transfers. Everything else gets handled - a byte at a time. */ - - if (count >= 8 && ((u64)to & 7) == ((u64)from & 7)) { - count -= 8; - do { - *(u64 *)to = __raw_readq(from); - count -= 8; - to += 8; - from += 8; - } while (count >= 0); - count += 8; - } - - if (count >= 4 && ((u64)to & 3) == ((u64)from & 3)) { - count -= 4; - do { - *(u32 *)to = __raw_readl(from); - count -= 4; - to += 4; - from += 4; - } while (count >= 0); - count += 4; - } - - if (count >= 2 && ((u64)to & 1) == ((u64)from & 1)) { - count -= 2; - do { - *(u16 *)to = __raw_readw(from); - count -= 2; - to += 2; - from += 2; - } while (count >= 0); - count += 2; - } - - while (count > 0) { - *(u8 *) to = __raw_readb(from); - count--; - to++; - from++; - } - mb(); -} - -EXPORT_SYMBOL(memcpy_fromio); - - -/* - * Copy data from "real" memory space to IO memory space. - * This needs to be optimized. - */ -void memcpy_toio(volatile void __iomem *to, const void *from, long count) -{ - /* Optimize co-aligned transfers. Everything else gets handled - a byte at a time. */ - /* FIXME -- align FROM. */ - - if (count >= 8 && ((u64)to & 7) == ((u64)from & 7)) { - count -= 8; - do { - __raw_writeq(*(const u64 *)from, to); - count -= 8; - to += 8; - from += 8; - } while (count >= 0); - count += 8; - } - - if (count >= 4 && ((u64)to & 3) == ((u64)from & 3)) { - count -= 4; - do { - __raw_writel(*(const u32 *)from, to); - count -= 4; - to += 4; - from += 4; - } while (count >= 0); - count += 4; - } - - if (count >= 2 && ((u64)to & 1) == ((u64)from & 1)) { - count -= 2; - do { - __raw_writew(*(const u16 *)from, to); - count -= 2; - to += 2; - from += 2; - } while (count >= 0); - count += 2; - } - - while (count > 0) { - __raw_writeb(*(const u8 *) from, to); - count--; - to++; - from++; - } - mb(); -} - -EXPORT_SYMBOL(memcpy_toio); - #if IS_ENABLED(CONFIG_VGA_CONSOLE) || IS_ENABLED(CONFIG_MDA_CONSOLE) #include <asm/vga.h> -- 2.34.1