wmi_unified_ap_api.c 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. /*
  2. * Copyright (c) 2016-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. #include "wmi_unified_priv.h"
  19. #include "wmi_unified_param.h"
  20. #include "wmi_unified_ap_api.h"
  21. #include "qdf_module.h"
  22. QDF_STATUS wmi_unified_peer_add_wds_entry_cmd_send(
  23. wmi_unified_t wmi_handle,
  24. struct peer_add_wds_entry_params *param)
  25. {
  26. if (wmi_handle->ops->send_peer_add_wds_entry_cmd)
  27. return wmi_handle->ops->send_peer_add_wds_entry_cmd(wmi_handle,
  28. param);
  29. return QDF_STATUS_E_FAILURE;
  30. }
  31. QDF_STATUS wmi_unified_peer_del_wds_entry_cmd_send(
  32. wmi_unified_t wmi_handle,
  33. struct peer_del_wds_entry_params *param)
  34. {
  35. if (wmi_handle->ops->send_peer_del_wds_entry_cmd)
  36. return wmi_handle->ops->send_peer_del_wds_entry_cmd(wmi_handle,
  37. param);
  38. return QDF_STATUS_E_FAILURE;
  39. }
  40. QDF_STATUS wmi_unified_peer_update_wds_entry_cmd_send(
  41. wmi_unified_t wmi_handle,
  42. struct peer_update_wds_entry_params *param)
  43. {
  44. if (wmi_handle->ops->send_peer_update_wds_entry_cmd)
  45. return wmi_handle->ops->send_peer_update_wds_entry_cmd(
  46. wmi_handle, param);
  47. return QDF_STATUS_E_FAILURE;
  48. }
  49. QDF_STATUS wmi_unified_pdev_get_tpc_config_cmd_send(wmi_unified_t wmi_handle,
  50. uint32_t param)
  51. {
  52. if (wmi_handle->ops->send_pdev_get_tpc_config_cmd)
  53. return wmi_handle->ops->send_pdev_get_tpc_config_cmd(wmi_handle,
  54. param);
  55. return QDF_STATUS_E_FAILURE;
  56. }
  57. QDF_STATUS wmi_unified_set_ctl_table_cmd_send(
  58. wmi_unified_t wmi_handle,
  59. struct ctl_table_params *param)
  60. {
  61. if (wmi_handle->ops->send_set_ctl_table_cmd)
  62. return wmi_handle->ops->send_set_ctl_table_cmd(wmi_handle,
  63. param);
  64. return QDF_STATUS_E_FAILURE;
  65. }
  66. QDF_STATUS wmi_unified_set_mimogain_table_cmd_send(
  67. wmi_unified_t wmi_handle,
  68. struct mimogain_table_params *param)
  69. {
  70. if (wmi_handle->ops->send_set_mimogain_table_cmd)
  71. return wmi_handle->ops->send_set_mimogain_table_cmd(wmi_handle,
  72. param);
  73. return QDF_STATUS_E_FAILURE;
  74. }
  75. QDF_STATUS wmi_unified_packet_power_info_get_cmd_send(
  76. wmi_unified_t wmi_handle,
  77. struct packet_power_info_params *param)
  78. {
  79. if (wmi_handle->ops->send_packet_power_info_get_cmd)
  80. return wmi_handle->ops->send_packet_power_info_get_cmd(
  81. wmi_handle, param);
  82. return QDF_STATUS_E_FAILURE;
  83. }
  84. QDF_STATUS wmi_unified_nf_dbr_dbm_info_get_cmd_send(wmi_unified_t wmi_handle,
  85. uint8_t mac_id)
  86. {
  87. if (wmi_handle->ops->send_nf_dbr_dbm_info_get_cmd)
  88. return wmi_handle->ops->send_nf_dbr_dbm_info_get_cmd(
  89. wmi_handle, mac_id);
  90. return QDF_STATUS_E_FAILURE;
  91. }
  92. QDF_STATUS wmi_unified_set_ht_ie_cmd_send(wmi_unified_t wmi_handle,
  93. struct ht_ie_params *param)
  94. {
  95. if (wmi_handle->ops->send_set_ht_ie_cmd)
  96. return wmi_handle->ops->send_set_ht_ie_cmd(wmi_handle, param);
  97. return QDF_STATUS_E_FAILURE;
  98. }
  99. QDF_STATUS wmi_unified_set_vht_ie_cmd_send(wmi_unified_t wmi_handle,
  100. struct vht_ie_params *param)
  101. {
  102. if (wmi_handle->ops->send_set_vht_ie_cmd)
  103. return wmi_handle->ops->send_set_vht_ie_cmd(wmi_handle, param);
  104. return QDF_STATUS_E_FAILURE;
  105. }
  106. QDF_STATUS wmi_unified_set_quiet_mode_cmd_send(
  107. wmi_unified_t wmi_handle,
  108. struct set_quiet_mode_params *param)
  109. {
  110. if (wmi_handle->ops->send_set_quiet_mode_cmd)
  111. return wmi_handle->ops->send_set_quiet_mode_cmd(wmi_handle,
  112. param);
  113. return QDF_STATUS_E_FAILURE;
  114. }
  115. QDF_STATUS wmi_unified_set_bcn_offload_quiet_mode_cmd_send(
  116. wmi_unified_t wmi_handle,
  117. struct set_bcn_offload_quiet_mode_params *param)
  118. {
  119. if (wmi_handle->ops->send_set_bcn_offload_quiet_mode_cmd)
  120. return wmi_handle->ops->send_set_bcn_offload_quiet_mode_cmd(
  121. wmi_handle, param);
  122. return QDF_STATUS_E_FAILURE;
  123. }
  124. QDF_STATUS wmi_send_bcn_offload_control_cmd(
  125. wmi_unified_t wmi_handle,
  126. struct bcn_offload_control *bcn_ctrl_param)
  127. {
  128. if (wmi_handle->ops->send_bcn_offload_control_cmd)
  129. return wmi_handle->ops->send_bcn_offload_control_cmd(wmi_handle,
  130. bcn_ctrl_param);
  131. return QDF_STATUS_E_FAILURE;
  132. }
  133. QDF_STATUS wmi_extract_tbttoffset_update_params(
  134. wmi_unified_t wmi_handle, void *evt_buf,
  135. uint8_t idx, struct tbttoffset_params *tbtt_param)
  136. {
  137. if (wmi_handle->ops->extract_tbttoffset_update_params)
  138. return wmi_handle->ops->extract_tbttoffset_update_params(
  139. wmi_handle, evt_buf, idx, tbtt_param);
  140. return QDF_STATUS_E_FAILURE;
  141. }
  142. QDF_STATUS wmi_extract_ext_tbttoffset_update_params(
  143. wmi_unified_t wmi_handle,
  144. void *evt_buf, uint8_t idx,
  145. struct tbttoffset_params *tbtt_param)
  146. {
  147. if (wmi_handle->ops->extract_ext_tbttoffset_update_params)
  148. return wmi_handle->ops->extract_ext_tbttoffset_update_params(
  149. wmi_handle, evt_buf, idx, tbtt_param);
  150. return QDF_STATUS_E_FAILURE;
  151. }
  152. QDF_STATUS wmi_extract_offchan_data_tx_compl_param(
  153. wmi_unified_t wmi_handle, void *evt_buf,
  154. struct wmi_host_offchan_data_tx_compl_event *param)
  155. {
  156. if (wmi_handle->ops->extract_offchan_data_tx_compl_param)
  157. return wmi_handle->ops->extract_offchan_data_tx_compl_param(
  158. wmi_handle, evt_buf, param);
  159. return QDF_STATUS_E_FAILURE;
  160. }
  161. QDF_STATUS wmi_extract_pdev_csa_switch_count_status(
  162. wmi_unified_t wmi_handle,
  163. void *evt_buf,
  164. struct pdev_csa_switch_count_status *param)
  165. {
  166. if (wmi_handle->ops->extract_pdev_csa_switch_count_status)
  167. return wmi_handle->ops->extract_pdev_csa_switch_count_status(
  168. wmi_handle,
  169. evt_buf,
  170. param);
  171. return QDF_STATUS_E_FAILURE;
  172. }
  173. QDF_STATUS wmi_extract_swba_num_vdevs(wmi_unified_t wmi_handle, void *evt_buf,
  174. uint32_t *num_vdevs)
  175. {
  176. if (wmi_handle->ops->extract_swba_num_vdevs)
  177. return wmi_handle->ops->extract_swba_num_vdevs(wmi_handle,
  178. evt_buf, num_vdevs);
  179. return QDF_STATUS_E_FAILURE;
  180. }
  181. QDF_STATUS wmi_extract_swba_tim_info(
  182. wmi_unified_t wmi_handle, void *evt_buf,
  183. uint32_t idx, wmi_host_tim_info *tim_info)
  184. {
  185. if (wmi_handle->ops->extract_swba_tim_info)
  186. return wmi_handle->ops->extract_swba_tim_info(wmi_handle,
  187. evt_buf, idx, tim_info);
  188. return QDF_STATUS_E_FAILURE;
  189. }
  190. QDF_STATUS wmi_extract_swba_quiet_info(wmi_unified_t wmi_handle, void *evt_buf,
  191. uint32_t idx,
  192. wmi_host_quiet_info *quiet_info)
  193. {
  194. if (wmi_handle->ops->extract_swba_quiet_info)
  195. return wmi_handle->ops->extract_swba_quiet_info(wmi_handle,
  196. evt_buf, idx,
  197. quiet_info);
  198. return QDF_STATUS_E_FAILURE;
  199. }
  200. QDF_STATUS wmi_extract_swba_noa_info(
  201. wmi_unified_t wmi_handle, void *evt_buf,
  202. uint32_t idx, wmi_host_p2p_noa_info *p2p_desc)
  203. {
  204. if (wmi_handle->ops->extract_swba_noa_info)
  205. return wmi_handle->ops->extract_swba_noa_info(wmi_handle,
  206. evt_buf, idx, p2p_desc);
  207. return QDF_STATUS_E_FAILURE;
  208. }
  209. QDF_STATUS wmi_extract_peer_sta_kickout_ev(
  210. wmi_unified_t wmi_handle, void *evt_buf,
  211. wmi_host_peer_sta_kickout_event *ev)
  212. {
  213. if (wmi_handle->ops->extract_peer_sta_kickout_ev)
  214. return wmi_handle->ops->extract_peer_sta_kickout_ev(wmi_handle,
  215. evt_buf, ev);
  216. return QDF_STATUS_E_FAILURE;
  217. }
  218. QDF_STATUS wmi_extract_wds_addr_event(
  219. wmi_unified_t wmi_handle, void *evt_buf,
  220. uint16_t len, wds_addr_event_t *wds_ev)
  221. {
  222. if (wmi_handle->ops->extract_wds_addr_event) {
  223. return wmi_handle->ops->extract_wds_addr_event(wmi_handle,
  224. evt_buf, len, wds_ev);
  225. }
  226. return QDF_STATUS_E_FAILURE;
  227. }
  228. qdf_export_symbol(wmi_extract_wds_addr_event);
  229. QDF_STATUS wmi_extract_dcs_interference_type(
  230. wmi_unified_t wmi_handle,
  231. void *evt_buf, struct wmi_host_dcs_interference_param *param)
  232. {
  233. if (wmi_handle->ops->extract_dcs_interference_type) {
  234. return wmi_handle->ops->extract_dcs_interference_type(
  235. wmi_handle, evt_buf, param);
  236. }
  237. return QDF_STATUS_E_FAILURE;
  238. }
  239. QDF_STATUS wmi_extract_dcs_cw_int(wmi_unified_t wmi_handle, void *evt_buf,
  240. wmi_host_ath_dcs_cw_int *cw_int)
  241. {
  242. if (wmi_handle->ops->extract_dcs_cw_int) {
  243. return wmi_handle->ops->extract_dcs_cw_int(wmi_handle,
  244. evt_buf, cw_int);
  245. }
  246. return QDF_STATUS_E_FAILURE;
  247. }
  248. QDF_STATUS wmi_extract_dcs_im_tgt_stats(wmi_unified_t wmi_handle, void *evt_buf,
  249. wmi_host_dcs_im_tgt_stats_t *wlan_stat)
  250. {
  251. if (wmi_handle->ops->extract_dcs_im_tgt_stats) {
  252. return wmi_handle->ops->extract_dcs_im_tgt_stats(wmi_handle,
  253. evt_buf, wlan_stat);
  254. }
  255. return QDF_STATUS_E_FAILURE;
  256. }
  257. QDF_STATUS wmi_extract_peer_create_response_event(
  258. wmi_unified_t wmi_handle,
  259. uint8_t *evt_buf,
  260. struct wmi_host_peer_create_response_event *param)
  261. {
  262. if (wmi_handle->ops->extract_peer_create_response_event)
  263. return wmi_handle->ops->extract_peer_create_response_event(
  264. wmi_handle,
  265. evt_buf, param);
  266. return QDF_STATUS_E_FAILURE;
  267. }
  268. QDF_STATUS wmi_extract_peer_delete_response_event(
  269. wmi_unified_t wmi_handle,
  270. uint8_t *evt_buf,
  271. struct wmi_host_peer_delete_response_event *param)
  272. {
  273. if (wmi_handle->ops->extract_peer_delete_response_event)
  274. return wmi_handle->ops->extract_peer_delete_response_event(
  275. wmi_handle,
  276. evt_buf, param);
  277. return QDF_STATUS_E_FAILURE;
  278. }
  279. QDF_STATUS wmi_unified_peer_ft_roam_send(wmi_unified_t wmi_handle,
  280. uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
  281. uint8_t vdev_id)
  282. {
  283. if (wmi_handle->ops->send_peer_ft_roam_cmd)
  284. return wmi_handle->ops->send_peer_ft_roam_cmd(wmi_handle,
  285. peer_addr, vdev_id);
  286. return QDF_STATUS_E_FAILURE;
  287. }
  288. QDF_STATUS wmi_extract_pdev_tpc_ev_param(
  289. wmi_unified_t wmi_handle, void *evt_buf,
  290. wmi_host_pdev_tpc_event *param)
  291. {
  292. if (wmi_handle->ops->extract_pdev_tpc_ev_param)
  293. return wmi_handle->ops->extract_pdev_tpc_ev_param(wmi_handle,
  294. evt_buf, param);
  295. return QDF_STATUS_E_FAILURE;
  296. }
  297. QDF_STATUS wmi_extract_pdev_tpc_config_ev_param(
  298. wmi_unified_t wmi_handle, void *evt_buf,
  299. wmi_host_pdev_tpc_config_event *param)
  300. {
  301. if (wmi_handle->ops->extract_pdev_tpc_config_ev_param)
  302. return wmi_handle->ops->extract_pdev_tpc_config_ev_param(
  303. wmi_handle, evt_buf, param);
  304. return QDF_STATUS_E_FAILURE;
  305. }
  306. QDF_STATUS wmi_extract_nfcal_power_ev_param(
  307. wmi_unified_t wmi_handle, void *evt_buf,
  308. wmi_host_pdev_nfcal_power_all_channels_event *param)
  309. {
  310. if (wmi_handle->ops->extract_nfcal_power_ev_param)
  311. return wmi_handle->ops->extract_nfcal_power_ev_param(wmi_handle,
  312. evt_buf, param);
  313. return QDF_STATUS_E_FAILURE;
  314. }
  315. QDF_STATUS wmi_extract_peer_sta_ps_statechange_ev(
  316. wmi_unified_t wmi_handle, void *evt_buf,
  317. wmi_host_peer_sta_ps_statechange_event *ev)
  318. {
  319. if (wmi_handle->ops->extract_peer_sta_ps_statechange_ev)
  320. return wmi_handle->ops->extract_peer_sta_ps_statechange_ev(
  321. wmi_handle, evt_buf, ev);
  322. return QDF_STATUS_E_FAILURE;
  323. }
  324. QDF_STATUS wmi_extract_inst_rssi_stats_event(
  325. wmi_unified_t wmi_handle, void *evt_buf,
  326. wmi_host_inst_stats_resp *inst_rssi_resp)
  327. {
  328. if (wmi_handle->ops->extract_inst_rssi_stats_event)
  329. return wmi_handle->ops->extract_inst_rssi_stats_event(
  330. wmi_handle, evt_buf, inst_rssi_resp);
  331. return QDF_STATUS_E_FAILURE;
  332. }
  333. QDF_STATUS wmi_send_pdev_caldata_version_check_cmd(wmi_unified_t wmi_handle,
  334. uint32_t value)
  335. {
  336. if (wmi_handle->ops->send_pdev_caldata_version_check_cmd)
  337. return wmi_handle->ops->send_pdev_caldata_version_check_cmd(
  338. wmi_handle, value);
  339. return QDF_STATUS_E_FAILURE;
  340. }
  341. QDF_STATUS wmi_extract_pdev_caldata_version_check_ev_param(
  342. wmi_unified_t wmi_handle,
  343. void *evt_buf,
  344. wmi_host_pdev_check_cal_version_event *param)
  345. {
  346. if (wmi_handle->ops->extract_pdev_caldata_version_check_ev_param)
  347. return wmi_handle->ops->extract_pdev_caldata_version_check_ev_param(
  348. wmi_handle, evt_buf, param);
  349. return QDF_STATUS_E_FAILURE;
  350. }
  351. #ifdef WLAN_SUPPORT_FILS
  352. QDF_STATUS
  353. wmi_unified_fils_discovery_send_cmd(wmi_unified_t wmi_handle,
  354. struct fd_params *param)
  355. {
  356. if (wmi_handle->ops->send_fils_discovery_send_cmd)
  357. return wmi_handle->ops->send_fils_discovery_send_cmd(wmi_handle,
  358. param);
  359. return QDF_STATUS_E_FAILURE;
  360. }
  361. QDF_STATUS
  362. wmi_unified_fils_vdev_config_send_cmd(wmi_unified_t wmi_handle,
  363. struct config_fils_params *param)
  364. {
  365. if (wmi_handle->ops->send_vdev_fils_enable_cmd)
  366. return wmi_handle->ops->send_vdev_fils_enable_cmd(wmi_handle,
  367. param);
  368. return QDF_STATUS_E_FAILURE;
  369. }
  370. QDF_STATUS
  371. wmi_extract_swfda_vdev_id(wmi_unified_t wmi_handle, void *evt_buf,
  372. uint32_t *vdev_id)
  373. {
  374. if (wmi_handle->ops->extract_swfda_vdev_id)
  375. return wmi_handle->ops->extract_swfda_vdev_id(wmi_handle,
  376. evt_buf, vdev_id);
  377. return QDF_STATUS_E_FAILURE;
  378. }
  379. #endif /* WLAN_SUPPORT_FILS */
  380. QDF_STATUS wmi_unified_set_qboost_param_cmd_send(
  381. wmi_unified_t wmi_handle,
  382. uint8_t macaddr[QDF_MAC_ADDR_SIZE],
  383. struct set_qboost_params *param)
  384. {
  385. if (wmi_handle->ops->send_set_qboost_param_cmd)
  386. return wmi_handle->ops->send_set_qboost_param_cmd(wmi_handle,
  387. macaddr, param);
  388. return QDF_STATUS_E_FAILURE;
  389. }
  390. QDF_STATUS wmi_unified_mcast_group_update_cmd_send(
  391. wmi_unified_t wmi_handle,
  392. struct mcast_group_update_params *param)
  393. {
  394. if (wmi_handle->ops->send_mcast_group_update_cmd)
  395. return wmi_handle->ops->send_mcast_group_update_cmd(wmi_handle,
  396. param);
  397. return QDF_STATUS_E_FAILURE;
  398. }
  399. QDF_STATUS wmi_unified_pdev_qvit_cmd_send(wmi_unified_t wmi_handle,
  400. struct pdev_qvit_params *param)
  401. {
  402. if (wmi_handle->ops->send_pdev_qvit_cmd)
  403. return wmi_handle->ops->send_pdev_qvit_cmd(wmi_handle, param);
  404. return QDF_STATUS_E_FAILURE;
  405. }
  406. QDF_STATUS wmi_unified_wmm_update_cmd_send(wmi_unified_t wmi_handle,
  407. struct wmm_update_params *param)
  408. {
  409. if (wmi_handle->ops->send_wmm_update_cmd)
  410. return wmi_handle->ops->send_wmm_update_cmd(wmi_handle, param);
  411. return QDF_STATUS_E_FAILURE;
  412. }
  413. QDF_STATUS wmi_extract_mgmt_tx_compl_param(
  414. wmi_unified_t wmi_handle, void *evt_buf,
  415. wmi_host_mgmt_tx_compl_event *param)
  416. {
  417. if (wmi_handle->ops->extract_mgmt_tx_compl_param)
  418. return wmi_handle->ops->extract_mgmt_tx_compl_param(wmi_handle,
  419. evt_buf, param);
  420. return QDF_STATUS_E_FAILURE;
  421. }
  422. QDF_STATUS wmi_extract_chan_info_event(
  423. wmi_unified_t wmi_handle, void *evt_buf,
  424. wmi_host_chan_info_event *chan_info)
  425. {
  426. if (wmi_handle->ops->extract_chan_info_event)
  427. return wmi_handle->ops->extract_chan_info_event(wmi_handle,
  428. evt_buf, chan_info);
  429. return QDF_STATUS_E_FAILURE;
  430. }
  431. QDF_STATUS wmi_extract_channel_hopping_event(
  432. wmi_unified_t wmi_handle, void *evt_buf,
  433. wmi_host_pdev_channel_hopping_event *ch_hopping)
  434. {
  435. if (wmi_handle->ops->extract_channel_hopping_event)
  436. return wmi_handle->ops->extract_channel_hopping_event(
  437. wmi_handle, evt_buf, ch_hopping);
  438. return QDF_STATUS_E_FAILURE;
  439. }
  440. QDF_STATUS wmi_unified_peer_chan_width_switch_cmd_send(
  441. wmi_unified_t wmi_handle,
  442. struct peer_chan_width_switch_params *param)
  443. {
  444. if (wmi_handle->ops->send_peer_chan_width_switch_cmd)
  445. return wmi_handle->ops->send_peer_chan_width_switch_cmd(
  446. wmi_handle, param);
  447. return QDF_STATUS_E_FAILURE;
  448. }
  449. QDF_STATUS wmi_unified_peer_del_all_wds_entries_cmd_send(
  450. wmi_unified_t wmi_handle,
  451. struct peer_del_all_wds_entries_params *param)
  452. {
  453. if (wmi_handle->ops->send_peer_del_all_wds_entries_cmd)
  454. return wmi_handle->ops->send_peer_del_all_wds_entries_cmd(
  455. wmi_handle, param);
  456. return QDF_STATUS_E_FAILURE;
  457. }
  458. QDF_STATUS
  459. wmi_unified_vdev_pcp_tid_map_cmd_send(wmi_unified_t wmi_handle,
  460. struct vap_pcp_tid_map_params *param)
  461. {
  462. if (wmi_handle->ops->send_vdev_pcp_tid_map_cmd)
  463. return wmi_handle->ops->send_vdev_pcp_tid_map_cmd(
  464. wmi_handle, param);
  465. return QDF_STATUS_E_FAILURE;
  466. }
  467. QDF_STATUS
  468. wmi_unified_vdev_tidmap_prec_cmd_send(wmi_unified_t wmi_handle,
  469. struct vap_tidmap_prec_params *param)
  470. {
  471. if (wmi_handle->ops->send_vdev_tidmap_prec_cmd)
  472. return wmi_handle->ops->send_vdev_tidmap_prec_cmd(
  473. wmi_handle, param);
  474. return QDF_STATUS_E_FAILURE;
  475. }
  476. #ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
  477. QDF_STATUS wmi_unified_set_rx_pkt_type_routing_tag(
  478. wmi_unified_t wmi_handle,
  479. struct wmi_rx_pkt_protocol_routing_info *param)
  480. {
  481. if (wmi_handle->ops->set_rx_pkt_type_routing_tag_cmd)
  482. return wmi_handle->ops->set_rx_pkt_type_routing_tag_cmd(
  483. wmi_handle, param);
  484. return QDF_STATUS_E_FAILURE;
  485. }
  486. #endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
  487. QDF_STATUS wmi_unified_peer_vlan_config_send(wmi_unified_t wmi_handle,
  488. uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
  489. struct peer_vlan_config_param *param)
  490. {
  491. if (wmi_handle->ops->send_peer_vlan_config_cmd)
  492. return wmi_handle->ops->send_peer_vlan_config_cmd(wmi_handle,
  493. peer_addr,
  494. param);
  495. return QDF_STATUS_E_FAILURE;
  496. }
  497. QDF_STATUS wmi_extract_muedca_params_handler(
  498. wmi_unified_t wmi_handle,
  499. void *evt_buf,
  500. struct muedca_params *muedca_param_list)
  501. {
  502. if (wmi_handle->ops->extract_muedca_params_handler)
  503. return wmi_handle->ops->extract_muedca_params_handler(
  504. wmi_handle, evt_buf, muedca_param_list);
  505. return QDF_STATUS_E_FAILURE;
  506. }
  507. /**
  508. * wmi_unified_set_radio_tx_mode_select_cmd_send() - WMI ant switch tbl cmd function
  509. * @wmi_handle: wmi handle
  510. * @param: pointer to hold tx mode selection param
  511. *
  512. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  513. */
  514. QDF_STATUS wmi_unified_set_radio_tx_mode_select_cmd_send(
  515. wmi_unified_t wmi_hdl,
  516. struct wmi_pdev_enable_tx_mode_selection
  517. *tx_mode_select_param)
  518. {
  519. wmi_unified_t wmi_handle = wmi_hdl;
  520. if (wmi_handle->ops->set_radio_tx_mode_select_cmd)
  521. return wmi_handle->ops->set_radio_tx_mode_select_cmd(
  522. wmi_handle, tx_mode_select_param);
  523. return QDF_STATUS_E_FAILURE;
  524. }