drivers/net/wireless/ath/carl9170/fwcmd.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/carl9170/fwcmd.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/carl9170/fwcmd.h- Extension
.h- Size
- 8836 bytes
- Lines
- 335
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct carl9170_set_key_cmdstruct carl9170_disable_key_cmdstruct carl9170_u32_liststruct carl9170_reg_liststruct carl9170_write_regstruct carl9170_write_reg_bytestruct carl9170_rf_initstruct carl9170_rf_init_resultstruct carl9170_psmstruct carl9170_rx_filter_cmdstruct carl9170_bcn_ctrl_cmdstruct carl9170_wol_cmdstruct carl9170_cmd_headstruct carl9170_cmdstruct carl9170_tx_statusstruct _carl9170_tx_statusstruct carl9170_gpiostruct carl9170_tsf_rspstruct carl9170_tally_rspstruct carl9170_rspenum carl9170_cmd_oids
Annotated Snippet
struct carl9170_set_key_cmd {
__le16 user;
__le16 keyId;
__le16 type;
u8 macAddr[6];
u32 key[4];
} __packed __aligned(4);
#define CARL9170_SET_KEY_CMD_SIZE 28
struct carl9170_disable_key_cmd {
__le16 user;
__le16 padding;
} __packed __aligned(4);
#define CARL9170_DISABLE_KEY_CMD_SIZE 4
struct carl9170_u32_list {
u32 vals[0];
} __packed;
struct carl9170_reg_list {
__le32 regs[0];
} __packed;
struct carl9170_write_reg {
DECLARE_FLEX_ARRAY(struct {
__le32 addr;
__le32 val;
} __packed, regs);
} __packed;
struct carl9170_write_reg_byte {
__le32 addr;
__le32 count;
u8 val[];
} __packed;
#define CARL9170FW_PHY_HT_ENABLE 0x4
#define CARL9170FW_PHY_HT_DYN2040 0x8
#define CARL9170FW_PHY_HT_EXT_CHAN_OFF 0x3
#define CARL9170FW_PHY_HT_EXT_CHAN_OFF_S 2
struct carl9170_rf_init {
__le32 freq;
u8 ht_settings;
u8 padding2[3];
__le32 delta_slope_coeff_exp;
__le32 delta_slope_coeff_man;
__le32 delta_slope_coeff_exp_shgi;
__le32 delta_slope_coeff_man_shgi;
__le32 finiteLoopCount;
} __packed;
#define CARL9170_RF_INIT_SIZE 28
struct carl9170_rf_init_result {
__le32 ret; /* AR9170_PHY_REG_AGC_CONTROL */
} __packed;
#define CARL9170_RF_INIT_RESULT_SIZE 4
#define CARL9170_PSM_SLEEP 0x1000
#define CARL9170_PSM_SOFTWARE 0
#define CARL9170_PSM_WAKE 0 /* internally used. */
#define CARL9170_PSM_COUNTER 0xfff
#define CARL9170_PSM_COUNTER_S 0
struct carl9170_psm {
__le32 state;
} __packed;
#define CARL9170_PSM_SIZE 4
/*
* Note: If a bit in rx_filter is set, then it
* means that the particular frames which matches
* the condition are FILTERED/REMOVED/DISCARDED!
* (This is can be a bit confusing, especially
* because someone people think it's the exact
* opposite way, so watch out!)
*/
struct carl9170_rx_filter_cmd {
__le32 rx_filter;
} __packed;
#define CARL9170_RX_FILTER_CMD_SIZE 4
#define CARL9170_RX_FILTER_BAD 0x01
#define CARL9170_RX_FILTER_OTHER_RA 0x02
#define CARL9170_RX_FILTER_DECRY_FAIL 0x04
#define CARL9170_RX_FILTER_CTL_OTHER 0x08
#define CARL9170_RX_FILTER_CTL_PSPOLL 0x10
#define CARL9170_RX_FILTER_CTL_BACKR 0x20
#define CARL9170_RX_FILTER_MGMT 0x40
#define CARL9170_RX_FILTER_DATA 0x80
Annotation
- Detected declarations: `struct carl9170_set_key_cmd`, `struct carl9170_disable_key_cmd`, `struct carl9170_u32_list`, `struct carl9170_reg_list`, `struct carl9170_write_reg`, `struct carl9170_write_reg_byte`, `struct carl9170_rf_init`, `struct carl9170_rf_init_result`, `struct carl9170_psm`, `struct carl9170_rx_filter_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.