mt76: add channel switch announcement support
Use the appropriate mac80211 callbacks after beacon transmission Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
@@ -734,3 +734,42 @@ int mt76_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_get_txpower);
|
||||
|
||||
static void
|
||||
__mt76_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
|
||||
{
|
||||
if (vif->csa_active && ieee80211_csa_is_complete(vif))
|
||||
ieee80211_csa_finish(vif);
|
||||
}
|
||||
|
||||
void mt76_csa_finish(struct mt76_dev *dev)
|
||||
{
|
||||
if (!dev->csa_complete)
|
||||
return;
|
||||
|
||||
ieee80211_iterate_active_interfaces_atomic(dev->hw,
|
||||
IEEE80211_IFACE_ITER_RESUME_ALL,
|
||||
__mt76_csa_finish, dev);
|
||||
|
||||
dev->csa_complete = 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_csa_finish);
|
||||
|
||||
static void
|
||||
__mt76_csa_check(void *priv, u8 *mac, struct ieee80211_vif *vif)
|
||||
{
|
||||
struct mt76_dev *dev = priv;
|
||||
|
||||
if (!vif->csa_active)
|
||||
return;
|
||||
|
||||
dev->csa_complete |= ieee80211_csa_is_complete(vif);
|
||||
}
|
||||
|
||||
void mt76_csa_check(struct mt76_dev *dev)
|
||||
{
|
||||
ieee80211_iterate_active_interfaces_atomic(dev->hw,
|
||||
IEEE80211_IFACE_ITER_RESUME_ALL,
|
||||
__mt76_csa_check, dev);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_csa_check);
|
||||
|
Reference in New Issue
Block a user