diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-05-15 09:56:35 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-05-15 10:04:51 +0200 |
commit | 0cf4630cd277e2a71340c47262cd66c930b0d541 (patch) | |
tree | 14a77d12ce51275e8cd668fa04d9e6419d62834b /net | |
parent | 0ca1d8a456e6201d653e5bad5b0af826f77d7793 (diff) | |
download | barebox-0cf4630cd277e2a71340c47262cd66c930b0d541.tar.gz barebox-0cf4630cd277e2a71340c47262cd66c930b0d541.tar.xz |
net: take eth id from devicetree alias
If the devicetree has an alias for the ethernet device, then use
it.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net')
-rw-r--r-- | net/eth.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -330,12 +330,21 @@ int eth_register(struct eth_device *edev) } strcpy(edev->dev.name, "eth"); - edev->dev.id = DEVICE_ID_DYNAMIC; if (edev->parent) edev->dev.parent = edev->parent; - register_device(&edev->dev); + if (edev->dev.parent && edev->dev.parent->device_node) { + edev->dev.id = of_alias_get_id(edev->dev.parent->device_node, "ethernet"); + if (edev->dev.id < 0) + edev->dev.id = DEVICE_ID_DYNAMIC; + } else { + edev->dev.id = DEVICE_ID_DYNAMIC; + } + + ret = register_device(&edev->dev); + if (ret) + return ret; dev_add_param_ip(dev, "ipaddr", NULL, NULL, &edev->ipaddr, edev); dev_add_param_ip(dev, "serverip", NULL, NULL, &edev->serverip, edev); |