From 140c41ee3650d449b6c5d418cf3b6e4ddabb7485 Mon Sep 17 00:00:00 2001 From: Sandeep Puligilla Date: Mon, 3 Apr 2017 22:53:39 -0700 Subject: [PATCH] qcacmn: Register scan rule callback with serialization Register Scan rule callback API with the serialization module. Change-Id: Ie578413a13bc7adcac0ed2a56d9574ad00b7e51c CRs-Fixed: 2037248 --- umac/scan/dispatcher/src/wlan_scan_ucfg_api.c | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c index 09ab0877e11c..5f2a69a21aa2 100644 --- a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c +++ b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c @@ -1115,6 +1115,31 @@ ucfg_scan_psoc_close(struct wlan_objmgr_psoc *psoc) return QDF_STATUS_SUCCESS; } +static bool scm_serialization_scan_rules_cb( + union wlan_serialization_rules_info *comp_info, + uint8_t comp_id) +{ + switch (comp_id) { + case QDF_MODULE_ID_TDLS: + if (comp_info->scan_info.is_tdls_in_progress) { + scm_info("Cancel scan. Tdls in progress"); + return false; + } + break; + case QDF_MODULE_ID_DFS: + if (comp_info->scan_info.is_cac_in_progress) { + scm_info("Cancel scan. CAC in progress"); + return false; + } + break; + default: + scm_info("not handled comp_id %d", comp_id); + break; + } + + return true; +} + QDF_STATUS ucfg_scan_psoc_enable(struct wlan_objmgr_psoc *psoc) { @@ -1130,7 +1155,10 @@ ucfg_scan_psoc_enable(struct wlan_objmgr_psoc *psoc) QDF_ASSERT(status == QDF_STATUS_SUCCESS); scm_db_init(psoc); ucfg_scan_register_unregister_bcn_cb(psoc, true); - + status = wlan_serialization_register_apply_rules_cb(psoc, + WLAN_SER_CMD_SCAN, + scm_serialization_scan_rules_cb); + QDF_ASSERT(status == QDF_STATUS_SUCCESS); return status; }