wmi.h (43ed15e1ee01631687ed8b2e8595859802bc9f10) wmi.h (79802b13a492d0fdeb922e98628e5ff1a8b74026)
1/* SPDX-License-Identifier: BSD-3-Clause-Clear */
2/*
3 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
4 */
5
6#ifndef ATH11K_WMI_H
7#define ATH11K_WMI_H
8

--- 5030 unchanged lines hidden (view full) ---

5039 struct wmi_host_mem_chunk mem_chunks[WMI_MAX_MEM_REQS];
5040
5041 enum wmi_host_hw_mode_config_type preferred_hw_mode;
5042 struct target_resource_config wlan_resource_config;
5043
5044 struct ath11k_targ_cap *targ_cap;
5045};
5046
1/* SPDX-License-Identifier: BSD-3-Clause-Clear */
2/*
3 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
4 */
5
6#ifndef ATH11K_WMI_H
7#define ATH11K_WMI_H
8

--- 5030 unchanged lines hidden (view full) ---

5039 struct wmi_host_mem_chunk mem_chunks[WMI_MAX_MEM_REQS];
5040
5041 enum wmi_host_hw_mode_config_type preferred_hw_mode;
5042 struct target_resource_config wlan_resource_config;
5043
5044 struct ath11k_targ_cap *targ_cap;
5045};
5046
5047/* WOW structures */
5048enum wmi_wow_wakeup_event {
5049 WOW_BMISS_EVENT = 0,
5050 WOW_BETTER_AP_EVENT,
5051 WOW_DEAUTH_RECVD_EVENT,
5052 WOW_MAGIC_PKT_RECVD_EVENT,
5053 WOW_GTK_ERR_EVENT,
5054 WOW_FOURWAY_HSHAKE_EVENT,
5055 WOW_EAPOL_RECVD_EVENT,
5056 WOW_NLO_DETECTED_EVENT,
5057 WOW_DISASSOC_RECVD_EVENT,
5058 WOW_PATTERN_MATCH_EVENT,
5059 WOW_CSA_IE_EVENT,
5060 WOW_PROBE_REQ_WPS_IE_EVENT,
5061 WOW_AUTH_REQ_EVENT,
5062 WOW_ASSOC_REQ_EVENT,
5063 WOW_HTT_EVENT,
5064 WOW_RA_MATCH_EVENT,
5065 WOW_HOST_AUTO_SHUTDOWN_EVENT,
5066 WOW_IOAC_MAGIC_EVENT,
5067 WOW_IOAC_SHORT_EVENT,
5068 WOW_IOAC_EXTEND_EVENT,
5069 WOW_IOAC_TIMER_EVENT,
5070 WOW_DFS_PHYERR_RADAR_EVENT,
5071 WOW_BEACON_EVENT,
5072 WOW_CLIENT_KICKOUT_EVENT,
5073 WOW_EVENT_MAX,
5074};
5075
5076enum wmi_wow_interface_cfg {
5077 WOW_IFACE_PAUSE_ENABLED,
5078 WOW_IFACE_PAUSE_DISABLED
5079};
5080
5081#define C2S(x) case x: return #x
5082
5083static inline const char *wow_wakeup_event(enum wmi_wow_wakeup_event ev)
5084{
5085 switch (ev) {
5086 C2S(WOW_BMISS_EVENT);
5087 C2S(WOW_BETTER_AP_EVENT);
5088 C2S(WOW_DEAUTH_RECVD_EVENT);
5089 C2S(WOW_MAGIC_PKT_RECVD_EVENT);
5090 C2S(WOW_GTK_ERR_EVENT);
5091 C2S(WOW_FOURWAY_HSHAKE_EVENT);
5092 C2S(WOW_EAPOL_RECVD_EVENT);
5093 C2S(WOW_NLO_DETECTED_EVENT);
5094 C2S(WOW_DISASSOC_RECVD_EVENT);
5095 C2S(WOW_PATTERN_MATCH_EVENT);
5096 C2S(WOW_CSA_IE_EVENT);
5097 C2S(WOW_PROBE_REQ_WPS_IE_EVENT);
5098 C2S(WOW_AUTH_REQ_EVENT);
5099 C2S(WOW_ASSOC_REQ_EVENT);
5100 C2S(WOW_HTT_EVENT);
5101 C2S(WOW_RA_MATCH_EVENT);
5102 C2S(WOW_HOST_AUTO_SHUTDOWN_EVENT);
5103 C2S(WOW_IOAC_MAGIC_EVENT);
5104 C2S(WOW_IOAC_SHORT_EVENT);
5105 C2S(WOW_IOAC_EXTEND_EVENT);
5106 C2S(WOW_IOAC_TIMER_EVENT);
5107 C2S(WOW_DFS_PHYERR_RADAR_EVENT);
5108 C2S(WOW_BEACON_EVENT);
5109 C2S(WOW_CLIENT_KICKOUT_EVENT);
5110 C2S(WOW_EVENT_MAX);
5111 default:
5112 return NULL;
5113 }
5114}
5115
5116enum wmi_wow_wake_reason {
5117 WOW_REASON_UNSPECIFIED = -1,
5118 WOW_REASON_NLOD = 0,
5119 WOW_REASON_AP_ASSOC_LOST,
5120 WOW_REASON_LOW_RSSI,
5121 WOW_REASON_DEAUTH_RECVD,
5122 WOW_REASON_DISASSOC_RECVD,
5123 WOW_REASON_GTK_HS_ERR,
5124 WOW_REASON_EAP_REQ,
5125 WOW_REASON_FOURWAY_HS_RECV,
5126 WOW_REASON_TIMER_INTR_RECV,
5127 WOW_REASON_PATTERN_MATCH_FOUND,
5128 WOW_REASON_RECV_MAGIC_PATTERN,
5129 WOW_REASON_P2P_DISC,
5130 WOW_REASON_WLAN_HB,
5131 WOW_REASON_CSA_EVENT,
5132 WOW_REASON_PROBE_REQ_WPS_IE_RECV,
5133 WOW_REASON_AUTH_REQ_RECV,
5134 WOW_REASON_ASSOC_REQ_RECV,
5135 WOW_REASON_HTT_EVENT,
5136 WOW_REASON_RA_MATCH,
5137 WOW_REASON_HOST_AUTO_SHUTDOWN,
5138 WOW_REASON_IOAC_MAGIC_EVENT,
5139 WOW_REASON_IOAC_SHORT_EVENT,
5140 WOW_REASON_IOAC_EXTEND_EVENT,
5141 WOW_REASON_IOAC_TIMER_EVENT,
5142 WOW_REASON_ROAM_HO,
5143 WOW_REASON_DFS_PHYERR_RADADR_EVENT,
5144 WOW_REASON_BEACON_RECV,
5145 WOW_REASON_CLIENT_KICKOUT_EVENT,
5146 WOW_REASON_PAGE_FAULT = 0x3a,
5147 WOW_REASON_DEBUG_TEST = 0xFF,
5148};
5149
5150static inline const char *wow_reason(enum wmi_wow_wake_reason reason)
5151{
5152 switch (reason) {
5153 C2S(WOW_REASON_UNSPECIFIED);
5154 C2S(WOW_REASON_NLOD);
5155 C2S(WOW_REASON_AP_ASSOC_LOST);
5156 C2S(WOW_REASON_LOW_RSSI);
5157 C2S(WOW_REASON_DEAUTH_RECVD);
5158 C2S(WOW_REASON_DISASSOC_RECVD);
5159 C2S(WOW_REASON_GTK_HS_ERR);
5160 C2S(WOW_REASON_EAP_REQ);
5161 C2S(WOW_REASON_FOURWAY_HS_RECV);
5162 C2S(WOW_REASON_TIMER_INTR_RECV);
5163 C2S(WOW_REASON_PATTERN_MATCH_FOUND);
5164 C2S(WOW_REASON_RECV_MAGIC_PATTERN);
5165 C2S(WOW_REASON_P2P_DISC);
5166 C2S(WOW_REASON_WLAN_HB);
5167 C2S(WOW_REASON_CSA_EVENT);
5168 C2S(WOW_REASON_PROBE_REQ_WPS_IE_RECV);
5169 C2S(WOW_REASON_AUTH_REQ_RECV);
5170 C2S(WOW_REASON_ASSOC_REQ_RECV);
5171 C2S(WOW_REASON_HTT_EVENT);
5172 C2S(WOW_REASON_RA_MATCH);
5173 C2S(WOW_REASON_HOST_AUTO_SHUTDOWN);
5174 C2S(WOW_REASON_IOAC_MAGIC_EVENT);
5175 C2S(WOW_REASON_IOAC_SHORT_EVENT);
5176 C2S(WOW_REASON_IOAC_EXTEND_EVENT);
5177 C2S(WOW_REASON_IOAC_TIMER_EVENT);
5178 C2S(WOW_REASON_ROAM_HO);
5179 C2S(WOW_REASON_DFS_PHYERR_RADADR_EVENT);
5180 C2S(WOW_REASON_BEACON_RECV);
5181 C2S(WOW_REASON_CLIENT_KICKOUT_EVENT);
5182 C2S(WOW_REASON_PAGE_FAULT);
5183 C2S(WOW_REASON_DEBUG_TEST);
5184 default:
5185 return NULL;
5186 }
5187}
5188
5189#undef C2S
5190
5191struct wmi_wow_enable_cmd {
5192 u32 tlv_header;
5193 u32 enable;
5194 u32 pause_iface_config;
5195 u32 flags;
5196} __packed;
5197
5198struct wmi_wow_host_wakeup_ind {
5199 u32 tlv_header;
5200 u32 reserved;
5201} __packed;
5202
5203struct wmi_wow_ev_arg {
5204 u32 vdev_id;
5205 u32 flag;
5206 enum wmi_wow_wake_reason wake_reason;
5207 u32 data_len;
5208};
5209
5047int ath11k_wmi_cmd_send(struct ath11k_pdev_wmi *wmi, struct sk_buff *skb,
5048 u32 cmd_id);
5049struct sk_buff *ath11k_wmi_alloc_skb(struct ath11k_wmi_base *wmi_sc, u32 len);
5050int ath11k_wmi_mgmt_send(struct ath11k *ar, u32 vdev_id, u32 buf_id,
5051 struct sk_buff *frame);
5052int ath11k_wmi_bcn_tmpl(struct ath11k *ar, u32 vdev_id,
5053 struct ieee80211_mutable_offsets *offs,
5054 struct sk_buff *bcn);

