If the MACSRCADDR register has been initialized by bootloader, then use that instead of a random mac.
Signed-off-by: Troy Kisky <[email protected]> diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 3c345d8..ca347bd 100644 --- a/drivers/net/davinci_emac.c +++ b/drivers/net/davinci_emac.c @@ -2704,6 +2704,17 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev) ndev->irq = res->start; if (!is_valid_ether_addr(priv->mac_addr)) { + u32 val; + val = emac_read(EMAC_MACSRCADDRHI); + priv->mac_addr[0] = (char)(val); + priv->mac_addr[1] = (char)(val>>8); + priv->mac_addr[2] = (char)(val>>16); + priv->mac_addr[3] = (char)(val>>24); + val = emac_read(EMAC_MACSRCADDRLO); + priv->mac_addr[4] = (char)(val); + priv->mac_addr[5] = (char)(val>>8); + } + if (!is_valid_ether_addr(priv->mac_addr)) { DECLARE_MAC_BUF(buf); /* Use random MAC if none passed */ random_ether_addr(priv->mac_addr); -- 1.5.4.3 _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
