mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-15 23:56:55 +07:00
mt76: add multiple wiphy support to mt76_get_min_avg_rssi
Allow tracking clients of both wiphys separately Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
beaaeb6b68
commit
8af63fed33
@ -793,7 +793,7 @@ int mt76_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
void __mt76_sta_remove(struct mt76_dev *dev, struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta);
|
||||
|
||||
int mt76_get_min_avg_rssi(struct mt76_dev *dev);
|
||||
int mt76_get_min_avg_rssi(struct mt76_dev *dev, bool ext_phy);
|
||||
|
||||
int mt76_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
int *dbm);
|
||||
|
@ -1737,7 +1737,7 @@ mt7603_false_cca_check(struct mt7603_dev *dev)
|
||||
|
||||
mt7603_cca_stats_reset(dev);
|
||||
|
||||
min_signal = mt76_get_min_avg_rssi(&dev->mt76);
|
||||
min_signal = mt76_get_min_avg_rssi(&dev->mt76, false);
|
||||
if (!min_signal) {
|
||||
dev->sensitivity = 0;
|
||||
dev->last_cca_adj = jiffies;
|
||||
|
@ -1266,7 +1266,7 @@ mt7615_mac_adjust_sensitivity(struct mt7615_dev *dev,
|
||||
int signal;
|
||||
|
||||
sensitivity = ofdm ? &dev->ofdm_sensitivity : &dev->cck_sensitivity;
|
||||
signal = mt76_get_min_avg_rssi(&dev->mt76);
|
||||
signal = mt76_get_min_avg_rssi(&dev->mt76, false);
|
||||
if (!signal) {
|
||||
mt7615_mac_set_default_sensitivity(dev);
|
||||
return;
|
||||
|
@ -1069,7 +1069,7 @@ mt76x0_phy_update_channel_gain(struct mt76x02_dev *dev)
|
||||
u8 gain_delta;
|
||||
int low_gain;
|
||||
|
||||
dev->cal.avg_rssi_all = mt76_get_min_avg_rssi(&dev->mt76);
|
||||
dev->cal.avg_rssi_all = mt76_get_min_avg_rssi(&dev->mt76, false);
|
||||
if (!dev->cal.avg_rssi_all)
|
||||
dev->cal.avg_rssi_all = -75;
|
||||
|
||||
|
@ -280,7 +280,7 @@ void mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
|
||||
int low_gain;
|
||||
u32 val;
|
||||
|
||||
dev->cal.avg_rssi_all = mt76_get_min_avg_rssi(&dev->mt76);
|
||||
dev->cal.avg_rssi_all = mt76_get_min_avg_rssi(&dev->mt76, false);
|
||||
if (!dev->cal.avg_rssi_all)
|
||||
dev->cal.avg_rssi_all = -75;
|
||||
|
||||
|
@ -64,7 +64,7 @@ int mt76_wcid_alloc(unsigned long *mask, int size)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_wcid_alloc);
|
||||
|
||||
int mt76_get_min_avg_rssi(struct mt76_dev *dev)
|
||||
int mt76_get_min_avg_rssi(struct mt76_dev *dev, bool ext_phy)
|
||||
{
|
||||
struct mt76_wcid *wcid;
|
||||
int i, j, min_rssi = 0;
|
||||
@ -75,14 +75,18 @@ int mt76_get_min_avg_rssi(struct mt76_dev *dev)
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(dev->wcid_mask); i++) {
|
||||
unsigned long mask = dev->wcid_mask[i];
|
||||
unsigned long phy_mask = dev->wcid_phy_mask[i];
|
||||
|
||||
if (!mask)
|
||||
continue;
|
||||
|
||||
for (j = i * BITS_PER_LONG; mask; j++, mask >>= 1) {
|
||||
for (j = i * BITS_PER_LONG; mask; j++, mask >>= 1, phy_mask >>= 1) {
|
||||
if (!(mask & 1))
|
||||
continue;
|
||||
|
||||
if (!!(phy_mask & 1) != ext_phy)
|
||||
continue;
|
||||
|
||||
wcid = rcu_dereference(dev->wcid[j]);
|
||||
if (!wcid)
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user