1 |
From ae9dcb91c6069e20b3b9505d79cbc89fd6e086f5 Mon Sep 17 00:00:00 2001 |
2 |
From: Noor Azura Ahmad Tarmizi <noor.azura.ahmad.tarmizi@intel.com> |
3 |
Date: Wed, 11 Jan 2023 13:02:00 +0800 |
4 |
Subject: net: stmmac: add aux timestamps fifo clearance wait |
5 |
|
6 |
From: Noor Azura Ahmad Tarmizi <noor.azura.ahmad.tarmizi@intel.com> |
7 |
|
8 |
commit ae9dcb91c6069e20b3b9505d79cbc89fd6e086f5 upstream. |
9 |
|
10 |
Add timeout polling wait for auxiliary timestamps snapshot FIFO clear bit |
11 |
(ATSFC) to clear. This is to ensure no residue fifo value is being read |
12 |
erroneously. |
13 |
|
14 |
Fixes: f4da56529da6 ("net: stmmac: Add support for external trigger timestamping") |
15 |
Cc: <stable@vger.kernel.org> # 5.10.x |
16 |
Signed-off-by: Noor Azura Ahmad Tarmizi <noor.azura.ahmad.tarmizi@intel.com> |
17 |
Link: https://lore.kernel.org/r/20230111050200.2130-1-noor.azura.ahmad.tarmizi@intel.com |
18 |
Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
19 |
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
20 |
--- |
21 |
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 5 ++++- |
22 |
1 file changed, 4 insertions(+), 1 deletion(-) |
23 |
|
24 |
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c |
25 |
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c |
26 |
@@ -229,7 +229,10 @@ static int stmmac_enable(struct ptp_cloc |
27 |
} |
28 |
writel(acr_value, ptpaddr + PTP_ACR); |
29 |
mutex_unlock(&priv->aux_ts_lock); |
30 |
- ret = 0; |
31 |
+ /* wait for auxts fifo clear to finish */ |
32 |
+ ret = readl_poll_timeout(ptpaddr + PTP_ACR, acr_value, |
33 |
+ !(acr_value & PTP_ACR_ATSFC), |
34 |
+ 10, 10000); |
35 |
break; |
36 |
|
37 |
default: |