Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1602576

[PATCH] net: ethernet: bgmac: Allow MAC address to be specified in DTB

Path csiph.com!weretis.net!feeder4.news.weretis.net!news.mixmin.net!aioe.org!bofh.it!news.nic.it!robomod
From Steve Lin <steven.lin1@broadcom.com>
Newsgroups linux.kernel
Subject [PATCH] net: ethernet: bgmac: Allow MAC address to be specified in DTB
Date Thu, 16 Mar 2017 16:50:02 +0100
Message-ID <tlFP4-pI-11@gated-at.bofh.it> (permalink)
X-Original-To davem@davemloft.net, rafal@milecki.pl, jon.mason@broadcom.com, f.fainelli@gmail.com, tklauser@distanz.ch
X-Mailer git-send-email 2.1.0
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 76
Organization linux.* mail to news gateway
X-Original-Cc netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, steven.lin1@broadcom.com
X-Original-Date Thu, 16 Mar 2017 11:48:58 -0400
X-Original-Message-ID <1489679338-39705-1-git-send-email-steven.lin1@broadcom.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1602576

Show key headers only | View raw


Allows the BCMA version of the bgmac driver to obtain MAC address
from the device tree.  If no MAC address is specified there, then
the previous behavior (obtaining MAC address from SPROM) is
used.

Signed-off-by: Steve Lin <steven.lin1@broadcom.com>
---
 drivers/net/ethernet/broadcom/bgmac-bcma.c | 39 ++++++++++++++++++------------
 1 file changed, 23 insertions(+), 16 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bgmac-bcma.c b/drivers/net/ethernet/broadcom/bgmac-bcma.c
index cf15b7e..6322594 100644
--- a/drivers/net/ethernet/broadcom/bgmac-bcma.c
+++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c
@@ -11,6 +11,7 @@
 #include <linux/bcma/bcma.h>
 #include <linux/brcmphy.h>
 #include <linux/etherdevice.h>
+#include <linux/of_net.h>
 #include "bgmac.h"
 
 static inline bool bgmac_is_bcm4707_family(struct bcma_device *core)
@@ -114,7 +115,7 @@ static int bgmac_probe(struct bcma_device *core)
 	struct ssb_sprom *sprom = &core->bus->sprom;
 	struct mii_bus *mii_bus;
 	struct bgmac *bgmac;
-	u8 *mac;
+	const u8 *mac = NULL;
 	int err;
 
 	bgmac = bgmac_alloc(&core->dev);
@@ -127,21 +128,27 @@ static int bgmac_probe(struct bcma_device *core)
 
 	bcma_set_drvdata(core, bgmac);
 
-	switch (core->core_unit) {
-	case 0:
-		mac = sprom->et0mac;
-		break;
-	case 1:
-		mac = sprom->et1mac;
-		break;
-	case 2:
-		mac = sprom->et2mac;
-		break;
-	default:
-		dev_err(bgmac->dev, "Unsupported core_unit %d\n",
-			core->core_unit);
-		err = -ENOTSUPP;
-		goto err;
+	if (bgmac->dev->of_node)
+		mac = of_get_mac_address(bgmac->dev->of_node);
+
+	/* If no MAC address assigned via device tree, check SPROM */
+	if (!mac) {
+		switch (core->core_unit) {
+		case 0:
+			mac = sprom->et0mac;
+			break;
+		case 1:
+			mac = sprom->et1mac;
+			break;
+		case 2:
+			mac = sprom->et2mac;
+			break;
+		default:
+			dev_err(bgmac->dev, "Unsupported core_unit %d\n",
+				core->core_unit);
+			err = -ENOTSUPP;
+			goto err;
+		}
 	}
 
 	ether_addr_copy(bgmac->net_dev->dev_addr, mac);
-- 
2.1.0

Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

[PATCH] net: ethernet: bgmac: Allow MAC address to be specified in DTB Steve Lin <steven.lin1@broadcom.com> - 2017-03-16 16:50 +0100
  Re: [PATCH] net: ethernet: bgmac: Allow MAC address to be specified  in DTB Florian Fainelli <f.fainelli@gmail.com> - 2017-03-16 17:50 +0100
    Re: [PATCH] net: ethernet: bgmac: Allow MAC address to be specified  in DTB Jon Mason <jon.mason@broadcom.com> - 2017-03-16 18:20 +0100
  Re: [PATCH] net: ethernet: bgmac: Allow MAC address to be  specified in DTB David Miller <davem@davemloft.net> - 2017-03-16 20:00 +0100

csiph-web