linux/drivers/ptp
Miroslav Lichvar 361800876f ptp: add PTP_SYS_OFFSET_EXTENDED ioctl
The PTP_SYS_OFFSET ioctl, which can be used to measure the offset
between a PHC and the system clock, includes the total time that the
driver needs to read the PHC timestamp.

This typically involves reading of multiple PCI registers (sometimes in
multiple iterations) and the register that contains the lowest bits of
the timestamp is not read in the middle between the two readings of the
system clock. This asymmetry causes the measured offset to have a
significant error.

Introduce a new ioctl, driver function, and helper functions, which
allow the reading of the lowest register to be isolated from the other
readings in order to reduce the asymmetry. The ioctl returns three
timestamps for each measurement:
- system time right before reading the lowest bits of the PHC timestamp
- PHC time
- system time immediately after reading the lowest bits of the PHC
  timestamp

Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Jacob Keller <jacob.e.keller@intel.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-11-09 19:43:51 -08:00
..
Kconfig ptp: support DPAA FMan 1588 timer in ptp_qoriq 2018-06-26 22:15:14 +09:00
Makefile ptp: rework gianfar_ptp as QorIQ common PTP driver 2018-05-28 23:05:11 -04:00
ptp_chardev.c ptp: add PTP_SYS_OFFSET_EXTENDED ioctl 2018-11-09 19:43:51 -08:00
ptp_clock.c ptp: drop redundant kasprintf() to create worker name 2018-10-28 19:20:06 -07:00
ptp_dte.c ptp: ptp_dte: simplify getting .driver_data 2018-10-22 19:48:35 -07:00
ptp_ixp46x.c ptp: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
ptp_kvm.c x86/pvclock: add setter for pvclock_pvti_cpu0_va 2017-11-08 16:33:14 -05:00
ptp_pch.c ptp_pch: use helpers function for converting between ns and timespec 2018-04-27 15:22:28 -04:00
ptp_private.h the rest of drivers/*: annotate ->poll() instances 2017-11-28 11:06:58 -05:00
ptp_qoriq.c ptp_qoriq: use div_u64/div_u64_rem for 64-bit division 2018-08-06 10:43:35 -07:00
ptp_sysfs.c ptp: create "pins" together with the rest of attributes 2017-02-17 11:03:06 -05:00