qcacld-3.0: Fix chain mask & nss in policy manager connection table

The chain mask in policy manager connection table needs to be updated
with the capability that HW advertises at load time intersected with
related ini configuration on host. The dynamic change of the chain
mask & NSS values will be handled only by chain mask manager in
firmware.

Change-Id: I250668c93920a63c9278aefe93491cb5aaa91ca7
CRs-Fixed: 1037816
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index e0690f2..411982e 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -1376,11 +1376,12 @@
 	hdd_ctx->ap_arpns_support = cfg->ap_arpns_support;
 	hdd_update_tgt_services(hdd_ctx, &cfg->services);
 
-	hdd_update_vdev_nss(hdd_ctx);
-
 	hdd_update_tgt_ht_cap(hdd_ctx, &cfg->ht_cap);
 
 	hdd_update_tgt_vht_cap(hdd_ctx, &cfg->vht_cap);
+
+	hdd_update_vdev_nss(hdd_ctx);
+
 	hdd_ctx->config->fine_time_meas_cap &= cfg->fine_time_measurement_cap;
 	hdd_ctx->fine_time_meas_cap_target = cfg->fine_time_measurement_cap;
 	hdd_info(FL("fine_time_meas_cap: 0x%x"),
@@ -6558,6 +6559,8 @@
 	int ret;
 	tSirTxPowerLimit hddtxlimit;
 	bool rtnl_held;
+	/* structure of function pointers to be used by CDS */
+	struct cds_sme_cbacks sme_cbacks;
 
 	ENTER();
 
@@ -6710,7 +6713,9 @@
 #endif
 
 	wlan_hdd_nan_init(hdd_ctx);
-	status = cds_init_policy_mgr(sme_get_cfg_valid_channels);
+	sme_cbacks.sme_get_valid_channels = sme_get_cfg_valid_channels;
+	sme_cbacks.sme_get_nss_for_vdev = sme_get_vdev_type_nss;
+	status = cds_init_policy_mgr(&sme_cbacks);
 	if (!QDF_IS_STATUS_SUCCESS(status)) {
 		hdd_err("Policy manager initialization failed");
 		goto err_debugfs_exit;