Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1602576
| From | Steve Lin <steven.lin1@broadcom.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH] net: ethernet: bgmac: Allow MAC address to be specified in DTB |
| Date | 2017-03-16 16:50 +0100 |
| Message-ID | <tlFP4-pI-11@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
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
[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