| From 5ab033b51ef8b08d49b302a05373285484297f52 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 20 Oct 2021 09:04:33 +0200 |
| Subject: net: stmmac: Fix E2E delay mechanism |
| |
| From: Kurt Kanzenbach <kurt@linutronix.de> |
| |
| [ Upstream commit 3cb958027cb8b78d3ee639ce9af54c2ef1bf964f ] |
| |
| When utilizing End to End delay mechanism, the following error messages show up: |
| |
| |root@ehl1:~# ptp4l --tx_timestamp_timeout=50 -H -i eno2 -E -m |
| |ptp4l[950.573]: selected /dev/ptp3 as PTP clock |
| |ptp4l[950.586]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE |
| |ptp4l[950.586]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE |
| |ptp4l[952.879]: port 1: new foreign master 001395.fffe.4897b4-1 |
| |ptp4l[956.879]: selected best master clock 001395.fffe.4897b4 |
| |ptp4l[956.879]: port 1: assuming the grand master role |
| |ptp4l[956.879]: port 1: LISTENING to GRAND_MASTER on RS_GRAND_MASTER |
| |ptp4l[962.017]: port 1: received DELAY_REQ without timestamp |
| |ptp4l[962.273]: port 1: received DELAY_REQ without timestamp |
| |ptp4l[963.090]: port 1: received DELAY_REQ without timestamp |
| |
| Commit f2fb6b6275eb ("net: stmmac: enable timestamp snapshot for required PTP |
| packets in dwmac v5.10a") already addresses this problem for the dwmac |
| v5.10. However, same holds true for all dwmacs above version v4.10. Correct the |
| check accordingly. Afterwards everything works as expected. |
| |
| Tested on Intel Atom(R) x6414RE Processor. |
| |
| Fixes: 14f347334bf2 ("net: stmmac: Correctly take timestamp for PTPv2") |
| Fixes: f2fb6b6275eb ("net: stmmac: enable timestamp snapshot for required PTP packets in dwmac v5.10a") |
| Suggested-by: Ong Boon Leong <boon.leong.ong@intel.com> |
| Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| index 6b2a5e5769e8..14e577787415 100644 |
| --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| @@ -736,7 +736,7 @@ static int stmmac_hwtstamp_set(struct net_device *dev, struct ifreq *ifr) |
| config.rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT; |
| ptp_v2 = PTP_TCR_TSVER2ENA; |
| snap_type_sel = PTP_TCR_SNAPTYPSEL_1; |
| - if (priv->synopsys_id != DWMAC_CORE_5_10) |
| + if (priv->synopsys_id < DWMAC_CORE_4_10) |
| ts_event_en = PTP_TCR_TSEVNTENA; |
| ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA; |
| ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA; |
| -- |
| 2.33.0 |
| |