summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-11-11 12:37:16 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2014-04-04 09:04:31 +0200
commit1273cc2d47c92047835d6a43069207d119725e3c (patch)
treeb9930fe492ed453951ad97c26ddd38d700b0dc79 /net
parent5dcb117e82cb31cbc3afc577ad8654a9d8aad594 (diff)
downloadbarebox-1273cc2d47c92047835d6a43069207d119725e3c.tar.gz
barebox-1273cc2d47c92047835d6a43069207d119725e3c.tar.xz
param: Add dev_add_param_mac
This adds a convenience function to register a MAC address device parameter. The only current user is converted to use it. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net')
-rw-r--r--net/eth.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/net/eth.c b/net/eth.c
index 1f48f2df8a..3ced3cddbe 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -257,17 +257,9 @@ int eth_rx(void)
return eth_current->recv(eth_current);
}
-static int eth_set_ethaddr(struct device_d *dev, struct param_d *param, const char *val)
+static int eth_set_ethaddr(struct param_d *param, void *priv)
{
- struct eth_device *edev = dev_to_edev(dev);
-
- if (!val)
- return dev_param_set_generic(dev, param, NULL);
-
- if (string_to_ethaddr(val, edev->ethaddr) < 0)
- return -EINVAL;
-
- dev_param_set_generic(dev, param, val);
+ struct eth_device *edev = priv;
edev->set_ethaddr(edev, edev->ethaddr);
@@ -345,7 +337,7 @@ int eth_register(struct eth_device *edev)
dev_add_param_ip(dev, "serverip", NULL, NULL, &edev->serverip, edev);
dev_add_param_ip(dev, "gateway", NULL, NULL, &edev->gateway, edev);
dev_add_param_ip(dev, "netmask", NULL, NULL, &edev->netmask, edev);
- dev_add_param(dev, "ethaddr", eth_set_ethaddr, NULL, 0);
+ dev_add_param_mac(dev, "ethaddr", eth_set_ethaddr, NULL, edev->ethaddr, edev);
if (edev->init)
edev->init(edev);