mt76: mt7615: update peer's bssid when state transition occurs

This makes sure that the driver update peer's bssid when state
transition occurs.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Ryder Lee 2019-06-13 15:13:31 +08:00 committed by Felix Fietkau
parent 1a09d9e0e5
commit e991c4c299
2 changed files with 14 additions and 14 deletions

View File

@ -283,9 +283,8 @@ static void mt7615_bss_info_changed(struct ieee80211_hw *hw,
mutex_lock(&dev->mt76.mutex);
/* TODO: sta mode connect/disconnect
* BSS_CHANGED_ASSOC | BSS_CHANGED_BSSID
*/
if (changed & BSS_CHANGED_ASSOC)
mt7615_mcu_set_bss_info(dev, vif, info->assoc);
/* TODO: update beacon content
* BSS_CHANGED_BEACON

View File

@ -759,22 +759,23 @@ int mt7615_mcu_set_bss_info(struct mt7615_dev *dev,
conn_type = CONNECTION_INFRA_AP;
break;
case NL80211_IFTYPE_STATION: {
struct ieee80211_sta *sta;
struct mt7615_sta *msta;
/* TODO: enable BSS_INFO_UAPSD & BSS_INFO_PM */
if (en) {
struct ieee80211_sta *sta;
struct mt7615_sta *msta;
rcu_read_lock();
rcu_read_lock();
sta = ieee80211_find_sta(vif, vif->bss_conf.bssid);
if (!sta) {
rcu_read_unlock();
return -EINVAL;
}
sta = ieee80211_find_sta(vif, vif->bss_conf.bssid);
if (!sta) {
msta = (struct mt7615_sta *)sta->drv_priv;
tx_wlan_idx = msta->wcid.idx;
rcu_read_unlock();
return -EINVAL;
}
msta = (struct mt7615_sta *)sta->drv_priv;
tx_wlan_idx = msta->wcid.idx;
conn_type = CONNECTION_INFRA_STA;
rcu_read_unlock();
break;
}
default: