net: stmmac: add aux timestamps fifo clearance wait
authorNoor Azura Ahmad Tarmizi <noor.azura.ahmad.tarmizi@intel.com>
Wed, 11 Jan 2023 05:02:00 +0000 (13:02 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 12 Jan 2023 05:10:06 +0000 (21:10 -0800)
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>
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c

index fc06dde..b4388ca 100644 (file)
@@ -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: