1 | /* SPDX-License-Identifier: BSD-3-Clause-Clear */ |
2 | /* |
3 | * Copyright (c) 2020 The Linux Foundation. All rights reserved. |
4 | * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. |
5 | */ |
6 | |
7 | #ifndef _WOW_H_ |
8 | #define _WOW_H_ |
9 | |
10 | struct ath11k_wow { |
11 | u32 max_num_patterns; |
12 | struct completion wakeup_completed; |
13 | struct wiphy_wowlan_support wowlan_support; |
14 | }; |
15 | |
16 | struct rfc1042_hdr { |
17 | u8 llc_dsap; |
18 | u8 llc_ssap; |
19 | u8 llc_ctrl; |
20 | u8 snap_oui[3]; |
21 | __be16 snap_type; |
22 | } __packed; |
23 | |
24 | #define ATH11K_WOW_RETRY_NUM 3 |
25 | #define ATH11K_WOW_RETRY_WAIT_MS 200 |
26 | #define ATH11K_WOW_PATTERNS 22 |
27 | |
28 | #ifdef CONFIG_PM |
29 | |
30 | int ath11k_wow_init(struct ath11k *ar); |
31 | int ath11k_wow_op_suspend(struct ieee80211_hw *hw, |
32 | struct cfg80211_wowlan *wowlan); |
33 | int ath11k_wow_op_resume(struct ieee80211_hw *hw); |
34 | void ath11k_wow_op_set_wakeup(struct ieee80211_hw *hw, bool enabled); |
35 | int ath11k_wow_enable(struct ath11k_base *ab); |
36 | int ath11k_wow_wakeup(struct ath11k_base *ab); |
37 | |
38 | #else |
39 | |
40 | static inline int ath11k_wow_init(struct ath11k *ar) |
41 | { |
42 | return 0; |
43 | } |
44 | |
45 | static inline int ath11k_wow_enable(struct ath11k_base *ab) |
46 | { |
47 | return 0; |
48 | } |
49 | |
50 | static inline int ath11k_wow_wakeup(struct ath11k_base *ab) |
51 | { |
52 | return 0; |
53 | } |
54 | |
55 | #endif /* CONFIG_PM */ |
56 | #endif /* _WOW_H_ */ |
57 | |