Revert "qcacld-3.0: After DELTS, revert to UAPSD related intervals in ini"

qcacld-2.0 to qcacld-3.0 propagation

This reverts Change-Id I858cd3cbd536ec189ea808c5d637abffe388f7aa.

With change id I858cd3cbd536ec189ea808c5d637abffe388f7aa,
host is not sending WMI_STA_UAPSD_AUTO_TRIG_CMDID command to firmware
during disable UAPSD per AC.

Change-Id: Ifdbcd6926ca86b1baeeadcf7a4720e460d41a6e5
CRs-Fixed: 911229
This commit is contained in:
Sreelakshmi Konamki 2015-11-23 15:04:05 +05:30 • committed by Satish Singh
commit c55b62f044
4 changed files with 17 additions and 146 deletions

View file

@ -248,72 +248,26 @@ static void hdd_wmm_disable_tl_uapsd(hdd_wmm_qos_context_t *pQosContext)
sme_ac_enum_type acType = pQosContext->acType;
hdd_wmm_ac_status_t *pAc = &pAdapter->hddWmmStatus.wmmAcStatus[acType];
CDF_STATUS status;
uint32_t service_interval;
uint32_t suspension_interval;
uint8_t uapsd_mask;
uint8_t active_tspec = INVALID_TSPEC;
hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(pAdapter);
struct hdd_config *cfg = hdd_ctx->config;
/* have we previously enabled UAPSD? */
if (pAc->wmmAcUapsdInfoValid == true) {
uapsd_mask = cfg->UapsdMask;
/* Finding uapsd_mask as per AC */
uapsd_mask = uapsd_mask & (1 << (SME_AC_VO - acType));
status =
sme_disable_uapsd_for_ac((WLAN_HDD_GET_CTX(pAdapter))->
pcds_context,
(WLAN_HDD_GET_STATION_CTX_PTR
(pAdapter))->conn_info.staId[0],
acType, pAdapter->sessionId);
sme_qos_tspec_active(
(tpAniSirGlobal)WLAN_HDD_GET_HAL_CTX(pAdapter), acType,
pAdapter->sessionId, &active_tspec);
/* Call sme_enable_uapsd_for_ac only when static uapsd mask
* is present and no active tspecs.
*/
if (uapsd_mask && !active_tspec) {
switch (acType) {
case SME_AC_VO:
service_interval = cfg->InfraUapsdVoSrvIntv;
suspension_interval = cfg->InfraUapsdVoSuspIntv;
break;
case SME_AC_VI:
service_interval = cfg->InfraUapsdViSrvIntv;
suspension_interval = cfg->InfraUapsdViSuspIntv;
break;
case SME_AC_BE:
service_interval = cfg->InfraUapsdBeSrvIntv;
suspension_interval = cfg->InfraUapsdBeSuspIntv;
break;
case SME_AC_BK:
service_interval = cfg->InfraUapsdBkSrvIntv;
suspension_interval = cfg->InfraUapsdBkSuspIntv;
break;
default:
return;
}
/* restore the UAPSD intervals configuration */
status = sme_enable_uapsd_for_ac(hdd_ctx->pcds_context,
(WLAN_HDD_GET_STATION_CTX_PTR
(pAdapter))->conn_info.staId[0],
acType,
pAc->wmmAcTspecInfo.ts_info.tid,
pAc->wmmAcTspecInfo.ts_info.up,
service_interval,
suspension_interval,
pAc->wmmAcTspecInfo.ts_info.direction,
pAc->wmmAcTspecInfo.ts_info.psb,
pAdapter->sessionId,
cfg->DelayedTriggerFrmInt);
if (!CDF_IS_STATUS_SUCCESS(status)) {
hdd_err("Failed to set U-APSD for AC=%d",
acType);
} else {
/* TL no longer has valid UAPSD info */
pAc->wmmAcUapsdInfoValid = false;
hdd_err("Disabled UAPSD in TL for AC=%d",
acType);
}
if (!CDF_IS_STATUS_SUCCESS(status)) {
CDF_TRACE(CDF_MODULE_ID_HDD, WMM_TRACE_LEVEL_ERROR,
"%s: Failed to disable U-APSD for AC=%d",
__func__, acType);
} else {
/* TL no longer has valid UAPSD info */
pAc->wmmAcUapsdInfoValid = false;
CDF_TRACE(CDF_MODULE_ID_HDD, WMM_TRACE_LEVEL_INFO,
"%s: Disabled UAPSD in TL for AC=%d",
__func__, acType);
}
}
}

