mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2026-01-06 19:02:48 +00:00
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:
|
||
|---|---|---|
| .. | ||
| e1000_82575.c | ||
| e1000_82575.h | ||
| e1000_defines.h | ||
| e1000_hw.h | ||
| e1000_i210.c | ||
| e1000_i210.h | ||
| e1000_mac.c | ||
| e1000_mac.h | ||
| e1000_mbx.c | ||
| e1000_mbx.h | ||
| e1000_nvm.c | ||
| e1000_nvm.h | ||
| e1000_phy.c | ||
| e1000_phy.h | ||
| e1000_regs.h | ||
| igb_ethtool.c | ||
| igb_hwmon.c | ||
| igb_main.c | ||
| igb_ptp.c | ||
| igb.h | ||
| Makefile | ||