summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAjay Bhargav <ajay.bhargav@einfochips.com>2011-10-31 01:19:37 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2011-12-06 23:59:30 +0100
commit28cb465f78027c2e7eb6678a61bf5c71e6b2cdeb (patch)
tree7b9b04c00bdd20afc37a726114cef6996f1876cc /drivers
parent77ea071fefbda70ed21a6f0e7bd34ec215e70d39 (diff)
downloadu-boot-imx-28cb465f78027c2e7eb6678a61bf5c71e6b2cdeb.zip
u-boot-imx-28cb465f78027c2e7eb6678a61bf5c71e6b2cdeb.tar.gz
u-boot-imx-28cb465f78027c2e7eb6678a61bf5c71e6b2cdeb.tar.bz2
net: Armada100: Fix compilation warnings
This patch fix compilation warnings for Armada100 FEC driver Ref: warning: dereferencing type-punned pointer will break strict-aliasing rules Signed-off-by: Ajay Bhargav <ajay.bhargav@einfochips.com> Acked-by: Anatolij Gustschin <agust@denx.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/armada100_fec.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/armada100_fec.c b/drivers/net/armada100_fec.c
index fbf9763..1a54362 100644
--- a/drivers/net/armada100_fec.c
+++ b/drivers/net/armada100_fec.c
@@ -440,6 +440,7 @@ static int armdfec_init(struct eth_device *dev, bd_t *bd)
struct armdfec_device *darmdfec = to_darmdfec(dev);
struct armdfec_reg *regs = darmdfec->regs;
int phy_adr;
+ u32 temp;
armdfec_init_rx_desc_ring(darmdfec);
@@ -479,9 +480,12 @@ static int armdfec_init(struct eth_device *dev, bd_t *bd)
update_hash_table_mac_address(darmdfec, NULL, dev->enetaddr);
/* Update TX and RX queue descriptor register */
- writel((u32)darmdfec->p_txdesc, &regs->txcdp[TXQ]);
- writel((u32)darmdfec->p_rxdesc, &regs->rxfdp[RXQ]);
- writel((u32)darmdfec->p_rxdesc_curr, &regs->rxcdp[RXQ]);
+ temp = (u32)&regs->txcdp[TXQ];
+ writel((u32)darmdfec->p_txdesc, temp);
+ temp = (u32)&regs->rxfdp[RXQ];
+ writel((u32)darmdfec->p_rxdesc, temp);
+ temp = (u32)&regs->rxcdp[RXQ];
+ writel((u32)darmdfec->p_rxdesc_curr, temp);
/* Enable Interrupts */
writel(ALL_INTS, &regs->im);
@@ -614,6 +618,7 @@ static int armdfec_recv(struct eth_device *dev)
struct rx_desc *p_rxdesc_curr = darmdfec->p_rxdesc_curr;
u32 cmd_sts;
u32 timeout = 0;
+ u32 temp;
/* wait untill rx packet available or timeout */
do {
@@ -667,7 +672,8 @@ static int armdfec_recv(struct eth_device *dev)
p_rxdesc_curr->buf_size = PKTSIZE_ALIGN;
p_rxdesc_curr->byte_cnt = 0;
- writel((u32)p_rxdesc_curr->nxtdesc_p, (u32)&darmdfec->p_rxdesc_curr);
+ temp = (u32)&darmdfec->p_rxdesc_curr;
+ writel((u32)p_rxdesc_curr->nxtdesc_p, temp);
return 0;
}