diff options
| author | Selvaraj, Sridhar <sselvara@qti.qualcomm.com> | 2016-06-16 20:24:54 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-06-20 03:01:33 -0700 |
| commit | fdb92f3dbdf057cc74155e018df2370fb2e45236 (patch) | |
| tree | 78ff0ce4acef7c4b22365daa8ddf8c8b0dfdea41 | |
| parent | 3211943a40741be0adca19c9793142549f94182a (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.h | 10 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 10 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/include/rrmGlobal.h | 5 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/rrm/rrmApi.c | 4 |
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; } |
