summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2008-02-24 23:52:35 -0500
committerWolfgang Denk <wd@denx.de>2008-03-25 22:32:25 +0100
commit8a30b4700942f37495d2e67f5998cdffb6e3ba8a (patch)
treee9bcf73d86a3d20e0d7e81cb9f2e2d265b9af7a3
parent77ff7b7444ceb8022b46114f3d0b6d18e2fd1138 (diff)
downloadu-boot-imx-8a30b4700942f37495d2e67f5998cdffb6e3ba8a.zip
u-boot-imx-8a30b4700942f37495d2e67f5998cdffb6e3ba8a.tar.gz
u-boot-imx-8a30b4700942f37495d2e67f5998cdffb6e3ba8a.tar.bz2
smc91111: use SSYNC() rather than asm(ssync) for Blackfin
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 <vapier@gentoo.org>
-rw-r--r--drivers/net/smc91111.h4
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