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

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