diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2015-04-20 14:23:13 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-04-20 14:23:13 -0700 |
| commit | f0835c338fb6b2962f30e3dabbd9569fed2f108d (patch) | |
| tree | 0d4f6495d1507192b10f2778b0537474facfa3d1 | |
| parent | 0a50220c9a5de62b734238b5b5e87d51a621feec (diff) | |
| parent | 148ebd073d33d6e278e58c96e70b5d5e838c2b0c (diff) | |
Merge "Release 4.0.10.80 QCACLD WLAN Driver"
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_main.h | 2 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 196 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_ipa.c | 82 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 9 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_p2p.c | 30 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 3 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wlan_defs.h | 68 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 8 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.h | 1 |
12 files changed, 353 insertions, 54 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h index 94763529387e..42514b85fe79 100644 --- a/CORE/HDD/inc/wlan_hdd_main.h +++ b/CORE/HDD/inc/wlan_hdd_main.h @@ -109,7 +109,7 @@ This value should be larger than the timeout used by WDI to wait for a response from WCNSS */ #define WLAN_WAIT_TIME_SESSIONOPENCLOSE 15000 -#define WLAN_WAIT_TIME_ABORTSCAN 2000 +#define WLAN_WAIT_TIME_ABORTSCAN (SIR_HW_DEF_SCAN_MAX_DURATION + 1000) #define WLAN_WAIT_TIME_EXTSCAN 1000 #define WLAN_WAIT_TIME_LL_STATS 5000 diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 5e4ea4143f2b..6b331285383e 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -8399,6 +8399,12 @@ static int wlan_hdd_cfg80211_set_channel( struct wiphy *wiphy, struct net_device "%s: Called with dev = NULL.", __func__); return -ENODEV; } + + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + pAdapter = WLAN_HDD_GET_PRIV_PTR( dev ); MTRACE(vos_trace(VOS_MODULE_ID_HDD, @@ -9419,6 +9425,11 @@ static int wlan_hdd_cfg80211_add_beacon(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (vos_max_concurrent_connections_reached()) { hddLog(VOS_TRACE_LEVEL_DEBUG, FL("Reached max concurrent connections")); return -EINVAL; @@ -9483,6 +9494,11 @@ static int wlan_hdd_cfg80211_set_beacon(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if ((pAdapter->device_mode == WLAN_HDD_SOFTAP) || (pAdapter->device_mode == WLAN_HDD_P2P_GO)) { beacon_data_t *old, *new; @@ -9547,6 +9563,11 @@ static int wlan_hdd_cfg80211_stop_ap (struct wiphy *wiphy, return ret; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (!(pAdapter->device_mode == WLAN_HDD_SOFTAP || pAdapter->device_mode == WLAN_HDD_P2P_GO)) { return -EOPNOTSUPP; @@ -9561,10 +9582,13 @@ static int wlan_hdd_cfg80211_stop_ap (struct wiphy *wiphy, staAdapter = pAdapterNode->pAdapter; if (WLAN_HDD_INFRA_STATION == staAdapter->device_mode || - (WLAN_HDD_P2P_CLIENT == staAdapter->device_mode)) { + (WLAN_HDD_P2P_CLIENT == staAdapter->device_mode) || + (WLAN_HDD_P2P_GO == staAdapter->device_mode)) { pScanInfo = &staAdapter->scan_info; if (pScanInfo && pScanInfo->mScanPending) { + hddLog(LOG1, FL("Aborting pending scan for device mode:%d"), + staAdapter->device_mode); INIT_COMPLETION(pScanInfo->abortscan_event_var); hdd_abort_mac_scan(staAdapter->pHddCtx, staAdapter->sessionId, eCSR_SCAN_ABORT_DEFAULT); @@ -9706,6 +9730,11 @@ static int wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + hddLog(LOG2, FL("pAdapter = %p, device mode %s(%d)"), pAdapter, hdd_device_mode_to_string(pAdapter->device_mode), pAdapter->device_mode); @@ -9803,6 +9832,11 @@ static int wlan_hdd_cfg80211_change_beacon(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (!(pAdapter->device_mode == WLAN_HDD_SOFTAP || pAdapter->device_mode == WLAN_HDD_P2P_GO)) { return -EOPNOTSUPP; @@ -9858,6 +9892,11 @@ static int __wlan_hdd_cfg80211_change_bss (struct wiphy *wiphy, return ret; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (!(pAdapter->device_mode == WLAN_HDD_SOFTAP || pAdapter->device_mode == WLAN_HDD_P2P_GO)) { return -EOPNOTSUPP; @@ -9997,6 +10036,11 @@ static int __wlan_hdd_cfg80211_change_iface(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_CFG80211_CHANGE_IFACE, pAdapter->sessionId, type)); @@ -10550,6 +10594,11 @@ static int wlan_hdd_change_station(struct wiphy *wiphy, return ret; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); vos_mem_copy(STAMacAddress.bytes, mac, sizeof(v_MACADDR_t)); @@ -10765,6 +10814,11 @@ static int __wlan_hdd_cfg80211_add_key( struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + hddLog(LOG1, FL("Device_mode %s(%d)"), hdd_device_mode_to_string(pAdapter->device_mode), pAdapter->device_mode); @@ -11103,6 +11157,11 @@ static int __wlan_hdd_cfg80211_get_key( ENTER(); + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + hddLog(LOG1, FL("Device_mode %s(%d)"), hdd_device_mode_to_string(pAdapter->device_mode), pAdapter->device_mode); @@ -11319,6 +11378,11 @@ static int __wlan_hdd_cfg80211_set_default_key( struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if ((pAdapter->device_mode == WLAN_HDD_INFRA_STATION) || (pAdapter->device_mode == WLAN_HDD_P2P_CLIENT)) { if ((eCSR_ENCRYPT_TYPE_TKIP != @@ -12201,6 +12265,11 @@ int __wlan_hdd_cfg80211_scan( struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + cfg_param = pHddCtx->cfg_ini; pScanInfo = &pAdapter->scan_info; @@ -12807,6 +12876,11 @@ int wlan_hdd_cfg80211_connect_start( hdd_adapter_t *pAdapter, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (SIR_MAC_MAX_SSID_LENGTH < ssid_len) { hddLog(VOS_TRACE_LEVEL_ERROR, "%s: wrong SSID len", __func__); @@ -13943,6 +14017,11 @@ static int __wlan_hdd_cfg80211_disconnect( struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + /* Issue disconnect request to SME, if station is in connected state */ if ((pHddStaCtx->conn_info.connState == eConnectionState_Associated) || (pHddStaCtx->conn_info.connState == eConnectionState_Connecting)) { @@ -14160,6 +14239,11 @@ static int __wlan_hdd_cfg80211_join_ibss(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (vos_max_concurrent_connections_reached()) { hddLog(VOS_TRACE_LEVEL_DEBUG, FL("Reached max concurrent connections")); return -ECONNREFUSED; @@ -14356,6 +14440,11 @@ static int __wlan_hdd_cfg80211_leave_ibss(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + hddLog(LOG1, FL("Device_mode %s(%d)"), hdd_device_mode_to_string(pAdapter->device_mode), pAdapter->device_mode); @@ -14423,6 +14512,11 @@ static int __wlan_hdd_cfg80211_set_wiphy_params(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (changed & WIPHY_PARAM_RTS_THRESHOLD) { u32 rts_threshold = (wiphy->rts_threshold == -1) ? @@ -14570,6 +14664,11 @@ static int __wlan_hdd_cfg80211_set_txpower(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + hHal = pHddCtx->hHal; if (0 != ccmCfgSetInt(hHal, WNI_CFG_CURRENT_TX_POWER_LEVEL, @@ -14650,6 +14749,11 @@ static int wlan_hdd_cfg80211_get_txpower(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + pAdapter = hdd_get_adapter(pHddCtx, WLAN_HDD_INFRA_STATION); if (NULL == pAdapter) { hddLog(VOS_TRACE_LEVEL_FATAL, FL("pAdapter is NULL")); @@ -14701,6 +14805,11 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy, ENTER(); + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if ((eConnectionState_Associated != pHddStaCtx->conn_info.connState) || (0 == ssidlen)) { @@ -15192,6 +15301,11 @@ static int __wlan_hdd_cfg80211_set_power_mgmt(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if ((DRIVER_POWER_MODE_AUTO == !mode) && (TRUE == pHddCtx->hdd_wlan_suspended) && (pHddCtx->cfg_ini->fhostArpOffload) && @@ -15308,6 +15422,11 @@ static int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if ((WLAN_HDD_SOFTAP == pAdapter->device_mode) || (WLAN_HDD_P2P_GO == pAdapter->device_mode)) { @@ -15451,6 +15570,12 @@ static int __wlan_hdd_cfg80211_add_station(struct wiphy *wiphy, ENTER(); + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + + MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_CFG80211_ADD_STA, pAdapter->sessionId, params->listen_interval)); @@ -15502,6 +15627,11 @@ static int __wlan_hdd_cfg80211_set_pmksa(struct wiphy *wiphy, struct net_device int status; tPmkidCacheInfo pmk_id; + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (!pmksa) { hddLog(LOGE, FL("pmksa is NULL")); return -EINVAL; @@ -15560,6 +15690,11 @@ static int __wlan_hdd_cfg80211_del_pmksa(struct wiphy *wiphy, struct net_device tHalHandle halHandle; int status = 0; + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (!pmksa) { hddLog(LOGE, FL("pmksa is NULL")); return -EINVAL; @@ -15625,6 +15760,11 @@ static int __wlan_hdd_cfg80211_flush_pmksa(struct wiphy *wiphy, struct net_devic return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + /* Retrieve halHandle */ halHandle = WLAN_HDD_GET_HAL_CTX(pAdapter); @@ -15660,6 +15800,11 @@ __wlan_hdd_cfg80211_update_ft_ies(struct wiphy *wiphy, hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev); hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_CFG80211_UPDATE_FT_IES, pAdapter->sessionId, pHddStaCtx->conn_info.connState)); @@ -15840,6 +15985,11 @@ static int __wlan_hdd_cfg80211_sched_scan_start(struct wiphy *wiphy, return ret; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + config = pHddCtx->cfg_ini; hHal = WLAN_HDD_GET_HAL_CTX(pAdapter); if (NULL == hHal) @@ -16131,6 +16281,11 @@ static int __wlan_hdd_cfg80211_sched_scan_stop(struct wiphy *wiphy, return -ENODEV; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + /* The return 0 is intentional when isLogpInProgress and * isLoadUnloadInProgress. We did observe a crash due to a return of * failure in sched_scan_stop , especially for a case where the unload @@ -16252,6 +16407,11 @@ static int wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *d return -EINVAL; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (eTDLS_SUPPORT_NOT_ENABLED == pHddCtx->tdls_mode) { VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, @@ -16604,6 +16764,10 @@ static int __wlan_hdd_cfg80211_tdls_oper(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } /* QCA 2.0 Discrete ANDs feature capability in cfg_ini with that * received from target, so cfg_ini gives combined intersected result @@ -17003,6 +17167,11 @@ int __wlan_hdd_cfg80211_set_rekey_data(struct wiphy *wiphy, return result; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); hHal = WLAN_HDD_GET_HAL_CTX(pAdapter); if (NULL == hHal){ @@ -17095,6 +17264,11 @@ static int wlan_hdd_cfg80211_set_mac_acl(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + pVosContext = pHddCtx->pvosContext; pHostapdState = WLAN_HDD_GET_HOSTAP_STATE_PTR(pAdapter); @@ -17446,6 +17620,11 @@ static int __wlan_hdd_cfg80211_dump_survey(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); if (0 == pHddCtx->cfg_ini->fEnableSNRMonitoring || @@ -17547,6 +17726,11 @@ int __wlan_hdd_cfg80211_resume_wlan(struct wiphy *wiphy) return result; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + #ifdef CONFIG_CNSS cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_MEDIUM); #endif @@ -17655,6 +17839,11 @@ int __wlan_hdd_cfg80211_suspend_wlan(struct wiphy *wiphy, return rc; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + /* If RADAR detection is in progress (HDD), prevent suspend. The flag * "dfs_cac_block_tx" is set to TRUE when RADAR is found and stay TRUE until * CAC is done for a SoftAP which is in started state. @@ -17858,6 +18047,11 @@ int wlan_hdd_cfg80211_set_ap_channel_width(struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + if (!pHddCtx->cfg_ini->ht2040CoexEnabled) return -EOPNOTSUPP; diff --git a/CORE/HDD/src/wlan_hdd_ipa.c b/CORE/HDD/src/wlan_hdd_ipa.c index f5c72ef0b35a..8d15ce4b5ffc 100644 --- a/CORE/HDD/src/wlan_hdd_ipa.c +++ b/CORE/HDD/src/wlan_hdd_ipa.c @@ -379,6 +379,7 @@ static uint8_t vdev_to_iface[CSR_ROAM_SESSION_MAX]; struct hdd_ipa_priv { struct hdd_ipa_sys_pipe sys_pipe[HDD_IPA_MAX_SYSBAM_PIPE]; struct hdd_ipa_iface_context iface_context[HDD_IPA_MAX_IFACE]; + uint8_t num_iface; enum hdd_ipa_rm_state rm_state; /* * IPA driver can send RM notifications with IRQ disabled so using adf @@ -2293,6 +2294,10 @@ static int hdd_ipa_ipv4_changed(struct notifier_block *nb, return 0; } + +#define FW_RX_DESC_DISCARD_M 0x1 +#define FW_RX_DESC_FORWARD_M 0x2 + static void hdd_ipa_w2i_cb(void *priv, enum ipa_dp_evt_type evt, unsigned long data) { @@ -2305,8 +2310,8 @@ static void hdd_ipa_w2i_cb(void *priv, enum ipa_dp_evt_type evt, #ifdef IPA_UC_OFFLOAD uint8_t session_id; #ifdef INTRA_BSS_FWD_OFFLOAD - struct ethhdr *eth; adf_nbuf_t copy; + uint8_t fw_desc; int ret; #endif #endif @@ -2368,12 +2373,19 @@ static void hdd_ipa_w2i_cb(void *priv, enum ipa_dp_evt_type evt, * When INTRA_BSS_FWD_OFFLOAD is enabled, FW will send * all Rx packets to IPA uC, which need to be forwarded * to other interface. - * And, since only IP packets are forwarded through IPA - * Ethernet Bridging, non-IP exception packets should be - * forwarded to Tx here. + * And, IPA driver will send back to WLAN host driver + * through exception pipe with fw_desc field set by FW. + * Here we are checking fw_desc field for FORWARD bit + * set, and forward to Tx. Then copy to kernel stack + * only when DISCARD bit is not set. */ - eth = (struct ethhdr *)skb->data; - if (eth->h_proto != be16_to_cpu(ETH_P_IP)) { + fw_desc = (uint8_t)skb->cb[1]; + + if (fw_desc & FW_RX_DESC_FORWARD_M) { + HDD_IPA_LOG( + VOS_TRACE_LEVEL_DEBUG, + "Forward packet to Tx (fw_desc=%d)", + fw_desc); copy = adf_nbuf_copy(skb); if (copy) { ret = hdd_softap_hard_start_xmit( @@ -2391,6 +2403,10 @@ static void hdd_ipa_w2i_cb(void *priv, enum ipa_dp_evt_type evt, } } } + + if (fw_desc & FW_RX_DESC_DISCARD_M) + break; + } else { @@ -3095,6 +3111,12 @@ static void hdd_ipa_cleanup_iface(struct hdd_ipa_iface_context *iface_context) iface_context->tl_context = NULL; adf_os_spin_unlock_bh(&iface_context->interface_lock); iface_context->ifa_address = 0; + if (!iface_context->hdd_ipa->num_iface) { + HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR, + "NUM INTF 0, Invalid"); + VOS_ASSERT(0); + } + iface_context->hdd_ipa->num_iface--; } @@ -3155,6 +3177,7 @@ static int hdd_ipa_setup_iface(struct hdd_ipa_priv *hdd_ipa, if (ret) goto cleanup_header; + hdd_ipa->num_iface++; return ret; cleanup_header: @@ -3371,6 +3394,7 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, SIR_STA_RX_DATA_OFFLOAD, 1); } + vos_lock_acquire(&hdd_ipa->event_lock); if (!hdd_ipa_uc_is_enabled(hdd_ipa)) { HDD_IPA_LOG(VOS_TRACE_LEVEL_INFO, "%s: Evt: %d, IPA UC OFFLOAD NOT ENABLED", @@ -3384,13 +3408,18 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, "%s: handle 1st con ret %d", msg_ex->name, ret); } else { + vos_lock_release(&hdd_ipa->event_lock); goto end; } } #endif ret = hdd_ipa_setup_iface(hdd_ipa, adapter, sta_id); - if (ret) + if (ret) { +#ifdef IPA_UC_OFFLOAD + vos_lock_release(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ goto end; + } #ifdef IPA_UC_OFFLOAD vdev_to_iface[adapter->sessionId] = @@ -3399,7 +3428,8 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, #ifdef IPA_UC_STA_OFFLOAD hdd_ipa->sta_connected = 1; #endif -#endif + vos_lock_release(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ break; case WLAN_AP_CONNECT: @@ -3423,13 +3453,16 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, hdd_ipa_uc_offload_enable_disable(adapter, SIR_AP_RX_DATA_OFFLOAD, 1); } -#endif - + vos_lock_acquire(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ ret = hdd_ipa_setup_iface(hdd_ipa, adapter, sta_id); if (ret) { HDD_IPA_LOG(VOS_TRACE_LEVEL_INFO, "%s: Evt: %d, Interface setup failed", msg_ex->name, meta.msg_type); +#ifdef IPA_UC_OFFLOAD + vos_lock_release(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ goto end; } @@ -3437,11 +3470,14 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, vdev_to_iface[adapter->sessionId] = ((struct hdd_ipa_iface_context *) (adapter->ipa_context))->iface_id; -#endif - + vos_lock_release(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ break; case WLAN_STA_DISCONNECT: +#ifdef IPA_UC_OFFLOAD + vos_lock_acquire(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ hdd_ipa_cleanup_iface(adapter->ipa_context); #if defined(IPA_UC_OFFLOAD) && defined(IPA_UC_STA_OFFLOAD) @@ -3458,7 +3494,10 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, msg_ex->name); } else { /* Disable IPA UC TX PIPE when STA disconnected */ - if (!hdd_ipa->sap_num_connected_sta) { + if ((!hdd_ipa->sap_num_connected_sta) || + ((!hdd_ipa->num_iface) && + (HDD_IPA_UC_NUM_WDI_PIPE == + hdd_ipa->activated_fw_pipe))) { hdd_ipa_uc_handle_last_discon(hdd_ipa); } } @@ -3469,6 +3508,9 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, vdev_to_iface[adapter->sessionId] = HDD_IPA_MAX_IFACE; } #endif +#ifdef IPA_UC_OFFLOAD + vos_lock_release(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ break; case WLAN_AP_DISCONNECT: @@ -3479,15 +3521,26 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, return -EINVAL; } +#ifdef IPA_UC_OFFLOAD + vos_lock_acquire(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ hdd_ipa_cleanup_iface(adapter->ipa_context); #ifdef IPA_UC_OFFLOAD + if ((!hdd_ipa->num_iface) && + (HDD_IPA_UC_NUM_WDI_PIPE == hdd_ipa->activated_fw_pipe)) { + HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR, + "NO INTF left, but still pipe, clean up"); + hdd_ipa_uc_handle_last_discon(hdd_ipa); + } + if (hdd_ipa_uc_is_enabled(hdd_ipa)) { hdd_ipa_uc_offload_enable_disable(adapter, SIR_AP_RX_DATA_OFFLOAD, 0); vdev_to_iface[adapter->sessionId] = HDD_IPA_MAX_IFACE; } -#endif + vos_lock_release(&hdd_ipa->event_lock); +#endif /* IPA_UC_OFFLOAD */ break; case WLAN_CLIENT_CONNECT_EX: @@ -3967,6 +4020,7 @@ VOS_STATUS hdd_ipa_init(hdd_context_t *hdd_ctx) hdd_ctx->hdd_ipa = hdd_ipa; ghdd_ipa = hdd_ipa; hdd_ipa->hdd_ctx = hdd_ctx; + hdd_ipa->num_iface = 0; /* Create the interface context */ for (i = 0; i < HDD_IPA_MAX_IFACE; i++) { diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index 134ff4c89320..5e8d7a8270bd 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -10616,6 +10616,7 @@ free_hdd_ctx: } wiphy_unregister(wiphy) ; + wiphy_free(wiphy) ; if (hdd_is_ssr_required()) { @@ -11374,9 +11375,9 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) * cfg80211: Initialization ... */ if (0 < wlan_hdd_cfg80211_init(dev, wiphy, pHddCtx->cfg_ini)) { - hddLog(VOS_TRACE_LEVEL_FATAL, - "%s: wlan_hdd_cfg80211_init return failure", __func__); - goto err_config; + hddLog(LOGE, + "%s: wlan_hdd_cfg80211_init return failure", __func__); + goto err_config; } /* Initialize struct for saving f/w log setting will be used @@ -11616,11 +11617,13 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) goto err_free_ftm_open; } #endif + /* registration of wiphy dev with cfg80211 */ if (0 > wlan_hdd_cfg80211_register(wiphy)) { hddLog(LOGE, FL("wiphy register failed")); goto err_free_ftm_open; } + vos_set_load_unload_in_progress(VOS_MODULE_ID_VOSS, FALSE); pHddCtx->isLoadInProgress = FALSE; diff --git a/CORE/HDD/src/wlan_hdd_p2p.c b/CORE/HDD/src/wlan_hdd_p2p.c index 9fa85268c024..8342e251f8e7 100644 --- a/CORE/HDD/src/wlan_hdd_p2p.c +++ b/CORE/HDD/src/wlan_hdd_p2p.c @@ -909,6 +909,11 @@ int __wlan_hdd_cfg80211_remain_on_channel( struct wiphy *wiphy, #endif hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR( dev ); + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_REMAIN_ON_CHANNEL, pAdapter->sessionId, REMAIN_ON_CHANNEL_REQUEST)); @@ -1088,6 +1093,11 @@ int __wlan_hdd_cfg80211_cancel_remain_on_channel( struct wiphy *wiphy, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + /* Remove RoC request inside queue */ spin_lock(&pHddCtx->hdd_roc_req_q.lock); list_for_each_safe(tmp, q, &pHddCtx->hdd_roc_req_q.anchor) { @@ -1275,6 +1285,11 @@ int __wlan_hdd_mgmt_tx(struct wiphy *wiphy, struct net_device *dev, return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + hddLog(LOG1, FL("Device_mode %s(%d) type: %d"), hdd_device_mode_to_string(pAdapter->device_mode), pAdapter->device_mode, type); @@ -1670,6 +1685,11 @@ int __wlan_hdd_cfg80211_mgmt_tx_cancel_wait(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie) { + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + return wlan_hdd_cfg80211_cancel_remain_on_channel(wiphy, wdev, cookie); } #else @@ -2151,6 +2171,11 @@ struct net_device* __wlan_hdd_add_virtual_intf( return ERR_PTR(ret); } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return ERR_PTR(-EINVAL); + } + MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_ADD_VIRTUAL_INTF, NO_SESSION, type)); /*Allow addition multiple interface for WLAN_HDD_P2P_CLIENT and @@ -2286,6 +2311,11 @@ int __wlan_hdd_del_virtual_intf(struct wiphy *wiphy, struct net_device *dev) return status; } + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return -EINVAL; + } + wlan_hdd_release_intf_addr( pHddCtx, pVirtAdapter->macAddressCurrent.bytes ); diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index 46e115cea118..23efe1c0e5f0 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 10 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 79 +#define QWLAN_VERSION_BUILD 80 -#define QWLAN_VERSIONSTR "4.0.10.79A" +#define QWLAN_VERSIONSTR "4.0.10.80" #define AR6320_REV1_VERSION 0x5000000 diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index ddff8936fc1d..6ebb733baa0f 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -60,6 +60,9 @@ #define P2P_SEARCH_DWELL_TIME_INCREASE 20 #define P2P_SOCIAL_CHANNELS 3 +// Maximum scan duration before timeout +#define SIR_HW_DEF_SCAN_MAX_DURATION 30000 /* 30 secs */ + /* Max number of channels are 165, but to access 165th element of array, *array of 166 is required. */ diff --git a/CORE/SERVICES/COMMON/wlan_defs.h b/CORE/SERVICES/COMMON/wlan_defs.h index c43015430806..9fec5df0b147 100644 --- a/CORE/SERVICES/COMMON/wlan_defs.h +++ b/CORE/SERVICES/COMMON/wlan_defs.h @@ -34,10 +34,13 @@ * This file contains WLAN definitions that may be used across both * Host and Target software. */ -#if defined(CONFIG_AR900B_SUPPORT) || defined(AR900B) -#define MAX_SPATIAL_STREAM 4 -#else -#define MAX_SPATIAL_STREAM 3 +/* + * MAX_SPATIAL_STREAM should be defined in a fwconfig_xxx.h file, + * but for now provide a default value here in case it's not defined + * in the fwconfig_xxx.h file. + */ +#ifndef MAX_SPATIAL_STREAM +#define MAX_SPATIAL_STREAM 3 #endif #ifndef CONFIG_160MHZ_SUPPORT @@ -141,29 +144,30 @@ typedef enum { #define IS_MODE_11GONLY(mode) ((mode) == MODE_11GONLY) enum { - REGDMN_MODE_11A = 0x00001, /* 11a channels */ - REGDMN_MODE_TURBO = 0x00002, /* 11a turbo-only channels */ - REGDMN_MODE_11B = 0x00004, /* 11b channels */ - REGDMN_MODE_PUREG = 0x00008, /* 11g channels (OFDM only) */ - REGDMN_MODE_11G = 0x00008, /* XXX historical */ - REGDMN_MODE_108G = 0x00020, /* 11g+Turbo channels */ - REGDMN_MODE_108A = 0x00040, /* 11a+Turbo channels */ - REGDMN_MODE_XR = 0x00100, /* XR channels */ - REGDMN_MODE_11A_HALF_RATE = 0x00200, /* 11A half rate channels */ - REGDMN_MODE_11A_QUARTER_RATE = 0x00400, /* 11A quarter rate channels */ - REGDMN_MODE_11NG_HT20 = 0x00800, /* 11N-G HT20 channels */ - REGDMN_MODE_11NA_HT20 = 0x01000, /* 11N-A HT20 channels */ - REGDMN_MODE_11NG_HT40PLUS = 0x02000, /* 11N-G HT40 + channels */ - REGDMN_MODE_11NG_HT40MINUS = 0x04000, /* 11N-G HT40 - channels */ - REGDMN_MODE_11NA_HT40PLUS = 0x08000, /* 11N-A HT40 + channels */ - REGDMN_MODE_11NA_HT40MINUS = 0x10000, /* 11N-A HT40 - channels */ - REGDMN_MODE_11AC_VHT20 = 0x20000, /* 5Ghz, VHT20 */ - REGDMN_MODE_11AC_VHT40PLUS = 0x40000, /* 5Ghz, VHT40 + channels */ - REGDMN_MODE_11AC_VHT40MINUS = 0x80000, /* 5Ghz VHT40 - channels */ - REGDMN_MODE_11AC_VHT80 = 0x100000, /* 5Ghz, VHT80 channels */ - REGDMN_MODE_11AC_VHT20_2G = 0x200000, /* 2Ghz, VHT20 */ - REGDMN_MODE_11AC_VHT40_2G = 0x400000, /* 2Ghz, VHT40 */ - REGDMN_MODE_11AC_VHT80_2G = 0x800000, /* 2Ghz, VHT80 */ + REGDMN_MODE_11A = 0x00000001, /* 11a channels */ + REGDMN_MODE_TURBO = 0x00000002, /* 11a turbo-only channels */ + REGDMN_MODE_11B = 0x00000004, /* 11b channels */ + REGDMN_MODE_PUREG = 0x00000008, /* 11g channels (OFDM only) */ + REGDMN_MODE_11G = 0x00000008, /* XXX historical */ + REGDMN_MODE_108G = 0x00000020, /* 11g+Turbo channels */ + REGDMN_MODE_108A = 0x00000040, /* 11a+Turbo channels */ + REGDMN_MODE_XR = 0x00000100, /* XR channels */ + REGDMN_MODE_11A_HALF_RATE = 0x00000200, /* 11A half rate channels */ + REGDMN_MODE_11A_QUARTER_RATE = 0x00000400, /* 11A quarter rate channels */ + REGDMN_MODE_11NG_HT20 = 0x00000800, /* 11N-G HT20 channels */ + REGDMN_MODE_11NA_HT20 = 0x00001000, /* 11N-A HT20 channels */ + REGDMN_MODE_11NG_HT40PLUS = 0x00002000, /* 11N-G HT40 + channels */ + REGDMN_MODE_11NG_HT40MINUS = 0x00004000, /* 11N-G HT40 - channels */ + REGDMN_MODE_11NA_HT40PLUS = 0x00008000, /* 11N-A HT40 + channels */ + REGDMN_MODE_11NA_HT40MINUS = 0x00010000, /* 11N-A HT40 - channels */ + REGDMN_MODE_11AC_VHT20 = 0x00020000, /* 5Ghz, VHT20 */ + REGDMN_MODE_11AC_VHT40PLUS = 0x00040000, /* 5Ghz, VHT40 + channels */ + REGDMN_MODE_11AC_VHT40MINUS = 0x00080000, /* 5Ghz VHT40 - channels */ + REGDMN_MODE_11AC_VHT80 = 0x000100000, /* 5Ghz, VHT80 channels */ + REGDMN_MODE_11AC_VHT20_2G = 0x000200000, /* 2Ghz, VHT20 */ + REGDMN_MODE_11AC_VHT40_2G = 0x000400000, /* 2Ghz, VHT40 */ + REGDMN_MODE_11AC_VHT80_2G = 0x000800000, /* 2Ghz, VHT80 */ + REGDMN_MODE_11AC_VHT160 = 0x001000000, /* 5Ghz, VHT160 */ }; #define REGDMN_MODE_ALL (0xFFFFFFFF) /* REGDMN_MODE_ALL is defined out of the enum @@ -344,9 +348,18 @@ typedef struct{ A_UINT8 sh_pream; A_UINT8 bw_in_service; A_RATE probe_rix; + A_UINT8 dd_profile; } RC_TX_RATE_INFO; +/* + * Temporarily continue to provide the WHAL_RC_INIT_RC_MASKS def in wlan_defs.h + * for older targets. + * The WHAL_RX_INIT_RC_MASKS macro def needs to be moved into ratectrl_11ac.h + * for all targets, but until this is complete, the WHAL_RC_INIT_RC_MASKS def + * will be maintained here in its old location. + */ +#if CONFIG_160MHZ_SUPPORT == 0 #define WHAL_RC_INIT_RC_MASKS(_rm) do { \ _rm[WHAL_RC_MASK_IDX_NON_HT] = A_RATEMASK_OFDM_CCK; \ _rm[WHAL_RC_MASK_IDX_HT_20] = A_RATEMASK_HT_20; \ @@ -355,6 +368,7 @@ typedef struct{ _rm[WHAL_RC_MASK_IDX_VHT_40] = A_RATEMASK_VHT_40; \ _rm[WHAL_RC_MASK_IDX_VHT_80] = A_RATEMASK_VHT_80; \ } while (0) +#endif /** * strucutre describing host memory chunk. diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index 8c85a5636711..4dfda1244561 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -4832,6 +4832,7 @@ typedef struct { #define WMI_PEER_PMF 0x08000000 /* Robust Management Frame Protection enabled */ /** CAUTION TODO: Place holder for WLAN_PEER_F_PS_PRESEND_REQUIRED = 0x10000000. Need to be clean up */ #define WMI_PEER_IS_P2P_CAPABLE 0x20000000 /* P2P capable peer */ +#define WMI_PEER_160MHZ 0x40000000 /* 160 MHz enabled */ #define WMI_PEER_SAFEMODE_EN 0x80000000 /* Fips Mode Enabled */ /** @@ -9540,6 +9541,7 @@ typedef struct{ A_UINT32 pattern_id; /* pattern identifier */ A_UINT32 led_x0; /* led flashing parameter0 */ A_UINT32 led_x1; /* led flashing parameter1 */ + A_UINT32 gpio_num; /* GPIO number */ } wmi_set_led_flashing_cmd_fixed_param; /** diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h index 690c62d2b174..4d042fa25fd7 100644 --- a/CORE/SERVICES/COMMON/wmi_version.h +++ b/CORE/SERVICES/COMMON/wmi_version.h @@ -36,7 +36,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 108 +#define __WMI_REVISION_ 110 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 5db0889d16d8..0b2bc8a8d0b7 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -7484,7 +7484,7 @@ VOS_STATUS wma_get_buf_start_scan_cmd(tp_wma_handle wma_handle, cmd->idle_time = WMA_SCAN_IDLE_TIME_DEFAULT; /* Large timeout value for full scan cycle, 30 seconds */ - cmd->max_scan_time = WMA_HW_DEF_SCAN_MAX_DURATION; + cmd->max_scan_time = SIR_HW_DEF_SCAN_MAX_DURATION; /* do not add OFDM rates in 11B mode */ if (scan_req->dot11mode != WNI_CFG_DOT11_MODE_11B) @@ -7930,7 +7930,7 @@ VOS_STATUS wma_start_scan(tp_wma_handle wma_handle, if (msg_type == WDA_START_SCAN_OFFLOAD_REQ) { /* Start the timer for scan completion */ vos_status = vos_timer_start(&wma_handle->wma_scan_comp_timer, - WMA_HW_DEF_SCAN_MAX_DURATION); + SIR_HW_DEF_SCAN_MAX_DURATION); if (vos_status != VOS_STATUS_SUCCESS ) { WMA_LOGE("Failed to start the scan completion timer"); vos_status = VOS_STATUS_E_FAILURE; @@ -9123,7 +9123,7 @@ v_VOID_t wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle, VOS_MAX(scan_params->dwell_time_active / roam_req->nProbes, 1) : 0; scan_params->probe_spacing_time = 0; scan_params->probe_delay = 0; - scan_params->max_scan_time = WMA_HW_DEF_SCAN_MAX_DURATION; /* 30 seconds for full scan cycle */ + scan_params->max_scan_time = SIR_HW_DEF_SCAN_MAX_DURATION; /* 30 seconds for full scan cycle */ scan_params->idle_time = scan_params->min_rest_time; scan_params->n_probes = roam_req->nProbes; if (roam_req->allowDFSChannelRoam == SIR_ROAMING_DFS_CHANNEL_DISABLED) { @@ -9155,7 +9155,7 @@ v_VOID_t wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle, scan_params->repeat_probe_time = 0; scan_params->probe_spacing_time = 0; scan_params->probe_delay = 0; - scan_params->max_scan_time = WMA_HW_DEF_SCAN_MAX_DURATION; + scan_params->max_scan_time = SIR_HW_DEF_SCAN_MAX_DURATION; scan_params->idle_time = scan_params->min_rest_time; scan_params->burst_duration = 0; scan_params->n_probes = 0; diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h index 1ec3d402d5ec..8eca27dfe391 100644 --- a/CORE/SERVICES/WMA/wma.h +++ b/CORE/SERVICES/WMA/wma.h @@ -142,7 +142,6 @@ #define WMA_HOST_ROAM_SCAN_REQID_PREFIX 0xA800 /* Prefix used by scan requestor id on host */ #define WMA_HOST_SCAN_REQUESTOR_ID_PREFIX 0xA000 -#define WMA_HW_DEF_SCAN_MAX_DURATION 30000 /* 30 secs */ /* Max offchannel duration */ #define WMA_BURST_SCAN_MAX_NUM_OFFCHANNELS (3) |
