summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-04-20 14:23:13 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-04-20 14:23:13 -0700
commitf0835c338fb6b2962f30e3dabbd9569fed2f108d (patch)
tree0d4f6495d1507192b10f2778b0537474facfa3d1
parent0a50220c9a5de62b734238b5b5e87d51a621feec (diff)
parent148ebd073d33d6e278e58c96e70b5d5e838c2b0c (diff)
Merge "Release 4.0.10.80 QCACLD WLAN Driver"
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h2
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c196
-rw-r--r--CORE/HDD/src/wlan_hdd_ipa.c82
-rwxr-xr-xCORE/HDD/src/wlan_hdd_main.c9
-rw-r--r--CORE/HDD/src/wlan_hdd_p2p.c30
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/MAC/inc/sirApi.h3
-rw-r--r--CORE/SERVICES/COMMON/wlan_defs.h68
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h2
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMA/wma.c8
-rw-r--r--CORE/SERVICES/WMA/wma.h1
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)