drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h- Extension
.h- Size
- 90896 bytes
- Lines
- 2845
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: operation-table or driver-model contract
- Status
- pattern 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 an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/list.hlinux/spinlock.hlinux/cleanup.hlinux/leds.hlinux/hex.hlinux/in6.hlinux/thermal.hlinux/ptp_clock_kernel.hlinux/ktime.hiwl-op-mode.hiwl-trans.hfw/notif-wait.hiwl-nvm-utils.hfw/file.hiwl-config.hsta.hfw-api.hconstants.hfw/runtime.hfw/dbg.hfw/acpi.hmei/iwl-mei.hiwl-nvm-parse.hlinux/average.h
Detected Declarations
struct iwl_mvm_mod_paramsstruct iwl_mvm_phy_ctxtstruct iwl_mvm_time_event_datastruct iwl_dbgfs_pmstruct iwl_dbgfs_bfstruct iwl_mvm_link_bf_datastruct iwl_probe_resp_datastruct iwl_mvm_vif_link_infostruct iwl_mvm_vifstruct iwl_mvm_tt_mgmtstruct iwl_mvm_thermal_devicestruct iwl_mvm_cooling_devicestruct iwl_mvm_frame_statsstruct iwl_mvm_tcm_macstruct iwl_mvm_tcmstruct iwl_mvm_reorder_bufferstruct iwl_mvm_reorder_buf_entrystruct iwl_mvm_baid_datastruct iwl_mvm_txqstruct iwl_mvm_tvqm_txq_infostruct iwl_mvm_dqa_txq_infostruct ptp_datastruct iwl_time_sync_datastruct iwl_mei_scan_filterstruct iwl_mvm_acs_survey_channelstruct iwl_mvm_acs_surveystruct iwl_mvmstruct iwl_mvm_csme_conn_infostruct iwl_rate_infostruct iwl_mvm_roc_opsstruct iwl_mvm_switch_vif_chanctx_opsenum iwl_power_schemeenum iwl_dbgfs_pm_maskenum iwl_dbgfs_bf_maskenum iwl_mvm_smps_type_requestenum iwl_bt_force_ant_modeenum iwl_mvm_low_latency_forceenum iwl_mvm_low_latency_causeenum iwl_scan_statusenum iwl_mvm_scan_typeenum iwl_mvm_sched_scan_pass_all_statesenum iwl_mvm_tdls_cs_stateenum iwl_mvm_traffic_loadenum iwl_mvm_queue_statusenum iwl_mvm_statusenum iwl_mvm_init_statusfunction iwl_mvm_baid_data_from_reorder_buffunction iwl_mvm_txq_from_mac80211
Annotated Snippet
extern const struct file_operations iwl_dbgfs_d3_test_ops;
#ifdef CONFIG_PM_SLEEP
void iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm,
struct ieee80211_vif *vif);
void iwl_mvm_fast_suspend(struct iwl_mvm *mvm);
int iwl_mvm_fast_resume(struct iwl_mvm *mvm);
#else
static inline void
iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
{
}
static inline void iwl_mvm_fast_suspend(struct iwl_mvm *mvm)
{
}
static inline int iwl_mvm_fast_resume(struct iwl_mvm *mvm)
{
return 0;
}
#endif
void iwl_mvm_set_wowlan_qos_seq(struct iwl_mvm_sta *mvm_ap_sta,
struct iwl_wowlan_config_cmd_v6 *cmd);
int iwl_mvm_send_proto_offload(struct iwl_mvm *mvm,
struct ieee80211_vif *vif,
bool disable_offloading,
bool offload_ns,
u32 cmd_flags,
u8 sta_id);
/* BT Coex */
int iwl_mvm_send_bt_init_conf(struct iwl_mvm *mvm);
void iwl_mvm_rx_bt_coex_old_notif(struct iwl_mvm *mvm,
struct iwl_rx_cmd_buffer *rxb);
void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
enum ieee80211_rssi_event_data);
void iwl_mvm_bt_coex_vif_change(struct iwl_mvm *mvm);
u16 iwl_mvm_coex_agg_time_limit(struct iwl_mvm *mvm,
struct ieee80211_sta *sta);
bool iwl_mvm_bt_coex_is_mimo_allowed(struct iwl_mvm *mvm,
struct ieee80211_sta *sta);
bool iwl_mvm_bt_coex_is_ant_avail(struct iwl_mvm *mvm, u8 ant);
bool iwl_mvm_bt_coex_is_shared_ant_avail(struct iwl_mvm *mvm);
bool iwl_mvm_bt_coex_is_tpc_allowed(struct iwl_mvm *mvm,
enum nl80211_band band);
u8 iwl_mvm_bt_coex_get_single_ant_msk(struct iwl_mvm *mvm, u8 enabled_ants);
u8 iwl_mvm_bt_coex_tx_prio(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr,
struct ieee80211_tx_info *info, u8 ac);
/* beacon filtering */
#ifdef CONFIG_IWLWIFI_DEBUGFS
void
iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif,
struct iwl_beacon_filter_cmd *cmd);
#else
static inline void
iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif,
struct iwl_beacon_filter_cmd *cmd)
{}
#endif
int iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm,
struct ieee80211_vif *vif);
int iwl_mvm_disable_beacon_filter(struct iwl_mvm *mvm,
struct ieee80211_vif *vif);
/* SMPS */
void iwl_mvm_update_smps(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
enum iwl_mvm_smps_type_request req_type,
enum ieee80211_smps_mode smps_request,
unsigned int link_id);
void
iwl_mvm_update_smps_on_active_links(struct iwl_mvm *mvm,
struct ieee80211_vif *vif,
enum iwl_mvm_smps_type_request req_type,
enum ieee80211_smps_mode smps_request);
bool iwl_mvm_rx_diversity_allowed(struct iwl_mvm *mvm,
struct iwl_mvm_phy_ctxt *ctxt);
void iwl_mvm_update_link_smps(struct ieee80211_vif *vif,
struct ieee80211_bss_conf *link_conf);
/* Low latency */
int iwl_mvm_update_low_latency(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
bool low_latency,
enum iwl_mvm_low_latency_cause cause);
/* get SystemLowLatencyMode - only needed for beacon threshold? */
bool iwl_mvm_low_latency(struct iwl_mvm *mvm);
bool iwl_mvm_low_latency_band(struct iwl_mvm *mvm, enum nl80211_band band);
void iwl_mvm_send_low_latency_cmd(struct iwl_mvm *mvm, bool low_latency,
u16 mac_id);
/* get VMACLowLatencyMode */
Annotation
- Immediate include surface: `linux/list.h`, `linux/spinlock.h`, `linux/cleanup.h`, `linux/leds.h`, `linux/hex.h`, `linux/in6.h`, `linux/thermal.h`, `linux/ptp_clock_kernel.h`.
- Detected declarations: `struct iwl_mvm_mod_params`, `struct iwl_mvm_phy_ctxt`, `struct iwl_mvm_time_event_data`, `struct iwl_dbgfs_pm`, `struct iwl_dbgfs_bf`, `struct iwl_mvm_link_bf_data`, `struct iwl_probe_resp_data`, `struct iwl_mvm_vif_link_info`, `struct iwl_mvm_vif`, `struct iwl_mvm_tt_mgmt`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: pattern 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.