1 /*
2 * Copyright (c) 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 /**
18 * DOC: wlan_afc_ucfg_api.h
19 *
20 * This file has the prototypes of AFC dispatcher API which is exposed
21 * to outside of AFC component.
22 */
23
24 #ifndef __WLAN_AFC_UCFG_API_H__
25 #define __WLAN_AFC_UCFG_API_H__
26
27 #include <wlan_afc_main.h>
28
29 #ifdef CONFIG_AFC_SUPPORT
30 /**
31 * ucfg_afc_register_data_send_cb() - UCFG API to register AFC data send
32 * callback function to pass AFC response data to target.
33 * @psoc: Pointer to PSOC object
34 * @func: Pointer to PLD AFC function to pass AFC response data to target
35 *
36 * Return: QDF STATUS
37 */
38 QDF_STATUS ucfg_afc_register_data_send_cb(struct wlan_objmgr_psoc *psoc,
39 send_response_to_afcmem func);
40 /**
41 * ucfg_afc_data_send() - UCFG API to send AFC response data to target
42 * @psoc: Pointer to PSOC object
43 * @pdev: Pointer to PDEV object
44 * @data: Pointer to AFC response data which pass to target
45 * @len: Length of AFC response data
46 *
47 * Return: 0 if success, otherwise error code
48 */
49 int ucfg_afc_data_send(struct wlan_objmgr_psoc *psoc,
50 struct wlan_objmgr_pdev *pdev,
51 struct wlan_afc_host_resp *data,
52 uint32_t len);
53 /**
54 * ucfg_afc_init() - UCFG API to initialize AFC component
55 *
56 * Return: QDF STATUS
57 */
58 QDF_STATUS ucfg_afc_init(void);
59
60 /**
61 * ucfg_afc_deinit() - UCFG API to deinitialize AFC component
62 *
63 * Return: QDF STATUS
64 */
65 QDF_STATUS ucfg_afc_deinit(void);
66 #else
ucfg_afc_init(void)67 static inline QDF_STATUS ucfg_afc_init(void)
68 {
69 return QDF_STATUS_SUCCESS;
70 }
71
ucfg_afc_deinit(void)72 static inline QDF_STATUS ucfg_afc_deinit(void)
73 {
74 return QDF_STATUS_SUCCESS;
75 }
76 #endif
77 #endif
78