wifi: mac80211: add link_id to eht.c code for MLO

Update the code in eht.c and add the link_id parameter where
necessary.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2022-05-30 23:22:19 +02:00
parent afe0d18190
commit 2b4ad30946
4 changed files with 12 additions and 7 deletions

View File

@ -1778,7 +1778,7 @@ static int sta_apply_parameters(struct ieee80211_local *local,
params->he_capa_len,
params->eht_capa,
params->eht_capa_len,
sta);
sta, 0);
if (params->opmode_notif_used) {
/* returned value is only needed for rc update, but the

View File

@ -12,9 +12,11 @@ ieee80211_eht_cap_ie_to_sta_eht_cap(struct ieee80211_sub_if_data *sdata,
struct ieee80211_supported_band *sband,
const u8 *he_cap_ie, u8 he_cap_len,
const struct ieee80211_eht_cap_elem *eht_cap_ie_elem,
u8 eht_cap_len, struct sta_info *sta)
u8 eht_cap_len, struct sta_info *sta,
unsigned int link_id)
{
struct ieee80211_sta_eht_cap *eht_cap = &sta->sta.deflink.eht_cap;
struct ieee80211_sta_eht_cap *eht_cap =
&sta->sta.link[link_id]->eht_cap;
struct ieee80211_he_cap_elem *he_cap_ie_elem = (void *)he_cap_ie;
u8 eht_ppe_size = 0;
u8 mcs_nss_size;
@ -71,6 +73,8 @@ ieee80211_eht_cap_ie_to_sta_eht_cap(struct ieee80211_sub_if_data *sdata,
eht_cap->has_eht = true;
sta->deflink.cur_max_bandwidth = ieee80211_sta_cap_rx_bw(sta, 0);
sta->sta.deflink.bandwidth = ieee80211_sta_cur_vht_bw(sta, 0);
sta->link[link_id]->cur_max_bandwidth =
ieee80211_sta_cap_rx_bw(sta, link_id);
sta->sta.link[link_id]->bandwidth =
ieee80211_sta_cur_vht_bw(sta, link_id);
}

View File

@ -2577,5 +2577,6 @@ ieee80211_eht_cap_ie_to_sta_eht_cap(struct ieee80211_sub_if_data *sdata,
struct ieee80211_supported_band *sband,
const u8 *he_cap_ie, u8 he_cap_len,
const struct ieee80211_eht_cap_elem *eht_cap_ie_elem,
u8 eht_cap_len, struct sta_info *sta);
u8 eht_cap_len, struct sta_info *sta,
unsigned int link_id);
#endif /* IEEE80211_I_H */

View File

@ -3599,7 +3599,7 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
elems->he_cap_len,
elems->eht_cap,
elems->eht_cap_len,
sta);
sta, 0);
bss_conf->eht_support = sta->sta.deflink.eht_cap.has_eht;
} else {