net/qede/base: fix to support OVLAN mode
[dpdk.git] / drivers / net / qede / base / ecore_dcbx.c
index edb711e..93262ee 100644 (file)
@@ -149,6 +149,10 @@ ecore_dcbx_set_params(struct ecore_dcbx_results *p_data,
        }
        p_data->arr[type].update = UPDATE_DCB_DSCP;
 
+       /* Do not add valn tag 0 when DCB is enabled and port is in UFP mode */
+       if (OSAL_TEST_BIT(ECORE_MF_UFP_SPECIFIC, &p_hwfn->p_dev->mf_bits))
+               p_data->arr[type].dont_add_vlan0 = true;
+
        /* QM reconf data */
        if (p_hwfn->hw_info.personality == personality)
                p_hwfn->hw_info.offload_tc = tc;
@@ -163,7 +167,6 @@ ecore_dcbx_update_app_info(struct ecore_dcbx_results *p_data,
 {
        enum ecore_pci_personality personality;
        enum dcbx_protocol_type id;
-       const char *name;       /* @DPDK */
        int i;
 
        for (i = 0; i < OSAL_ARRAY_SIZE(ecore_dcbx_app_update); i++) {
@@ -173,7 +176,6 @@ ecore_dcbx_update_app_info(struct ecore_dcbx_results *p_data,
                        continue;
 
                personality = ecore_dcbx_app_update[i].personality;
-               name = ecore_dcbx_app_update[i].name;
 
                ecore_dcbx_set_params(p_data, p_hwfn, enable,
                                      prio, tc, type, personality);
@@ -218,10 +220,9 @@ ecore_dcbx_get_app_protocol_type(struct ecore_hwfn *p_hwfn,
                *type = DCBX_PROTOCOL_ETH;
        } else {
                *type = DCBX_MAX_PROTOCOL_TYPE;
-               DP_ERR(p_hwfn,
-                      "No action required, App TLV id = 0x%x"
-                      " app_prio_bitmap = 0x%x\n",
-                      id, app_prio_bitmap);
+               DP_VERBOSE(p_hwfn, ECORE_MSG_DCB,
+                           "No action required, App TLV entry = 0x%x\n",
+                          app_prio_bitmap);
                return false;
        }
 
@@ -882,8 +883,6 @@ ecore_dcbx_mib_update_event(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt,
 
                rc = ecore_dcbx_process_mib_info(p_hwfn);
                if (!rc) {
-                       bool enabled;
-
                        /* reconfigure tcs of QM queues according
                         * to negotiation results
                         */
@@ -891,11 +890,6 @@ ecore_dcbx_mib_update_event(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt,
 
                        /* update storm FW with negotiation results */
                        ecore_sp_pf_update_dcbx(p_hwfn);
-
-                       /* set eagle enigne 1 flow control workaround
-                        * according to negotiation results
-                        */
-                       enabled = p_hwfn->p_dcbx_info->results.dcbx_enabled;
                }
        }
 
@@ -920,7 +914,7 @@ enum _ecore_status_t ecore_dcbx_info_alloc(struct ecore_hwfn *p_hwfn)
        p_hwfn->p_dcbx_info = OSAL_ZALLOC(p_hwfn->p_dev, GFP_KERNEL,
                                          sizeof(*p_hwfn->p_dcbx_info));
        if (!p_hwfn->p_dcbx_info) {
-               DP_NOTICE(p_hwfn, true,
+               DP_NOTICE(p_hwfn, false,
                          "Failed to allocate `struct ecore_dcbx_info'");
                return ECORE_NOMEM;
        }
@@ -945,6 +939,7 @@ static void ecore_dcbx_update_protocol_data(struct protocol_dcb_data *p_data,
        p_data->dcb_tc = p_src->arr[type].tc;
        p_data->dscp_enable_flag = p_src->arr[type].dscp_enable;
        p_data->dscp_val = p_src->arr[type].dscp_val;
+       p_data->dcb_dont_add_vlan0 = p_src->arr[type].dont_add_vlan0;
 }
 
 /* Set pf update ramrod command params */