summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-10-30 16:45:26 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-10-30 17:17:52 +0100
commit87963014473bce3c02a567e63fbffd8cf86f6759 (patch)
tree5723934bcc321d8db939ab4948269ec329f7c768 /net
parent3a17af33c01fd066ab3939c8218037c87ba26eed (diff)
downloadbarebox-87963014473bce3c02a567e63fbffd8cf86f6759.tar.gz
barebox-87963014473bce3c02a567e63fbffd8cf86f6759.tar.xz
net eth: make edev->init optional
edev->init is called at eth_register time unconditionally and is supposed to initialize the ethernet hardware. Since it's called unconditionally this could be done by the driver without having an additional hook. Some drivers need their initialization done earlier since they also register a mdiobus which does hardware accesses on registration time. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net')
-rw-r--r--net/eth.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/eth.c b/net/eth.c
index f3d7bfea59..2cfdb96f94 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -269,7 +269,8 @@ int eth_register(struct eth_device *edev)
dev_add_param(dev, "netmask", eth_set_ipaddr, NULL, 0);
dev_add_param(dev, "serverip", eth_set_ipaddr, NULL, 0);
- edev->init(edev);
+ if (edev->init)
+ edev->init(edev);
list_add_tail(&edev->list, &netdev_list);