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; }