diff options
author | Ajay Bhargav <ajay.bhargav@einfochips.com> | 2011-10-31 01:19:37 +0000 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2011-12-06 23:59:30 +0100 |
commit | 28cb465f78027c2e7eb6678a61bf5c71e6b2cdeb (patch) | |
tree | 7b9b04c00bdd20afc37a726114cef6996f1876cc /drivers | |
parent | 77ea071fefbda70ed21a6f0e7bd34ec215e70d39 (diff) | |
download | u-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.c | 14 |
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, ®s->txcdp[TXQ]); - writel((u32)darmdfec->p_rxdesc, ®s->rxfdp[RXQ]); - writel((u32)darmdfec->p_rxdesc_curr, ®s->rxcdp[RXQ]); + temp = (u32)®s->txcdp[TXQ]; + writel((u32)darmdfec->p_txdesc, temp); + temp = (u32)®s->rxfdp[RXQ]; + writel((u32)darmdfec->p_rxdesc, temp); + temp = (u32)®s->rxcdp[RXQ]; + writel((u32)darmdfec->p_rxdesc_curr, temp); /* Enable Interrupts */ writel(ALL_INTS, ®s->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; } |