qcacld-3.0: Send edca params to firmware
Send all user requests to update edca parms to firmware.
Change-Id: I2b7e884d004c94f71bb5c29583b188ce3681ab0b
CRs-Fixed: 2202046
diff --git a/core/mac/src/pe/lim/lim_process_message_queue.c b/core/mac/src/pe/lim/lim_process_message_queue.c
index 2426462..3ba58e6 100644
--- a/core/mac/src/pe/lim/lim_process_message_queue.c
+++ b/core/mac/src/pe/lim/lim_process_message_queue.c
@@ -1484,6 +1484,7 @@
case eWNI_SME_EXT_CHANGE_CHANNEL:
case eWNI_SME_ROAM_SCAN_OFFLOAD_REQ:
case eWNI_SME_SET_ADDBA_ACCEPT:
+ case eWNI_SME_UPDATE_EDCA_PROFILE:
/* These messages are from HDD.No need to respond to HDD */
lim_process_normal_hdd_msg(mac_ctx, msg, false);
break;
diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
index c43ba84..3c5fb19 100644
--- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
@@ -3528,6 +3528,35 @@
mac_ctx->reject_addba_req = 0;
}
+static void lim_process_sme_update_edca_params(tpAniSirGlobal mac_ctx,
+ uint32_t sme_session_id)
+{
+ tpPESession pe_session;
+ tpDphHashNode sta_ds_ptr;
+
+ pe_session = pe_find_session_by_sme_session_id(mac_ctx, sme_session_id);
+ if (!pe_session) {
+ pe_err("Session does not exist: sme_id %d", sme_session_id);
+ return;
+ }
+ pe_session->gLimEdcaParamsActive[EDCA_AC_BE].no_ack =
+ mac_ctx->no_ack_policy_cfg[EDCA_AC_BE];
+ pe_session->gLimEdcaParamsActive[EDCA_AC_BK].no_ack =
+ mac_ctx->no_ack_policy_cfg[EDCA_AC_BK];
+ pe_session->gLimEdcaParamsActive[EDCA_AC_VI].no_ack =
+ mac_ctx->no_ack_policy_cfg[EDCA_AC_VI];
+ pe_session->gLimEdcaParamsActive[EDCA_AC_VO].no_ack =
+ mac_ctx->no_ack_policy_cfg[EDCA_AC_VO];
+ sta_ds_ptr = dph_get_hash_entry(mac_ctx, DPH_STA_HASH_INDEX_PEER,
+ &pe_session->dph.dphHashTable);
+ if (sta_ds_ptr)
+ lim_send_edca_params(mac_ctx,
+ pe_session->gLimEdcaParamsActive,
+ sta_ds_ptr->bssId);
+ else
+ pe_err("Self entry missing in Hash Table");
+}
+
static void lim_process_sme_update_config(tpAniSirGlobal mac_ctx,
struct update_config *msg)
{
@@ -4716,6 +4745,9 @@
lim_process_sme_set_addba_accept(pMac,
(struct sme_addba_accept *)pMsgBuf);
break;
+ case eWNI_SME_UPDATE_EDCA_PROFILE:
+ lim_process_sme_update_edca_params(pMac, pMsg->bodyval);
+ break;
default:
qdf_mem_free((void *)pMsg->bodyptr);
pMsg->bodyptr = NULL;