xref: /freebsd/sys/contrib/dev/athk/ath10k/wow.h (revision da8fa4e37a0c048a67d7baa3b5a9bed637d02564)
1*da8fa4e3SBjoern A. Zeeb /* SPDX-License-Identifier: ISC */
2*da8fa4e3SBjoern A. Zeeb /*
3*da8fa4e3SBjoern A. Zeeb  * Copyright (c) 2015,2017 Qualcomm Atheros, Inc.
4*da8fa4e3SBjoern A. Zeeb  */
5*da8fa4e3SBjoern A. Zeeb #ifndef _WOW_H_
6*da8fa4e3SBjoern A. Zeeb #define _WOW_H_
7*da8fa4e3SBjoern A. Zeeb 
8*da8fa4e3SBjoern A. Zeeb struct ath10k_wow {
9*da8fa4e3SBjoern A. Zeeb 	u32 max_num_patterns;
10*da8fa4e3SBjoern A. Zeeb 	struct completion wakeup_completed;
11*da8fa4e3SBjoern A. Zeeb 	struct wiphy_wowlan_support wowlan_support;
12*da8fa4e3SBjoern A. Zeeb };
13*da8fa4e3SBjoern A. Zeeb 
14*da8fa4e3SBjoern A. Zeeb #ifdef CONFIG_PM
15*da8fa4e3SBjoern A. Zeeb 
16*da8fa4e3SBjoern A. Zeeb int ath10k_wow_init(struct ath10k *ar);
17*da8fa4e3SBjoern A. Zeeb int ath10k_wow_op_suspend(struct ieee80211_hw *hw,
18*da8fa4e3SBjoern A. Zeeb 			  struct cfg80211_wowlan *wowlan);
19*da8fa4e3SBjoern A. Zeeb int ath10k_wow_op_resume(struct ieee80211_hw *hw);
20*da8fa4e3SBjoern A. Zeeb void ath10k_wow_op_set_wakeup(struct ieee80211_hw *hw, bool enabled);
21*da8fa4e3SBjoern A. Zeeb 
22*da8fa4e3SBjoern A. Zeeb #else
23*da8fa4e3SBjoern A. Zeeb 
ath10k_wow_init(struct ath10k * ar)24*da8fa4e3SBjoern A. Zeeb static inline int ath10k_wow_init(struct ath10k *ar)
25*da8fa4e3SBjoern A. Zeeb {
26*da8fa4e3SBjoern A. Zeeb 	return 0;
27*da8fa4e3SBjoern A. Zeeb }
28*da8fa4e3SBjoern A. Zeeb 
29*da8fa4e3SBjoern A. Zeeb #endif /* CONFIG_PM */
30*da8fa4e3SBjoern A. Zeeb #endif /* _WOW_H_ */
31