1 | /* |
2 | * Copyright (c) 2011 Atheros Communications Inc. |
3 | * Copyright (c) 2011-2012 Qualcomm Atheros, Inc. |
4 | * |
5 | * Permission to use, copy, modify, and/or distribute this software for any |
6 | * purpose with or without fee is hereby granted, provided that the above |
7 | * copyright notice and this permission notice appear in all copies. |
8 | * |
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | */ |
17 | |
18 | #ifndef ATH6KL_CFG80211_H |
19 | #define ATH6KL_CFG80211_H |
20 | |
21 | enum ath6kl_cfg_suspend_mode { |
22 | ATH6KL_CFG_SUSPEND_DEEPSLEEP, |
23 | ATH6KL_CFG_SUSPEND_CUTPOWER, |
24 | ATH6KL_CFG_SUSPEND_WOW, |
25 | }; |
26 | |
27 | struct wireless_dev *ath6kl_interface_add(struct ath6kl *ar, const char *name, |
28 | unsigned char name_assign_type, |
29 | enum nl80211_iftype type, |
30 | u8 fw_vif_idx, u8 nw_type); |
31 | void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq, |
32 | enum wmi_phy_mode mode); |
33 | void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted); |
34 | |
35 | void ath6kl_cfg80211_connect_event(struct ath6kl_vif *vif, u16 channel, |
36 | u8 *bssid, u16 listen_intvl, |
37 | u16 beacon_intvl, |
38 | enum network_type nw_type, |
39 | u8 beacon_ie_len, u8 assoc_req_len, |
40 | u8 assoc_resp_len, u8 *assoc_info); |
41 | |
42 | void ath6kl_cfg80211_disconnect_event(struct ath6kl_vif *vif, u8 reason, |
43 | u8 *bssid, u8 assoc_resp_len, |
44 | u8 *assoc_info, u16 proto_reason); |
45 | |
46 | void ath6kl_cfg80211_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid, |
47 | bool ismcast); |
48 | |
49 | int ath6kl_cfg80211_suspend(struct ath6kl *ar, |
50 | enum ath6kl_cfg_suspend_mode mode, |
51 | struct cfg80211_wowlan *wow); |
52 | |
53 | int ath6kl_cfg80211_resume(struct ath6kl *ar); |
54 | |
55 | void ath6kl_cfg80211_vif_cleanup(struct ath6kl_vif *vif); |
56 | |
57 | void ath6kl_cfg80211_stop(struct ath6kl_vif *vif); |
58 | void ath6kl_cfg80211_stop_all(struct ath6kl *ar); |
59 | |
60 | int ath6kl_cfg80211_init(struct ath6kl *ar); |
61 | void ath6kl_cfg80211_cleanup(struct ath6kl *ar); |
62 | |
63 | struct ath6kl *ath6kl_cfg80211_create(void); |
64 | void ath6kl_cfg80211_destroy(struct ath6kl *ar); |
65 | |
66 | #endif /* ATH6KL_CFG80211_H */ |
67 | |