From 5f719277bc0b814a5be844fb03156d3cdb55b155 Mon Sep 17 00:00:00 2001 From: Rajeev Kumar Date: Wed, 15 Jan 2020 11:51:03 -0800 Subject: [PATCH] qcacld-3.0: Unify wow handling for SAP, IBSS and NaN mode Unify wow handling for SAP, IBSS and NaN mode such that both DRV and non DRV cases are handled in same way for SAP, IBSS and NaN modes. Change-Id: I04c7a6488285511f34ef3a5c2288937dc74b6b73 CRs-Fixed: 2603912 --- core/wma/src/wma_dev_if.c | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 2b73d8c3db..46cba92b59 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -4786,6 +4786,17 @@ void wma_add_sta(tp_wma_handle wma, tpAddStaParams add_sta) /* IBSS should share the same code as AP mode */ case BSS_OPERATIONAL_MODE_IBSS: case BSS_OPERATIONAL_MODE_AP: + wma_add_sta_req_ap_mode(wma, add_sta); + break; + case BSS_OPERATIONAL_MODE_NDI: + wma_add_sta_ndi_mode(wma, add_sta); + break; + } + + /* handle wow for sap, ibss and nan with 1 or more peer in same way */ + if (BSS_OPERATIONAL_MODE_IBSS == oper_mode || + BSS_OPERATIONAL_MODE_AP == oper_mode || + BSS_OPERATIONAL_MODE_NDI == oper_mode) { if (qdf_is_drv_connected()) { wma_debug("drv wow enabled prevent runtime pm"); wma_sap_prevent_runtime_pm(wma); @@ -4793,11 +4804,6 @@ void wma_add_sta(tp_wma_handle wma, tpAddStaParams add_sta) wma_debug("non-drv wow enabled vote for link up"); htc_vote_link_up(htc_handle); } - wma_add_sta_req_ap_mode(wma, add_sta); - break; - case BSS_OPERATIONAL_MODE_NDI: - wma_add_sta_ndi_mode(wma, add_sta); - break; } /* adjust heart beat thresold timer value for detecting ibss peer @@ -4849,13 +4855,6 @@ void wma_delete_sta(tp_wma_handle wma, tpDeleteStaParams del_sta) case BSS_OPERATIONAL_MODE_IBSS: /* IBSS shares AP code */ case BSS_OPERATIONAL_MODE_AP: - if (qdf_is_drv_connected()) { - wma_debug("drv wow enabled allow runtime pm"); - wma_sap_allow_runtime_pm(wma); - } else { - wma_debug("drv wow disabled vote for link down"); - htc_vote_link_down(htc_handle); - } wma_delete_sta_req_ap_mode(wma, del_sta); /* free the memory here only if sync feature is not enabled */ if (!rsp_requested && @@ -4879,6 +4878,19 @@ void wma_delete_sta(tp_wma_handle wma, tpDeleteStaParams del_sta) qdf_mem_free(del_sta); } + /* handle wow for sap, ibss and nan with 1 or more peer in same way */ + if (BSS_OPERATIONAL_MODE_IBSS == oper_mode || + BSS_OPERATIONAL_MODE_AP == oper_mode || + BSS_OPERATIONAL_MODE_NDI == oper_mode) { + if (qdf_is_drv_connected()) { + wma_debug("drv wow enabled allow runtime pm"); + wma_sap_allow_runtime_pm(wma); + } else { + wma_debug("drv wow disabled vote for link down"); + htc_vote_link_down(htc_handle); + } + } + /* adjust heart beat thresold timer value for * detecting ibss peer departure */