aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRadu Pirea (OSS) <radu-nicolae.pirea@oss.nxp.com>2023-04-06 12:59:04 +0300
committerPaolo Abeni <pabeni@redhat.com>2023-04-11 15:28:31 +0200
commita4506722dc39ca840593f14e3faa4c9ba9408211 (patch)
tree5c5b51253c8f9a635b6416134f54db671b9085a4
parent9a06fe08ae938bc2c2fb96e36ebcdb7b1a5133c4 (diff)
downloadlinux-a4506722dc39ca840593f14e3faa4c9ba9408211.tar.gz
net: phy: nxp-c45-tja11xx: add remove callback
Unregister PTP clock when the driver is removed. Purge the RX and TX skb queues. Fixes: 514def5dd339 ("phy: nxp-c45-tja11xx: add timestamping support") CC: stable@vger.kernel.org # 5.15+ Signed-off-by: Radu Pirea (OSS) <radu-nicolae.pirea@oss.nxp.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://lore.kernel.org/r/20230406095904.75456-1-radu-nicolae.pirea@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
-rw-r--r--drivers/net/phy/nxp-c45-tja11xx.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/phy/nxp-c45-tja11xx.c b/drivers/net/phy/nxp-c45-tja11xx.c
index 1b7d6941b0f35f..029875a59ff890 100644
--- a/drivers/net/phy/nxp-c45-tja11xx.c
+++ b/drivers/net/phy/nxp-c45-tja11xx.c
@@ -1337,6 +1337,17 @@ no_ptp_support:
return ret;
}
+static void nxp_c45_remove(struct phy_device *phydev)
+{
+ struct nxp_c45_phy *priv = phydev->priv;
+
+ if (priv->ptp_clock)
+ ptp_clock_unregister(priv->ptp_clock);
+
+ skb_queue_purge(&priv->tx_queue);
+ skb_queue_purge(&priv->rx_queue);
+}
+
static struct phy_driver nxp_c45_driver[] = {
{
PHY_ID_MATCH_MODEL(PHY_ID_TJA_1103),
@@ -1359,6 +1370,7 @@ static struct phy_driver nxp_c45_driver[] = {
.set_loopback = genphy_c45_loopback,
.get_sqi = nxp_c45_get_sqi,
.get_sqi_max = nxp_c45_get_sqi_max,
+ .remove = nxp_c45_remove,
},
};