ice/ptp: fix crosstimestamp reporting
authorAnton Nadezhdin <anton.nadezhdin@intel.com>
Tue, 20 May 2025 08:42:16 +0000 (10:42 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 10 Jun 2025 16:10:47 +0000 (09:10 -0700)
Set use_nsecs=true as timestamp is reported in ns. Lack of this result
in smaller timestamp error window which cause error during phc2sys
execution on E825 NICs:
phc2sys[1768.256]: ioctl PTP_SYS_OFFSET_PRECISE: Invalid argument

This problem was introduced in the cited commit which omitted setting
use_nsecs to true when converting the ice driver to use
convert_base_to_cs().

Testing hints (ethX is PF netdev):
phc2sys -s ethX -c CLOCK_REALTIME  -O 37 -m
phc2sys[1769.256]: CLOCK_REALTIME phc offset -5 s0 freq      -0 delay    0

Fixes: d4bea547ebb57 ("ice/ptp: Remove convert_art_to_tsc()")
Signed-off-by: Anton Nadezhdin <anton.nadezhdin@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Reviewed-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_ptp.c

index b79a148ed0f2823d35ab5b3031a39972cf6af346..55cad824c5b9f44615349056adc6c6883a3852bb 100644 (file)
@@ -2299,6 +2299,7 @@ static int ice_capture_crosststamp(ktime_t *device,
        ts = ((u64)ts_hi << 32) | ts_lo;
        system->cycles = ts;
        system->cs_id = CSID_X86_ART;
+       system->use_nsecs = true;
 
        /* Read Device source clock time */
        ts_lo = rd32(hw, cfg->dev_time_l[tmr_idx]);