1 /* 2 * Copyright (c) 2018-2020 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: Implement API's specific to TWT component. 20 */ 21 22 #include "wmi_unified_priv.h" 23 #include "wmi_unified_twt_api.h" 24 25 26 QDF_STATUS 27 wmi_unified_twt_enable_cmd(wmi_unified_t wmi_handle, 28 struct wmi_twt_enable_param *params) 29 { 30 if (wmi_handle->ops->send_twt_enable_cmd) 31 return wmi_handle->ops->send_twt_enable_cmd( 32 wmi_handle, params); 33 34 return QDF_STATUS_E_FAILURE; 35 } 36 37 QDF_STATUS 38 wmi_unified_twt_disable_cmd(wmi_unified_t wmi_handle, 39 struct wmi_twt_disable_param *params) 40 { 41 if (wmi_handle->ops->send_twt_disable_cmd) 42 return wmi_handle->ops->send_twt_disable_cmd( 43 wmi_handle, params); 44 45 return QDF_STATUS_E_FAILURE; 46 } 47 48 QDF_STATUS 49 wmi_unified_twt_add_dialog_cmd(wmi_unified_t wmi_handle, 50 struct wmi_twt_add_dialog_param *params) 51 { 52 if (wmi_handle->ops->send_twt_add_dialog_cmd) 53 return wmi_handle->ops->send_twt_add_dialog_cmd( 54 wmi_handle, params); 55 56 return QDF_STATUS_E_FAILURE; 57 } 58 59 QDF_STATUS 60 wmi_unified_twt_del_dialog_cmd(wmi_unified_t wmi_handle, 61 struct wmi_twt_del_dialog_param *params) 62 { 63 if (wmi_handle->ops->send_twt_del_dialog_cmd) 64 return wmi_handle->ops->send_twt_del_dialog_cmd( 65 wmi_handle, params); 66 67 return QDF_STATUS_E_FAILURE; 68 } 69 70 QDF_STATUS 71 wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle, 72 struct wmi_twt_pause_dialog_cmd_param *params) 73 { 74 if (wmi_handle->ops->send_twt_pause_dialog_cmd) 75 return wmi_handle->ops->send_twt_pause_dialog_cmd( 76 wmi_handle, params); 77 78 return QDF_STATUS_E_FAILURE; 79 } 80 81 QDF_STATUS wmi_unified_twt_resume_dialog_cmd( 82 wmi_unified_t wmi_handle, 83 struct wmi_twt_resume_dialog_cmd_param *params) 84 { 85 if (wmi_handle->ops->send_twt_resume_dialog_cmd) 86 return wmi_handle->ops->send_twt_resume_dialog_cmd( 87 wmi_handle, params); 88 89 return QDF_STATUS_E_FAILURE; 90 } 91 92 #ifdef WLAN_SUPPORT_BCAST_TWT 93 QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd( 94 wmi_unified_t wmi_handle, 95 struct wmi_twt_btwt_invite_sta_cmd_param *params) 96 { 97 if (wmi_handle->ops->send_twt_btwt_invite_sta_cmd) 98 return wmi_handle->ops->send_twt_btwt_invite_sta_cmd( 99 wmi_handle, params); 100 101 return QDF_STATUS_E_FAILURE; 102 } 103 104 QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd( 105 wmi_unified_t wmi_handle, 106 struct wmi_twt_btwt_remove_sta_cmd_param *params) 107 { 108 if (wmi_handle->ops->send_twt_btwt_remove_sta_cmd) 109 return wmi_handle->ops->send_twt_btwt_remove_sta_cmd( 110 wmi_handle, params); 111 112 return QDF_STATUS_E_FAILURE; 113 } 114 #endif 115 116 QDF_STATUS wmi_extract_twt_enable_comp_event( 117 wmi_unified_t wmi_handle, 118 uint8_t *evt_buf, 119 struct wmi_twt_enable_complete_event_param *params) 120 { 121 if (wmi_handle->ops->extract_twt_enable_comp_event) 122 return wmi_handle->ops->extract_twt_enable_comp_event( 123 wmi_handle, evt_buf, params); 124 125 return QDF_STATUS_E_FAILURE; 126 } 127 128 QDF_STATUS wmi_extract_twt_disable_comp_event( 129 wmi_unified_t wmi_handle, 130 uint8_t *evt_buf, 131 struct wmi_twt_disable_complete_event *params) 132 { 133 if (wmi_handle->ops->extract_twt_disable_comp_event) 134 return wmi_handle->ops->extract_twt_disable_comp_event( 135 wmi_handle, evt_buf, params); 136 137 return QDF_STATUS_E_FAILURE; 138 } 139 140 QDF_STATUS wmi_extract_twt_add_dialog_comp_event( 141 wmi_unified_t wmi_handle, 142 uint8_t *evt_buf, 143 struct wmi_twt_add_dialog_complete_event_param *params) 144 { 145 if (wmi_handle->ops->extract_twt_add_dialog_comp_event) 146 return wmi_handle->ops->extract_twt_add_dialog_comp_event( 147 wmi_handle, evt_buf, params); 148 149 return QDF_STATUS_E_FAILURE; 150 } 151 152 QDF_STATUS wmi_extract_twt_add_dialog_comp_additional_params( 153 wmi_unified_t wmi_handle, uint8_t *evt_buf, 154 struct wmi_twt_add_dialog_additional_params *additional_params, 155 uint32_t idx) 156 { 157 if (wmi_handle->ops->extract_twt_add_dialog_comp_additional_params) 158 return wmi_handle->ops-> 159 extract_twt_add_dialog_comp_additional_params( 160 wmi_handle, evt_buf, additional_params, idx); 161 162 return QDF_STATUS_E_FAILURE; 163 } 164 165 QDF_STATUS wmi_extract_twt_del_dialog_comp_event( 166 wmi_unified_t wmi_handle, 167 uint8_t *evt_buf, 168 struct wmi_twt_del_dialog_complete_event_param *params) 169 { 170 if (wmi_handle->ops->extract_twt_del_dialog_comp_event) 171 return wmi_handle->ops->extract_twt_del_dialog_comp_event( 172 wmi_handle, evt_buf, params); 173 174 return QDF_STATUS_E_FAILURE; 175 } 176 177 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event( 178 wmi_unified_t wmi_handle, 179 uint8_t *evt_buf, 180 struct wmi_twt_pause_dialog_complete_event_param *params) 181 { 182 if (wmi_handle->ops->extract_twt_pause_dialog_comp_event) 183 return wmi_handle->ops->extract_twt_pause_dialog_comp_event( 184 wmi_handle, evt_buf, params); 185 186 return QDF_STATUS_E_FAILURE; 187 } 188 189 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event( 190 wmi_unified_t wmi_handle, 191 uint8_t *evt_buf, 192 struct wmi_twt_resume_dialog_complete_event_param *params) 193 { 194 if (wmi_handle->ops->extract_twt_resume_dialog_comp_event) 195 return wmi_handle->ops->extract_twt_resume_dialog_comp_event( 196 wmi_handle, evt_buf, params); 197 198 return QDF_STATUS_E_FAILURE; 199 } 200 201 #ifdef WLAN_SUPPORT_BCAST_TWT 202 QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event( 203 wmi_unified_t wmi_handle, 204 uint8_t *evt_buf, 205 struct wmi_twt_btwt_invite_sta_complete_event_param *params) 206 { 207 if (wmi_handle->ops->extract_twt_btwt_invite_sta_comp_event) 208 return wmi_handle->ops->extract_twt_btwt_invite_sta_comp_event( 209 wmi_handle, evt_buf, params); 210 211 return QDF_STATUS_E_FAILURE; 212 } 213 214 QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event( 215 wmi_unified_t wmi_handle, 216 uint8_t *evt_buf, 217 struct wmi_twt_btwt_remove_sta_complete_event_param *params) 218 { 219 if (wmi_handle->ops->extract_twt_btwt_remove_sta_comp_event) 220 return wmi_handle->ops->extract_twt_btwt_remove_sta_comp_event( 221 wmi_handle, evt_buf, params); 222 223 return QDF_STATUS_E_FAILURE; 224 } 225 #endif 226 227 QDF_STATUS wmi_extract_twt_session_stats_event( 228 wmi_unified_t wmi_handle, 229 uint8_t *evt_buf, 230 struct wmi_twt_session_stats_event_param *params) 231 { 232 if (wmi_handle->ops->extract_twt_session_stats_event) 233 return wmi_handle->ops->extract_twt_session_stats_event( 234 wmi_handle, evt_buf, params); 235 236 return QDF_STATUS_E_FAILURE; 237 } 238 239 QDF_STATUS wmi_extract_twt_session_stats_data( 240 wmi_unified_t wmi_handle, 241 uint8_t *evt_buf, 242 struct wmi_twt_session_stats_event_param *params, 243 struct wmi_host_twt_session_stats_info *session, 244 uint32_t idx) 245 { 246 if (wmi_handle->ops->extract_twt_session_stats_data) 247 return wmi_handle->ops->extract_twt_session_stats_data( 248 wmi_handle, evt_buf, params, session, idx); 249 250 return QDF_STATUS_E_FAILURE; 251 } 252