xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_dfs_api.h (revision d97a5912d37f3ed3ec22e5ea3d41a9537ae60ae6)
1 /*
2  * Copyright (c) 2017-2019 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  * DOC: This file contains the API definitions for the Unified Wireless Module
20  * Interface (WMI) which are specific to DFS module.
21  */
22 
23 #ifndef _WMI_UNIFIED_DFS_API_H_
24 #define _WMI_UNIFIED_DFS_API_H_
25 
26 #include <wlan_objmgr_vdev_obj.h>
27 #include <wlan_dfs_utils_api.h>
28 
29 /**
30  * wmi_extract_dfs_cac_complete_event() - function to handle cac complete event
31  * @handle: wma handle
32  * @event_buf: event buffer
33  * @vdev_id: vdev id
34  * @len: length of buffer
35  *
36  * Return: 0 for success or error code
37  */
38 QDF_STATUS wmi_extract_dfs_cac_complete_event(void *wmi_hdl,
39 		uint8_t *evt_buf,
40 		uint32_t *vdev_id,
41 		uint32_t len);
42 
43 /**
44  * wmi_extract_dfs_ocac_complete_event() - function to handle off channel
45  *						CAC complete event
46  * @handle: wmi handle
47  * @event_buf: event buffer
48  * @vdev_adfs_complete_status: off channel cac  complete params
49  *
50  * Return: 0 for success or error code
51  */
52 QDF_STATUS
53 wmi_extract_dfs_ocac_complete_event(void *wmi_hdl, uint8_t *evt_buf,
54 				    struct vdev_adfs_complete_status *param);
55 
56 /**
57  * wmi_extract_dfs_radar_detection_event() - function to handle radar event
58  * @handle: wma handle
59  * @event_buf: event buffer
60  * @radar_found: radar found event info
61  * @vdev_id: vdev id
62  * @len: length of buffer
63  *
64  * Return: 0 for success or error code
65  */
66 QDF_STATUS wmi_extract_dfs_radar_detection_event(void *wmi_hdl,
67 		uint8_t *evt_buf,
68 		struct radar_found_info *radar_found,
69 		uint32_t len);
70 
71 #ifdef QCA_MCL_DFS_SUPPORT
72 /**
73  * wmi_extract_wlan_radar_event_info() - function to handle radar pulse event.
74  * @wmi_hdl: wmi handle
75  * @evt_buf: event buffer
76  * @wlan_radar_event: pointer to radar event info structure
77  * @len: length of buffer
78  *
79  * Return: QDF_STATUS
80  */
81 QDF_STATUS wmi_extract_wlan_radar_event_info(void *wmi_hdl,
82 		uint8_t *evt_buf,
83 		struct radar_event_info *wlan_radar_event,
84 		uint32_t len);
85 #endif
86 
87 #if defined(WLAN_DFS_FULL_OFFLOAD) && defined(QCA_DFS_NOL_OFFLOAD)
88 /**
89  * wmi_send_usenol_pdev_param() - function to send usenol pdev param.
90  * @wmi_hdl: wmi handle
91  * @usenol: value of usenol
92  * @pdev: pointer to objmgr_pdev structure
93  *
94  * Return: QDF_STATUS
95  */
96 QDF_STATUS wmi_send_usenol_pdev_param(void *wmi_hdl, bool usenol,
97 				      struct wlan_objmgr_pdev *pdev);
98 
99 /**
100  * wmi_send_subchan_marking_pdev_param() - Function to send subchannel
101  * marking pdev param.
102  * @wmi_hdl: WMI handle.
103  * @subchanmark: Value of use subchannel marking.
104  * @pdev: Pointer to objmgr_pdev structure.
105  *
106  * Return: QDF_STATUS
107  */
108 QDF_STATUS
109 wmi_send_subchan_marking_pdev_param(void *wmi_hdl,
110 				    bool subchanmark,
111 				    struct wlan_objmgr_pdev *pdev);
112 #else
113 static inline QDF_STATUS
114 wmi_send_usenol_pdev_param(void *wmi_hdl, bool usenol,
115 			   struct wlan_objmgr_pdev *pdev)
116 {
117 	return QDF_STATUS_SUCCESS;
118 }
119 
120 static inline QDF_STATUS
121 wmi_send_subchan_marking_pdev_param(void *wmi_hdl,
122 				    bool subchanmark,
123 				    struct wlan_objmgr_pdev *pdev)
124 {
125 	return QDF_STATUS_SUCCESS;
126 }
127 #endif
128 #endif /* _WMI_UNIFIED_DFS_API_H_ */
129