lantiq: handle EPROBE_DEFER for MAC
If nvmem is used for ethernet mac address, we need to defer loading to
get the proper mac.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21955
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit fb71774232)
This commit is contained in:
parent
42b10de18d
commit
d66fc6e86f
@ -767,7 +767,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
if (!res) {
|
||||
@@ -671,18 +873,54 @@ ltq_etop_probe(struct platform_device *p
|
||||
@@ -671,18 +873,60 @@ ltq_etop_probe(struct platform_device *p
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
@ -806,7 +806,13 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+ if (err)
|
||||
+ pr_err("Can't find phy-mode for port\n");
|
||||
+
|
||||
+ of_get_mac_address(pdev->dev.of_node, priv->mac);
|
||||
+ err = of_get_mac_address(pdev->dev.of_node, priv->mac);
|
||||
+ if (err == -EPROBE_DEFER)
|
||||
+ goto err_out;
|
||||
+ if (err) {
|
||||
+ eth_hw_addr_random(dev);
|
||||
+ dev_err(&pdev->dev, "generated random MAC address %pM\n", priv->mac);
|
||||
+ }
|
||||
+
|
||||
+ priv->clk_ppe = clk_get(&pdev->dev, NULL);
|
||||
+ if (IS_ERR(priv->clk_ppe))
|
||||
@ -828,7 +834,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
spin_lock_init(&priv->lock);
|
||||
SET_NETDEV_DEV(dev, &pdev->dev);
|
||||
|
||||
@@ -698,15 +936,10 @@ ltq_etop_probe(struct platform_device *p
|
||||
@@ -698,15 +942,10 @@ ltq_etop_probe(struct platform_device *p
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
@ -848,7 +854,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
err = register_netdev(dev);
|
||||
if (err)
|
||||
@@ -733,31 +966,22 @@ static void ltq_etop_remove(struct platf
|
||||
@@ -733,31 +972,22 @@ static void ltq_etop_remove(struct platf
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user