wmi_unified_twt_api.c 7.1 KB

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