1 /* 2 * Copyright (c) 2021, 2023 Qualcomm Innovation Center, Inc. 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 17 #ifndef _WLAN_WIFI_RADAR_UTILS_API_H_ 18 #define _WLAN_WIFI_RADAR_UTILS_API_H_ 19 20 #include <wlan_objmgr_cmn.h> 21 #include <qdf_streamfs.h> 22 23 #define wifi_radar_alert(format, args...) \ 24 QDF_TRACE_FATAL(QDF_MODULE_ID_WIFI_RADAR, format, ## args) 25 26 #define wifi_radar_err(format, args...) \ 27 QDF_TRACE_ERROR(QDF_MODULE_ID_WIFI_RADAR, format, ## args) 28 29 #define wifi_radar_warn(format, args...) \ 30 QDF_TRACE_WARN(QDF_MODULE_ID_WIFI_RADAR, format, ## args) 31 32 #define wifi_radar_info(format, args...) \ 33 QDF_TRACE_INFO(QDF_MODULE_ID_WIFI_RADAR, format, ## args) 34 35 #define wifi_radar_debug(format, args...) \ 36 QDF_TRACE_DEBUG(QDF_MODULE_ID_WIFI_RADAR, format, ## args) 37 38 /** 39 * struct psoc_wifi_radar - private psoc object for WiFi Radar 40 * @psoc_obj: pointer to psoc object 41 * @is_wifi_radar_capable: flag to determine if wifi radar is enabled or not 42 */ 43 struct psoc_wifi_radar { 44 struct wlan_objmgr_psoc *psoc_obj; 45 uint8_t is_wifi_radar_capable; 46 }; 47 48 /** 49 * struct pdev_wifi_radar - private pdev object for WiFi Radar 50 * @pdev_obj: pointer to pdev object 51 * @is_wifi_radar_capable: flag to determine if wifi radar is enabled or not 52 * @chan_ptr: Channel in relayfs 53 * @dir_ptr: Parent directory of relayfs file 54 * @num_subbufs: No. of sub-buffers used in relayfs 55 * @subbuf_size: Size of sub-buffer used in relayfs 56 */ 57 struct pdev_wifi_radar { 58 struct wlan_objmgr_pdev *pdev_obj; 59 uint8_t is_wifi_radar_capable; 60 qdf_streamfs_chan_t chan_ptr; 61 qdf_dentry_t dir_ptr; 62 uint32_t num_subbufs; 63 uint32_t subbuf_size; 64 }; 65 66 /** 67 * struct peer_wifi_radar - private peer object for WiFi Radar 68 * @peer_obj: pointer to peer_obj 69 */ 70 struct peer_wifi_radar { 71 struct wlan_objmgr_peer *peer_obj; 72 }; 73 74 /** 75 * wlan_wifi_radar_init() - Global init for wifi radar. 76 * 77 * Return: status of global init pass/fail 78 */ 79 QDF_STATUS wlan_wifi_radar_init(void); 80 81 /** 82 * wlan_wifi_radar_deinit() - Global de-init for wifi radar. 83 * 84 * Return: status of global de-init pass/fail 85 */ 86 QDF_STATUS wlan_wifi_radar_deinit(void); 87 88 /** 89 * wlan_wifi_radar_pdev_open() - pdev_open function for wifi radar. 90 * @pdev: pointer to pdev object 91 * 92 * Return: status of pdev_open pass/fail 93 */ 94 QDF_STATUS wlan_wifi_radar_pdev_open(struct wlan_objmgr_pdev *pdev); 95 96 /** 97 * wlan_wifi_radar_pdev_close() - pdev_close function for wifi radar. 98 * @pdev: pointer to pdev object 99 * 100 * Return: status of pdev_close pass/fail 101 */ 102 QDF_STATUS wlan_wifi_radar_pdev_close(struct wlan_objmgr_pdev *pdev); 103 104 /** 105 * wifi_radar_initialize_pdev() - pdev_initialize function for wifi radar. 106 * @pdev: pointer to pdev object 107 * 108 * Return: status of pdev_initialize pass/fail 109 */ 110 QDF_STATUS wifi_radar_initialize_pdev(struct wlan_objmgr_pdev *pdev); 111 112 /** 113 * wifi_radar_deinitialize_pdev() - pdev_deinitialize function for wifi radar. 114 * @pdev: pointer to pdev object 115 * 116 * Return: status of pdev_deinitialize pass/fail 117 */ 118 QDF_STATUS wifi_radar_deinitialize_pdev(struct wlan_objmgr_pdev *pdev); 119 120 /** 121 * wlan_wifi_radar_is_feature_disabled() - Check if wifi radarfeature 122 * is disabled 123 * @pdev: the physical device object. 124 * 125 * Return : true if wifi radar is disabled, else false. 126 */ 127 bool wlan_wifi_radar_is_feature_disabled(struct wlan_objmgr_pdev *pdev); 128 129 #endif 130