Skip to content

Commit fd64fd1

Browse files
Binary-Eaterkuba-moo
authored andcommitted
net/mlx5: Decouple PHC .adjtime and .adjphase implementations
When running a phase adjustment operation, the free running clock should not be modified at all. The phase control keyword is intended to trigger an internal servo on the device that will converge to the provided delta. A free running counter cannot implement phase adjustment. Fixes: 8e11a68 ("net/mlx5: Add adjphase function to support hardware-only offset control") Signed-off-by: Rahul Rameshbabu <rrameshbabu@nvidia.com> Reviewed-by: Tariq Toukan <tariqt@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Link: https://lore.kernel.org/r/20231114215846.5902-5-saeed@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent ad4d82c commit fd64fd1

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

  • drivers/net/ethernet/mellanox/mlx5/core/lib

drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,12 @@ static int mlx5_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)
384384

385385
static int mlx5_ptp_adjphase(struct ptp_clock_info *ptp, s32 delta)
386386
{
387-
return mlx5_ptp_adjtime(ptp, delta);
387+
struct mlx5_clock *clock = container_of(ptp, struct mlx5_clock, ptp_info);
388+
struct mlx5_core_dev *mdev;
389+
390+
mdev = container_of(clock, struct mlx5_core_dev, clock);
391+
392+
return mlx5_ptp_adjtime_real_time(mdev, delta);
388393
}
389394

390395
static int mlx5_ptp_freq_adj_real_time(struct mlx5_core_dev *mdev, long scaled_ppm)

0 commit comments

Comments
 (0)