mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
wifi: mt76: remove dev->wcid_phy_mask
Explicitly check wcid->phy_idx instead. Reduces allocated data size. Link: https://patch.msgid.link/20250102163508.52945-8-nbd@nbd.name Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
82334623af
commit
38a45bead2
|
|
@ -1505,8 +1505,6 @@ mt76_sta_add(struct mt76_phy *phy, struct ieee80211_vif *vif,
|
|||
}
|
||||
|
||||
ewma_signal_init(&wcid->rssi);
|
||||
if (phy->band_idx == MT_BAND1)
|
||||
mt76_wcid_mask_set(dev->wcid_phy_mask, wcid->idx);
|
||||
rcu_assign_pointer(dev->wcid[wcid->idx], wcid);
|
||||
phy->num_sta++;
|
||||
|
||||
|
|
@ -1533,7 +1531,6 @@ void __mt76_sta_remove(struct mt76_phy *phy, struct ieee80211_vif *vif,
|
|||
mt76_wcid_cleanup(dev, wcid);
|
||||
|
||||
mt76_wcid_mask_clear(dev->wcid_mask, idx);
|
||||
mt76_wcid_mask_clear(dev->wcid_phy_mask, idx);
|
||||
phy->num_sta--;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__mt76_sta_remove);
|
||||
|
|
|
|||
|
|
@ -909,7 +909,6 @@ struct mt76_dev {
|
|||
spinlock_t status_lock;
|
||||
|
||||
u32 wcid_mask[DIV_ROUND_UP(MT76_N_WCIDS, 32)];
|
||||
u32 wcid_phy_mask[DIV_ROUND_UP(MT76_N_WCIDS, 32)];
|
||||
|
||||
u64 vif_mask;
|
||||
|
||||
|
|
@ -1474,7 +1473,7 @@ void __mt76_sta_remove(struct mt76_phy *phy, struct ieee80211_vif *vif,
|
|||
void mt76_sta_pre_rcu_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta);
|
||||
|
||||
int mt76_get_min_avg_rssi(struct mt76_dev *dev, bool ext_phy);
|
||||
int mt76_get_min_avg_rssi(struct mt76_dev *dev, u8 phy_idx);
|
||||
|
||||
int mt76_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
unsigned int link_id, int *dbm);
|
||||
|
|
|
|||
|
|
@ -1788,7 +1788,7 @@ mt7603_false_cca_check(struct mt7603_dev *dev)
|
|||
|
||||
mt7603_cca_stats_reset(dev);
|
||||
|
||||
min_signal = mt76_get_min_avg_rssi(&dev->mt76, false);
|
||||
min_signal = mt76_get_min_avg_rssi(&dev->mt76, 0);
|
||||
if (!min_signal) {
|
||||
dev->sensitivity = 0;
|
||||
dev->last_cca_adj = jiffies;
|
||||
|
|
|
|||
|
|
@ -1071,7 +1071,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, false);
|
||||
dev->cal.avg_rssi_all = mt76_get_min_avg_rssi(&dev->mt76, 0);
|
||||
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, false);
|
||||
dev->cal.avg_rssi_all = mt76_get_min_avg_rssi(&dev->mt76, 0);
|
||||
if (!dev->cal.avg_rssi_all)
|
||||
dev->cal.avg_rssi_all = -75;
|
||||
|
||||
|
|
|
|||
|
|
@ -1188,7 +1188,6 @@ mt7925_mac_sta_remove_links(struct mt792x_dev *dev, struct ieee80211_vif *vif,
|
|||
if (link_sta != mlink->pri_link) {
|
||||
mt76_wcid_cleanup(mdev, wcid);
|
||||
mt76_wcid_mask_clear(mdev->wcid_mask, wcid->idx);
|
||||
mt76_wcid_mask_clear(mdev->wcid_phy_mask, wcid->idx);
|
||||
}
|
||||
|
||||
if (msta->deflink_id == link_id)
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ int mt76_wcid_alloc(u32 *mask, int size)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_wcid_alloc);
|
||||
|
||||
int mt76_get_min_avg_rssi(struct mt76_dev *dev, bool ext_phy)
|
||||
int mt76_get_min_avg_rssi(struct mt76_dev *dev, u8 phy_idx)
|
||||
{
|
||||
struct mt76_wcid *wcid;
|
||||
int i, j, min_rssi = 0;
|
||||
|
|
@ -75,20 +75,16 @@ int mt76_get_min_avg_rssi(struct mt76_dev *dev, bool ext_phy)
|
|||
|
||||
for (i = 0; i < ARRAY_SIZE(dev->wcid_mask); i++) {
|
||||
u32 mask = dev->wcid_mask[i];
|
||||
u32 phy_mask = dev->wcid_phy_mask[i];
|
||||
|
||||
if (!mask)
|
||||
continue;
|
||||
|
||||
for (j = i * 32; mask; j++, mask >>= 1, phy_mask >>= 1) {
|
||||
for (j = i * 32; mask; j++, mask >>= 1) {
|
||||
if (!(mask & 1))
|
||||
continue;
|
||||
|
||||
if (!!(phy_mask & 1) != ext_phy)
|
||||
continue;
|
||||
|
||||
wcid = rcu_dereference(dev->wcid[j]);
|
||||
if (!wcid)
|
||||
if (!wcid || wcid->phy_idx != phy_idx)
|
||||
continue;
|
||||
|
||||
spin_lock(&dev->rx_lock);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user