diff --git a/components/pmo/core/src/wlan_pmo_arp.c b/components/pmo/core/src/wlan_pmo_arp.c index 7f8594819a3a..d997c8ecdea3 100644 --- a/components/pmo/core/src/wlan_pmo_arp.c +++ b/components/pmo/core/src/wlan_pmo_arp.c @@ -231,13 +231,13 @@ QDF_STATUS pmo_core_arp_check_offload(struct wlan_objmgr_psoc *psoc, vdev_ctx = pmo_vdev_get_priv(vdev); psoc_ctx = vdev_ctx->pmo_psoc_ctx; - active_offload_cond = psoc_ctx->psoc_cfg.active_mode_offload; - if (trigger == pmo_apps_suspend) { + if (trigger == pmo_apps_suspend || trigger == pmo_apps_resume) { + active_offload_cond = psoc_ctx->psoc_cfg.active_mode_offload; + qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock); - is_applied_cond = - vdev_ctx->vdev_arp_req.enable == PMO_OFFLOAD_ENABLE && - vdev_ctx->vdev_arp_req.is_offload_applied; + is_applied_cond = vdev_ctx->vdev_arp_req.enable && + vdev_ctx->vdev_arp_req.is_offload_applied; qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock); if (active_offload_cond && is_applied_cond) { @@ -245,18 +245,6 @@ QDF_STATUS pmo_core_arp_check_offload(struct wlan_objmgr_psoc *psoc, wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); return QDF_STATUS_E_INVAL; } - } else if (trigger == pmo_apps_resume) { - qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock); - is_applied_cond = - vdev_ctx->vdev_arp_req.enable == PMO_OFFLOAD_DISABLE && - !vdev_ctx->vdev_arp_req.is_offload_applied; - qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock); - - if (active_offload_cond && is_applied_cond) { - pmo_debug("active offload is enabled and offload already disabled"); - wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); - return QDF_STATUS_E_INVAL; - } } wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); out: diff --git a/components/pmo/core/src/wlan_pmo_ns.c b/components/pmo/core/src/wlan_pmo_ns.c index 4325450f40ed..f41d212f0549 100644 --- a/components/pmo/core/src/wlan_pmo_ns.c +++ b/components/pmo/core/src/wlan_pmo_ns.c @@ -271,13 +271,12 @@ QDF_STATUS pmo_core_ns_check_offload(struct wlan_objmgr_psoc *psoc, vdev_ctx = pmo_vdev_get_priv(vdev); psoc_ctx = vdev_ctx->pmo_psoc_ctx; - if (trigger == pmo_apps_suspend) { + if (trigger == pmo_apps_suspend || trigger == pmo_apps_resume) { active_offload_cond = psoc_ctx->psoc_cfg.active_mode_offload; qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock); - is_applied_cond = - vdev_ctx->vdev_ns_req.enable == PMO_OFFLOAD_ENABLE && - vdev_ctx->vdev_ns_req.is_offload_applied; + is_applied_cond = vdev_ctx->vdev_ns_req.enable && + vdev_ctx->vdev_ns_req.is_offload_applied; qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock); if (active_offload_cond && is_applied_cond) { @@ -285,20 +284,6 @@ QDF_STATUS pmo_core_ns_check_offload(struct wlan_objmgr_psoc *psoc, wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); return QDF_STATUS_E_INVAL; } - } else if (trigger == pmo_apps_resume) { - active_offload_cond = psoc_ctx->psoc_cfg.active_mode_offload; - - qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock); - is_applied_cond = - vdev_ctx->vdev_ns_req.enable == PMO_OFFLOAD_DISABLE && - !vdev_ctx->vdev_ns_req.is_offload_applied; - qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock); - - if (active_offload_cond && is_applied_cond) { - pmo_debug("active offload is enabled and offload already disabled"); - wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); - return QDF_STATUS_E_INVAL; - } } wlan_objmgr_vdev_release_ref(vdev, WLAN_PMO_ID); out: