#include <linux/firmware.h>
#include "mt76_connac2_mac.h"
#include "mt76_connac_mcu.h"
int mt76_connac_mcu_start_firmware(struct mt76_dev *dev, u32 addr, u32 option)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_patch_sem_ctrl(struct mt76_dev *dev, bool get)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_start_patch(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
#define MCU_PATCH_ADDRESS …
int mt76_connac_mcu_init_download(struct mt76_dev *dev, u32 addr, u32 len,
u32 mode)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_set_channel_domain(struct mt76_phy *phy)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_set_mac_enable(struct mt76_dev *dev, int band, bool enable,
bool hdr_trans)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_set_vif_ps(struct mt76_dev *dev, struct ieee80211_vif *vif)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_set_rts_thresh(struct mt76_dev *dev, u32 val, u8 band)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_beacon_loss_iter(void *priv, u8 *mac,
struct ieee80211_vif *vif)
{ … }
EXPORT_SYMBOL_GPL(…);
struct tlv *
mt76_connac_mcu_add_nested_tlv(struct sk_buff *skb, int tag, int len,
void *sta_ntlv, void *sta_wtbl)
{ … }
EXPORT_SYMBOL_GPL(…);
struct sk_buff *
__mt76_connac_mcu_alloc_sta_req(struct mt76_dev *dev, struct mt76_vif *mvif,
struct mt76_wcid *wcid, int len)
{ … }
EXPORT_SYMBOL_GPL(…);
struct wtbl_req_hdr *
mt76_connac_mcu_alloc_wtbl_req(struct mt76_dev *dev, struct mt76_wcid *wcid,
int cmd, void *sta_wtbl, struct sk_buff **skb)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_bss_omac_tlv(struct sk_buff *skb,
struct ieee80211_vif *vif)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
struct ieee80211_vif *vif,
struct ieee80211_link_sta *link_sta,
bool enable, bool newly)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_sta_uapsd(struct sk_buff *skb, struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_wtbl_hdr_trans_tlv(struct sk_buff *skb,
struct ieee80211_vif *vif,
struct mt76_wcid *wcid,
void *sta_wtbl, void *wtbl_tlv)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_sta_update_hdr_trans(struct mt76_dev *dev,
struct ieee80211_vif *vif,
struct mt76_wcid *wcid, int cmd)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_wtbl_update_hdr_trans(struct mt76_dev *dev,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_wtbl_generic_tlv(struct mt76_dev *dev,
struct sk_buff *skb,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
void *sta_wtbl, void *wtbl_tlv)
{ … }
EXPORT_SYMBOL_GPL(…);
static void
mt76_connac_mcu_sta_amsdu_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
struct ieee80211_vif *vif)
{ … }
#define HE_PHY(p, c) …
#define HE_MAC(m, c) …
static void
mt76_connac_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
{ … }
void
mt76_connac_mcu_sta_he_tlv_v2(struct sk_buff *skb, struct ieee80211_sta *sta)
{ … }
EXPORT_SYMBOL_GPL(…);
u8
mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
enum nl80211_band band,
struct ieee80211_link_sta *link_sta)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
struct ieee80211_sta *sta,
struct ieee80211_vif *vif,
u8 rcpi, u8 sta_state)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_wtbl_smps_tlv(struct sk_buff *skb,
struct ieee80211_sta *sta,
void *sta_wtbl, void *wtbl_tlv)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_wtbl_ht_tlv(struct mt76_dev *dev, struct sk_buff *skb,
struct ieee80211_sta *sta, void *sta_wtbl,
void *wtbl_tlv, bool ht_ldpc, bool vht_ldpc)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_sta_cmd(struct mt76_phy *phy,
struct mt76_sta_cmd_info *info)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_wtbl_ba_tlv(struct mt76_dev *dev, struct sk_buff *skb,
struct ieee80211_ampdu_params *params,
bool enable, bool tx, void *sta_wtbl,
void *wtbl_tlv)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_uni_add_dev(struct mt76_phy *phy,
struct ieee80211_bss_conf *bss_conf,
struct mt76_wcid *wcid,
bool enable)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_sta_ba_tlv(struct sk_buff *skb,
struct ieee80211_ampdu_params *params,
bool enable, bool tx)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_sta_wed_update(struct mt76_dev *dev, struct sk_buff *skb)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
struct ieee80211_ampdu_params *params,
int cmd, bool enable, bool tx)
{ … }
EXPORT_SYMBOL_GPL(…);
u8 mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
enum nl80211_band band,
struct ieee80211_link_sta *link_sta)
{ … }
EXPORT_SYMBOL_GPL(…);
u8 mt76_connac_get_phy_mode_ext(struct mt76_phy *phy, struct ieee80211_vif *vif,
enum nl80211_band band)
{ … }
EXPORT_SYMBOL_GPL(…);
const struct ieee80211_sta_he_cap *
mt76_connac_get_he_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif)
{ … }
EXPORT_SYMBOL_GPL(…);
const struct ieee80211_sta_eht_cap *
mt76_connac_get_eht_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif)
{ … }
EXPORT_SYMBOL_GPL(…);
#define DEFAULT_HE_PE_DURATION …
#define DEFAULT_HE_DURATION_RTS_THRES …
static void
mt76_connac_mcu_uni_bss_he_tlv(struct mt76_phy *phy, struct ieee80211_vif *vif,
struct tlv *tlv)
{ … }
int mt76_connac_mcu_uni_set_chctx(struct mt76_phy *phy, struct mt76_vif *mvif,
struct ieee80211_chanctx_conf *ctx)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
struct ieee80211_vif *vif,
struct mt76_wcid *wcid,
bool enable,
struct ieee80211_chanctx_conf *ctx)
{ … }
EXPORT_SYMBOL_GPL(…);
#define MT76_CONNAC_SCAN_CHANNEL_TIME …
int mt76_connac_mcu_hw_scan(struct mt76_phy *phy, struct ieee80211_vif *vif,
struct ieee80211_scan_request *scan_req)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_cancel_hw_scan(struct mt76_phy *phy,
struct ieee80211_vif *vif)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_sched_scan_req(struct mt76_phy *phy,
struct ieee80211_vif *vif,
struct cfg80211_sched_scan_request *sreq)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_sched_scan_enable(struct mt76_phy *phy,
struct ieee80211_vif *vif,
bool enable)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_chip_config(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_set_deep_sleep(struct mt76_dev *dev, bool enable)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_sta_state_dp(struct mt76_dev *dev,
enum ieee80211_sta_state old_state,
enum ieee80211_sta_state new_state)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_coredump_event(struct mt76_dev *dev, struct sk_buff *skb,
struct mt76_connac_coredump *coredump)
{ … }
EXPORT_SYMBOL_GPL(…);
static void
mt76_connac_mcu_build_sku(struct mt76_dev *dev, s8 *sku,
struct mt76_power_limits *limits,
enum nl80211_band band)
{ … }
s8 mt76_connac_get_ch_power(struct mt76_phy *phy,
struct ieee80211_channel *chan,
s8 target_power)
{ … }
EXPORT_SYMBOL_GPL(…);
static int
mt76_connac_mcu_rate_txpower_band(struct mt76_phy *phy,
enum nl80211_band band)
{ … }
int mt76_connac_mcu_set_rate_txpower(struct mt76_phy *phy)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_update_arp_filter(struct mt76_dev *dev,
struct mt76_vif *vif,
struct ieee80211_bss_conf *info)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_set_p2p_oppps(struct ieee80211_hw *hw,
struct ieee80211_vif *vif)
{ … }
EXPORT_SYMBOL_GPL(…);
#ifdef CONFIG_PM
const struct wiphy_wowlan_support mt76_connac_wowlan_support = …;
EXPORT_SYMBOL_GPL(…);
static void
mt76_connac_mcu_key_iter(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key,
void *data)
{ … }
int mt76_connac_mcu_update_gtk_rekey(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct cfg80211_gtk_rekey_data *key)
{ … }
EXPORT_SYMBOL_GPL(…);
static int
mt76_connac_mcu_set_arp_filter(struct mt76_dev *dev, struct ieee80211_vif *vif,
bool suspend)
{ … }
int
mt76_connac_mcu_set_gtk_rekey(struct mt76_dev *dev, struct ieee80211_vif *vif,
bool suspend)
{ … }
EXPORT_SYMBOL_GPL(…);
int
mt76_connac_mcu_set_suspend_mode(struct mt76_dev *dev,
struct ieee80211_vif *vif,
bool enable, u8 mdtim,
bool wow_suspend)
{ … }
EXPORT_SYMBOL_GPL(…);
static int
mt76_connac_mcu_set_wow_pattern(struct mt76_dev *dev,
struct ieee80211_vif *vif,
u8 index, bool enable,
struct cfg80211_pkt_pattern *pattern)
{ … }
int
mt76_connac_mcu_set_wow_ctrl(struct mt76_phy *phy, struct ieee80211_vif *vif,
bool suspend, struct cfg80211_wowlan *wowlan)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_set_hif_suspend(struct mt76_dev *dev, bool suspend)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_set_suspend_iter(void *priv, u8 *mac,
struct ieee80211_vif *vif)
{ … }
EXPORT_SYMBOL_GPL(…);
#endif
u32 mt76_connac_mcu_reg_rr(struct mt76_dev *dev, u32 offset)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76_connac_mcu_reg_wr(struct mt76_dev *dev, u32 offset, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
static int
mt76_connac_mcu_sta_key_tlv(struct mt76_connac_sta_key_conf *sta_key_conf,
struct sk_buff *skb,
struct ieee80211_key_conf *key,
enum set_key_cmd cmd)
{ … }
int mt76_connac_mcu_add_key(struct mt76_dev *dev, struct ieee80211_vif *vif,
struct mt76_connac_sta_key_conf *sta_key_conf,
struct ieee80211_key_conf *key, int mcu_cmd,
struct mt76_wcid *wcid, enum set_key_cmd cmd)
{ … }
EXPORT_SYMBOL_GPL(…);
#define BCN_TX_ESTIMATE_TIME …
void mt76_connac_mcu_bss_ext_tlv(struct sk_buff *skb, struct mt76_vif *mvif)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_bss_basic_tlv(struct sk_buff *skb,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct mt76_phy *phy, u16 wlan_idx,
bool enable)
{ … }
EXPORT_SYMBOL_GPL(…);
#define ENTER_PM_STATE …
#define EXIT_PM_STATE …
int mt76_connac_mcu_set_pm(struct mt76_dev *dev, int band, int enter)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_restart(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac_mcu_rdd_cmd(struct mt76_dev *dev, int cmd, u8 index,
u8 rx_sel, u8 val)
{ … }
EXPORT_SYMBOL_GPL(…);
static int
mt76_connac_mcu_send_ram_firmware(struct mt76_dev *dev,
const struct mt76_connac2_fw_trailer *hdr,
const u8 *data, bool is_wa)
{ … }
int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
const char *fw_wa)
{ … }
EXPORT_SYMBOL_GPL(…);
static u32 mt76_connac2_get_data_mode(struct mt76_dev *dev, u32 info)
{ … }
int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76_connac2_mcu_fill_message(struct mt76_dev *dev, struct sk_buff *skb,
int cmd, int *wait_seq)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;