drivers/net/wireless/ath/ath11k/debugfs_htt_stats.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/ath/ath11k/debugfs_htt_stats.h
Extension
.h
Size
66438 bytes
Lines
2046
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 htt_stats_string_tlv {
	 /* Can be variable length */
	DECLARE_FLEX_ARRAY(u32, data);
} __packed;

#define HTT_STATS_MAC_ID	GENMASK(7, 0)

/* == TX PDEV STATS == */
struct htt_tx_pdev_stats_cmn_tlv {
	u32 mac_id__word;
	u32 hw_queued;
	u32 hw_reaped;
	u32 underrun;
	u32 hw_paused;
	u32 hw_flush;
	u32 hw_filt;
	u32 tx_abort;
	u32 mpdu_requeued;
	u32 tx_xretry;
	u32 data_rc;
	u32 mpdu_dropped_xretry;
	u32 illgl_rate_phy_err;
	u32 cont_xretry;
	u32 tx_timeout;
	u32 pdev_resets;
	u32 phy_underrun;
	u32 txop_ovf;
	u32 seq_posted;
	u32 seq_failed_queueing;
	u32 seq_completed;
	u32 seq_restarted;
	u32 mu_seq_posted;
	u32 seq_switch_hw_paused;
	u32 next_seq_posted_dsr;
	u32 seq_posted_isr;
	u32 seq_ctrl_cached;
	u32 mpdu_count_tqm;
	u32 msdu_count_tqm;
	u32 mpdu_removed_tqm;
	u32 msdu_removed_tqm;
	u32 mpdus_sw_flush;
	u32 mpdus_hw_filter;
	u32 mpdus_truncated;
	u32 mpdus_ack_failed;
	u32 mpdus_expired;
	u32 mpdus_seq_hw_retry;
	u32 ack_tlv_proc;
	u32 coex_abort_mpdu_cnt_valid;
	u32 coex_abort_mpdu_cnt;
	u32 num_total_ppdus_tried_ota;
	u32 num_data_ppdus_tried_ota;
	u32 local_ctrl_mgmt_enqued;
	u32 local_ctrl_mgmt_freed;
	u32 local_data_enqued;
	u32 local_data_freed;
	u32 mpdu_tried;
	u32 isr_wait_seq_posted;

	u32 tx_active_dur_us_low;
	u32 tx_active_dur_us_high;
};

/* NOTE: Variable length TLV, use length spec to infer array size */
struct htt_tx_pdev_stats_urrn_tlv_v {
	/* HTT_TX_PDEV_MAX_URRN_STATS */
	DECLARE_FLEX_ARRAY(u32, urrn_stats);
};

/* NOTE: Variable length TLV, use length spec to infer array size */
struct htt_tx_pdev_stats_flush_tlv_v {
	/* HTT_TX_PDEV_MAX_FLUSH_REASON_STATS */
	DECLARE_FLEX_ARRAY(u32, flush_errs);
};

/* NOTE: Variable length TLV, use length spec to infer array size */
struct htt_tx_pdev_stats_sifs_tlv_v {
	/* HTT_TX_PDEV_MAX_SIFS_BURST_STATS */
	DECLARE_FLEX_ARRAY(u32, sifs_status);
};

/* NOTE: Variable length TLV, use length spec to infer array size */
struct htt_tx_pdev_stats_phy_err_tlv_v {
	/* HTT_TX_PDEV_MAX_PHY_ERR_STATS */
	DECLARE_FLEX_ARRAY(u32, phy_errs);
};

/* NOTE: Variable length TLV, use length spec to infer array size */
struct htt_tx_pdev_stats_sifs_hist_tlv_v {
	/* HTT_TX_PDEV_SIFS_BURST_HIST_STATS */
	DECLARE_FLEX_ARRAY(u32, sifs_hist_status);

Annotation

Implementation Notes