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:

committato da
Satish Singh

parent
60073371b3
commit
c55b62f044
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
@@ -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 ) */
|
||||||
|
@@ -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 */
|
||||||
|
Fai riferimento in un nuovo problema
Block a user