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
committato da Satish Singh
parent 60073371b3
commit c55b62f044
4 ha cambiato i file con 17 aggiunte e 146 eliminazioni

Vedi 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; sme_ac_enum_type acType = pQosContext->acType;
hdd_wmm_ac_status_t *pAc = &pAdapter->hddWmmStatus.wmmAcStatus[acType]; hdd_wmm_ac_status_t *pAc = &pAdapter->hddWmmStatus.wmmAcStatus[acType];
CDF_STATUS status; 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? */ /* have we previously enabled UAPSD? */
if (pAc->wmmAcUapsdInfoValid == true) { if (pAc->wmmAcUapsdInfoValid == true) {
uapsd_mask = cfg->UapsdMask; status =
/* Finding uapsd_mask as per AC */ sme_disable_uapsd_for_ac((WLAN_HDD_GET_CTX(pAdapter))->
uapsd_mask = uapsd_mask & (1 << (SME_AC_VO - acType)); pcds_context,
(WLAN_HDD_GET_STATION_CTX_PTR
(pAdapter))->conn_info.staId[0],
acType, pAdapter->sessionId);
sme_qos_tspec_active( if (!CDF_IS_STATUS_SUCCESS(status)) {
(tpAniSirGlobal)WLAN_HDD_GET_HAL_CTX(pAdapter), acType, CDF_TRACE(CDF_MODULE_ID_HDD, WMM_TRACE_LEVEL_ERROR,
pAdapter->sessionId, &active_tspec); "%s: Failed to disable U-APSD for AC=%d",
__func__, acType);
/* Call sme_enable_uapsd_for_ac only when static uapsd mask } else {
* is present and no active tspecs. /* TL no longer has valid UAPSD info */
*/ pAc->wmmAcUapsdInfoValid = false;
CDF_TRACE(CDF_MODULE_ID_HDD, WMM_TRACE_LEVEL_INFO,
if (uapsd_mask && !active_tspec) { "%s: Disabled UAPSD in TL for AC=%d",
switch (acType) { __func__, 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);
}
} }
} }
} }

Vedi File

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

Vedi File

@@ -251,7 +251,6 @@ CDF_STATUS sme_offload_qos_process_out_of_uapsd_mode(tpAniSirGlobal mac_ctx,
uint32_t session_id); uint32_t session_id);
CDF_STATUS sme_offload_qos_process_into_uapsd_mode(tpAniSirGlobal mac_ctx, CDF_STATUS sme_offload_qos_process_into_uapsd_mode(tpAniSirGlobal mac_ctx,
uint32_t session_id); 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 ) */ #endif /* #if !defined( __SME_QOSAPI_H ) */

Vedi File

@@ -7751,84 +7751,4 @@ static uint8_t sme_qos_assign_dialog_token(void)
} }
return token; 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 */ #endif /* WLAN_MDM_CODE_REDUCTION_OPT */