summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorRyder Lee <ryder.lee@mediatek.com>2022-11-22 10:53:10 +0300
committerFelix Fietkau <nbd@nbd.name>2022-12-01 19:29:14 +0300
commitbd2404d428215eda4c2466d59a780d568546cdfd (patch)
treefab423a0c88e8f73d584deba2f40ae5435754894 /drivers/net
parent3dc00ecf242ee3d75aa0b2aebaf65f69eafc8d7d (diff)
downloadlinux-bd2404d428215eda4c2466d59a780d568546cdfd.tar.xz
wifi: mt76: mt7915: add basedband Txpower info into debugfs
This helps user to debug Txpower propagation path easily. Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c19
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7915/regs.h4
2 files changed, 20 insertions, 3 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
index 096cb8a4db3d..c322fcc19d67 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
@@ -967,11 +967,18 @@ mt7915_rate_txpower_show(struct seq_file *file, void *data)
"RU484/SU40", "RU996/SU80", "RU2x996/SU160"
};
struct mt7915_phy *phy = file->private;
+ struct mt7915_dev *dev = phy->dev;
s8 txpower[MT7915_SKU_RATE_NUM], *buf;
- int i;
+ u32 reg;
+ int i, ret;
+
+ ret = mt7915_mcu_get_txpower_sku(phy, txpower, sizeof(txpower));
+ if (ret)
+ return ret;
+
+ /* Txpower propagation path: TMAC -> TXV -> BBP */
+ seq_printf(file, "\nPhy %d\n", phy != &dev->phy);
- seq_printf(file, "\nBand %d\n", phy != &phy->dev->phy);
- mt7915_mcu_get_txpower_sku(phy, txpower, sizeof(txpower));
for (i = 0, buf = txpower; i < ARRAY_SIZE(mt7915_sku_group_len); i++) {
u8 mcs_num = mt7915_sku_group_len[i];
@@ -982,6 +989,12 @@ mt7915_rate_txpower_show(struct seq_file *file, void *data)
buf += mt7915_sku_group_len[i];
}
+ reg = is_mt7915(&dev->mt76) ? MT_WF_PHY_TPC_CTRL_STAT(phy->band_idx) :
+ MT_WF_PHY_TPC_CTRL_STAT_MT7916(phy->band_idx);
+
+ seq_printf(file, "\nBaseband transmit power %ld\n",
+ mt76_get_field(dev, reg, MT_WF_PHY_TPC_POWER));
+
return 0;
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/regs.h b/drivers/net/wireless/mediatek/mt76/mt7915/regs.h
index 42a19e7b95d6..aca1b2f1e9e3 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/regs.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/regs.h
@@ -1186,6 +1186,10 @@ enum offs_rev {
#define MT_WF_PHY_RXTD12_IRPI_SW_CLR_ONLY BIT(18)
#define MT_WF_PHY_RXTD12_IRPI_SW_CLR BIT(29)
+#define MT_WF_PHY_TPC_CTRL_STAT(_phy) MT_WF_PHY(0xe7a0 + ((_phy) << 16))
+#define MT_WF_PHY_TPC_CTRL_STAT_MT7916(_phy) MT_WF_PHY(0xe7a0 + ((_phy) << 20))
+#define MT_WF_PHY_TPC_POWER GENMASK(15, 8)
+
#define MT_MCU_WM_CIRQ_BASE 0x89010000
#define MT_MCU_WM_CIRQ(ofs) (MT_MCU_WM_CIRQ_BASE + (ofs))
#define MT_MCU_WM_CIRQ_IRQ_MASK_CLR_ADDR MT_MCU_WM_CIRQ(0x80)