Message ID | 20210414152657.12097-4-michael@walle.cc (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: add support for an offset of a nvmem provided MAC address | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 3 maintainers not CCed: alobakin@pm.me bgolaszewski@baylibre.com mchehab+huawei@kernel.org |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 1 this patch: 1 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 33 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 1 this patch: 1 |
netdev/header_inline | success | Link |
diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c index dbac3a172a11..60c6048a823a 100644 --- a/drivers/of/of_net.c +++ b/drivers/of/of_net.c @@ -63,6 +63,7 @@ static int of_get_mac_addr_nvmem(struct device_node *np, u8 *addr) struct nvmem_cell *cell; const void *mac; size_t len; + u32 offset; int ret; /* Try lookup by device first, there might be a nvmem_cell_lookup @@ -92,6 +93,9 @@ static int of_get_mac_addr_nvmem(struct device_node *np, u8 *addr) memcpy(addr, mac, ETH_ALEN); kfree(mac); + if (!of_property_read_u32(np, "nvmem-mac-address-offset", &offset)) + eth_addr_add(addr, offset); + return 0; } diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c index 9cce612e8976..fe5311f614fe 100644 --- a/net/ethernet/eth.c +++ b/net/ethernet/eth.c @@ -541,6 +541,7 @@ int nvmem_get_mac_address(struct device *dev, void *addrbuf) { struct nvmem_cell *cell; const void *mac; + u32 offset; size_t len; cell = nvmem_cell_get(dev, "mac-address"); @@ -561,6 +562,10 @@ int nvmem_get_mac_address(struct device *dev, void *addrbuf) ether_addr_copy(addrbuf, mac); kfree(mac); + if (!device_property_read_u32(dev, "nvmem-mac-address-offset", + &offset)) + eth_addr_add(addrbuf, offset); + return 0; } EXPORT_SYMBOL(nvmem_get_mac_address);
The MAC address fetched by an NVMEM provider might have an offset to it. Add the support for it in nvmem_get_mac_address(). Signed-off-by: Michael Walle <michael@walle.cc> --- drivers/of/of_net.c | 4 ++++ net/ethernet/eth.c | 5 +++++ 2 files changed, 9 insertions(+)