summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelvaraj, Sridhar <sselvara@qti.qualcomm.com>2016-06-16 20:24:54 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2016-06-20 03:01:33 -0700
commitfdb92f3dbdf057cc74155e018df2370fb2e45236 (patch)
tree78ff0ce4acef7c4b22365daa8ddf8c8b0dfdea41
parent3211943a40741be0adca19c9793142549f94182a (diff)
qcacld-2.0: Fix max dwell time for passive scan beacon report
Currently STA advertising the max. measurement duration of RM capability as half the beacon interval. When STA receives beacon report request frame, it is not using measurement duration indicated if it is above the advertised max. measurement duration However, firmware expects a minimum of one beacon interval to find the AP. Modify the max. measurement capability of RRM as one beacon interval. Also engineered the code to make use of the INI parameters for adjusting the max measurement duration. Change-Id: Idc0b4f15f2b7464507aacfaefb99e1ba48ad1eca CRs-Fixed: 1030590
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h10
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c10
-rw-r--r--CORE/MAC/src/pe/include/rrmGlobal.h5
-rw-r--r--CORE/MAC/src/pe/rrm/rrmApi.c4
4 files changed, 21 insertions, 8 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 3163873cd198..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"
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 2d25ef888138..3c1e918f7982 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -7161,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/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/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;
}