xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_fwol_api.h (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
1 /*
2  * Copyright (c) 2019-2021 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 fw offload component.
20  */
21 
22 #ifndef _WMI_UNIFIED_FWOL_API_H_
23 #define _WMI_UNIFIED_FWOL_API_H_
24 #include "wlan_fwol_public_structs.h"
25 
26 #ifdef WLAN_FEATURE_ELNA
27 /**
28  * wmi_unified_send_set_elna_bypass_cmd() - Send WMI set eLNA bypass cmd
29  * @wmi_handle: wmi handle
30  * @req: set eLNA bypass request
31  *
32  * Send WMI set eLNA bypass command to firmware.
33  *
34  * Return: QDF_STATUS
35  */
36 QDF_STATUS
37 wmi_unified_send_set_elna_bypass_cmd(struct wmi_unified *wmi_handle,
38 				     struct set_elna_bypass_request *req);
39 
40 /**
41  * wmi_unified_send_get_elna_bypass_cmd() - Send WMI get eLNA bypass cmd
42  * @wmi_handle: wmi handle
43  * @req: get eLNA bypass request
44  *
45  * Send WMI get eLNA bypass command to firmware.
46  *
47  * Return: QDF_STATUS
48  */
49 QDF_STATUS
50 wmi_unified_send_get_elna_bypass_cmd(struct wmi_unified *wmi_handle,
51 				     struct get_elna_bypass_request *req);
52 
53 /**
54  * wmi_extract_get_elna_bypass_resp() - Extract WMI get eLNA bypass response
55  * @wmi_handle: wmi handle
56  * @resp_buf: response buffer
57  * @resp: get eLNA bypass response
58  *
59  * Extract WMI get eLNA bypass response from firmware.
60  *
61  * Return: QDF_STATUS
62  */
63 QDF_STATUS
64 wmi_extract_get_elna_bypass_resp(struct wmi_unified *wmi_handle, void *resp_buf,
65 				 struct get_elna_bypass_response *resp);
66 #endif /* WLAN_FEATURE_ELNA */
67 
68 #ifdef WLAN_SEND_DSCP_UP_MAP_TO_FW
69 /**
70  * wmi_unified_send_dscp_tip_map_cmd() - Send dscp-to-tid map values cmd
71  * @wmi_handle: wmi handle
72  * @dscp_to_tid_map: array of dscp_tid map values
73  *
74  * Send dscp-to-tid map values to FW.
75  *
76  * Return: QDF_STATUS
77  */
78 QDF_STATUS
79 wmi_unified_send_dscp_tip_map_cmd(struct wmi_unified *wmi_handle,
80 				  uint32_t *dscp_to_tid_map);
81 #else
82 static inline QDF_STATUS
83 wmi_unified_send_dscp_tip_map_cmd(struct wmi_unified *wmi_handle,
84 				  uint32_t *dscp_to_tid_map)
85 {
86 	return QDF_STATUS_SUCCESS;
87 }
88 #endif /* WLAN_SEND_DSCP_UP_MAP_TO_FW */
89 
90 #ifdef WLAN_FEATURE_MDNS_OFFLOAD
91 /**
92  * wmi_unified_send_set_mdns_config_cmd() - Send WMI set mDNS config cmd
93  * @wmi_handle: wmi handle
94  * @mdns_info: mdns config info
95  *
96  * Send WMI set mDNS config command to firmware.
97  *
98  * Return: QDF_STATUS
99  */
100 QDF_STATUS
101 wmi_unified_send_set_mdns_config_cmd(struct wmi_unified *wmi_handle,
102 				     struct mdns_config_info *mdns_info);
103 #endif /* WLAN_FEATURE_MDNS_OFFLOAD */
104 
105 /**
106  * wmi_unified_send_get_thermal_stats_cmd() - Send WMI get thermal stats req
107  * @wmi_handle: wmi handle
108  * @req_type: Request type
109  * @temp_offset: temperature offset for setting the range for thermal stats
110 
111  * Send WMI get thermal stats req command to firmware.
112  *
113  * Return: QDF_STATUS
114  */
115 #ifdef THERMAL_STATS_SUPPORT
116 QDF_STATUS
117 wmi_unified_send_get_thermal_stats_cmd(struct wmi_unified *wmi_handle,
118 				       enum thermal_stats_request_type req_type,
119 				       uint8_t temp_offset);
120 #endif /* THERMAL_STATS_SUPPORT */
121 
122 #endif /* _WMI_UNIFIED_FWOL_API_H_ */
123