From 0db925f076ecebf026b93edcf23b4220ba8b0cb0 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 30 Jan 2019 12:18:32 +0100 Subject: [PATCH] mt7603: update HT/VHT capabilities after assoc Signed-off-by: Felix Fietkau --- mt7603/init.c | 1 + mt7603/main.c | 10 +++++++++- mt7603/mt7603.h | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mt7603/init.c b/mt7603/init.c index d633aa47..3b2175e4 100644 --- a/mt7603/init.c +++ b/mt7603/init.c @@ -30,6 +30,7 @@ struct mt7603_dev *mt7603_alloc_device(struct device *pdev) .rx_poll_complete = mt7603_rx_poll_complete, .sta_ps = mt7603_sta_ps, .sta_add = mt7603_sta_add, + .sta_assoc = mt7603_sta_assoc, .sta_remove = mt7603_sta_remove, .update_survey = mt7603_update_channel, }; diff --git a/mt7603/main.c b/mt7603/main.c index 4c4c35c3..74ccd6ed 100644 --- a/mt7603/main.c +++ b/mt7603/main.c @@ -337,7 +337,6 @@ mt7603_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif, msta->wcid.idx = idx; mt7603_wtbl_init(dev, idx, mvif->idx, sta->addr); mt7603_wtbl_set_ps(dev, msta, false); - mt7603_wtbl_update_cap(dev, sta); if (vif->type == NL80211_IFTYPE_AP) set_bit(MT_WCID_FLAG_CHECK_PS, &msta->wcid.flags); @@ -345,6 +344,15 @@ mt7603_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif, return ret; } +void +mt7603_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif, + struct ieee80211_sta *sta) +{ + struct mt7603_dev *dev = container_of(mdev, struct mt7603_dev, mt76); + + mt7603_wtbl_update_cap(dev, sta); +} + void mt7603_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta) diff --git a/mt7603/mt7603.h b/mt7603/mt7603.h index b9973da0..8b9297d0 100644 --- a/mt7603/mt7603.h +++ b/mt7603/mt7603.h @@ -256,6 +256,8 @@ void mt7603_rx_poll_complete(struct mt76_dev *mdev, enum mt76_rxq_id q); void mt7603_sta_ps(struct mt76_dev *mdev, struct ieee80211_sta *sta, bool ps); int mt7603_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta); +void mt7603_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif, + struct ieee80211_sta *sta); void mt7603_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta);