diff mbox series

[mac80211-next,7/7] mt76: mt7915: add twt_stats knob in debugfs

Message ID c15deb39ada1d7f642a7cf7bf21a60e84dde240d.1628062233.git.lorenzo@kernel.org
State Superseded
Headers show
Series introduce individual TWT support in AP mode | expand

Commit Message

Lorenzo Bianconi Aug. 4, 2021, 7:36 a.m. UTC
Introduce twt_stats knob in debugfs in order to dump established
agreements

Tested-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 .../wireless/mediatek/mt76/mt7915/debugfs.c   | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)

Comments

Lorenzo Bianconi Aug. 4, 2021, 8:35 a.m. UTC | #1
> Introduce twt_stats knob in debugfs in order to dump established
> agreements
> 
> Tested-by: Peter Chiu <chui-hao.chiu@mediatek.com>
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> ---
>  .../wireless/mediatek/mt76/mt7915/debugfs.c   | 28 +++++++++++++++++++
>  1 file changed, 28 insertions(+)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
> index 1a48b09d0cb7..5ed329f720d6 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
> @@ -335,6 +335,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_lock();

ops, there is a typo here, I will fix it in v2. I will wait for some feedbacks
on v1 first.

Regards,
Lorenzo

> +
> +	return 0;
> +}
> +
>  int mt7915_init_debugfs(struct mt7915_dev *dev)
>  {
>  	struct dentry *dir;
> @@ -352,6 +378,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);
> -- 
> 2.31.1
>
diff mbox series

Patch

diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
index 1a48b09d0cb7..5ed329f720d6 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
@@ -335,6 +335,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_lock();
+
+	return 0;
+}
+
 int mt7915_init_debugfs(struct mt7915_dev *dev)
 {
 	struct dentry *dir;
@@ -352,6 +378,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);