drivers/net/wireless/marvell/mwifiex/fw.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/marvell/mwifiex/fw.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/marvell/mwifiex/fw.h- Extension
.h- Size
- 63912 bytes
- Lines
- 2467
- 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/if_ether.h
Detected Declarations
struct rfc_1042_hdrstruct rx_packet_hdrstruct tx_packet_hdrstruct mwifiex_fw_headerstruct mwifiex_fw_datastruct mwifiex_fw_dump_headerstruct mwifiex_ie_types_headerstruct mwifiex_ie_types_datastruct txpdstruct rxpdstruct uap_txpdstruct uap_rxpdstruct mwifiex_authstruct mwifiex_ieee80211_mgmtstruct mwifiex_fw_chan_statsstruct mwifiex_chan_scan_param_setstruct mwifiex_ie_types_chan_list_param_setstruct mwifiex_ie_types_rxba_syncstruct chan_band_param_setstruct mwifiex_ie_types_chan_band_list_param_setstruct mwifiex_ie_types_rates_param_setstruct mwifiex_ie_types_ssid_param_setstruct mwifiex_ie_types_host_mlmestruct mwifiex_ie_types_num_probesstruct mwifiex_ie_types_repeat_countstruct mwifiex_ie_types_min_rssi_thresholdstruct mwifiex_ie_types_bgscan_start_laterstruct mwifiex_ie_types_scan_chan_gapstruct mwifiex_ie_types_random_macstruct mwifiex_ietypes_chanstatsstruct mwifiex_ie_types_wildcard_ssid_paramsstruct mwifiex_ie_types_tsf_timestampstruct mwifiex_cf_param_setstruct mwifiex_ibss_param_setstruct mwifiex_ie_types_ss_param_setstruct mwifiex_fh_param_setstruct mwifiex_ds_param_setstruct mwifiex_ie_types_phy_param_setstruct mwifiex_ie_types_auth_typestruct mwifiex_ie_types_vendor_param_setstruct mwifiex_ie_types_tdls_idle_timeoutstruct mwifiex_ie_types_sae_pwe_modestruct mwifiex_ie_types_rsn_param_setstruct mwifiex_ie_type_key_param_setstruct mwifiex_cmac_paramstruct mwifiex_wep_paramstruct mwifiex_tkip_paramstruct mwifiex_aes_param
Annotated Snippet
struct rfc_1042_hdr {
u8 llc_dsap;
u8 llc_ssap;
u8 llc_ctrl;
u8 snap_oui[3];
__be16 snap_type;
} __packed;
struct rx_packet_hdr {
struct ethhdr eth803_hdr;
struct rfc_1042_hdr rfc1042_hdr;
} __packed;
struct tx_packet_hdr {
struct ethhdr eth803_hdr;
struct rfc_1042_hdr rfc1042_hdr;
} __packed;
struct mwifiex_fw_header {
__le32 dnld_cmd;
__le32 base_addr;
__le32 data_length;
__le32 crc;
} __packed;
struct mwifiex_fw_data {
struct mwifiex_fw_header header;
__le32 seq_num;
u8 data[];
} __packed;
struct mwifiex_fw_dump_header {
__le16 seq_num;
__le16 reserved;
__le16 type;
__le16 len;
} __packed;
#define FW_DUMP_INFO_ENDED 0x0002
#define MWIFIEX_FW_DNLD_CMD_1 0x1
#define MWIFIEX_FW_DNLD_CMD_5 0x5
#define MWIFIEX_FW_DNLD_CMD_6 0x6
#define MWIFIEX_FW_DNLD_CMD_7 0x7
#define B_SUPPORTED_RATES 5
#define G_SUPPORTED_RATES 9
#define BG_SUPPORTED_RATES 13
#define A_SUPPORTED_RATES 9
#define HOSTCMD_SUPPORTED_RATES 14
#define N_SUPPORTED_RATES 3
#define ALL_802_11_BANDS (BAND_A | BAND_B | BAND_G | BAND_GN | \
BAND_AN | BAND_AAC)
#define FW_MULTI_BANDS_SUPPORT (BIT(8) | BIT(9) | BIT(10) | BIT(11) | \
BIT(13))
#define IS_SUPPORT_MULTI_BANDS(adapter) \
(adapter->fw_cap_info & FW_MULTI_BANDS_SUPPORT)
/* bit 13: 11ac BAND_AAC
* bit 12: reserved for lab testing, will be reused for BAND_AN
* bit 11: 11n BAND_GN
* bit 10: 11a BAND_A
* bit 9: 11g BAND_G
* bit 8: 11b BAND_B
* Map these bits to band capability by right shifting 8 bits.
*/
#define GET_FW_DEFAULT_BANDS(adapter) \
(((adapter->fw_cap_info & 0x2f00) >> 8) & \
ALL_802_11_BANDS)
#define HostCmd_WEP_KEY_INDEX_MASK 0x3fff
#define KEY_INFO_ENABLED 0x01
enum KEY_TYPE_ID {
KEY_TYPE_ID_WEP = 0,
KEY_TYPE_ID_TKIP,
KEY_TYPE_ID_AES,
KEY_TYPE_ID_WAPI,
KEY_TYPE_ID_AES_CMAC,
KEY_TYPE_ID_AES_CMAC_DEF,
};
#define WPA_PN_SIZE 8
#define KEY_PARAMS_FIXED_LEN 10
#define KEY_INDEX_MASK 0xf
#define KEY_API_VER_MAJOR_V2 2
#define KEY_MCAST BIT(0)
#define KEY_UNICAST BIT(1)
Annotation
- Immediate include surface: `linux/if_ether.h`.
- Detected declarations: `struct rfc_1042_hdr`, `struct rx_packet_hdr`, `struct tx_packet_hdr`, `struct mwifiex_fw_header`, `struct mwifiex_fw_data`, `struct mwifiex_fw_dump_header`, `struct mwifiex_ie_types_header`, `struct mwifiex_ie_types_data`, `struct txpd`, `struct rxpd`.
- 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.