Andrew Lunn <andrew@xxxxxxx> [2019-04-28 18:56:37]: Hi Andrew, > On Sun, Apr 28, 2019 at 02:53:21PM +0200, Petr Štetiar wrote: > > of_get_mac_address now uses NVMEM under the hood, so it's not necessary > > to call it manually anymore. > > > > Signed-off-by: Petr Štetiar <ynezz@xxxxxxx> > > --- > > drivers/net/ethernet/cadence/macb_main.c | 12 +++--------- > > 1 file changed, 3 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c > > index 3da2795..1b98bc8 100644 > > --- a/drivers/net/ethernet/cadence/macb_main.c > > +++ b/drivers/net/ethernet/cadence/macb_main.c > > @@ -4172,16 +4172,10 @@ static int macb_probe(struct platform_device *pdev) > > bp->rx_intr_mask |= MACB_BIT(RXUBR); > > > > mac = of_get_mac_address(np); > > - if (mac) { > > + if (mac) > > ether_addr_copy(bp->dev->dev_addr, mac); > > - } else { > > - err = nvmem_get_mac_address(&pdev->dev, bp->dev->dev_addr); > > - if (err) { > > - if (err == -EPROBE_DEFER) > > The EPRODE_DEFER is interesting here. your change to > of_get_mac_address() does not seem to handle that case. It probably > should. We don't want it to fail and end up with a random MAC > addresses etc, because the NVMEM has not probed yet. so if I understand this correctly, it probably means, that this approach with modified of_get_mac_address is dead end as current of_get_mac_address users don't expect and handle possible -EPROBE_DEFER error, so I would need to change all the current users, which is nonsense. -- ynezz