#include <linux/etherdevice.h>
#include <linux/timekeeping.h>
#include "coredump.h"
#include "mt7996.h"
#include "../dma.h"
#include "mac.h"
#include "mcu.h"
#define to_rssi(field, rcpi) …
static const struct mt7996_dfs_radar_spec etsi_radar_specs = …;
static const struct mt7996_dfs_radar_spec fcc_radar_specs = …;
static const struct mt7996_dfs_radar_spec jp_radar_specs = …;
static struct mt76_wcid *mt7996_rx_get_wcid(struct mt7996_dev *dev,
u16 idx, bool unicast)
{ … }
bool mt7996_mac_wtbl_update(struct mt7996_dev *dev, int idx, u32 mask)
{ … }
u32 mt7996_mac_wtbl_lmac_addr(struct mt7996_dev *dev, u16 wcid, u8 dw)
{ … }
static void mt7996_mac_sta_poll(struct mt7996_dev *dev)
{ … }
void mt7996_mac_enable_rtscts(struct mt7996_dev *dev,
struct ieee80211_vif *vif, bool enable)
{ … }
static int mt7996_reverse_frag0_hdr_trans(struct sk_buff *skb, u16 hdr_gap)
{ … }
static int
mt7996_mac_fill_rx_rate(struct mt7996_dev *dev,
struct mt76_rx_status *status,
struct ieee80211_supported_band *sband,
__le32 *rxv, u8 *mode)
{ … }
static void
mt7996_wed_check_ppe(struct mt7996_dev *dev, struct mt76_queue *q,
struct mt7996_sta *msta, struct sk_buff *skb,
u32 info)
{ … }
static int
mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
struct sk_buff *skb, u32 *info)
{ … }
static void
mt7996_mac_write_txwi_8023(struct mt7996_dev *dev, __le32 *txwi,
struct sk_buff *skb, struct mt76_wcid *wcid)
{ … }
static void
mt7996_mac_write_txwi_80211(struct mt7996_dev *dev, __le32 *txwi,
struct sk_buff *skb, struct ieee80211_key_conf *key)
{ … }
void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
struct sk_buff *skb, struct mt76_wcid *wcid,
struct ieee80211_key_conf *key, int pid,
enum mt76_txq_id qid, u32 changed)
{ … }
int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
enum mt76_txq_id qid, struct mt76_wcid *wcid,
struct ieee80211_sta *sta,
struct mt76_tx_info *tx_info)
{ … }
u32 mt7996_wed_init_buf(void *ptr, dma_addr_t phys, int token_id)
{ … }
static void
mt7996_tx_check_aggr(struct ieee80211_sta *sta, struct sk_buff *skb)
{ … }
static void
mt7996_txwi_free(struct mt7996_dev *dev, struct mt76_txwi_cache *t,
struct ieee80211_sta *sta, struct list_head *free_list)
{ … }
static void
mt7996_mac_tx_free(struct mt7996_dev *dev, void *data, int len)
{ … }
static bool
mt7996_mac_add_txs_skb(struct mt7996_dev *dev, struct mt76_wcid *wcid,
int pid, __le32 *txs_data)
{ … }
static void mt7996_mac_add_txs(struct mt7996_dev *dev, void *data)
{ … }
bool mt7996_rx_check(struct mt76_dev *mdev, void *data, int len)
{ … }
void mt7996_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
struct sk_buff *skb, u32 *info)
{ … }
void mt7996_mac_cca_stats_reset(struct mt7996_phy *phy)
{ … }
void mt7996_mac_reset_counters(struct mt7996_phy *phy)
{ … }
void mt7996_mac_set_coverage_class(struct mt7996_phy *phy)
{ … }
void mt7996_mac_enable_nf(struct mt7996_dev *dev, u8 band)
{ … }
static u8
mt7996_phy_get_nf(struct mt7996_phy *phy, u8 band_idx)
{ … }
void mt7996_update_channel(struct mt76_phy *mphy)
{ … }
static bool
mt7996_wait_reset_state(struct mt7996_dev *dev, u32 state)
{ … }
static void
mt7996_update_vif_beacon(void *priv, u8 *mac, struct ieee80211_vif *vif)
{ … }
static void
mt7996_update_beacons(struct mt7996_dev *dev)
{ … }
void mt7996_tx_token_put(struct mt7996_dev *dev)
{ … }
static int
mt7996_mac_restart(struct mt7996_dev *dev)
{ … }
static void
mt7996_mac_full_reset(struct mt7996_dev *dev)
{ … }
void mt7996_mac_reset_work(struct work_struct *work)
{ … }
void mt7996_mac_dump_work(struct work_struct *work)
{ … }
void mt7996_reset(struct mt7996_dev *dev)
{ … }
void mt7996_mac_update_stats(struct mt7996_phy *phy)
{ … }
void mt7996_mac_sta_rc_work(struct work_struct *work)
{ … }
void mt7996_mac_work(struct work_struct *work)
{ … }
static void mt7996_dfs_stop_radar_detector(struct mt7996_phy *phy)
{ … }
static int mt7996_dfs_start_rdd(struct mt7996_dev *dev, int chain)
{ … }
static int mt7996_dfs_start_radar_detector(struct mt7996_phy *phy)
{ … }
static int
mt7996_dfs_init_radar_specs(struct mt7996_phy *phy)
{ … }
int mt7996_dfs_init_radar_detector(struct mt7996_phy *phy)
{ … }
static int
mt7996_mac_twt_duration_align(int duration)
{ … }
static u64
mt7996_mac_twt_sched_list_add(struct mt7996_dev *dev,
struct mt7996_twt_flow *flow)
{ … }
static int mt7996_mac_check_twt_req(struct ieee80211_twt_setup *twt)
{ … }
static bool
mt7996_mac_twt_param_equal(struct mt7996_sta *msta,
struct ieee80211_twt_params *twt_agrt)
{ … }
void mt7996_mac_add_twt_setup(struct ieee80211_hw *hw,
struct ieee80211_sta *sta,
struct ieee80211_twt_setup *twt)
{ … }
void mt7996_mac_twt_teardown_flow(struct mt7996_dev *dev,
struct mt7996_sta *msta,
u8 flowid)
{ … }