drivers/net/wireless/realtek/rtw89/core.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtw89/core.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/realtek/rtw89/core.h- Extension
.h- Size
- 204305 bytes
- Lines
- 8221
- 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.
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/average.hlinux/bitfield.hlinux/dmi.hlinux/firmware.hlinux/iopoll.hlinux/workqueue.hnet/mac80211.h
Detected Declarations
struct rtw89_devstruct rtw89_pci_infostruct rtw89_usb_infostruct rtw89_mac_gen_defstruct rtw89_phy_gen_defstruct rtw89_fw_blackliststruct rtw89_efuse_block_cfgstruct rtw89_h2c_rf_tssistruct rtw89_fw_txpwr_track_cfgstruct rtw89_phy_rfk_log_fmtstruct rtw89_phy_calc_efuse_gainstruct rtw89_phy_sts_ie10struct rtw89_debugfsstruct rtw89_regd_datastruct rtw89_wow_cam_infostruct rtw89_bb_wrap_datastruct rtw89_fw_cmd_ofld_infostruct rtw89_reg_6ghz_tpestruct rtw89_txpwr_byratestruct rtw89_rate_descstruct rtw89_rx_phy_ppdustruct rtw89_chanstruct rtw89_chan_rcdstruct rtw89_channel_help_paramsstruct rtw89_port_regstruct rtw89_txwd_bodystruct rtw89_txwd_body_v1struct rtw89_txwd_body_v2struct rtw89_txwd_infostruct rtw89_txwd_info_v2struct rtw89_rx_desc_infostruct rtw89_rxdesc_shortstruct rtw89_rxdesc_short_v2struct rtw89_rxdesc_short_v3struct rtw89_rxdesc_longstruct rtw89_rxdesc_long_v2struct rtw89_rxdesc_long_v3struct rtw89_rxdesc_phy_rpt_v2struct rtw89_tx_desc_infostruct rtw89_core_tx_requeststruct rtw89_txqstruct rtw89_mac_ax_gntstruct rtw89_mac_ax_wl_actstruct rtw89_mac_ax_coex_gntstruct rtw89_btc_ant_infostruct rtw89_btc_ant_info_v7struct rtw89_btc_wl_smapstruct rtw89_traffic_stats
Annotated Snippet
struct rtw89_reg_6ghz_tpe {
bool valid;
s8 constraint; /* unit: dBm */
};
enum rtw89_fw_pkt_ofld_type {
RTW89_PKT_OFLD_TYPE_PROBE_RSP = 0,
RTW89_PKT_OFLD_TYPE_PS_POLL = 1,
RTW89_PKT_OFLD_TYPE_NULL_DATA = 2,
RTW89_PKT_OFLD_TYPE_QOS_NULL = 3,
RTW89_PKT_OFLD_TYPE_CTS2SELF = 4,
RTW89_PKT_OFLD_TYPE_ARP_RSP = 5,
RTW89_PKT_OFLD_TYPE_NDP = 6,
RTW89_PKT_OFLD_TYPE_EAPOL_KEY = 7,
RTW89_PKT_OFLD_TYPE_SA_QUERY = 8,
RTW89_PKT_OFLD_TYPE_PROBE_REQ = 12,
RTW89_PKT_OFLD_TYPE_NUM,
};
struct rtw89_txpwr_byrate {
s8 cck[RTW89_RATE_CCK_NUM];
s8 ofdm[RTW89_RATE_OFDM_NUM];
s8 mcs[RTW89_OFDMA_NUM][RTW89_NSS_NUM][__RTW89_RATE_MCS_NUM];
s8 hedcm[RTW89_OFDMA_NUM][RTW89_NSS_HEDCM_NUM][RTW89_RATE_HEDCM_NUM];
s8 offset[__RTW89_RATE_OFFSET_NUM];
s8 trap;
};
struct rtw89_rate_desc {
enum rtw89_nss nss;
enum rtw89_rate_section rs;
enum rtw89_ofdma_type ofdma;
u8 idx;
};
#define PHY_STS_HDR_LEN 8
#define RF_PATH_MAX 4
#define RTW89_MAX_PPDU_CNT 8
struct rtw89_rx_phy_ppdu {
void *buf;
u32 len;
u8 rssi_avg;
u8 rssi[RF_PATH_MAX];
u8 mac_id;
u8 chan_idx;
u8 phy_idx;
u8 ie; /* enum rtw89_phy_status_bitmap */
u16 rate;
u8 rpl_avg;
u8 rpl_path[RF_PATH_MAX];
u8 rpl_fd[RF_PATH_MAX];
u8 bw_idx;
u8 rx_path_en;
struct {
bool has;
u8 avg_snr;
u8 evm_max;
u8 evm_min;
} ofdm;
bool has_data;
bool has_bcn;
bool su;
bool ldpc;
bool stbc;
bool bf;
bool to_self;
bool valid;
bool hdr_2_en;
const union rtw89_phy_sts_ie09 *ie09; /* SIG-A */
const struct rtw89_phy_sts_ie10 *ie10; /* SIG-B */
};
enum rtw89_mac_idx {
RTW89_MAC_0 = 0,
RTW89_MAC_1 = 1,
RTW89_MAC_NUM,
};
enum rtw89_phy_idx {
RTW89_PHY_0 = 0,
RTW89_PHY_1 = 1,
RTW89_PHY_NUM,
};
enum rtw89_fbtc_bt_index {
BTC_BT_1ST = 0x0,
BTC_BT_2ND = 0x1,
BTC_BT_EXT = 0x2,
BTC_ALL_BT = 0x2,
BTC_ALL_BT_EZL = 0x3 /* BT0+BT1+Ext-ZB(or Thread, or LTE) */
Annotation
- Immediate include surface: `linux/average.h`, `linux/bitfield.h`, `linux/dmi.h`, `linux/firmware.h`, `linux/iopoll.h`, `linux/workqueue.h`, `net/mac80211.h`.
- Detected declarations: `struct rtw89_dev`, `struct rtw89_pci_info`, `struct rtw89_usb_info`, `struct rtw89_mac_gen_def`, `struct rtw89_phy_gen_def`, `struct rtw89_fw_blacklist`, `struct rtw89_efuse_block_cfg`, `struct rtw89_h2c_rf_tssi`, `struct rtw89_fw_txpwr_track_cfg`, `struct rtw89_phy_rfk_log_fmt`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.