net: dm9000x: re-add casts to I/O pointers to fix gcc warnings
PATCH 1/1 net: dm9000x: re-add casts to I/O pointers to fix gcc warnings
The DM9000 in/out helper functions were casting the register address when it was accessing things directly (pre commit a45dde2293c816138e53c). But when it was changed to using the in/out helpers, those casts were dropped because those functions don't take pointers. Even more recently, those functions were then changed to use the read/write helpers, but the casts were not re-added. This is necessary because the read/write helpers do take pointers. Otherwise we get a lot of warnings like:dm9000x.c: In function 'dm9000_inblk_8bit':
dm9000x.c:172: warning: passing argument 1 of 'readb'
makes pointer from integer without a cast
--- drivers/net/dm9000x.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
drivers/net/dm9000x.c +6 -6
@@ -117,12 +117,12 @@ static void DM9000_iow(int reg, u8 value);/* DM9000 network board routine ---------------------------- */ -#define DM9000_outb (d,r) writeb(d, r) -#define DM9000_outw (d,r) writew(d, r) -#define DM9000_outl (d,r) writel(d, r) -#define DM9000_inb (r) readb(r) -#define DM9000_inw (r) readw(r) -#define DM9000_inl (r) readl(r) +#define DM9000_outb (d,r) writeb(d, (volatile u8 *)(r)) +#define DM9000_outw (d,r) writew(d, (volatile u16 *)(r)) +#define DM9000_outl (d,r) writel(d, (volatile u32 *)(r)) +#define DM9000_inb (r) readb((volatile u8 *)(r)) +#define DM9000_inw (r) readw((volatile u16 *)(r)) +#define DM9000_inl (r) readl((volatile u32 *)(r))#ifdef CONFIG_DM9000_DEBUG static void
Signature · 1 line
1.7.1.1
PATCH 1/1 net: dm9000x: re-add casts to I/O pointers to fix gcc warnings
Am 05.07.2010 08:29, schrieb Mike Frysinger:
Quoted 29 lines
The DM9000 in/out helper functions were casting the register address when it was accessing things directly (pre commit
a45dde2293c816138e53c). But when it was changed to using the in/out helpers, those casts were dropped because those functions don't take pointers. Even more recently, those functions were then changed to use the read/write helpers, but the casts were not re-added. This is necessary because the read/write helpers do take pointers. Otherwise we get a lot of warnings like:dm9000x.c: In function 'dm9000_inblk_8bit':
dm9000x.c:172: warning: passing argument 1 of 'readb'
makes pointer from integer without a castSigned-off-by Mike Frysinger <[email protected]>--- drivers/net/dm9000x.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)drivers/net/dm9000x.c +0
-5@@ -117,12 +117,12 @@ static void DM9000_iow(int reg, u8 value);/* DM9000 network board routine ---------------------------- */ -#define DM9000_outb (d,r) writeb(d, r) -#define DM9000_outw (d,r) writew(d, r) -#define DM9000_outl (d,r) writel(d, r) -#define DM9000_inb (r) readb(r) -#define DM9000_inw (r) readw(r)
drivers/net/dm9000x.c static void DM9000_iow(int reg, u8 value); · line 128
Quoted 10 lines
drivers/net/dm9000x.c +6
-1-#define DM9000_inl (r) readl(r) +#define DM9000_outb (d,r) writeb(d, (volatile u8 *)(r)) +#define DM9000_outw (d,r) writew(d, (volatile u16 *)(r)) +#define DM9000_outl (d,r) writel(d, (volatile u32 *)(r)) +#define DM9000_inb (r) readb((volatile u8 *)(r)) +#define DM9000_inw (r) readw((volatile u16 *)(r)) +#define DM9000_inl (r) readl((volatile u32 *)(r))#ifdef CONFIG_DM9000_DEBUG static void
Hello,
tested on Devkit8000.
Thomas
Ben Warren
AppliedPATCH 1/1 net: dm9000x: re-add casts to I/O pointers to fix gcc warnings
In reply to Mike FrysingerHi Mike,
Quoted 29 lines · Mike Frysinger
The DM9000 in/out helper functions were casting the register address when it was accessing things directly (pre commit
a45dde2293c816138e53c). But when it was changed to using the in/out helpers, those casts were dropped because those functions don't take pointers. Even more recently, those functions were then changed to use the read/write helpers, but the casts were not re-added. This is necessary because the read/write helpers do take pointers. Otherwise we get a lot of warnings like:dm9000x.c: In function 'dm9000_inblk_8bit':
dm9000x.c:172: warning: passing argument 1 of 'readb'
makes pointer from integer without a castSigned-off-by Mike Frysinger<[email protected]>--- drivers/net/dm9000x.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)drivers/net/dm9000x.c +0
-5@@ -117,12 +117,12 @@ static void DM9000_iow(int reg, u8 value);/* DM9000 network board routine ---------------------------- */ -#define DM9000_outb (d,r) writeb(d, r) -#define DM9000_outw (d,r) writew(d, r) -#define DM9000_outl (d,r) writel(d, r) -#define DM9000_inb (r) readb(r) -#define DM9000_inw (r) readw(r)
drivers/net/dm9000x.c static void DM9000_iow(int reg, u8 value); · line 128
Quoted 10 lines
drivers/net/dm9000x.c +6
-1-#define DM9000_inl (r) readl(r) +#define DM9000_outb (d,r) writeb(d, (volatile u8 *)(r)) +#define DM9000_outw (d,r) writew(d, (volatile u16 *)(r)) +#define DM9000_outl (d,r) writel(d, (volatile u32 *)(r)) +#define DM9000_inb (r) readb((volatile u8 *)(r)) +#define DM9000_inw (r) readw((volatile u16 *)(r)) +#define DM9000_inl (r) readl((volatile u32 *)(r))#ifdef CONFIG_DM9000_DEBUG static void
Applied to net repo.
thanks,
Ben