blob: d82f9b3447e49bdbb5819f8e0045ee459ad11629 [file] [log] [blame]
developer05f3b2b2024-08-19 19:17:34 +08001From 84c119a7ad5969f445513f9c5759f8b041620e1f Mon Sep 17 00:00:00 2001
2From: Peter Chiu <chui-hao.chiu@mediatek.com>
3Date: Thu, 16 May 2024 18:03:19 +0800
4Subject: [PATCH 135/199] mtk: mt76: mt7996: add per-band debugfs folder
5
6Add per-band debugfs folder and move upstream debugfs knob to it.
7
8Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
9---
10 mt7996/debugfs.c | 43 +++++++++++++++++++++++++++++++------------
11 mt7996/init.c | 14 +++++++++-----
12 mt7996/mt7996.h | 3 ++-
13 3 files changed, 42 insertions(+), 18 deletions(-)
14
15diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
16index 2c553cf3..9d74f659 100644
17--- a/mt7996/debugfs.c
18+++ b/mt7996/debugfs.c
19@@ -1073,21 +1073,49 @@ mt7996_airtime_read(struct seq_file *s, void *data)
20 return 0;
21 }
22
23-int mt7996_init_debugfs(struct mt7996_phy *phy)
24+int mt7996_init_band_debugfs(struct mt7996_phy *phy)
25 {
26 struct mt7996_dev *dev = phy->dev;
27 struct dentry *dir;
28+ char dir_name[10];
29
30- dir = mt76_register_debugfs_fops(phy->mt76, NULL);
31+ if (!dev->debugfs_dir)
32+ return -EINVAL;
33+
34+ snprintf(dir_name, sizeof(dir_name), "band%d", phy->mt76->band_idx);
35+
36+ dir = debugfs_create_dir(dir_name, dev->debugfs_dir);
37 if (!dir)
38 return -ENOMEM;
39+
40 debugfs_create_file("hw-queues", 0400, dir, phy,
41 &mt7996_hw_queues_fops);
42 debugfs_create_file("xmit-queues", 0400, dir, phy,
43 &mt7996_xmit_queues_fops);
44- debugfs_create_file("tx_stats", 0400, dir, phy, &mt7996_tx_stats_fops);
45 debugfs_create_file("sys_recovery", 0600, dir, phy,
46 &mt7996_sys_recovery_ops);
47+ debugfs_create_file("atf_enable", 0600, dir, phy, &fops_atf_enable);
48+ debugfs_create_file("tx_stats", 0400, dir, phy, &mt7996_tx_stats_fops);
49+ if (phy->mt76->cap.has_5ghz) {
50+ debugfs_create_u32("dfs_hw_pattern", 0400, dir,
51+ &dev->hw_pattern);
52+ debugfs_create_file("radar_trigger", 0200, dir, dev,
53+ &fops_radar_trigger);
54+ debugfs_create_devm_seqfile(dev->mt76.dev, "rdd_monitor", dir,
55+ mt7996_rdd_monitor);
56+ }
57+
58+ return 0;
59+}
60+
61+int mt7996_init_dev_debugfs(struct mt7996_phy *phy)
62+{
63+ struct mt7996_dev *dev = phy->dev;
64+ struct dentry *dir;
65+
66+ dir = mt76_register_debugfs_fops(phy->mt76, NULL);
67+ if (!dir)
68+ return -ENOMEM;
69 debugfs_create_file("fw_debug_wm", 0600, dir, dev, &fops_fw_debug_wm);
70 debugfs_create_file("fw_debug_wa", 0600, dir, dev, &fops_fw_debug_wa);
71 debugfs_create_file("fw_debug_bin", 0600, dir, dev, &fops_fw_debug_bin);
72@@ -1103,18 +1131,9 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
73 debugfs_create_file("otp", 0400, dir, dev, &mt7996_efuse_ops);
74 debugfs_create_devm_seqfile(dev->mt76.dev, "vow_info", dir,
75 mt7996_vow_info_read);
76- debugfs_create_file("atf_enable", 0600, dir, phy, &fops_atf_enable);
77 debugfs_create_devm_seqfile(dev->mt76.dev, "airtime", dir,
78 mt7996_airtime_read);
79
80- if (phy->mt76->cap.has_5ghz) {
81- debugfs_create_u32("dfs_hw_pattern", 0400, dir,
82- &dev->hw_pattern);
83- debugfs_create_file("radar_trigger", 0200, dir, dev,
84- &fops_radar_trigger);
85- debugfs_create_devm_seqfile(dev->mt76.dev, "rdd_monitor", dir,
86- mt7996_rdd_monitor);
87- }
88 debugfs_create_file("fw_debug_muru_disable", 0600, dir, dev,
89 &fops_fw_debug_muru_disable);
90
91diff --git a/mt7996/init.c b/mt7996/init.c
92index 6e20a174..01795404 100644
93--- a/mt7996/init.c
94+++ b/mt7996/init.c
95@@ -787,7 +787,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
96 goto error;
97 }
98
99- ret = mt7996_init_debugfs(phy);
100+ ret = mt7996_init_band_debugfs(phy);
101 if (ret)
102 goto error;
103
104@@ -1708,6 +1708,14 @@ int mt7996_register_device(struct mt7996_dev *dev)
105 if (ret)
106 return ret;
107
108+ ret = mt7996_init_dev_debugfs(&dev->phy);
109+ if (ret)
110+ goto error;
111+
112+ ret = mt7996_init_band_debugfs(&dev->phy);
113+ if (ret)
114+ goto error;
115+
116 ret = mt7996_register_phy(dev, mt7996_phy2(dev), MT_BAND1);
117 if (ret)
118 return ret;
119@@ -1732,10 +1740,6 @@ int mt7996_register_device(struct mt7996_dev *dev)
120 goto error;
121 }
122
123- ret = mt7996_init_debugfs(&dev->phy);
124- if (ret)
125- goto error;
126-
127 ret = mt7996_coredump_register(dev);
128 if (ret)
129 goto error;
130diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
131index c60262ec..08a43e61 100644
132--- a/mt7996/mt7996.h
133+++ b/mt7996/mt7996.h
134@@ -1226,7 +1226,8 @@ int mt7996_dfs_init_radar_detector(struct mt7996_phy *phy);
135 void mt7996_set_stream_he_eht_caps(struct mt7996_phy *phy);
136 void mt7996_set_stream_vht_txbf_caps(struct mt7996_phy *phy);
137 void mt7996_update_channel(struct mt76_phy *mphy);
138-int mt7996_init_debugfs(struct mt7996_phy *phy);
139+int mt7996_init_dev_debugfs(struct mt7996_phy *phy);
140+int mt7996_init_band_debugfs(struct mt7996_phy *phy);
141 void mt7996_debugfs_rx_fw_monitor(struct mt7996_dev *dev, const void *data, int len);
142 bool mt7996_debugfs_rx_log(struct mt7996_dev *dev, const void *data, int len);
143 int mt7996_mcu_add_key(struct mt76_dev *dev, struct mt7996_bss_conf *mconf,
144--
1452.18.0
146