wmi_unified_twt_api.c 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. /*
  2. * Copyright (c) 2018-2021 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
  69. wmi_unified_twt_nudge_dialog_cmd(wmi_unified_t wmi_handle,
  70. struct wmi_twt_nudge_dialog_cmd_param *params)
  71. {
  72. if (wmi_handle->ops->send_twt_nudge_dialog_cmd)
  73. return wmi_handle->ops->send_twt_nudge_dialog_cmd(
  74. wmi_handle, params);
  75. return QDF_STATUS_E_FAILURE;
  76. }
  77. QDF_STATUS wmi_unified_twt_resume_dialog_cmd(
  78. wmi_unified_t wmi_handle,
  79. struct wmi_twt_resume_dialog_cmd_param *params)
  80. {
  81. if (wmi_handle->ops->send_twt_resume_dialog_cmd)
  82. return wmi_handle->ops->send_twt_resume_dialog_cmd(
  83. wmi_handle, params);
  84. return QDF_STATUS_E_FAILURE;
  85. }
  86. #ifdef WLAN_SUPPORT_BCAST_TWT
  87. QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd(
  88. wmi_unified_t wmi_handle,
  89. struct wmi_twt_btwt_invite_sta_cmd_param *params)
  90. {
  91. if (wmi_handle->ops->send_twt_btwt_invite_sta_cmd)
  92. return wmi_handle->ops->send_twt_btwt_invite_sta_cmd(
  93. wmi_handle, params);
  94. return QDF_STATUS_E_FAILURE;
  95. }
  96. QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd(
  97. wmi_unified_t wmi_handle,
  98. struct wmi_twt_btwt_remove_sta_cmd_param *params)
  99. {
  100. if (wmi_handle->ops->send_twt_btwt_remove_sta_cmd)
  101. return wmi_handle->ops->send_twt_btwt_remove_sta_cmd(
  102. wmi_handle, params);
  103. return QDF_STATUS_E_FAILURE;
  104. }
  105. #endif
  106. QDF_STATUS wmi_extract_twt_enable_comp_event(
  107. wmi_unified_t wmi_handle,
  108. uint8_t *evt_buf,
  109. struct wmi_twt_enable_complete_event_param *params)
  110. {
  111. if (wmi_handle->ops->extract_twt_enable_comp_event)
  112. return wmi_handle->ops->extract_twt_enable_comp_event(
  113. wmi_handle, evt_buf, params);
  114. return QDF_STATUS_E_FAILURE;
  115. }
  116. QDF_STATUS wmi_extract_twt_disable_comp_event(
  117. wmi_unified_t wmi_handle,
  118. uint8_t *evt_buf,
  119. struct wmi_twt_disable_complete_event *params)
  120. {
  121. if (wmi_handle->ops->extract_twt_disable_comp_event)
  122. return wmi_handle->ops->extract_twt_disable_comp_event(
  123. wmi_handle, evt_buf, params);
  124. return QDF_STATUS_E_FAILURE;
  125. }
  126. QDF_STATUS wmi_extract_twt_add_dialog_comp_event(
  127. wmi_unified_t wmi_handle,
  128. uint8_t *evt_buf,
  129. struct wmi_twt_add_dialog_complete_event_param *params)
  130. {
  131. if (wmi_handle->ops->extract_twt_add_dialog_comp_event)
  132. return wmi_handle->ops->extract_twt_add_dialog_comp_event(
  133. wmi_handle, evt_buf, params);
  134. return QDF_STATUS_E_FAILURE;
  135. }
  136. QDF_STATUS wmi_extract_twt_add_dialog_comp_additional_params(
  137. wmi_unified_t wmi_handle, uint8_t *evt_buf,
  138. uint32_t evt_buf_len, uint32_t idx,
  139. struct wmi_twt_add_dialog_additional_params *additional_params)
  140. {
  141. if (wmi_handle->ops->extract_twt_add_dialog_comp_additional_params)
  142. return wmi_handle->ops->
  143. extract_twt_add_dialog_comp_additional_params(
  144. wmi_handle, evt_buf, evt_buf_len, idx,
  145. additional_params);
  146. return QDF_STATUS_E_FAILURE;
  147. }
  148. QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
  149. wmi_unified_t wmi_handle,
  150. uint8_t *evt_buf,
  151. struct wmi_twt_del_dialog_complete_event_param *params)
  152. {
  153. if (wmi_handle->ops->extract_twt_del_dialog_comp_event)
  154. return wmi_handle->ops->extract_twt_del_dialog_comp_event(
  155. wmi_handle, evt_buf, params);
  156. return QDF_STATUS_E_FAILURE;
  157. }
  158. QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
  159. wmi_unified_t wmi_handle,
  160. uint8_t *evt_buf,
  161. struct wmi_twt_pause_dialog_complete_event_param *params)
  162. {
  163. if (wmi_handle->ops->extract_twt_pause_dialog_comp_event)
  164. return wmi_handle->ops->extract_twt_pause_dialog_comp_event(
  165. wmi_handle, evt_buf, params);
  166. return QDF_STATUS_E_FAILURE;
  167. }
  168. QDF_STATUS wmi_extract_twt_nudge_dialog_comp_event(
  169. wmi_unified_t wmi_handle,
  170. uint8_t *evt_buf,
  171. struct wmi_twt_nudge_dialog_complete_event_param *params)
  172. {
  173. if (wmi_handle->ops->extract_twt_nudge_dialog_comp_event)
  174. return wmi_handle->ops->extract_twt_nudge_dialog_comp_event(
  175. wmi_handle, evt_buf, params);
  176. return QDF_STATUS_E_FAILURE;
  177. }
  178. QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
  179. wmi_unified_t wmi_handle,
  180. uint8_t *evt_buf,
  181. struct wmi_twt_resume_dialog_complete_event_param *params)
  182. {
  183. if (wmi_handle->ops->extract_twt_resume_dialog_comp_event)
  184. return wmi_handle->ops->extract_twt_resume_dialog_comp_event(
  185. wmi_handle, evt_buf, params);
  186. return QDF_STATUS_E_FAILURE;
  187. }
  188. QDF_STATUS wmi_extract_twt_notify_event(
  189. wmi_unified_t wmi_handle,
  190. uint8_t *evt_buf,
  191. struct wmi_twt_notify_event_param *params)
  192. {
  193. if (wmi_handle->ops->extract_twt_notify_event)
  194. return wmi_handle->ops->extract_twt_notify_event(wmi_handle,
  195. evt_buf,
  196. params);
  197. return QDF_STATUS_E_FAILURE;
  198. }
  199. #ifdef WLAN_SUPPORT_BCAST_TWT
  200. QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event(
  201. wmi_unified_t wmi_handle,
  202. uint8_t *evt_buf,
  203. struct wmi_twt_btwt_invite_sta_complete_event_param *params)
  204. {
  205. if (wmi_handle->ops->extract_twt_btwt_invite_sta_comp_event)
  206. return wmi_handle->ops->extract_twt_btwt_invite_sta_comp_event(
  207. wmi_handle, evt_buf, params);
  208. return QDF_STATUS_E_FAILURE;
  209. }
  210. QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
  211. wmi_unified_t wmi_handle,
  212. uint8_t *evt_buf,
  213. struct wmi_twt_btwt_remove_sta_complete_event_param *params)
  214. {
  215. if (wmi_handle->ops->extract_twt_btwt_remove_sta_comp_event)
  216. return wmi_handle->ops->extract_twt_btwt_remove_sta_comp_event(
  217. wmi_handle, evt_buf, params);
  218. return QDF_STATUS_E_FAILURE;
  219. }
  220. #endif
  221. QDF_STATUS wmi_extract_twt_session_stats_event(
  222. wmi_unified_t wmi_handle,
  223. uint8_t *evt_buf,
  224. struct wmi_twt_session_stats_event_param *params)
  225. {
  226. if (wmi_handle->ops->extract_twt_session_stats_event)
  227. return wmi_handle->ops->extract_twt_session_stats_event(
  228. wmi_handle, evt_buf, params);
  229. return QDF_STATUS_E_FAILURE;
  230. }
  231. QDF_STATUS wmi_extract_twt_session_stats_data(
  232. wmi_unified_t wmi_handle,
  233. uint8_t *evt_buf,
  234. struct wmi_twt_session_stats_event_param *params,
  235. struct wmi_host_twt_session_stats_info *session,
  236. uint32_t idx)
  237. {
  238. if (wmi_handle->ops->extract_twt_session_stats_data)
  239. return wmi_handle->ops->extract_twt_session_stats_data(
  240. wmi_handle, evt_buf, params, session, idx);
  241. return QDF_STATUS_E_FAILURE;
  242. }
  243. QDF_STATUS wmi_extract_twt_cap_service_ready_ext2(
  244. wmi_unified_t wmi_handle,
  245. uint8_t *evt_buf,
  246. struct wmi_twt_cap_bitmap_params *params)
  247. {
  248. if (wmi_handle->ops->extract_twt_cap_service_ready_ext2)
  249. return wmi_handle->ops->extract_twt_cap_service_ready_ext2(
  250. wmi_handle, evt_buf, params);
  251. return QDF_STATUS_E_FAILURE;
  252. }
  253. QDF_STATUS wmi_extract_twt_ack_comp_event(
  254. wmi_unified_t wmi_handle,
  255. uint8_t *evt_buf,
  256. struct wmi_twt_ack_complete_event_param *params)
  257. {
  258. if (wmi_handle->ops->extract_twt_ack_comp_event)
  259. return wmi_handle->ops->extract_twt_ack_comp_event(
  260. wmi_handle, evt_buf, params);
  261. return QDF_STATUS_E_FAILURE;
  262. }