net/mlx5: Add helper to set time-stamp translator on a queue
authorAya Levin <ayal@nvidia.com>
Wed, 3 Mar 2021 10:07:01 +0000 (12:07 +0200)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 26 Mar 2021 02:49:59 +0000 (19:49 -0700)
Translation method on the time-stamp is set by the capabilities. Avoid
code duplication by using a helper to set ptp_cyc2time callback on a
queue.

Signed-off-by: Aya Levin <ayal@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.h

index 27b5c7b..fb93edf 100644 (file)
@@ -183,9 +183,7 @@ static int mlx5e_ptp_alloc_txqsq(struct mlx5e_port_ptp *c, int txq_ix,
        if (!MLX5_CAP_ETH(mdev, wqe_vlan_insert))
                set_bit(MLX5E_SQ_STATE_VLAN_NEED_L2_INLINE, &sq->state);
        sq->stop_room = param->stop_room;
-       sq->ptp_cyc2time = mlx5_is_real_time_sq(mdev) ?
-                          mlx5_real_time_cyc2time :
-                          mlx5_timecounter_cyc2time;
+       sq->ptp_cyc2time = mlx5_sq_ts_translator(mdev);
 
        node = dev_to_node(mlx5_core_dma_dev(mdev));
 
index 395b441..12d0545 100644 (file)
@@ -404,9 +404,7 @@ static int mlx5e_alloc_rq(struct mlx5e_channel *c,
        rq->hw_mtu  = MLX5E_SW2HW_MTU(params, params->sw_mtu);
        rq->xdpsq   = &c->rq_xdpsq;
        rq->xsk_pool = xsk_pool;
-       rq->ptp_cyc2time = mlx5_is_real_time_rq(mdev) ?
-                          mlx5_real_time_cyc2time :
-                          mlx5_timecounter_cyc2time;
+       rq->ptp_cyc2time = mlx5_rq_ts_translator(mdev);
 
        if (rq->xsk_pool)
                rq->stats = &c->priv->channel_stats[c->ix].xskrq;
@@ -1141,9 +1139,7 @@ static int mlx5e_alloc_txqsq(struct mlx5e_channel *c,
        if (param->is_mpw)
                set_bit(MLX5E_SQ_STATE_MPWQE, &sq->state);
        sq->stop_room = param->stop_room;
-       sq->ptp_cyc2time = mlx5_is_real_time_sq(mdev) ?
-                          mlx5_real_time_cyc2time :
-                          mlx5_timecounter_cyc2time;
+       sq->ptp_cyc2time = mlx5_sq_ts_translator(mdev);
 
        param->wq.db_numa_node = cpu_to_node(c->cpu);
        err = mlx5_wq_cyc_create(mdev, &param->wq, sqc_wq, wq, &sq->wq_ctrl);
index a12c7da..ceae6bc 100644 (file)
@@ -105,4 +105,15 @@ static inline ktime_t mlx5_real_time_cyc2time(struct mlx5_clock *clock,
 }
 #endif
 
+static inline cqe_ts_to_ns mlx5_rq_ts_translator(struct mlx5_core_dev *mdev)
+{
+       return mlx5_is_real_time_rq(mdev) ? mlx5_real_time_cyc2time :
+                                           mlx5_timecounter_cyc2time;
+}
+
+static inline cqe_ts_to_ns mlx5_sq_ts_translator(struct mlx5_core_dev *mdev)
+{
+       return mlx5_is_real_time_sq(mdev) ? mlx5_real_time_cyc2time :
+                                           mlx5_timecounter_cyc2time;
+}
 #endif