Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp645599imm; Fri, 29 Jun 2018 04:09:24 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKr6/sFYaJ4JSAsgSfRrZb3weAKSR05CADQnK7jsZorMY5v4jaalWLSsn6Eh+jcqw42umXb X-Received: by 2002:a17:902:b68c:: with SMTP id c12-v6mr14543230pls.114.1530270564702; Fri, 29 Jun 2018 04:09:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530270564; cv=none; d=google.com; s=arc-20160816; b=oBmSUajfkTwci4pMHPhedx2kd5IzZmDpO3bCMRW4NFPXa+49yNiiZ6sdN1EU+UVP9t +4Q/I5bwUj4bZ/86wci612EHiE2yE36Y3jSxFZXlxzN6GGm9sX/ZO9XAMaW8DsDJg6dq 0BL6H39WRrGVPEomRWjRwH1izBVWOtcuTChpfQPAlHfN9zcMOWTZ4hIknFiji4fRVcwy s2rxf1cZnsqb6xyYpJcApxAgcI21sH6xAa0VRx36m7D0AUTKHylJewfybJrAdMca7wQ+ etxIblwzQfgHygXyyq9hX9n9JTC/J0ac8m3iOH9W6QySFb9Xk7kboUTRwhjZmhoj1HXC p9nQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=hsENybKG2M2NmdzWNb8guNW4ZYSvpwsjSUupTY9rPg0=; b=CBLf24jtCztcGxFXi5/xO5wsEuAPnWAG+Abd1kg9QeyT6R32BCBk+xODQlltBfvi9b zHZna+rokuYgk+Mle1A/PFVXsM9f8icgWG+SpW12qHX/nWN1M/wm5ELadVA83gdQvyBv 2o/mlsHLYxNxERQa8bARcZi+RU/44DBzeTI3sRbPdMEpFo4icPhMkwf3GdZedq5iuRhL /7hQ1dRnLMTWJYPF3C+31u5pstP66hTgubZzlvkYe0BST81O5vnwFvoilmZXPyGBpO4j 5I5aC9FR94WdtwaW12jiiLHsSpZXB7IZnfwmnM22q3gPI3wCRNppfK508+ZbxBUbI/V1 8Aog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b=uMyVrERE; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r3-v6si7966855pgo.606.2018.06.29.04.09.10; Fri, 29 Jun 2018 04:09:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b=uMyVrERE; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935833AbeF2JlK (ORCPT + 99 others); Fri, 29 Jun 2018 05:41:10 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:43379 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935714AbeF2Jk6 (ORCPT ); Fri, 29 Jun 2018 05:40:58 -0400 Received: by mail-wr0-f195.google.com with SMTP id c5-v6so8198659wrs.10 for ; Fri, 29 Jun 2018 02:40:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=hsENybKG2M2NmdzWNb8guNW4ZYSvpwsjSUupTY9rPg0=; b=uMyVrEREEXe6AHnH4t3GsFxlQAZVfHlAkS/pUAPhPyhTWgUEPVMMDKE9mIfNbGum+n 4ci6E+9sxf6uBmheoJKteTLgSvUPbH1xbH3YCp2duPIrpILHIvMW8ysLlRga+EufhR5e /dDO1Sw079TUNVw01veLAemiVMEYFyfdN3GF1DPnDyQLop3Mg+fx9rrAI4q0pCpAaARo IPkVXBxxfDfwcyyM2e5ieiNcH+oscKgXVkjIZOjpJTTjPQ4ecHsDp5rOAb7Q4SnU2zoP DOqdMrkQ40pDhx2XlUTeClUgPgBvPQShu3kUKp38UEQihyHLq4i50bdcbELc8yloRJDB O+Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=hsENybKG2M2NmdzWNb8guNW4ZYSvpwsjSUupTY9rPg0=; b=hB0XuVQKLdndLfPI0+dFNXD6hrHkddUgJO8HkQBpgWhFNIeMUhHR3gn3U45F1DiOtI xa0XA34LWdRRp5xwCfA68+qNb0fUSX6Iydtk6ocIQAulL+Rieh3Hpp2u1bBN4oYNzPt2 HnQmgB6/6KdmlXhsSv+anJqBoaOmS6lY22gJ1JAJdYfWfU9KB9+AqCoT3D91Q9Aj8uTJ 1147yhjLfbgVcWabjBqakYONFuYMFk1KTlMgqQay1uxHw41VugPsDcRNWuHmRbtzYQ6m JXeOz625sQBljBEw9af9v4NcEAksnXOA4BNS2ICA2arDUoakXaVP+z1smRDEpkd+mwBP Yevg== X-Gm-Message-State: APt69E07jRs4f8wF7VDlUMKcry7taAP9lh5dbKy/dIjlYQ/BuRpmKB2C d3UdAFuicEXBooEWp5qyRfk1sw== X-Received: by 2002:adf:8546:: with SMTP id 64-v6mr11081081wrh.223.1530265257456; Fri, 29 Jun 2018 02:40:57 -0700 (PDT) Received: from brgl-bgdev.lan (LFbn-NIC-1-55-10.w2-15.abo.wanadoo.fr. [2.15.147.10]) by smtp.gmail.com with ESMTPSA id d102-v6sm1386394wma.10.2018.06.29.02.40.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Jun 2018 02:40:56 -0700 (PDT) From: Bartosz Golaszewski To: Sekhar Nori , Kevin Hilman , Russell King , Grygorii Strashko , "David S . Miller" , Srinivas Kandagatla , Lukas Wunner , Rob Herring , Florian Fainelli , Dan Carpenter , Ivan Khoronzhuk , David Lechner , Greg Kroah-Hartman , Andrew Lunn , Jonathan Corbet Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, netdev@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v4 10/18] net: davinci_emac: use nvmem to retrieve the mac address Date: Fri, 29 Jun 2018 11:40:31 +0200 Message-Id: <20180629094039.7543-11-brgl@bgdev.pl> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180629094039.7543-1-brgl@bgdev.pl> References: <20180629094039.7543-1-brgl@bgdev.pl> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bartosz Golaszewski All users which store the MAC address in EEPROM now register relevant nvmem cells. Switch to retrieving the MAC address over the nvmem framework. If we can't get the nvmem cell then fall back to using the device tree. Signed-off-by: Bartosz Golaszewski --- drivers/net/ethernet/ti/davinci_emac.c | 35 +++++++++++++++++++------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c index 48e6a7755811..ea303e1f7916 100644 --- a/drivers/net/ethernet/ti/davinci_emac.c +++ b/drivers/net/ethernet/ti/davinci_emac.c @@ -68,6 +68,8 @@ #include #include #include +#include +#include #include #include @@ -1696,7 +1698,6 @@ davinci_emac_of_get_pdata(struct platform_device *pdev, struct emac_priv *priv) const struct of_device_id *match; const struct emac_platform_data *auxdata; struct emac_platform_data *pdata = NULL; - const u8 *mac_addr; if (!IS_ENABLED(CONFIG_OF) || !pdev->dev.of_node) return dev_get_platdata(&pdev->dev); @@ -1708,12 +1709,6 @@ davinci_emac_of_get_pdata(struct platform_device *pdev, struct emac_priv *priv) np = pdev->dev.of_node; pdata->version = EMAC_VERSION_2; - if (!is_valid_ether_addr(pdata->mac_addr)) { - mac_addr = of_get_mac_address(np); - if (mac_addr) - ether_addr_copy(pdata->mac_addr, mac_addr); - } - of_property_read_u32(np, "ti,davinci-ctrl-reg-offset", &pdata->ctrl_reg_offset); @@ -1783,10 +1778,12 @@ static int davinci_emac_probe(struct platform_device *pdev) struct cpdma_params dma_params; struct clk *emac_clk; unsigned long emac_bus_frequency; -#ifdef CONFIG_MTD + const void *mac_addr; size_t mac_addr_len; +#ifdef CONFIG_MTD struct mtd_info *mtd; #endif /* CONFIG_MTD */ + struct nvmem_cell *cell; /* obtain emac clock from kernel */ emac_clk = devm_clk_get(&pdev->dev, NULL); @@ -1831,8 +1828,28 @@ static int davinci_emac_probe(struct platform_device *pdev) } #endif /* CONFIG_MTD */ + cell = nvmem_cell_get(&pdev->dev, "mac-address"); + if (IS_ERR(cell) && PTR_ERR(cell) == -EPROBE_DEFER) { + return -EPROBE_DEFER; + } else if (!IS_ERR(cell)) { + mac_addr = nvmem_cell_read(cell, &mac_addr_len); + if (!IS_ERR(mac_addr)) { + if (is_valid_ether_addr(mac_addr)) { + dev_info(&pdev->dev, + "Read MAC addr from EEPROM: %pM\n", + mac_addr); + ether_addr_copy(priv->mac_addr, mac_addr); + } + kfree(mac_addr); + } + nvmem_cell_put(cell); + } else { + mac_addr = of_get_mac_address(np); + if (mac_addr) + ether_addr_copy(priv->mac_addr, mac_addr); + } + /* MAC addr and PHY mask , RMII enable info from platform_data */ - memcpy(priv->mac_addr, pdata->mac_addr, ETH_ALEN); priv->phy_id = pdata->phy_id; priv->rmii_en = pdata->rmii_en; priv->version = pdata->version; -- 2.17.1