Skip to content

Commit

Permalink
mt76x2: debugfs: add sw pulse statistics to dfs debugfs
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Lorenzo Bianconi authored and Kalle Valo committed Jul 4, 2018
1 parent b7384e4 commit 4a07ed5
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 1 deletion.
8 changes: 8 additions & 0 deletions drivers/net/wireless/mediatek/mt76/mt76x2_debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
11 changes: 10 additions & 1 deletion drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
}

Expand Down Expand Up @@ -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;
}
Expand Down
7 changes: 7 additions & 0 deletions drivers/net/wireless/mediatek/mt76/mt76x2_dfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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;
Expand Down

0 comments on commit 4a07ed5

Please sign in to comment.