]> www.infradead.org Git - users/hch/misc.git/commitdiff
net: stmmac: move timestamping/ptp init to stmmac_hw_setup() caller
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Thu, 11 Sep 2025 11:10:28 +0000 (12:10 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sun, 14 Sep 2025 19:01:26 +0000 (12:01 -0700)
Move the call to stmmac_init_timestamping() or stmmac_setup_ptp() out
of stmmac_hw_setup() to its caller after stmmac_hw_setup() has
successfully completed. This slightly changes the ordering during
setup, but should be safe to do.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index ff12c4b34eb611ff59989ef250dba27af4bc53b6..8c8ca5999bd8ad369eafa0cd8448a15da55be86b 100644 (file)
@@ -3436,7 +3436,7 @@ static void stmmac_safety_feat_configuration(struct stmmac_priv *priv)
  *  0 on success and an appropriate (-)ve integer as defined in errno.h
  *  file on failure.
  */
-static int stmmac_hw_setup(struct net_device *dev, bool ptp_register)
+static int stmmac_hw_setup(struct net_device *dev)
 {
        struct stmmac_priv *priv = netdev_priv(dev);
        u32 rx_cnt = priv->plat->rx_queues_to_use;
@@ -3507,11 +3507,6 @@ static int stmmac_hw_setup(struct net_device *dev, bool ptp_register)
 
        stmmac_mmc_setup(priv);
 
-       if (ptp_register)
-               stmmac_setup_ptp(priv);
-       else
-               stmmac_init_timestamping(priv);
-
        if (priv->use_riwt) {
                u32 queue;
 
@@ -4000,12 +3995,14 @@ static int __stmmac_open(struct net_device *dev,
                }
        }
 
-       ret = stmmac_hw_setup(dev, true);
+       ret = stmmac_hw_setup(dev);
        if (ret < 0) {
                netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
                goto init_error;
        }
 
+       stmmac_setup_ptp(priv);
+
        stmmac_init_coalesce(priv);
 
        phylink_start(priv->phylink);
@@ -7917,7 +7914,7 @@ int stmmac_resume(struct device *dev)
        stmmac_free_tx_skbufs(priv);
        stmmac_clear_descriptors(priv, &priv->dma_conf);
 
-       ret = stmmac_hw_setup(ndev, false);
+       ret = stmmac_hw_setup(ndev);
        if (ret < 0) {
                netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
                mutex_unlock(&priv->lock);
@@ -7925,6 +7922,8 @@ int stmmac_resume(struct device *dev)
                return ret;
        }
 
+       stmmac_init_timestamping(priv);
+
        stmmac_init_coalesce(priv);
        phylink_rx_clk_stop_block(priv->phylink);
        stmmac_set_rx_mode(ndev);