mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-14 15:55:28 -04:00
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: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
9d5059228c
commit
98d8ea566b
@@ -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
|
* 0 on success and an appropriate (-)ve integer as defined in errno.h
|
||||||
* file on failure.
|
* 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);
|
struct stmmac_priv *priv = netdev_priv(dev);
|
||||||
u32 rx_cnt = priv->plat->rx_queues_to_use;
|
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);
|
stmmac_mmc_setup(priv);
|
||||||
|
|
||||||
if (ptp_register)
|
|
||||||
stmmac_setup_ptp(priv);
|
|
||||||
else
|
|
||||||
stmmac_init_timestamping(priv);
|
|
||||||
|
|
||||||
if (priv->use_riwt) {
|
if (priv->use_riwt) {
|
||||||
u32 queue;
|
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) {
|
if (ret < 0) {
|
||||||
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
|
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
|
||||||
goto init_error;
|
goto init_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stmmac_setup_ptp(priv);
|
||||||
|
|
||||||
stmmac_init_coalesce(priv);
|
stmmac_init_coalesce(priv);
|
||||||
|
|
||||||
phylink_start(priv->phylink);
|
phylink_start(priv->phylink);
|
||||||
@@ -7917,7 +7914,7 @@ int stmmac_resume(struct device *dev)
|
|||||||
stmmac_free_tx_skbufs(priv);
|
stmmac_free_tx_skbufs(priv);
|
||||||
stmmac_clear_descriptors(priv, &priv->dma_conf);
|
stmmac_clear_descriptors(priv, &priv->dma_conf);
|
||||||
|
|
||||||
ret = stmmac_hw_setup(ndev, false);
|
ret = stmmac_hw_setup(ndev);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
|
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
|
||||||
mutex_unlock(&priv->lock);
|
mutex_unlock(&priv->lock);
|
||||||
@@ -7925,6 +7922,8 @@ int stmmac_resume(struct device *dev)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stmmac_init_timestamping(priv);
|
||||||
|
|
||||||
stmmac_init_coalesce(priv);
|
stmmac_init_coalesce(priv);
|
||||||
phylink_rx_clk_stop_block(priv->phylink);
|
phylink_rx_clk_stop_block(priv->phylink);
|
||||||
stmmac_set_rx_mode(ndev);
|
stmmac_set_rx_mode(ndev);
|
||||||
|
|||||||
Reference in New Issue
Block a user