diff --git a/wmi/inc/wmi_unified_api.h b/wmi/inc/wmi_unified_api.h index 9ff087adc9..3a1a485545 100644 --- a/wmi/inc/wmi_unified_api.h +++ b/wmi/inc/wmi_unified_api.h @@ -755,7 +755,7 @@ QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id, struct wmi_gtx_config *gtx_info); QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl, - uint8_t vdev_id, + uint8_t vdev_id, bool mu_edca_param, struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]); QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl, diff --git a/wmi/inc/wmi_unified_priv.h b/wmi/inc/wmi_unified_priv.h index 53b122a3ae..641da9a81b 100644 --- a/wmi/inc/wmi_unified_priv.h +++ b/wmi/inc/wmi_unified_priv.h @@ -850,7 +850,7 @@ QDF_STATUS (*send_wmm_update_cmd)(wmi_unified_t wmi_handle, struct wmm_update_params *param); QDF_STATUS (*send_process_update_edca_param_cmd)(wmi_unified_t wmi_handle, - uint8_t vdev_id, + uint8_t vdev_id, bool mu_edca_param, struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]); QDF_STATUS (*send_set_ant_switch_tbl_cmd)(wmi_unified_t wmi_handle, diff --git a/wmi/src/wmi_unified_api.c b/wmi/src/wmi_unified_api.c index a2b5f48fea..0f54a28975 100644 --- a/wmi/src/wmi_unified_api.c +++ b/wmi/src/wmi_unified_api.c @@ -1457,6 +1457,7 @@ QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id, * wmi_unified_process_update_edca_param() - update EDCA params * @wmi_hdl: wmi handle * @vdev_id: vdev id. + * @mu_edca_param: mu_edca_param. * @wmm_vparams: edca parameters * * This function updates EDCA parameters to the target @@ -1464,14 +1465,14 @@ QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id, * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl, - uint8_t vdev_id, + uint8_t vdev_id, bool mu_edca_param, struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]) { wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; if (wmi_handle->ops->send_process_update_edca_param_cmd) return wmi_handle->ops->send_process_update_edca_param_cmd(wmi_handle, - vdev_id, wmm_vparams); + vdev_id, mu_edca_param, wmm_vparams); return QDF_STATUS_E_FAILURE; } diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 2c6bb3d30d..5ad4ccd1fc 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -5173,7 +5173,7 @@ static QDF_STATUS send_vdev_set_gtx_cfg_cmd_tlv(wmi_unified_t wmi_handle, uint32 * Return: CDF Status */ static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handle, - uint8_t vdev_id, + uint8_t vdev_id, bool mu_edca_param, struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]) { uint8_t *buf_ptr; @@ -5198,6 +5198,7 @@ static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handl WMITLV_GET_STRUCT_TLVLEN (wmi_vdev_set_wmm_params_cmd_fixed_param)); cmd->vdev_id = vdev_id; + cmd->wmm_param_type = mu_edca_param; for (ac = 0; ac < WMI_MAX_NUM_AC; ac++) { wmm_param = (wmi_wmm_vparams *) (&cmd->wmm_params[ac]); @@ -5208,7 +5209,10 @@ static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handl wmm_param->cwmin = twmm_param->cwmin; wmm_param->cwmax = twmm_param->cwmax; wmm_param->aifs = twmm_param->aifs; - wmm_param->txoplimit = twmm_param->txoplimit; + if (mu_edca_param) + wmm_param->mu_edca_timer = twmm_param->mu_edca_timer; + else + wmm_param->txoplimit = twmm_param->txoplimit; wmm_param->acm = twmm_param->acm; wmm_param->no_ack = twmm_param->noackpolicy; }