diff options
author | Michael Grzeschik <m.grzeschik@pengutronix.de> | 2014-09-29 11:55:35 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-09-29 20:36:26 +0200 |
commit | a0d2e51390622e4dfd9d7bffb768e6fa22fb7daf (patch) | |
tree | be1ea9a0c987658724a555bdb8f233435507c6e2 /drivers/net/arcnet | |
parent | ARCNET: return IRQ_NONE if the interface isn't running (diff) | |
download | linux-a0d2e51390622e4dfd9d7bffb768e6fa22fb7daf.tar.xz linux-a0d2e51390622e4dfd9d7bffb768e6fa22fb7daf.zip |
ARCNET: add com20020_set_hwddr to change address
This patch adds com20020_set_hwaddr to make
it possible to change the hwaddr on runtime.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/arcnet')
-rw-r--r-- | drivers/net/arcnet/com20020.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/arcnet/com20020.c b/drivers/net/arcnet/com20020.c index 7b96c5f47e8d..1a8437842fbc 100644 --- a/drivers/net/arcnet/com20020.c +++ b/drivers/net/arcnet/com20020.c @@ -149,11 +149,25 @@ int com20020_check(struct net_device *dev) return 0; } +static int com20020_set_hwaddr(struct net_device *dev, void *addr) +{ + int ioaddr = dev->base_addr; + struct arcnet_local *lp = netdev_priv(dev); + struct sockaddr *hwaddr = addr; + + memcpy(dev->dev_addr, hwaddr->sa_data, 1); + SET_SUBADR(SUB_NODE); + outb(dev->dev_addr[0], _XREG); + + return 0; +} + const struct net_device_ops com20020_netdev_ops = { .ndo_open = arcnet_open, .ndo_stop = arcnet_close, .ndo_start_xmit = arcnet_send_packet, .ndo_tx_timeout = arcnet_timeout, + .ndo_set_mac_address = com20020_set_hwaddr, .ndo_set_rx_mode = com20020_set_mc_list, }; |