mirror of
https://github.com/torvalds/linux.git
synced 2024-12-08 20:21:34 +00:00
Merge branch 'stmmac-ptp-fix'
Mohammad Athari Bin Ismail says: ==================== Fix PTP issue in stmmac This patch series to fix PTP issue in stmmac related to: 1/ PTP clock source configuration during initialization. 2/ PTP initialization during resume from suspend. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
aa44323e1c
@ -890,6 +890,9 @@ static int stmmac_init_ptp(struct stmmac_priv *priv)
|
||||
bool xmac = priv->plat->has_gmac4 || priv->plat->has_xgmac;
|
||||
int ret;
|
||||
|
||||
if (priv->plat->ptp_clk_freq_config)
|
||||
priv->plat->ptp_clk_freq_config(priv);
|
||||
|
||||
ret = stmmac_init_tstamp_counter(priv, STMMAC_HWTS_ACTIVE);
|
||||
if (ret)
|
||||
return ret;
|
||||
@ -912,8 +915,6 @@ static int stmmac_init_ptp(struct stmmac_priv *priv)
|
||||
priv->hwts_tx_en = 0;
|
||||
priv->hwts_rx_en = 0;
|
||||
|
||||
stmmac_ptp_register(priv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -3239,7 +3240,7 @@ static int stmmac_fpe_start_wq(struct stmmac_priv *priv)
|
||||
/**
|
||||
* stmmac_hw_setup - setup mac in a usable state.
|
||||
* @dev : pointer to the device structure.
|
||||
* @init_ptp: initialize PTP if set
|
||||
* @ptp_register: register PTP if set
|
||||
* Description:
|
||||
* this is the main function to setup the HW in a usable state because the
|
||||
* dma engine is reset, the core registers are configured (e.g. AXI,
|
||||
@ -3249,7 +3250,7 @@ static int stmmac_fpe_start_wq(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 init_ptp)
|
||||
static int stmmac_hw_setup(struct net_device *dev, bool ptp_register)
|
||||
{
|
||||
struct stmmac_priv *priv = netdev_priv(dev);
|
||||
u32 rx_cnt = priv->plat->rx_queues_to_use;
|
||||
@ -3306,13 +3307,13 @@ static int stmmac_hw_setup(struct net_device *dev, bool init_ptp)
|
||||
|
||||
stmmac_mmc_setup(priv);
|
||||
|
||||
if (init_ptp) {
|
||||
ret = stmmac_init_ptp(priv);
|
||||
if (ret == -EOPNOTSUPP)
|
||||
netdev_warn(priv->dev, "PTP not supported by HW\n");
|
||||
else if (ret)
|
||||
netdev_warn(priv->dev, "PTP init failed\n");
|
||||
}
|
||||
ret = stmmac_init_ptp(priv);
|
||||
if (ret == -EOPNOTSUPP)
|
||||
netdev_warn(priv->dev, "PTP not supported by HW\n");
|
||||
else if (ret)
|
||||
netdev_warn(priv->dev, "PTP init failed\n");
|
||||
else if (ptp_register)
|
||||
stmmac_ptp_register(priv);
|
||||
|
||||
priv->eee_tw_timer = STMMAC_DEFAULT_TWT_LS;
|
||||
|
||||
|
@ -297,9 +297,6 @@ void stmmac_ptp_register(struct stmmac_priv *priv)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (priv->plat->ptp_clk_freq_config)
|
||||
priv->plat->ptp_clk_freq_config(priv);
|
||||
|
||||
for (i = 0; i < priv->dma_cap.pps_out_num; i++) {
|
||||
if (i >= STMMAC_PPS_MAX)
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user