From: Bin Meng Date: Thu, 8 Oct 2015 04:32:39 +0000 (-0700) Subject: net: pch_gbe: Add driver remove support X-Git-Tag: v2016.01-rc1~154^2~4 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3f616b6053517927f564fc8ed6dc4a87bd39e857;p=u-boot 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 Reviewed-by: Simon Glass Acked-by: Joe Hershberger --- diff --git a/drivers/net/pch_gbe.c b/drivers/net/pch_gbe.c index 004fcf88c2..dfc01000fc 100644 --- a/drivers/net/pch_gbe.c +++ b/drivers/net/pch_gbe.c @@ -452,6 +452,17 @@ int pch_gbe_probe(struct udevice *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 = { .start = pch_gbe_start, .send = pch_gbe_send, @@ -470,6 +481,7 @@ U_BOOT_DRIVER(eth_pch_gbe) = { .id = UCLASS_ETH, .of_match = pch_gbe_ids, .probe = pch_gbe_probe, + .remove = pch_gbe_remove, .ops = &pch_gbe_ops, .priv_auto_alloc_size = sizeof(struct pch_gbe_priv), .platdata_auto_alloc_size = sizeof(struct eth_pdata),