All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] at91_emac: fix compile warning
@ 2011-06-09 10:22 Andreas Bießmann
  2011-06-09 11:08 ` Reinhard Meyer
  2011-06-12 10:08 ` Andreas Bießmann
  0 siblings, 2 replies; 6+ messages in thread
From: Andreas Bießmann @ 2011-06-09 10:22 UTC (permalink / raw)
  To: u-boot

This patch removes the warning

---8<---
at91_emac.c: In function 'at91emac_write_hwaddr':
at91_emac.c:487:2: warning: dereferencing type-punned pointer will break strict-aliasing rules
--->8---

Signed-off-by: Andreas Bie?mann <andreas.devel@gmail.com>
---
BEWARE! This patch is only compile tested!

It is possible, that there is an endianess problem. It would be great, if one
could test it on real hardware!

Reinhard, you could adopt the macb driver also to get the warning there fixed.
If it works on at91sam this way it would also work on at91rm9200 cause they have the
same endianess.

 drivers/net/at91_emac.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/at91_emac.c b/drivers/net/at91_emac.c
index b09ff8c..97d2739 100644
--- a/drivers/net/at91_emac.c
+++ b/drivers/net/at91_emac.c
@@ -481,11 +481,13 @@ static int at91emac_write_hwaddr(struct eth_device *netdev)
 	dev = (emac_device *) netdev->priv;
 
 	writel(1 << ATMEL_ID_EMAC, &pmc->pcer);
-	DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
-		cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))),
-		cpu_to_le32(*((u32 *)netdev->enetaddr)));
-	writel(cpu_to_le32(*((u32 *)netdev->enetaddr)), &emac->sa2l);
-	writel(cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))), &emac->sa2h);
+	DEBUG_AT91EMAC("init MAC-ADDR %02x:%02x:%02x:%02x:%02x:%02x\n",
+		netdev->enetaddr[5], netdev->enetaddr[4], netdev->enetaddr[3],
+		netdev->enetaddr[2], netdev->enetaddr[1], netdev->enetaddr[0]);
+	writel( (netdev->enetaddr[0] | netdev->enetaddr[1] << 8 |
+			netdev->enetaddr[2] << 16 | netdev->enetaddr[3] << 24),
+			&emac->sa2l);
+	writel((netdev->enetaddr[4] | netdev->enetaddr[5] << 8), &emac->sa2h);
 	DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
 		readl(&emac->sa2h), readl(&emac->sa2l));
 	return 0;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-06-12 10:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-09 10:22 [U-Boot] [PATCH] at91_emac: fix compile warning Andreas Bießmann
2011-06-09 11:08 ` Reinhard Meyer
2011-06-09 11:26   ` Andreas Bießmann
2011-06-09 12:06     ` Reinhard Meyer
2011-06-09 12:13       ` Andreas Bießmann
2011-06-12 10:08 ` Andreas Bießmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.