mirror_ubuntu-kernels/drivers/net/ethernet/intel/igb
Yuezhen Luan 6292d7436c igb: Fix extts capture value format for 82580/i354/i350
82580/i354/i350 features circle-counter-like timestamp registers
that are different with newer i210. The EXTTS capture value in
AUXTSMPx should be converted from raw circle counter value to
timestamp value in resolution of 1 nanosec by the driver.

This issue can be reproduced on i350 nics, connecting an 1PPS
signal to a SDP pin, and run 'ts2phc' command to read external
1PPS timestamp value. On i210 this works fine, but on i350 the
extts is not correctly converted.

The i350/i354/82580's SYSTIM and other timestamp registers are
40bit counters, presenting time range of 2^40 ns, that means these
registers overflows every about 1099s. This causes all these regs
can't be used directly in contrast to the newer i210/i211s.

The igb driver needs to convert these raw register values to
valid time stamp format by using kernel timecounter apis for i350s
families. Here the igb_extts() just forgot to do the convert.

Fixes: 38970eac41 ("igb: support EXTTS on 82580/i354/i350")
Signed-off-by: Yuezhen Luan <eggcar.luan@gmail.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/20230607164116.3768175-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-06-08 19:11:12 -07:00
..
e1000_82575.c igb: remove unexpected word "the" 2022-06-30 10:43:18 -07:00
e1000_82575.h
e1000_defines.h igb: Remove duplicate defines 2022-06-09 10:05:31 -07:00
e1000_hw.h igb: Fix duplicate include guard 2021-03-19 08:47:46 -07:00
e1000_i210.c igb: remove never changed variable `ret_val' 2021-12-21 09:17:47 -08:00
e1000_i210.h
e1000_mac.c igb: fix bit_shift to be in [1..8] range 2023-05-17 09:25:04 +01:00
e1000_mac.h
e1000_mbx.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
e1000_mbx.h
e1000_nvm.c
e1000_nvm.h
e1000_phy.c igb: Fix fall-through warnings for Clang 2021-03-23 11:34:02 -07:00
e1000_phy.h
e1000_regs.h igb: Remove duplicate defines 2022-06-09 10:05:31 -07:00
igb_ethtool.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-12-08 18:19:59 -08:00
igb_hwmon.c
igb_main.c igb: Fix extts capture value format for 82580/i354/i350 2023-06-08 19:11:12 -07:00
igb_ptp.c igb: refactor igb_ptp_adjfine_82580 to use diff_by_scaled_ppm 2023-03-21 11:37:16 -07:00
igb.h igb: Add lock to avoid data race 2022-08-18 11:03:26 -07:00
Makefile