diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-10-30 16:45:26 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-10-30 17:17:52 +0100 |
commit | 87963014473bce3c02a567e63fbffd8cf86f6759 (patch) | |
tree | 5723934bcc321d8db939ab4948269ec329f7c768 /net/eth.c | |
parent | 3a17af33c01fd066ab3939c8218037c87ba26eed (diff) | |
download | barebox-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/eth.c')
-rw-r--r-- | net/eth.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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); |