net: ftmac100: add an opportunity to get ethaddr from the platform
authorSergei Antonov <saproj@gmail.com>
Wed, 24 Aug 2022 15:17:24 +0000 (18:17 +0300)
committerJakub Kicinski <kuba@kernel.org>
Sat, 27 Aug 2022 02:26:11 +0000 (19:26 -0700)
This driver always generated a random ethernet address. Leave it as a
fallback solution, but add a call to platform_get_ethdev_address().
Handle EPROBE_DEFER returned from platform_get_ethdev_address() to
retry when EEPROM is ready.

Signed-off-by: Sergei Antonov <saproj@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20220824151724.2698107-1-saproj@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/faraday/ftmac100.c

index 2e65240..a9af5b4 100644 (file)
@@ -1077,6 +1077,10 @@ static int ftmac100_probe(struct platform_device *pdev)
        netdev->netdev_ops = &ftmac100_netdev_ops;
        netdev->max_mtu = MAX_PKT_SIZE;
 
+       err = platform_get_ethdev_address(&pdev->dev, netdev);
+       if (err == -EPROBE_DEFER)
+               goto defer_get_mac;
+
        platform_set_drvdata(pdev, netdev);
 
        /* setup private data */
@@ -1138,6 +1142,7 @@ err_ioremap:
        release_resource(priv->res);
 err_req_mem:
        netif_napi_del(&priv->napi);
+defer_get_mac:
        free_netdev(netdev);
 err_alloc_etherdev:
        return err;