drivers/net/wireless/ti/wlcore/wlcore_i.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ti/wlcore/wlcore_i.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ti/wlcore/wlcore_i.h- Extension
.h- Size
- 14102 bytes
- Lines
- 573
- 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/mutex.hlinux/completion.hlinux/spinlock.hlinux/list.hlinux/bitops.hnet/mac80211.hconf.hini.h
Detected Declarations
struct wilink_family_datastruct wl1271struct wl1271_chipstruct wl_fw_statusstruct wl1271_scanstruct wl1271_if_operationsstruct wlcore_platdev_datastruct wl1271_ap_keystruct wl12xx_vifstruct wl1271_linkstruct wl12xx_rx_filter_fieldstruct wl12xx_rx_filterstruct wl1271_stationstruct wl12xx_vifenum wlcore_stateenum wl12xx_fw_typeenum wl12xx_flagsenum wl12xx_vif_flagsenum rx_filter_actionenum plt_modefunction wlcore_is_p2p_mgmt
Annotated Snippet
struct wilink_family_data {
const char *name;
const char *nvs_name; /* wl12xx nvs file */
const char *cfg_name; /* wl18xx cfg file */
};
#define WL1271_TX_SECURITY_LO16(s) ((u16)((s) & 0xffff))
#define WL1271_TX_SECURITY_HI32(s) ((u32)(((s) >> 16) & 0xffffffff))
#define WL1271_TX_SQN_POST_RECOVERY_PADDING 0xff
/* Use smaller padding for GEM, as some APs have issues when it's too big */
#define WL1271_TX_SQN_POST_RECOVERY_PADDING_GEM 0x20
#define WL1271_CIPHER_SUITE_GEM 0x00147201
#define WL1271_BUSY_WORD_CNT 1
#define WL1271_BUSY_WORD_LEN (WL1271_BUSY_WORD_CNT * sizeof(u32))
#define WL1271_ELP_HW_STATE_ASLEEP 0
#define WL1271_ELP_HW_STATE_IRQ 1
#define WL1271_DEFAULT_BEACON_INT 100
#define WL1271_DEFAULT_DTIM_PERIOD 1
#define WL12XX_MAX_ROLES 4
#define WL12XX_INVALID_ROLE_ID 0xff
#define WL12XX_INVALID_LINK_ID 0xff
/*
* max number of links allowed by all HWs.
* this is NOT the actual max links supported by the current hw.
*/
#define WLCORE_MAX_LINKS 16
/* the driver supports the 2.4Ghz and 5Ghz bands */
#define WLCORE_NUM_BANDS 2
#define WL12XX_MAX_RATE_POLICIES 16
#define WLCORE_MAX_KLV_TEMPLATES 4
/* Defined by FW as 0. Will not be freed or allocated. */
#define WL12XX_SYSTEM_HLID 0
/*
* When in AP-mode, we allow (at least) this number of packets
* to be transmitted to FW for a STA in PS-mode. Only when packets are
* present in the FW buffers it will wake the sleeping STA. We want to put
* enough packets for the driver to transmit all of its buffered data before
* the STA goes to sleep again. But we don't want to take too much memory
* as it might hurt the throughput of active STAs.
*/
#define WL1271_PS_STA_MAX_PACKETS 2
#define WL1271_AP_BSS_INDEX 0
#define WL1271_AP_DEF_BEACON_EXP 20
enum wlcore_state {
WLCORE_STATE_OFF,
WLCORE_STATE_RESTARTING,
WLCORE_STATE_ON,
};
enum wl12xx_fw_type {
WL12XX_FW_TYPE_NONE,
WL12XX_FW_TYPE_NORMAL,
WL12XX_FW_TYPE_MULTI,
WL12XX_FW_TYPE_PLT,
};
struct wl1271;
enum {
FW_VER_CHIP,
FW_VER_IF_TYPE,
FW_VER_MAJOR,
FW_VER_SUBTYPE,
FW_VER_MINOR,
NUM_FW_VER
};
struct wl1271_chip {
u32 id;
char fw_ver_str[ETHTOOL_FWVERS_LEN];
unsigned int fw_ver[NUM_FW_VER];
char phy_fw_ver_str[ETHTOOL_FWVERS_LEN];
};
#define NUM_TX_QUEUES 4
Annotation
- Immediate include surface: `linux/mutex.h`, `linux/completion.h`, `linux/spinlock.h`, `linux/list.h`, `linux/bitops.h`, `net/mac80211.h`, `conf.h`, `ini.h`.
- Detected declarations: `struct wilink_family_data`, `struct wl1271`, `struct wl1271_chip`, `struct wl_fw_status`, `struct wl1271_scan`, `struct wl1271_if_operations`, `struct wlcore_platdev_data`, `struct wl1271_ap_key`, `struct wl12xx_vif`, `struct wl1271_link`.
- 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.