aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoor Azura Ahmad Tarmizi <noor.azura.ahmad.tarmizi@intel.com>2023-01-11 13:02:00 +0800
committerJakub Kicinski <kuba@kernel.org>2023-01-11 21:10:06 -0800
commitae9dcb91c6069e20b3b9505d79cbc89fd6e086f5 (patch)
tree7b77b76fca32d0cae2a8cc4e2f0df308ae517ab1
parenteb25df88287b37a63b9fb9ca6d333af2f504407a (diff)
downloadlinux-ae9dcb91c6069e20b3b9505d79cbc89fd6e086f5.tar.gz
net: stmmac: add aux timestamps fifo clearance wait
Add timeout polling wait for auxiliary timestamps snapshot FIFO clear bit (ATSFC) to clear. This is to ensure no residue fifo value is being read erroneously. Fixes: f4da56529da6 ("net: stmmac: Add support for external trigger timestamping") Cc: <stable@vger.kernel.org> # 5.10.x Signed-off-by: Noor Azura Ahmad Tarmizi <noor.azura.ahmad.tarmizi@intel.com> Link: https://lore.kernel.org/r/20230111050200.2130-1-noor.azura.ahmad.tarmizi@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
index fc06ddeac0d534..b4388ca8d21160 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
@@ -210,7 +210,10 @@ static int stmmac_enable(struct ptp_clock_info *ptp,
}
writel(acr_value, ptpaddr + PTP_ACR);
mutex_unlock(&priv->aux_ts_lock);
- ret = 0;
+ /* wait for auxts fifo clear to finish */
+ ret = readl_poll_timeout(ptpaddr + PTP_ACR, acr_value,
+ !(acr_value & PTP_ACR_ATSFC),
+ 10, 10000);
break;
default: