[PATCH 1/12] smc911x: Fix a few accessor SMC_* routines
From: <hidden>
Date: 2006-09-13 18:35:32
When in 16 bit mode, SMC_outl incorrectly simulates the situation and plus in 32 bit mode SMC_outw is missing... Signed-off-by: Bora Sahin <redacted> Index: linux-2.6.18-rc4/drivers/net/smc911x.h ===================================================================
--- linux-2.6.18-rc4.orig/drivers/net/smc911x.h 2006-08-06 21:20:11.000000000 +0300
+++ linux-2.6.18-rc4/drivers/net/smc911x.h 2006-08-24 12:23:10.000000000 +0300@@ -51,8 +51,8 @@ #define SMC_outw(v, a, r) writew(v, (a) + (r)) #define SMC_outl(v, a, r) \ do{ \ - writel(v & 0xFFFF, (a) + (r)); \ - writel(v >> 16, (a) + (r) + 2); \ + writew(v & 0xFFFF, (a) + (r)); \ + writew(v >> 16, (a) + (r) + 2); \ } while (0) #define SMC_insl(a, r, p, l) readsw((short*)((a) + (r)), p, l*2) #define SMC_outsl(a, r, p, l) writesw((short*)((a) + (r)), p, l*2)
@@ -62,6 +62,7 @@ #define SMC_inw(a, r) readw((a) + (r)) #define SMC_inl(a, r) readl((a) + (r)) #define SMC_outb(v, a, r) writeb(v, (a) + (r)) +#define SMC_outw(v, a, r) writew(v, (a) + (r)) #define SMC_outl(v, a, r) writel(v, (a) + (r)) #define SMC_insl(a, r, p, l) readsl((int*)((a) + (r)), p, l) #define SMC_outsl(a, r, p, l) writesl((int*)((a) + (r)), p, l)