diff --git a/components/pmo/core/src/wlan_pmo_suspend_resume.c b/components/pmo/core/src/wlan_pmo_suspend_resume.c index 4cfb15e20b98..f161097a9682 100644 --- a/components/pmo/core/src/wlan_pmo_suspend_resume.c +++ b/components/pmo/core/src/wlan_pmo_suspend_resume.c @@ -1029,6 +1029,8 @@ QDF_STATUS pmo_core_psoc_bus_runtime_suspend(struct wlan_objmgr_psoc *psoc, if (status != QDF_STATUS_SUCCESS) goto resume_htc; + hif_pm_set_link_state(hif_ctx, HIF_PM_LINK_STATE_DOWN); + status = pmo_core_psoc_bus_suspend_req(psoc, QDF_RUNTIME_SUSPEND, &wow_params); if (status != QDF_STATUS_SUCCESS) @@ -1047,7 +1049,6 @@ QDF_STATUS pmo_core_psoc_bus_runtime_suspend(struct wlan_objmgr_psoc *psoc, goto resume_hif; } - hif_pm_set_link_state(hif_ctx, HIF_PM_LINK_STATE_DOWN); if (pld_cb) { begin = qdf_get_log_timestamp_usecs(); ret = pld_cb(); @@ -1171,7 +1172,6 @@ QDF_STATUS pmo_core_psoc_bus_runtime_resume(struct wlan_objmgr_psoc *psoc, goto fail; } } - hif_pm_set_link_state(hif_ctx, HIF_PM_LINK_STATE_UP); if (hif_runtime_resume(hif_ctx)) { status = QDF_STATUS_E_FAILURE; @@ -1182,6 +1182,8 @@ QDF_STATUS pmo_core_psoc_bus_runtime_resume(struct wlan_objmgr_psoc *psoc, if (status != QDF_STATUS_SUCCESS) goto fail; + hif_pm_set_link_state(hif_ctx, HIF_PM_LINK_STATE_UP); + status = pmo_core_psoc_configure_resume(psoc, true); if (status != QDF_STATUS_SUCCESS) goto fail;