Since the "ssync" instruction may have hardware anomalies associated with
it, have the smc91111 driver use the SSYNC macro rather than invoking it
directly.  We workaround all the anomalies via this macro.

Signed-off-by: Mike Frysinger <[EMAIL PROTECTED]>
---
 drivers/net/smc91111.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/smc91111.h b/drivers/net/smc91111.h
index d03cbc3..8dcbb3e 100644
--- a/drivers/net/smc91111.h
+++ b/drivers/net/smc91111.h
@@ -186,7 +186,7 @@ typedef unsigned long int           dword;
 #ifdef CONFIG_ADNPESC1
 #define        SMC_inw(r)      (*((volatile word 
*)(SMC_BASE_ADDRESS+((r)<<1))))
 #elif CONFIG_BLACKFIN
-#define        SMC_inw(r)      ({ word __v = (*((volatile word 
*)(SMC_BASE_ADDRESS+(r)))); asm("ssync;"); __v;})
+#define        SMC_inw(r)      ({ word __v = (*((volatile word 
*)(SMC_BASE_ADDRESS+(r)))); SSYNC(); __v;})
 #else
 #define        SMC_inw(r)      (*((volatile word *)(SMC_BASE_ADDRESS+(r))))
 #endif
@@ -195,7 +195,7 @@ typedef unsigned long int           dword;
 #ifdef CONFIG_ADNPESC1
 #define        SMC_outw(d,r)   (*((volatile word 
*)(SMC_BASE_ADDRESS+((r)<<1))) = d)
 #elif CONFIG_BLACKFIN
-#define        SMC_outw(d,r)   {(*((volatile word *)(SMC_BASE_ADDRESS+(r))) = 
d);asm("ssync;");}
+#define        SMC_outw(d,r)   {(*((volatile word *)(SMC_BASE_ADDRESS+(r))) = 
d); SSYNC();}
 #else
 #define        SMC_outw(d,r)   (*((volatile word *)(SMC_BASE_ADDRESS+(r))) = d)
 #endif
-- 
1.5.4.2


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to