diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2014-07-24 17:03:17 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-07-24 17:03:17 -0700 |
| commit | 17e2bec8ce77fdce735eb5f95257f1ba2f198340 (patch) | |
| tree | f2d6e7db500363aea57ee26942265f20fee6d643 | |
| parent | 6cd947a5a8163b983a9a631bf722c6eccdc534ea (diff) | |
| parent | 5f3a77e2e9cd536316573e071c5772928e551e15 (diff) | |
Merge "Release 1.0.0.151 QCACLD WLAN Driver"
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 2 | ||||
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_main.h | 3 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 13 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 12 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 49 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 12 | ||||
| -rw-r--r-- | CORE/MAC/inc/wniApi.h | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/include/sirParams.h | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limFT.c | 8 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limUtils.c | 7 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c | 12 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 317 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.h | 4 | ||||
| -rw-r--r-- | CORE/SME/inc/smeInternal.h | 3 | ||||
| -rw-r--r-- | CORE/SME/inc/sme_Api.h | 21 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 16 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiScan.c | 8 | ||||
| -rw-r--r-- | CORE/SME/src/sme_common/sme_Api.c | 95 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/system/src/sysEntryFunc.c | 27 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/utils/src/macTrace.c | 3 | ||||
| -rw-r--r-- | CORE/WDA/inc/wlan_qct_wda.h | 4 |
22 files changed, 466 insertions, 160 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index d4a3768b6211..0a3e2aeae6bb 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -3319,8 +3319,6 @@ typedef struct mbssid_sap_dyn_ini_config { char acsAllowedChnls[CFG_MAX_STR_LEN]; v_U8_t acsScanBandPreference; v_U16_t acsBandSwitchThreshold; - /* SAP HW Mode*/ - eHddDot11Mode sapDot11Mode; } mbssid_sap_dyn_ini_config_t; #endif diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h index 043865663dbd..efff5a17b052 100644 --- a/CORE/HDD/inc/wlan_hdd_main.h +++ b/CORE/HDD/inc/wlan_hdd_main.h @@ -1507,9 +1507,6 @@ struct hdd_context_s tSirScanType ioctl_scan_mode; -#ifdef FEATURE_WLAN_AUTO_SHUTDOWN - vos_timer_t hdd_wlan_shutdown_timer; -#endif #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH adf_os_work_t sta_ap_intf_check_work; #endif diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index ec95067de29c..506e5c1d512d 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -3521,9 +3521,6 @@ REG_TABLE_ENTRY g_registry_table[] = REG_VARIABLE( CFG_SAP_DOT11_MODE_NAME, WLAN_PARAM_Integer, hdd_config_t, sapDot11Mode, -#ifndef WLAN_FEATURE_MBSSID - VAR_FLAGS_DYNAMIC_CFG | -#endif VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK, CFG_SAP_DOT11_MODE_DEFAULT, CFG_SAP_DOT11_MODE_MIN, @@ -3791,14 +3788,6 @@ REG_TABLE_ENTRY mbssid_sap_dyn_ini_reg_table[] = CFG_ACS_BAND_SWITCH_THRESHOLD_MIN, CFG_ACS_BAND_SWITCH_THRESHOLD_MAX ), - REG_VARIABLE( CFG_SAP_DOT11_MODE_NAME, WLAN_PARAM_Integer, - mbssid_sap_dyn_ini_config_t, sapDot11Mode, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK - | VAR_FLAGS_DYNAMIC_CFG, - CFG_SAP_DOT11_MODE_DEFAULT, - CFG_SAP_DOT11_MODE_MIN, - CFG_SAP_DOT11_MODE_MAX ), - }; #endif @@ -4790,8 +4779,6 @@ v_VOID_t hdd_mbssid_apply_def_cfg_ini(hdd_adapter_t *pAdapter) vos_mem_copy(sap_ini_cfg->acsAllowedChnls, iniConfig->acsAllowedChnls, CFG_MAX_STR_LEN); - sap_ini_cfg->sapDot11Mode = iniConfig->sapDot11Mode; - } #endif diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 84a223657e74..1bcdf55a3b05 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -211,7 +211,9 @@ static const u32 hdd_cipher_suites[] = WLAN_CIPHER_SUITE_WEP104, WLAN_CIPHER_SUITE_TKIP, #ifdef FEATURE_WLAN_ESE +#define WLAN_CIPHER_SUITE_BTK 0x004096fe /* use for BTK */ #define WLAN_CIPHER_SUITE_KRK 0x004096ff /* use for KRK */ + WLAN_CIPHER_SUITE_BTK, WLAN_CIPHER_SUITE_KRK, WLAN_CIPHER_SUITE_CCMP, #else @@ -4753,11 +4755,7 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, v_BOOL_t MFPCapable = VOS_FALSE; v_BOOL_t MFPRequired = VOS_FALSE; eHddDot11Mode sapDot11Mode = -#ifdef WLAN_FEATURE_MBSSID - pHostapdAdapter->sap_dyn_ini_cfg.sapDot11Mode; -#else (WLAN_HDD_GET_CTX(pHostapdAdapter))->cfg_ini->sapDot11Mode; -#endif u_int16_t prev_rsn_length = 0; ENTER(); @@ -6857,6 +6855,9 @@ static int __wlan_hdd_cfg80211_add_key( struct wiphy *wiphy, case WLAN_CIPHER_SUITE_KRK: setKey.encType = eCSR_ENCRYPT_TYPE_KRK; break; + case WLAN_CIPHER_SUITE_BTK: + setKey.encType = eCSR_ENCRYPT_TYPE_BTK; + break; #endif #ifdef WLAN_FEATURE_11W @@ -9146,6 +9147,9 @@ static int wlan_hdd_cfg80211_set_cipher( hdd_adapter_t *pAdapter, case WLAN_CIPHER_SUITE_KRK: encryptionType = eCSR_ENCRYPT_TYPE_KRK; break; + case WLAN_CIPHER_SUITE_BTK: + encryptionType = eCSR_ENCRYPT_TYPE_BTK; + break; #endif default: hddLog(VOS_TRACE_LEVEL_ERROR, "%s: Unsupported cipher type %d", diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index 5c77adf3a634..e1c29e6af151 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -291,7 +291,7 @@ extern int hdd_ftm_stop(hdd_context_t *pHddCtx); #endif #endif #ifdef FEATURE_WLAN_AUTO_SHUTDOWN -v_VOID_t wlan_hdd_auto_shutdown_cb(v_PVOID_t data); +v_VOID_t wlan_hdd_auto_shutdown_cb(v_VOID_t); #endif /* Store WLAN driver version info in a global variable such that crash debugger @@ -10489,13 +10489,6 @@ void hdd_wlan_exit(hdd_context_t *pHddCtx) #ifdef IPA_OFFLOAD hdd_ipa_cleanup(pHddCtx); #endif -#ifdef FEATURE_WLAN_AUTO_SHUTDOWN - if (pHddCtx->cfg_ini->WlanAutoShutdown != 0) { - vosStatus = vos_timer_destroy(&pHddCtx->hdd_wlan_shutdown_timer); - if (!VOS_IS_STATUS_SUCCESS(vosStatus)) - hddLog(LOGE, FL("Failed to Destroy wlan auto shutdown timer")); - } -#endif //Free up dynamically allocated members inside HDD Adapter kfree(pHddCtx->cfg_ini); pHddCtx->cfg_ini= NULL; @@ -12066,13 +12059,10 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) } #ifdef FEATURE_WLAN_AUTO_SHUTDOWN - if (pHddCtx->cfg_ini->WlanAutoShutdown != 0) { - status = vos_timer_init( &pHddCtx->hdd_wlan_shutdown_timer, - VOS_TIMER_TYPE_SW, wlan_hdd_auto_shutdown_cb, - NULL); - if (!VOS_IS_STATUS_SUCCESS(status)) - hddLog(LOGE, FL("Failed to init wlan auto shutdown timer")); - } + if (pHddCtx->cfg_ini->WlanAutoShutdown != 0) + if (sme_set_auto_shutdown_cb(pHddCtx->hHal, wlan_hdd_auto_shutdown_cb) + != eHAL_STATUS_SUCCESS) + hddLog(LOGE, FL("Auto shutdown feature could not be enabled")); #endif #ifdef FEATURE_GREEN_AP @@ -13597,7 +13587,7 @@ void wlan_hdd_send_version_pkg(v_U32_t fw_version, #endif #ifdef FEATURE_WLAN_AUTO_SHUTDOWN -v_VOID_t wlan_hdd_auto_shutdown_cb(v_PVOID_t data) +v_VOID_t wlan_hdd_auto_shutdown_cb(v_VOID_t) { hddLog(LOGE, FL("%s: Wlan Idle. Sending Shutdown event.."),__func__); wlan_hdd_send_svc_nlink_msg(WLAN_SVC_WLAN_AUTO_SHUTDOWN_IND, NULL, 0); @@ -13605,19 +13595,21 @@ v_VOID_t wlan_hdd_auto_shutdown_cb(v_PVOID_t data) void wlan_hdd_auto_shutdown_enable(hdd_context_t *hdd_ctx, v_BOOL_t enable) { - VOS_STATUS vos_status = VOS_STATUS_SUCCESS; hdd_adapter_list_node_t *pAdapterNode = NULL, *pNext = NULL; VOS_STATUS status; hdd_adapter_t *pAdapter; v_BOOL_t ap_connected = VOS_FALSE, sta_connected = VOS_FALSE; + tHalHandle hHal; + + hHal = hdd_ctx->hHal; + if (hHal == NULL) + return; if (hdd_ctx->cfg_ini->WlanAutoShutdown == 0) return; if (enable == VOS_FALSE) { - if (hdd_ctx->hdd_wlan_shutdown_timer.state == VOS_TIMER_STATE_RUNNING) { - vos_status = vos_timer_stop(&hdd_ctx->hdd_wlan_shutdown_timer); - if (!VOS_IS_STATUS_SUCCESS(vos_status)) + if (sme_set_auto_shutdown_timer(hHal, 0) != eHAL_STATUS_SUCCESS) { hddLog(LOGE, FL("Failed to stop wlan auto shutdown timer")); } return; @@ -13651,16 +13643,13 @@ void wlan_hdd_auto_shutdown_enable(hdd_context_t *hdd_ctx, v_BOOL_t enable) hddLog(LOG1, FL("CC Session active. Shutdown timer not enabled")); return; } else { - if (hdd_ctx->hdd_wlan_shutdown_timer.state == VOS_TIMER_STATE_STOPPED) { - vos_status = vos_timer_start( &hdd_ctx->hdd_wlan_shutdown_timer, - hdd_ctx->cfg_ini->WlanAutoShutdown * 1000); - - if (!VOS_IS_STATUS_SUCCESS(vos_status)) - hddLog(LOGE, FL("Failed to start wlan auto shutdown timer")); - else - hddLog(LOG1, FL("CC Session Inactive. Shutdown timer enabled")); - - } + if (sme_set_auto_shutdown_timer(hHal, + hdd_ctx->cfg_ini->WlanAutoShutdown) + != eHAL_STATUS_SUCCESS) + hddLog(LOGE, FL("Failed to start wlan auto shutdown timer")); + else + hddLog(LOG1, FL("Auto Shutdown timer for %d seconds enabled"), + hdd_ctx->cfg_ini->WlanAutoShutdown); } } diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index 98269535edec..1fcd6d290f4a 100644 --- a/CORE/MAC/inc/qwlan_version.h +++ b/CORE/MAC/inc/qwlan_version.h @@ -42,9 +42,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 0 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 150 +#define QWLAN_VERSION_BUILD 151 -#define QWLAN_VERSIONSTR "1.0.0.150" +#define QWLAN_VERSIONSTR "1.0.0.151" #ifdef QCA_WIFI_2_0 diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index 3a43d8aeadfc..3df258b9ac50 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -5488,6 +5488,18 @@ typedef struct } tSirExtScanResultsAvailableIndParams, *tpSirExtScanResultsAvailableIndParams; +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN +typedef struct +{ + tANI_U32 timer_val; +} tSirAutoShutdownCmdParams; + +typedef struct +{ + tANI_U32 shutdown_reason; +} tSirAutoShutdownEvtParams; +#endif + typedef struct { tANI_U8 scanEventType; diff --git a/CORE/MAC/inc/wniApi.h b/CORE/MAC/inc/wniApi.h index 30cbafc74f7c..fccb49445e63 100644 --- a/CORE/MAC/inc/wniApi.h +++ b/CORE/MAC/inc/wniApi.h @@ -397,6 +397,9 @@ enum eWniMsgTypes eWNI_SME_CSA_OFFLOAD_EVENT, eWNI_SME_UPDATE_ADDITIONAL_IES, // indicates Additional IE from hdd to PE eWNI_SME_MODIFY_ADDITIONAL_IES, /* To indicate IE modify from hdd to PE */ +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + eWNI_SME_AUTO_SHUTDOWN_IND, +#endif #ifdef QCA_HT_2040_COEX eWNI_SME_SET_HT_2040_MODE, #endif diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h index c472ed969bcb..c25da409a03d 100644 --- a/CORE/MAC/src/include/sirParams.h +++ b/CORE/MAC/src/include/sirParams.h @@ -714,6 +714,9 @@ typedef struct sSirMbMsgP2p #define SIR_HAL_NAN_REQUEST (SIR_HAL_ITC_MSG_TYPES_BEGIN + 280) #endif /* WLAN_FEATURE_NAN */ +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN +#define SIR_HAL_SET_AUTO_SHUTDOWN_TIMER_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 281) +#endif #define SIR_HAL_MSG_TYPES_END (SIR_HAL_MSG_TYPES_BEGIN + 0x1FF) // CFG message types diff --git a/CORE/MAC/src/pe/lim/limFT.c b/CORE/MAC/src/pe/lim/limFT.c index 61dbb1eb775d..d81f44466d04 100644 --- a/CORE/MAC/src/pe/lim/limFT.c +++ b/CORE/MAC/src/pe/lim/limFT.c @@ -1904,9 +1904,9 @@ void limProcessFTRoamOffloadSynchInd(tpAniSirGlobal pMac, tpSirMsgQ pMsg) pftSessionEntry->limPrevSmeState = pftSessionEntry->limSmeState; pftSessionEntry->limSmeState = eLIM_SME_WT_REASSOC_STATE; pMac->ft.ftPEContext.pftSessionEntry = pftSessionEntry; - PELOGE(limLog(pMac,LOGE,"LFR3:%s:created session (%p) with id = %d", - __func__, pftSessionEntry, pftSessionEntry->peSessionId);) - + VOS_TRACE(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_DEBUG, + "LFR3:%s:created session (%p) with id = %d", + __func__, pftSessionEntry, pftSessionEntry->peSessionId); /* Update the ReAssoc BSSID of the current session */ sirCopyMacAddr(psessionEntry->limReAssocbssId, pbssDescription->bssId); limPrintMacAddr(pMac, psessionEntry->limReAssocbssId, LOG2); @@ -1918,7 +1918,7 @@ void limProcessFTRoamOffloadSynchInd(tpAniSirGlobal pMac, tpSirMsgQ pMsg) { pftSessionEntry->is11Rconnection = psessionEntry->is11Rconnection; #ifdef FEATURE_WLAN_ESE - pftSessionEntry->isCCXconnection = psessionEntry->isESEconnection; + pftSessionEntry->isESEconnection = psessionEntry->isESEconnection; #endif #if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR) pftSessionEntry->isFastTransitionEnabled = diff --git a/CORE/MAC/src/pe/lim/limUtils.c b/CORE/MAC/src/pe/lim/limUtils.c index 76e2b1175a5d..4fb055b9badc 100644 --- a/CORE/MAC/src/pe/lim/limUtils.c +++ b/CORE/MAC/src/pe/lim/limUtils.c @@ -7199,13 +7199,6 @@ void limProcessAddStaRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ) vos_mem_free(pAddStaParams); return; } -#ifdef WLAN_FEATURE_ROAM_OFFLOAD - if (psessionEntry->bRoamSynchInProgress) - { - /* change logging before release */ - limLog(pMac, LOGE, FL("LFR3:limProcessAddStaRsp")); - } -#endif psessionEntry->csaOffloadEnable = pAddStaParams->csaOffloadEnable; if (psessionEntry->limSystemRole == eLIM_STA_IN_IBSS_ROLE) (void) limIbssAddStaRsp(pMac, limMsgQ->bodyptr,psessionEntry); diff --git a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c index 45767a0330b4..433247c7f809 100644 --- a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c +++ b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c @@ -49,6 +49,7 @@ #include "pktlog_ac_api.h" #include "pktlog_ac.h" #endif +#include "epping_main.h" #ifndef ATH_BUS_PM #ifdef CONFIG_PM @@ -162,6 +163,12 @@ ath_hif_sdio_probe(void *context, void *hif_handle) VOS_TRACE(VOS_MODULE_ID_HIF, VOS_TRACE_LEVEL_INFO," hdd_wlan_startup success!"); } + /* epping is minimum ethernet driver and the + * epping fw does not support pktlog, etc. + * After hdd_wladriver is epping directly return. */ + if (WLAN_IS_EPPING_ENABLED(vos_get_conparam())) + goto end; + #ifndef REMOVE_PKT_LOG if (vos_get_conparam() != VOS_FTM_MODE) { /* @@ -173,7 +180,7 @@ ath_hif_sdio_probe(void *context, void *hif_handle) printk(KERN_ERR "%s: pktlogmod_init failed\n", __func__); } #endif - +end: return 0; err_attach2: @@ -211,7 +218,8 @@ ath_hif_sdio_remove(void *context, void *hif_handle) athdiag_procfs_remove(); #ifndef REMOVE_PKT_LOG - if (vos_get_conparam() != VOS_FTM_MODE){ + if (vos_get_conparam() != VOS_FTM_MODE && + !WLAN_IS_EPPING_ENABLED(vos_get_conparam())){ if (sc && sc->ol_sc) pktlogmod_exit(sc->ol_sc); } diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 69a00830696c..6f2b55a47a5f 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -260,7 +260,6 @@ VOS_STATUS wma_process_ch_avoid_update_req(tp_wma_handle wma_handle, static void wma_set_stakey(tp_wma_handle wma_handle, tpSetStaKeyParams key_info); static void wma_beacon_miss_handler(tp_wma_handle wma, u_int32_t vdev_id); - static void wma_set_suspend_dtim(tp_wma_handle wma); static void wma_set_resume_dtim(tp_wma_handle wma); @@ -302,7 +301,7 @@ static inline uint8_t wma_parse_mpdudensity(u_int8_t mpdudensity) } /* Function : wma_find_vdev_by_id - * Descriptin : Returns vdev handle for given vdev id. + * Description : Returns vdev handle for given vdev id. * Args : @wma - wma handle, @vdev_id - vdev ID * Returns : Returns vdev handle if given vdev id is valid. * Otherwise returns NULL. @@ -332,7 +331,7 @@ static inline u_int8_t wma_get_vdev_count(tp_wma_handle wma) } /* Function : wma_is_vdev_in_ap_mode - * Descriptin : Helper function to know whether given vdev id + * Description : Helper function to know whether given vdev id * is in AP mode or not. * Args : @wma - wma handle, @ vdev_id - vdev ID. * Returns : True - if given vdev id is in AP mode. @@ -358,7 +357,7 @@ static bool wma_is_vdev_in_ap_mode(tp_wma_handle wma, u_int8_t vdev_id) #ifdef QCA_IBSS_SUPPORT /* Function : wma_is_vdev_in_ibss_mode - s_vdev_in_ibss_mode* Descriptin : Helper function to know whether given vdev id + s_vdev_in_ibss_mode* Description : Helper function to know whether given vdev id * is in IBSS mode or not. * Args : @wma - wma handle, @ vdev_id - vdev ID. * Retruns : True - if given vdev id is in IBSS mode. @@ -426,7 +425,7 @@ static void *wma_find_vdev_by_bssid(tp_wma_handle wma, u_int8_t *bssid, /* ############# function definitions ############ */ /* function : wma_swap_bytes - * Descriptin : + * Description : * Args : * Retruns : */ @@ -492,6 +491,119 @@ tSmpsModeValue host_map_smps_mode (A_UINT32 fw_smps_mode) return smps_mode; } +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN +/* function : wma_post_auto_shutdown_msg + * Description : function to post auto shutdown event to sme + */ +static int wma_post_auto_shutdown_msg(void) +{ + tSirAutoShutdownEvtParams *auto_sh_evt; + VOS_STATUS vos_status; + vos_msg_t sme_msg = {0} ; + + auto_sh_evt = (tSirAutoShutdownEvtParams *) + vos_mem_malloc(sizeof(tSirAutoShutdownEvtParams)); + if (!auto_sh_evt) { + WMA_LOGE("%s: No Mem", __func__); + return -ENOMEM; + } + + auto_sh_evt->shutdown_reason = + WMI_HOST_AUTO_SHUTDOWN_REASON_TIMER_EXPIRY; + sme_msg.type = eWNI_SME_AUTO_SHUTDOWN_IND; + sme_msg.bodyptr = auto_sh_evt; + sme_msg.bodyval = 0; + + vos_status = vos_mq_post_message(VOS_MODULE_ID_SME, &sme_msg); + if ( !VOS_IS_STATUS_SUCCESS(vos_status) ) { + WMA_LOGE("Fail to post eWNI_SME_AUTO_SHUTDOWN_IND msg to SME"); + vos_mem_free(auto_sh_evt); + return -EINVAL; + } + + return 0; +} + +/* function : wma_auto_shutdown_event_handler + * Description : function to process auto shutdown timer trigger + */ +static int wma_auto_shutdown_event_handler(void *handle, u_int8_t *event, + u_int32_t len) +{ + wmi_host_auto_shutdown_event_fixed_param *wmi_auto_sh_evt; + WMI_HOST_AUTO_SHUTDOWN_EVENTID_param_tlvs *param_buf = + (WMI_HOST_AUTO_SHUTDOWN_EVENTID_param_tlvs *) + event; + + if (!param_buf) { + WMA_LOGE("%s:%d: Invalid Auto shutdown timer evt", __func__, + __LINE__); + return -EINVAL; + } + + + wmi_auto_sh_evt = param_buf->fixed_param; + if (!wmi_auto_sh_evt && wmi_auto_sh_evt->shutdown_reason + != WMI_HOST_AUTO_SHUTDOWN_REASON_TIMER_EXPIRY) { + WMA_LOGE("%s:%d: Invalid Auto shutdown timer evt", __func__, + __LINE__); + return -EINVAL; + } + + WMA_LOGD("%s:%d: Auto Shutdown Evt: %d", __func__, __LINE__, + wmi_auto_sh_evt->shutdown_reason); + return(wma_post_auto_shutdown_msg()); +} + +/* function : wma_set_auto_shutdown_timer_req + * Description : function sets auto shutdown timer in firmware + * Args : wma handle, auto shutdown timer value + * Returns : status of wmi cmd + */ +static VOS_STATUS wma_set_auto_shutdown_timer_req(tp_wma_handle wma_handle, + tSirAutoShutdownCmdParams *auto_sh_cmd) +{ + int status = 0; + wmi_buf_t buf = NULL; + u_int8_t *buf_ptr; + wmi_host_auto_shutdown_cfg_cmd_fixed_param *wmi_auto_sh_cmd; + int len = sizeof(wmi_host_auto_shutdown_cfg_cmd_fixed_param); + + if (auto_sh_cmd == NULL) { + WMA_LOGE("%s : Invalid Autoshutdown cfg cmd", __func__); + return VOS_STATUS_E_FAILURE; + } + + WMA_LOGD("%s: Set WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID:TIMER_VAL=%d", + __func__, auto_sh_cmd->timer_val); + + buf = wmi_buf_alloc(wma_handle->wmi_handle, len); + if (!buf) { + WMA_LOGE("%s : wmi_buf_alloc failed", __func__); + return VOS_STATUS_E_NOMEM; + } + + buf_ptr = (u_int8_t *) wmi_buf_data(buf); + wmi_auto_sh_cmd = (wmi_host_auto_shutdown_cfg_cmd_fixed_param *)buf_ptr; + wmi_auto_sh_cmd->timer_value = auto_sh_cmd->timer_val; + + WMITLV_SET_HDR(&wmi_auto_sh_cmd->tlv_header, + WMITLV_TAG_STRUC_wmi_host_auto_shutdown_cfg_cmd_fixed_param, + WMITLV_GET_STRUCT_TLVLEN(wmi_host_auto_shutdown_cfg_cmd_fixed_param)); + + status = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, + len, WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID); + if (status != EOK) { + WMA_LOGE("%s: WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID Err %d", + __func__, status); + wmi_buf_free(buf); + return VOS_STATUS_E_FAILURE; + } + + return VOS_STATUS_SUCCESS; +} +#endif + static void wma_vdev_start_rsp(tp_wma_handle wma, tpAddBssParams add_bss, wmi_vdev_start_response_event_fixed_param *resp_event) @@ -683,7 +795,7 @@ static int wma_vdev_start_rsp_ind(tp_wma_handle wma, u_int8_t *buf) } /* function : wma_unified_debug_print_event_handler - * Descriptin : + * Description : * Args : * Returns : */ @@ -1973,6 +2085,7 @@ static int wma_extscan_capabilities_event_handler (void *handle, wmi_extscan_capabilities_event_fixed_param *event; wmi_extscan_cache_capabilities *src_cache; wmi_extscan_hotlist_monitor_capabilities *src_hotlist; + wmi_extscan_wlan_change_monitor_capabilities *src_change; tSirExtScanCapabilitiesEvent *dest_capab; tpAniSirGlobal pMac = (tpAniSirGlobal )vos_get_context( @@ -1994,8 +2107,9 @@ static int wma_extscan_capabilities_event_handler (void *handle, event = param_buf->fixed_param; src_cache = param_buf->extscan_cache_capabilities; src_hotlist = param_buf->hotlist_capabilities; + src_change = param_buf->wlan_change_capabilities; - if (!src_cache || !src_hotlist) { + if (!src_cache || !src_hotlist || !src_change) { WMA_LOGE("%s: Invalid capabilities list", __func__); return -EINVAL; } @@ -2008,7 +2122,17 @@ static int wma_extscan_capabilities_event_handler (void *handle, dest_capab->requestId = event->request_id; dest_capab->scanBuckets = src_cache->max_buckets; dest_capab->scanCacheSize = src_cache->scan_cache_entry_size; + dest_capab->maxApPerScan = src_cache->max_bssid_per_scan; + dest_capab->maxScanReportingThreshold = + src_cache->max_table_usage_threshold; + dest_capab->maxHotlistAPs = src_hotlist->max_hotlist_entries; + dest_capab->maxRssiSampleSize = + src_change->max_rssi_averaging_samples; + dest_capab->maxBsidHistoryEntries = + src_change->max_rssi_history_entries; + dest_capab->maxSignificantWifiChangeAPs = + src_change->max_wlan_change_entries; dest_capab->status = 0; WMA_LOGD("%s: Capabilities: scanBuckets: %d," @@ -2084,11 +2208,9 @@ static int wma_extscan_hotlist_match_event_handler(void *handle, dest_ap->ieLength = src_hotlist-> ie_length; WMI_MAC_ADDR_TO_CHAR_ARRAY(&src_hotlist->bssid, dest_ap->bssid); - if (src_hotlist->ssid.ssid_len) { - vos_mem_copy(dest_ap->ssid, src_hotlist->ssid.ssid, + vos_mem_copy(dest_ap->ssid, src_hotlist->ssid.ssid, src_hotlist->ssid.ssid_len); - dest_ap->ssid[src_hotlist->ssid.ssid_len] = '\0'; - } + dest_ap->ssid[src_hotlist->ssid.ssid_len] = '\0'; dest_ap++; src_hotlist++; } @@ -2109,6 +2231,7 @@ static int wma_extscan_cached_results_event_handler(void *handle, tSirWifiScanResultEvent *dest_cachelist; tSirWifiScanResult *dest_ap; wmi_extscan_wlan_descriptor *src_hotlist; + wmi_extscan_rssi_info *src_rssi; int numap; int j; int moredata; @@ -2131,6 +2254,12 @@ static int wma_extscan_cached_results_event_handler(void *handle, } event = param_buf->fixed_param; src_hotlist = param_buf->bssid_list; + src_rssi = param_buf->rssi_list; + if (!src_hotlist || !src_rssi) { + WMA_LOGE("%s: Cached_results AP's list invalid", + __func__); + return -EINVAL; + } if (event->first_entry_index + event->num_entries_in_page < event->total_entries) { moredata = 1; @@ -2162,15 +2291,15 @@ static int wma_extscan_cached_results_event_handler(void *handle, dest_ap->beaconPeriod = src_hotlist->beacon_interval; dest_ap->capability = src_hotlist->capabilities; dest_ap->ieLength = src_hotlist-> ie_length; + dest_ap->rssi = src_rssi->rssi; WMI_MAC_ADDR_TO_CHAR_ARRAY(&src_hotlist->bssid, dest_ap->bssid); - if (src_hotlist->ssid.ssid_len) { - vos_mem_copy(dest_ap->ssid, src_hotlist->ssid.ssid, + vos_mem_copy(dest_ap->ssid, src_hotlist->ssid.ssid, src_hotlist->ssid.ssid_len); - dest_ap->ssid[src_hotlist->ssid.ssid_len] = '\0'; - } + dest_ap->ssid[src_hotlist->ssid.ssid_len] = '\0'; dest_ap++; src_hotlist++; + src_rssi++; } pMac->sme.pExtScanIndCb(pMac->hHdd, eSIR_EXTSCAN_CACHED_RESULTS_IND, @@ -4694,7 +4823,7 @@ err_wma_handle: } /* function : wma_pre_start - * Descriptin : + * Description : * Args : * Returns : */ @@ -4753,7 +4882,7 @@ end: } /* function : wma_send_msg - * Descriptin : + * Description : * Args : * Returns : */ @@ -4777,7 +4906,7 @@ static void wma_send_msg(tp_wma_handle wma_handle, u_int16_t msg_type, } /* function : wma_get_txrx_vdev_type - * Descriptin : + * Description : * Args : * Returns : */ @@ -4806,7 +4935,7 @@ enum wlan_op_mode wma_get_txrx_vdev_type(u_int32_t type) } /* function : wma_unified_vdev_create_send - * Descriptin : + * Description : * Args : * Returns : */ @@ -4846,7 +4975,7 @@ int wma_unified_vdev_create_send(wmi_unified_t wmi_handle, u_int8_t if_id, } /* function : wma_unified_vdev_delete_send - * Descriptin : + * Description : * Args : * Returns : */ @@ -4919,7 +5048,7 @@ void wma_vdev_detach_callback(void *ctx) } /* function : wma_vdev_detach - * Descriptin : + * Description : * Args : * Returns : */ @@ -5520,7 +5649,7 @@ static VOS_STATUS wma_set_mcc_channel_time_quota } /* function : wma_vdev_attach - * Descriptin : + * Description : * Args : * Returns : */ @@ -5802,7 +5931,7 @@ fail: } /* function : wma_set_scan_info - * Descriptin : function to save current ongoing scan info + * Description : function to save current ongoing scan info * Args : wma handle, scan id, scan requestor id, vdev id * Returns : None */ @@ -5819,7 +5948,7 @@ static inline void wma_set_scan_info(tp_wma_handle wma_handle, } /* function : wma_reset_scan_info - * Descriptin : function to reset the current ongoing scan info + * Description : function to reset the current ongoing scan info * Args : wma handle, vdev_id * Returns : None */ @@ -5906,7 +6035,7 @@ v_BOOL_t wma_is_STA_active(tp_wma_handle wma_handle) /* function : wma_get_buf_start_scan_cmd - * Descriptin : + * Description : * Args : * Returns : */ @@ -6213,7 +6342,7 @@ error: } /* function : wma_get_buf_stop_scan_cmd - * Descriptin : function to fill the args for wmi_stop_scan_cmd + * Description : function to fill the args for wmi_stop_scan_cmd * Args : wma handle, wmi command buffer, buffer length, vdev_id * Returns : failure or success */ @@ -6307,7 +6436,7 @@ VOS_STATUS wma_send_snr_request(tp_wma_handle wma_handle, void *pGetRssiReq, } /* function : wma_start_scan - * Descriptin : + * Description : * Args : * Returns : */ @@ -6425,7 +6554,7 @@ error1: } /* function : wma_stop_scan - * Descriptin : function to send the stop scan command + * Description : function to send the stop scan command * Args : wma_handle * Returns : failure or success */ @@ -6471,7 +6600,7 @@ error1: } /* function : wma_update_channel_list - * Descriptin : Function is used to update the support channel list + * Description : Function is used to update the support channel list * Args : wma_handle, list of supported channels and power * Returns : SUCCESS or FAILURE */ @@ -6741,7 +6870,7 @@ VOS_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle, #endif /* function : wma_roam_scan_offload_mode - * Descriptin : send WMI_ROAM_SCAN_MODE TLV to firmware. It has a piggyback + * Description : send WMI_ROAM_SCAN_MODE TLV to firmware. It has a piggyback * : of WMI_ROAM_SCAN_MODE. * Args : scan_cmd_fp contains the scan parameters. * : mode controls rssi based and periodic scans by roam engine. @@ -6955,7 +7084,7 @@ error: } /* function : wma_roam_scan_offload_rssi_threshold - * Descriptin : Send WMI_ROAM_SCAN_RSSI_THRESHOLD TLV to firmware + * Description : Send WMI_ROAM_SCAN_RSSI_THRESHOLD TLV to firmware * Args : * Returns : */ @@ -7007,7 +7136,7 @@ error: } /* function : wma_roam_scan_offload_scan_period - * Descriptin : Send WMI_ROAM_SCAN_PERIOD TLV to firmware + * Description : Send WMI_ROAM_SCAN_PERIOD TLV to firmware * Args : * Returns : */ @@ -7058,7 +7187,7 @@ error: return vos_status; } /* function : wma_roam_scan_offload_rssi_change - * Descriptin : Send WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD TLV to firmware + * Description : Send WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD TLV to firmware * Args : * Returns : */ @@ -7110,7 +7239,7 @@ error: } /* function : wma_roam_scan_offload_chan_list - * Descriptin : Send WMI_ROAM_CHAN_LIST TLV to firmware + * Description : Send WMI_ROAM_CHAN_LIST TLV to firmware * Args : * Returns : */ @@ -7184,7 +7313,7 @@ error: } /* function : eCsrAuthType_to_rsn_authmode - * Descriptin : Map CSR's authentication type into RSN auth mode used by firmware + * Description : Map CSR's authentication type into RSN auth mode used by firmware * Args : * Returns : */ @@ -7241,7 +7370,7 @@ A_UINT32 eCsrAuthType_to_rsn_authmode (eCsrAuthType authtype, eCsrEncryptionType } /* function : eCsrEncryptionType_to_rsn_cipherset - * Descriptin : Map CSR's encryption type into RSN cipher types used by firmware + * Description : Map CSR's encryption type into RSN cipher types used by firmware * Args : * Returns : */ @@ -7271,7 +7400,7 @@ A_UINT32 eCsrEncryptionType_to_rsn_cipherset (eCsrEncryptionType encr) { } /* function : wma_roam_scan_fill_ap_profile - * Descriptin : Fill ap_profile structure from configured parameters + * Description : Fill ap_profile structure from configured parameters * Args : * Returns : */ @@ -7304,7 +7433,7 @@ v_VOID_t wma_roam_scan_fill_ap_profile(tp_wma_handle wma_handle, tpAniSirGlobal } /* function : wma_roam_scan_scan_params - * Descriptin : Fill scan_params structure from configured parameters + * Description : Fill scan_params structure from configured parameters * Args : roam_req pointer = NULL if this routine is called before connect * : It will be non-NULL if called after assoc. * Returns : @@ -7467,7 +7596,7 @@ v_VOID_t wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle, } /* function : wma_roam_scan_offload_ap_profile - * Descriptin : Send WMI_ROAM_AP_PROFILE TLV to firmware + * Description : Send WMI_ROAM_AP_PROFILE TLV to firmware * Args : AP profile parameters are passed in as the structure used in TLV * Returns : */ @@ -7550,7 +7679,7 @@ VOS_STATUS wma_roam_scan_bmiss_cnt(tp_wma_handle wma_handle, } /* function : wma_roam_scan_offload_init_connect - * Descriptin : Rome firmware requires that roam scan engine is configured prior to + * Description : Rome firmware requires that roam scan engine is configured prior to * : sending VDEV_UP command to firmware. This routine configures it * : to default values with only periodic scan mode. Rssi triggerred scan * : is not enabled, preventing unnecessary off-channel scans while EAPOL @@ -7594,7 +7723,7 @@ VOS_STATUS wma_roam_scan_offload_init_connect(tp_wma_handle wma_handle) } /* function : wma_roam_scan_offload_end_connect - * Descriptin : Stop the roam scan by setting scan mode to 0. + * Description : Stop the roam scan by setting scan mode to 0. * Args : * Returns : */ @@ -7666,7 +7795,7 @@ error: } /* function : wma_process_roam_scan_req - * Descriptin : Main routine to handle ROAM commands coming from CSR module. + * Description : Main routine to handle ROAM commands coming from CSR module. * Args : * Returns : */ @@ -7902,7 +8031,7 @@ VOS_STATUS wma_process_roam_scan_req(tp_wma_handle wma_handle, #ifdef FEATURE_WLAN_LPHB /* function : wma_lphb_conf_hbenable - * Descriptin : handles the enable command of LPHB configuration requests + * Description : handles the enable command of LPHB configuration requests * Args : * Returns : */ @@ -7964,7 +8093,7 @@ error: } /* function : wma_lphb_conf_tcp_params - * Descriptin : handles the tcp params command of LPHB configuration requests + * Description : handles the tcp params command of LPHB configuration requests * Args : * Returns : */ @@ -8041,7 +8170,7 @@ error: } /* function : wma_lphb_conf_tcp_pkt_filter - * Descriptin : handles the tcp packet filter command of LPHB configuration requests + * Description : handles the tcp packet filter command of LPHB configuration requests * Args : * Returns : */ @@ -8112,7 +8241,7 @@ error: } /* function : wma_lphb_conf_udp_params - * Descriptin : handles the udp params command of LPHB configuration requests + * Description : handles the udp params command of LPHB configuration requests * Args : * Returns : */ @@ -8187,7 +8316,7 @@ error: } /* function : wma_lphb_conf_udp_pkt_filter - * Descriptin : handles the udp packet filter command of LPHB configuration requests + * Description : handles the udp packet filter command of LPHB configuration requests * Args : * Returns : */ @@ -8258,7 +8387,7 @@ error: } /* function : wma_process_lphb_conf_req - * Descriptin : handles LPHB configuration requests + * Description : handles LPHB configuration requests * Args : * Returns : */ @@ -15384,6 +15513,10 @@ static const u8 *wma_wow_wake_reason_str(A_INT32 wake_reason) case WOW_REASON_RA_MATCH: return "WOW_REASON_RA_MATCH"; #endif +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + case WOW_REASON_HOST_AUTO_SHUTDOWN: + return "WOW_REASON_HOST_AUTO_SHUTDOWN"; +#endif } return "unknown"; } @@ -15532,6 +15665,14 @@ static int wma_wow_wakeup_host_event(void *handle, u_int8_t *event, wake_lock_duration = WMA_RA_MATCH_RECV_WAKE_LOCK_DURATION; break; #endif +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + case WOW_REASON_HOST_AUTO_SHUTDOWN: + wake_lock_duration = WMA_AUTO_SHUTDOWN_WAKE_LOCK_DURATION; + WMA_LOGA("Received WOW Auto Shutdown trigger in suspend"); + if (wma_post_auto_shutdown_msg()) + return -EINVAL; + break; +#endif #ifdef FEATURE_WLAN_SCAN_PNO case WOW_REASON_NLOD: wake_lock_duration = WMA_PNO_WAKE_LOCK_TIMEOUT; @@ -16560,7 +16701,14 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma, } else WMA_LOGD("gRAFilterEnable is not set, RA filterning is disabled"); #endif - +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + ret = wma_add_wow_wakeup_event(wma, WOW_HOST_AUTO_SHUTDOWN_EVENT, TRUE); + if (ret != VOS_STATUS_SUCCESS) { + WMA_LOGE("Failed to Configure auto shutdown WOW event to FW"); + goto end; + } else + WMA_LOGE("Configure auto shutdown WOW event to FW: success"); +#endif /* WOW is enabled in pcie suspend callback */ wma->wow.wow_enable = TRUE; wma->wow.wow_enable_cmd_sent = FALSE; @@ -18652,7 +18800,7 @@ static void wma_process_update_userpos(tp_wma_handle wma_handle, #ifdef FEATURE_WLAN_BATCH_SCAN /* function : wma_batch_scan_enable - * Descriptin : This function handles WDA_SET_BATCH_SCAN_REQ from UMAC + * Description : This function handles WDA_SET_BATCH_SCAN_REQ from UMAC and sends WMI_BATCH_SCAN_ENABLE_CMDID to target * Args : handle : Pointer to WMA handle @@ -18705,7 +18853,7 @@ VOS_STATUS wma_batch_scan_enable } /* function : wma_batch_scan_disable - * Descriptin : This function handles WDA_STOP_BATCH_SCAN_REQ from UMAC + * Description : This function handles WDA_STOP_BATCH_SCAN_REQ from UMAC and sends WMI_BATCH_SCAN_DISABLE_CMDID to target * Args : handle : Pointer to WMA handle @@ -18751,7 +18899,7 @@ VOS_STATUS wma_batch_scan_disable } /* function : wma_batch_scan_trigger_result - * Descriptin : This function handles WDA_TRIGGER_BATCH_SCAN_RESULT_IND from + * Description : This function handles WDA_TRIGGER_BATCH_SCAN_RESULT_IND from UMAC and sends WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID to target * Args : handle : Pointer to WMA handle @@ -18798,7 +18946,7 @@ VOS_STATUS wma_batch_scan_trigger_result #endif /* function : wma_process_init_thermal_info - * Descriptin : This function initializes the thermal management table in WMA, + * Description : This function initializes the thermal management table in WMA, sends down the initial temperature thresholds to the firmware and configures the throttle period in the tx rx module * Args : @@ -18887,7 +19035,7 @@ VOS_STATUS wma_process_init_thermal_info(tp_wma_handle wma, /* function : wma_process_set_thermal_level - * Descriptin : This function set the new thermal throttle level in the + * Description : This function set the new thermal throttle level in the txrx module and sends down the corresponding temperature thresholds to the firmware * Args : @@ -19241,7 +19389,7 @@ static void wma_process_set_p2pgo_noa_Req(tp_wma_handle wma, } /* function : wma_process_set_mimops_req - * Descriptin : Set the received MiMo PS state to firmware. + * Description : Set the received MiMo PS state to firmware. * Args : wma_handle : Pointer to WMA handle * tSetMIMOPS : Pointer to MiMo PS struct @@ -19270,7 +19418,7 @@ static void wma_process_set_mimops_req(tp_wma_handle wma_handle, } /* function : wma_set_vdev_intrabss_fwd - * Descriptin : Set intra_fwd value to wni_in. + * Description : Set intra_fwd value to wni_in. * Args : * wma_handle : Pointer to WMA handle * pdis_intra_fwd : Pointer to DisableIntraBssFwd struct @@ -19643,6 +19791,7 @@ static VOS_STATUS wma_process_ll_stats_getReq cmd->min_dwell_time_passive = dwelltime; cmd->max_dwell_time_passive = dwelltime; cmd->max_bssids_per_scan_cycle = pstart->maxAPperScan; + cmd->max_table_usage = pstart->reportThreshold; cmd->repeat_probe_time = WMA_EXTSCAN_REPEAT_PROBE; cmd->max_scan_time = WMA_EXTSCAN_MAX_SCAN_TIME; @@ -19655,7 +19804,6 @@ static VOS_STATUS wma_process_ll_stats_getReq WMI_SCAN_ADD_CCK_RATES | WMI_SCAN_ADD_OFDM_RATES; cmd->scan_priority = WMI_SCAN_PRIORITY_HIGH; - cmd->max_table_usage = WMA_EXTSCAN_MAX_TABLE_USAGE; cmd->notify_extscan_events = WMI_EXTSCAN_CYCLE_COMPLETED_EVENT | WMI_EXTSCAN_BUCKET_OVERRUN_EVENT; cmd->num_ssids = 0; @@ -19709,6 +19857,7 @@ static VOS_STATUS wma_process_ll_stats_getReq dest_blist->min_dwell_time_passive = dwelltime; dest_blist->max_dwell_time_passive = dwelltime; dest_blist->forwarding_flags = 0; + src_channel = src_bucket->channels; /* save the channel info to later populate * the channel TLV @@ -20368,7 +20517,7 @@ static VOS_STATUS wma_nan_req(void *wda_handle, tpNanRequest nan_req) /* * function : wma_mc_process_msg - * Descriptin : + * Description : * Args : * Returns : */ @@ -20738,7 +20887,13 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg) vos_mem_free(msg->bodyptr); break; #endif - +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + case WDA_SET_AUTO_SHUTDOWN_TIMER_REQ: + wma_set_auto_shutdown_timer_req(wma_handle, + msg->bodyptr); + vos_mem_free(msg->bodyptr); + break; +#endif case WDA_DHCP_START_IND: case WDA_DHCP_STOP_IND: wma_process_dhcp_ind(wma_handle, @@ -20805,7 +20960,6 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg) wma_vdev_start_rsp_ind(wma_handle, msg->bodyptr); vos_mem_free(msg->bodyptr); break; - case WDA_ROAM_PREAUTH_IND: wma_roam_preauth_ind(wma_handle, msg->bodyptr); vos_mem_free(msg->bodyptr); @@ -21052,7 +21206,7 @@ static void wma_mgmt_tx_ack_work_handler(struct work_struct *ack_work) } /* function : wma_mgmt_tx_comp_conf_ind - * Descriptin : Post mgmt tx complete indication to PE. + * Description : Post mgmt tx complete indication to PE. * Args : wma_handle : Pointer to WMA handle * sub_type : Tx mgmt frame sub type @@ -21226,7 +21380,7 @@ static VOS_STATUS wma_tx_detach(tp_wma_handle wma_handle) } /* function : wma_roam_better_ap_handler - * Descriptin : Handler for WMI_ROAM_REASON_BETTER_AP event from roam firmware in Rome. + * Description : Handler for WMI_ROAM_REASON_BETTER_AP event from roam firmware in Rome. * : This event means roam algorithm in Rome has found a better matching * : candidate AP. The indication is sent through tl_shim as by repeating * : the last beacon. Hence this routine calls a tlshim routine. @@ -21246,7 +21400,7 @@ static void wma_roam_better_ap_handler(tp_wma_handle wma, u_int32_t vdev_id) } /* function : wma_roam_event_callback - * Descriptin : Handler for all events from roam engine in firmware + * Description : Handler for all events from roam engine in firmware * Args : * Returns : */ @@ -21466,7 +21620,7 @@ static int wma_mcc_vdev_tx_pause_evt_handler(void *handle, u_int8_t *event, #endif /* QCA_SUPPORT_TXRX_VDEV_PAUSE_LL */ /* function : wma_set_thermal_mgmt - * Descriptin : This function sends the thermal management command to the firmware + * Description : This function sends the thermal management command to the firmware * Args : wma_handle : Pointer to WMA handle * thermal_info : Thermal command information @@ -21514,7 +21668,7 @@ static VOS_STATUS wma_set_thermal_mgmt(tp_wma_handle wma_handle, } /* function : wma_thermal_mgmt_get_level - * Descriptin : This function returns the thermal(throttle) level given the temperature + * Description : This function returns the thermal(throttle) level given the temperature * Args : handle : Pointer to WMA handle * temp : temperature @@ -21548,7 +21702,7 @@ u_int8_t wma_thermal_mgmt_get_level(void *handle, u_int32_t temp) } /* function : wma_thermal_mgmt_evt_handler - * Descriptin : This function handles the thermal mgmt event from the firmware + * Description : This function handles the thermal mgmt event from the firmware * Args : wma_handle : Pointer to WMA handle * event : Thermal event information @@ -21630,7 +21784,7 @@ static int wma_thermal_mgmt_evt_handler(void *handle, u_int8_t *event, #ifdef FEATURE_WLAN_BATCH_SCAN /* function : wma_batch_scan_result_event_handler - * Descriptin : Batch scan result event handler from target. This function + * Description : Batch scan result event handler from target. This function * converts target batch scan response into HDD readable format * and calls HDD supplied callback * Args : @@ -21815,7 +21969,7 @@ done: } /* function : wma_batch_scan_enable_event_handler - * Descriptin : Batch scan enable event handler from target. This function + * Description : Batch scan enable event handler from target. This function * gets minimum no of supported batch scan info from target * and calls HDD supplied callback * Args : @@ -21941,7 +22095,7 @@ static int wma_channel_avoid_evt_handler(void *handle, u_int8_t *event, } /* function : wma_process_ch_avoid_update_req - * Descriptin : handles channel avoid update request + * Description : handles channel avoid update request * Args : * Returns : */ @@ -21994,7 +22148,7 @@ VOS_STATUS wma_process_ch_avoid_update_req(tp_wma_handle wma_handle, #endif /* FEATURE_WLAN_CH_AVOID */ /* function : wma_scan_completion_timeout - * Descriptin : + * Description : * Args : * Returns : */ @@ -22038,7 +22192,7 @@ void wma_scan_completion_timeout(void *data) } /* function : wma_start - * Descriptin : + * Description : * Args : * Returns : */ @@ -22196,7 +22350,16 @@ VOS_STATUS wma_start(v_VOID_t *vos_ctx) goto end; } #endif /* FEATURE_WLAN_CH_AVOID */ - +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + WMA_LOGD("Registering auto shutdown handler"); + status = wmi_unified_register_event_handler(wma_handle->wmi_handle, + WMI_HOST_AUTO_SHUTDOWN_EVENTID, wma_auto_shutdown_event_handler); + if (status) { + WMA_LOGE("Failed to register WMI Auto shutdown event handler"); + vos_status = VOS_STATUS_E_FAILURE; + goto end; + } +#endif status = wmi_unified_register_event_handler( wma_handle->wmi_handle, WMI_THERMAL_MGMT_EVENTID, @@ -22241,7 +22404,7 @@ end: } /* function : wma_stop - * Descriptin : + * Description : * Args : * Returns : */ @@ -22374,7 +22537,7 @@ static void wma_dfs_detach(struct ieee80211com *dfs_ic) } /* function : wma_close - * Descriptin : + * Description : * Args : * Returns : */ @@ -23046,7 +23209,7 @@ v_VOID_t wma_rx_service_ready_event(WMA_HANDLE handle, void *cmd_param_info) } /* function : wma_rx_ready_event - * Descriptin : + * Description : * Args : * Retruns : */ @@ -23656,7 +23819,7 @@ error: } /* function :wma_setneedshutdown - * Descriptin : + * Description : * Args : * Returns : */ @@ -23679,7 +23842,7 @@ v_VOID_t wma_setneedshutdown(v_VOID_t *vos_ctx) } /* function : wma_rx_ready_event - * Descriptin : + * Description : * Args : * Returns : */ diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h index 4f431a0d81f8..dcd95809c48c 100644 --- a/CORE/SERVICES/WMA/wma.h +++ b/CORE/SERVICES/WMA/wma.h @@ -185,7 +185,6 @@ #define WMA_EXTSCAN_MAX_SCAN_TIME 50000 #define WMA_EXTSCAN_REPEAT_PROBE 10 #define WMA_EXTSCAN_BURST_DURATION 150 -#define WMA_EXTSCAN_MAX_TABLE_USAGE 71 #endif typedef struct { @@ -1372,6 +1371,9 @@ VOS_STATUS wma_send_snr_request(tp_wma_handle wma_handle, void *pGetRssiReq, #define WMA_ASSOC_REQ_RECV_WAKE_LOCK_DURATION (30 * 1000) /* in msec */ #define WMA_DEAUTH_RECV_WAKE_LOCK_DURATION (30 * 1000) /* in msec */ #define WMA_DISASSOC_RECV_WAKE_LOCK_DURATION (30 * 1000) /* in msec */ +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN +#define WMA_AUTO_SHUTDOWN_WAKE_LOCK_DURATION (30 * 1000) /* in msec */ +#endif #ifdef FEATURE_WLAN_RA_FILTERING #define WMA_RA_MATCH_RECV_WAKE_LOCK_DURATION (5 * 1000) /* in msec */ #endif diff --git a/CORE/SME/inc/smeInternal.h b/CORE/SME/inc/smeInternal.h index 82bb6e6f7bb8..cfb780d9d817 100644 --- a/CORE/SME/inc/smeInternal.h +++ b/CORE/SME/inc/smeInternal.h @@ -153,6 +153,9 @@ typedef struct tagSmeStruct void(*pLinkLayerStatsIndCallback)(void *callbackContext, int indType, void *pRsp); #endif /* WLAN_FEATURE_LINK_LAYER_STATS */ +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + void (*pAutoShutdownNotificationCb) (void); +#endif /* Maximum interfaces allowed by the host */ tANI_U8 max_intf_count; void (* StatsExtCallback) (void *, tStatsExtEvent *); diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h index e8b3a8e6b8c8..d5ea60191a9c 100644 --- a/CORE/SME/inc/sme_Api.h +++ b/CORE/SME/inc/sme_Api.h @@ -3560,6 +3560,27 @@ eHalStatus sme_ChAvoidUpdateReq ); #endif /* FEATURE_WLAN_CH_AVOID */ +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN +/* --------------------------------------------------------------------------- + \fn sme_auto_shutdown_cb + \brief Used to plug in callback function for receiving auto shutdown evt + \param hHal + \param pCallbackfn : callback function pointer should be plugged in + \- return eHalStatus +-------------------------------------------------------------------------*/ +eHalStatus sme_set_auto_shutdown_cb(tHalHandle hHal, + void (*pCallbackfn)(void)); + +/* --------------------------------------------------------------------------- + \fn sme_set_auto_shutdown_timer + \API to set auto shutdown timer value in FW. + \param hHal - The handle returned by macOpen + \param timer_val - The auto shutdown timer value to be set + \- return Configuration message posting status, SUCCESS or Fail + -------------------------------------------------------------------------*/ +eHalStatus sme_set_auto_shutdown_timer(tHalHandle hHal, tANI_U32 timer_value); +#endif + eHalStatus sme_RoamChannelChangeReq( tHalHandle hHal, tCsrBssid bssid, tANI_U8 targetChannel, eCsrPhyMode phyMode ); diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index feb0d850d0ce..e3aeb34c3c47 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -4860,8 +4860,6 @@ eHalStatus csrRoamProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand ) break; #ifdef WLAN_FEATURE_ROAM_OFFLOAD case eCsrPerformRoamOffloadSynch: - VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, - "LFR3:%s: Attempting Roam Offload Sync", __func__); status = csrRoamIssueFTRoamOffloadSynch(pMac, sessionId, pCommand->u.roamCmd.pLastRoamBss); break; @@ -8940,9 +8938,9 @@ static eHalStatus csrRoamIssueSetKeyCommand( tpAniSirGlobal pMac, tANI_U32 sessi ( (!HAL_STATUS_SUCCESS( status ) ) #ifdef FEATURE_WLAN_ESE || ( eCSR_ENCRYPT_TYPE_KRK == pSetKey->encType ) -#ifdef WLAN_FEATURE_WLAN_ROAM +#ifdef WLAN_FEATURE_ROAM_OFFLOAD || ( eCSR_ENCRYPT_TYPE_BTK == pSetKey->encType ) -#endif /* WLAN_FEATURE_WLAN_ROAM */ +#endif /* WLAN_FEATURE_ROAM_OFFLOAD */ #endif /* FEATURE_WLAN_ESE */ ) ) { @@ -16427,7 +16425,6 @@ void csrRoamOffload(tpAniSirGlobal pMac, tSirRoamOffloadScanReq *pRequestBuf, if (csrIsAuthTypeESE(pRequestBuf->ConnectedNetwork.authentication)) { vos_mem_copy(pRequestBuf->KRK,pSession->eseCckmInfo.krk, SIR_KRK_KEY_LEN); vos_mem_copy(pRequestBuf->BTK,pSession->eseCckmInfo.btk, SIR_BTK_KEY_LEN); - pRequestBuf->IsESEConnection = eANI_BOOLEAN_TRUE; } #endif pRequestBuf->AcUapsd.acbe_uapsd = @@ -18424,8 +18421,9 @@ eHalStatus csrRoamDequeueRoamOffloadSynch(tpAniSirGlobal pMac) if ( (eSmeCommandRoam == pCommand->command) && (eCsrPerformRoamOffloadSynch == pCommand->u.roamCmd.roamReason)) { - smsLog( pMac, LOGE, FL("DQ-Command = %d, Reason = %d"), - pCommand->command, pCommand->u.roamCmd.roamReason); + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, + "LFR3:DQ-Command = %d, Reason = %d", + pCommand->command, pCommand->u.roamCmd.roamReason); if (csrLLRemoveEntry( &pMac->sme.smeCmdActiveList, pEntry, LL_ACCESS_LOCK )) { csrReleaseCommand( pMac, pCommand ); } @@ -18525,9 +18523,9 @@ void csrProcessRoamOffloadSynchInd(tpAniSirGlobal pMac, void *pMsgBuf) smeRoamOffloadSynchInd->reassocRespOffset, pMac->roam.reassocRespLen); - VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, "LFR3:%s: the reassoc resp frame data:", __func__); - VOS_TRACE_HEX_DUMP(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, + VOS_TRACE_HEX_DUMP(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, pMac->roam.pReassocResp, pMac->roam.reassocRespLen); diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c index 4c5c72ccaffa..ac3330170aa9 100644 --- a/CORE/SME/src/csr/csrApiScan.c +++ b/CORE/SME/src/csr/csrApiScan.c @@ -8652,8 +8652,8 @@ eHalStatus csrScanSaveRoamOffloadApToScanCache(tpAniSirGlobal pMac, return eHAL_STATUS_FAILURE; } - VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG,"LFR3: Beacon/Prb Rsp:"); - VOS_TRACE_HEX_DUMP(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO,"LFR3: Beacon/Prb Rsp:"); + VOS_TRACE_HEX_DUMP(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, pBeaconProbeResp, pRoamOffloadSynchInd->beaconProbeRespLength); if (pRoamOffloadSynchInd->isBeacon) @@ -8760,9 +8760,9 @@ eHalStatus csrScanSaveRoamOffloadApToScanCache(tpAniSirGlobal pMac, sizeof(tSirMacAddr)); pBssDescr->nReceivedTime = (tANI_TIMESTAMP)palGetTickCount(pMac->hHdd); - VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, "LFR3:%s:BssDescr Info:", __func__); - VOS_TRACE_HEX_DUMP(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, + VOS_TRACE_HEX_DUMP(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, pBssDescr->bssId, sizeof(tSirMacAddr)); VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, "chan= %d, rssi = %d",pBssDescr->channelId,pBssDescr->rssi); diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c index 184a9cd1f6cb..cf70c0b70586 100644 --- a/CORE/SME/src/sme_common/sme_Api.c +++ b/CORE/SME/src/sme_common/sme_Api.c @@ -2661,6 +2661,18 @@ eHalStatus sme_ProcessMsg(tHalHandle hHal, vos_msg_t* pMsg) break; #endif /* FEATURE_WLAN_CH_AVOID */ +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + case eWNI_SME_AUTO_SHUTDOWN_IND: + if (pMac->sme.pAutoShutdownNotificationCb) + { + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, + "%s: Auto shutdown notification", __func__); + pMac->sme.pAutoShutdownNotificationCb(); + } + vos_mem_free(pMsg->bodyptr); + break; +#endif + case eWNI_SME_DFS_RADAR_FOUND: case eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND: { @@ -12328,6 +12340,89 @@ eHalStatus sme_getChannelInfo(tHalHandle hHal, tANI_U8 chanId, } #endif /* QCA_WIFI_2_0 */ +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN +/* --------------------------------------------------------------------------- + \fn sme_auto_shutdown_cb + \brief Used to plug in callback function for receiving auto shutdown evt + \param hHal + \param pCallbackfn : callback function pointer should be plugged in + \- return eHalStatus +-------------------------------------------------------------------------*/ +eHalStatus sme_set_auto_shutdown_cb +( + tHalHandle hHal, + void (*pCallbackfn)(void) +) +{ + eHalStatus status = eHAL_STATUS_SUCCESS; + tpAniSirGlobal pMac = PMAC_STRUCT(hHal); + + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, + "%s: Plug in Auto shutdown event callback", __func__); + + status = sme_AcquireGlobalLock(&pMac->sme); + if (eHAL_STATUS_SUCCESS == status) + { + if (NULL != pCallbackfn) + { + pMac->sme.pAutoShutdownNotificationCb = pCallbackfn; + } + sme_ReleaseGlobalLock(&pMac->sme); + } + + return(status); +} +/* --------------------------------------------------------------------------- + \fn sme_set_auto_shutdown_timer + \API to set auto shutdown timer value in FW. + \param hHal - The handle returned by macOpen + \param timer_val - The auto shutdown timer value to be set + \- return Configuration message posting status, SUCCESS or Fail + -------------------------------------------------------------------------*/ +eHalStatus sme_set_auto_shutdown_timer(tHalHandle hHal, tANI_U32 timer_val) +{ + eHalStatus status = eHAL_STATUS_SUCCESS; + VOS_STATUS vosStatus = VOS_STATUS_SUCCESS; + tpAniSirGlobal pMac = PMAC_STRUCT(hHal); + tSirAutoShutdownCmdParams *auto_sh_cmd; + vos_msg_t vosMessage; + + status = sme_AcquireGlobalLock(&pMac->sme); + if (eHAL_STATUS_SUCCESS == status) + { + auto_sh_cmd = (tSirAutoShutdownCmdParams *) + vos_mem_malloc(sizeof(tSirAutoShutdownCmdParams)); + if (auto_sh_cmd == NULL) + { + VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, + "%s Request Buffer Alloc Fail", __func__); + sme_ReleaseGlobalLock(&pMac->sme); + return eHAL_STATUS_FAILURE; + } + + auto_sh_cmd->timer_val = timer_val; + + /* serialize the req through MC thread */ + vosMessage.bodyptr = auto_sh_cmd; + vosMessage.type = WDA_SET_AUTO_SHUTDOWN_TIMER_REQ; + vosStatus = vos_mq_post_message(VOS_MQ_ID_WDA, &vosMessage); + if (!VOS_IS_STATUS_SUCCESS(vosStatus)) + { + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, + "%s: Post Auto shutdown MSG fail", __func__); + vos_mem_free(auto_sh_cmd); + sme_ReleaseGlobalLock(&pMac->sme); + return eHAL_STATUS_FAILURE; + } + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, + "%s: Posted Auto shutdown MSG", __func__); + sme_ReleaseGlobalLock(&pMac->sme); + } + + return(status); +} +#endif + #ifdef FEATURE_WLAN_CH_AVOID /* --------------------------------------------------------------------------- \fn sme_AddChAvoidCallback diff --git a/CORE/SYS/legacy/src/system/src/sysEntryFunc.c b/CORE/SYS/legacy/src/system/src/sysEntryFunc.c index 1284dfcb5563..f478a00d1eec 100644 --- a/CORE/SYS/legacy/src/system/src/sysEntryFunc.c +++ b/CORE/SYS/legacy/src/system/src/sysEntryFunc.c @@ -60,7 +60,7 @@ postPTTMsgApi(tpAniSirGlobal pMac, tSirMsgQ *pMsg); #include "vos_types.h" #include "vos_packet.h" -#define MAX_DEAUTH_ALLOWED 20 +#define MAX_DEAUTH_ALLOWED 5 // --------------------------------------------------------------------------- /** * sysInitGlobals @@ -114,6 +114,7 @@ tSirRetStatus sysBbtProcessMessageCore(tpAniSirGlobal pMac, tpSirMsgQ pMsg, tANI_U32 type, tANI_U32 subType) { + static tANI_U32 lastDeauthPacketTime = 0; tSirRetStatus ret; void* pBd; tMgmtFrmDropReason dropReason; @@ -136,7 +137,29 @@ sysBbtProcessMessageCore(tpAniSirGlobal pMac, tpSirMsgQ pMsg, tANI_U32 type, if(type == SIR_MAC_MGMT_FRAME) { if ((subType == SIR_MAC_MGMT_DEAUTH) && (pMac->sys.gSysFrameCount[type][subType] >= MAX_DEAUTH_ALLOWED)) - goto fail; + { + tANI_U32 timeNow = adf_os_ticks(); + tANI_U32 timeGap = adf_os_ticks_to_msecs(timeNow - + lastDeauthPacketTime); + if (timeGap < 1000) + goto fail; + } + + if (subType == SIR_MAC_MGMT_DEAUTH) + { + tpSirMacMgmtHdr pMacHdr = WDA_GET_RX_MAC_HEADER(pBd); + PELOGE(sysLog( pMac, LOGE, + FL("DEAUTH frame allowed: " + "da: " MAC_ADDRESS_STR ", " + "sa: " MAC_ADDRESS_STR ", " + "bssid: " MAC_ADDRESS_STR ", " + "DEAUTH count so far: %d\n"), + MAC_ADDR_ARRAY(pMacHdr->da), + MAC_ADDR_ARRAY(pMacHdr->sa), + MAC_ADDR_ARRAY(pMacHdr->bssId), + pMac->sys.gSysFrameCount[type][subType] );); + lastDeauthPacketTime = adf_os_ticks(); + } if( (dropReason = limIsPktCandidateForDrop(pMac, pBd, subType)) != eMGMT_DROP_NO_DROP) { diff --git a/CORE/SYS/legacy/src/utils/src/macTrace.c b/CORE/SYS/legacy/src/utils/src/macTrace.c index dba8841315cd..f1b0087b9e9e 100644 --- a/CORE/SYS/legacy/src/utils/src/macTrace.c +++ b/CORE/SYS/legacy/src/utils/src/macTrace.c @@ -808,6 +808,9 @@ tANI_U8* macTraceGetWdaMsgString( tANI_U16 wdaMsg ) #ifdef FEATURE_WLAN_CH_AVOID CASE_RETURN_STRING(WDA_CH_AVOID_UPDATE_REQ); #endif +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN + CASE_RETURN_STRING(WDA_SET_AUTO_SHUTDOWN_TIMER_REQ); +#endif CASE_RETURN_STRING(WDA_INIT_THERMAL_INFO_CMD); CASE_RETURN_STRING(WDA_SET_THERMAL_LEVEL); CASE_RETURN_STRING(WDA_SET_SAP_INTRABSS_DIS); diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h index def0b1e8c2a3..3cfa6cce912e 100644 --- a/CORE/WDA/inc/wlan_qct_wda.h +++ b/CORE/WDA/inc/wlan_qct_wda.h @@ -1312,6 +1312,10 @@ tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb); #define WDA_CH_AVOID_UPDATE_REQ SIR_HAL_CH_AVOID_UPDATE_REQ #endif /* FEATURE_WLAN_CH_AVOID */ +#ifdef FEATURE_WLAN_AUTO_SHUTDOWN +#define WDA_SET_AUTO_SHUTDOWN_TIMER_REQ SIR_HAL_SET_AUTO_SHUTDOWN_TIMER_REQ +#endif + #define WDA_ADD_PERIODIC_TX_PTRN_IND SIR_HAL_ADD_PERIODIC_TX_PTRN_IND #define WDA_DEL_PERIODIC_TX_PTRN_IND SIR_HAL_DEL_PERIODIC_TX_PTRN_IND |
