1 /* 2 * Copyright (c) 2018 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 wmi_unified_twt_enable_cmd(void *wmi_hdl, 27 struct wmi_twt_enable_param *params) 28 { 29 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 30 31 if (wmi_handle->ops->send_twt_enable_cmd) 32 return wmi_handle->ops->send_twt_enable_cmd( 33 wmi_handle, params); 34 35 return QDF_STATUS_E_FAILURE; 36 } 37 38 QDF_STATUS wmi_unified_twt_disable_cmd(void *wmi_hdl, 39 struct wmi_twt_disable_param *params) 40 { 41 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 42 43 if (wmi_handle->ops->send_twt_disable_cmd) 44 return wmi_handle->ops->send_twt_disable_cmd( 45 wmi_handle, params); 46 47 return QDF_STATUS_E_FAILURE; 48 } 49 50 QDF_STATUS wmi_unified_twt_add_dialog_cmd(void *wmi_hdl, 51 struct wmi_twt_add_dialog_param *params) 52 { 53 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 54 55 if (wmi_handle->ops->send_twt_add_dialog_cmd) 56 return wmi_handle->ops->send_twt_add_dialog_cmd( 57 wmi_handle, params); 58 59 return QDF_STATUS_E_FAILURE; 60 } 61 62 QDF_STATUS wmi_unified_twt_del_dialog_cmd(void *wmi_hdl, 63 struct wmi_twt_del_dialog_param *params) 64 { 65 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 66 67 if (wmi_handle->ops->send_twt_del_dialog_cmd) 68 return wmi_handle->ops->send_twt_del_dialog_cmd( 69 wmi_handle, params); 70 71 return QDF_STATUS_E_FAILURE; 72 } 73 74 QDF_STATUS wmi_unified_twt_pause_dialog_cmd(void *wmi_hdl, 75 struct wmi_twt_pause_dialog_cmd_param *params) 76 { 77 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 78 79 if (wmi_handle->ops->send_twt_pause_dialog_cmd) 80 return wmi_handle->ops->send_twt_pause_dialog_cmd( 81 wmi_handle, params); 82 83 return QDF_STATUS_E_FAILURE; 84 } 85 86 QDF_STATUS wmi_unified_twt_resume_dialog_cmd(void *wmi_hdl, 87 struct wmi_twt_resume_dialog_cmd_param *params) 88 { 89 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 90 91 if (wmi_handle->ops->send_twt_resume_dialog_cmd) 92 return wmi_handle->ops->send_twt_resume_dialog_cmd( 93 wmi_handle, params); 94 95 return QDF_STATUS_E_FAILURE; 96 } 97 98 QDF_STATUS wmi_extract_twt_enable_comp_event(void *wmi_hdl, 99 uint8_t *evt_buf, 100 struct wmi_twt_enable_complete_event_param *params) 101 { 102 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 103 104 if (wmi_handle->ops->extract_twt_enable_comp_event) 105 return wmi_handle->ops->extract_twt_enable_comp_event( 106 wmi_handle, evt_buf, params); 107 108 return QDF_STATUS_E_FAILURE; 109 } 110 111 QDF_STATUS wmi_extract_twt_disable_comp_event(void *wmi_hdl, 112 uint8_t *evt_buf, 113 struct wmi_twt_disable_complete_event *params) 114 { 115 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 116 117 if (wmi_handle->ops->extract_twt_disable_comp_event) 118 return wmi_handle->ops->extract_twt_disable_comp_event( 119 wmi_handle, evt_buf, params); 120 121 return QDF_STATUS_E_FAILURE; 122 } 123 124 QDF_STATUS wmi_extract_twt_add_dialog_comp_event(void *wmi_hdl, 125 uint8_t *evt_buf, 126 struct wmi_twt_add_dialog_complete_event_param *params) 127 { 128 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 129 130 if (wmi_handle->ops->extract_twt_add_dialog_comp_event) 131 return wmi_handle->ops->extract_twt_add_dialog_comp_event( 132 wmi_handle, evt_buf, params); 133 134 return QDF_STATUS_E_FAILURE; 135 } 136 137 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(void *wmi_hdl, 138 uint8_t *evt_buf, 139 struct wmi_twt_del_dialog_complete_event_param *params) 140 { 141 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 142 143 if (wmi_handle->ops->extract_twt_del_dialog_comp_event) 144 return wmi_handle->ops->extract_twt_del_dialog_comp_event( 145 wmi_handle, evt_buf, params); 146 147 return QDF_STATUS_E_FAILURE; 148 } 149 150 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(void *wmi_hdl, 151 uint8_t *evt_buf, 152 struct wmi_twt_pause_dialog_complete_event_param *params) 153 { 154 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 155 156 if (wmi_handle->ops->extract_twt_pause_dialog_comp_event) 157 return wmi_handle->ops->extract_twt_pause_dialog_comp_event( 158 wmi_handle, evt_buf, params); 159 160 return QDF_STATUS_E_FAILURE; 161 } 162 163 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(void *wmi_hdl, 164 uint8_t *evt_buf, 165 struct wmi_twt_resume_dialog_complete_event_param *params) 166 { 167 wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; 168 169 if (wmi_handle->ops->extract_twt_resume_dialog_comp_event) 170 return wmi_handle->ops->extract_twt_resume_dialog_comp_event( 171 wmi_handle, evt_buf, params); 172 173 return QDF_STATUS_E_FAILURE; 174 } 175