net: designware: Add driver remove support
In designware_eth_probe(), some additional resources are allocated (eg: mdio, phy). We should free these in the driver remove phase. Add designware_eth_remove() to clean it up. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
cb6baca77b
commit
5d2459fd46
@ -613,6 +613,17 @@ static int designware_eth_probe(struct udevice *dev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int designware_eth_remove(struct udevice *dev)
|
||||
{
|
||||
struct dw_eth_dev *priv = dev_get_priv(dev);
|
||||
|
||||
free(priv->phydev);
|
||||
mdio_unregister(priv->bus);
|
||||
mdio_free(priv->bus);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct eth_ops designware_eth_ops = {
|
||||
.start = designware_eth_start,
|
||||
.send = designware_eth_send,
|
||||
@ -653,6 +664,7 @@ U_BOOT_DRIVER(eth_designware) = {
|
||||
.ofdata_to_platdata = designware_eth_ofdata_to_platdata,
|
||||
.bind = designware_eth_bind,
|
||||
.probe = designware_eth_probe,
|
||||
.remove = designware_eth_remove,
|
||||
.ops = &designware_eth_ops,
|
||||
.priv_auto_alloc_size = sizeof(struct dw_eth_dev),
|
||||
.platdata_auto_alloc_size = sizeof(struct eth_pdata),
|
||||
|
Loading…
Reference in New Issue
Block a user