2011-07-18 00:22:30 +03:00
/*
* Copyright ( c ) 2011 Atheros Communications Inc .
2012-02-06 20:15:53 +05:30
* Copyright ( c ) 2011 - 2012 Qualcomm Atheros , Inc .
2011-07-18 00:22:30 +03:00
*
* Permission to use , copy , modify , and / or distribute this software for any
* purpose with or without fee is hereby granted , provided that the above
* copyright notice and this permission notice appear in all copies .
*
* THE SOFTWARE IS PROVIDED " AS IS " AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS . IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL , DIRECT , INDIRECT , OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE , DATA OR PROFITS , WHETHER IN AN
* ACTION OF CONTRACT , NEGLIGENCE OR OTHER TORTIOUS ACTION , ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE .
*/
# ifndef ATH6KL_CFG80211_H
# define ATH6KL_CFG80211_H
2011-11-01 08:44:21 +02:00
enum ath6kl_cfg_suspend_mode {
ATH6KL_CFG_SUSPEND_DEEPSLEEP ,
2011-11-01 08:44:44 +02:00
ATH6KL_CFG_SUSPEND_CUTPOWER ,
2011-12-13 14:52:07 +02:00
ATH6KL_CFG_SUSPEND_WOW ,
2011-11-01 08:44:21 +02:00
} ;
2012-09-19 09:26:06 +02:00
struct wireless_dev * ath6kl_interface_add ( struct ath6kl * ar , const char * name ,
2012-06-16 00:00:26 +02:00
enum nl80211_iftype type ,
u8 fw_vif_idx , u8 nw_type ) ;
2012-04-06 13:35:48 -07:00
void ath6kl_cfg80211_ch_switch_notify ( struct ath6kl_vif * vif , int freq ,
enum wmi_phy_mode mode ) ;
2011-11-01 08:43:56 +02:00
void ath6kl_cfg80211_scan_complete_event ( struct ath6kl_vif * vif , bool aborted ) ;
2011-07-18 00:22:30 +03:00
2011-10-25 19:34:13 +05:30
void ath6kl_cfg80211_connect_event ( struct ath6kl_vif * vif , u16 channel ,
2011-07-18 00:22:30 +03:00
u8 * bssid , u16 listen_intvl ,
u16 beacon_intvl ,
enum network_type nw_type ,
u8 beacon_ie_len , u8 assoc_req_len ,
u8 assoc_resp_len , u8 * assoc_info ) ;
2011-10-25 19:34:13 +05:30
void ath6kl_cfg80211_disconnect_event ( struct ath6kl_vif * vif , u8 reason ,
2011-07-18 00:22:30 +03:00
u8 * bssid , u8 assoc_resp_len ,
u8 * assoc_info , u16 proto_reason ) ;
2011-10-25 19:34:13 +05:30
void ath6kl_cfg80211_tkip_micerr_event ( struct ath6kl_vif * vif , u8 keyid ,
2011-07-18 00:22:30 +03:00
bool ismcast ) ;
2011-11-01 08:44:21 +02:00
int ath6kl_cfg80211_suspend ( struct ath6kl * ar ,
2011-11-07 22:52:45 +02:00
enum ath6kl_cfg_suspend_mode mode ,
struct cfg80211_wowlan * wow ) ;
2011-11-01 08:44:21 +02:00
int ath6kl_cfg80211_resume ( struct ath6kl * ar ) ;
2012-01-17 20:08:27 +02:00
void ath6kl_cfg80211_vif_cleanup ( struct ath6kl_vif * vif ) ;
2011-12-13 14:51:37 +02:00
void ath6kl_cfg80211_stop ( struct ath6kl_vif * vif ) ;
void ath6kl_cfg80211_stop_all ( struct ath6kl * ar ) ;
2011-11-01 08:44:04 +02:00
2012-01-17 20:08:40 +02:00
int ath6kl_cfg80211_init ( struct ath6kl * ar ) ;
void ath6kl_cfg80211_cleanup ( struct ath6kl * ar ) ;
2012-01-17 20:09:05 +02:00
struct ath6kl * ath6kl_cfg80211_create ( void ) ;
void ath6kl_cfg80211_destroy ( struct ath6kl * ar ) ;
2011-07-18 00:22:30 +03:00
# endif /* ATH6KL_CFG80211_H */