1 /*
2  * Copyright (c) 2019, 2021 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 #ifndef _WMI_UNIFIED_CFR_API_H_
19 #define _WMI_UNIFIED_CFR_API_H_
20 
21 #include "wmi_unified_param.h"
22 #include "wmi_unified_cfr_param.h"
23 
24 #ifdef WLAN_CFR_ENABLE
25 /**
26  * wmi_unified_send_peer_cfr_capture_cmd() - WMI function to start CFR capture
27  * for a peer
28  * @wmi_handle: WMI handle
29  * @param: configuration params for capture
30  *
31  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
32  */
33 QDF_STATUS
34 wmi_unified_send_peer_cfr_capture_cmd(wmi_unified_t wmi_handle,
35 				      struct peer_cfr_params *param);
36 /**
37  * wmi_extract_cfr_peer_tx_event_param() - WMI function to extract cfr tx event
38  * for a peer
39  * @wmi_handle: WMI handle
40  * @evt_buf: Buffer holding event data
41  * @peer_tx_event: pointer to hold tx event data
42  *
43  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
44  */
45 QDF_STATUS
46 wmi_extract_cfr_peer_tx_event_param(wmi_unified_t wmi_handle, void *evt_buf,
47 				    wmi_cfr_peer_tx_event_param *peer_tx_event);
48 
49 #ifdef WLAN_ENH_CFR_ENABLE
50 /**
51  * wmi_unified_send_cfr_rcc_cmd() - WMI function to send CFR RCC param
52  * @wmi_handle: WMI handle
53  * @cfg: pointer to RCC param
54  *
55  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
56  */
57 QDF_STATUS wmi_unified_send_cfr_rcc_cmd(wmi_unified_t wmi_handle,
58 					struct cfr_rcc_param *cfg);
59 
60 /**
61  * wmi_extract_cfr_pdev_phase_delta_event() - WMI function to extract the
62  * phase delta information.
63  * @wmi_handle: WMI handle
64  * @evt_buf: Buffer holding the event data
65  * @param: phase delta params to be updated from event
66  *
67  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
68  */
69 QDF_STATUS
70 wmi_extract_cfr_pdev_phase_delta_event(wmi_unified_t wmi_handle,
71 				       void *evt_buf,
72 				       struct wmi_cfr_phase_delta_param *param);
73 
74 #ifdef WLAN_RCC_ENHANCED_AOA_SUPPORT
75 QDF_STATUS
76 wmi_extract_cfr_pdev_enhanced_aoa_phasedelta_event_fixed_param
77 	(wmi_unified_t wmi_handle, void *evt_buf,
78 	 struct wmi_cfr_enh_phase_delta_param *param);
79 
80 QDF_STATUS
81 wmi_extract_cfr_pdev_enhanced_aoa_phasedelta_event_data
82 	(wmi_unified_t wmi_handle, void *evt_buf,
83 	 struct wmi_cfr_enh_phase_delta_param *param);
84 #endif /* WLAN_RCC_ENHANCED_AOA_SUPPORT */
85 #endif
86 #endif /* WLAN_CFR_ENABLE */
87 #endif /* _WMI_UNIFIED_CFR_API_H_ */
88