From: Harshal Gohel Date: Mon, 14 Apr 2025 13:16:47 +0000 (+0000) Subject: realtek: Fix nvmem support for ethernet device X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=5880f345ba6bf8387a0219aafbce661c1dbca357;p=openwrt%2Fstaging%2Fldir.git realtek: Fix nvmem support for ethernet device The function of_get_mac_address is not taking care of evaluation the nvmem address before trying to read out the mac-address properties. The driver must check whether the return code is -EPROBE_DEFER and stop the probing process in that case. If the nvmem-cell related driver code finished, the probe can be redone ad the correct mac-address will appear for the device. Signed-off-by: Harshal Gohel Signed-off-by: Sharadanand Karanjkar Link: https://github.com/openwrt/openwrt/pull/19362 Signed-off-by: Hauke Mehrtens --- diff --git a/target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c b/target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c index 6b856a1b1e..6f90833749 100644 --- a/target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c +++ b/target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c @@ -3500,7 +3500,10 @@ static int __init rtl838x_eth_probe(struct platform_device *pdev) * 1) from device tree data * 2) from internal registers set by bootloader */ - of_get_mac_address(pdev->dev.of_node, mac_addr); + err = of_get_mac_address(pdev->dev.of_node, mac_addr); + if (err == -EPROBE_DEFER) + return err; + if (is_valid_ether_addr(mac_addr)) { rtl838x_set_mac_hw(dev, mac_addr); } else {