Commit 1a3ca250 authored by Sudarsana Reddy Kalluru's avatar Sudarsana Reddy Kalluru Committed by David S. Miller

qed: Define new MF bit for no_vlan config

The patch introduces a new Multi-Function bit for cases where firmware
shouldn't perform the insertion of vlan-0 tag. The new bit is defined to
abstract the implementation from the actual MF mode.
Signed-off-by: default avatarSudarsana Reddy Kalluru <skalluru@marvell.com>
Signed-off-by: default avatarAriel Elior <aelior@marvell.com>
Signed-off-by: default avatarMichal Kalderon <mkalderon@marvell.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a88381de
...@@ -492,6 +492,9 @@ enum qed_mf_mode_bit { ...@@ -492,6 +492,9 @@ enum qed_mf_mode_bit {
/* Allow DSCP to TC mapping */ /* Allow DSCP to TC mapping */
QED_MF_DSCP_TO_TC_MAP, QED_MF_DSCP_TO_TC_MAP,
/* Do not insert a vlan tag with id 0 */
QED_MF_DONT_ADD_VLAN0_TAG,
}; };
enum qed_ufp_mode { enum qed_ufp_mode {
......
...@@ -204,9 +204,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data, ...@@ -204,9 +204,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data,
else else
p_data->arr[type].update = DONT_UPDATE_DCB_DSCP; p_data->arr[type].update = DONT_UPDATE_DCB_DSCP;
/* Do not add vlan tag 0 when DCB is enabled and port in UFP/OV mode */ if (test_bit(QED_MF_DONT_ADD_VLAN0_TAG, &p_hwfn->cdev->mf_bits))
if ((test_bit(QED_MF_8021Q_TAGGING, &p_hwfn->cdev->mf_bits) ||
test_bit(QED_MF_8021AD_TAGGING, &p_hwfn->cdev->mf_bits)))
p_data->arr[type].dont_add_vlan0 = true; p_data->arr[type].dont_add_vlan0 = true;
/* QM reconf data */ /* QM reconf data */
......
...@@ -3157,12 +3157,14 @@ static int qed_hw_get_nvm_info(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) ...@@ -3157,12 +3157,14 @@ static int qed_hw_get_nvm_info(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) | cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) |
BIT(QED_MF_LLH_PROTO_CLSS) | BIT(QED_MF_LLH_PROTO_CLSS) |
BIT(QED_MF_UFP_SPECIFIC) | BIT(QED_MF_UFP_SPECIFIC) |
BIT(QED_MF_8021Q_TAGGING); BIT(QED_MF_8021Q_TAGGING) |
BIT(QED_MF_DONT_ADD_VLAN0_TAG);
break; break;
case NVM_CFG1_GLOB_MF_MODE_BD: case NVM_CFG1_GLOB_MF_MODE_BD:
cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) | cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) |
BIT(QED_MF_LLH_PROTO_CLSS) | BIT(QED_MF_LLH_PROTO_CLSS) |
BIT(QED_MF_8021AD_TAGGING); BIT(QED_MF_8021AD_TAGGING) |
BIT(QED_MF_DONT_ADD_VLAN0_TAG);
break; break;
case NVM_CFG1_GLOB_MF_MODE_NPAR1_0: case NVM_CFG1_GLOB_MF_MODE_NPAR1_0:
cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) | cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) |
......
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