net: stmmac: add stmmac_setup_ptp()

Add a function to setup PTP, which will enable the clock, initialise
the timestamping, and register with the PTP clock subsystem. Call this
when we want to register the PTP clock in stmmac_hw_setup(), otherwise
just call the

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Russell King (Oracle)
2025-09-11 12:10:18 +01:00
committed by Jakub Kicinski
parent b09f58ddc6
commit 84b994ac4e

View File

@@ -820,6 +820,20 @@ static int stmmac_init_timestamping(struct stmmac_priv *priv)
return 0;
}
static void stmmac_setup_ptp(struct stmmac_priv *priv)
{
int ret;
ret = clk_prepare_enable(priv->plat->clk_ptp_ref);
if (ret < 0)
netdev_warn(priv->dev,
"failed to enable PTP reference clock: %pe\n",
ERR_PTR(ret));
if (stmmac_init_timestamping(priv) == 0)
stmmac_ptp_register(priv);
}
static void stmmac_release_ptp(struct stmmac_priv *priv)
{
stmmac_ptp_unregister(priv);
@@ -3494,16 +3508,10 @@ static int stmmac_hw_setup(struct net_device *dev, bool ptp_register)
stmmac_mmc_setup(priv);
if (ptp_register) {
ret = clk_prepare_enable(priv->plat->clk_ptp_ref);
if (ret < 0)
netdev_warn(priv->dev,
"failed to enable PTP reference clock: %pe\n",
ERR_PTR(ret));
}
if (stmmac_init_timestamping(priv) == 0 && ptp_register)
stmmac_ptp_register(priv);
if (ptp_register)
stmmac_setup_ptp(priv);
else
stmmac_init_timestamping(priv);
if (priv->use_riwt) {
u32 queue;