From 0b17550a3560930e6406374f825d80f2b6aa778a Mon Sep 17 00:00:00 2001 From: Prakash Dhavali Date: Thu, 1 Dec 2016 16:41:42 -0800 Subject: [PATCH] qcacld-3.0: Update per session uapsd mask in sme after ADD TS rsp In function sme_set_tspec_uapsd_mask_per_session update uapsd_per_ac_bit_mask as per the values received from ADD TS response. Otherwise, ini change if 0 will always override ADD TS response values. Change-Id: Ie834f651bb097c084c81c6ebc9c8637f96d7a075 CRs-Fixed: 1096829 --- core/sme/src/common/sme_power_save.c | 2 ++ core/sme/src/qos/sme_qos.c | 7 +++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/sme/src/common/sme_power_save.c b/core/sme/src/common/sme_power_save.c index 88f124e24598..a7b776b9b1d6 100644 --- a/core/sme/src/common/sme_power_save.c +++ b/core/sme/src/common/sme_power_save.c @@ -611,6 +611,7 @@ void sme_set_tspec_uapsd_mask_per_session(tpAniSirGlobal mac_ctx, */ ac = ((~ac) & 0x3); if (ts_info->traffic.psb) { + ps_param->uapsd_per_ac_bit_mask |= (1 << ac); if (direction == SIR_MAC_DIRECTION_UPLINK) ps_param->uapsd_per_ac_trigger_enable_mask |= (1 << ac); @@ -624,6 +625,7 @@ void sme_set_tspec_uapsd_mask_per_session(tpAniSirGlobal mac_ctx, (1 << ac); } } else { + ps_param->uapsd_per_ac_bit_mask &= ~(1 << ac); if (direction == SIR_MAC_DIRECTION_UPLINK) ps_param->uapsd_per_ac_trigger_enable_mask &= ~(1 << ac); diff --git a/core/sme/src/qos/sme_qos.c b/core/sme/src/qos/sme_qos.c index 5f8a2f172fc1..1bb72caf9667 100644 --- a/core/sme/src/qos/sme_qos.c +++ b/core/sme/src/qos/sme_qos.c @@ -5501,6 +5501,9 @@ QDF_STATUS sme_qos_process_add_ts_success_rsp(tpAniSirGlobal pMac, pACInfo->curr_QoSInfo[tspec_pending - 1].medium_time = pRsp->tspec.mediumTime; + sme_set_tspec_uapsd_mask_per_session(pMac, + &pRsp->tspec.tsinfo, sessionId); + QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO_HIGH, "%s: %d: On session %d AddTspec Medium Time %d", __func__, __LINE__, sessionId, pRsp->tspec.mediumTime); @@ -5619,12 +5622,8 @@ QDF_STATUS sme_qos_process_add_ts_success_rsp(tpAniSirGlobal pMac, sme_qos_state_transition(sessionId, ac, SME_QOS_QOS_ON); - sme_set_tspec_uapsd_mask_per_session(pMac, - &pRsp->tspec.tsinfo, sessionId); - (void)sme_qos_process_buffered_cmd(sessionId); return QDF_STATUS_SUCCESS; - } /*--------------------------------------------------------------------------