Commit 2313e69c authored by Przemyslaw Patynowski's avatar Przemyslaw Patynowski Committed by Tony Nguyen

i40e: Refactor tc mqprio checks

Refactor bitwise checks for whether TC MQPRIO is enabled
into one single method for improved readability.
Signed-off-by: default avatarPrzemyslaw Patynowski <przemyslawx.patynowski@intel.com>
Signed-off-by: default avatarJan Sokolowski <jan.sokolowski@intel.com>
Tested-by: default avatarBharathi Sreenivas <bharathi.sreenivas@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent 949d6b40
...@@ -1292,4 +1292,18 @@ int i40e_add_del_cloud_filter(struct i40e_vsi *vsi, ...@@ -1292,4 +1292,18 @@ int i40e_add_del_cloud_filter(struct i40e_vsi *vsi,
int i40e_add_del_cloud_filter_big_buf(struct i40e_vsi *vsi, int i40e_add_del_cloud_filter_big_buf(struct i40e_vsi *vsi,
struct i40e_cloud_filter *filter, struct i40e_cloud_filter *filter,
bool add); bool add);
/**
* i40e_is_tc_mqprio_enabled - check if TC MQPRIO is enabled on PF
* @pf: pointer to a pf.
*
* Check and return value of flag I40E_FLAG_TC_MQPRIO.
*
* Return: I40E_FLAG_TC_MQPRIO set state.
**/
static inline u32 i40e_is_tc_mqprio_enabled(struct i40e_pf *pf)
{
return pf->flags & I40E_FLAG_TC_MQPRIO;
}
#endif /* _I40E_H_ */ #endif /* _I40E_H_ */
...@@ -5021,7 +5021,7 @@ static int i40e_set_channels(struct net_device *dev, ...@@ -5021,7 +5021,7 @@ static int i40e_set_channels(struct net_device *dev,
/* We do not support setting channels via ethtool when TCs are /* We do not support setting channels via ethtool when TCs are
* configured through mqprio * configured through mqprio
*/ */
if (pf->flags & I40E_FLAG_TC_MQPRIO) if (i40e_is_tc_mqprio_enabled(pf))
return -EINVAL; return -EINVAL;
/* verify they are not requesting separate vectors */ /* verify they are not requesting separate vectors */
......
...@@ -5456,7 +5456,7 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf) ...@@ -5456,7 +5456,7 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf)
u8 num_tc = 0; u8 num_tc = 0;
struct i40e_dcbx_config *dcbcfg = &hw->local_dcbx_config; struct i40e_dcbx_config *dcbcfg = &hw->local_dcbx_config;
if (pf->flags & I40E_FLAG_TC_MQPRIO) if (i40e_is_tc_mqprio_enabled(pf))
return pf->vsi[pf->lan_vsi]->mqprio_qopt.qopt.num_tc; return pf->vsi[pf->lan_vsi]->mqprio_qopt.qopt.num_tc;
/* If neither MQPRIO nor DCB is enabled, then always use single TC */ /* If neither MQPRIO nor DCB is enabled, then always use single TC */
...@@ -5488,7 +5488,7 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf) ...@@ -5488,7 +5488,7 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf)
**/ **/
static u8 i40e_pf_get_tc_map(struct i40e_pf *pf) static u8 i40e_pf_get_tc_map(struct i40e_pf *pf)
{ {
if (pf->flags & I40E_FLAG_TC_MQPRIO) if (i40e_is_tc_mqprio_enabled(pf))
return i40e_mqprio_get_enabled_tc(pf); return i40e_mqprio_get_enabled_tc(pf);
/* If neither MQPRIO nor DCB is enabled for this PF then just return /* If neither MQPRIO nor DCB is enabled for this PF then just return
...@@ -5585,7 +5585,7 @@ static int i40e_vsi_configure_bw_alloc(struct i40e_vsi *vsi, u8 enabled_tc, ...@@ -5585,7 +5585,7 @@ static int i40e_vsi_configure_bw_alloc(struct i40e_vsi *vsi, u8 enabled_tc,
int i; int i;
/* There is no need to reset BW when mqprio mode is on. */ /* There is no need to reset BW when mqprio mode is on. */
if (pf->flags & I40E_FLAG_TC_MQPRIO) if (i40e_is_tc_mqprio_enabled(pf))
return 0; return 0;
if (!vsi->mqprio_qopt.qopt.hw && !(pf->flags & I40E_FLAG_DCB_ENABLED)) { if (!vsi->mqprio_qopt.qopt.hw && !(pf->flags & I40E_FLAG_DCB_ENABLED)) {
ret = i40e_set_bw_limit(vsi, vsi->seid, 0); ret = i40e_set_bw_limit(vsi, vsi->seid, 0);
...@@ -5657,7 +5657,7 @@ static void i40e_vsi_config_netdev_tc(struct i40e_vsi *vsi, u8 enabled_tc) ...@@ -5657,7 +5657,7 @@ static void i40e_vsi_config_netdev_tc(struct i40e_vsi *vsi, u8 enabled_tc)
vsi->tc_config.tc_info[i].qoffset); vsi->tc_config.tc_info[i].qoffset);
} }
if (pf->flags & I40E_FLAG_TC_MQPRIO) if (i40e_is_tc_mqprio_enabled(pf))
return; return;
/* Assign UP2TC map for the VSI */ /* Assign UP2TC map for the VSI */
...@@ -5818,7 +5818,7 @@ static int i40e_vsi_config_tc(struct i40e_vsi *vsi, u8 enabled_tc) ...@@ -5818,7 +5818,7 @@ static int i40e_vsi_config_tc(struct i40e_vsi *vsi, u8 enabled_tc)
ctxt.vf_num = 0; ctxt.vf_num = 0;
ctxt.uplink_seid = vsi->uplink_seid; ctxt.uplink_seid = vsi->uplink_seid;
ctxt.info = vsi->info; ctxt.info = vsi->info;
if (vsi->back->flags & I40E_FLAG_TC_MQPRIO) { if (i40e_is_tc_mqprio_enabled(pf)) {
ret = i40e_vsi_setup_queue_map_mqprio(vsi, &ctxt, enabled_tc); ret = i40e_vsi_setup_queue_map_mqprio(vsi, &ctxt, enabled_tc);
if (ret) if (ret)
goto out; goto out;
...@@ -6542,7 +6542,7 @@ int i40e_create_queue_channel(struct i40e_vsi *vsi, ...@@ -6542,7 +6542,7 @@ int i40e_create_queue_channel(struct i40e_vsi *vsi,
pf->flags |= I40E_FLAG_VEB_MODE_ENABLED; pf->flags |= I40E_FLAG_VEB_MODE_ENABLED;
if (vsi->type == I40E_VSI_MAIN) { if (vsi->type == I40E_VSI_MAIN) {
if (pf->flags & I40E_FLAG_TC_MQPRIO) if (i40e_is_tc_mqprio_enabled(pf))
i40e_do_reset(pf, I40E_PF_RESET_FLAG, true); i40e_do_reset(pf, I40E_PF_RESET_FLAG, true);
else else
i40e_do_reset_safe(pf, I40E_PF_RESET_FLAG); i40e_do_reset_safe(pf, I40E_PF_RESET_FLAG);
...@@ -7936,7 +7936,7 @@ static void *i40e_fwd_add(struct net_device *netdev, struct net_device *vdev) ...@@ -7936,7 +7936,7 @@ static void *i40e_fwd_add(struct net_device *netdev, struct net_device *vdev)
netdev_info(netdev, "Macvlans are not supported when DCB is enabled\n"); netdev_info(netdev, "Macvlans are not supported when DCB is enabled\n");
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
} }
if ((pf->flags & I40E_FLAG_TC_MQPRIO)) { if (i40e_is_tc_mqprio_enabled(pf)) {
netdev_info(netdev, "Macvlans are not supported when HW TC offload is on\n"); netdev_info(netdev, "Macvlans are not supported when HW TC offload is on\n");
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
} }
...@@ -8189,7 +8189,7 @@ static int i40e_setup_tc(struct net_device *netdev, void *type_data) ...@@ -8189,7 +8189,7 @@ static int i40e_setup_tc(struct net_device *netdev, void *type_data)
/* Quiesce VSI queues */ /* Quiesce VSI queues */
i40e_quiesce_vsi(vsi); i40e_quiesce_vsi(vsi);
if (!hw && !(pf->flags & I40E_FLAG_TC_MQPRIO)) if (!hw && !i40e_is_tc_mqprio_enabled(pf))
i40e_remove_queue_channels(vsi); i40e_remove_queue_channels(vsi);
/* Configure VSI for enabled TCs */ /* Configure VSI for enabled TCs */
...@@ -8213,7 +8213,7 @@ static int i40e_setup_tc(struct net_device *netdev, void *type_data) ...@@ -8213,7 +8213,7 @@ static int i40e_setup_tc(struct net_device *netdev, void *type_data)
"Setup channel (id:%u) utilizing num_queues %d\n", "Setup channel (id:%u) utilizing num_queues %d\n",
vsi->seid, vsi->tc_config.tc_info[0].qcount); vsi->seid, vsi->tc_config.tc_info[0].qcount);
if (pf->flags & I40E_FLAG_TC_MQPRIO) { if (i40e_is_tc_mqprio_enabled(pf)) {
if (vsi->mqprio_qopt.max_rate[0]) { if (vsi->mqprio_qopt.max_rate[0]) {
u64 max_tx_rate = vsi->mqprio_qopt.max_rate[0]; u64 max_tx_rate = vsi->mqprio_qopt.max_rate[0];
...@@ -10867,7 +10867,7 @@ static void i40e_rebuild(struct i40e_pf *pf, bool reinit, bool lock_acquired) ...@@ -10867,7 +10867,7 @@ static void i40e_rebuild(struct i40e_pf *pf, bool reinit, bool lock_acquired)
* unless I40E_FLAG_TC_MQPRIO was enabled or DCB * unless I40E_FLAG_TC_MQPRIO was enabled or DCB
* is not supported with new link speed * is not supported with new link speed
*/ */
if (pf->flags & I40E_FLAG_TC_MQPRIO) { if (i40e_is_tc_mqprio_enabled(pf)) {
i40e_aq_set_dcb_parameters(hw, false, NULL); i40e_aq_set_dcb_parameters(hw, false, NULL);
} else { } else {
if (I40E_IS_X710TL_DEVICE(hw->device_id) && if (I40E_IS_X710TL_DEVICE(hw->device_id) &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment