net: ethernet: mtk_eth_soc: handle probe deferral
authorDaniel Golle <daniel@makrotopia.org>
Thu, 13 Jul 2023 02:42:29 +0000 (03:42 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Jul 2023 07:44:56 +0000 (08:44 +0100)
commit1d6d537dc55d1f42d16290f00157ac387985b95b
tree448d30c1b42356a1aa8318110096b8fddb168b7b
parent56a16035bb6effb37177867cea94c13a8382f745
net: ethernet: mtk_eth_soc: handle probe deferral

Move the call to of_get_ethdev_address to mtk_add_mac which is part of
the probe function and can hence itself return -EPROBE_DEFER should
of_get_ethdev_address return -EPROBE_DEFER. This allows us to entirely
get rid of the mtk_init function.

The problem of of_get_ethdev_address returning -EPROBE_DEFER surfaced
in situations in which the NVMEM provider holding the MAC address has
not yet be loaded at the time mtk_eth_soc is initially probed. In this
case probing of mtk_eth_soc should be deferred instead of falling back
to use a random MAC address, so once the NVMEM provider becomes
available probing can be repeated.

Fixes: 656e705243fd ("net-next: mediatek: add support for MT7623 ethernet")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mediatek/mtk_eth_soc.c