This patch is to save the transmit power envelope element and power constraint in struct ieee80211_bss_conf for 6GHz. Signed-off-by: Wen Gong <wgong@xxxxxxxxxxxxxx> --- net/mac80211/mlme.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 2e33a1263518..5b02d78bd934 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -5076,6 +5076,27 @@ static int ieee80211_prep_channel(struct ieee80211_sub_if_data *sdata, else he_oper = NULL; + if (is_6ghz) { + struct ieee802_11_elems elems; + struct ieee80211_bss_conf *bss_conf; + u8 i, n; + + ieee802_11_parse_elems(ies->data, ies->len, false, &elems, + NULL, NULL); + bss_conf = &sdata->vif.bss_conf; + bss_conf->pwr_reduction = 0; + if (elems.pwr_constr_elem) + bss_conf->pwr_reduction = *elems.pwr_constr_elem; + + memset(bss_conf->tx_pwr_env, 0, sizeof(bss_conf->tx_pwr_env)); + bss_conf->tx_pwr_env_num = elems.tx_pwr_env_num; + n = min_t(u8, elems.tx_pwr_env_num, + ARRAY_SIZE(elems.tx_pwr_env)); + for (i = 0; i < n; i++) + memcpy(&bss_conf->tx_pwr_env[i], elems.tx_pwr_env[i], + elems.tx_pwr_env_len[i]); + } + if (!ieee80211_verify_sta_he_mcs_support(sband, he_oper)) ifmgd->flags |= IEEE80211_STA_DISABLE_HE; } -- 2.31.1