drivers/net/wireless/realtek/rtw89/phy.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtw89/phy.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/realtek/rtw89/phy.h- Extension
.h- Size
- 37448 bytes
- Lines
- 1256
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
core.h
Detected Declarations
struct rtw89_txpwr_byrate_cfgstruct rtw89_txpwr_track_cfgstruct rtw89_phy_dig_gain_cfgstruct rtw89_phy_dig_gain_tablestruct rtw89_phy_tssi_dbw_tablestruct rtw89_phy_reg3_tblstruct rtw89_nbi_reg_defstruct rtw89_ccx_regsstruct rtw89_physts_regsstruct rtw89_cfo_regsstruct rtw89_bb_wrap_regsstruct rtw89_txpwr_limit_axstruct rtw89_txpwr_limit_bestruct rtw89_txpwr_limit_ru_axstruct rtw89_txpwr_limit_ru_bestruct rtw89_txpwr_limit_large_mru_bestruct rtw89_phy_rfk_log_fmtstruct rtw89_bb_wrap_common_datastruct rtw89_bb_wrap_data_cim3kstruct rtw89_bb_wrap_common_data_gen3struct rtw89_bb_wrap_datastruct rtw89_phy_gen_defstruct rtw89_rfk_chan_descstruct rtw89_rfk_tblenum rtw89_phy_c2h_ra_funcenum rtw89_phy_c2h_rfk_log_funcenum rtw89_phy_c2h_rfk_report_funcenum rtw89_phy_c2h_dm_funcenum rtw89_phy_c2h_classenum rtw89_env_monitor_result_levelenum rtw89_ccx_unitenum rtw89_phy_status_ie_typeenum rtw89_phy_status_bitmapenum rtw89_dig_gain_typeenum rtw89_dig_gain_lna_idxenum rtw89_dig_gain_tia_idxenum rtw89_tssi_bandedge_cfgenum rtw89_tssi_sbw_idxenum rtw89_bandwidth_section_num_axenum rtw89_bandwidth_section_num_beenum rtw89_mdpd_onoffenum rtw89_oob_dpd_onoffenum rtw89_cim3k_onoffenum rtw89_cim3k_en_disenum rtw89_rfsi_ctrl_modulationenum rtw89_cfir_onoffenum rtw89_filter_onoffenum rtw89_rfk_flag
Annotated Snippet
struct rtw89_txpwr_byrate_cfg {
enum rtw89_band band;
enum rtw89_nss nss;
enum rtw89_rate_section rs;
u8 shf;
u8 len;
u32 data;
};
struct rtw89_txpwr_track_cfg {
const s8 (*delta_swingidx_6gb_n)[DELTA_SWINGIDX_SIZE];
const s8 (*delta_swingidx_6gb_p)[DELTA_SWINGIDX_SIZE];
const s8 (*delta_swingidx_6ga_n)[DELTA_SWINGIDX_SIZE];
const s8 (*delta_swingidx_6ga_p)[DELTA_SWINGIDX_SIZE];
const s8 (*delta_swingidx_5gb_n)[DELTA_SWINGIDX_SIZE];
const s8 (*delta_swingidx_5gb_p)[DELTA_SWINGIDX_SIZE];
const s8 (*delta_swingidx_5ga_n)[DELTA_SWINGIDX_SIZE];
const s8 (*delta_swingidx_5ga_p)[DELTA_SWINGIDX_SIZE];
const s8 *delta_swingidx_2gb_n;
const s8 *delta_swingidx_2gb_p;
const s8 *delta_swingidx_2ga_n;
const s8 *delta_swingidx_2ga_p;
const s8 *delta_swingidx_2g_cck_b_n;
const s8 *delta_swingidx_2g_cck_b_p;
const s8 *delta_swingidx_2g_cck_a_n;
const s8 *delta_swingidx_2g_cck_a_p;
};
struct rtw89_phy_dig_gain_cfg {
const struct rtw89_reg_def *table;
u8 size;
};
struct rtw89_phy_dig_gain_table {
const struct rtw89_phy_dig_gain_cfg *cfg_lna_g;
const struct rtw89_phy_dig_gain_cfg *cfg_tia_g;
const struct rtw89_phy_dig_gain_cfg *cfg_lna_a;
const struct rtw89_phy_dig_gain_cfg *cfg_tia_a;
};
struct rtw89_phy_tssi_dbw_table {
u32 data[RTW89_TSSI_CFG_NUM][RTW89_TSSI_SBW_NUM];
};
struct rtw89_phy_reg3_tbl {
const struct rtw89_reg3_def *reg3;
int size;
};
#define DECLARE_PHY_REG3_TBL(_name) \
const struct rtw89_phy_reg3_tbl _name ## _tbl = { \
.reg3 = _name, \
.size = ARRAY_SIZE(_name), \
}
struct rtw89_nbi_reg_def {
struct rtw89_reg_def notch1_idx;
struct rtw89_reg_def notch1_frac_idx;
struct rtw89_reg_def notch1_en;
struct rtw89_reg_def notch2_idx;
struct rtw89_reg_def notch2_frac_idx;
struct rtw89_reg_def notch2_en;
};
struct rtw89_ccx_regs {
u32 setting_addr;
u32 edcca_opt_mask;
u32 measurement_trig_mask;
u32 trig_opt_mask;
u32 en_mask;
u32 ifs_cnt_addr;
u32 ifs_clm_period_mask;
u32 ifs_clm_cnt_unit_mask;
u32 ifs_clm_cnt_clear_mask;
u32 ifs_collect_en_mask;
u32 ifs_t1_addr;
u32 ifs_t1_th_h_mask;
u32 ifs_t1_en_mask;
u32 ifs_t1_th_l_mask;
u32 ifs_t2_addr;
u32 ifs_t2_th_h_mask;
u32 ifs_t2_en_mask;
u32 ifs_t2_th_l_mask;
u32 ifs_t3_addr;
u32 ifs_t3_th_h_mask;
u32 ifs_t3_en_mask;
u32 ifs_t3_th_l_mask;
u32 ifs_t4_addr;
u32 ifs_t4_th_h_mask;
u32 ifs_t4_en_mask;
Annotation
- Immediate include surface: `core.h`.
- Detected declarations: `struct rtw89_txpwr_byrate_cfg`, `struct rtw89_txpwr_track_cfg`, `struct rtw89_phy_dig_gain_cfg`, `struct rtw89_phy_dig_gain_table`, `struct rtw89_phy_tssi_dbw_table`, `struct rtw89_phy_reg3_tbl`, `struct rtw89_nbi_reg_def`, `struct rtw89_ccx_regs`, `struct rtw89_physts_regs`, `struct rtw89_cfo_regs`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
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.