12345678910111213141516171819202122232425262728 |
- --- a/drivers/net/ethernet/marvell/sky2.c
- +++ b/drivers/net/ethernet/marvell/sky2.c
- @@ -4813,7 +4813,24 @@ static struct net_device *sky2_init_netd
- * 1) from device tree data
- * 2) from internal registers set by bootloader
- */
- - iap = of_get_mac_address(hw->pdev->dev.of_node);
- +
- + iap = NULL;
- + if (IS_ENABLED(CONFIG_OF)) {
- + struct device_node *np;
- + np = of_find_node_by_path("/aliases");
- + if (np) {
- + const char *path = of_get_property(np, "sky2", NULL);
- + if (path)
- + np = of_find_node_by_path(path);
- + if (np)
- + path = of_get_mac_address(np);
- + if (path)
- + iap = (unsigned char *) path;
- + }
- + }
- +
- + if (!iap)
- + iap = of_get_mac_address(hw->pdev->dev.of_node);
- if (iap)
- memcpy(dev->dev_addr, iap, ETH_ALEN);
- else
|