drivers/net/wireless/intel/iwlwifi/dvm/commands.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/dvm/commands.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/dvm/commands.h- Extension
.h- Size
- 130342 bytes
- Lines
- 3940
- 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
linux/ieee80211.hlinux/types.h
Detected Declarations
struct tx_power_dual_streamstruct iwlagn_tx_power_dbm_cmdstruct iwl_tx_ant_config_cmdstruct iwl_error_event_tablestruct iwl_alive_respstruct iwl_error_respstruct iwl_rxon_cmdstruct iwl_rxon_assoc_cmdstruct iwl_rxon_time_cmdstruct iwl5000_channel_switch_cmdstruct iwl6000_channel_switch_cmdstruct iwl_csa_notificationstruct iwl_ac_qosstruct iwl_qosparam_cmdstruct iwl_keyinfostruct sta_id_modifystruct iwl_addsta_cmdstruct iwl_add_sta_respstruct iwl_rem_sta_respstruct iwl_rem_sta_cmdstruct iwl_txfifo_flush_cmd_v3struct iwl_txfifo_flush_cmd_v2struct iwl_wep_keystruct iwl_wep_cmdstruct iwlagn_non_cfg_phystruct iwl_rx_phy_resstruct iwl_rx_mpdu_res_startstruct iwl_dram_scratchstruct iwl_tx_cmdstruct agg_tx_statusstruct iwlagn_tx_respstruct iwl_compressed_ba_respstruct iwl_link_qual_general_paramsstruct iwl_link_qual_agg_paramsstruct iwl_link_quality_cmdstruct iwl_bt_cmdstruct iwl_basic_bt_cmdstruct iwl_bt_cmd_v1struct iwl_bt_cmd_v2struct iwlagn_bt_sco_cmdstruct iwl_measure_channelstruct iwl_spectrum_cmdstruct iwl_spectrum_respstruct iwl_measurement_histogramstruct iwl_measurement_cca_countersstruct iwl_spectrum_notificationstruct iwl_powertable_cmdstruct iwl_sleep_notification
Annotated Snippet
struct tx_power_dual_stream {
__le32 dw;
} __packed;
/*
* Command REPLY_TX_POWER_DBM_CMD = 0x98
* struct iwlagn_tx_power_dbm_cmd
*/
#define IWLAGN_TX_POWER_AUTO 0x7f
#define IWLAGN_TX_POWER_NO_CLOSED (0x1 << 6)
struct iwlagn_tx_power_dbm_cmd {
s8 global_lmt; /*in half-dBm (e.g. 30 = 15 dBm) */
u8 flags;
s8 srv_chan_lmt; /*in half-dBm (e.g. 30 = 15 dBm) */
u8 reserved;
} __packed;
/*
* Command TX_ANT_CONFIGURATION_CMD = 0x98
* This command is used to configure valid Tx antenna.
* By default uCode concludes the valid antenna according to the radio flavor.
* This command enables the driver to override/modify this conclusion.
*/
struct iwl_tx_ant_config_cmd {
__le32 valid;
} __packed;
/******************************************************************************
* (0a)
* Alive and Error Commands & Responses:
*
*****************************************************************************/
#define UCODE_VALID_OK cpu_to_le32(0x1)
/*
* REPLY_ALIVE = 0x1 (response only, not a command)
*
* uCode issues this "alive" notification once the runtime image is ready
* to receive commands from the driver. This is the *second* "alive"
* notification that the driver will receive after rebooting uCode;
* this "alive" is indicated by subtype field != 9.
*
* See comments documenting "BSM" (bootstrap state machine).
*
* This response includes two pointers to structures within the device's
* data SRAM (access via HBUS_TARG_MEM_* regs) that are useful for debugging:
*
* 1) log_event_table_ptr indicates base of the event log. This traces
* a 256-entry history of uCode execution within a circular buffer.
* Its header format is:
*
* __le32 log_size; log capacity (in number of entries)
* __le32 type; (1) timestamp with each entry, (0) no timestamp
* __le32 wraps; # times uCode has wrapped to top of circular buffer
* __le32 write_index; next circular buffer entry that uCode would fill
*
* The header is followed by the circular buffer of log entries. Entries
* with timestamps have the following format:
*
* __le32 event_id; range 0 - 1500
* __le32 timestamp; low 32 bits of TSF (of network, if associated)
* __le32 data; event_id-specific data value
*
* Entries without timestamps contain only event_id and data.
*
*
* 2) error_event_table_ptr indicates base of the error log. This contains
* information about any uCode error that occurs. For agn, the format
* of the error log is defined by struct iwl_error_event_table.
*
* The Linux driver can print both logs to the system log when a uCode error
* occurs.
*/
/*
* Note: This structure is read from the device with IO accesses,
* and the reading already does the endian conversion. As it is
* read with u32-sized accesses, any members with a different size
* need to be ordered correctly though!
*/
struct iwl_error_event_table {
u32 valid; /* (nonzero) valid, (0) log is empty */
u32 error_id; /* type of error */
u32 pc; /* program counter */
u32 blink1; /* branch link */
u32 blink2; /* branch link */
u32 ilink1; /* interrupt link */
u32 ilink2; /* interrupt link */
Annotation
- Immediate include surface: `linux/ieee80211.h`, `linux/types.h`.
- Detected declarations: `struct tx_power_dual_stream`, `struct iwlagn_tx_power_dbm_cmd`, `struct iwl_tx_ant_config_cmd`, `struct iwl_error_event_table`, `struct iwl_alive_resp`, `struct iwl_error_resp`, `struct iwl_rxon_cmd`, `struct iwl_rxon_assoc_cmd`, `struct iwl_rxon_time_cmd`, `struct iwl5000_channel_switch_cmd`.
- 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.