diff options
Diffstat (limited to 'drivers/net/phy/fixed_phy.c')
| -rw-r--r-- | drivers/net/phy/fixed_phy.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/drivers/net/phy/fixed_phy.c b/drivers/net/phy/fixed_phy.c index ab9c473d75ea..fc07a8866020 100644 --- a/drivers/net/phy/fixed_phy.c +++ b/drivers/net/phy/fixed_phy.c @@ -285,7 +285,7 @@ err_regs:  }  EXPORT_SYMBOL_GPL(fixed_phy_add); -void fixed_phy_del(int phy_addr) +static void fixed_phy_del(int phy_addr)  {  	struct fixed_mdio_bus *fmb = &platform_fmb;  	struct fixed_phy *fp, *tmp; @@ -300,7 +300,6 @@ void fixed_phy_del(int phy_addr)  		}  	}  } -EXPORT_SYMBOL_GPL(fixed_phy_del);  static int phy_fixed_addr;  static DEFINE_SPINLOCK(phy_fixed_addr_lock); @@ -371,6 +370,14 @@ struct phy_device *fixed_phy_register(unsigned int irq,  }  EXPORT_SYMBOL_GPL(fixed_phy_register); +void fixed_phy_unregister(struct phy_device *phy) +{ +	phy_device_remove(phy); + +	fixed_phy_del(phy->mdio.addr); +} +EXPORT_SYMBOL_GPL(fixed_phy_unregister); +  static int __init fixed_mdio_bus_init(void)  {  	struct fixed_mdio_bus *fmb = &platform_fmb; | 
