From cc6e046103cd77e5b531ca5b55b23a16a3c9262e Mon Sep 17 00:00:00 2001 From: Jingxiang Ge Date: Thu, 28 May 2020 20:23:51 +0800 Subject: [PATCH] qcacld-3.0: checking fw down when handle runtime suspend failure In pmo_core_psoc_bus_runtime_suspend, when handing pm suspend fail, Don't call qdf_bug if fw is already down. Change-Id: I4be872a27bbc100e85432e42a33ac329fad1dd24 CRs-Fixed: 2694416 --- .../pmo/core/src/wlan_pmo_suspend_resume.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/components/pmo/core/src/wlan_pmo_suspend_resume.c b/components/pmo/core/src/wlan_pmo_suspend_resume.c index 47ff14149fb9..719a062c7f83 100644 --- a/components/pmo/core/src/wlan_pmo_suspend_resume.c +++ b/components/pmo/core/src/wlan_pmo_suspend_resume.c @@ -932,6 +932,12 @@ out: } #ifdef FEATURE_RUNTIME_PM +#define PMO_CORE_PSOC_RUNTIME_PM_QDF_BUG(__condition) ({ \ + typeof(__condition) condition = __condition; \ + if (condition && !qdf_is_fw_down()) \ + QDF_BUG(0); \ +}) + QDF_STATUS pmo_core_psoc_bus_runtime_suspend(struct wlan_objmgr_psoc *psoc, pmo_pld_auto_suspend_cb pld_cb) { @@ -1026,24 +1032,23 @@ QDF_STATUS pmo_core_psoc_bus_runtime_suspend(struct wlan_objmgr_psoc *psoc, goto dec_psoc_ref; resume_hif: - QDF_BUG(!hif_runtime_resume(hif_ctx)); + PMO_CORE_PSOC_RUNTIME_PM_QDF_BUG(hif_runtime_resume(hif_ctx)); pmo_bus_resume: - QDF_BUG(QDF_STATUS_SUCCESS == + PMO_CORE_PSOC_RUNTIME_PM_QDF_BUG(QDF_STATUS_SUCCESS != pmo_core_psoc_bus_resume_req(psoc, QDF_RUNTIME_SUSPEND)); pmo_resume_configure: - QDF_BUG(QDF_STATUS_SUCCESS == + PMO_CORE_PSOC_RUNTIME_PM_QDF_BUG(QDF_STATUS_SUCCESS != pmo_core_psoc_configure_resume(psoc, true)); resume_htc: - QDF_BUG(QDF_STATUS_SUCCESS == + PMO_CORE_PSOC_RUNTIME_PM_QDF_BUG(QDF_STATUS_SUCCESS != pmo_tgt_psoc_set_runtime_pm_inprogress(psoc, false)); - - QDF_BUG(!htc_runtime_resume(htc_ctx)); + PMO_CORE_PSOC_RUNTIME_PM_QDF_BUG(htc_runtime_resume(htc_ctx)); cdp_runtime_resume: - QDF_BUG(QDF_STATUS_SUCCESS == + PMO_CORE_PSOC_RUNTIME_PM_QDF_BUG(QDF_STATUS_SUCCESS != cdp_runtime_resume(dp_soc, pdev_id)); runtime_failure: