diff options
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en/params.c | 16 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en/params.h | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 12 | 
4 files changed, 17 insertions, 14 deletions
| diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index 5fd82c67b6ab..bb5da42edc23 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -130,7 +130,7 @@ struct page_pool;  #define MLX5E_PARAMS_MINIMUM_LOG_RQ_SIZE_MPW            0x2  #define MLX5E_DEFAULT_LRO_TIMEOUT                       32 -#define MLX5E_LRO_TIMEOUT_ARR_SIZE                      4 +#define MLX5E_DEFAULT_SHAMPO_TIMEOUT			1024  #define MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_USEC      0x10  #define MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_USEC_FROM_CQE 0x3 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c index 6c9ccccca81e..64b62ed17b07 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c @@ -928,7 +928,7 @@ int mlx5e_build_rq_param(struct mlx5_core_dev *mdev,  			MLX5_SET(wq, wq, log_headers_entry_size,  				 mlx5e_shampo_get_log_hd_entry_size(mdev, params));  			MLX5_SET(rqc, rqc, reservation_timeout, -				 params->packet_merge.timeout); +				 mlx5e_choose_lro_timeout(mdev, MLX5E_DEFAULT_SHAMPO_TIMEOUT));  			MLX5_SET(rqc, rqc, shampo_match_criteria_type,  				 params->packet_merge.shampo.match_criteria_type);  			MLX5_SET(rqc, rqc, shampo_no_match_alignment_granularity, @@ -1087,6 +1087,20 @@ static u32 mlx5e_shampo_icosq_sz(struct mlx5_core_dev *mdev,  	return wqebbs;  } +#define MLX5E_LRO_TIMEOUT_ARR_SIZE                      4 + +u32 mlx5e_choose_lro_timeout(struct mlx5_core_dev *mdev, u32 wanted_timeout) +{ +	int i; + +	/* The supported periods are organized in ascending order */ +	for (i = 0; i < MLX5E_LRO_TIMEOUT_ARR_SIZE - 1; i++) +		if (MLX5_CAP_ETH(mdev, lro_timer_supported_periods[i]) >= wanted_timeout) +			break; + +	return MLX5_CAP_ETH(mdev, lro_timer_supported_periods[i]); +} +  static u32 mlx5e_mpwrq_total_umr_wqebbs(struct mlx5_core_dev *mdev,  					struct mlx5e_params *params,  					struct mlx5e_xsk_param *xsk) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h index 749b2ec0436e..3f8986f9d862 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h @@ -108,6 +108,7 @@ u32 mlx5e_shampo_hd_per_wqe(struct mlx5_core_dev *mdev,  u32 mlx5e_shampo_hd_per_wq(struct mlx5_core_dev *mdev,  			   struct mlx5e_params *params,  			   struct mlx5e_rq_param *rq_param); +u32 mlx5e_choose_lro_timeout(struct mlx5_core_dev *mdev, u32 wanted_timeout);  u8 mlx5e_mpwqe_get_log_stride_size(struct mlx5_core_dev *mdev,  				   struct mlx5e_params *params,  				   struct mlx5e_xsk_param *xsk); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 6f686fabed44..f04decca39f2 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -5167,18 +5167,6 @@ const struct net_device_ops mlx5e_netdev_ops = {  #endif  }; -static u32 mlx5e_choose_lro_timeout(struct mlx5_core_dev *mdev, u32 wanted_timeout) -{ -	int i; - -	/* The supported periods are organized in ascending order */ -	for (i = 0; i < MLX5E_LRO_TIMEOUT_ARR_SIZE - 1; i++) -		if (MLX5_CAP_ETH(mdev, lro_timer_supported_periods[i]) >= wanted_timeout) -			break; - -	return MLX5_CAP_ETH(mdev, lro_timer_supported_periods[i]); -} -  void mlx5e_build_nic_params(struct mlx5e_priv *priv, struct mlx5e_xsk *xsk, u16 mtu)  {  	struct mlx5e_params *params = &priv->channels.params; | 
