summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatolij Gustschin <agust@denx.de>2011-11-19 08:59:36 +0000
committerWolfgang Denk <wd@denx.de>2011-12-05 23:04:17 +0100
commite6e556c16b7a6db9d78b8765dee05ce9ed7537f0 (patch)
treed9e41c2f263d560475fc7f8c8f9aae68671079ac
parent7813ca9b66509b1d6d8e04d49a10f51e9c9632a4 (diff)
downloadu-boot-imx-e6e556c16b7a6db9d78b8765dee05ce9ed7537f0.zip
u-boot-imx-e6e556c16b7a6db9d78b8765dee05ce9ed7537f0.tar.gz
u-boot-imx-e6e556c16b7a6db9d78b8765dee05ce9ed7537f0.tar.bz2
drivers/net/mvgbe.c: Fix GCC 4.6 warnings
Fix: mvgbe.c: In function 'mvgbe_send': mvgbe.c:555:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] mvgbe.c: In function 'mvgbe_recv': mvgbe.c:640:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] Signed-off-by: Anatolij Gustschin <agust@denx.de> Cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-By: Prafulla Wadaskar <prafulla@marvell.com>
-rw-r--r--drivers/net/mvgbe.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/mvgbe.c b/drivers/net/mvgbe.c
index fd13428..de7cdd7 100644
--- a/drivers/net/mvgbe.c
+++ b/drivers/net/mvgbe.c
@@ -531,6 +531,7 @@ static int mvgbe_send(struct eth_device *dev, void *dataptr,
struct mvgbe_txdesc *p_txdesc = dmvgbe->p_txdesc;
void *p = (void *)dataptr;
u32 cmd_sts;
+ u32 txuq0_reg_addr;
/* Copy buffer if it's misaligned */
if ((u32) dataptr & 0x07) {
@@ -552,7 +553,8 @@ static int mvgbe_send(struct eth_device *dev, void *dataptr,
p_txdesc->byte_cnt = datasize;
/* Set this tc desc as zeroth TXUQ */
- MVGBE_REG_WR(regs->tcqdp[TXUQ], (u32) p_txdesc);
+ txuq0_reg_addr = (u32)&regs->tcqdp[TXUQ];
+ writel((u32) p_txdesc, txuq0_reg_addr);
/* ensure tx desc writes above are performed before we start Tx DMA */
isb();
@@ -583,6 +585,7 @@ static int mvgbe_recv(struct eth_device *dev)
struct mvgbe_rxdesc *p_rxdesc_curr = dmvgbe->p_rxdesc_curr;
u32 cmd_sts;
u32 timeout = 0;
+ u32 rxdesc_curr_addr;
/* wait untill rx packet available or timeout */
do {
@@ -637,8 +640,8 @@ static int mvgbe_recv(struct eth_device *dev)
p_rxdesc_curr->buf_size = PKTSIZE_ALIGN;
p_rxdesc_curr->byte_cnt = 0;
- writel((unsigned)p_rxdesc_curr->nxtdesc_p,
- (u32) &dmvgbe->p_rxdesc_curr);
+ rxdesc_curr_addr = (u32)&dmvgbe->p_rxdesc_curr;
+ writel((unsigned)p_rxdesc_curr->nxtdesc_p, rxdesc_curr_addr);
return 0;
}