1 /* 2 * Copyright (c) 2021, 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 "wmi_unified_priv.h" 17 #ifdef WLAN_MLO_MULTI_CHIP 18 #include "wmi_unified_11be_setup_api.h" 19 #endif 20 #include "wmi_unified_11be_tlv.h" 21 22 /** 23 * wmi_mlo_setup_cmd_send() - Send MLO setup command 24 * @wmi_handle: WMI handle for this pdev 25 * @params: MLO setup params 26 * 27 * Return: QDF_STATUS code 28 */ 29 QDF_STATUS wmi_mlo_setup_cmd_send(wmi_unified_t wmi_handle, 30 struct wmi_mlo_setup_params *params) 31 { 32 if (wmi_handle->ops->mlo_setup_cmd_send) 33 return wmi_handle->ops->mlo_setup_cmd_send( 34 wmi_handle, params); 35 36 return QDF_STATUS_E_FAILURE; 37 } 38 39 /** 40 * wmi_mlo_teardown_cmd_send() - Send MLO teardown command 41 * @wmi_handle: WMI handle for this pdev 42 * @params: MLO teardown params 43 * 44 * Return: QDF_STATUS code 45 */ 46 QDF_STATUS wmi_mlo_teardown_cmd_send(wmi_unified_t wmi_handle, 47 struct wmi_mlo_teardown_params *params) 48 { 49 if (wmi_handle->ops->mlo_teardown_cmd_send) 50 return wmi_handle->ops->mlo_teardown_cmd_send( 51 wmi_handle, params); 52 53 return QDF_STATUS_E_FAILURE; 54 } 55 56 /** 57 * wmi_mlo_ready_cmd_send() - Send MLO ready command 58 * @wmi_handle: WMI handle for this pdev 59 * @params: MLO ready params 60 * 61 * Return: QDF_STATUS code 62 */ 63 QDF_STATUS wmi_mlo_ready_cmd_send(wmi_unified_t wmi_handle, 64 struct wmi_mlo_ready_params *params) 65 { 66 if (wmi_handle->ops->mlo_ready_cmd_send) 67 return wmi_handle->ops->mlo_ready_cmd_send( 68 wmi_handle, params); 69 70 return QDF_STATUS_E_FAILURE; 71 } 72 73 /** 74 * wmi_extract_mlo_setup_cmpl_event() - Extract MLO setup completion event 75 * @wmi_handle: WMI handle for this pdev 76 * @buf: Event buffer 77 * @params: MLO setup event params 78 * 79 * Return: QDF_STATUS code 80 */ 81 QDF_STATUS 82 wmi_extract_mlo_setup_cmpl_event(wmi_unified_t wmi_handle, 83 uint8_t *buf, 84 struct wmi_mlo_setup_complete_params *params) 85 { 86 if (wmi_handle->ops->extract_mlo_setup_cmpl_event) 87 return wmi_handle->ops->extract_mlo_setup_cmpl_event( 88 wmi_handle, buf, params); 89 90 return QDF_STATUS_E_FAILURE; 91 } 92 93 /** 94 * wmi_extract_mlo_teardown_cmpl_event() - Extract MLO teardown completion 95 * @wmi_handle: WMI handle for this pdev 96 * @buf: Event buffer 97 * @param: MLO teardown event params 98 * 99 * Return: QDF_STATUS code 100 */ 101 QDF_STATUS 102 wmi_extract_mlo_teardown_cmpl_event(wmi_unified_t wmi_handle, 103 uint8_t *buf, 104 struct wmi_mlo_teardown_cmpl_params *param) 105 { 106 if (wmi_handle->ops->extract_mlo_teardown_cmpl_event) 107 return wmi_handle->ops->extract_mlo_teardown_cmpl_event( 108 wmi_handle, buf, param); 109 110 return QDF_STATUS_E_FAILURE; 111 } 112