drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_int.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_int.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_int.h- Extension
.h- Size
- 28206 bytes
- Lines
- 1114
- 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
types.hbrcmu_utils.hbrcmu_wifi.h
Detected Declarations
struct phy_shim_infostruct brcms_phy_srom_femstruct phy_table_infostruct phytbl_infostruct interference_infostruct aci_save_gphystruct lo_complex_abgphy_infostruct nphy_iq_compstruct nphy_txpwrindexstruct txiqcal_cachestruct nphy_pwrctrlstruct nphy_txgainsstruct nphy_noisevar_bufstruct rssical_cachestruct lcnphy_cal_resultsstruct shared_phystruct brcms_phy_pubstruct phy_func_ptrstruct brcms_phystruct cs32struct radio_regsstruct radio_20xx_regsstruct lcnphy_radio_regsstruct phy_iq_estenum phy_cal_mode
Annotated Snippet
struct brcms_phy_srom_fem {
/* TSSI positive slope, 1: positive, 0: negative */
u8 tssipos;
/* Ext PA gain-type: full-gain: 0, pa-lite: 1, no_pa: 2 */
u8 extpagain;
/* support 32 combinations of different Pdet dynamic ranges */
u8 pdetrange;
/* TR switch isolation */
u8 triso;
/* antswctrl lookup table configuration: 32 possible choices */
u8 antswctrllut;
};
#define ISNPHY(pi) PHYTYPE_IS((pi)->pubpi.phy_type, PHY_TYPE_N)
#define ISLCNPHY(pi) PHYTYPE_IS((pi)->pubpi.phy_type, PHY_TYPE_LCN)
#define PHY_GET_RFATTN(rfgain) ((rfgain) & 0x0f)
#define PHY_GET_PADMIX(rfgain) (((rfgain) & 0x10) >> 4)
#define PHY_GET_RFGAINID(rfattn, padmix, width) ((rfattn) + ((padmix)*(width)))
#define PHY_SAT(x, n) ((x) > ((1<<((n)-1))-1) ? ((1<<((n)-1))-1) : \
((x) < -(1<<((n)-1)) ? -(1<<((n)-1)) : (x)))
#define PHY_SHIFT_ROUND(x, n) ((x) >= 0 ? ((x)+(1<<((n)-1)))>>(n) : (x)>>(n))
#define PHY_HW_ROUND(x, s) ((x >> s) + ((x >> (s-1)) & (s != 0)))
#define CH_5G_GROUP 3
#define A_LOW_CHANS 0
#define A_MID_CHANS 1
#define A_HIGH_CHANS 2
#define CH_2G_GROUP 1
#define G_ALL_CHANS 0
#define FIRST_REF5_CHANNUM 149
#define LAST_REF5_CHANNUM 165
#define FIRST_5G_CHAN 14
#define LAST_5G_CHAN 50
#define FIRST_MID_5G_CHAN 14
#define LAST_MID_5G_CHAN 35
#define FIRST_HIGH_5G_CHAN 36
#define LAST_HIGH_5G_CHAN 41
#define FIRST_LOW_5G_CHAN 42
#define LAST_LOW_5G_CHAN 50
#define BASE_LOW_5G_CHAN 4900
#define BASE_MID_5G_CHAN 5100
#define BASE_HIGH_5G_CHAN 5500
#define CHAN5G_FREQ(chan) (5000 + chan*5)
#define CHAN2G_FREQ(chan) (2407 + chan*5)
#define TXP_FIRST_CCK 0
#define TXP_LAST_CCK 3
#define TXP_FIRST_OFDM 4
#define TXP_LAST_OFDM 11
#define TXP_FIRST_OFDM_20_CDD 12
#define TXP_LAST_OFDM_20_CDD 19
#define TXP_FIRST_MCS_20_SISO 20
#define TXP_LAST_MCS_20_SISO 27
#define TXP_FIRST_MCS_20_CDD 28
#define TXP_LAST_MCS_20_CDD 35
#define TXP_FIRST_MCS_20_STBC 36
#define TXP_LAST_MCS_20_STBC 43
#define TXP_FIRST_MCS_20_SDM 44
#define TXP_LAST_MCS_20_SDM 51
#define TXP_FIRST_OFDM_40_SISO 52
#define TXP_LAST_OFDM_40_SISO 59
#define TXP_FIRST_OFDM_40_CDD 60
#define TXP_LAST_OFDM_40_CDD 67
#define TXP_FIRST_MCS_40_SISO 68
#define TXP_LAST_MCS_40_SISO 75
#define TXP_FIRST_MCS_40_CDD 76
#define TXP_LAST_MCS_40_CDD 83
#define TXP_FIRST_MCS_40_STBC 84
#define TXP_LAST_MCS_40_STBC 91
#define TXP_FIRST_MCS_40_SDM 92
#define TXP_LAST_MCS_40_SDM 99
#define TXP_MCS_32 100
#define TXP_NUM_RATES 101
#define ADJ_PWR_TBL_LEN 84
#define TXP_FIRST_SISO_MCS_20 20
#define TXP_LAST_SISO_MCS_20 27
#define PHY_CORE_NUM_1 1
#define PHY_CORE_NUM_2 2
#define PHY_CORE_NUM_3 3
#define PHY_CORE_NUM_4 4
#define PHY_CORE_MAX PHY_CORE_NUM_4
#define PHY_CORE_0 0
#define PHY_CORE_1 1
#define PHY_CORE_2 2
Annotation
- Immediate include surface: `types.h`, `brcmu_utils.h`, `brcmu_wifi.h`.
- Detected declarations: `struct phy_shim_info`, `struct brcms_phy_srom_fem`, `struct phy_table_info`, `struct phytbl_info`, `struct interference_info`, `struct aci_save_gphy`, `struct lo_complex_abgphy_info`, `struct nphy_iq_comp`, `struct nphy_txpwrindex`, `struct txiqcal_cache`.
- 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.