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