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