drivers/net/wireless/ath/ath12k/wow.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath12k/wow.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/ath/ath12k/wow.h
Extension
.h
Size
1336 bytes
Lines
63
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 ath12k_wow {
	u32 max_num_patterns;
	struct completion wakeup_completed;
	struct wiphy_wowlan_support wowlan_support;
};

struct ath12k_pkt_pattern {
	u8 pattern[WOW_MAX_PATTERN_SIZE];
	u8 bytemask[WOW_MAX_PATTERN_SIZE];
	int pattern_len;
	int pkt_offset;
};

struct rfc1042_hdr {
	u8 llc_dsap;
	u8 llc_ssap;
	u8 llc_ctrl;
	u8 snap_oui[3];
	__be16 eth_type;
} __packed;

#ifdef CONFIG_PM

int ath12k_wow_init(struct ath12k *ar);
int ath12k_wow_op_suspend(struct ieee80211_hw *hw,
			  struct cfg80211_wowlan *wowlan);
int ath12k_wow_op_resume(struct ieee80211_hw *hw);
void ath12k_wow_op_set_wakeup(struct ieee80211_hw *hw, bool enabled);
int ath12k_wow_enable(struct ath12k *ar);
int ath12k_wow_wakeup(struct ath12k *ar);

#else

static inline int ath12k_wow_init(struct ath12k *ar)
{
	return 0;
}

static inline int ath12k_wow_enable(struct ath12k *ar)
{
	return 0;
}

static inline int ath12k_wow_wakeup(struct ath12k *ar)
{
	return 0;
}
#endif /* CONFIG_PM */
#endif /* ATH12K_WOW_H */

Annotation

Implementation Notes