diff options
| author | Akash Patel <akashp@codeaurora.org> | 2014-07-03 18:45:08 -0700 |
|---|---|---|
| committer | Akash Patel <akashp@codeaurora.org> | 2014-07-03 18:46:30 -0700 |
| commit | ec15cf99dff603f31cde423e8e8da3214a05b4dc (patch) | |
| tree | 7a59c86ab6c13403faaf15dc906bd522256a58e5 | |
| parent | 738c23739435ed19d8d5ecc52563c3e30f4c9bf0 (diff) | |
| parent | 67fca6c9fb7c49768eb86fa71f8f26a1ca0917e7 (diff) | |
Release 1.0.0.138 QCACLD WLAN Driver
Merge remote-tracking branch 'origin/caf/caf-wlan/master'
* origin/caf/caf-wlan/master:
Cafstaging Release 1.0.0.138
qcacld: Fix the SME reassoc command stuck issue
qcacld-new: Increase TX DESC number in HL system
qcacld-new: Loss callback in HL once QCA_LL_TX_FLOW_CT defined
SDIO: Intialize Packetlog for SDIO
qca-cld:sap: Select channel based on scan band preference
qcacld: [SERVICES]Enable IBSS PS per peer ATIM, warmup time ini conf.
qcacld: [Protocol]Enable IBSS PS per peer ATIM, warmup time ini conf.
qcacld: [HDD Part]Enable IBSS PS per peer ATIM, warmup time ini conf.
qcacld: Debug log support for IBSS Power Save
Change-Id: I5a15d75e96f811e3b53c6f405075218b15ed9e08
| -rw-r--r-- | CORE/CLD_TXRX/TXRX/ol_txrx.c | 12 | ||||
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 13 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 8 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 12 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/src/include/parserApi.h | 1 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/include/limGlobal.h | 5 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limAssocUtils.c | 7 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limIbssPeerMgmt.c | 6 | ||||
| -rw-r--r-- | CORE/SAP/src/sapChSelect.c | 27 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c | 30 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h | 4 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 51 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.h | 2 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 7 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/utils/src/parserApi.c | 9 | ||||
| -rw-r--r-- | CORE/UTILS/FWLOG/dbglog_host.c | 36 | ||||
| -rw-r--r-- | CORE/WDA/inc/legacy/halMsgApi.h | 6 |
18 files changed, 223 insertions, 17 deletions
diff --git a/CORE/CLD_TXRX/TXRX/ol_txrx.c b/CORE/CLD_TXRX/TXRX/ol_txrx.c index a65a47d5c120..e62b850bccff 100644 --- a/CORE/CLD_TXRX/TXRX/ol_txrx.c +++ b/CORE/CLD_TXRX/TXRX/ol_txrx.c @@ -82,12 +82,6 @@ #define OL_TX_DESC_POOL_SIZE_MAX_HL 5000 #endif -/* Here it's a temporal solution, to avoid FW overflow. */ -#undef OL_TX_DESC_POOL_SIZE_MIN_HL -#define OL_TX_DESC_POOL_SIZE_MIN_HL 640 -#undef OL_TX_DESC_POOL_SIZE_MAX_HL -#define OL_TX_DESC_POOL_SIZE_MAX_HL 640 - /*=== function definitions ===*/ @@ -893,10 +887,10 @@ void ol_txrx_osif_vdev_register(ol_txrx_vdev_handle vdev, } else { txrx_ops->tx.std = vdev->tx = OL_TX_LL; txrx_ops->tx.non_std = ol_tx_non_std_ll; -#ifdef QCA_LL_TX_FLOW_CT - vdev->osif_flow_control_cb = txrx_ops->tx.flow_control_cb; -#endif /* QCA_LL_TX_FLOW_CT */ } + #ifdef QCA_LL_TX_FLOW_CT + vdev->osif_flow_control_cb = txrx_ops->tx.flow_control_cb; + #endif /* QCA_LL_TX_FLOW_CT */ } void diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index ddeffe32e584..b2fbd24077b4 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -2447,6 +2447,18 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */ #define CFG_IBSS_TXSP_END_INACTIVITY_MAX (100) #define CFG_IBSS_TXSP_END_INACTIVITY_DEFAULT (0) +/* + * When IBSS network is initialized, PS-supporting device + * does not enter protocol sleep state during first + * gIbssPsWarmupTime seconds. + */ +#define CFG_IBSS_PS_WARMUP_TIME_NAME "gIbssPsWarmupTime" +#define CFG_IBSS_PS_WARMUP_TIME_MIN (0) +/* Allow unsigned Int Max for now */ +#define CFG_IBSS_PS_WARMUP_TIME_MAX (65535) +#define CFG_IBSS_PS_WARMUP_TIME_DEFAULT (0) + + #define CFG_SAP_MAX_NO_PEERS "gSoftApMaxPeers" #define CFG_SAP_MAX_NO_PEERS_MIN (1) #define CFG_SAP_MAX_NO_PEERS_MAX (32) @@ -3085,6 +3097,7 @@ typedef struct v_U8_t isIbssAwakeOnTxRx; v_U32_t ibssInactivityCount; v_U32_t ibssTxSpEndInactivityTime; + v_U32_t ibssPsWarmupTime; v_BOOL_t enableTCPChkSumOffld; v_BOOL_t enableIPChecksumOffload; diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index f53bcfa458b9..1a02df5d5bf4 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -3249,6 +3249,13 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_IBSS_TXSP_END_INACTIVITY_MIN, CFG_IBSS_TXSP_END_INACTIVITY_MAX ), + REG_VARIABLE( CFG_IBSS_PS_WARMUP_TIME_NAME, WLAN_PARAM_Integer, + hdd_config_t, ibssPsWarmupTime, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_IBSS_PS_WARMUP_TIME_DEFAULT, + CFG_IBSS_PS_WARMUP_TIME_MIN, + CFG_IBSS_PS_WARMUP_TIME_MAX ), + #ifndef QCA_WIFI_ISOC REG_VARIABLE( CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer, hdd_config_t, thermalTempMinLevel0, @@ -4101,6 +4108,7 @@ static void print_hdd_cfg(hdd_context_t *pHddCtx) VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gIbssAwakeOnTxRx] Value = [%u] ",pHddCtx->cfg_ini->isIbssAwakeOnTxRx); VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gIbssInactivityTime] Value = [%u] ",pHddCtx->cfg_ini->ibssInactivityCount); VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gIbssTxSpEndInactivityTime] Value = [%u] ",pHddCtx->cfg_ini->ibssTxSpEndInactivityTime); + VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gIbssPsWarmupTime] Value = [%u] ",pHddCtx->cfg_ini->ibssPsWarmupTime); VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [fDfsPhyerrFilterOffload] Value = [%u] ",pHddCtx->cfg_ini->fDfsPhyerrFilterOffload); #ifdef IPA_OFFLOAD diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index adc35fe89421..e0cb3ee87d5d 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -1089,6 +1089,18 @@ VOS_STATUS hdd_setIbssPowerSaveParams(hdd_adapter_t *pAdapter) return VOS_STATUS_E_FAILURE; } + ret = process_wma_set_command((int)pAdapter->sessionId, + (int)WMA_VDEV_IBSS_PS_SET_WARMUP_TIME_SECS, + (int)pHddCtx->cfg_ini->ibssPsWarmupTime, + VDEV_CMD); + if (VOS_STATUS_SUCCESS != ret) + { + hddLog(VOS_TRACE_LEVEL_ERROR, + "%s: WMA_VDEV_IBSS_PS_SET_WARMUP_TIME_SECS failed %d", + __func__, ret); + return VOS_STATUS_E_FAILURE; + } + return ret; } diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index 34cddef088c5..709cbbd0ce5a 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 137 +#define QWLAN_VERSION_BUILD 138 -#define QWLAN_VERSIONSTR "1.0.0.137" +#define QWLAN_VERSIONSTR "1.0.0.138" #ifdef QCA_WIFI_2_0 diff --git a/CORE/MAC/src/include/parserApi.h b/CORE/MAC/src/include/parserApi.h index c30aeb87b23b..2ac2cee50f3a 100644 --- a/CORE/MAC/src/include/parserApi.h +++ b/CORE/MAC/src/include/parserApi.h @@ -143,6 +143,7 @@ typedef struct sSirProbeRespBeacon tANI_U8 Vendor1IEPresent; tANI_U8 Vendor2IEPresent; tANI_U8 Vendor3IEPresent; + tDot11fIEIBSSParams IBSSParams; } tSirProbeRespBeacon, *tpSirProbeRespBeacon; diff --git a/CORE/MAC/src/pe/include/limGlobal.h b/CORE/MAC/src/pe/include/limGlobal.h index 8728bde39dea..f87ba013c518 100644 --- a/CORE/MAC/src/pe/include/limGlobal.h +++ b/CORE/MAC/src/pe/include/limGlobal.h @@ -562,6 +562,11 @@ struct tLimIbssPeerNode tANI_U8 vhtSupportedChannelWidthSet; tANI_U8 vhtBeamFormerCapable; #endif + /* + * Peer Atim Info + */ + tANI_U8 atimIePresent; + tANI_U32 peerAtimWindowLength; }; // Enums used for channel switching. diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c index 8d8b86412ce3..abe87e5e83bd 100644 --- a/CORE/MAC/src/pe/lim/limAssocUtils.c +++ b/CORE/MAC/src/pe/lim/limAssocUtils.c @@ -2593,6 +2593,13 @@ limAddSta( return eSIR_HAL_STA_DOES_NOT_EXIST; } + if (pPeerNode->atimIePresent) + { + pAddStaParams->atimIePresent = pPeerNode->atimIePresent; + pAddStaParams->peerAtimWindowLength = + pPeerNode->peerAtimWindowLength; + } + pAddStaParams->ht_caps = ( pPeerNode->htSupportedChannelWidthSet << SIR_MAC_HT_CAP_CHWIDTH40_S ) | diff --git a/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c b/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c index 2c114a91fb15..5334e32de3f1 100644 --- a/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c +++ b/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c @@ -183,6 +183,12 @@ ibss_peer_collect( pPeer->wmeEdcaPresent = pBeacon->wmeEdcaPresent; pPeer->wmeInfoPresent = pBeacon->wmeInfoPresent; + if (pBeacon->IBSSParams.present) + { + pPeer->atimIePresent = pBeacon->IBSSParams.present; + pPeer->peerAtimWindowLength = pBeacon->IBSSParams.atim; + } + if(IS_DOT11_MODE_HT(psessionEntry->dot11mode) && (pBeacon->HTCaps.present)) { diff --git a/CORE/SAP/src/sapChSelect.c b/CORE/SAP/src/sapChSelect.c index 4b66717c8c2c..af52187c96d2 100644 --- a/CORE/SAP/src/sapChSelect.c +++ b/CORE/SAP/src/sapChSelect.c @@ -2394,10 +2394,30 @@ v_U8_t sapSelectChannel(tHalHandle halHandle, ptSapContext pSapCtx, tScanResult { VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH, "%s: No external AP present\n", __func__); + +#ifndef SOFTAP_CHANNEL_RANGE + return bestChNum; +#else //scan is successfull, but no AP is present - ccmCfgGetInt( halHandle, WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL, &startChannelNum); - ccmCfgGetInt( halHandle, WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL, &endChannelNum); - VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH, + switch (pSapCtx->scanBandPreference) + { + case eCSR_BAND_24: + startChannelNum = 1; + endChannelNum = 11; + break; + + case eCSR_BAND_5G: + startChannelNum = 36; + endChannelNum = 165; + break; + + case eCSR_BAND_ALL: + default: + ccmCfgGetInt( halHandle, WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL, &startChannelNum); + ccmCfgGetInt( halHandle, WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL, &endChannelNum); + } + + VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH, "%s: start - end: %d - %d\n", __func__, startChannelNum, endChannelNum); @@ -2435,6 +2455,7 @@ v_U8_t sapSelectChannel(tHalHandle halHandle, ptSapContext pSapCtx, tScanResult else return startChannelNum; #endif /* !FEATURE_WLAN_CH_AVOID */ +#endif /* SOFTAP_CHANNEL_RANGE */ } // Initialize the structure pointed by pSpectInfoParams diff --git a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c index 9f674a066066..45767a0330b4 100644 --- a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c +++ b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c @@ -42,6 +42,13 @@ #include <linux/mmc/sd.h> #include "bmi_msg.h" /* TARGET_TYPE_ */ #include "if_ath_sdio.h" +#include "vos_api.h" + +#ifndef REMOVE_PKT_LOG +#include "ol_txrx_types.h" +#include "pktlog_ac_api.h" +#include "pktlog_ac.h" +#endif #ifndef ATH_BUS_PM #ifdef CONFIG_PM @@ -49,6 +56,10 @@ #endif /* CONFIG_PM */ #endif /* ATH_BUS_PM */ +#ifndef REMOVE_PKT_LOG +struct ol_pl_os_dep_funcs *g_ol_pl_os_dep_funcs = NULL; +#endif + typedef void * hif_handle_t; typedef void * hif_softc_t; @@ -151,6 +162,18 @@ ath_hif_sdio_probe(void *context, void *hif_handle) VOS_TRACE(VOS_MODULE_ID_HIF, VOS_TRACE_LEVEL_INFO," hdd_wlan_startup success!"); } +#ifndef REMOVE_PKT_LOG + if (vos_get_conparam() != VOS_FTM_MODE) { + /* + * pktlog initialization + */ + ol_pl_sethandle(&ol_sc->pdev_txrx_handle->pl_dev, ol_sc); + + if (pktlogmod_init(ol_sc)) + printk(KERN_ERR "%s: pktlogmod_init failed\n", __func__); + } +#endif + return 0; err_attach2: @@ -187,6 +210,13 @@ ath_hif_sdio_remove(void *context, void *hif_handle) athdiag_procfs_remove(); +#ifndef REMOVE_PKT_LOG + if (vos_get_conparam() != VOS_FTM_MODE){ + if (sc && sc->ol_sc) + pktlogmod_exit(sc->ol_sc); + } +#endif + if (sc && sc->ol_sc){ A_FREE(sc->ol_sc); sc->ol_sc = NULL; diff --git a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h index d326a919882e..5512e6e33f04 100644 --- a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h +++ b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h @@ -72,6 +72,10 @@ static inline int athdiag_procfs_init(void *scn) { return 0; } static inline void athdiag_procfs_remove(void) { return; } #endif +#ifndef REMOVE_PKT_LOG +extern int pktlogmod_init(void *context); +extern void pktlogmod_exit(void *context); +#endif #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) #define DMA_MAPPING_ERROR(dev, addr) dma_mapping_error((addr)) diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index ac79f77f5e42..adde417034f8 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -8449,6 +8449,16 @@ static int32_t wma_set_priv_cfg(tp_wma_handle wma_handle, } } break; + case WMA_VDEV_IBSS_PS_SET_WARMUP_TIME_SECS: + { + wma_handle->wma_ibss_power_save_params.ibssPsWarmupTime = + privcmd->param_value; + WMA_LOGD("%s: IBSS Power Save Warm Up Time in Seconds = %d", + __func__, + wma_handle->wma_ibss_power_save_params.ibssPsWarmupTime); + } + break; + default: WMA_LOGE("Invalid wma config command id:%d", privcmd->param_id); @@ -9713,6 +9723,15 @@ wma_set_ibss_pwrsave_params(tp_wma_handle wma, u_int8_t vdev_id) return VOS_STATUS_E_FAILURE; } + ret = wmi_unified_vdev_set_param_send(wma->wmi_handle, vdev_id, + WMI_VDEV_PARAM_IBSS_PS_WARMUP_TIME_SECS, + wma->wma_ibss_power_save_params.ibssPsWarmupTime); + if (ret < 0) { + WMA_LOGE("Failed, set WMI_VDEV_PARAM_IBSS_PS_WARMUP_TIME_SECS ret=%d", + ret); + return VOS_STATUS_E_FAILURE; + } + return VOS_STATUS_SUCCESS; } @@ -10384,6 +10403,38 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta) wma_remove_peer(wma, add_sta->staMac, add_sta->smesessionId, peer); goto send_rsp; } + +#ifdef QCA_IBSS_SUPPORT + /* + * In IBSS mode send the peer + * Atim Window length if IBSS + * power save is enabled by the + * firmware. + */ + if ( wma_is_vdev_in_ibss_mode(wma, add_sta->smesessionId) && + WMI_SERVICE_IS_ENABLED(wma->wmi_service_bitmap, + WMI_SERVICE_IBSS_PWRSAVE) ) { + /* + * If ATIM Window is present in the peer + * beacon then send it to firmware else + * configure Zero ATIM Window length to + * firmware. + */ + if(add_sta->atimIePresent) { + wma_set_peer_param(wma, add_sta->staMac, + WMI_PEER_IBSS_ATIM_WINDOW_LENGTH, + add_sta->peerAtimWindowLength, + add_sta->smesessionId); + } + else { + wma_set_peer_param(wma, add_sta->staMac, + WMI_PEER_IBSS_ATIM_WINDOW_LENGTH, + 0, + add_sta->smesessionId); + } + } +#endif + #ifdef WLAN_FEATURE_11W if (add_sta->rmfEnabled) { /* diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h index 99cef5ba3d5a..c505d65bc97d 100644 --- a/CORE/SERVICES/WMA/wma.h +++ b/CORE/SERVICES/WMA/wma.h @@ -527,6 +527,7 @@ typedef struct { u_int32_t isAwakeonTxRxEnabled; u_int32_t inactivityCount; u_int32_t txSPEndInactivityTime; + u_int32_t ibssPsWarmupTime; }ibss_power_save_params; typedef struct { @@ -1316,6 +1317,7 @@ enum wma_cfg_cmd_id { WMA_VDEV_IBSS_SET_AWAKE_ON_TX_RX, WMA_VDEV_IBSS_SET_INACTIVITY_TIME, WMA_VDEV_IBSS_SET_TXSP_END_INACTIVITY_TIME, + WMA_VDEV_IBSS_PS_SET_WARMUP_TIME_SECS, /* dfs control interface */ WMA_VDEV_DFS_CONTROL_CMDID, diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index ac8212b9ba77..476e6009aca3 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -4747,6 +4747,12 @@ eHalStatus csrRoamProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand ) pIes = NULL; } } + else + { + smsLog(pMac, LOGE, FL + ("Reassoc To Same AP failed since Connected BSS is NULL")); + return eHAL_STATUS_FAILURE; + } break; } case eCsrCapsChange: @@ -6619,6 +6625,7 @@ eHalStatus csrRoamIssueReassoc(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoam pCommand->u.roamCmd.hBSSList = CSR_INVALID_SCANRESULT_HANDLE; pCommand->u.roamCmd.fReleaseBssList = eANI_BOOLEAN_FALSE; pCommand->u.roamCmd.fReassoc = eANI_BOOLEAN_TRUE; + csrRoamRemoveDuplicateCommand(pMac, sessionId, pCommand, reason); status = csrQueueSmeCommand(pMac, pCommand, fImediate); if( !HAL_STATUS_SUCCESS( status ) ) { diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c index fbe71325b7b3..714307e03da7 100644 --- a/CORE/SYS/legacy/src/utils/src/parserApi.c +++ b/CORE/SYS/legacy/src/utils/src/parserApi.c @@ -3674,6 +3674,15 @@ sirConvertBeaconFrame2Struct(tpAniSirGlobal pMac, sizeof( tDot11fIEWiderBWChanSwitchAnn)); } #endif + + /* IBSS Peer Params */ + if(pBeacon->IBSSParams.present) + { + pBeaconStruct->IBSSParams.present = 1; + vos_mem_copy( &pBeaconStruct->IBSSParams, &pBeacon->IBSSParams, + sizeof( tDot11fIEIBSSParams )); + } + pBeaconStruct->Vendor1IEPresent = pBeacon->Vendor1IE.present; pBeaconStruct->Vendor2IEPresent = pBeacon->Vendor2IE.present; pBeaconStruct->Vendor3IEPresent = pBeacon->Vendor3IE.present; diff --git a/CORE/UTILS/FWLOG/dbglog_host.c b/CORE/UTILS/FWLOG/dbglog_host.c index 40cca65393ee..2defdc7b10d9 100644 --- a/CORE/UTILS/FWLOG/dbglog_host.c +++ b/CORE/UTILS/FWLOG/dbglog_host.c @@ -1152,6 +1152,8 @@ char * DBG_MSG_ARR[WLAN_MODULE_ID_MAX][MAX_DBG_MSGS] = "IBSS_PS_DBGID_PS_DESC_BIN_HWM", "IBSS_PS_DBGID_PS_DESC_BIN_LWM", "IBSS_PS_DBGID_PS_KICKOUT_PEER", + "IBSS_PS_DBGID_SET_PEER_PARAM", + "IBSS_PS_DBGID_BCN_ATIM_WIN_MISMATCH", }, }; @@ -2037,6 +2039,8 @@ dbglog_ibss_powersave_print_handler( "ATIM_WINDOW_PRE_BCN", "ATIM_WINDOW_POST_BCN", "OUT_OF_ATIM_WINDOW", + "PAUSE_PENDING", + "PAUSED", }; static const char *ps_states[] = { @@ -2046,6 +2050,8 @@ dbglog_ibss_powersave_print_handler( "SLEEP_DOZE", "SLEEP_AWAKE", "ACTIVE_TX_SEND", + "PAUSE_TX_SEND", + "PAUSED", }; static const char *peer_ps_states[] = { @@ -2074,9 +2080,11 @@ dbglog_ibss_powersave_print_handler( "TRAFFIC_EXCHANGE_DONE", "POWER_SAVE_STATE_CHANGE", "NEW_PEER_JOIN", - "IBSS_VDEV_PAUSE", - "IBSS_VDEV_UNPAUSE", - "PS_STATE_CHANGE" + "IBSS_VDEV_PAUSE_REQUEST", + "IBSS_VDEV_PAUSE_RESPONSE", + "IBSS_VDEV_PAUSE_TIMEOUT", + "IBSS_VDEV_UNPAUSE_REQUEST", + "PS_STATE_CHANGE", }; enum wlan_ibss_ps_sub_module sub_module; @@ -2270,6 +2278,9 @@ dbglog_ibss_powersave_print_handler( if (numargs == 0) { dbglog_printf(timestamp, vap_id, "IBSS PS: power collapse not allowed by INI"); + } else if(numargs == 1) { + dbglog_printf(timestamp, vap_id, "IBSS PS: power collapse not allowed since peer id:%d is not PS capable", + args[0]); } else if (numargs == 3) { if (args[0] == 2) { dbglog_printf(timestamp, vap_id, @@ -2334,6 +2345,25 @@ dbglog_ibss_powersave_print_handler( } break; + case IBSS_PS_DBGID_SET_PEER_PARAM: + if(numargs == 3) { + dbglog_printf(timestamp, vap_id, "IBSS PS: Set Peer Id:%d Param ID:%0x Value:%0x", + args[0], args[1], args[2]); + } + break; + + case IBSS_PS_DBGID_BCN_ATIM_WIN_MISMATCH: + if(numargs == 4) { + if(args[0] == 0xDEAD) { + dbglog_printf(timestamp, vap_id, "IBSS PS: ATIM window length mismatch, our's:%d, peer id:%d, peer's:%d", + args[1], args[2], args[3]); + } else if(args[0] == 0xBEEF) { + dbglog_printf(timestamp, vap_id, "IBSS PS: Peer ATIM window length changed, peer id:%d, peer recorded atim window:%d new atim window:%d", + args[1], args[2], args[3]); + } + } + break; + default: return FALSE; } diff --git a/CORE/WDA/inc/legacy/halMsgApi.h b/CORE/WDA/inc/legacy/halMsgApi.h index 0c680ae7a322..3fe8321163f1 100644 --- a/CORE/WDA/inc/legacy/halMsgApi.h +++ b/CORE/WDA/inc/legacy/halMsgApi.h @@ -305,6 +305,12 @@ typedef struct tANI_U32 vht_caps; tSirNwType nwType; tPowerdBm maxTxPower; + /* + * Peer Atim Info, Valid only + * for IBSS Mode. + */ + tANI_U8 atimIePresent; + tANI_U32 peerAtimWindowLength; } tAddStaParams, *tpAddStaParams; |
