[U-Boot] [PATCH 1/7] net/designware: Fix to restore hw mac address

Amit Virdi
2012-02-29T10:37:20Z

From: Vipin KUMAR <vipin.kumar@st.com>

The network controller mac resets hardware address stored in MAC_HI and MAC_LO
registers if mac is resetted. So, hw mac address needs to be restored in case
mac is explicitly resetted from driver.

Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Amit Virdi <amit.virdi@st.com>
---
drivers/net/designware.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 1e34436..754ffae 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -148,6 +148,8 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis)
if (mac_reset(dev) < 0)
return -1;

+ dw_write_hwaddr(dev);
+
writel(FIXEDBURST | PRIORXTX_41 | BURST_16,
&dma_p->busmode);

@@ -300,8 +302,10 @@ static int eth_mdio_write(struct eth_device *dev, u8 addr, u8 reg, u16 val)
writel(miiaddr | MII_CLKRANGE_150_250M | MII_BUSY, &mac_p->miiaddr);

do {
- if (!(readl(&mac_p->miiaddr) & MII_BUSY))
+ if (!(readl(&mac_p->miiaddr) & MII_BUSY)) {
ret = 0;
+ break;
+ }
udelay(1000);
} while (timeout--);

--
1.7.2.2