#include "cam.h"
#include "core.h"
#include "debug.h"
#include "fw.h"
#include "mac.h"
#include "phy.h"
#include "ps.h"
#include "reg.h"
#include "util.h"
#include "wow.h"
void rtw89_wow_parse_akm(struct rtw89_dev *rtwdev, struct sk_buff *skb)
{ … }
#define RTW89_CIPHER_INFO_DEF …
static const struct rtw89_cipher_info rtw89_cipher_info_defs[] = …;
#undef RTW89_CIPHER_INFO_DEF
static const
struct rtw89_cipher_info *rtw89_cipher_alg_recognize(u32 cipher)
{ … }
static int _pn_to_iv(struct rtw89_dev *rtwdev, struct ieee80211_key_conf *key,
u8 *iv, u64 pn, u8 key_idx)
{ … }
static int rtw89_rx_pn_to_iv(struct rtw89_dev *rtwdev,
struct ieee80211_key_conf *key,
u8 *iv)
{ … }
static int rtw89_tx_pn_to_iv(struct rtw89_dev *rtwdev,
struct ieee80211_key_conf *key,
u8 *iv)
{ … }
static int _iv_to_pn(struct rtw89_dev *rtwdev, u8 *iv, u64 *pn, u8 *key_id,
struct ieee80211_key_conf *key)
{ … }
static int rtw89_rx_iv_to_pn(struct rtw89_dev *rtwdev,
struct ieee80211_key_conf *key,
u8 *iv)
{ … }
static int rtw89_tx_iv_to_pn(struct rtw89_dev *rtwdev,
struct ieee80211_key_conf *key,
u8 *iv)
{ … }
static int rtw89_rx_pn_get_pmf(struct rtw89_dev *rtwdev,
struct ieee80211_key_conf *key,
struct rtw89_wow_gtk_info *gtk_info)
{ … }
static int rtw89_rx_pn_set_pmf(struct rtw89_dev *rtwdev,
struct ieee80211_key_conf *key,
u64 pn)
{ … }
static void rtw89_wow_get_key_info_iter(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key,
void *data)
{ … }
static void rtw89_wow_set_key_info_iter(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key,
void *data)
{ … }
static void rtw89_wow_key_clear(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_construct_key_info(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_debug_aoac_rpt(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_wow_get_aoac_rpt_reg(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_wow_get_aoac_rpt(struct rtw89_dev *rtwdev, bool rx_ready)
{ … }
static struct ieee80211_key_conf *rtw89_wow_gtk_rekey(struct rtw89_dev *rtwdev,
u32 cipher, u8 keyidx, u8 *gtk)
{ … }
static void rtw89_wow_update_key_info(struct rtw89_dev *rtwdev, bool rx_ready)
{ … }
static void rtw89_wow_leave_deep_ps(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_enter_deep_ps(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_enter_ps(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_leave_ps(struct rtw89_dev *rtwdev, bool enable_wow)
{ … }
static int rtw89_wow_config_mac(struct rtw89_dev *rtwdev, bool enable_wow)
{ … }
static void rtw89_wow_set_rx_filter(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void rtw89_wow_show_wakeup_reason(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_vif_iter(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
static u16 __rtw89_cal_crc16(u8 data, u16 crc)
{ … }
static u16 rtw89_calc_crc(u8 *pdata, int length)
{ … }
static int rtw89_wow_pattern_get_type(struct rtw89_vif *rtwvif,
struct rtw89_wow_cam_info *rtw_pattern,
const u8 *pattern, u8 da_mask)
{ … }
static int rtw89_wow_pattern_generate(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif,
const struct cfg80211_pkt_pattern *pkt_pattern,
struct rtw89_wow_cam_info *rtw_pattern)
{ … }
static int rtw89_wow_parse_patterns(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif,
struct cfg80211_wowlan *wowlan)
{ … }
static void rtw89_wow_pattern_clear_cam(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_pattern_write(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_pattern_clear(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_clear_wakeups(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_init_pno(struct rtw89_dev *rtwdev,
struct cfg80211_sched_scan_request *nd_config)
{ … }
static int rtw89_wow_set_wakeups(struct rtw89_dev *rtwdev,
struct cfg80211_wowlan *wowlan)
{ … }
static int rtw89_wow_cfg_wake_pno(struct rtw89_dev *rtwdev, bool wow)
{ … }
static int rtw89_wow_cfg_wake(struct rtw89_dev *rtwdev, bool wow)
{ … }
static int rtw89_wow_check_fw_status(struct rtw89_dev *rtwdev, bool wow_enable)
{ … }
static int rtw89_wow_swap_fw(struct rtw89_dev *rtwdev, bool wow)
{ … }
static int rtw89_wow_enable_trx_pre(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_wow_enable_trx_post(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_wow_disable_trx_pre(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_wow_disable_trx_post(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_fw_release_pno_pkt_list(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static int rtw89_pno_scan_update_probe_req(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static int rtw89_pno_scan_offload(struct rtw89_dev *rtwdev, bool enable)
{ … }
static int rtw89_wow_fw_start(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_wow_fw_stop(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_wow_enable(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_wow_disable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wow_restore_ps(struct rtw89_dev *rtwdev)
{ … }
int rtw89_wow_resume(struct rtw89_dev *rtwdev)
{ … }
int rtw89_wow_suspend(struct rtw89_dev *rtwdev, struct cfg80211_wowlan *wowlan)
{ … }