1 2 /* 3 * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 /** 20 * DOC: Implement API's specific to TWT component. 21 */ 22 23 #ifndef _WMI_UNIFIED_TWT_API_H_ 24 #define _WMI_UNIFIED_TWT_API_H_ 25 26 #include "wmi_unified_twt_param.h" 27 28 29 /** 30 * wmi_unified_twt_enable_cmd() - Send WMI command to Enable TWT 31 * @wmi_handle: wmi handle 32 * @params: Parameters to be configured 33 * 34 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 35 */ 36 QDF_STATUS 37 wmi_unified_twt_enable_cmd(wmi_unified_t wmi_handle, 38 struct wmi_twt_enable_param *params); 39 40 /** 41 * wmi_unified_twt_disable_cmd() - Send WMI command to disable TWT 42 * @wmi_handle: wmi handle 43 * @params: Parameters to be configured 44 * 45 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 46 */ 47 QDF_STATUS 48 wmi_unified_twt_disable_cmd(wmi_unified_t wmi_handle, 49 struct wmi_twt_disable_param *params); 50 51 /** 52 * wmi_unified_twt_add_dialog_cmd() - Send WMI command to add TWT dialog 53 * @wmi_handle: wmi handle 54 * @params: Parameters to be configured 55 * 56 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 57 */ 58 QDF_STATUS 59 wmi_unified_twt_add_dialog_cmd(wmi_unified_t wmi_handle, 60 struct wmi_twt_add_dialog_param *params); 61 62 /** 63 * wmi_unified_twt_del_dialog_cmd() - Send WMI command to delete TWT dialog 64 * @wmi_handle: wmi handle 65 * @params: Parameters to be configured 66 * 67 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 68 */ 69 QDF_STATUS 70 wmi_unified_twt_del_dialog_cmd(wmi_unified_t wmi_handle, 71 struct wmi_twt_del_dialog_param *params); 72 73 /** 74 * wmi_unified_twt_pause_dialog_cmd() - Send WMI command to pause TWT dialog 75 * @wmi_handle: wmi handle 76 * @params: Parameters to be configured 77 * 78 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 79 */ 80 QDF_STATUS 81 wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle, 82 struct wmi_twt_pause_dialog_cmd_param *params); 83 84 /** 85 * wmi_unified_twt_resume_dialog_cmd() - Send WMI command to resume TWT dialog 86 * @wmi_handle: wmi handle 87 * @params: Parameters to be configured 88 * 89 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 90 */ 91 QDF_STATUS wmi_unified_twt_resume_dialog_cmd( 92 wmi_unified_t wmi_handle, 93 struct wmi_twt_resume_dialog_cmd_param *params); 94 95 #ifdef WLAN_SUPPORT_BCAST_TWT 96 /** 97 * wmi_unified_twt_btwt_invite_sta_cmd() - Send WMI command for bTWT sta 98 * invitation 99 * @wmi_handle: wmi handle 100 * @params: Parameters to be configured 101 * 102 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 103 */ 104 QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd( 105 wmi_unified_t wmi_handle, 106 struct wmi_twt_btwt_invite_sta_cmd_param *params); 107 108 /** 109 * wmi_unified_twt_btwt_remove_sta_cmd() - Send WMI command for bTWT sta kickoff 110 * @wmi_handle: wmi handle 111 * @params: Parameters to be configured 112 * 113 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 114 */ 115 QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd( 116 wmi_unified_t wmi_handle, 117 struct wmi_twt_btwt_remove_sta_cmd_param *params); 118 #endif 119 120 /** 121 * wmi_extract_twt_enable_comp_event() - Extract WMI event params for TWT enable 122 * completion event 123 * @wmi_handle: wmi handle 124 * @evt_buf: Pointer event buffer 125 * @params: Parameters to extract 126 * 127 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 128 */ 129 QDF_STATUS wmi_extract_twt_enable_comp_event( 130 wmi_unified_t wmi_handle, 131 uint8_t *evt_buf, 132 struct wmi_twt_enable_complete_event_param *params); 133 134 /** 135 * wmi_extract_twt_disable_comp_event() - Extract WMI event params for TWT 136 * disable completion event 137 * @wmi_handle: wmi handle 138 * @evt_buf: Pointer event buffer 139 * @params: Parameters to extract 140 * 141 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 142 */ 143 QDF_STATUS wmi_extract_twt_disable_comp_event( 144 wmi_unified_t wmi_handle, 145 uint8_t *evt_buf, 146 struct wmi_twt_disable_complete_event *params); 147 148 /** 149 * wmi_extract_twt_add_dialog_comp_event() - Extract WMI event params for TWT 150 * add dialog completion event 151 * @wmi_hdl: wmi handle 152 * @evt_buf: Pointer event buffer 153 * @params: Parameters to extract 154 * 155 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 156 */ 157 QDF_STATUS wmi_extract_twt_add_dialog_comp_event( 158 wmi_unified_t wmi_handle, 159 uint8_t *evt_buf, 160 struct wmi_twt_add_dialog_complete_event_param *params); 161 162 /** 163 * wmi_extract_twt_del_dialog_comp_event() - Extract WMI event params for TWT 164 * delete dialog completion event 165 * @wmi_hdl: wmi handle 166 * @evt_buf: Pointer event buffer 167 * @params: Parameters to extract 168 * 169 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 170 */ 171 QDF_STATUS wmi_extract_twt_del_dialog_comp_event( 172 wmi_unified_t wmi_handle, 173 uint8_t *evt_buf, 174 struct wmi_twt_del_dialog_complete_event_param *params); 175 176 /** 177 * wmi_extract_twt_pause_dialog_comp_event() - Extract WMI event params for TWT 178 * pause dialog completion event 179 * @wmi_handle: wmi handle 180 * @evt_buf: Pointer event buffer 181 * @params: Parameters to extract 182 * 183 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 184 */ 185 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event( 186 wmi_unified_t wmi_handle, 187 uint8_t *evt_buf, 188 struct wmi_twt_pause_dialog_complete_event_param *params); 189 190 /** 191 * wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT 192 * resume dialog completion event 193 * @wmi_handle: wmi handle 194 * @evt_buf: Pointer event buffer 195 * @params: Parameters to extract 196 * 197 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 198 */ 199 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event( 200 wmi_unified_t wmi_handle, 201 uint8_t *evt_buf, 202 struct wmi_twt_resume_dialog_complete_event_param *params); 203 204 #ifdef WLAN_SUPPORT_BCAST_TWT 205 /** 206 * wmi_extract_twt_btwt_invite_sta_comp_event() - Extract WMI event params for 207 * BTWT sta invitation completion event 208 * @wmi_handle: wmi handle 209 * @evt_buf: Pointer event buffer 210 * @params: Parameters to extract 211 * 212 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 213 */ 214 QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event( 215 wmi_unified_t wmi_handle, 216 uint8_t *evt_buf, 217 struct wmi_twt_btwt_invite_sta_complete_event_param *params); 218 219 /** 220 * wmi_extract_twt_btwt_remove_sta_comp_event() - Extract WMI event params for 221 * BTWT sta kickoff completion event 222 * @wmi_handle: wmi handle 223 * @evt_buf: Pointer event buffer 224 * @params: Parameters to extract 225 * 226 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 227 */ 228 QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event( 229 wmi_unified_t wmi_handle, 230 uint8_t *evt_buf, 231 struct wmi_twt_btwt_remove_sta_complete_event_param *params); 232 #endif 233 234 #ifdef WLAN_SUPPORT_TWT 235 void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle); 236 #else 237 static void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle) 238 { 239 return; 240 } 241 #endif 242 243 #endif /* _WMI_UNIFIED_TWT_API_H_ */ 244