Merge "qca-wifi: Add new feature to support protocol tags."

Tento commit je obsažen v:
Linux Build Service Account
2019-04-19 03:07:47 -07:00
odevzdal Gerrit - the friendly Code Review server
3 změnil soubory, kde provedl 91 přidání a 0 odebrání

Zobrazit soubor

@@ -274,4 +274,17 @@ QDF_STATUS wmi_unified_vdev_pcp_tid_map_cmd_send(void *wmi_hdl,
*/
QDF_STATUS wmi_unified_vdev_tidmap_prec_cmd_send(void *wmi_hdl,
struct vap_tidmap_prec_params *param);
#ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
/**
* wmi_unified_set_rx_pkt_type_routing_tag() - api to add/delete
* the protocols to be tagged by CCE
* @wmi_hdl: wmi handle
* @param: Packet routing/tagging info
*
* @return: QDF_STATUS_SUCCESS for success or error code
*/
QDF_STATUS wmi_unified_set_rx_pkt_type_routing_tag(
void *wmi_hdl, struct wmi_rx_pkt_protocol_routing_info *param);
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
#endif /* _WMI_UNIFIED_AP_API_H_ */

Zobrazit soubor

@@ -1181,3 +1181,24 @@ wmi_unified_vdev_tidmap_prec_cmd_send(void *wmi_hdl,
return QDF_STATUS_E_FAILURE;
}
#ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
/**
* wmi_unified_set_rx_pkt_protocol_routing_tag() - api to add/delete the
* protocols to be tagged by CCE
* @wmi_hdl: wmi handle
* @param: Packet routing/tagging info
*
* @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE on failure
*/
QDF_STATUS wmi_unified_set_rx_pkt_type_routing_tag(
void *wmi_hdl, struct wmi_rx_pkt_protocol_routing_info *param)
{
wmi_unified_t wmi = (wmi_unified_t)wmi_hdl;
if (wmi->ops->set_rx_pkt_type_routing_tag_cmd)
return wmi->ops->set_rx_pkt_type_routing_tag_cmd(wmi, param);
return QDF_STATUS_E_FAILURE;
}
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */

Zobrazit soubor

@@ -1887,6 +1887,59 @@ static QDF_STATUS extract_pdev_caldata_version_check_ev_param_tlv(
return QDF_STATUS_SUCCESS;
}
#ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
/**
* set_rx_pkt_type_routing_tag_update_tlv() - add/delete protocol tag in CCE
* @wmi_handle: wmi handle
* @param evt_buf: pointer to event buffer
* @param param: pointer to protocol tag/routing struct
*
* @return:QDF_STATUS_SUCCESS for success or
* QDF_STATUS_E_NOMEM/QDF_STATUS_E_FAILURE on failure
*/
static QDF_STATUS set_rx_pkt_type_routing_tag_update_tlv(
void *wmi_hdl,
struct wmi_rx_pkt_protocol_routing_info *param)
{
wmi_pdev_update_pkt_routing_cmd_fixed_param *cmd;
wmi_buf_t buf;
QDF_STATUS status;
uint32_t len = sizeof(wmi_pdev_update_pkt_routing_cmd_fixed_param);
buf = wmi_buf_alloc(wmi_hdl, len);
if (!buf) {
WMI_LOGE("%s : wmi_buf_alloc failed", __func__);
return QDF_STATUS_E_NOMEM;
}
cmd = (wmi_pdev_update_pkt_routing_cmd_fixed_param *)wmi_buf_data(buf);
WMITLV_SET_HDR(&cmd->tlv_header,
WMITLV_TAG_STRUC_wmi_pdev_update_pkt_routing_cmd_fixed_param,
WMITLV_GET_STRUCT_TLVLEN(
wmi_pdev_update_pkt_routing_cmd_fixed_param));
cmd->pdev_id = param->pdev_id;
cmd->op_code = (A_UINT32) param->op_code;
cmd->routing_type_bitmap = param->routing_type_bitmap;
cmd->dest_ring = param->dest_ring;
cmd->meta_data = param->meta_data;
cmd->dest_ring_handler = param->dest_ring_handler;
WMI_LOGI("Set RX PKT ROUTING TYPE TAG - opcode: %u", param->op_code);
WMI_LOGI("routing_bitmap: %u, dest_ring: %u",
param->routing_type_bitmap, param->dest_ring);
WMI_LOGI("dest_ring_handler: %u, meta_data: 0x%x",
param->dest_ring_handler, param->meta_data);
wmi_mtrace(WMI_PDEV_UPDATE_PKT_ROUTING_CMDID, cmd->pdev_id, 0);
status = wmi_unified_cmd_send(wmi_hdl, buf, len,
WMI_PDEV_UPDATE_PKT_ROUTING_CMDID);
if (status != QDF_STATUS_SUCCESS) {
wmi_buf_free(buf);
return QDF_STATUS_E_FAILURE;
}
return QDF_STATUS_SUCCESS;
}
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
#ifdef WLAN_SUPPORT_FILS
/**
* send_vdev_fils_enable_cmd_tlv() - enable/Disable FD Frame command to fw
@@ -2759,4 +2812,8 @@ void wmi_ap_attach_tlv(wmi_unified_t wmi_handle)
ops->extract_channel_hopping_event = extract_channel_hopping_event_tlv;
ops->send_peer_chan_width_switch_cmd =
send_peer_chan_width_switch_cmd_tlv;
#ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
ops->set_rx_pkt_type_routing_tag_cmd =
set_rx_pkt_type_routing_tag_update_tlv;
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
}