1 /*
2  * Copyright (c) 2017-2018 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
6  * any purpose with or without fee is hereby granted, provided that the
7  * above copyright notice and this permission notice appear in all
8  * copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17  * PERFORMANCE OF THIS SOFTWARE.
18  */
19 /**
20  * DOC: Declare gtk offload feature API's
21  */
22 
23 #ifndef _WLAN_PMO_GTK_H_
24 #define _WLAN_PMO_GTK_H_
25 
26 #ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
27 
28 #include "wlan_pmo_gtk_public_struct.h"
29 
30 /**
31  * pmo_core_cache_gtk_offload_req(): API to cache gtk req in pmo vdev priv obj
32  * @vdev: objmgr vdev handle
33  * @gtk_req: pmo gtk req param
34  *
35  * Return QDF_STATUS_SUCCESS -in case of success else return error
36  */
37 QDF_STATUS pmo_core_cache_gtk_offload_req(struct wlan_objmgr_vdev *vdev,
38 		struct pmo_gtk_req *gtk_req);
39 
40 /**
41  * pmo_core_flush_gtk_offload_req(): Flush saved gtk req from pmo vdev priv obj
42  * @vdev: objmgr vdev handle
43  *
44  * Return QDF_STATUS_SUCCESS -in case of success else return error
45  */
46 QDF_STATUS pmo_core_flush_gtk_offload_req(struct wlan_objmgr_vdev *vdev);
47 
48 /**
49  * pmo_core_enable_gtk_offload_in_fwr(): enable cached gtk request in fwr
50  * @vdev: objmgr vdev handle
51  *
52  * Return QDF_STATUS_SUCCESS -in case of success else return error
53  */
54 QDF_STATUS pmo_core_enable_gtk_offload_in_fwr(struct wlan_objmgr_vdev *vdev);
55 
56 /**
57  * pmo_core_disable_gtk_offload_in_fwr(): disable cached gtk request in fwr
58  * @vdev: objmgr vdev handle
59  *
60  * Return QDF_STATUS_SUCCESS -in case of success else return error
61  */
62 QDF_STATUS pmo_core_disable_gtk_offload_in_fwr(struct wlan_objmgr_vdev *vdev);
63 
64 /**
65  * pmo_core_get_gtk_rsp(): API to send gtk response request to fwr
66  * @vdev: objmgr vdev handle
67  * @gtk_rsp_req: pmo gtk response request
68  *
69  * This api will send gtk response request to fwr
70  *
71  * Return QDF_STATUS_SUCCESS -in case of success else return error
72  */
73 QDF_STATUS pmo_core_get_gtk_rsp(struct wlan_objmgr_vdev *vdev,
74 			struct pmo_gtk_rsp_req *gtk_rsp_req);
75 
76 #endif /* WLAN_POWER_MANAGEMENT_OFFLOAD */
77 
78 #endif /* end  of _WLAN_PMO_GTK_H_ */
79 
80