diff options
| author | Selvaraj, Sridhar <sselvara@codeaurora.org> | 2016-08-18 12:29:02 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-09-02 17:22:29 -0700 |
| commit | 4d6c29599dd28ed3540f1ec3e83cfdbb261753af (patch) | |
| tree | cf25e0c45796f538333eea9fc55bd8cbdd404ca0 | |
| parent | cd3cc702225999ffb8276617eaf0dd1581ae5bbb (diff) | |
qcacld-3.0: Fix max dwell time for passive scan beacon report
qcacld-2.0 to qcacld-3.0 propagation
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.
Git-commit: 0a18af7723c58987944780bad0ff7f35605413ac
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 | 12 | ||||
| -rw-r--r-- | core/mac/src/pe/include/rrm_global.h | 2 | ||||
| -rw-r--r-- | core/mac/src/pe/rrm/rrm_api.c | 4 |
4 files changed, 21 insertions, 7 deletions
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 7e6fca126714..b8471301a729 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -839,13 +839,13 @@ typedef 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) @@ -862,7 +862,7 @@ typedef enum { * Comma is used as a separator for each byte. */ #define CFG_RM_CAPABILITY_NAME "rm_capability" -#define CFG_RM_CAPABILITY_DEFAULT "73,10,6D,00,04" +#define CFG_RM_CAPABILITY_DEFAULT "73,10,91,00,04" #define CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME "ImplicitQosIsEnabled" #define CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN (0) diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index b9bebdc0e1bb..fdcf306c8fc8 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -7040,6 +7040,18 @@ QDF_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))); + /* Remaining config params not obtained from registry * On RF EVB beacon using channel 1. */ diff --git a/core/mac/src/pe/include/rrm_global.h b/core/mac/src/pe/include/rrm_global.h index 6d829fffa999..d842726868fb 100644 --- a/core/mac/src/pe/include/rrm_global.h +++ b/core/mac/src/pe/include/rrm_global.h @@ -225,6 +225,8 @@ 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/rrm_api.c b/core/mac/src/pe/rrm/rrm_api.c index 771f182f9266..d47adabab972 100644 --- a/core/mac/src/pe/rrm/rrm_api.c +++ b/core/mac/src/pe/rrm/rrm_api.c @@ -1299,8 +1299,8 @@ tSirRetStatus rrm_initialize(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; } |
