Commit 98d8ea56 authored by Russell King (Oracle)'s avatar Russell King (Oracle) Committed by Jakub Kicinski
Browse files

net: stmmac: move timestamping/ptp init to stmmac_hw_setup() caller



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: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 9d505922
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -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);