net: macb: write mac address when initialization
authorBo Shen <voice.shen@atmel.com>
Wed, 22 Oct 2014 06:45:56 +0000 (14:45 +0800)
committerTom Rini <trini@ti.com>
Mon, 17 Nov 2014 13:47:15 +0000 (08:47 -0500)
When boot up without mac address setting, it will give the warning
message like: "Warning: failed to set MAC address", however when
execute network related command, it still execute them without any
warning information.

With this patch, it will exit directly with following information:
"gmac0: mac address is not valid"

It also solve the problem after bootup then set mac address and the
mac address won't set to net device issue.

Signed-off-by: Bo Shen <voice.shen@atmel.com>
Tested-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
drivers/net/macb.c

index 375c8a4454a77c3af61321a55a2fa1f2098a9cbb..4616f369ca8b79484d2f072b5b98ed88863223cb 100644 (file)
@@ -525,6 +525,7 @@ static int macb_phy_init(struct macb_device *macb)
        return 1;
 }
 
+static int macb_write_hwaddr(struct eth_device *dev);
 static int macb_init(struct eth_device *netdev, bd_t *bd)
 {
        struct macb_device *macb = to_macb(netdev);
@@ -587,6 +588,14 @@ static int macb_init(struct eth_device *netdev, bd_t *bd)
 #endif /* CONFIG_RMII */
        }
 
+       /* update the ethaddr */
+       if (is_valid_ether_addr(netdev->enetaddr)) {
+               macb_write_hwaddr(netdev);
+       } else {
+               printf("%s: mac address is not valid\n", netdev->name);
+               return -1;
+       }
+
        if (!macb_phy_init(macb))
                return -1;