aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudarsana Reddy Kalluru <skalluru@marvell.com>2019-03-20 03:26:26 -0400
committerDavid S. Miller <davem@davemloft.net>2019-03-20 14:12:50 -0400
commit1a3ca25062cfff6cf6f60dbaa01edb01f9637f08 (patch)
tree075caa501251a9754f098c1cce93006f50c157d1
parenta88381dece86a9c1043ddc0a4b07d5fa3689d298 (diff)
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: Sudarsana Reddy Kalluru <skalluru@marvell.com> Signed-off-by: Ariel Elior <aelior@marvell.com> Signed-off-by: Michal Kalderon <mkalderon@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed.h3
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_dcbx.c4
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_dev.c6
3 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/ethernet/qlogic/qed/qed.h b/drivers/net/ethernet/qlogic/qed/qed.h
index 43a57ec296fd..512186adab00 100644
--- a/drivers/net/ethernet/qlogic/qed/qed.h
+++ b/drivers/net/ethernet/qlogic/qed/qed.h
@@ -492,6 +492,9 @@ enum qed_mf_mode_bit {
492 492
493 /* Allow DSCP to TC mapping */ 493 /* Allow DSCP to TC mapping */
494 QED_MF_DSCP_TO_TC_MAP, 494 QED_MF_DSCP_TO_TC_MAP,
495
496 /* Do not insert a vlan tag with id 0 */
497 QED_MF_DONT_ADD_VLAN0_TAG,
495}; 498};
496 499
497enum qed_ufp_mode { 500enum qed_ufp_mode {
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
index 69966dfc6e3d..5c6a276f69ac 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
@@ -204,9 +204,7 @@ qed_dcbx_set_params(struct qed_dcbx_results *p_data,
204 else 204 else
205 p_data->arr[type].update = DONT_UPDATE_DCB_DSCP; 205 p_data->arr[type].update = DONT_UPDATE_DCB_DSCP;
206 206
207 /* Do not add vlan tag 0 when DCB is enabled and port in UFP/OV mode */ 207 if (test_bit(QED_MF_DONT_ADD_VLAN0_TAG, &p_hwfn->cdev->mf_bits))
208 if ((test_bit(QED_MF_8021Q_TAGGING, &p_hwfn->cdev->mf_bits) ||
209 test_bit(QED_MF_8021AD_TAGGING, &p_hwfn->cdev->mf_bits)))
210 p_data->arr[type].dont_add_vlan0 = true; 208 p_data->arr[type].dont_add_vlan0 = true;
211 209
212 /* QM reconf data */ 210 /* QM reconf data */
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index 9df8c4b3b54e..195573793352 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -3157,12 +3157,14 @@ static int qed_hw_get_nvm_info(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
3157 cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) | 3157 cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) |
3158 BIT(QED_MF_LLH_PROTO_CLSS) | 3158 BIT(QED_MF_LLH_PROTO_CLSS) |
3159 BIT(QED_MF_UFP_SPECIFIC) | 3159 BIT(QED_MF_UFP_SPECIFIC) |
3160 BIT(QED_MF_8021Q_TAGGING); 3160 BIT(QED_MF_8021Q_TAGGING) |
3161 BIT(QED_MF_DONT_ADD_VLAN0_TAG);
3161 break; 3162 break;
3162 case NVM_CFG1_GLOB_MF_MODE_BD: 3163 case NVM_CFG1_GLOB_MF_MODE_BD:
3163 cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) | 3164 cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) |
3164 BIT(QED_MF_LLH_PROTO_CLSS) | 3165 BIT(QED_MF_LLH_PROTO_CLSS) |
3165 BIT(QED_MF_8021AD_TAGGING); 3166 BIT(QED_MF_8021AD_TAGGING) |
3167 BIT(QED_MF_DONT_ADD_VLAN0_TAG);
3166 break; 3168 break;
3167 case NVM_CFG1_GLOB_MF_MODE_NPAR1_0: 3169 case NVM_CFG1_GLOB_MF_MODE_NPAR1_0:
3168 cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) | 3170 cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) |