mt76: mt7915: add twt_stats knob in debugfs
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 23 Sep 2021 14:29:34 +0000 (16:29 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 20 Oct 2021 08:36:50 +0000 (10:36 +0200)
Introduce twt_stats knob in debugfs in order to dump established
agreements

Tested-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Tested-by: Evelyn Tsai <evelyn.tsai@mediatek.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c

index 1d237e7908e795088f1a7c3fd8a03d30a83afc6e..04a81b5d0c9dcb2dd5208e279b8e0c049fdb30ca 100644 (file)
@@ -437,6 +437,32 @@ mt7915_read_rate_txpower(struct seq_file *s, void *data)
        return 0;
 }
 
+static int
+mt7915_twt_stats(struct seq_file *s, void *data)
+{
+       struct mt7915_dev *dev = dev_get_drvdata(s->private);
+       struct mt7915_twt_flow *iter;
+
+       rcu_read_lock();
+
+       seq_puts(s, "     wcid |       id |    flags |      exp | mantissa");
+       seq_puts(s, " | duration |            tsf |\n");
+       list_for_each_entry_rcu(iter, &dev->twt_list, list)
+               seq_printf(s,
+                       "%9d | %8d | %5c%c%c%c | %8d | %8d | %8d | %14lld |\n",
+                       iter->wcid, iter->id,
+                       iter->sched ? 's' : 'u',
+                       iter->protection ? 'p' : '-',
+                       iter->trigger ? 't' : '-',
+                       iter->flowtype ? '-' : 'a',
+                       iter->exp, iter->mantissa,
+                       iter->duration, iter->tsf);
+
+       rcu_read_unlock();
+
+       return 0;
+}
+
 int mt7915_init_debugfs(struct mt7915_dev *dev)
 {
        struct dentry *dir;
@@ -454,6 +480,8 @@ int mt7915_init_debugfs(struct mt7915_dev *dev)
        debugfs_create_file("implicit_txbf", 0600, dir, dev,
                            &fops_implicit_txbf);
        debugfs_create_u32("dfs_hw_pattern", 0400, dir, &dev->hw_pattern);
+       debugfs_create_devm_seqfile(dev->mt76.dev, "twt_stats", dir,
+                                   mt7915_twt_stats);
        /* test knobs */
        debugfs_create_file("radar_trigger", 0200, dir, dev,
                            &fops_radar_trigger);