[PATCH iwl-net 2/2] ice: remove redundant cross-timestamp PTP command
From: Grzegorz Nitka
Date: Fri Sep 25 2026 - 18:34:34 EST
The cross-timestamp capture path programs GLTSYN_CMD with READ_TIME before
starting the ART/device capture and clears it with NOP afterwards.
It was assumed that this change was needed for E823 devices, which
turned out to be not true. The hardware supported by this driver
does not require it.
Since GLTSYN_CMD is shared with other PTP operations, touching it here
only adds a potential race source.
Remove the redundant source command programming instead of adding another
guard around it.
Testing hints:
Verify crosstimestamp path, for example with phc2sys tool, on
E822/E823/E825/E830 devices. Please note that the phc2sys tool performs
cross-timestamping by default when supported by the hardware. This can
be observed when the reported delay is 0, indicating that the system
time and PHC time were latched simultaneously.
Fixes: 88c360e49f51 ("ice: Support cross-timestamping for E823 devices")
Signed-off-by: Grzegorz Nitka <grzegorz.nitka@xxxxxxxxx>
Reviewed-by: Sergey Temerkhanov <sergey.temerkhanov@xxxxxxxxx>
Reviewed-by: Milena Olech <milena.olech@xxxxxxxxx>
---
drivers/net/ethernet/intel/ice/ice_ptp.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c
index fd97190a89a9..23c0a45050d7 100644
--- a/drivers/net/ethernet/intel/ice/ice_ptp.c
+++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
@@ -2229,9 +2229,6 @@ static int ice_capture_crosststamp(ktime_t *device,
/* Snapshot system time for historic interpolation */
ktime_get_snapshot_id(ctx->snapshot_clock_id, &ctx->snapshot);
- /* Program cmd to master timer */
- ice_ptp_src_cmd(hw, ICE_PTP_READ_TIME);
-
/* Start the ART and device clock sync sequence */
ctl = rd32(hw, cfg->ctl_reg);
ctl |= cfg->ctl_active;
@@ -2258,9 +2255,6 @@ static int ice_capture_crosststamp(ktime_t *device,
*device = ns_to_ktime(ts);
err_timeout:
- /* Clear the master timer */
- ice_ptp_src_cmd(hw, ICE_PTP_NOP);
-
/* Release HW lock */
lock = rd32(hw, cfg->lock_reg);
lock &= ~cfg->lock_busy;
--
2.39.3