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 #include "wmi_unified_priv.h"
23 #include "wlan_fwol_public_structs.h"
24 #include "wmi_unified_fwol_api.h"
25
26 #ifdef WLAN_FEATURE_ELNA
27 QDF_STATUS
wmi_unified_send_set_elna_bypass_cmd(struct wmi_unified * wmi_handle,struct set_elna_bypass_request * req)28 wmi_unified_send_set_elna_bypass_cmd(struct wmi_unified *wmi_handle,
29 struct set_elna_bypass_request *req)
30 {
31 if (wmi_handle->ops->send_set_elna_bypass_cmd)
32 return wmi_handle->ops->send_set_elna_bypass_cmd(wmi_handle,
33 req);
34
35 return QDF_STATUS_E_FAILURE;
36 }
37
38 QDF_STATUS
wmi_unified_send_get_elna_bypass_cmd(struct wmi_unified * wmi_handle,struct get_elna_bypass_request * req)39 wmi_unified_send_get_elna_bypass_cmd(struct wmi_unified *wmi_handle,
40 struct get_elna_bypass_request *req)
41 {
42 if (wmi_handle->ops->send_get_elna_bypass_cmd)
43 return wmi_handle->ops->send_get_elna_bypass_cmd(wmi_handle,
44 req);
45
46 return QDF_STATUS_E_FAILURE;
47 }
48
49 QDF_STATUS
wmi_extract_get_elna_bypass_resp(struct wmi_unified * wmi_handle,void * resp_buf,struct get_elna_bypass_response * resp)50 wmi_extract_get_elna_bypass_resp(struct wmi_unified *wmi_handle, void *resp_buf,
51 struct get_elna_bypass_response *resp)
52 {
53 if (wmi_handle->ops->extract_get_elna_bypass_resp)
54 return wmi_handle->ops->extract_get_elna_bypass_resp(wmi_handle,
55 resp_buf,
56 resp);
57
58 return QDF_STATUS_E_FAILURE;
59 }
60 #endif /* WLAN_FEATURE_ELNA */
61
62 #ifdef WLAN_SEND_DSCP_UP_MAP_TO_FW
63 QDF_STATUS
wmi_unified_send_dscp_tip_map_cmd(struct wmi_unified * wmi_handle,uint32_t * dscp_to_tid_map)64 wmi_unified_send_dscp_tip_map_cmd(struct wmi_unified *wmi_handle,
65 uint32_t *dscp_to_tid_map)
66 {
67 if (wmi_handle->ops->send_dscp_tid_map_cmd)
68 return wmi_handle->ops->send_dscp_tid_map_cmd(wmi_handle,
69 dscp_to_tid_map);
70
71 return QDF_STATUS_E_FAILURE;
72 }
73 #endif /* WLAN_SEND_DSCP_UP_MAP_TO_FW */
74
75 #ifdef WLAN_FEATURE_MDNS_OFFLOAD
76 QDF_STATUS
wmi_unified_send_set_mdns_config_cmd(struct wmi_unified * wmi_handle,struct mdns_config_info * mdns_info)77 wmi_unified_send_set_mdns_config_cmd(struct wmi_unified *wmi_handle,
78 struct mdns_config_info *mdns_info)
79 {
80 if (wmi_handle->ops->send_set_mdns_config_cmd)
81 return wmi_handle->ops->send_set_mdns_config_cmd(wmi_handle,
82 mdns_info);
83
84 return QDF_STATUS_E_FAILURE;
85 }
86 #endif /* WLAN_FEATURE_MDNS_OFFLOAD */
87
88 #ifdef THERMAL_STATS_SUPPORT
89 QDF_STATUS
wmi_unified_send_get_thermal_stats_cmd(struct wmi_unified * wmi_handle,enum thermal_stats_request_type req_type,uint8_t temp_offset)90 wmi_unified_send_get_thermal_stats_cmd(struct wmi_unified *wmi_handle,
91 enum thermal_stats_request_type req_type,
92 uint8_t temp_offset)
93 {
94 if (wmi_handle->ops->send_get_thermal_stats_cmd)
95 return wmi_handle->ops->send_get_thermal_stats_cmd(wmi_handle,
96 req_type,
97 temp_offset);
98
99 return QDF_STATUS_E_FAILURE;
100 }
101 #endif /* THERMAL_STATS_SUPPORT */