xref: /wlan-driver/qca-wifi-host-cmn/wmi/src/wmi_unified_cfr_api.c (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for any
6*5113495bSYour Name  * purpose with or without fee is hereby granted, provided that the above
7*5113495bSYour Name  * copyright notice and this permission notice appear in all copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10*5113495bSYour Name  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11*5113495bSYour Name  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12*5113495bSYour Name  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13*5113495bSYour Name  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14*5113495bSYour Name  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15*5113495bSYour Name  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16*5113495bSYour Name  */
17*5113495bSYour Name 
18*5113495bSYour Name #include "wmi_unified_priv.h"
19*5113495bSYour Name #include "wmi_unified_cfr_api.h"
20*5113495bSYour Name 
21*5113495bSYour Name #ifdef WLAN_CFR_ENABLE
22*5113495bSYour Name 
wmi_unified_send_peer_cfr_capture_cmd(wmi_unified_t wmi_handle,struct peer_cfr_params * param)23*5113495bSYour Name QDF_STATUS wmi_unified_send_peer_cfr_capture_cmd(wmi_unified_t wmi_handle,
24*5113495bSYour Name 						 struct peer_cfr_params *param)
25*5113495bSYour Name {
26*5113495bSYour Name 	if (wmi_handle->ops->send_peer_cfr_capture_cmd)
27*5113495bSYour Name 		return wmi_handle->ops->send_peer_cfr_capture_cmd(wmi_handle,
28*5113495bSYour Name 								  param);
29*5113495bSYour Name 
30*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
31*5113495bSYour Name }
32*5113495bSYour Name 
33*5113495bSYour Name QDF_STATUS
wmi_extract_cfr_peer_tx_event_param(wmi_unified_t wmi_handle,void * evt_buf,wmi_cfr_peer_tx_event_param * peer_tx_event)34*5113495bSYour Name wmi_extract_cfr_peer_tx_event_param(wmi_unified_t wmi_handle, void *evt_buf,
35*5113495bSYour Name 				    wmi_cfr_peer_tx_event_param *peer_tx_event)
36*5113495bSYour Name {
37*5113495bSYour Name 	if (wmi_handle->ops->extract_cfr_peer_tx_event_param)
38*5113495bSYour Name 		return wmi_handle->ops->extract_cfr_peer_tx_event_param(
39*5113495bSYour Name 							wmi_handle,
40*5113495bSYour Name 							evt_buf,
41*5113495bSYour Name 							peer_tx_event);
42*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
43*5113495bSYour Name }
44*5113495bSYour Name 
45*5113495bSYour Name #ifdef WLAN_ENH_CFR_ENABLE
wmi_unified_send_cfr_rcc_cmd(wmi_unified_t wmi_handle,struct cfr_rcc_param * cfg)46*5113495bSYour Name QDF_STATUS wmi_unified_send_cfr_rcc_cmd(wmi_unified_t wmi_handle,
47*5113495bSYour Name 					struct cfr_rcc_param *cfg)
48*5113495bSYour Name {
49*5113495bSYour Name 	if (wmi_handle->ops->send_cfr_rcc_cmd)
50*5113495bSYour Name 		return wmi_handle->ops->send_cfr_rcc_cmd(wmi_handle, cfg);
51*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
52*5113495bSYour Name }
53*5113495bSYour Name 
54*5113495bSYour Name QDF_STATUS
wmi_extract_cfr_pdev_phase_delta_event(wmi_unified_t wmi_handle,void * evt_buf,struct wmi_cfr_phase_delta_param * param)55*5113495bSYour Name wmi_extract_cfr_pdev_phase_delta_event(wmi_unified_t wmi_handle,
56*5113495bSYour Name 				       void *evt_buf,
57*5113495bSYour Name 				       struct wmi_cfr_phase_delta_param *param)
58*5113495bSYour Name {
59*5113495bSYour Name 	if (wmi_handle->ops->extract_cfr_phase_param)
60*5113495bSYour Name 		return wmi_handle->ops->extract_cfr_phase_param(wmi_handle,
61*5113495bSYour Name 								evt_buf,
62*5113495bSYour Name 								param);
63*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
64*5113495bSYour Name }
65*5113495bSYour Name 
66*5113495bSYour Name #ifdef WLAN_RCC_ENHANCED_AOA_SUPPORT
67*5113495bSYour Name QDF_STATUS
wmi_extract_cfr_pdev_enhanced_aoa_phasedelta_event_fixed_param(wmi_unified_t wmi_handle,void * evt_buf,struct wmi_cfr_enh_phase_delta_param * param)68*5113495bSYour Name wmi_extract_cfr_pdev_enhanced_aoa_phasedelta_event_fixed_param(
69*5113495bSYour Name 		wmi_unified_t wmi_handle,
70*5113495bSYour Name 		void *evt_buf,
71*5113495bSYour Name 		struct wmi_cfr_enh_phase_delta_param *param)
72*5113495bSYour Name {
73*5113495bSYour Name 	if (wmi_handle->ops->extract_cfr_enh_phase_fixed_param)
74*5113495bSYour Name 		return wmi_handle->ops->extract_cfr_enh_phase_fixed_param
75*5113495bSYour Name 				(wmi_handle, evt_buf, param);
76*5113495bSYour Name 
77*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
78*5113495bSYour Name }
79*5113495bSYour Name 
80*5113495bSYour Name QDF_STATUS
wmi_extract_cfr_pdev_enhanced_aoa_phasedelta_event_data(wmi_unified_t wmi_handle,void * evt_buf,struct wmi_cfr_enh_phase_delta_param * param)81*5113495bSYour Name wmi_extract_cfr_pdev_enhanced_aoa_phasedelta_event_data(
82*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
83*5113495bSYour Name 		struct wmi_cfr_enh_phase_delta_param *param)
84*5113495bSYour Name {
85*5113495bSYour Name 	if (wmi_handle->ops->extract_cfr_enh_phase_data)
86*5113495bSYour Name 		return wmi_handle->ops->extract_cfr_enh_phase_data(wmi_handle,
87*5113495bSYour Name 								   evt_buf,
88*5113495bSYour Name 								   param);
89*5113495bSYour Name 
90*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
91*5113495bSYour Name }
92*5113495bSYour Name #endif /* WLAN_RCC_ENHANCED_AOA_SUPPORT */
93*5113495bSYour Name #endif /* WLAN_ENH_CFR_ENABLE */
94*5113495bSYour Name #endif /* WLAN_CFR_ENABLE */
95