Hi Michael

> -static int of_get_mac_addr_nvmem(struct device_node *np, u8 addr)
> +static int of_get_mac_addr_nvmem(struct device_node *np, u8 *addr)
>  {
>       struct platform_device *pdev = of_find_device_by_node(np);
> +     struct nvmem_cell *cell;
> +     const void *mac;
> +     size_t len;
>       int ret;
>  
> -     if (!pdev)
> -             return -ENODEV;
> +     /* Try lookup by device first, there might be a nvmem_cell_lookup
> +      * associated with a given device.
> +      */
> +     if (pdev) {
> +             ret = nvmem_get_mac_address(&pdev->dev, addr);
> +             put_device(&pdev->dev);
> +             return ret;
> +     }

Can you think of any odd corner case where nvmem_get_mac_address()
would fail, but of_nvmem_cell_get(np, "mac-address") would work?

      Andrew

Reply via email to