Thread (13 messages) 13 messages, 7 authors, 2009-06-19

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-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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help