Since this is an OF only driver, of_ instead of device_ allows nvmem to be used to specify the MAC address. Add EPROBE_DEFER handling for NVMEM. Signed-off-by: Rosen Penev --- drivers/net/ethernet/microchip/enc28j60.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c index d6c9491537e4..2b9b4163e419 100644 --- a/drivers/net/ethernet/microchip/enc28j60.c +++ b/drivers/net/ethernet/microchip/enc28j60.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "enc28j60_hw.h" @@ -1554,7 +1555,10 @@ static int enc28j60_probe(struct spi_device *spi) goto error_irq; } - if (device_get_ethdev_address(&spi->dev, dev)) + ret = of_get_ethdev_address(spi->dev.of_node, dev); + if (ret == -EPROBE_DEFER) + return ret; + if (ret) eth_hw_addr_random(dev); enc28j60_set_hw_macaddr(dev); -- 2.54.0