drivers/net/wireless/intel/iwlwifi/fw/regulatory.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/fw/regulatory.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/fw/regulatory.h- Extension
.h- Size
- 7130 bytes
- Lines
- 265
- 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
fw/img.hfw/api/commands.hfw/api/power.hfw/api/phy.hfw/api/config.hfw/api/nvm-reg.hiwl-trans.h
Detected Declarations
struct iwl_tas_selection_datastruct iwl_sar_profile_chainstruct iwl_sar_profilestruct iwl_geo_profile_bandstruct iwl_geo_profilestruct iwl_ppag_chainstruct iwl_tas_datastruct iwl_fw_runtimeenum iwl_dsm_funcsenum iwl_dsm_values_srdenum iwl_dsm_values_indonesiaenum iwl_dsm_unii4_bitmapenum iwl_dsm_values_rfienum iwl_dsm_masks_regfunction iwl_bios_get_ppag_flagsfunction iwl_bios_setup_step
Annotated Snippet
struct iwl_tas_selection_data {
u8 override_tas_iec:1,
enable_tas_iec:1,
usa_tas_uhb_allowed:1,
canada_tas_uhb_allowed:1;
};
#define BIOS_MCC_CHINA 0x434e
/*
* The profile for revision 2 is a superset of revision 1, which is in
* turn a superset of revision 0. So we can store all revisions
* inside revision 2, which is what we represent here.
*/
/*
* struct iwl_sar_profile_chain - per-chain values of a SAR profile
* @subbands: the SAR value for each subband
*/
struct iwl_sar_profile_chain {
u8 subbands[BIOS_SAR_MAX_SUB_BANDS_NUM];
};
/*
* struct iwl_sar_profile - SAR profile from SAR tables
* @enabled: whether the profile is enabled or not
* @chains: per-chain SAR values
*/
struct iwl_sar_profile {
bool enabled;
struct iwl_sar_profile_chain chains[BIOS_SAR_MAX_CHAINS_PER_PROFILE];
};
/* Same thing as with SAR, all revisions fit in revision 2 */
/*
* struct iwl_geo_profile_band - per-band geo SAR offsets
* @max: the max tx power allowed for the band
* @chains: SAR offsets values for each chain
*/
struct iwl_geo_profile_band {
u8 max;
u8 chains[BIOS_GEO_NUM_CHAINS];
};
/*
* struct iwl_geo_profile - geo profile
* @bands: per-band table of the SAR offsets
*/
struct iwl_geo_profile {
struct iwl_geo_profile_band bands[BIOS_GEO_MAX_NUM_BANDS];
};
/* Same thing as with SAR, all revisions fit in revision 2 */
struct iwl_ppag_chain {
s8 subbands[BIOS_PPAG_MAX_SUB_BANDS_NUM];
};
struct iwl_tas_data {
u8 block_list_size;
u16 block_list_array[IWL_WTAS_BLACK_LIST_MAX];
u8 table_source;
u8 table_revision;
u32 tas_selection;
};
/* For DSM revision 0 and 4 */
enum iwl_dsm_funcs {
DSM_FUNC_QUERY = 0,
DSM_FUNC_DISABLE_SRD = 1,
DSM_FUNC_ENABLE_INDONESIA_5G2 = 2,
DSM_FUNC_ENABLE_6E = 3,
DSM_FUNC_REGULATORY_CONFIG = 4,
DSM_FUNC_11AX_ENABLEMENT = 6,
DSM_FUNC_ENABLE_UNII4_CHAN = 7,
DSM_FUNC_ACTIVATE_CHANNEL = 8,
DSM_FUNC_FORCE_DISABLE_CHANNELS = 9,
DSM_FUNC_ENERGY_DETECTION_THRESHOLD = 10,
DSM_FUNC_RFI_CONFIG = 11,
DSM_FUNC_ENABLE_11BE = 12,
DSM_FUNC_ENABLE_11BN = 13,
DSM_FUNC_ENABLE_UNII_9 = 14,
DSM_FUNC_NUM_FUNCS,
};
enum iwl_dsm_values_srd {
DSM_VALUE_SRD_ACTIVE,
DSM_VALUE_SRD_PASSIVE,
DSM_VALUE_SRD_DISABLE,
DSM_VALUE_SRD_MAX
Annotation
- Immediate include surface: `fw/img.h`, `fw/api/commands.h`, `fw/api/power.h`, `fw/api/phy.h`, `fw/api/config.h`, `fw/api/nvm-reg.h`, `iwl-trans.h`.
- Detected declarations: `struct iwl_tas_selection_data`, `struct iwl_sar_profile_chain`, `struct iwl_sar_profile`, `struct iwl_geo_profile_band`, `struct iwl_geo_profile`, `struct iwl_ppag_chain`, `struct iwl_tas_data`, `struct iwl_fw_runtime`, `enum iwl_dsm_funcs`, `enum iwl_dsm_values_srd`.
- 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.