diff options
| author | Vipin KUMAR <vipin.kumar@st.com> | 2012-03-26 00:09:52 +0000 | 
|---|---|---|
| committer | Joe Hershberger <joe.hershberger@ni.com> | 2012-04-04 10:46:39 -0500 | 
| commit | c7f6dbe736f3f57436ba162f986691f7e862eb4d (patch) | |
| tree | dc27cdd5e73f30f91f8ba4e24d3e82840c558a4c /drivers/net/designware.c | |
| parent | 3ceecef14e2258157c846b3aaa26d7cdcd833b05 (diff) | |
| download | olio-uboot-2014.01-c7f6dbe736f3f57436ba162f986691f7e862eb4d.tar.xz olio-uboot-2014.01-c7f6dbe736f3f57436ba162f986691f7e862eb4d.zip | |
net/designware: Fix to restore hw mac address
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>
Diffstat (limited to 'drivers/net/designware.c')
| -rw-r--r-- | drivers/net/designware.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 1e3443677..ea8a40612 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -148,6 +148,9 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis)  	if (mac_reset(dev) < 0)  		return -1; +	/* Resore the HW MAC address as it has been lost during MAC reset */ +	dw_write_hwaddr(dev); +  	writel(FIXEDBURST | PRIORXTX_41 | BURST_16,  			&dma_p->busmode); @@ -300,8 +303,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--); |