drivers/net/wireless/realtek/rtw88/rtw88xxa.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtw88/rtw88xxa.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/realtek/rtw88/rtw88xxa.h
Extension
.h
Size
5666 bytes
Lines
176
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 rtw8821au_efuse {
	u8 res4[48];			/* 0xd0 */
	u8 vid[2];			/* 0x100 */
	u8 pid[2];
	u8 res8[3];
	u8 mac_addr[ETH_ALEN];		/* 0x107 */
	u8 res9[243];
} __packed;

struct rtw8812au_efuse {
	u8 vid[2];			/* 0xd0 */
	u8 pid[2];			/* 0xd2 */
	u8 res0[3];
	u8 mac_addr[ETH_ALEN];		/* 0xd7 */
	u8 res1[291];
} __packed;

struct rtw88xxa_efuse {
	__le16 rtl_id;
	u8 res0[6];			/* 0x02 */
	u8 usb_mode;			/* 0x08 */
	u8 res1[7];			/* 0x09 */

	/* power index for four RF paths */
	struct rtw_txpwr_idx txpwr_idx_table[4];

	u8 channel_plan;		/* 0xb8 */
	u8 xtal_k;
	u8 thermal_meter;
	u8 iqk_lck;
	u8 pa_type;			/* 0xbc */
	u8 lna_type_2g;			/* 0xbd */
	u8 res2;
	u8 lna_type_5g;			/* 0xbf */
	u8 res3;
	u8 rf_board_option;		/* 0xc1 */
	u8 rf_feature_option;
	u8 rf_bt_setting;
	u8 eeprom_version;
	u8 eeprom_customer_id;		/* 0xc5 */
	u8 tx_bb_swing_setting_2g;
	u8 tx_bb_swing_setting_5g;
	u8 tx_pwr_calibrate_rate;
	u8 rf_antenna_option;		/* 0xc9 */
	u8 rfe_option;
	u8 country_code[2];
	u8 res4[3];
	union {
		struct rtw8821au_efuse rtw8821au;
		struct rtw8812au_efuse rtw8812au;
	};
} __packed;

static_assert(sizeof(struct rtw88xxa_efuse) == 512);

#define WLAN_BCN_DMA_TIME			0x02
#define WLAN_TBTT_PROHIBIT			0x04
#define WLAN_TBTT_HOLD_TIME			0x064
#define WLAN_TBTT_TIME	(WLAN_TBTT_PROHIBIT |\
			(WLAN_TBTT_HOLD_TIME << BIT_SHIFT_TBTT_HOLD_TIME_AP))

struct rtw_jaguar_phy_status_rpt {
	__le32 w0;
	__le32 w1;
	__le32 w2;
	__le32 w3;
	__le32 w4;
	__le32 w5;
	__le32 w6;
} __packed;

#define RTW_JGRPHY_W0_GAIN_A		GENMASK(6, 0)
#define RTW_JGRPHY_W0_TRSW_A		BIT(7)
#define RTW_JGRPHY_W0_GAIN_B		GENMASK(14, 8)
#define RTW_JGRPHY_W0_TRSW_B		BIT(15)
#define RTW_JGRPHY_W0_CHL_NUM		GENMASK(25, 16)
#define RTW_JGRPHY_W0_SUB_CHNL		GENMASK(29, 26)
#define RTW_JGRPHY_W0_R_RFMOD		GENMASK(31, 30)

/* CCK: */
#define RTW_JGRPHY_W1_SIG_QUAL		GENMASK(7, 0)
#define RTW_JGRPHY_W1_AGC_RPT_VGA_IDX	GENMASK(12, 8)
#define RTW_JGRPHY_W1_AGC_RPT_LNA_IDX	GENMASK(15, 13)
#define RTW_JGRPHY_W1_BB_POWER		GENMASK(23, 16)
/* OFDM: */
#define RTW_JGRPHY_W1_PWDB_ALL		GENMASK(7, 0)
#define RTW_JGRPHY_W1_CFO_SHORT_A	GENMASK(15, 8)	/* s8 */
#define RTW_JGRPHY_W1_CFO_SHORT_B	GENMASK(23, 16)	/* s8 */
#define RTW_JGRPHY_W1_BT_RF_CH_MSB	GENMASK(31, 30)

Annotation

Implementation Notes