mt76x2: debugfs: add sw pulse statistics to dfs debugfs
Add sw pattern detector statistics to mt76x2 debugfs. Moreover track down number of allocated sequence by the detector Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
b7384e4e0d
commit
4a07ed51ca
@ -91,12 +91,20 @@ mt76x2_dfs_stat_read(struct seq_file *file, void *data)
|
||||
struct mt76x2_dev *dev = file->private;
|
||||
struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd;
|
||||
|
||||
seq_printf(file, "allocated sequences:\t%d\n",
|
||||
dfs_pd->seq_stats.seq_pool_len);
|
||||
seq_printf(file, "used sequences:\t\t%d\n",
|
||||
dfs_pd->seq_stats.seq_len);
|
||||
seq_puts(file, "\n");
|
||||
|
||||
for (i = 0; i < MT_DFS_NUM_ENGINES; i++) {
|
||||
seq_printf(file, "engine: %d\n", i);
|
||||
seq_printf(file, " hw pattern detected:\t%d\n",
|
||||
dfs_pd->stats[i].hw_pattern);
|
||||
seq_printf(file, " hw pulse discarded:\t%d\n",
|
||||
dfs_pd->stats[i].hw_pulse_discarded);
|
||||
seq_printf(file, " sw pattern detected:\t%d\n",
|
||||
dfs_pd->stats[i].sw_pattern);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -165,6 +165,9 @@ static void mt76x2_dfs_seq_pool_put(struct mt76x2_dev *dev,
|
||||
struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd;
|
||||
|
||||
list_add(&seq->head, &dfs_pd->seq_pool);
|
||||
|
||||
dfs_pd->seq_stats.seq_pool_len++;
|
||||
dfs_pd->seq_stats.seq_len--;
|
||||
}
|
||||
|
||||
static
|
||||
@ -180,7 +183,11 @@ struct mt76x2_dfs_sequence *mt76x2_dfs_seq_pool_get(struct mt76x2_dev *dev)
|
||||
struct mt76x2_dfs_sequence,
|
||||
head);
|
||||
list_del(&seq->head);
|
||||
dfs_pd->seq_stats.seq_pool_len--;
|
||||
}
|
||||
if (seq)
|
||||
dfs_pd->seq_stats.seq_len++;
|
||||
|
||||
return seq;
|
||||
}
|
||||
|
||||
@ -555,8 +562,10 @@ static bool mt76x2_dfs_check_detection(struct mt76x2_dev *dev)
|
||||
return false;
|
||||
|
||||
list_for_each_entry(seq, &dfs_pd->sequences, head) {
|
||||
if (seq->count > MT_DFS_SEQUENCE_TH)
|
||||
if (seq->count > MT_DFS_SEQUENCE_TH) {
|
||||
dfs_pd->stats[seq->engine].sw_pattern++;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -109,6 +109,12 @@ struct mt76x2_dfs_sw_detector_params {
|
||||
struct mt76x2_dfs_engine_stats {
|
||||
u32 hw_pattern;
|
||||
u32 hw_pulse_discarded;
|
||||
u32 sw_pattern;
|
||||
};
|
||||
|
||||
struct mt76x2_dfs_seq_stats {
|
||||
u32 seq_pool_len;
|
||||
u32 seq_len;
|
||||
};
|
||||
|
||||
struct mt76x2_dfs_pattern_detector {
|
||||
@ -122,6 +128,7 @@ struct mt76x2_dfs_pattern_detector {
|
||||
|
||||
struct list_head sequences;
|
||||
struct list_head seq_pool;
|
||||
struct mt76x2_dfs_seq_stats seq_stats;
|
||||
|
||||
unsigned long last_sw_check;
|
||||
u32 last_event_ts;
|
||||
|
Loading…
Reference in New Issue
Block a user