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.

Dependency Surface

Detected Declarations

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

Implementation Notes