[U-Boot-Users] [PATCH v2] smc911x: add 16 bit support

Incorporated Ben's, Magnus's and Guennadi's proposals. Thank you for reviewing.
Signed-off-by: Jens Gehrlein sew_s@tqs.de ---
drivers/net/smc911x.c | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index d22c889..bd82cf7 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -30,6 +30,10 @@ #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 + #ifdef CONFIG_DRIVER_SMC911X_32_BIT static inline u32 reg_read(u32 addr) { @@ -39,9 +43,20 @@ static inline void reg_write(u32 addr, u32 val) { *(volatile u32*)addr = val; } +#elif 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: Only 32-bit bus is supported" -#endif +#error "SMC911X: undefined buswidth" +#endif /* CONFIG_DRIVER_SMC911X_16_BIT */
#define mdelay(n) udelay((n)*1000)

Hi Jens,
On Wed, Apr 30, 2008 at 5:34 AM, Jens Gehrlein sew_s@tqs.de wrote:
Incorporated Ben's, Magnus's and Guennadi's proposals. Thank you for reviewing.
Almost there. This comment needs to go below the '---' line so that it doesn't become part of the commit message. Also, please add a meaningful comment here (above your SOB line). The patch title contains all the useful information, so you may want to just copy it, but there needs to be something.
Signed-off-by: Jens Gehrlein sew_s@tqs.de
drivers/net/smc911x.c | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index d22c889..bd82cf7 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -30,6 +30,10 @@ #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"
Both of these lines are too long. I suggest:
+#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"
NOTE: I wrote this in gmail's web interface, so don't cut & paste - do it right!
+#endif
#ifdef CONFIG_DRIVER_SMC911X_32_BIT static inline u32 reg_read(u32 addr) { @@ -39,9 +43,20 @@ static inline void reg_write(u32 addr, u32 val) { *(volatile u32*)addr = val; } +#elif 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: Only 32-bit bus is supported" -#endif +#error "SMC911X: undefined buswidth"
s/buswidth/bus\ width/
+#endif /* CONFIG_DRIVER_SMC911X_16_BIT */
#define mdelay(n) udelay((n)*1000)
Also, would you mind putting an entry into the README file for this driver? There's already one there for the SMC91111 driver, so this should be really fast.
Thanks for your help!
regards, Ben

In message f8328f7c0804301426q1b3a0f54ief2c78722ce1419@mail.gmail.com you wrote:
Almost there. This comment needs to go below the '---' line so that it doesn't become part of the commit message. Also, please add a
That's correct.
meaningful comment here (above your SOB line). The patch title contains all the useful information, so you may want to just copy it, but there needs to be something.
No, please don't, or the line will end up twice in the commit message.
Best regards,
Wolfgang Denk
participants (3)
-
Ben Warren
-
Jens Gehrlein
-
Wolfgang Denk