net: fec: Stop PPS on driver remove
authorCsókás, Bence <csokas.bence@prolan.hu>
Wed, 7 Aug 2024 08:09:56 +0000 (10:09 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 8 Aug 2024 15:31:45 +0000 (08:31 -0700)
PPS was not stopped in `fec_ptp_stop()`, called when
the adapter was removed. Consequentially, you couldn't
safely reload the driver with the PPS signal on.

Fixes: 32cba57ba74b ("net: fec: introduce fec_ptp_stop and use in probe fail path")
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/netdev/CAOMZO5BzcZR8PwKKwBssQq_wAGzVgf1ffwe_nhpQJjviTdxy-w@mail.gmail.com/T/#m01dcb810bfc451a492140f6797ca77443d0cb79f
Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20240807080956.2556602-1-csokas.bence@prolan.hu
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/fec_ptp.c

index e32f672..2e4f3e1 100644 (file)
@@ -775,6 +775,9 @@ void fec_ptp_stop(struct platform_device *pdev)
        struct net_device *ndev = platform_get_drvdata(pdev);
        struct fec_enet_private *fep = netdev_priv(ndev);
 
+       if (fep->pps_enable)
+               fec_ptp_enable_pps(fep, 0);
+
        cancel_delayed_work_sync(&fep->time_keep);
        hrtimer_cancel(&fep->perout_timer);
        if (fep->ptp_clock)