wmi_unified_roam_api.c 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. /*
  2. * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. #include <osdep.h>
  17. #include <wmi.h>
  18. #include <wmi_unified_priv.h>
  19. #include <wmi_unified_roam_param.h>
  20. #include <wmi_unified_roam_api.h>
  21. #ifdef FEATURE_LFR_SUBNET_DETECTION
  22. QDF_STATUS
  23. wmi_unified_set_gateway_params_cmd(wmi_unified_t wmi_handle,
  24. struct gateway_update_req_param *req)
  25. {
  26. if (wmi_handle->ops->send_set_gateway_params_cmd)
  27. return wmi_handle->ops->send_set_gateway_params_cmd(wmi_handle,
  28. req);
  29. return QDF_STATUS_E_FAILURE;
  30. }
  31. #endif /* FEATURE_LFR_SUBNET_DETECTION */
  32. #ifdef FEATURE_RSSI_MONITOR
  33. QDF_STATUS
  34. wmi_unified_set_rssi_monitoring_cmd(wmi_unified_t wmi_handle,
  35. struct rssi_monitor_param *req)
  36. {
  37. if (wmi_handle->ops->send_set_rssi_monitoring_cmd)
  38. return wmi_handle->ops->send_set_rssi_monitoring_cmd(wmi_handle,
  39. req);
  40. return QDF_STATUS_E_FAILURE;
  41. }
  42. #endif /* FEATURE_RSSI_MONITOR */
  43. QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd(
  44. wmi_unified_t wmi_handle,
  45. struct wlan_roam_offload_scan_rssi_params *roam_req)
  46. {
  47. if (wmi_handle->ops->send_roam_scan_offload_rssi_thresh_cmd)
  48. return wmi_handle->ops->send_roam_scan_offload_rssi_thresh_cmd(
  49. wmi_handle, roam_req);
  50. return QDF_STATUS_E_FAILURE;
  51. }
  52. QDF_STATUS
  53. wmi_unified_roam_scan_offload_scan_period(
  54. wmi_unified_t wmi_handle,
  55. struct wlan_roam_scan_period_params *param)
  56. {
  57. if (wmi_handle->ops->send_roam_scan_offload_scan_period_cmd)
  58. return wmi_handle->ops->send_roam_scan_offload_scan_period_cmd(
  59. wmi_handle, param);
  60. return QDF_STATUS_E_FAILURE;
  61. }
  62. QDF_STATUS wmi_unified_roam_mawc_params_cmd(
  63. wmi_unified_t wmi_handle,
  64. struct wlan_roam_mawc_params *params)
  65. {
  66. if (wmi_handle->ops->send_roam_mawc_params_cmd)
  67. return wmi_handle->ops->send_roam_mawc_params_cmd(wmi_handle,
  68. params);
  69. return QDF_STATUS_E_FAILURE;
  70. }
  71. QDF_STATUS
  72. wmi_unified_roam_scan_filter_cmd(wmi_unified_t wmi_handle,
  73. struct roam_scan_filter_params *roam_req)
  74. {
  75. if (wmi_handle->ops->send_roam_scan_filter_cmd)
  76. return wmi_handle->ops->send_roam_scan_filter_cmd(wmi_handle,
  77. roam_req);
  78. return QDF_STATUS_E_FAILURE;
  79. }
  80. #ifdef FEATURE_WLAN_ESE
  81. QDF_STATUS wmi_unified_plm_stop_cmd(wmi_unified_t wmi_handle,
  82. const struct plm_req_params *plm)
  83. {
  84. if (wmi_handle->ops->send_plm_stop_cmd)
  85. return wmi_handle->ops->send_plm_stop_cmd(wmi_handle, plm);
  86. return QDF_STATUS_E_FAILURE;
  87. }
  88. QDF_STATUS wmi_unified_plm_start_cmd(wmi_unified_t wmi_handle,
  89. const struct plm_req_params *plm)
  90. {
  91. if (wmi_handle->ops->send_plm_start_cmd)
  92. return wmi_handle->ops->send_plm_start_cmd(wmi_handle, plm);
  93. return QDF_STATUS_E_FAILURE;
  94. }
  95. #endif /* FEATURE_WLAN_ESE */
  96. #ifdef WLAN_FEATURE_ROAM_OFFLOAD
  97. QDF_STATUS wmi_unified_set_ric_req_cmd(wmi_unified_t wmi_handle, void *msg,
  98. uint8_t is_add_ts)
  99. {
  100. if (wmi_handle->ops->send_set_ric_req_cmd)
  101. return wmi_handle->ops->send_set_ric_req_cmd(wmi_handle, msg,
  102. is_add_ts);
  103. return QDF_STATUS_E_FAILURE;
  104. }
  105. QDF_STATUS wmi_unified_roam_synch_complete_cmd(wmi_unified_t wmi_handle,
  106. uint8_t vdev_id)
  107. {
  108. if (wmi_handle->ops->send_process_roam_synch_complete_cmd)
  109. return wmi_handle->ops->send_process_roam_synch_complete_cmd(
  110. wmi_handle, vdev_id);
  111. return QDF_STATUS_E_FAILURE;
  112. }
  113. QDF_STATUS wmi_unified_roam_invoke_cmd(wmi_unified_t wmi_handle,
  114. struct wmi_roam_invoke_cmd *roaminvoke,
  115. uint32_t ch_hz)
  116. {
  117. if (wmi_handle->ops->send_roam_invoke_cmd)
  118. return wmi_handle->ops->send_roam_invoke_cmd(wmi_handle,
  119. roaminvoke,
  120. ch_hz);
  121. return QDF_STATUS_E_FAILURE;
  122. }
  123. QDF_STATUS
  124. wmi_unified_send_disconnect_roam_params(wmi_unified_t wmi_handle,
  125. struct wlan_roam_disconnect_params *req)
  126. {
  127. if (wmi_handle->ops->send_disconnect_roam_params)
  128. return wmi_handle->ops->send_disconnect_roam_params(wmi_handle,
  129. req);
  130. return QDF_STATUS_E_FAILURE;
  131. }
  132. QDF_STATUS
  133. wmi_unified_send_idle_roam_params(wmi_unified_t wmi_handle,
  134. struct wlan_roam_idle_params *req)
  135. {
  136. if (wmi_handle->ops->send_idle_roam_params)
  137. return wmi_handle->ops->send_idle_roam_params(wmi_handle,
  138. req);
  139. return QDF_STATUS_E_FAILURE;
  140. }
  141. QDF_STATUS
  142. wmi_unified_send_roam_preauth_status(wmi_unified_t wmi_handle,
  143. struct wmi_roam_auth_status_params *params)
  144. {
  145. if (wmi_handle->ops->send_roam_preauth_status)
  146. return wmi_handle->ops->send_roam_preauth_status(wmi_handle,
  147. params);
  148. return QDF_STATUS_E_FAILURE;
  149. }
  150. QDF_STATUS wmi_unified_vdev_set_pcl_cmd(wmi_unified_t wmi_handle,
  151. struct set_pcl_cmd_params *params)
  152. {
  153. if (wmi_handle->ops->send_vdev_set_pcl_cmd)
  154. return wmi_handle->ops->send_vdev_set_pcl_cmd(wmi_handle,
  155. params);
  156. return QDF_STATUS_E_FAILURE;
  157. }
  158. #endif /* WLAN_FEATURE_ROAM_OFFLOAD */
  159. QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd(
  160. wmi_unified_t wmi_handle,
  161. struct wlan_roam_scan_offload_params *rso_cfg)
  162. {
  163. if (wmi_handle->ops->send_roam_scan_offload_mode_cmd)
  164. return wmi_handle->ops->send_roam_scan_offload_mode_cmd(
  165. wmi_handle, rso_cfg);
  166. return QDF_STATUS_E_FAILURE;
  167. }
  168. QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(
  169. wmi_unified_t wmi_handle,
  170. struct ap_profile_params *ap_profile)
  171. {
  172. if (wmi_handle->ops->send_roam_scan_offload_ap_profile_cmd)
  173. return wmi_handle->ops->send_roam_scan_offload_ap_profile_cmd(
  174. wmi_handle, ap_profile);
  175. return QDF_STATUS_E_FAILURE;
  176. }
  177. QDF_STATUS wmi_unified_roam_scan_offload_cmd(wmi_unified_t wmi_handle,
  178. uint32_t command,
  179. uint32_t vdev_id)
  180. {
  181. if (wmi_handle->ops->send_roam_scan_offload_cmd)
  182. return wmi_handle->ops->send_roam_scan_offload_cmd(wmi_handle,
  183. command,
  184. vdev_id);
  185. return QDF_STATUS_E_FAILURE;
  186. }
  187. QDF_STATUS
  188. wmi_unified_roam_scan_offload_chan_list_cmd(
  189. wmi_unified_t wmi_handle,
  190. struct wlan_roam_scan_channel_list *rso_ch_info)
  191. {
  192. if (wmi_handle->ops->send_roam_scan_offload_chan_list_cmd)
  193. return wmi_handle->ops->send_roam_scan_offload_chan_list_cmd(
  194. wmi_handle, rso_ch_info);
  195. return QDF_STATUS_E_FAILURE;
  196. }
  197. QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(
  198. wmi_unified_t wmi_handle,
  199. struct wlan_roam_rssi_change_params *params)
  200. {
  201. if (wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd)
  202. return wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd(
  203. wmi_handle, params);
  204. return QDF_STATUS_E_FAILURE;
  205. }
  206. QDF_STATUS
  207. wmi_unified_set_per_roam_config(wmi_unified_t wmi_handle,
  208. struct wlan_per_roam_config_req *req_buf)
  209. {
  210. if (wmi_handle->ops->send_per_roam_config_cmd)
  211. return wmi_handle->ops->send_per_roam_config_cmd(wmi_handle,
  212. req_buf);
  213. return QDF_STATUS_E_FAILURE;
  214. }
  215. QDF_STATUS wmi_unified_send_limit_off_chan_cmd(
  216. wmi_unified_t wmi_handle,
  217. struct wmi_limit_off_chan_param *limit_off_chan_param)
  218. {
  219. if (wmi_handle->ops->send_limit_off_chan_cmd)
  220. return wmi_handle->ops->send_limit_off_chan_cmd(wmi_handle,
  221. limit_off_chan_param);
  222. return QDF_STATUS_E_FAILURE;
  223. }
  224. #ifdef WLAN_FEATURE_FILS_SK
  225. QDF_STATUS wmi_unified_roam_send_hlp_cmd(wmi_unified_t wmi_handle,
  226. struct hlp_params *req_buf)
  227. {
  228. if (wmi_handle->ops->send_roam_scan_hlp_cmd)
  229. return wmi_handle->ops->send_roam_scan_hlp_cmd(wmi_handle,
  230. req_buf);
  231. return QDF_STATUS_E_FAILURE;
  232. }
  233. #endif /* WLAN_FEATURE_FILS_SK */
  234. QDF_STATUS wmi_unified_send_btm_config(wmi_unified_t wmi_handle,
  235. struct wlan_roam_btm_config *params)
  236. {
  237. if (wmi_handle->ops->send_btm_config)
  238. return wmi_handle->ops->send_btm_config(wmi_handle,
  239. params);
  240. return QDF_STATUS_E_FAILURE;
  241. }
  242. QDF_STATUS wmi_unified_send_bss_load_config(
  243. wmi_unified_t wmi_handle,
  244. struct wlan_roam_bss_load_config *params)
  245. {
  246. if (wmi_handle->ops->send_roam_bss_load_config)
  247. return wmi_handle->ops->send_roam_bss_load_config(wmi_handle,
  248. params);
  249. return QDF_STATUS_E_FAILURE;
  250. }
  251. QDF_STATUS
  252. wmi_unified_offload_11k_cmd(wmi_unified_t wmi_handle,
  253. struct wlan_roam_11k_offload_params *params)
  254. {
  255. if (wmi_handle->ops->send_offload_11k_cmd)
  256. return wmi_handle->ops->send_offload_11k_cmd(wmi_handle,
  257. params);
  258. return QDF_STATUS_E_FAILURE;
  259. }
  260. QDF_STATUS wmi_unified_invoke_neighbor_report_cmd(
  261. wmi_unified_t wmi_handle,
  262. struct wmi_invoke_neighbor_report_params *params)
  263. {
  264. if (wmi_handle->ops->send_invoke_neighbor_report_cmd)
  265. return wmi_handle->ops->send_invoke_neighbor_report_cmd(
  266. wmi_handle, params);
  267. return QDF_STATUS_E_FAILURE;
  268. }
  269. QDF_STATUS wmi_unified_get_roam_scan_ch_list(wmi_unified_t wmi_handle,
  270. uint8_t vdev_id)
  271. {
  272. if (wmi_handle->ops->send_roam_scan_ch_list_req_cmd)
  273. return wmi_handle->ops->send_roam_scan_ch_list_req_cmd(
  274. wmi_handle, vdev_id);
  275. return QDF_STATUS_E_FAILURE;
  276. }
  277. #ifdef WLAN_FEATURE_ROAM_OFFLOAD
  278. QDF_STATUS wmi_unified_set_roam_triggers(wmi_unified_t wmi_handle,
  279. struct wlan_roam_triggers *triggers)
  280. {
  281. if (wmi_handle->ops->send_set_roam_trigger_cmd)
  282. return wmi_handle->ops->send_set_roam_trigger_cmd(wmi_handle,
  283. triggers);
  284. return QDF_STATUS_E_FAILURE;
  285. }
  286. #endif