diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2008-02-24 23:52:35 -0500 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-03-25 22:32:25 +0100 | 
| commit | 8a30b4700942f37495d2e67f5998cdffb6e3ba8a (patch) | |
| tree | e9bcf73d86a3d20e0d7e81cb9f2e2d265b9af7a3 /drivers/net/smc91111.h | |
| parent | 77ff7b7444ceb8022b46114f3d0b6d18e2fd1138 (diff) | |
| download | olio-uboot-2014.01-8a30b4700942f37495d2e67f5998cdffb6e3ba8a.tar.xz olio-uboot-2014.01-8a30b4700942f37495d2e67f5998cdffb6e3ba8a.zip | |
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>
Diffstat (limited to 'drivers/net/smc91111.h')
| -rw-r--r-- | 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 d03cbc320..8dcbb3e2a 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 |