qcacmn: Add WMI event support for dynamic Muedca

Add support for WMI event to host to process
dynamically selected Muedca values and update
the mgmt frames with the new set of values.

Extract the params and store in Muedca_param
struct from control path, to be used for
updating mgmt frames.

Change-Id: I6cc7756d1a246ff994edef195f6191d280bc5c47
This commit is contained in:
Sumedh Baikady
2020-02-28 18:00:28 -08:00
committed by nshrivas
parent 5320ccb4d6
commit c673777be4
5 changed files with 60 additions and 0 deletions

View File

@@ -350,6 +350,38 @@ static QDF_STATUS extract_ext_tbttoffset_update_params_tlv(
return QDF_STATUS_SUCCESS;
}
static QDF_STATUS extract_muedca_params_tlv(wmi_unified_t wmi_hdl,
void *evt_buf,
struct muedca_params *muedca_param_list)
{
WMI_MUEDCA_PARAMS_CONFIG_EVENTID_param_tlvs *param_buf;
wmi_muedca_params_config_event_fixed_param *muedca_param;
int i;
param_buf = (WMI_MUEDCA_PARAMS_CONFIG_EVENTID_param_tlvs *)evt_buf;
if (!param_buf) {
WMI_LOGE("%s: Invalid muedca evt buffer", __func__);
return QDF_STATUS_E_INVAL;
}
muedca_param = param_buf->fixed_param;
muedca_param_list->pdev_id = wmi_hdl->ops->
convert_pdev_id_target_to_host(wmi_hdl,
muedca_param->pdev_id);
for (i = 0; i < WMI_AC_MAX; i++) {
muedca_param_list->muedca_aifsn[i] = muedca_param->aifsn[i] &
WMI_MUEDCA_PARAM_MASK;
muedca_param_list->muedca_ecwmin[i] = muedca_param->ecwmin[i] &
WMI_MUEDCA_PARAM_MASK;
muedca_param_list->muedca_ecwmax[i] = muedca_param->ecwmax[i] &
WMI_MUEDCA_PARAM_MASK;
muedca_param_list->muedca_timer[i] = muedca_param->muedca_expiration_time[i] &
WMI_MUEDCA_PARAM_MASK;
}
return QDF_STATUS_SUCCESS;
}
void wmi_vdev_attach_tlv(struct wmi_unified *wmi_handle)
{
struct wmi_ops *wmi_ops;
@@ -373,6 +405,8 @@ void wmi_vdev_attach_tlv(struct wmi_unified *wmi_handle)
extract_ext_tbttoffset_update_params_tlv;
wmi_ops->extract_ext_tbttoffset_num_vdevs =
extract_ext_tbttoffset_num_vdevs_tlv;
wmi_ops->extract_muedca_params_handler =
extract_muedca_params_tlv;
wmi_ops->send_vdev_set_neighbour_rx_cmd =
send_vdev_set_neighbour_rx_cmd_tlv;
wmi_ops->send_beacon_send_cmd = send_beacon_send_cmd_tlv;