drivers/net/wireless/ath/ath6kl/cfg80211.c
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath6kl/cfg80211.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath6kl/cfg80211.c- Extension
.c- Size
- 104518 bytes
- Lines
- 4049
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: exported/initcall integration point
- Status
- integration 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.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/moduleparam.hlinux/inetdevice.hlinux/export.hlinux/sched/signal.hcore.hcfg80211.hdebug.hhif-ops.htestmode.h
Detected Declarations
struct ath6kl_cfg80211_match_probe_ssidfunction Copyrightfunction __ath6kl_cfg80211_sscan_stopfunction ath6kl_cfg80211_sscan_disablefunction ath6kl_set_wpa_versionfunction ath6kl_set_auth_typefunction ath6kl_set_cipherfunction ath6kl_set_key_mgmtfunction ath6kl_cfg80211_readyfunction ath6kl_is_wpa_iefunction ath6kl_is_rsn_iefunction ath6kl_is_wps_iefunction ath6kl_set_assoc_req_iesfunction ath6kl_nliftype_to_drv_iftypefunction ath6kl_is_valid_iftypefunction ath6kl_is_tx_pendingfunction ath6kl_cfg80211_sta_bmiss_enhancefunction ath6kl_cfg80211_connectfunction ath6kl_add_bss_if_neededfunction ath6kl_cfg80211_connect_eventfunction ath6kl_cfg80211_disconnectfunction ath6kl_cfg80211_disconnect_eventfunction ath6kl_set_probed_ssidsfunction ath6kl_cfg80211_scanfunction ath6kl_cfg80211_scan_complete_eventfunction ath6kl_cfg80211_ch_switch_notifyfunction ath6kl_cfg80211_add_keyfunction ath6kl_cfg80211_del_keyfunction ath6kl_cfg80211_get_keyfunction ath6kl_cfg80211_set_default_keyfunction ath6kl_cfg80211_tkip_micerr_eventfunction ath6kl_cfg80211_set_wiphy_paramsfunction ath6kl_cfg80211_set_txpowerfunction ath6kl_cfg80211_get_txpowerfunction ath6kl_cfg80211_set_power_mgmtfunction ath6kl_cfg80211_del_ifacefunction ath6kl_cfg80211_change_ifacefunction ath6kl_cfg80211_join_ibssfunction ath6kl_cfg80211_leave_ibssfunction is_rate_legacyfunction is_rate_ht20function is_rate_ht40function ath6kl_get_stationfunction ath6kl_set_pmksafunction ath6kl_del_pmksafunction ath6kl_flush_pmksafunction ath6kl_wow_usrfunction ath6kl_wow_ap
Annotated Snippet
struct ath6kl_cfg80211_match_probe_ssid {
struct cfg80211_ssid ssid;
u8 flag;
};
static struct ieee80211_rate ath6kl_rates[] = {
RATETAB_ENT(10, 0x1, 0),
RATETAB_ENT(20, 0x2, 0),
RATETAB_ENT(55, 0x4, 0),
RATETAB_ENT(110, 0x8, 0),
RATETAB_ENT(60, 0x10, 0),
RATETAB_ENT(90, 0x20, 0),
RATETAB_ENT(120, 0x40, 0),
RATETAB_ENT(180, 0x80, 0),
RATETAB_ENT(240, 0x100, 0),
RATETAB_ENT(360, 0x200, 0),
RATETAB_ENT(480, 0x400, 0),
RATETAB_ENT(540, 0x800, 0),
};
#define ath6kl_a_rates (ath6kl_rates + 4)
#define ath6kl_a_rates_size 8
#define ath6kl_g_rates (ath6kl_rates + 0)
#define ath6kl_g_rates_size 12
#define ath6kl_g_htcap IEEE80211_HT_CAP_SGI_20
#define ath6kl_a_htcap (IEEE80211_HT_CAP_SUP_WIDTH_20_40 | \
IEEE80211_HT_CAP_SGI_20 | \
IEEE80211_HT_CAP_SGI_40)
static struct ieee80211_channel ath6kl_2ghz_channels[] = {
CHAN2G(1, 2412, 0),
CHAN2G(2, 2417, 0),
CHAN2G(3, 2422, 0),
CHAN2G(4, 2427, 0),
CHAN2G(5, 2432, 0),
CHAN2G(6, 2437, 0),
CHAN2G(7, 2442, 0),
CHAN2G(8, 2447, 0),
CHAN2G(9, 2452, 0),
CHAN2G(10, 2457, 0),
CHAN2G(11, 2462, 0),
CHAN2G(12, 2467, 0),
CHAN2G(13, 2472, 0),
CHAN2G(14, 2484, 0),
};
static struct ieee80211_channel ath6kl_5ghz_a_channels[] = {
CHAN5G(36, 0), CHAN5G(40, 0),
CHAN5G(44, 0), CHAN5G(48, 0),
CHAN5G(52, 0), CHAN5G(56, 0),
CHAN5G(60, 0), CHAN5G(64, 0),
CHAN5G(100, 0), CHAN5G(104, 0),
CHAN5G(108, 0), CHAN5G(112, 0),
CHAN5G(116, 0), CHAN5G(120, 0),
CHAN5G(124, 0), CHAN5G(128, 0),
CHAN5G(132, 0), CHAN5G(136, 0),
CHAN5G(140, 0), CHAN5G(149, 0),
CHAN5G(153, 0), CHAN5G(157, 0),
CHAN5G(161, 0), CHAN5G(165, 0),
CHAN5G(184, 0), CHAN5G(188, 0),
CHAN5G(192, 0), CHAN5G(196, 0),
CHAN5G(200, 0), CHAN5G(204, 0),
CHAN5G(208, 0), CHAN5G(212, 0),
CHAN5G(216, 0),
};
static struct ieee80211_supported_band ath6kl_band_2ghz = {
.n_channels = ARRAY_SIZE(ath6kl_2ghz_channels),
.channels = ath6kl_2ghz_channels,
.n_bitrates = ath6kl_g_rates_size,
.bitrates = ath6kl_g_rates,
.ht_cap.cap = ath6kl_g_htcap,
.ht_cap.ht_supported = true,
};
static struct ieee80211_supported_band ath6kl_band_5ghz = {
.n_channels = ARRAY_SIZE(ath6kl_5ghz_a_channels),
.channels = ath6kl_5ghz_a_channels,
.n_bitrates = ath6kl_a_rates_size,
.bitrates = ath6kl_a_rates,
.ht_cap.cap = ath6kl_a_htcap,
.ht_cap.ht_supported = true,
};
#define CCKM_KRK_CIPHER_SUITE 0x004096ff /* use for KRK */
/* returns true if scheduled scan was stopped */
static bool __ath6kl_cfg80211_sscan_stop(struct ath6kl_vif *vif)
{
Annotation
- Immediate include surface: `linux/moduleparam.h`, `linux/inetdevice.h`, `linux/export.h`, `linux/sched/signal.h`, `core.h`, `cfg80211.h`, `debug.h`, `hif-ops.h`.
- Detected declarations: `struct ath6kl_cfg80211_match_probe_ssid`, `function Copyright`, `function __ath6kl_cfg80211_sscan_stop`, `function ath6kl_cfg80211_sscan_disable`, `function ath6kl_set_wpa_version`, `function ath6kl_set_auth_type`, `function ath6kl_set_cipher`, `function ath6kl_set_key_mgmt`, `function ath6kl_cfg80211_ready`, `function ath6kl_is_wpa_ie`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: integration implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.