diff --git a/core/hdd/src/wlan_hdd_ipa.c b/core/hdd/src/wlan_hdd_ipa.c index 2f4e006b0701..42883c18264f 100644 --- a/core/hdd/src/wlan_hdd_ipa.c +++ b/core/hdd/src/wlan_hdd_ipa.c @@ -1237,21 +1237,11 @@ hdd_ipa_uc_rm_notify_handler(void *context, enum ipa_rm_event event) 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 @@ static void hdd_ipa_uc_op_cb(struct op_msg_type *op_msg, void *usr_ctxt) 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 @@ static void hdd_ipa_uc_op_cb(struct op_msg_type *op_msg, void *usr_ctxt) 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); }