1 /* 2 * Copyright (c) 2017,2021 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: contains scan south bound interface definitions 21 */ 22 23 #ifndef _WLAN_SCAN_TGT_API_H_ 24 #define _WLAN_SCAN_TGT_API_H_ 25 26 #include <wlan_objmgr_psoc_obj.h> 27 #include <wlan_objmgr_pdev_obj.h> 28 #include <wlan_objmgr_vdev_obj.h> 29 #include <wlan_objmgr_peer_obj.h> 30 #include <wlan_scan_public_structs.h> 31 #include <wlan_mgmt_txrx_utils_api.h> 32 33 /** 34 * tgt_scan_bcn_probe_rx_callback() - The callbeack registered to tx/rx module 35 * @psoc: psoc context 36 * @peer: peer 37 * @buf: frame buf 38 * @params: rx event params 39 * @frm_type: frame type 40 * 41 * The callbeack registered to tx/rx module and is called when beacon 42 * or probe resp is recived. This will post a msg to target_if queue. 43 * 44 * Return: success or error code. 45 */ 46 QDF_STATUS tgt_scan_bcn_probe_rx_callback(struct wlan_objmgr_psoc *psoc, 47 struct wlan_objmgr_peer *peer, qdf_nbuf_t buf, 48 struct mgmt_rx_event_params *rx_param, 49 enum mgmt_frame_type frm_type); 50 51 /** 52 * tgt_scan_event_handler() - The callbeack registered to WMI for scan events 53 * @psoc: psoc handle 54 * @event_info: event info 55 * 56 * The callbeack registered to WMI for scan events and is called 57 * event for scan is received. This will post a msg to target_if queue. 58 * 59 * Return: 0 for success or error code. 60 */ 61 QDF_STATUS 62 tgt_scan_event_handler(struct wlan_objmgr_psoc *psoc, 63 struct scan_event_info *event_info); 64 65 #ifdef FEATURE_WLAN_SCAN_PNO 66 67 /** 68 * tgt_scan_pno_start() - invoke lmac send PNO start req 69 * @vdev: vdev pointer 70 * @req: pno req params 71 * 72 * Return: 0 for success or error code. 73 */ 74 QDF_STATUS tgt_scan_pno_start(struct wlan_objmgr_vdev *vdev, 75 struct pno_scan_req_params *req); 76 77 /** 78 * tgt_scan_pno_stop() - invoke lmac send PNO stop req 79 * @vdev: vdev pointer 80 * @vdev_id: pno req params 81 * 82 * Return: 0 for success or error code. 83 */ 84 QDF_STATUS tgt_scan_pno_stop(struct wlan_objmgr_vdev *vdev, 85 uint8_t vdev_id); 86 87 #endif 88 89 /** 90 * tgt_scan_obss_disable() - invoke lmac disable obss scan req 91 * @vdev: vdev pointer 92 * 93 * 94 * Return: QDF_STATUS_SUCCESS for success or error code. 95 */ 96 QDF_STATUS tgt_scan_obss_disable(struct wlan_objmgr_vdev *vdev); 97 98 /** 99 * tgt_scan_start() - invoke lmac scan start 100 * @req: scan request object 101 * 102 * This API invokes lmac API function to start scan 103 * 104 * Return: QDF_STATUS_SUCCESS for success or error code. 105 */ 106 QDF_STATUS 107 tgt_scan_start(struct scan_start_request *req); 108 109 110 /** 111 * tgt_scan_cancel() - invoke lmac scan cancel 112 * @req: scan request object 113 * 114 * This API invokes lmac API function to cancel scan 115 * 116 * Return: QDF_STATUS_SUCCESS for success or error code. 117 */ 118 QDF_STATUS 119 tgt_scan_cancel(struct scan_cancel_request *req); 120 121 /** 122 * tgt_scan_register_ev_handler() - invoke lmac register scan event handler 123 * @psoc: psoc object 124 * 125 * This API invokes lmac API function to register for scan events 126 * 127 * Return: QDF_STATUS_SUCCESS for success or error code. 128 */ 129 QDF_STATUS 130 tgt_scan_register_ev_handler(struct wlan_objmgr_psoc *psoc); 131 132 /** 133 * tgt_scan_unregister_ev_handler() - invoke lmac unregister scan event handler 134 * @psoc: psoc object 135 * 136 * This API invokes lmac API function to unregister for scan events 137 * 138 * Return: QDF_STATUS_SUCCESS for success or error code. 139 */ 140 QDF_STATUS 141 tgt_scan_unregister_ev_handler(struct wlan_objmgr_psoc *psoc); 142 143 /** 144 * tgt_scan_set_max_active_scans() - lmac handler to set max active scans 145 * @psoc: psoc object 146 * @max_active_scans: maximum active scans allowed on underlying psoc 147 * 148 * Return: QDF_STATUS 149 */ 150 QDF_STATUS 151 tgt_scan_set_max_active_scans(struct wlan_objmgr_psoc *psoc, 152 uint32_t max_active_scans); 153 154 #endif 155