xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_p2p_api.h (revision 5c881ec3ec13496062c59017e3dbf2992a7585ca)
1 /*
2  * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 /**
19  * DOC: Implement API's specific to P2P component.
20  */
21 
22 #ifndef _WMI_UNIFIED_P2P_API_H_
23 #define _WMI_UNIFIED_P2P_API_H_
24 
25 #include <wlan_p2p_public_struct.h>
26 
27 /**
28  * wmi_unified_set_p2pgo_oppps_req() - send p2p go opp power save request to fw
29  * @wmi_hdl: wmi handle
30  * @opps: p2p opp power save parameters
31  *
32  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
33  */
34 QDF_STATUS wmi_unified_set_p2pgo_oppps_req(void *wmi_hdl,
35 					   struct p2p_ps_params *oppps);
36 
37 /**
38  * wmi_unified_set_p2pgo_noa_req_cmd() - send p2p go noa request to fw
39  * @wmi_hdl: wmi handle
40  * @noa: p2p power save parameters
41  *
42  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
43  */
44 QDF_STATUS wmi_unified_set_p2pgo_noa_req_cmd(void *wmi_hdl,
45 					     struct p2p_ps_params *noa);
46 
47 /**
48  * wmi_extract_p2p_noa_ev_param() - extract p2p noa param from event
49  * @wmi_handle: wmi handle
50  * @evt_buf: pointer to event buffer
51  * @param: Pointer to hold p2p noa param
52  *
53  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
54  */
55 QDF_STATUS wmi_extract_p2p_noa_ev_param(void *wmi_hdl,
56 					void *evt_buf,
57 					struct p2p_noa_info *param);
58 
59 #ifdef FEATURE_P2P_LISTEN_OFFLOAD
60 /**
61  * wmi_unified_p2p_lo_start_cmd() - send p2p lo start request to fw
62  * @wmi_hdl: wmi handle
63  * @param: p2p listen offload start parameters
64  *
65  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
66  */
67 QDF_STATUS wmi_unified_p2p_lo_start_cmd(void *wmi_hdl,
68 					struct p2p_lo_start *param);
69 
70 /**
71  * wmi_unified_p2p_lo_stop_cmd() - send p2p lo stop request to fw
72  * @wmi_hdl: wmi handle
73  * @vdev_id: vdev id
74  *
75  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
76  */
77 QDF_STATUS wmi_unified_p2p_lo_stop_cmd(void *wmi_hdl, uint8_t vdev_id);
78 
79 /**
80  * wmi_extract_p2p_lo_stop_ev_param() - extract p2p lo stop param from event
81  * @wmi_handle: wmi handle
82  * @evt_buf: pointer to event buffer
83  * @param: Pointer to hold listen offload stop param
84  *
85  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
86  */
87 QDF_STATUS wmi_extract_p2p_lo_stop_ev_param(void *wmi_hdl,
88 					    void *evt_buf,
89 					    struct p2p_lo_event *param);
90 #endif /* FEATURE_P2P_LISTEN_OFFLOAD */
91 
92 #endif /* _WMI_UNIFIED_P2P_API_H_ */
93