sfc: Rewrite adjustment of PPS event in a clearer way
authorBen Hutchings <bhutchings@solarflare.com>
Wed, 12 Feb 2014 18:58:46 +0000 (18:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Feb 2014 22:53:34 +0000 (17:53 -0500)
commit92d8f766ecce190dc2aa5d1aa9a5f5381e831641
tree667ccab328087bc603b872f2dd4b8f1e9d4f6f4f
parentce320f44d677549a29ae8d6ae79e66d1c997f87a
sfc: Rewrite adjustment of PPS event in a clearer way

There is substantial latency in generation and handling of PPS events
from the NIC, which we have to correct for before passing a host
timestamp to the PPS subsystem.  We compare clocks with the MC,
giving us two offsets to subtract from the timestamp generated by
pps_get_ts():

(a) Time from the last good sync (where we got host and NIC timestamps
    for nearly the same instant) to the time we called pps_get_ts()
(b) Time from NIC top of second to the last good sync

We currently calculate (a) + (b) in a quite confusing way.
Instead, calculate (a) completely, then add (b) to it.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Shradha Shah <sshah@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ptp.c