#include <linux/vmalloc.h>
#include "core.h"
#include "debug.h"
#include "debugfs_htt_stats.h"
#include "dp_tx.h"
#include "dp_rx.h"
static u32
print_array_to_buf(u8 *buf, u32 offset, const char *header,
const __le32 *array, u32 array_len, const char *footer)
{ … }
static void
htt_print_tx_pdev_stats_cmn_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
htt_print_tx_pdev_stats_urrn_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
htt_print_tx_pdev_stats_flush_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
htt_print_tx_pdev_stats_sifs_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
htt_print_tx_pdev_mu_ppdu_dist_stats_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
htt_print_tx_pdev_stats_sifs_hist_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
htt_print_pdev_ctrl_path_tx_stats_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_stats_tx_sched_cmn_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_tx_pdev_stats_sched_per_txq_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_sched_txq_cmd_posted_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_sched_txq_cmd_reaped_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_sched_txq_sched_order_su_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_sched_txq_sched_ineligibility_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_sched_txq_supercycle_trigger_tlv(const void *tag_buf,
u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_hw_stats_pdev_errs_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_hw_stats_intr_misc_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_hw_stats_whal_tx_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_hw_war_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_tx_tqm_cmn_stats_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_tx_tqm_error_stats_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_tx_tqm_gen_mpdu_stats_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_tx_tqm_list_mpdu_stats_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_tx_tqm_list_mpdu_cnt_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static void
ath12k_htt_print_tx_tqm_pdev_stats_tlv(const void *tag_buf, u16 tag_len,
struct debug_htt_stats_req *stats_req)
{ … }
static int ath12k_dbg_htt_ext_stats_parse(struct ath12k_base *ab,
u16 tag, u16 len, const void *tag_buf,
void *user_data)
{ … }
void ath12k_debugfs_htt_ext_stats_handler(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static ssize_t ath12k_read_htt_stats_type(struct file *file,
char __user *user_buf,
size_t count, loff_t *ppos)
{ … }
static ssize_t ath12k_write_htt_stats_type(struct file *file,
const char __user *user_buf,
size_t count, loff_t *ppos)
{ … }
static const struct file_operations fops_htt_stats_type = …;
static int ath12k_debugfs_htt_stats_req(struct ath12k *ar)
{ … }
static int ath12k_open_htt_stats(struct inode *inode,
struct file *file)
{ … }
static int ath12k_release_htt_stats(struct inode *inode,
struct file *file)
{ … }
static ssize_t ath12k_read_htt_stats(struct file *file,
char __user *user_buf,
size_t count, loff_t *ppos)
{ … }
static const struct file_operations fops_dump_htt_stats = …;
static ssize_t ath12k_write_htt_stats_reset(struct file *file,
const char __user *user_buf,
size_t count, loff_t *ppos)
{ … }
static const struct file_operations fops_htt_stats_reset = …;
void ath12k_debugfs_htt_stats_register(struct ath12k *ar)
{ … }