1 /*
2 * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
3 *
4 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
19 /*
20 * DOC: This file contains all EXTSSCAN component's APIs
21 */
22
23 #include "wlan_extscan_api.h"
24 #include "cfg_ucfg_api.h"
25
extscan_get_enable(struct wlan_objmgr_psoc * psoc)26 bool extscan_get_enable(struct wlan_objmgr_psoc *psoc)
27 {
28 struct wlan_scan_obj *scan_obj;
29
30 scan_obj = wlan_psoc_get_scan_obj(psoc);
31 if (!scan_obj) {
32 scm_err("Failed to get scan object");
33 return false;
34 }
35
36 return scan_obj->extscan_cfg.extscan_enabled;
37 }
38
extscan_get_passive_max_time(struct wlan_objmgr_psoc * psoc,uint32_t * passive_max_chn_time)39 void extscan_get_passive_max_time(struct wlan_objmgr_psoc *psoc,
40 uint32_t *passive_max_chn_time)
41 {
42 struct wlan_scan_obj *scan_obj;
43
44 scan_obj = wlan_psoc_get_scan_obj(psoc);
45 if (!scan_obj) {
46 scm_err("Failed to get scan object");
47 return;
48 }
49
50 *passive_max_chn_time =
51 scan_obj->extscan_cfg.extscan_passive_max_chn_time;
52 }
53
extscan_get_active_max_time(struct wlan_objmgr_psoc * psoc,uint32_t * active_max_chn_time)54 void extscan_get_active_max_time(struct wlan_objmgr_psoc *psoc,
55 uint32_t *active_max_chn_time)
56 {
57 struct wlan_scan_obj *scan_obj;
58
59 scan_obj = wlan_psoc_get_scan_obj(psoc);
60 if (!scan_obj) {
61 scm_err("Failed to get scan object");
62 return;
63 }
64
65 *active_max_chn_time =
66 scan_obj->extscan_cfg.extscan_active_max_chn_time;
67 }
68
extscan_get_active_min_time(struct wlan_objmgr_psoc * psoc,uint32_t * active_min_chn_time)69 void extscan_get_active_min_time(struct wlan_objmgr_psoc *psoc,
70 uint32_t *active_min_chn_time)
71 {
72 struct wlan_scan_obj *scan_obj;
73
74 scan_obj = wlan_psoc_get_scan_obj(psoc);
75 if (!scan_obj) {
76 scm_err("Failed to get scan object");
77 return;
78 }
79
80 *active_min_chn_time =
81 scan_obj->extscan_cfg.extscan_active_min_chn_time;
82 }
83
84 QDF_STATUS
wlan_extscan_global_init(struct wlan_objmgr_psoc * psoc,struct wlan_scan_obj * scan_obj)85 wlan_extscan_global_init(struct wlan_objmgr_psoc *psoc,
86 struct wlan_scan_obj *scan_obj)
87 {
88 struct extscan_def_config *extscan_def = &scan_obj->extscan_cfg;
89
90 extscan_def->extscan_enabled = true;
91 extscan_def->extscan_passive_max_chn_time =
92 cfg_get(psoc, CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME);
93 extscan_def->extscan_passive_min_chn_time =
94 cfg_get(psoc, CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME);
95 extscan_def->extscan_active_max_chn_time =
96 cfg_get(psoc, CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME);
97 extscan_def->extscan_active_min_chn_time =
98 cfg_get(psoc, CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME);
99 return QDF_STATUS_SUCCESS;
100 }
101
102 QDF_STATUS
wlan_extscan_global_deinit()103 wlan_extscan_global_deinit()
104 {
105 return QDF_STATUS_SUCCESS;
106 }
107