pps/ptp: Allow PHC devices to adjust PPS events for known delay

Initial version by Stuart Hodgson <smhodgson@solarflare.com>

Some PHC device drivers may deliver PPS events with a significant
and variable delay, but still be able to measure precisely what
that delay is.

Add a pps_sub_ts() function for subtracting a delay from the
timestamp(s) in a PPS event, and a PTP event type (PTP_CLOCK_PPSUSR)
for which the caller provides a complete PPS event.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
Ben Hutchings 2012-09-03 11:34:58 +01:00
parent ef2c7d7b59
commit 220a60a425
3 changed files with 22 additions and 2 deletions

View file

@ -116,5 +116,14 @@ static inline void pps_get_ts(struct pps_event_time *ts)
#endif /* CONFIG_NTP_PPS */
/* Subtract known time delay from PPS event time(s) */
static inline void pps_sub_ts(struct pps_event_time *ts, struct timespec delta)
{
ts->ts_real = timespec_sub(ts->ts_real, delta);
#ifdef CONFIG_NTP_PPS
ts->ts_raw = timespec_sub(ts->ts_raw, delta);
#endif
}
#endif /* LINUX_PPS_KERNEL_H */