stmmac: fix and review the ptp registration.
The commit commit7086605a6a
("stmmac: fix error check when init ptp") breaks the procedure added by the commitefee95f42b
("ptp_clock: future-proofing drivers against PTP subsystem becoming optional") So this patch tries to re-import the logic added by the latest commit above: it makes sense to have the stmmac_ptp_register as void function and, inside the main, the stmmac_init_ptp can fails in case of the capability cannot be supported by the HW. Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre TORGUE <alexandre.torgue@st.com> Cc: Rayagond Kokatanur <rayagond@vayavyalabs.com> Cc: Dan Carpenter <dan.carpenter@oracle.com> Cc: Nicolas Pitre <nico@linaro.org> Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
82454581d7
Коммит
c30a70d3ac
|
@ -145,7 +145,7 @@ int stmmac_mdio_register(struct net_device *ndev);
|
|||
int stmmac_mdio_reset(struct mii_bus *mii);
|
||||
void stmmac_set_ethtool_ops(struct net_device *netdev);
|
||||
|
||||
int stmmac_ptp_register(struct stmmac_priv *priv);
|
||||
void stmmac_ptp_register(struct stmmac_priv *priv);
|
||||
void stmmac_ptp_unregister(struct stmmac_priv *priv);
|
||||
int stmmac_resume(struct device *dev);
|
||||
int stmmac_suspend(struct device *dev);
|
||||
|
|
|
@ -676,7 +676,9 @@ static int stmmac_init_ptp(struct stmmac_priv *priv)
|
|||
priv->hwts_tx_en = 0;
|
||||
priv->hwts_rx_en = 0;
|
||||
|
||||
return stmmac_ptp_register(priv);
|
||||
stmmac_ptp_register(priv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void stmmac_release_ptp(struct stmmac_priv *priv)
|
||||
|
@ -1710,7 +1712,7 @@ static int stmmac_hw_setup(struct net_device *dev, bool init_ptp)
|
|||
if (init_ptp) {
|
||||
ret = stmmac_init_ptp(priv);
|
||||
if (ret)
|
||||
netdev_warn(priv->dev, "PTP support cannot init.\n");
|
||||
netdev_warn(priv->dev, "fail to init PTP.\n");
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
|
|
|
@ -177,7 +177,7 @@ static struct ptp_clock_info stmmac_ptp_clock_ops = {
|
|||
* Description: this function will register the ptp clock driver
|
||||
* to kernel. It also does some house keeping work.
|
||||
*/
|
||||
int stmmac_ptp_register(struct stmmac_priv *priv)
|
||||
void stmmac_ptp_register(struct stmmac_priv *priv)
|
||||
{
|
||||
spin_lock_init(&priv->ptp_lock);
|
||||
priv->ptp_clock_ops = stmmac_ptp_clock_ops;
|
||||
|
@ -185,17 +185,10 @@ int stmmac_ptp_register(struct stmmac_priv *priv)
|
|||
priv->ptp_clock = ptp_clock_register(&priv->ptp_clock_ops,
|
||||
priv->device);
|
||||
if (IS_ERR(priv->ptp_clock)) {
|
||||
int ret = PTR_ERR(priv->ptp_clock);
|
||||
|
||||
netdev_err(priv->dev, "ptp_clock_register failed\n");
|
||||
priv->ptp_clock = NULL;
|
||||
return ret;
|
||||
}
|
||||
|
||||
spin_lock_init(&priv->ptp_lock);
|
||||
|
||||
netdev_dbg(priv->dev, "Added PTP HW clock successfully\n");
|
||||
|
||||
return 0;
|
||||
} else if (priv->ptp_clock)
|
||||
netdev_info(priv->dev, "registered PTP clock\n");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Загрузка…
Ссылка в новой задаче