mlxsw: spectrum_ptp: Initialize the clock to zero as part of initialization
authorAmit Cohen <amcohen@nvidia.com>
Sun, 24 Jul 2022 08:03:24 +0000 (11:03 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Jul 2022 12:58:55 +0000 (13:58 +0100)
As lately recommended in the mailing list[1], set the clock to zero time as
part of initialization.

The idea is that when the clock reads 'Jan 1, 1970', then it is clearly
wrong and user will not mistakenly think that the clock is set correctly.
If as part of initialization, the driver sets the clock, user might see
correct date and time (maybe with a small shift) and assume that there
is no need to sync the clock.

Fix the existing code of Spectrum-1 to set the 'timecounter' to zero.

[1]:
https://lore.kernel.org/netdev/20220201191041.GB7009@hoboy.vegasvil.org/

Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c

index 39586673b3951bf83315f9028e75cd6e7adbcfa2..eab3d63ad2ac2dcdcfba20d5849b8893cd1f6314 100644 (file)
@@ -267,8 +267,7 @@ mlxsw_sp1_ptp_clock_init(struct mlxsw_sp *mlxsw_sp, struct device *dev)
        clock->cycles.mask = CLOCKSOURCE_MASK(MLXSW_SP1_PTP_CLOCK_MASK);
        clock->core = mlxsw_sp->core;
 
-       timecounter_init(&clock->tc, &clock->cycles,
-                        ktime_to_ns(ktime_get_real()));
+       timecounter_init(&clock->tc, &clock->cycles, 0);
 
        /* Calculate period in seconds to call the overflow watchdog - to make
         * sure counter is checked at least twice every wrap around.