From b5ce63ed12b4cd81d211621aca0c222b20d2a691 Mon Sep 17 00:00:00 2001
From: Prafulla Wadaskar <prafulla@marvell.com>
Date: Tue, 6 Apr 2010 22:21:33 +0530
Subject: [PATCH] net:kirkwood_egiga.c: MAC addresses programming using
 write_hwaddr

Added a new function kwgbe_write_hwaddr for programming egiga
controller's hardware address.
This function will be called for each egiga port being used

Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
---
 drivers/net/kirkwood_egiga.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/net/kirkwood_egiga.c b/drivers/net/kirkwood_egiga.c
index dd711e4..932792e 100644
--- a/drivers/net/kirkwood_egiga.c
+++ b/drivers/net/kirkwood_egiga.c
@@ -498,6 +498,16 @@ static int kwgbe_halt(struct eth_device *dev)
 	return 0;
 }
 
+static int kwgbe_write_hwaddr(struct eth_device *dev)
+{
+	struct kwgbe_device *dkwgbe = to_dkwgbe(dev);
+	struct kwgbe_registers *regs = dkwgbe->regs;
+
+	/* Programs net device MAC address after initialization */
+	port_uc_addr_set(regs, dkwgbe->dev.enetaddr);
+	return 0;
+}
+
 static int kwgbe_send(struct eth_device *dev, volatile void *dataptr,
 		      int datasize)
 {
@@ -694,6 +704,7 @@ int kirkwood_egiga_initialize(bd_t * bis)
 		dev->halt = (void *)kwgbe_halt;
 		dev->send = (void *)kwgbe_send;
 		dev->recv = (void *)kwgbe_recv;
+		dev->write_hwaddr = (void *)kwgbe_write_hwaddr;
 
 		eth_register(dev);