Will report both control registers, and list both the raw u32 value as well as reporting each flag in plain text. Signed-off-by: Rory Little <rory@xxxxxxxxxxxxxxx> --- .../wireless/mediatek/mt76/mt7996/debugfs.c | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c index d5503cfc0848..c16606792539 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c @@ -842,6 +842,48 @@ 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_rxfilter_show(struct seq_file *file, void *data) +{ + struct mt7996_phy *phy = file->private; + + mutex_lock(&phy->dev->mt76.mutex); + + seq_printf(file, "CR: 0x%08x\n", phy->rxfilter); + +#define MT7996_RFCR_PRINT(flag) do { \ + if (phy->rxfilter & MT_WF_RFCR_##flag) \ + seq_printf(file, #flag "\n"); \ + } while (0) + + MT7996_RFCR_PRINT(DROP_STBC_MULTI); + MT7996_RFCR_PRINT(DROP_FCSFAIL); + MT7996_RFCR_PRINT(DROP_PROBEREQ); + MT7996_RFCR_PRINT(DROP_MCAST); + MT7996_RFCR_PRINT(DROP_BCAST); + MT7996_RFCR_PRINT(DROP_MCAST_FILTERED); + MT7996_RFCR_PRINT(DROP_A3_MAC); + MT7996_RFCR_PRINT(DROP_A3_BSSID); + MT7996_RFCR_PRINT(DROP_A2_BSSID); + MT7996_RFCR_PRINT(DROP_OTHER_BEACON); + MT7996_RFCR_PRINT(DROP_FRAME_REPORT); + MT7996_RFCR_PRINT(DROP_CTL_RSV); + MT7996_RFCR_PRINT(DROP_CTS); + MT7996_RFCR_PRINT(DROP_RTS); + MT7996_RFCR_PRINT(DROP_DUPLICATE); + MT7996_RFCR_PRINT(DROP_OTHER_BSS); + MT7996_RFCR_PRINT(DROP_OTHER_UC); + MT7996_RFCR_PRINT(DROP_OTHER_TIM); + MT7996_RFCR_PRINT(DROP_NDPA); + MT7996_RFCR_PRINT(DROP_UNWANTED_CTL); + + mutex_unlock(&phy->dev->mt76.mutex); + + return 0; +} + +DEFINE_SHOW_ATTRIBUTE(mt7996_rxfilter); + static int mt7996_init_radio_phy_debugfs(struct mt7996_phy *phy) { @@ -854,6 +896,8 @@ mt7996_init_radio_phy_debugfs(struct mt7996_phy *phy) if (IS_ERR_OR_NULL(dir)) return -ENOMEM; + debugfs_create_file("rxfilter", 0400, dir, phy, &mt7996_rxfilter_fops); + phy->debugfs_dir = dir; return 0; -- 2.48.1