net/mlx5: Initialize clock->ptp_info inside mlx5_init_timer_clock
authorRahul Rameshbabu <rrameshbabu@nvidia.com>
Mon, 17 Jul 2023 19:10:42 +0000 (12:10 -0700)
committerSaeed Mahameed <saeedm@nvidia.com>
Wed, 15 Nov 2023 19:34:30 +0000 (11:34 -0800)
Configure the PHC inside mlx5_init_timer_clock for calling mlx5_ptp_settime
later in the function. Would previously use mlx5_ptp_clock_info instance to
invoke mlx5_ptp_settime to set the NIC real-time clock to be synchronized
with the host system clock.

Signed-off-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c

index c4f4d1c6346347d00a80da79d7b0daa77daccf93..ca7691930f6b0ebcf0ec67c6edb9767f73b02c6d 100644 (file)
@@ -1002,10 +1002,12 @@ static void mlx5_init_timer_clock(struct mlx5_core_dev *mdev)
 {
        struct mlx5_clock *clock = &mdev->clock;
 
+       /* Configure the PHC */
+       clock->ptp_info = mlx5_ptp_clock_info;
+
        mlx5_timecounter_init(mdev);
        mlx5_init_clock_info(mdev);
        mlx5_init_overflow_period(clock);
-       clock->ptp_info = mlx5_ptp_clock_info;
 
        if (mlx5_real_time_mode(mdev)) {
                struct timespec64 ts;
@@ -1036,11 +1038,10 @@ void mlx5_init_clock(struct mlx5_core_dev *mdev)
        }
 
        seqlock_init(&clock->lock);
-       mlx5_init_timer_clock(mdev);
        INIT_WORK(&clock->pps_info.out_work, mlx5_pps_out);
 
-       /* Configure the PHC */
-       clock->ptp_info = mlx5_ptp_clock_info;
+       /* Initialize the device clock */
+       mlx5_init_timer_clock(mdev);
 
        /* Initialize 1PPS data structures */
        mlx5_init_pps(mdev);