mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-11-29 06:31:28 +01:00
net: pch_gbe: Add driver remove support
In pch_gbe_probe(), some additional resources are allocated (eg: mdio, phy). We should free these in the driver remove phase. Add pch_gbe_remove() to clean it up. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
5d2459fd46
commit
3f616b6053
@ -452,6 +452,17 @@ int pch_gbe_probe(struct udevice *dev)
|
|||||||
return pch_gbe_phy_init(dev);
|
return pch_gbe_phy_init(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int pch_gbe_remove(struct udevice *dev)
|
||||||
|
{
|
||||||
|
struct pch_gbe_priv *priv = dev_get_priv(dev);
|
||||||
|
|
||||||
|
free(priv->phydev);
|
||||||
|
mdio_unregister(priv->bus);
|
||||||
|
mdio_free(priv->bus);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct eth_ops pch_gbe_ops = {
|
static const struct eth_ops pch_gbe_ops = {
|
||||||
.start = pch_gbe_start,
|
.start = pch_gbe_start,
|
||||||
.send = pch_gbe_send,
|
.send = pch_gbe_send,
|
||||||
@ -470,6 +481,7 @@ U_BOOT_DRIVER(eth_pch_gbe) = {
|
|||||||
.id = UCLASS_ETH,
|
.id = UCLASS_ETH,
|
||||||
.of_match = pch_gbe_ids,
|
.of_match = pch_gbe_ids,
|
||||||
.probe = pch_gbe_probe,
|
.probe = pch_gbe_probe,
|
||||||
|
.remove = pch_gbe_remove,
|
||||||
.ops = &pch_gbe_ops,
|
.ops = &pch_gbe_ops,
|
||||||
.priv_auto_alloc_size = sizeof(struct pch_gbe_priv),
|
.priv_auto_alloc_size = sizeof(struct pch_gbe_priv),
|
||||||
.platdata_auto_alloc_size = sizeof(struct eth_pdata),
|
.platdata_auto_alloc_size = sizeof(struct eth_pdata),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user