Re: [PATCH net v3] net: ti: icssg-prueth: Fix 1 PPS sync

From: Malladi, Meghana
Date: Tue Nov 05 2024 - 07:02:07 EST




On 11/5/2024 8:20 AM, Jakub Kicinski wrote:
On Mon, 4 Nov 2024 16:55:46 +0530 Malladi, Meghana wrote:
On 11/1/2024 7:29 AM, Jakub Kicinski wrote:
On Mon, 28 Oct 2024 16:40:52 +0530 Meghana Malladi wrote:
The first PPS latch time needs to be calculated by the driver
(in rounded off seconds) and configured as the start time
offset for the cycle. After synchronizing two PTP clocks
running as master/slave, missing this would cause master
and slave to start immediately with some milliseconds
drift which causes the PPS signal to never synchronize with
the PTP master.

You're reading a 64b value in chunks, is it not possible that it'd wrap
in between reads? This can be usually detected by reading high twice and
making sure it didn't change.

Please fix or explain in the commit message why this is not a problem..
Yes I agree that there might be a wrap if the read isn't atomic. As
suggested by Andrew I am currently not using custom read where I can
implement the logic you suggested

Right but I think Andrew was commenting on a patch which contained pure
re-implementation of read low / hi with no extra bells or whistles.

(reading high twice and making sure if
didn't change). Can you share me some references where this logic is
implemented in the kernel, so I can directly use that instead of writing
custom functions.

I think you need to write a custom one. Example:
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/drivers/net/ethernet/meta/fbnic/fbnic_time.c#n40
Ok thank you. I will add custom function for this and update the patch.