View file

@ -83,8 +83,6 @@
reg_info_2 |= ((val & 0xff) << 8); \
} while (0)
/* Macro to indicate invalid no of tspecs */
#define INVALID_TSPEC 100
#define SME_CONFIG_TO_ROAM_CONFIG 1
#define ROAM_CONFIG_TO_SME_CONFIG 2

View file

@ -251,7 +251,6 @@ CDF_STATUS sme_offload_qos_process_out_of_uapsd_mode(tpAniSirGlobal mac_ctx,
uint32_t session_id);
CDF_STATUS sme_offload_qos_process_into_uapsd_mode(tpAniSirGlobal mac_ctx,
uint32_t session_id);
bool sme_qos_tspec_active(tpAniSirGlobal pMac, sme_ac_enum_type ac,
uint8_t sessionId, uint8_t *pActiveTspec);
#endif /* #if !defined( __SME_QOSAPI_H ) */

View file

@ -7751,84 +7751,4 @@ static uint8_t sme_qos_assign_dialog_token(void)
}
return token;
}
/**
* sme_qos_tspec_active() - API exposed to HDD to check no of active Tspecs
*
* @pMac: The handle returned by macOpen
* @ac: Determines type of Access Category
* @sessionId: sessionId returned by sme_OpenSession
* @pActiveTspec: return the number of active Tspecs
*
* Return: true if success, otherwise false
*/
bool sme_qos_tspec_active(tpAniSirGlobal pMac, sme_ac_enum_type ac,
uint8_t sessionId, uint8_t *pActiveTspec)
{
sme_QosSessionInfo *pSession = NULL;
sme_QosACInfo *pACInfo = NULL;
if (!CSR_IS_SESSION_VALID(pMac, sessionId)) {
CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_ERROR,
"%s: %d: Session Id %d is invalid",
__func__, __LINE__, sessionId);
return false;
}
pSession = &sme_qos_cb.sessionInfo[sessionId];
if (NULL == pSession) {
CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_ERROR,
"%s: %d pSession not found sessionId:%d",
__func__, __LINE__, sessionId);
return false;
}
if (!pSession->sessionActive) {
CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_ERROR,
"%s: %d: Session %d is inactive",
__func__, __LINE__, sessionId);
return false;
}
CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_INFO_HIGH,
"%s: %d: Session %d is active",
__func__, __LINE__, sessionId);
pACInfo = &pSession->ac_info[ac];
/* Does this AC have QoS active? */
if (SME_QOS_QOS_ON == pACInfo->curr_state) {
/* Yes, QoS is active on this AC */
CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_INFO_HIGH,
"%s: %d: On session %d AC %d has QoS active",
__func__, __LINE__, sessionId, ac);
/* Are any TSPECs active? */
if (pACInfo->tspec_mask_status) {
/* at least 1 TSPEC is active. Are they both active? */
if (SME_QOS_TSPEC_MASK_BIT_1_2_SET ==
pACInfo->tspec_mask_status) {
/* both TSPECS are active */
*pActiveTspec = 2;
} else {
/* only one TSPEC is active */
*pActiveTspec = 1;
}
} else {
*pActiveTspec = 0;
}
} else {
/* Hardcoding value to INVALID_TSPEC to indicate the caller
* not to update UAPSD parameters as QOS is not active
*/
*pActiveTspec = INVALID_TSPEC;
CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_INFO_HIGH,
"%s: %d: On session %d AC %d has no QoS active",
__func__, __LINE__, sessionId, ac);
}
return true;
}
#endif /* WLAN_MDM_CODE_REDUCTION_OPT */