[PATCH] powerpc: tiny memcpy_(to|from)io optimisation

Lorenz Kolb lorenz at missinglinkelectronics.com
Sat Jun 20 04:42:33 EST 2009


Albrecht Dreß wrote:
> 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ß <albrecht.dress at arcor.de>
> ---
> 
> 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-02 
> 22:55:27.000000000 +0200
> +++ linux-2.6.29.1/arch/powerpc/kernel/io.c    2009-05-27 
> 11: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


More information about the Linuxppc-dev mailing list