Message ID | 20250209011856.6726-5-razvan.grigore@vampirebyte.ro |
---|---|
State | New |
Headers | show |
Series | wifi: mt76: fix returned txpower for mt7921 and mt7925 | expand |
Hi, I think we should do the same for MT7996? Best regards, Shengyu 在 2025/2/9 9:18, Razvan Grigore 写道: > Refactor for making use of mt76_get_power_bound instead of the specific mt7915_get_power_bound, since we need this for other chipsets as well when calculating txpower > > Signed-off-by: Razvan Grigore <razvan.grigore@vampirebyte.ro> > --- > drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c | 8 ++++---- > drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 4 ++-- > drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 12 ------------ > 3 files changed, 6 insertions(+), 18 deletions(-) > > diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c > index 578013884e43..db8560f7e657 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c > +++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c > @@ -1084,13 +1084,13 @@ mt7915_rate_txpower_set(struct file *file, const char __user *user_buf, > return -EINVAL; > > if (pwr160) > - pwr160 = mt7915_get_power_bound(phy, pwr160); > + pwr160 = mt76_get_power_bound(mphy, pwr160); > if (pwr80) > - pwr80 = mt7915_get_power_bound(phy, pwr80); > + pwr80 = mt76_get_power_bound(mphy, pwr80); > if (pwr40) > - pwr40 = mt7915_get_power_bound(phy, pwr40); > + pwr40 = mt76_get_power_bound(mphy, pwr40); > if (pwr20) > - pwr20 = mt7915_get_power_bound(phy, pwr20); > + pwr20 = mt76_get_power_bound(mphy, pwr20); > > if (pwr160 < 0 || pwr80 < 0 || pwr40 < 0 || pwr20 < 0) > return -EINVAL; > diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c > index 9d790f234e82..3643c72bb68d 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c > +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c > @@ -3323,7 +3323,7 @@ int mt7915_mcu_set_txpower_frame(struct mt7915_phy *phy, > if (ret) > return ret; > > - txpower = mt7915_get_power_bound(phy, txpower); > + txpower = mt76_get_power_bound(mphy, txpower); > if (txpower > mphy->txpower_cur || txpower < 0) > return -EINVAL; > > @@ -3373,7 +3373,7 @@ int mt7915_mcu_set_txpower_sku(struct mt7915_phy *phy) > int i, idx; > int tx_power; > > - tx_power = mt7915_get_power_bound(phy, hw->conf.power_level); > + tx_power = mt76_get_power_bound(mphy, hw->conf.power_level); > tx_power = mt76_get_rate_power_limits(mphy, mphy->chandef.chan, > &limits_array, tx_power); > mphy->txpower_cur = tx_power; > diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h > index 49476a4182fd..092ed504a8f2 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h > +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h > @@ -515,16 +515,4 @@ enum { > sizeof(struct bss_info_bmc_rate) +\ > sizeof(struct bss_info_ext_bss)) > > -static inline s8 > -mt7915_get_power_bound(struct mt7915_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; > -} > - > #endif
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c index 578013884e43..db8560f7e657 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c @@ -1084,13 +1084,13 @@ mt7915_rate_txpower_set(struct file *file, const char __user *user_buf, return -EINVAL; if (pwr160) - pwr160 = mt7915_get_power_bound(phy, pwr160); + pwr160 = mt76_get_power_bound(mphy, pwr160); if (pwr80) - pwr80 = mt7915_get_power_bound(phy, pwr80); + pwr80 = mt76_get_power_bound(mphy, pwr80); if (pwr40) - pwr40 = mt7915_get_power_bound(phy, pwr40); + pwr40 = mt76_get_power_bound(mphy, pwr40); if (pwr20) - pwr20 = mt7915_get_power_bound(phy, pwr20); + pwr20 = mt76_get_power_bound(mphy, pwr20); if (pwr160 < 0 || pwr80 < 0 || pwr40 < 0 || pwr20 < 0) return -EINVAL; diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c index 9d790f234e82..3643c72bb68d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c @@ -3323,7 +3323,7 @@ int mt7915_mcu_set_txpower_frame(struct mt7915_phy *phy, if (ret) return ret; - txpower = mt7915_get_power_bound(phy, txpower); + txpower = mt76_get_power_bound(mphy, txpower); if (txpower > mphy->txpower_cur || txpower < 0) return -EINVAL; @@ -3373,7 +3373,7 @@ int mt7915_mcu_set_txpower_sku(struct mt7915_phy *phy) int i, idx; int tx_power; - tx_power = mt7915_get_power_bound(phy, hw->conf.power_level); + tx_power = mt76_get_power_bound(mphy, hw->conf.power_level); tx_power = mt76_get_rate_power_limits(mphy, mphy->chandef.chan, &limits_array, tx_power); mphy->txpower_cur = tx_power; diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h index 49476a4182fd..092ed504a8f2 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h @@ -515,16 +515,4 @@ enum { sizeof(struct bss_info_bmc_rate) +\ sizeof(struct bss_info_ext_bss)) -static inline s8 -mt7915_get_power_bound(struct mt7915_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; -} - #endif
Refactor for making use of mt76_get_power_bound instead of the specific mt7915_get_power_bound, since we need this for other chipsets as well when calculating txpower Signed-off-by: Razvan Grigore <razvan.grigore@vampirebyte.ro> --- drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c | 8 ++++---- drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 4 ++-- drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 12 ------------ 3 files changed, 6 insertions(+), 18 deletions(-)