summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
diff options
context:
space:
mode:
authorShayne Chen <shayne.chen@mediatek.com>2023-11-02 18:02:56 +0800
committerFelix Fietkau <nbd@nbd.name>2023-12-07 18:50:21 +0100
commitf75e4779d215a7dbe7eb7ab6f1ed075fe66930bc (patch)
treec66c67091364f5b20bfe3fcb89753ff9aa7ec4b5 /drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
parent11a60bd2a590f8caa89a9079503d9e907e47d129 (diff)
downloadlinux-f75e4779d215a7dbe7eb7ab6f1ed075fe66930bc.tar.gz
linux-f75e4779d215a7dbe7eb7ab6f1ed075fe66930bc.tar.bz2
linux-f75e4779d215a7dbe7eb7ab6f1ed075fe66930bc.zip
wifi: mt76: mt7996: add txpower setting support
Add support for setting txpower from upper layer and configuring per-rate txpower limit table. Co-developed-by: Allen Ye <allen.ye@mediatek.com> Signed-off-by: Allen Ye <allen.ye@mediatek.com> Co-developed-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com> Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com> Signed-off-by: Shayne Chen <shayne.chen@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt7996/mcu.h')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7996/mcu.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
index a3eae32c8f10..1562c8a6a821 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
@@ -762,6 +762,18 @@ enum {
#define MT7996_MAX_BSS_OFFLOAD_SIZE (MT7996_MAX_BEACON_SIZE + \
MT7996_BEACON_UPDATE_SIZE)
+static inline s8
+mt7996_get_power_bound(struct mt7996_phy *phy, s8 txpower)
+{
+ struct mt76_phy *mphy = phy->mt76;
+ int n_chains = hweight16(mphy->chainmask);
+
+ txpower = mt76_get_sar_power(mphy, mphy->chandef.chan, txpower * 2);
+ txpower -= mt76_tx_power_nss_delta(n_chains);
+
+ return txpower;
+}
+
enum {
UNI_BAND_CONFIG_RADIO_ENABLE,
UNI_BAND_CONFIG_RTS_THRESHOLD = 0x08,
@@ -831,6 +843,10 @@ enum {
};
enum {
+ UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL = 4,
+};
+
+enum {
UNI_CMD_ACCESS_REG_BASIC = 0x0,
UNI_CMD_ACCESS_RF_REG_BASIC,
};