--- 113 unchanged lines hidden (view full) ---

5168int ath11k_wmi_fils_discovery_tmpl(struct ath11k *ar, u32 vdev_id,
5169 struct sk_buff *tmpl);
5170int ath11k_wmi_fils_discovery(struct ath11k *ar, u32 vdev_id, u32 interval,
5171 bool unsol_bcast_probe_resp_enabled);
5172int ath11k_wmi_probe_resp_tmpl(struct ath11k *ar, u32 vdev_id,
5173 struct sk_buff *tmpl);
5174int ath11k_wmi_set_hw_mode(struct ath11k_base *ab,
5175 enum wmi_host_hw_mode_config_type mode);
5210int ath11k_wmi_cmd_send(struct ath11k_pdev_wmi *wmi, struct sk_buff *skb,
5211 u32 cmd_id);
5212struct sk_buff *ath11k_wmi_alloc_skb(struct ath11k_wmi_base *wmi_sc, u32 len);
5213int ath11k_wmi_mgmt_send(struct ath11k *ar, u32 vdev_id, u32 buf_id,
5214 struct sk_buff *frame);
5215int ath11k_wmi_bcn_tmpl(struct ath11k *ar, u32 vdev_id,
5216 struct ieee80211_mutable_offsets *offs,
5217 struct sk_buff *bcn);

--- 113 unchanged lines hidden (view full) ---

5331int ath11k_wmi_fils_discovery_tmpl(struct ath11k *ar, u32 vdev_id,
5332 struct sk_buff *tmpl);
5333int ath11k_wmi_fils_discovery(struct ath11k *ar, u32 vdev_id, u32 interval,
5334 bool unsol_bcast_probe_resp_enabled);
5335int ath11k_wmi_probe_resp_tmpl(struct ath11k *ar, u32 vdev_id,
5336 struct sk_buff *tmpl);
5337int ath11k_wmi_set_hw_mode(struct ath11k_base *ab,
5338 enum wmi_host_hw_mode_config_type mode);
5339int ath11k_wmi_wow_host_wakeup_ind(struct ath11k *ar);
5340int ath11k_wmi_wow_enable(struct ath11k *ar);
5176
5177#endif
5341
5342#endif