drivers/net/wireless/mediatek/mt76/mt792x.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/mediatek/mt76/mt792x.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/mediatek/mt76/mt792x.h
Extension
.h
Size
16647 bytes
Lines
578
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct mt792x_realease_info {
	__le16 len;
	u8 pad_len;
	u8 tag;
} __packed;

struct mt792x_fw_features {
	u8 segment;
	u8 data;
	u8 rsv[14];
} __packed;

enum {
	MT792x_CLC_POWER,
	MT792x_CLC_POWER_EXT,
	MT792x_CLC_BE_CTRL,
	MT792x_CLC_MAX_NUM,
};

enum mt792x_reg_power_type {
	MT_AP_UNSET = 0,
	MT_AP_DEFAULT,
	MT_AP_LPI,
	MT_AP_SP,
	MT_AP_VLP,
};

enum mt792x_mlo_pm_state {
	MT792x_MLO_LINK_DISASSOC,
	MT792x_MLO_LINK_ASSOC,
	MT792x_MLO_CHANGED_PS_PENDING,
	MT792x_MLO_CHANGED_PS,
};

DECLARE_EWMA(avg_signal, 10, 8)

struct mt792x_link_sta {
	struct mt76_wcid wcid; /* must be first */
	struct rcu_head rcu_head;

	u32 airtime_ac[8];

	int ack_signal;
	struct ewma_avg_signal avg_ack_signal;

	unsigned long last_txs;

	struct mt76_connac_sta_key_conf bip;

	struct mt792x_sta *sta;

	struct ieee80211_link_sta *pri_link;
};

struct mt792x_sta {
	struct mt792x_link_sta deflink; /* must be first */
	struct mt792x_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];

	struct mt792x_vif *vif;

	u16 valid_links;
	u8 deflink_id;
};

DECLARE_EWMA(rssi, 10, 8);

struct mt792x_chanctx {
	struct mt792x_bss_conf *bss_conf;
};

struct mt792x_bss_conf {
	struct mt76_vif_link mt76; /* must be first */
	struct mt792x_vif *vif;
	struct ewma_rssi rssi;
	struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS];
	unsigned int link_id;
};

struct mt792x_vif {
	struct mt792x_bss_conf bss_conf; /* must be first */
	struct mt792x_bss_conf __rcu *link_conf[IEEE80211_MLD_MAX_NUM_LINKS];

	struct mt792x_sta sta;
	struct mt792x_sta *wep_sta;

	struct mt792x_phy *phy;
	u16 valid_links;
	u8 deflink_id;
	enum mt792x_mlo_pm_state mlo_pm_state;

Annotation

Implementation Notes