Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755263AbdCPQkn (ORCPT ); Thu, 16 Mar 2017 12:40:43 -0400 Received: from mail-qt0-f196.google.com ([209.85.216.196]:35702 "EHLO mail-qt0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752438AbdCPQki (ORCPT ); Thu, 16 Mar 2017 12:40:38 -0400 Subject: Re: [PATCH] net: ethernet: bgmac: Allow MAC address to be specified in DTB To: Steve Lin , davem@davemloft.net, rafal@milecki.pl, jon.mason@broadcom.com, tklauser@distanz.ch References: <1489679338-39705-1-git-send-email-steven.lin1@broadcom.com> Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com From: Florian Fainelli Message-ID: Date: Thu, 16 Mar 2017 09:39:47 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <1489679338-39705-1-git-send-email-steven.lin1@broadcom.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2517 Lines: 88 On 03/16/2017 08:48 AM, Steve Lin wrote: > 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 Reviewed-by: Florian Fainelli PS: you might want to specify which tree this applies to by using [PATCH net-next] or [PATCH net] in the subject, see the netdev-FAQ.txt for details: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/netdev-FAQ.txt > --- > 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 > #include > #include > +#include > #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); > -- Florian