drivers/net/wireless/intel/iwlwifi/mld/low_latency.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/mld/low_latency.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/mld/low_latency.h- Extension
.h- Size
- 2517 bytes
- Lines
- 69
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct iwl_mld_low_latency_packets_countersstruct iwl_mld_low_latencyenum iwl_mld_low_latency_cause
Annotated Snippet
struct iwl_mld_low_latency_packets_counters {
spinlock_t lock;
u32 vo_vi[NUM_MAC_INDEX_DRIVER];
} ____cacheline_aligned_in_smp;
/**
* enum iwl_mld_low_latency_cause - low-latency set causes
*
* @LOW_LATENCY_TRAFFIC: indicates low-latency traffic was detected
* @LOW_LATENCY_DEBUGFS: low-latency mode set from debugfs
* @LOW_LATENCY_VIF_TYPE: low-latency mode set because of vif type (AP)
*/
enum iwl_mld_low_latency_cause {
LOW_LATENCY_TRAFFIC = BIT(0),
LOW_LATENCY_DEBUGFS = BIT(1),
LOW_LATENCY_VIF_TYPE = BIT(2),
};
/**
* struct iwl_mld_low_latency - Manage low-latency detection and activation.
* @work: this work is used to detect low-latency by monitoring the number of
* voice and video packets transmitted in a period of time. If the
* threshold is reached, low-latency is activated. When active,
* it is deactivated if the threshold is not reached within a
* 10-second period.
* @timestamp: timestamp of the last update.
* @window_start: per-mac, timestamp of the start of the current window. when
* the window is over, the counters are reset.
* @pkts_counters: per-queue array voice/video packet counters
* @result: per-mac latest low-latency result
* @stopped: if true, ignore the requests to update the counters
*/
struct iwl_mld_low_latency {
struct wiphy_delayed_work work;
unsigned long timestamp;
unsigned long window_start[NUM_MAC_INDEX_DRIVER];
struct iwl_mld_low_latency_packets_counters *pkts_counters;
bool result[NUM_MAC_INDEX_DRIVER];
bool stopped;
};
int iwl_mld_low_latency_init(struct iwl_mld *mld);
void iwl_mld_low_latency_free(struct iwl_mld *mld);
void iwl_mld_low_latency_restart_cleanup(struct iwl_mld *mld);
void iwl_mld_vif_update_low_latency(struct iwl_mld *mld,
struct ieee80211_vif *vif,
bool low_latency,
enum iwl_mld_low_latency_cause cause);
void iwl_mld_low_latency_update_counters(struct iwl_mld *mld,
struct ieee80211_hdr *hdr,
struct ieee80211_sta *sta,
u8 queue);
void iwl_mld_low_latency_stop(struct iwl_mld *mld);
void iwl_mld_low_latency_restart(struct iwl_mld *mld);
#endif /* __iwl_mld_low_latency_h__ */
Annotation
- Detected declarations: `struct iwl_mld_low_latency_packets_counters`, `struct iwl_mld_low_latency`, `enum iwl_mld_low_latency_cause`.
- 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.