qcacld-3.0: Support to configure RM enabled capability IE

qcacld-2.0 to qcacld-3.0 propagation

Add support to configure RM enabled capbility information element
through INI.

Using the introduced INI config option(rm_capability), we can set
or unset any bit in the IE. Default value for the config parameter
is set based on rrmInitialize routine.

Change-Id: Ia2a4352760db77ab71dad4757eb603d7539ffefa
CRs-Fixed: 918667
diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
index b06e32d..6bae1cc 100644
--- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
@@ -56,12 +56,10 @@
 #include "lim_api.h"
 #include "wmm_apsd.h"
 #include "sir_mac_prot_def.h"
+#include "rrm_api.h"
 
 #include "sap_api.h"
 
-#if defined WLAN_FEATURE_VOWIFI
-#include "rrm_api.h"
-#endif
 
 #if defined WLAN_FEATURE_VOWIFI_11R
 #include <lim_ft.h>
@@ -1575,23 +1573,6 @@
 #endif /* FEATURE_WLAN_DIAG_SUPPORT */
 
 	lim_log(mac_ctx, LOG1, FL("Received SME_JOIN_REQ"));
-#ifdef WLAN_FEATURE_VOWIFI
-	/*
-	 * Need to read the CFG here itself as this is
-	 * used in limExtractAPCapability() below.
-	 * This CFG is actually read in rrm_update_config()
-	 * which is called later. Because this is not
-	 * read, RRM related path before calling rrm_update_config()
-	 * is not getting executed causing issues
-	 * like not honoring power constraint on 1st association
-	 * after driver loading.
-	 */
-	if (wlan_cfg_get_int(mac_ctx, WNI_CFG_RRM_ENABLED, &val) !=
-			eSIR_SUCCESS)
-		lim_log(mac_ctx, LOGP, FL("cfg get rrm enabled failed"));
-	mac_ctx->rrm.rrmPEContext.rrmEnable = (val) ? 1 : 0;
-	val = 0;
-#endif /* WLAN_FEATURE_VOWIFI */
 
 	/*
 	 * Expect Join request in idle state.
@@ -1624,9 +1605,16 @@
 			goto end;
 		}
 
+		/*
+		 * Update the capability here itself as this is used in
+		 * lim_extract_ap_capability() below. If not updated issues
+		 * like not honoring power constraint on 1st association after
+		 * driver loading might occur.
+		 */
+		lim_update_rrm_capability(mac_ctx, sme_join_req);
+
 		bss_desc = sme_join_req->bssDescription;
 		/* check for the existence of start BSS session  */
-
 		session = pe_find_session_by_bssid(mac_ctx, bss_desc.bssId,
 				&session_id);
 
@@ -4497,10 +4485,10 @@
 		rrm_process_neighbor_report_req(pMac, pMsg->bodyptr);
 		break;
 	case eWNI_SME_BEACON_REPORT_RESP_XMIT_IND:
-	{
 		rrm_process_beacon_report_xmit(pMac, pMsg->bodyptr);
-	}
-	break;
+		break;
+	default:
+		lim_log(pMac, LOGE, FL("Invalid msg type:%d"), pMsg->type);
 	}
 #endif
 }