summaryrefslogtreecommitdiff
path: root/net/ethernet
diff options
context:
space:
mode:
authorStefan Wahren <wahrenst@gmx.net>2025-09-12 16:03:32 +0200
committerJakub Kicinski <kuba@kernel.org>2025-09-15 18:34:08 -0700
commitd2d3f529e7b6ff2aa432b16a2317126621c28058 (patch)
tree54ab95d99d125f9d9f088f5c50e71358e9962052 /net/ethernet
parentc5b7509d3a47c0c7b09629340c90ce5d4dae07ca (diff)
ethernet: Extend device_get_mac_address() to use NVMEM
A lot of modern SoC have the ability to store MAC addresses in their NVMEM. So extend the generic function device_get_mac_address() to obtain the MAC address from an nvmem cell named 'mac-address' in case there is no firmware node which contains the MAC address directly. Signed-off-by: Stefan Wahren <wahrenst@gmx.net> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/20250912140332.35395-3-wahrenst@gmx.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ethernet')
-rw-r--r--net/ethernet/eth.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c
index 4e3651101b86..43e211e611b1 100644
--- a/net/ethernet/eth.c
+++ b/net/ethernet/eth.c
@@ -613,7 +613,10 @@ EXPORT_SYMBOL(fwnode_get_mac_address);
*/
int device_get_mac_address(struct device *dev, char *addr)
{
- return fwnode_get_mac_address(dev_fwnode(dev), addr);
+ if (!fwnode_get_mac_address(dev_fwnode(dev), addr))
+ return 0;
+
+ return nvmem_get_mac_address(dev, addr);
}
EXPORT_SYMBOL(device_get_mac_address);