Re: [PATCH] powerpc: tiny memcpy_(to|from)io optimisation
From: Lorenz Kolb <hidden>
Date: 2009-06-19 18:42:54
Albrecht Dreß wrote:
quoted hunk ↗ jump to hunk
This trivial patch changes memcpy_(to|from)io as to transfer as many 32-bit words as possible in 32-bit accesses (in the current solution, the last 32-bit word was transferred as 4 byte accesses). Signed-off-by: Albrecht Dreß <redacted> --- diff -urpN -X linux-2.6.29.1.orig/Documentation/dontdiff linux-2.6.29.1.orig/arch/powerpc/kernel/io.c linux-2.6.29.1/arch/powerpc/kernel/io.c--- linux-2.6.29.1.orig/arch/powerpc/kernel/io.c 2009-04-0222:55:27.000000000 +0200+++ linux-2.6.29.1/arch/powerpc/kernel/io.c 2009-05-2711:36:09.000000000 +0200@@ -161,7 +161,7 @@ void _memcpy_fromio(void *dest, const vo dest++; n--; } - while(n > 4) { + while(n >= 4) { *((u32 *)dest) = *((volatile u32 *)vsrc); eieio(); vsrc += 4;@@ -190,7 +190,7 @@ void _memcpy_toio(volatile void __iomem vdest++; n--; } - while(n > 4) { + while(n >= 4) { *((volatile u32 *)vdest) = *((volatile u32 *)src); src += 4; vdest += 4; ------------------------------------------------------------------------
Works for me (and some custom hardware I created [quite a while ago, when I was young ;-)] that is not very tolerant to Byte-by-Byte-Transfers). Thus: Acked