wifi: mt76: add mt76_get_power_bound helper function
authorRazvan Grigore <razvan.grigore@vampirebyte.ro>
Tue, 11 Feb 2025 08:12:43 +0000 (08:12 +0000)
committerFelix Fietkau <nbd@nbd.name>
Wed, 19 Mar 2025 13:47:04 +0000 (14:47 +0100)
This will replace mt7915_get_power_bound function from b/mt7915/mcu.h,
since we will need it also for mt7921 and mt7925

Signed-off-by: Razvan Grigore <razvan.grigore@vampirebyte.ro>
Link: https://patch.msgid.link/20250211081247.5892-2-razvan.grigore@vampirebyte.ro
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mac80211.c
drivers/net/wireless/mediatek/mt76/mt76.h

index 508b472408c200d330b5c8678d3b50679ffcbc53..2c98cc42cd7e6335e2a8c7f5dd8c386df004ae00 100644 (file)
@@ -1697,6 +1697,17 @@ void mt76_wcid_add_poll(struct mt76_dev *dev, struct mt76_wcid *wcid)
 }
 EXPORT_SYMBOL_GPL(mt76_wcid_add_poll);
 
+s8 mt76_get_power_bound(struct mt76_phy *phy, s8 txpower)
+{
+       int n_chains = hweight16(phy->chainmask);
+
+       txpower = mt76_get_sar_power(phy, phy->chandef.chan, txpower * 2);
+       txpower -= mt76_tx_power_nss_delta(n_chains);
+
+       return txpower;
+}
+EXPORT_SYMBOL_GPL(mt76_get_power_bound);
+
 int mt76_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                     unsigned int link_id, int *dbm)
 {
index 05651efb549ecf35a20a56528919ac9c9c8823d6..7596191252dc361cbf138218ac4d837f29c645c7 100644 (file)
@@ -1483,6 +1483,8 @@ void mt76_sta_pre_rcu_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 
 int mt76_get_min_avg_rssi(struct mt76_dev *dev, u8 phy_idx);
 
+s8 mt76_get_power_bound(struct mt76_phy *phy, s8 txpower);
+
 int mt76_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                     unsigned int link_id, int *dbm);
 int mt76_init_sar_power(struct ieee80211_hw *hw,