diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-06-22 02:24:14 -0600 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2016-06-22 02:24:14 -0600 |
| commit | c04dc51b3267acc1e64f89b79b34e6b0deddb457 (patch) | |
| tree | 3852775573de3859fba53755e57511d180211d85 | |
| parent | b8a8552b12995c792a5e4747a07129df46e686c1 (diff) | |
| parent | e6ff9c0a6745d72567f6c96f2fcc91472f043916 (diff) | |
Promotion of wlan-cld2.driver.lnx.1.0-00036.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
1030590 Idc0b4f15f2b7464507aacfaefb99e1ba48ad1eca qcacld-2.0: Fix max dwell time for passive scan beacon r
1030380 Icea6228c6491d8b7d0588a699fe7f16d0dd0d3f1 qcacld-2.0: Add check for NDI role in __limFreshScanReqd
1028085 I155bc141087104ad1443d250711423d5fa936254 qcacld-2.0: Check consistency in throughput before setti
688141 If87bc869d97dd810d8be3b23eeb6cc67b7b4d279 Release 4.0.11.104
688141 Ia1bdb327b957022671462cddf911ed86aef69802 Release 4.0.11.103
1025378 I915e67fe7a15ebe622273af971d8a88ad78585cf qcacld-2.0: Fix buffer overflow
956590 Ib6ed5744cf38924a6b1dc20e3291639554c42c6b qcacld-2.0: Convert pr_info logs to vos_trace logs
1032026 I1fb81226f90e90d6a5d3870d5b585c7df22db755 qcacld-2.0: Reduce log level in smeTraceDump
1031987 Ied13b8655d9e2831fb097156c8fb72239b443f94 qcacld-2.0: Move IPA dp logs under HDD_DATA module id
1029923 Ifc6e14031ce1427247093e185ee16510ed3168da qcacld-2.0: Fix mac address print issue in WOW RX API
Change-Id: Icce0d0c2b7e17ca6cd3515a04550f3849c649160
CRs-Fixed: 1025378, 1032026, 1029923, 956590, 1030590, 1031987, 688141, 1028085, 1030380
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 16 | ||||
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_main.h | 1 | ||||
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_tx_rx.h | 10 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_assoc.c | 28 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 20 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_early_suspend.c | 1 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_ipa.c | 11 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_main.c | 15 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_tx_rx.c | 24 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/include/rrmGlobal.h | 5 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limAIDmgmt.c | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limP2P.c | 2 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 147 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/rrm/rrmApi.c | 4 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 4 | ||||
| -rw-r--r-- | CORE/SME/src/sme_common/sme_Trace.c | 8 |
17 files changed, 204 insertions, 99 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index 515e61f1e43d..828f126c8333 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -1005,13 +1005,13 @@ enum #define CFG_RRM_OPERATING_CHAN_MAX_DURATION_NAME "gRrmOperChanMax" //section 11.10.3 IEEE std. 802.11k-2008 #define CFG_RRM_OPERATING_CHAN_MAX_DURATION_MIN (0) //Maxduration = 2^(maxDuration - 4) * bcnIntvl. -#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_MAX (8) -#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_DEFAULT (3) //max duration = 2^-1 * bcnIntvl (50% of bcn intvl) +#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_MAX (7) +#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_DEFAULT (4) //max duration = 2^0 * bcnIntvl (100% of bcn intvl) #define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_NAME "gRrmNonOperChanMax" //Same as above. #define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_MIN (0) -#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_MAX (8) -#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_DEFAULT (3) +#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_MAX (7) +#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_DEFAULT (4) #define CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME "gRrmRandnIntvl" #define CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN (10) @@ -1028,7 +1028,7 @@ enum * Comma is used as a separator for each byte. */ #define CFG_RM_CAPABILITY_NAME "rm_capability" -#define CFG_RM_CAPABILITY_DEFAULT "73,00,6D,00,04" +#define CFG_RM_CAPABILITY_DEFAULT "73,00,91,00,04" #endif #define CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME "ImplicitQosIsEnabled" @@ -2901,6 +2901,11 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */ #define CFG_TCP_DELACK_THRESHOLD_LOW_MIN ( 0 ) #define CFG_TCP_DELACK_THRESHOLD_LOW_MAX ( 10000 ) +#define CFG_TCP_DELACK_TIMER_COUNT "gTcpDelAckTimerCount" +#define CFG_TCP_DELACK_TIMER_COUNT_DEFAULT ( 30 ) +#define CFG_TCP_DELACK_TIMER_COUNT_MIN ( 1 ) +#define CFG_TCP_DELACK_TIMER_COUNT_MAX ( 1000 ) + /* TCP_TX_HIGH_TPUT_THRESHOLD specifies the threshold of packets transmitted * over a period of 100 ms beyond which TCP can be considered to have a high @@ -4451,6 +4456,7 @@ struct hdd_config { v_U32_t busBandwidthComputeInterval; v_U32_t tcpDelackThresholdHigh; v_U32_t tcpDelackThresholdLow; + uint32_t tcpDelackTimerCount; uint32_t tcp_tx_high_tput_thres; #endif /* FEATURE_BUS_BANDWIDTH */ #ifdef QCA_SUPPORT_TXRX_HL_BUNDLE diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h index 7e9e60d8e1d4..7e3a85a3b86c 100644 --- a/CORE/HDD/inc/wlan_hdd_main.h +++ b/CORE/HDD/inc/wlan_hdd_main.h @@ -1819,6 +1819,7 @@ struct hdd_context_s * at runtime and intersecting it with target capab before updating. */ uint32_t fine_time_meas_cap_target; + uint32_t rx_high_ind_cnt; int radio_index; diff --git a/CORE/HDD/inc/wlan_hdd_tx_rx.h b/CORE/HDD/inc/wlan_hdd_tx_rx.h index 5d6a83e97baf..df434b1da0b1 100644 --- a/CORE/HDD/inc/wlan_hdd_tx_rx.h +++ b/CORE/HDD/inc/wlan_hdd_tx_rx.h @@ -244,6 +244,16 @@ void hdd_tx_resume_timer_expired_handler(void *adapter_context); #endif /* QCA_LL_TX_FLOW_CT */ /** + * hdd_rst_tcp_delack() - Reset tcp delack value to original level. + * @hdd_context_t : HDD context + * + * HDD will call this API on unloading path to clear delack value. + * + * Return: None + */ +void hdd_rst_tcp_delack(hdd_context_t *hdd_ctx); + +/** * hdd_mon_rx_packet_cbk() - Receive callback registered with TL. * @vosContext: [in] pointer to VOS context * @staId: [in] Station Id diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c index 2b2538f3e402..d71149c89541 100644 --- a/CORE/HDD/src/wlan_hdd_assoc.c +++ b/CORE/HDD/src/wlan_hdd_assoc.c @@ -810,12 +810,15 @@ static void hdd_SendAssociationEvent(struct net_device *dev,tCsrRoamInfo *pCsrRo wlan_hdd_incr_active_session(pHddCtx, pAdapter->device_mode); memcpy(wrqu.ap_addr.sa_data, pHddStaCtx->conn_info.bssId, ETH_ALEN); type = WLAN_STA_ASSOC_DONE_IND; - pr_info("wlan: new IBSS connection to " MAC_ADDRESS_STR"\n", - MAC_ADDR_ARRAY(pHddStaCtx->conn_info.bssId)); + + VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, + "wlan: new IBSS connection to " MAC_ADDRESS_STR, + MAC_ADDR_ARRAY(pHddStaCtx->conn_info.bssId)); } else /* Not Associated */ { - pr_info("wlan: disconnected\n"); + VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, + "wlan: disconnected"); type = WLAN_STA_DISASSOC_DONE_IND; memset(wrqu.ap_addr.sa_data,'\0',ETH_ALEN); wlan_hdd_decr_active_session(pHddCtx, pAdapter->device_mode); @@ -2075,13 +2078,12 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs hdd_wext_state_t *pWextState = WLAN_HDD_GET_WEXT_STATE_PTR(pAdapter); if (pRoamInfo) - pr_info("wlan: connection failed with " MAC_ADDRESS_STR - " result:%d and Status:%d\n", - MAC_ADDR_ARRAY(pRoamInfo->bssid), - roamResult, roamStatus); + VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, + "wlan: connection failed with " MAC_ADDRESS_STR " result:%d and Status:%d", + MAC_ADDR_ARRAY(pRoamInfo->bssid), roamResult, roamStatus); else - pr_info("wlan: connection failed with " MAC_ADDRESS_STR - " result:%d and Status:%d\n", + VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, + "wlan: connection failed with " MAC_ADDRESS_STR " result:%d and Status:%d", MAC_ADDR_ARRAY(pWextState->req_bssId), roamResult, roamStatus); @@ -2765,8 +2767,8 @@ static eHalStatus roamRoamConnectStatusUpdateHandler( hdd_adapter_t *pAdapter, t hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); struct station_info staInfo; - pr_info ( "IBSS New Peer indication from SME " - "with peerMac " MAC_ADDRESS_STR " BSSID: " MAC_ADDRESS_STR " and stationID= %d", + VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, + "IBSS New Peer indication from SME with peerMac " MAC_ADDRESS_STR " BSSID: " MAC_ADDRESS_STR " and stationID= %d", MAC_ADDR_ARRAY(pRoamInfo->peerMac), MAC_ADDR_ARRAY(pHddStaCtx->conn_info.bssId), pRoamInfo->staId ); @@ -2853,8 +2855,8 @@ static eHalStatus roamRoamConnectStatusUpdateHandler( hdd_adapter_t *pAdapter, t "IBSS peer departed by cannot find peer in our registration table with TL" ); } - pr_info ( "IBSS Peer Departed from SME " - "with peerMac " MAC_ADDRESS_STR " BSSID: " MAC_ADDRESS_STR " and stationID= %d", + VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, + "IBSS Peer Departed from SME with peerMac " MAC_ADDRESS_STR " BSSID: " MAC_ADDRESS_STR " and stationID= %d", MAC_ADDR_ARRAY(pRoamInfo->peerMac), MAC_ADDR_ARRAY(pHddStaCtx->conn_info.bssId), pRoamInfo->staId ); diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index af88009372fb..3c1e918f7982 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -3546,6 +3546,13 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_TCP_DELACK_THRESHOLD_LOW_MIN, CFG_TCP_DELACK_THRESHOLD_LOW_MAX ), + REG_VARIABLE( CFG_TCP_DELACK_TIMER_COUNT, WLAN_PARAM_Integer, + hdd_config_t, tcpDelackTimerCount, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_TCP_DELACK_TIMER_COUNT_DEFAULT, + CFG_TCP_DELACK_TIMER_COUNT_MIN, + CFG_TCP_DELACK_TIMER_COUNT_MAX ), + REG_VARIABLE( CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, WLAN_PARAM_Integer, hdd_config_t, tcp_tx_high_tput_thres, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, @@ -5199,6 +5206,9 @@ void print_hdd_cfg(hdd_context_t *pHddCtx) "Name = [gTcpDelAckThresholdLow] Value = [%u] ", pHddCtx->cfg_ini->tcpDelackThresholdLow); VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, + "Name = [tcpDelackTimerCount] Value = [%u] ", + pHddCtx->cfg_ini->tcpDelackTimerCount); + VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [%s] Value = [%u] ", CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, pHddCtx->cfg_ini->tcp_tx_high_tput_thres); @@ -7151,6 +7161,16 @@ VOS_STATUS hdd_set_sme_config( hdd_context_t *pHddCtx ) hdd_hex_string_to_u8_array(pConfig->rm_capability, smeConfig->rrmConfig.rm_capability, &rrm_capab_len, DOT11F_IE_RRMENABLEDCAP_MAX_LEN); + /* + * Update the INI values gRrmOperChanMax and gRrmNonOperChanMax appropriately + */ + smeConfig->rrmConfig.rm_capability[2] = + ((pConfig->nOutChanMeasMaxDuration << + CAP_NONOPER_CHAN_MAX_DURATION_OFFSET) | + (pConfig->nOutChanMeasMaxDuration << + CAP_OPER_CHAN_MAX_DURATION_OFFSET) | + (smeConfig->rrmConfig.rm_capability[2] & + (RM_CAP_RM_MIB | RM_CAP_AP_CHAN_REPORT))); #endif //Remaining config params not obtained from registry // On RF EVB beacon using channel 1. diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c index 48e8bc4b067d..56d90e678936 100644 --- a/CORE/HDD/src/wlan_hdd_early_suspend.c +++ b/CORE/HDD/src/wlan_hdd_early_suspend.c @@ -1962,6 +1962,7 @@ VOS_STATUS hdd_wlan_shutdown(void) vos_timer_getCurrentState(&pHddCtx->bus_bw_timer)) { vos_timer_stop(&pHddCtx->bus_bw_timer); + hdd_rst_tcp_delack(pHddCtx); } #endif diff --git a/CORE/HDD/src/wlan_hdd_ipa.c b/CORE/HDD/src/wlan_hdd_ipa.c index 95c7bd78a1e2..a1b8641b6b0b 100644 --- a/CORE/HDD/src/wlan_hdd_ipa.c +++ b/CORE/HDD/src/wlan_hdd_ipa.c @@ -214,6 +214,9 @@ struct hdd_ipa_uc_rx_hdr { #define HDD_IPA_LOG(LVL, fmt, args...) VOS_TRACE(VOS_MODULE_ID_HDD, LVL, \ "%s:%d: "fmt, __func__, __LINE__, ## args) +#define HDD_IPA_DP_LOG(LVL, fmt, args...) VOS_TRACE(VOS_MODULE_ID_HDD_DATA, LVL, \ + "%s:%d: "fmt, __func__, __LINE__, ## args) + #define HDD_IPA_DBG_DUMP(_lvl, _prefix, _buf, _len) \ do {\ @@ -1656,7 +1659,7 @@ static void hdd_ipa_uc_op_cb(struct op_msg_type *op_msg, void *usr_ctxt) return; } - HDD_IPA_LOG(VOS_TRACE_LEVEL_DEBUG, + HDD_IPA_DP_LOG(VOS_TRACE_LEVEL_DEBUG, "%s, OPCODE %s", __func__, op_string[msg->op_code]); if ((HDD_IPA_UC_OPCODE_TX_RESUME == msg->op_code) || @@ -3002,7 +3005,7 @@ static enum hdd_ipa_forward_type hdd_ipa_intrabss_forward( int ret = HDD_IPA_FORWARD_PKT_NONE; if ((desc & FW_RX_DESC_FORWARD_M)) { - HDD_IPA_LOG(VOS_TRACE_LEVEL_DEBUG, + HDD_IPA_DP_LOG(VOS_TRACE_LEVEL_DEBUG, "Forward packet to Tx (fw_desc=%d)", desc); hdd_ipa->ipa_tx_forward++; @@ -3065,7 +3068,7 @@ static void hdd_ipa_w2i_cb(void *priv, enum ipa_dp_evt_type evt, if (hdd_ipa_uc_is_enabled(hdd_ipa)) { session_id = (uint8_t)skb->cb[0]; iface_id = vdev_to_iface[session_id]; - HDD_IPA_LOG(VOS_TRACE_LEVEL_INFO_HIGH, + HDD_IPA_DP_LOG(VOS_TRACE_LEVEL_INFO_HIGH, "IPA_RECEIVE: session_id=%u, iface_id=%u", session_id, iface_id); } else @@ -3165,7 +3168,7 @@ static void hdd_ipa_nbuf_cb(adf_nbuf_t skb) { struct hdd_ipa_priv *hdd_ipa = ghdd_ipa; - HDD_IPA_LOG(VOS_TRACE_LEVEL_DEBUG, "%lx", NBUF_OWNER_PRIV_DATA(skb)); + HDD_IPA_DP_LOG(VOS_TRACE_LEVEL_DEBUG, "%lx", NBUF_OWNER_PRIV_DATA(skb)); ipa_free_skb((struct ipa_rx_data *) NBUF_OWNER_PRIV_DATA(skb)); hdd_ipa->stats.num_tx_comp_cnt++; diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index f262a5a188cc..c891412a9b5a 100644 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -12922,6 +12922,7 @@ void hdd_wlan_exit(hdd_context_t *pHddCtx) vos_timer_getCurrentState(&pHddCtx->bus_bw_timer)) { vos_timer_stop(&pHddCtx->bus_bw_timer); + hdd_rst_tcp_delack(pHddCtx); } if (!VOS_IS_STATUS_SUCCESS(vos_timer_destroy( @@ -13659,10 +13660,15 @@ void hdd_cnss_request_bus_bandwidth(hdd_context_t *pHddCtx, /* fine-tuning parameters for RX Flows */ temp_rx = (rx_packets + pHddCtx->prev_rx) / 2; pHddCtx->prev_rx = rx_packets; - if (temp_rx > pHddCtx->cfg_ini->tcpDelackThresholdHigh) - next_rx_level = WLAN_SVC_TP_HIGH; - else - next_rx_level = WLAN_SVC_TP_LOW; + if (temp_rx > pHddCtx->cfg_ini->tcpDelackThresholdHigh) { + if ((pHddCtx->cur_rx_level != WLAN_SVC_TP_HIGH) && + (++pHddCtx->rx_high_ind_cnt == pHddCtx->cfg_ini->tcpDelackTimerCount)) { + next_rx_level = WLAN_SVC_TP_HIGH; + } + } else { + next_rx_level = WLAN_SVC_TP_LOW; + pHddCtx->rx_high_ind_cnt = 0; + } pHddCtx->hdd_txrx_hist[pHddCtx->hdd_txrx_hist_idx].next_rx_level = next_rx_level; @@ -17384,6 +17390,7 @@ void hdd_stop_bus_bw_compute_timer(hdd_adapter_t *pAdapter) if (can_stop == VOS_TRUE) { vos_timer_stop(&pHddCtx->bus_bw_timer); + hdd_rst_tcp_delack(pHddCtx); tlshim_reset_bundle_require(); } } diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c index e7138c51e0ac..f86e99f5cf28 100644 --- a/CORE/HDD/src/wlan_hdd_tx_rx.c +++ b/CORE/HDD/src/wlan_hdd_tx_rx.c @@ -1624,3 +1624,27 @@ void hdd_dhcp_pkt_trace_buf_update (struct sk_buff *skb, int is_transmission, } } #endif +#ifdef FEATURE_BUS_BANDWIDTH +/** + * hdd_rst_tcp_delack() - Reset tcp delack value to original level + * @hdd_context_t : HDD context + * + * This is single function which is used for reseting TCP delack + * value to its original value. + * + * Return: None + */ +void hdd_rst_tcp_delack(hdd_context_t *hdd_ctx) +{ + enum cnss_bus_width_type next_level = CNSS_BUS_WIDTH_LOW; + + hdd_ctx->rx_high_ind_cnt = 0; + wlan_hdd_send_svc_nlink_msg(hdd_ctx->radio_index, WLAN_SVC_WLAN_TP_IND, + &next_level, sizeof(next_level)); +} +#else +void hdd_rst_tcp_delack(hdd_context_t *hdd_ctx) +{ + return; +} +#endif /* FEATURE_BUS_BANDWIDTH */ diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index c3288389604b..01d21a4d8805 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 11 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 102 +#define QWLAN_VERSION_BUILD 104 -#define QWLAN_VERSIONSTR "4.0.11.102" +#define QWLAN_VERSIONSTR "4.0.11.104" #define AR6320_REV1_VERSION 0x5000000 diff --git a/CORE/MAC/src/pe/include/rrmGlobal.h b/CORE/MAC/src/pe/include/rrmGlobal.h index c23f1e00a89e..7b6b08f7359d 100644 --- a/CORE/MAC/src/pe/include/rrmGlobal.h +++ b/CORE/MAC/src/pe/include/rrmGlobal.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2012, 2014-2015 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2012, 2014-2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -226,6 +226,9 @@ typedef struct sRrmPEContext #define RCPI_MAX_VALUE (220) #define CALCULATE_RCPI(rssi) (((rssi) + 110) * 2) + +#define CAP_OPER_CHAN_MAX_DURATION_OFFSET 2 +#define CAP_NONOPER_CHAN_MAX_DURATION_OFFSET 5 /* Bit mask are defined as per Draft P802.11REVmc_D4.2 */ /** diff --git a/CORE/MAC/src/pe/lim/limAIDmgmt.c b/CORE/MAC/src/pe/lim/limAIDmgmt.c index 26d27159ca96..d26a23b07dd0 100644 --- a/CORE/MAC/src/pe/lim/limAIDmgmt.c +++ b/CORE/MAC/src/pe/lim/limAIDmgmt.c @@ -76,7 +76,7 @@ void limInitPeerIdxpool(tpAniSirGlobal pMac,tpPESession pSessionEntry) { tANI_U8 i; - tANI_U8 maxAssocSta = pMac->lim.gLimAssocStaLimit; + tANI_U8 maxAssocSta = pMac->lim.maxStation; pSessionEntry->gpLimPeerIdxpool[0]=0; @@ -92,7 +92,6 @@ limInitPeerIdxpool(tpAniSirGlobal pMac,tpPESession pSessionEntry) #ifdef QCA_IBSS_SUPPORT if (LIM_IS_IBSS_ROLE(pSessionEntry)) { pSessionEntry->freePeerIdxHead=LIM_START_PEER_IDX; - maxAssocSta = pMac->lim.gLimIbssStaLimit; } else #endif diff --git a/CORE/MAC/src/pe/lim/limP2P.c b/CORE/MAC/src/pe/lim/limP2P.c index 3f124e8b3688..266c1b218205 100644 --- a/CORE/MAC/src/pe/lim/limP2P.c +++ b/CORE/MAC/src/pe/lim/limP2P.c @@ -225,7 +225,7 @@ tSirRetStatus limCreateSessionForRemainOnChn(tpAniSirGlobal pMac, tPESession **p { if((psessionEntry = peCreateSession(pMac, pMac->lim.gpLimRemainOnChanReq->selfMacAddr, - &sessionId, 1, eSIR_INFRA_AP_MODE)) == NULL) + &sessionId, pMac->lim.maxStation, eSIR_INFRA_AP_MODE)) == NULL) { limLog(pMac, LOGE, FL("Session Can not be created ")); /* send remain on chn failure */ diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c index b5d76046ba4b..d441a8e29531 100644 --- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c @@ -157,72 +157,101 @@ __limBackgroundScanInitiate(tpAniSirGlobal pMac) #endif // BACKGROUND_SCAN_ENABLED -// determine if a fresh scan request must be issued or not -/* -* PE will do fresh scan, if all of the active sessions are in good state (Link Est or BSS Started) -* If one of the sessions is not in one of the above states, then PE does not do fresh scan -* If no session exists (scanning very first time), then PE will always do fresh scan if SME -* asks it to do that. -*/ -static tANI_U8 -__limFreshScanReqd(tpAniSirGlobal pMac, tANI_U8 returnFreshResults) +/** + * __limFreshScanReqd() - determine if fresh scan request must be issued or not + * @mac_ctx - mac global context + * @return_fresh_results - fresh scan requested + * + * PE will do fresh scan, if all of the active sessions are in good state + * (Link Est or BSS Started). If one of the sessions is not in one of the these + * states, then PE does not do fresh scan. If no session exists (scanning very + * first time), then PE will always do fresh scan if SME asks it to do that. + */ +static uint8_t __limFreshScanReqd(tpAniSirGlobal mac_ctx, + uint8_t return_fresh_results) { + int i; + uint8_t valid_state = true; - tANI_U8 validState = TRUE; - int i; - - limLog(pMac, LOG1, FL("gLimSmeState: %d, returnFreshResults 0x%x"), - pMac->lim.gLimSmeState, returnFreshResults); - if(pMac->lim.gLimSmeState != eLIM_SME_IDLE_STATE) - { - limLog(pMac, LOG1, FL("return FALSE")); - return FALSE; - } - for(i =0; i < pMac->lim.maxBssId; i++) - { - - if(pMac->lim.gpSession[i].valid == TRUE) - { - limLog(pMac, LOG1, - FL("session %d, bsstype %d, limSystemRole %d, limSmeState %d"), - i, - pMac->lim.gpSession[i].bssType, - pMac->lim.gpSession[i].limSystemRole, - pMac->lim.gpSession[i].limSmeState); - if(!( ( ( (pMac->lim.gpSession[i].bssType == eSIR_INFRASTRUCTURE_MODE) || - (pMac->lim.gpSession[i].limSystemRole == eLIM_BT_AMP_STA_ROLE))&& - (pMac->lim.gpSession[i].limSmeState == eLIM_SME_LINK_EST_STATE) )|| - - ( ( (pMac->lim.gpSession[i].bssType == eSIR_IBSS_MODE)|| - (pMac->lim.gpSession[i].limSystemRole == eLIM_BT_AMP_AP_ROLE)|| - (pMac->lim.gpSession[i].limSystemRole == eLIM_BT_AMP_STA_ROLE) )&& - (pMac->lim.gpSession[i].limSmeState == eLIM_SME_NORMAL_STATE) ) - || ( ( ( (pMac->lim.gpSession[i].bssType == eSIR_INFRA_AP_MODE) - && ( pMac->lim.gpSession[i].pePersona == VOS_P2P_GO_MODE) ) - || (pMac->lim.gpSession[i].limSystemRole == eLIM_AP_ROLE) ) - && (pMac->lim.gpSession[i].limSmeState == eLIM_SME_NORMAL_STATE) ) - )) - { - validState = FALSE; - break; - } + limLog(mac_ctx, LOG1, FL("gLimSmeState: %d, return_fresh_results 0x%x"), + mac_ctx->lim.gLimSmeState, return_fresh_results); - } - } + if (mac_ctx->lim.gLimSmeState != eLIM_SME_IDLE_STATE) { + limLog(mac_ctx, LOG1, FL("return false, global_sme_state: %d"), + mac_ctx->lim.gLimSmeState); + return false; + } + for (i = 0; i < mac_ctx->lim.maxBssId; i++) { + if (mac_ctx->lim.gpSession[i].valid == false) + continue; + + limLog(mac_ctx, LOG1, + FL("session %d, bsstype %d, limSystemRole %d, limSmeState %d"), + i, mac_ctx->lim.gpSession[i].bssType, + mac_ctx->lim.gpSession[i].limSystemRole, + mac_ctx->lim.gpSession[i].limSmeState); + + if (mac_ctx->lim.gpSession[i].bssType == eSIR_NDI_MODE) + continue; + + if (mac_ctx->lim.gpSession[i].bssType == + eSIR_INFRASTRUCTURE_MODE + && mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_LINK_EST_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].limSystemRole == + eLIM_BT_AMP_STA_ROLE + && mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_LINK_EST_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].bssType == eSIR_IBSS_MODE + && mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_NORMAL_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].limSystemRole == + eLIM_BT_AMP_AP_ROLE + && mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_NORMAL_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].limSystemRole == + eLIM_BT_AMP_STA_ROLE + && mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_NORMAL_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].bssType == eSIR_INFRA_AP_MODE + && mac_ctx->lim.gpSession[i].pePersona == + VOS_P2P_GO_MODE + && mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_NORMAL_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].limSystemRole == eLIM_AP_ROLE + && mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_NORMAL_STATE) + continue; + + valid_state = false; + break; + } - if((validState) && - (returnFreshResults & SIR_BG_SCAN_RETURN_FRESH_RESULTS)) { - limLog(pMac, LOG1, FL("validState: %d, return TRUE"), validState); - return TRUE; - } else { - limLog(pMac, LOG1, FL("validState: %d, return FALSE"), validState); - return FALSE; - } + if (valid_state && (return_fresh_results + & SIR_BG_SCAN_RETURN_FRESH_RESULTS)) { + limLog(mac_ctx, LOG1, FL("valid_state: %d, return true"), + valid_state); + return true; + } else { + limLog(mac_ctx, LOG1, FL("valid_state: %d, return false"), + valid_state); + return false; + } } - - /** * __limIsSmeAssocCnfValid() * diff --git a/CORE/MAC/src/pe/rrm/rrmApi.c b/CORE/MAC/src/pe/rrm/rrmApi.c index 3fb65c45c292..d42cedabbbed 100644 --- a/CORE/MAC/src/pe/rrm/rrmApi.c +++ b/CORE/MAC/src/pe/rrm/rrmApi.c @@ -1235,8 +1235,8 @@ rrmInitialize(tpAniSirGlobal pMac) pRRMCaps->fine_time_meas_rpt = 1; pRRMCaps->lci_capability = 1; - pRRMCaps->operatingChanMax = 3; - pRRMCaps->nonOperatingChanMax = 3; + pRRMCaps->operatingChanMax = 4; + pRRMCaps->nonOperatingChanMax = 4; return eSIR_SUCCESS; } diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index f7a684c970b1..b32eb7d8d83f 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -21145,8 +21145,8 @@ static void wma_wow_parse_data_pkt_buffer(uint8_t *data, WMA_LOGD("wow_buf_pkt_len: %d", buf_len); if (buf_len >= ADF_NBUF_TRAC_ETH_TYPE_OFFSET) WMA_LOGE("Src_mac: " MAC_ADDRESS_STR " Dst_mac: " MAC_ADDRESS_STR, - MAC_ADDR_ARRAY(data), - MAC_ADDR_ARRAY(data + ADF_NBUF_SRC_MAC_OFFSET)); + MAC_ADDR_ARRAY(data + ADF_NBUF_SRC_MAC_OFFSET), + MAC_ADDR_ARRAY(data)); else goto end; diff --git a/CORE/SME/src/sme_common/sme_Trace.c b/CORE/SME/src/sme_common/sme_Trace.c index 5e95d56b3e50..33491753562b 100644 --- a/CORE/SME/src/sme_common/sme_Trace.c +++ b/CORE/SME/src/sme_common/sme_Trace.c @@ -214,28 +214,28 @@ static void smeTraceDump(tpAniSirGlobal pMac, tpvosTraceRecord pRecord, { switch (pRecord->code) { case TRACE_CODE_SME_COMMAND: - smsLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x)", + smsLog(pMac, LOG1, "%04d %012llu S%d %-14s %-30s(0x%x)", recIndex, pRecord->time, pRecord->session, "SME COMMAND:", smeTraceGetCommandString(pRecord->data), pRecord->data); break; case TRACE_CODE_SME_TX_WDA_MSG: - smsLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x)", + smsLog(pMac, LOG1, "%04d %012llu S%d %-14s %-30s(0x%x)", recIndex, pRecord->time, pRecord->session, "TX WDA Msg:", macTraceGetWdaMsgString((tANI_U16)pRecord->data), pRecord->data); break; case TRACE_CODE_SME_RX_WDA_MSG: - smsLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x)", + smsLog(pMac, LOG1, "%04d %012llu S%d %-14s %-30s(0x%x)", recIndex, pRecord->time, pRecord->session, "RX WDA Msg:", macTraceGetSmeMsgString((tANI_U16)pRecord->data), pRecord->data); break; default: - smsLog(pMac, LOGE, "%04d %012llu S%d %-14s %-30s(0x%x)", + smsLog(pMac, LOG1, "%04d %012llu S%d %-14s %-30s(0x%x)", recIndex, pRecord->time, pRecord->session, "RX HDD MSG:", smeTraceGetRxMsgString(pRecord->code), |
