diff options
| author | Rosen Penev | 2026-02-09 19:40:51 +0000 |
|---|---|---|
| committer | Robert Marko | 2026-02-16 20:26:05 +0000 |
| commit | fb71774232871e7272bf15950c4a08f2a8395b87 (patch) | |
| tree | 3c8a9899ce20d4b98e6de7761582049eaa269b30 | |
| parent | bc3b41767ddd7854067ed90341183491d88a5c06 (diff) | |
| download | openwrt-fb71774232871e7272bf15950c4a08f2a8395b87.tar.gz | |
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>
| -rw-r--r-- | target/linux/lantiq/patches-6.12/028-NET-lantiq-various-etop-fixes.patch | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/target/linux/lantiq/patches-6.12/028-NET-lantiq-various-etop-fixes.patch b/target/linux/lantiq/patches-6.12/028-NET-lantiq-various-etop-fixes.patch index 90982b5910..7987e87dff 100644 --- a/target/linux/lantiq/patches-6.12/028-NET-lantiq-various-etop-fixes.patch +++ b/target/linux/lantiq/patches-6.12/028-NET-lantiq-various-etop-fixes.patch @@ -766,7 +766,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { -@@ -671,18 +872,54 @@ ltq_etop_probe(struct platform_device *p +@@ -671,18 +872,60 @@ ltq_etop_probe(struct platform_device *p goto err_out; } @@ -805,7 +805,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)) @@ -827,7 +833,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> spin_lock_init(&priv->lock); SET_NETDEV_DEV(dev, &pdev->dev); -@@ -698,15 +935,10 @@ ltq_etop_probe(struct platform_device *p +@@ -698,15 +941,10 @@ ltq_etop_probe(struct platform_device *p goto err_free; } @@ -847,7 +853,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> err = register_netdev(dev); if (err) -@@ -733,31 +965,22 @@ static void ltq_etop_remove(struct platf +@@ -733,31 +971,22 @@ static void ltq_etop_remove(struct platf } } |