diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2016-12-07 13:25:29 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-12-08 11:34:03 -0500 |
commit | 06205472765437fc3a6cae7c67052f40e08e120e (patch) | |
tree | 64450881b031dc1609b0343e6532fa1e28d2d132 /drivers/net/ethernet/xilinx | |
parent | da90e38003e2f052d5d6a28df63ac42c9ea87323 (diff) |
net: ll_temac: Utilize of_get_mac_address()
Do not open code getting the MAC address exclusively from the
"local-mac-address" property, but instead use of_get_mac_address()
which looks up the MAC address using the 3 typical property names.
Also avoid casting away the const qualifier of the return value by
making temac_init_mac_address() take a const void* address.
Follows commit b34296a9c047 ("net: ethoc: Utilize
of_get_mac_address()").
Cc: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/xilinx')
-rw-r--r-- | drivers/net/ethernet/xilinx/ll_temac_main.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c index bcd7b76dde9f..d73da8afe08e 100644 --- a/drivers/net/ethernet/xilinx/ll_temac_main.c +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c @@ -37,6 +37,7 @@ #include <linux/of_device.h> #include <linux/of_irq.h> #include <linux/of_mdio.h> +#include <linux/of_net.h> #include <linux/of_platform.h> #include <linux/of_address.h> #include <linux/skbuff.h> @@ -332,7 +333,7 @@ static void temac_do_set_mac_address(struct net_device *ndev) mutex_unlock(&lp->indirect_mutex); } -static int temac_init_mac_address(struct net_device *ndev, void *address) +static int temac_init_mac_address(struct net_device *ndev, const void *address) { memcpy(ndev->dev_addr, address, ETH_ALEN); if (!is_valid_ether_addr(ndev->dev_addr)) @@ -982,7 +983,7 @@ static int temac_of_probe(struct platform_device *op) struct net_device *ndev; const void *addr; __be32 *p; - int size, rc = 0; + int rc = 0; /* Init network device structure */ ndev = alloc_etherdev(sizeof(*lp)); @@ -1074,13 +1075,13 @@ static int temac_of_probe(struct platform_device *op) /* Retrieve the MAC address */ - addr = of_get_property(op->dev.of_node, "local-mac-address", &size); - if ((!addr) || (size != 6)) { + addr = of_get_mac_address(op->dev.of_node); + if (!addr) { dev_err(&op->dev, "could not find MAC address\n"); rc = -ENODEV; goto err_iounmap_2; } - temac_init_mac_address(ndev, (void *)addr); + temac_init_mac_address(ndev, addr); rc = temac_mdio_setup(lp, op->dev.of_node); if (rc) |