diff options
author | Daniel Golle <daniel@makrotopia.org> | 2023-04-03 02:18:50 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-04-03 10:13:00 +0100 |
commit | 720d736351761574af02ed093658ab60de60576c (patch) | |
tree | 0bffeab9a333135304bbf86b6945857332b1ba19 /drivers/net/dsa/mt7530.c | |
parent | 37c9c0d8d0b2e24f8c9af72ecd4edd31537284d3 (diff) |
net: dsa: mt7530: introduce mt7530_remove_common helper function
Move commonly used parts from mt7530_remove into new
mt7530_remove_common helper function which will be used by both,
mt7530_remove and the to-be-introduced mt7988_remove.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa/mt7530.c')
-rw-r--r-- | drivers/net/dsa/mt7530.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index a60ed8706ce3..9404675c4722 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -3260,6 +3260,17 @@ mt7530_probe(struct mdio_device *mdiodev) } static void +mt7530_remove_common(struct mt7530_priv *priv) +{ + if (priv->irq) + mt7530_free_irq(priv); + + dsa_unregister_switch(priv->ds); + + mutex_destroy(&priv->reg_mutex); +} + +static void mt7530_remove(struct mdio_device *mdiodev) { struct mt7530_priv *priv = dev_get_drvdata(&mdiodev->dev); @@ -3278,15 +3289,10 @@ mt7530_remove(struct mdio_device *mdiodev) dev_err(priv->dev, "Failed to disable io pwr: %d\n", ret); - if (priv->irq) - mt7530_free_irq(priv); - - dsa_unregister_switch(priv->ds); + mt7530_remove_common(priv); for (i = 0; i < 2; ++i) mtk_pcs_lynxi_destroy(priv->ports[5 + i].sgmii_pcs); - - mutex_destroy(&priv->reg_mutex); } static void mt7530_shutdown(struct mdio_device *mdiodev) |