diff options
| author | Shayne Chen <shayne.chen@mediatek.com> | 2023-11-02 18:02:56 +0800 |
|---|---|---|
| committer | Felix Fietkau <nbd@nbd.name> | 2023-12-07 18:50:21 +0100 |
| commit | f75e4779d215a7dbe7eb7ab6f1ed075fe66930bc (patch) | |
| tree | c66c67091364f5b20bfe3fcb89753ff9aa7ec4b5 /drivers/net/wireless/mediatek/mt76/mt7996/mcu.h | |
| parent | 11a60bd2a590f8caa89a9079503d9e907e47d129 (diff) | |
| download | linux-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.h | 16 |
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, }; |
