net/qede/base: semantic changes
[dpdk.git] / drivers / net / qede / base / ecore_dcbx.c
index 7380fd8..4f1b069 100644 (file)
@@ -72,6 +72,23 @@ static bool ecore_dcbx_default_tlv(u32 app_info_bitmap, u16 proto_id, bool ieee)
        return !!(ethtype && (proto_id == ECORE_ETH_TYPE_DEFAULT));
 }
 
+static bool ecore_dcbx_iwarp_tlv(struct ecore_hwfn *p_hwfn, u32 app_info_bitmap,
+                                u16 proto_id, bool ieee)
+{
+       bool port;
+
+       if (!p_hwfn->p_dcbx_info->iwarp_port)
+               return false;
+
+       if (ieee)
+               port = ecore_dcbx_ieee_app_port(app_info_bitmap,
+                                               DCBX_APP_SF_IEEE_TCP_PORT);
+       else
+               port = ecore_dcbx_app_port(app_info_bitmap);
+
+       return !!(port && (proto_id == p_hwfn->p_dcbx_info->iwarp_port));
+}
+
 static void
 ecore_dcbx_dp_protocol(struct ecore_hwfn *p_hwfn,
                       struct ecore_dcbx_results *p_data)
@@ -97,7 +114,7 @@ ecore_dcbx_dp_protocol(struct ecore_hwfn *p_hwfn,
        }
 }
 
-void
+static void
 ecore_dcbx_set_params(struct ecore_dcbx_results *p_data,
                      struct ecore_hwfn *p_hwfn,
                      bool enable, u8 prio, u8 tc,
@@ -126,14 +143,11 @@ ecore_dcbx_set_params(struct ecore_dcbx_results *p_data,
        else if (enable)
                p_data->arr[type].update = UPDATE_DCB;
        else
-               p_data->arr[type].update = DONT_UPDATE_DCB_DHCP;
+               p_data->arr[type].update = DONT_UPDATE_DCB_DSCP;
 
        /* QM reconf data */
-       if (p_hwfn->hw_info.personality == personality) {
+       if (p_hwfn->hw_info.personality == personality)
                p_hwfn->hw_info.offload_tc = tc;
-               if (personality == ECORE_PCI_ISCSI)
-                       p_hwfn->hw_info.ooo_tc = DCBX_ISCSI_OOO_TC;
-       }
 }
 
 /* Update app protocol data and hw_info fields with the TLV info */
@@ -317,6 +331,7 @@ ecore_dcbx_process_mib_info(struct ecore_hwfn *p_hwfn)
 
        p_info->num_active_tc = ECORE_MFW_GET_FIELD(p_ets->flags,
                                                    DCBX_ETS_MAX_TCS);
+       p_hwfn->qm_info.ooo_tc = ECORE_MFW_GET_FIELD(p_ets->flags, DCBX_OOO_TC);
        data.pf_id = p_hwfn->rel_pf_id;
        data.dcbx_enabled = !!dcbx_version;
 
@@ -898,17 +913,18 @@ ecore_dcbx_mib_update_event(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt,
 
 enum _ecore_status_t ecore_dcbx_info_alloc(struct ecore_hwfn *p_hwfn)
 {
-       enum _ecore_status_t rc = ECORE_SUCCESS;
-
        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,
                          "Failed to allocate `struct ecore_dcbx_info'");
-               rc = ECORE_NOMEM;
+               return ECORE_NOMEM;
        }
 
-       return rc;
+       p_hwfn->p_dcbx_info->iwarp_port =
+               p_hwfn->pf_params.rdma_pf_params.iwarp_port;
+
+       return ECORE_SUCCESS;
 }
 
 void ecore_dcbx_info_free(struct ecore_hwfn *p_hwfn,
@@ -938,10 +954,14 @@ void ecore_dcbx_set_pf_update_params(struct ecore_dcbx_results *p_src,
        p_dest->pf_id = p_src->pf_id;
 
        update_flag = p_src->arr[DCBX_PROTOCOL_ETH].update;
-       p_dest->update_eth_dcb_data_flag = update_flag;
+       p_dest->update_eth_dcb_data_mode = update_flag;
+       update_flag = p_src->arr[DCBX_PROTOCOL_IWARP].update;
+       p_dest->update_iwarp_dcb_data_mode = update_flag;
 
        p_dcb_data = &p_dest->eth_dcb_data;
        ecore_dcbx_update_protocol_data(p_dcb_data, p_src, DCBX_PROTOCOL_ETH);
+       p_dcb_data = &p_dest->iwarp_dcb_data;
+       ecore_dcbx_update_protocol_data(p_dcb_data, p_src, DCBX_PROTOCOL_IWARP);
 }
 
 enum _ecore_status_t ecore_dcbx_query_params(struct ecore_hwfn *p_hwfn,