Browse Source

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
Sreelakshmi Konamki 9 years ago
parent
commit
e1ce562b9b
4 changed files with 17 additions and 146 deletions
  1. 16 62
      core/hdd/src/wlan_hdd_wmm.c
  2. 0 2
      core/sme/inc/sme_api.h
  3. 1 2
      core/sme/inc/sme_qos_api.h
  4. 0 80
      core/sme/src/qos/sme_qos.c

+ 16 - 62
core/hdd/src/wlan_hdd_wmm.c

@@ -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));
-
-		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;
-			}
+		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);
 
-			/* 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);
 		}
 	}
 }

+ 0 - 2
core/sme/inc/sme_api.h

@@ -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
 

+ 1 - 2
core/sme/inc/sme_qos_api.h

@@ -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 ) */

+ 0 - 80
core/sme/src/qos/sme_qos.c

@@ -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 */