| From f3eec1dbbbf7cb3096017f968e616d3311172c1e Mon Sep 17 00:00:00 2001 |
| From: Howard Hsu <howard-yh.hsu@mediatek.com> |
| Date: Fri, 22 Dec 2023 10:53:00 +0800 |
| Subject: [PATCH 1044/1044] mtk: wifi: mt76: mt7996: support disable muru debug |
| info when recording fwlog |
| |
| When we record fwlog, we will also enable recording muru debug info log by |
| default. However, in certain test scenarios, this can result in |
| recording too many logs, causing inconvenience during issue analysis. |
| Therefore, this commit adds an debug option, fw_debug_muru_disable, in |
| debugfs. User can modify this option to enable/disable recording muru |
| debug info log. |
| |
| [Usage] |
| Set: |
| $ echo val > debugfs/fw_debug_muru_disable |
| Get: |
| $ cat debugfs/fw_debug_muru_disable |
| |
| val can be the following values: |
| 0 = enable recording muru debug info (Default value) |
| 1 = disable recording muru debug info |
| |
| Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com> |
| --- |
| mt7996/debugfs.c | 29 +++++++++++++++++++++++++++++ |
| mt7996/mt7996.h | 1 + |
| 2 files changed, 30 insertions(+) |
| |
| diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c |
| index 2a5f82da..dff9e467 100644 |
| --- a/mt7996/debugfs.c |
| +++ b/mt7996/debugfs.c |
| @@ -463,6 +463,9 @@ mt7996_fw_debug_muru_set(void *data) |
| } debug; |
| int ret; |
| |
| + if (dev->fw_debug_muru_disable) |
| + return 0; |
| + |
| for (debug = DEBUG_BSRP_STATUS; debug <= DEBUG_MEC_UPDATE_AMSDU; debug++) { |
| ret = mt7996_mcu_muru_dbg_info(dev, debug, |
| dev->fw_debug_bin & BIT(0)); |
| @@ -907,6 +910,30 @@ static const struct file_operations mt7996_efuse_ops = { |
| .llseek = default_llseek, |
| }; |
| |
| +static int |
| +mt7996_fw_debug_muru_disable_set(void *data, u64 val) |
| +{ |
| + struct mt7996_dev *dev = data; |
| + |
| + dev->fw_debug_muru_disable = !!val; |
| + |
| + return 0; |
| +} |
| + |
| +static int |
| +mt7996_fw_debug_muru_disable_get(void *data, u64 *val) |
| +{ |
| + struct mt7996_dev *dev = data; |
| + |
| + *val = dev->fw_debug_muru_disable; |
| + |
| + return 0; |
| +} |
| + |
| +DEFINE_DEBUGFS_ATTRIBUTE(fops_fw_debug_muru_disable, |
| + mt7996_fw_debug_muru_disable_get, |
| + mt7996_fw_debug_muru_disable_set, "%lld\n"); |
| + |
| int mt7996_init_debugfs(struct mt7996_phy *phy) |
| { |
| struct mt7996_dev *dev = phy->dev; |
| @@ -943,6 +970,8 @@ int mt7996_init_debugfs(struct mt7996_phy *phy) |
| debugfs_create_devm_seqfile(dev->mt76.dev, "rdd_monitor", dir, |
| mt7996_rdd_monitor); |
| } |
| + debugfs_create_file("fw_debug_muru_disable", 0600, dir, dev, |
| + &fops_fw_debug_muru_disable); |
| |
| if (phy == &dev->phy) |
| dev->debugfs_dir = dir; |
| diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h |
| index 95db69ca..2227c08a 100644 |
| --- a/mt7996/mt7996.h |
| +++ b/mt7996/mt7996.h |
| @@ -472,6 +472,7 @@ struct mt7996_dev { |
| u8 fw_debug_wa; |
| u8 fw_debug_bin; |
| u16 fw_debug_seq; |
| + bool fw_debug_muru_disable; |
| |
| struct dentry *debugfs_dir; |
| struct rchan *relay_fwlog; |
| -- |
| 2.18.0 |
| |