
Hi Mike,
Sorry I didn't address this earlier.
Mike Frysinger wrote:
The smc911x driver has a lot of useful defines/functions which can be used by pieces of code (such as example eeprom programmers). Rather than forcing each place to duplicate these defines/functions, split them out of the smdc911x driver into a local header.
Signed-off-by: Mike Frysinger vapier@gentoo.org CC: Sascha Hauer s.hauer@pengutronix.de CC: Guennadi Liakhovetski lg@denx.de CC: Magnus Lilja lilja.magnus@gmail.com CC: Ben Warren biggerbadderben@gmail.com
v2
- add includes for types utilized in smc911x.h
drivers/net/smc911x.c | 452 +--------------------------------------------- drivers/net/smc911x.h | 489 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 491 insertions(+), 450 deletions(-) create mode 100644 drivers/net/smc911x.h
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index 648c94c..192bd96 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -27,35 +27,7 @@ #include <net.h> #include <miiphy.h>
-#if defined (CONFIG_DRIVER_SMC911X_32_BIT) && \
- defined (CONFIG_DRIVER_SMC911X_16_BIT)
-#error "SMC911X: Only one of CONFIG_DRIVER_SMC911X_32_BIT and \
- CONFIG_DRIVER_SMC911X_16_BIT shall be set"
-#endif
-#if defined (CONFIG_DRIVER_SMC911X_32_BIT) -static inline u32 reg_read(u32 addr) -{
- return *(volatile u32*)addr;
-} -static inline void reg_write(u32 addr, u32 val) -{
- *(volatile u32*)addr = val;
-} -#elif defined (CONFIG_DRIVER_SMC911X_16_BIT) -static inline u32 reg_read(u32 addr) -{
- volatile u16 *addr_16 = (u16 *)addr;
- return ((*addr_16 & 0x0000ffff) | (*(addr_16 + 1) << 16));
-} -static inline void reg_write(u32 addr, u32 val) -{
- *(volatile u16*)addr = (u16)val;
- *(volatile u16*)(addr + 2) = (u16)(val >> 16);
-} -#else -#error "SMC911X: undefined bus width" -#endif /* CONFIG_DRIVER_SMC911X_16_BIT */ +#include "smc911x.h"
This hunk doesn't apply any more. Commit 890a02e8ee6b8c26a6e3e505e1a2d29cd73aa6f6 in late November changed several of these functions to weak.
<snip>
regards, Ben