From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Looijmans Subject: [PATCH v4 2/2] net: macb: Try to retrieve MAC addess from nvmem provider Date: Thu, 29 Mar 2018 07:29:49 +0200 Message-ID: <1522301389-11034-3-git-send-email-mike.looijmans@topic.nl> References: <1522301389-11034-1-git-send-email-mike.looijmans@topic.nl> Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, andrew@lunn.ch, f.fainelli@gmail.com, robh+dt@kernel.org, frowand.list@gmail.com, Mike Looijmans To: netdev@vger.kernel.org Return-path: Received: from atl4mhob01.registeredsite.com ([209.17.115.39]:49604 "EHLO atl4mhob01.registeredsite.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750709AbeC2F37 (ORCPT ); Thu, 29 Mar 2018 01:29:59 -0400 Received: from mailpod.hostingplatform.com (atl4qobmail01.registeredsite.com [10.30.71.203]) by atl4mhob01.registeredsite.com (8.14.4/8.14.4) with ESMTP id w2T5TufN029188 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Thu, 29 Mar 2018 01:29:56 -0400 In-Reply-To: <1522301389-11034-1-git-send-email-mike.looijmans@topic.nl> Sender: netdev-owner@vger.kernel.org List-ID: Call of_get_nvmem_mac_address() to fetch the MAC address from an nvmem cell, if one is provided in the device tree. This allows the address to be stored in an I2C EEPROM device for example. Signed-off-by: Mike Looijmans Acked-by: Nicolas Ferre --- drivers/net/ethernet/cadence/macb_main.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index e84afcf..eabe14f 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -3950,10 +3950,16 @@ static int macb_probe(struct platform_device *pdev) dev->max_mtu = ETH_DATA_LEN; mac = of_get_mac_address(np); - if (mac) + if (mac) { ether_addr_copy(bp->dev->dev_addr, mac); - else - macb_get_hwaddr(bp); + } else { + err = of_get_nvmem_mac_address(np, bp->dev->dev_addr); + if (err) { + if (err == -EPROBE_DEFER) + goto err_out_free_netdev; + macb_get_hwaddr(bp); + } + } err = of_get_phy_mode(np); if (err < 0) { -- 1.9.1