linux-stable/drivers/ptp
Jonathan Lemon 90f8f4c0e3 ptp: ocp: Add ptp_ocp_adjtime_coarse for large adjustments
In ("ptp: ocp: Have FPGA fold in ns adjustment for adjtime."), the
ns adjustment was written to the FPGA register, so the clock could
accurately perform adjustments.

However, the adjtime() call passes in a s64, while the clock adjustment
registers use a s32.  When trying to perform adjustments with a large
value (37 sec), things fail.

Examine the incoming delta, and if larger than 1 sec, use the original
(coarse) adjustment method.  If smaller than 1 sec, then allow the
FPGA to fold in the changes over a 1 second window.

Fixes: 6d59d4fa17 ("ptp: ocp: Have FPGA fold in ns adjustment for adjtime.")
Signed-off-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Link: https://lore.kernel.org/r/20220228203957.367371-1-jonathan.lemon@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-03-02 09:51:21 -08:00
..
Kconfig ptp: ocp: add COMMON_CLK dependency 2021-09-20 11:11:54 +01:00
Makefile ptp: add ptp virtual clock driver framework 2021-07-01 13:08:18 -07:00
ptp_chardev.c ptp: only allow phase values lower than 1 period 2020-08-05 12:06:44 -07:00
ptp_clock.c ptp: fix code indentation issues 2021-10-28 14:42:20 +01:00
ptp_clockmatrix.c ptp: ptp_clockmatrix: repair non-kernel-doc comment 2021-11-12 19:58:10 -08:00
ptp_clockmatrix.h ptp: clockmatrix: use rsmu driver to access i2c/spi bus 2021-09-27 12:16:48 +01:00
ptp_dte.c
ptp_idt82p33.c ptp: idt82p33: optimize _idt82p33_adjfine 2020-11-07 13:10:31 -08:00
ptp_idt82p33.h ptp: idt82p33: use i2c_master_send for bus write 2020-11-07 13:10:27 -08:00
ptp_ines.c net_tstamp: add new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX 2021-12-14 12:28:24 +00:00
ptp_kvm_arm.c ptp: arm/arm64: Enable ptp_kvm for arm/arm64 2021-04-07 16:33:20 +01:00
ptp_kvm_common.c ptp: Don't print an error if ptp_kvm is not supported 2021-04-20 17:17:55 +01:00
ptp_kvm_x86.c ptp: fix error print of ptp_kvm on X86_64 platform 2021-10-15 11:19:25 +01:00
ptp_ocp.c ptp: ocp: Add ptp_ocp_adjtime_coarse for large adjustments 2022-03-02 09:51:21 -08:00
ptp_pch.c ptp_pch: Load module automatically if ID matches 2021-10-02 16:13:00 +01:00
ptp_private.h ptp: add kernel API ptp_get_vclocks_index() 2021-07-01 13:08:18 -07:00
ptp_qoriq.c ptp_qoriq: fix overflow in ptp_qoriq_adjfine() u64 calcalation 2021-03-24 12:10:03 -07:00
ptp_qoriq_debugfs.c
ptp_sysfs.c ptp: Fix possible memory leak caused by invalid cast 2021-08-08 12:56:41 +01:00
ptp_vclock.c net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets 2022-01-06 12:18:08 +00:00
ptp_vmw.c ptp: add VMware virtual PTP clock driver 2020-03-05 17:25:07 -08:00