Skip to content
Snippets Groups Projects
Commit 3f616b60 authored by Bin Meng's avatar Bin Meng Committed by Joe Hershberger
Browse files

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: default avatarBin Meng <bmeng.cn@gmail.com>
Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
Acked-by: default avatarJoe Hershberger <joe.hershberger@ni.com>
parent 5d2459fd
No related branches found
No related tags found
No related merge requests found
...@@ -452,6 +452,17 @@ int pch_gbe_probe(struct udevice *dev) ...@@ -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) = { ...@@ -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),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment