These can be used instead of reporting just from the first phy, or using one file for all phys, as has been done previously. Signed-off-by: Rory Little <rory@xxxxxxxxxxxxxxx> --- .../wireless/mediatek/mt76/mt7996/debugfs.c | 25 +++++++++++++++++++ .../wireless/mediatek/mt76/mt7996/mt7996.h | 2 ++ 2 files changed, 27 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c index 4a28db17a287..3548b2bd9b72 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c @@ -842,9 +842,28 @@ mt7996_rf_regval_set(void *data, u64 val) DEFINE_DEBUGFS_ATTRIBUTE(fops_rf_regval, mt7996_rf_regval_get, mt7996_rf_regval_set, "0x%08llx\n"); +static int +mt7996_init_radio_phy_debugfs(struct mt7996_phy *phy) +{ + struct dentry *dir; + char fname[12]; + + snprintf(fname, sizeof(fname), "radio_phy%d", phy->mt76->band_idx); + dir = debugfs_create_dir(fname, phy->dev->debugfs_dir); + + if (IS_ERR_OR_NULL(dir)) + return -ENOMEM; + + phy->debugfs_dir = dir; + + return 0; +} + int mt7996_init_debugfs(struct mt7996_dev *dev) { + int err; struct dentry *dir; + struct mt7996_phy *phy; dir = mt76_register_debugfs_fops(&dev->mphy, NULL); if (!dir) @@ -877,6 +896,12 @@ int mt7996_init_debugfs(struct mt7996_dev *dev) dev->debugfs_dir = dir; + mt7996_for_each_phy(dev, phy) { + err = mt7996_init_radio_phy_debugfs(phy); + if (err) + return err; + } + return 0; } diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h b/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h index 43e646ed6094..3300b7c8e4d2 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h @@ -296,6 +296,8 @@ struct mt7996_phy { bool has_aux_rx; bool counter_reset; + + struct dentry *debugfs_dir; }; struct mt7996_dev { -- 2.45.2