qcacld-3.0: Fix the PNO WoW is not configured in concurrency case

qcacld-2.0 to qcacld-3.0 propagation

In the case of SAP + STA mode we fail to enable PNO on the STA interface,
and as a result the PNO feature will fail to find a network and wake the
host. Fix this by making sure PNO is configured in all appropriate
concurrency cases.

Change-Id: I97084cfde73025f0d09b60616959c9530ba82c80
CRs-fixed: 921150
diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c
index cff570c..ffe4771 100644
--- a/core/wma/src/wma_features.c
+++ b/core/wma/src/wma_features.c
@@ -3752,9 +3752,10 @@
 CDF_STATUS wma_suspend_req(tp_wma_handle wma, tpSirWlanSuspendParam info)
 {
 	struct wma_txrx_node *iface;
-	bool connected = false, pno_in_progress = false;
+	bool pno_in_progress = false;
 	uint8_t i, vdev_id = 0;
 	bool extscan_in_progress = false, pno_matched = false;
+	bool enable_wow = false;
 
 	wma->no_of_suspend_ind++;
 
@@ -3816,17 +3817,16 @@
 					   WMI_SERVICE_BEACON_OFFLOAD)) {
 			WMA_LOGD("vdev %d is in beaconning mode, enabling wow",
 				 i);
-			goto enable_wow;
+			enable_wow = true;
 		}
 	}
 	for (i = 0; i < wma->max_bssid; i++) {
-		if (wma->interfaces[i].conn_state) {
-			connected = true;
-			break;
-		}
+		if (wma->interfaces[i].conn_state)
+			enable_wow = true;
 #ifdef FEATURE_WLAN_SCAN_PNO
 		if (wma->interfaces[i].pno_in_progress) {
 			WMA_LOGD("PNO is in progress, enabling wow");
+			enable_wow = true;
 			pno_in_progress = true;
 			vdev_id = i;
 			if (wma->interfaces[i].nlo_match_evt_received)
@@ -3836,6 +3836,8 @@
 #endif /* FEATURE_WLAN_SCAN_PNO */
 	}
 	extscan_in_progress = wma_is_extscan_in_progress(wma);
+	if (extscan_in_progress)
+		enable_wow = true;
 
 	for (i = 0; i < wma->max_bssid; i++) {
 		wma->wow.gtk_pdev_enable |= wma->wow.gtk_err_enable[i];
@@ -3843,13 +3845,12 @@
 			i, wma->wow.gtk_err_enable[i], wma->wow.gtk_pdev_enable);
 	}
 
-	if (!connected && !pno_in_progress && !extscan_in_progress) {
+	if (!enable_wow) {
 		WMA_LOGD("All vdev are in disconnected state and pno/extscan is not in progress, skipping wow");
 		cdf_mem_free(info);
 		goto send_ready_to_suspend;
 	}
 
-enable_wow:
 	WMA_LOGE("WOW Suspend");
 
 	/*