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 <skall...@marvell.com>
Signed-off-by: Ariel Elior <ael...@marvell.com>
Signed-off-by: Michal Kalderon <mkalde...@marvell.com>
---
 drivers/net/ethernet/qlogic/qed/qed.h      | 3 +++
 drivers/net/ethernet/qlogic/qed/qed_dcbx.c | 4 +---
 drivers/net/ethernet/qlogic/qed/qed_dev.c  | 6 ++++--
 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 43a57ec..512186a 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 {
 
        /* Allow DSCP to TC mapping */
        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 {
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c 
b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
index 69966df..5c6a276 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
@@ -204,9 +204,7 @@ static bool qed_dcbx_roce_v2_tlv(u32 app_info_bitmap, u16 
proto_id, bool ieee)
        else
                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_8021Q_TAGGING, &p_hwfn->cdev->mf_bits) ||
-            test_bit(QED_MF_8021AD_TAGGING, &p_hwfn->cdev->mf_bits)))
+       if (test_bit(QED_MF_DONT_ADD_VLAN0_TAG, &p_hwfn->cdev->mf_bits))
                p_data->arr[type].dont_add_vlan0 = true;
 
        /* QM reconf data */
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c 
b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index 9df8c4b..1955737 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)
                        cdev->mf_bits = BIT(QED_MF_OVLAN_CLSS) |
                                        BIT(QED_MF_LLH_PROTO_CLSS) |
                                        BIT(QED_MF_UFP_SPECIFIC) |
-                                       BIT(QED_MF_8021Q_TAGGING);
+                                       BIT(QED_MF_8021Q_TAGGING) |
+                                       BIT(QED_MF_DONT_ADD_VLAN0_TAG);
                        break;
                case NVM_CFG1_GLOB_MF_MODE_BD:
                        cdev->mf_bits = BIT(QED_MF_OVLAN_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;
                case NVM_CFG1_GLOB_MF_MODE_NPAR1_0:
                        cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) |
-- 
1.8.3.1

Reply via email to