|
@@ -89,8 +89,8 @@ static void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type)
|
|
|
MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE_MPW;
|
|
|
priv->params.mpwqe_log_stride_sz =
|
|
|
MLX5E_GET_PFLAG(priv, MLX5E_PFLAG_RX_CQE_COMPRESS) ?
|
|
|
- MLX5_MPWRQ_LOG_STRIDE_SIZE_CQE_COMPRESS :
|
|
|
- MLX5_MPWRQ_LOG_STRIDE_SIZE;
|
|
|
+ MLX5_MPWRQ_CQE_CMPRS_LOG_STRIDE_SZ(priv->mdev) :
|
|
|
+ MLX5_MPWRQ_DEF_LOG_STRIDE_SZ(priv->mdev);
|
|
|
priv->params.mpwqe_log_num_strides = MLX5_MPWRQ_LOG_WQE_SZ -
|
|
|
priv->params.mpwqe_log_stride_sz;
|
|
|
break;
|
|
@@ -1016,6 +1016,7 @@ static int mlx5e_create_sq(struct mlx5e_channel *c,
|
|
|
if (err)
|
|
|
return err;
|
|
|
|
|
|
+ sq->uar_map = sq->bfreg.map;
|
|
|
param->wq.db_numa_node = cpu_to_node(c->cpu);
|
|
|
|
|
|
err = mlx5_wq_cyc_create(mdev, ¶m->wq, sqc_wq, &sq->wq,
|
|
@@ -1029,9 +1030,7 @@ static int mlx5e_create_sq(struct mlx5e_channel *c,
|
|
|
|
|
|
sq->bf_buf_size = (1 << MLX5_CAP_GEN(mdev, log_bf_reg_size)) / 2;
|
|
|
sq->max_inline = param->max_inline;
|
|
|
- sq->min_inline_mode =
|
|
|
- MLX5_CAP_ETH(mdev, wqe_inline_mode) == MLX5_CAP_INLINE_MODE_VPORT_CONTEXT ?
|
|
|
- param->min_inline_mode : 0;
|
|
|
+ sq->min_inline_mode = param->min_inline_mode;
|
|
|
|
|
|
err = mlx5e_alloc_sq_db(sq, cpu_to_node(c->cpu));
|
|
|
if (err)
|
|
@@ -1095,7 +1094,10 @@ static int mlx5e_enable_sq(struct mlx5e_sq *sq, struct mlx5e_sq_param *param)
|
|
|
MLX5_SET(sqc, sqc, tis_num_0, param->type == MLX5E_SQ_ICO ?
|
|
|
0 : priv->tisn[sq->tc]);
|
|
|
MLX5_SET(sqc, sqc, cqn, sq->cq.mcq.cqn);
|
|
|
- MLX5_SET(sqc, sqc, min_wqe_inline_mode, sq->min_inline_mode);
|
|
|
+
|
|
|
+ if (MLX5_CAP_ETH(mdev, wqe_inline_mode) == MLX5_CAP_INLINE_MODE_VPORT_CONTEXT)
|
|
|
+ MLX5_SET(sqc, sqc, min_wqe_inline_mode, sq->min_inline_mode);
|
|
|
+
|
|
|
MLX5_SET(sqc, sqc, state, MLX5_SQC_STATE_RST);
|
|
|
MLX5_SET(sqc, sqc, tis_lst_sz, param->type == MLX5E_SQ_ICO ? 0 : 1);
|
|
|
|
|
@@ -1805,8 +1807,7 @@ static void mlx5e_build_xdpsq_param(struct mlx5e_priv *priv,
|
|
|
MLX5_SET(wq, wq, log_wq_sz, priv->params.log_sq_size);
|
|
|
|
|
|
param->max_inline = priv->params.tx_max_inline;
|
|
|
- /* FOR XDP SQs will support only L2 inline mode */
|
|
|
- param->min_inline_mode = MLX5_INLINE_MODE_NONE;
|
|
|
+ param->min_inline_mode = priv->params.tx_min_inline_mode;
|
|
|
param->type = MLX5E_SQ_XDP;
|
|
|
}
|
|
|
|
|
@@ -3533,6 +3534,10 @@ static void mlx5e_build_nic_netdev_priv(struct mlx5_core_dev *mdev,
|
|
|
MLX5E_PARAMS_DEFAULT_TX_CQ_MODERATION_PKTS;
|
|
|
priv->params.tx_max_inline = mlx5e_get_max_inline_cap(mdev);
|
|
|
mlx5_query_min_inline(mdev, &priv->params.tx_min_inline_mode);
|
|
|
+ if (priv->params.tx_min_inline_mode == MLX5_INLINE_MODE_NONE &&
|
|
|
+ !MLX5_CAP_ETH(mdev, wqe_vlan_insert))
|
|
|
+ priv->params.tx_min_inline_mode = MLX5_INLINE_MODE_L2;
|
|
|
+
|
|
|
priv->params.num_tc = 1;
|
|
|
priv->params.rss_hfunc = ETH_RSS_HASH_XOR;
|
|
|
|