All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saeed Mahameed <saeed@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>
Cc: Saeed Mahameed <saeedm@nvidia.com>,
	netdev@vger.kernel.org, Tariq Toukan <tariqt@nvidia.com>,
	Rahul Rameshbabu <rrameshbabu@nvidia.com>
Subject: [net-next 11/14] net/mlx5: Convert scaled ppm values outside the s32 range for PHC frequency adjustments
Date: Mon, 13 Nov 2023 15:00:48 -0800	[thread overview]
Message-ID: <20231113230051.58229-12-saeed@kernel.org> (raw)
In-Reply-To: <20231113230051.58229-1-saeed@kernel.org>

From: Rahul Rameshbabu <rrameshbabu@nvidia.com>

Represent scaled ppm as ppb to the device when the value in scaled ppm is
not representable as a 32-bit signed integer. mlx5 devices only support a
32-bit field for the frequency adjustment value in units of either scaled
ppm or ppb.

Since mlx5 devices only support a 32-bit field for the frequency adjustment
value independent of unit used, limit the maximum frequency adjustment to
S32_MAX ppb.

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 | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
index ca7691930f6b..1daa4b019513 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
@@ -393,10 +393,12 @@ static int mlx5_ptp_freq_adj_real_time(struct mlx5_core_dev *mdev, long scaled_p
 
 	MLX5_SET(mtutc_reg, in, operation, MLX5_MTUTC_OPERATION_ADJUST_FREQ_UTC);
 
-	if (MLX5_CAP_MCAM_FEATURE(mdev, mtutc_freq_adj_units)) {
+	if (MLX5_CAP_MCAM_FEATURE(mdev, mtutc_freq_adj_units) &&
+	    scaled_ppm <= S32_MAX && scaled_ppm >= S32_MIN) {
+		/* HW scaled_ppm support on mlx5 devices only supports a 32-bit value */
 		MLX5_SET(mtutc_reg, in, freq_adj_units,
 			 MLX5_MTUTC_FREQ_ADJ_UNITS_SCALED_PPM);
-		MLX5_SET(mtutc_reg, in, freq_adjustment, scaled_ppm);
+		MLX5_SET(mtutc_reg, in, freq_adjustment, (s32)scaled_ppm);
 	} else {
 		MLX5_SET(mtutc_reg, in, freq_adj_units, MLX5_MTUTC_FREQ_ADJ_UNITS_PPB);
 		MLX5_SET(mtutc_reg, in, freq_adjustment, scaled_ppm_to_ppb(scaled_ppm));
-- 
2.41.0


  parent reply	other threads:[~2023-11-13 23:01 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-13 23:00 [pull request][net-next 00/14] mlx5 updates 2023-11-13 Saeed Mahameed
2023-11-13 23:00 ` [net-next 01/14] net/mlx5: print change on SW reset semaphore returns busy Saeed Mahameed
2023-11-13 23:00 ` [net-next 02/14] net/mlx5: Allow sync reset flow when BF MGT interface device is present Saeed Mahameed
2023-11-13 23:00 ` [net-next 03/14] net/mlx5e: Some cleanup in mlx5e_tc_stats_matchall() Saeed Mahameed
2023-11-13 23:00 ` [net-next 04/14] net/mlx5: Annotate struct mlx5_fc_bulk with __counted_by Saeed Mahameed
2023-11-13 23:00 ` [net-next 05/14] net/mlx5: Annotate struct mlx5_flow_handle " Saeed Mahameed
2023-11-13 23:00 ` [net-next 06/14] net/mlx5: simplify mlx5_set_driver_version string assignments Saeed Mahameed
2023-11-13 23:00 ` [net-next 07/14] net/mlx5e: Access array with enum values instead of magic numbers Saeed Mahameed
2023-11-13 23:00 ` [net-next 08/14] net/mlx5e: Introduce lost_cqe statistic counter for PTP Tx port timestamping CQ Saeed Mahameed
2023-11-14 15:22   ` Vadim Fedorenko
2023-11-16 19:51     ` Rahul Rameshbabu
2023-11-18 19:00       ` Vadim Fedorenko
2023-11-13 23:00 ` [net-next 09/14] net/mlx5: Refactor real time clock operation checks for PHC Saeed Mahameed
2023-11-13 23:00 ` [net-next 10/14] net/mlx5: Initialize clock->ptp_info inside mlx5_init_timer_clock Saeed Mahameed
2023-11-13 23:00 ` Saeed Mahameed [this message]
2023-11-13 23:00 ` [net-next 12/14] net/mlx5: Query maximum frequency adjustment of the PTP hardware clock Saeed Mahameed
2023-11-13 23:00 ` [net-next 13/14] net/mlx5e: Add local loopback counter to vport rep stats Saeed Mahameed
2023-11-13 23:00 ` [net-next 14/14] net/mlx5e: Remove early assignment to netdev->features Saeed Mahameed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231113230051.58229-12-saeed@kernel.org \
    --to=saeed@kernel.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rrameshbabu@nvidia.com \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.