qcacld-3.0: Fix incorrect completion of pending IPA RM CONS request

qcacld-2.0 to qcacld-3.0 propagation

Fix incorrect completion of pending CONS RM request/release
notification, which is sent when receiving PROD RM notification
from IPA. Also cleanup pending CONS request flag when IPA resource
loading/unloading is compelted.

Change-Id: Ie37b7d21e1ad016dbaf9aa0f89c97402911b4a02
CRs-Fixed: 943635
diff --git a/core/hdd/src/wlan_hdd_ipa.c b/core/hdd/src/wlan_hdd_ipa.c
index 2f4e006..42883c1 100644
--- a/core/hdd/src/wlan_hdd_ipa.c
+++ b/core/hdd/src/wlan_hdd_ipa.c
@@ -1237,21 +1237,11 @@
 			hdd_ipa_uc_enable_pipes(hdd_ipa);
 		}
 		cdf_mutex_release(&hdd_ipa->ipa_lock);
-		if (hdd_ipa->pending_cons_req) {
-			ipa_rm_notify_completion(IPA_RM_RESOURCE_GRANTED,
-						 IPA_RM_RESOURCE_WLAN_CONS);
-		}
-		hdd_ipa->pending_cons_req = false;
 		break;
 
 	case IPA_RM_RESOURCE_RELEASED:
 		/* Differed RM Released */
 		hdd_ipa->resource_unloading = false;
-		if (hdd_ipa->pending_cons_req) {
-			ipa_rm_notify_completion(IPA_RM_RESOURCE_RELEASED,
-						 IPA_RM_RESOURCE_WLAN_CONS);
-		}
-		hdd_ipa->pending_cons_req = false;
 		break;
 
 	default:
@@ -1381,6 +1371,7 @@
 				ipa_rm_notify_completion(
 						IPA_RM_RESOURCE_GRANTED,
 						IPA_RM_RESOURCE_WLAN_CONS);
+			hdd_ipa->pending_cons_req = false;
 		}
 		cdf_mutex_release(&hdd_ipa->ipa_lock);
 	}
@@ -1391,16 +1382,14 @@
 		hdd_ipa->activated_fw_pipe--;
 		if (!hdd_ipa->activated_fw_pipe) {
 			hdd_ipa_uc_disable_pipes(hdd_ipa);
-			if ((hdd_ipa_is_rm_enabled(hdd_ipa->hdd_ctx)) &&
-			(!ipa_rm_release_resource(IPA_RM_RESOURCE_WLAN_PROD))) {
-				/* Sync return success from IPA
-				* Enable/resume all the PIPEs */
-				hdd_ipa->resource_unloading = false;
-				hdd_ipa_uc_proc_pending_event(hdd_ipa);
-			} else {
-				hdd_ipa->resource_unloading = false;
-				hdd_ipa_uc_proc_pending_event(hdd_ipa);
-			}
+			if (hdd_ipa_is_rm_enabled(hdd_ipa->hdd_ctx))
+				ipa_rm_release_resource(
+					IPA_RM_RESOURCE_WLAN_PROD);
+			/* Sync return success from IPA
+			* Enable/resume all the PIPEs */
+			hdd_ipa->resource_unloading = false;
+			hdd_ipa_uc_proc_pending_event(hdd_ipa);
+			hdd_ipa->pending_cons_req = false;
 		}
 		cdf_mutex_release(&hdd_ipa->ipa_lock);
 	}