|
@@ -1960,7 +1960,7 @@ static void ath10k_peer_assoc_h_basic(struct ath10k *ar,
|
|
|
ether_addr_copy(arg->addr, sta->addr);
|
|
|
arg->vdev_id = arvif->vdev_id;
|
|
|
arg->peer_aid = aid;
|
|
|
- arg->peer_flags |= WMI_PEER_AUTH;
|
|
|
+ arg->peer_flags |= arvif->ar->wmi.peer_flags->auth;
|
|
|
arg->peer_listen_intval = ath10k_peer_assoc_h_listen_intval(ar, vif);
|
|
|
arg->peer_num_spatial_streams = 1;
|
|
|
arg->peer_caps = vif->bss_conf.assoc_capability;
|
|
@@ -2002,12 +2002,12 @@ static void ath10k_peer_assoc_h_crypto(struct ath10k *ar,
|
|
|
/* FIXME: base on RSN IE/WPA IE is a correct idea? */
|
|
|
if (rsnie || wpaie) {
|
|
|
ath10k_dbg(ar, ATH10K_DBG_WMI, "%s: rsn ie found\n", __func__);
|
|
|
- arg->peer_flags |= WMI_PEER_NEED_PTK_4_WAY;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->need_ptk_4_way;
|
|
|
}
|
|
|
|
|
|
if (wpaie) {
|
|
|
ath10k_dbg(ar, ATH10K_DBG_WMI, "%s: wpa ie found\n", __func__);
|
|
|
- arg->peer_flags |= WMI_PEER_NEED_GTK_2_WAY;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->need_gtk_2_way;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2104,7 +2104,7 @@ static void ath10k_peer_assoc_h_ht(struct ath10k *ar,
|
|
|
ath10k_peer_assoc_h_vht_masked(vht_mcs_mask))
|
|
|
return;
|
|
|
|
|
|
- arg->peer_flags |= WMI_PEER_HT;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->ht;
|
|
|
arg->peer_max_mpdu = (1 << (IEEE80211_HT_MAX_AMPDU_FACTOR +
|
|
|
ht_cap->ampdu_factor)) - 1;
|
|
|
|
|
@@ -2115,10 +2115,10 @@ static void ath10k_peer_assoc_h_ht(struct ath10k *ar,
|
|
|
arg->peer_rate_caps |= WMI_RC_HT_FLAG;
|
|
|
|
|
|
if (ht_cap->cap & IEEE80211_HT_CAP_LDPC_CODING)
|
|
|
- arg->peer_flags |= WMI_PEER_LDPC;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->ldbc;
|
|
|
|
|
|
if (sta->bandwidth >= IEEE80211_STA_RX_BW_40) {
|
|
|
- arg->peer_flags |= WMI_PEER_40MHZ;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->bw40;
|
|
|
arg->peer_rate_caps |= WMI_RC_CW40_FLAG;
|
|
|
}
|
|
|
|
|
@@ -2132,7 +2132,7 @@ static void ath10k_peer_assoc_h_ht(struct ath10k *ar,
|
|
|
|
|
|
if (ht_cap->cap & IEEE80211_HT_CAP_TX_STBC) {
|
|
|
arg->peer_rate_caps |= WMI_RC_TX_STBC_FLAG;
|
|
|
- arg->peer_flags |= WMI_PEER_STBC;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->stbc;
|
|
|
}
|
|
|
|
|
|
if (ht_cap->cap & IEEE80211_HT_CAP_RX_STBC) {
|
|
@@ -2140,7 +2140,7 @@ static void ath10k_peer_assoc_h_ht(struct ath10k *ar,
|
|
|
stbc = stbc >> IEEE80211_HT_CAP_RX_STBC_SHIFT;
|
|
|
stbc = stbc << WMI_RC_RX_STBC_FLAG_S;
|
|
|
arg->peer_rate_caps |= stbc;
|
|
|
- arg->peer_flags |= WMI_PEER_STBC;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->stbc;
|
|
|
}
|
|
|
|
|
|
if (ht_cap->mcs.rx_mask[1] && ht_cap->mcs.rx_mask[2])
|
|
@@ -2321,10 +2321,10 @@ static void ath10k_peer_assoc_h_vht(struct ath10k *ar,
|
|
|
if (ath10k_peer_assoc_h_vht_masked(vht_mcs_mask))
|
|
|
return;
|
|
|
|
|
|
- arg->peer_flags |= WMI_PEER_VHT;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->vht;
|
|
|
|
|
|
if (def.chan->band == IEEE80211_BAND_2GHZ)
|
|
|
- arg->peer_flags |= WMI_PEER_VHT_2G;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->vht_2g;
|
|
|
|
|
|
arg->peer_vht_caps = vht_cap->cap;
|
|
|
|
|
@@ -2341,7 +2341,7 @@ static void ath10k_peer_assoc_h_vht(struct ath10k *ar,
|
|
|
ampdu_factor)) - 1);
|
|
|
|
|
|
if (sta->bandwidth == IEEE80211_STA_RX_BW_80)
|
|
|
- arg->peer_flags |= WMI_PEER_80MHZ;
|
|
|
+ arg->peer_flags |= ar->wmi.peer_flags->bw80;
|
|
|
|
|
|
arg->peer_vht_rates.rx_max_rate =
|
|
|
__le16_to_cpu(vht_cap->vht_mcs.rx_highest);
|
|
@@ -2366,27 +2366,28 @@ static void ath10k_peer_assoc_h_qos(struct ath10k *ar,
|
|
|
switch (arvif->vdev_type) {
|
|
|
case WMI_VDEV_TYPE_AP:
|
|
|
if (sta->wme)
|
|
|
- arg->peer_flags |= WMI_PEER_QOS;
|
|
|
+ arg->peer_flags |= arvif->ar->wmi.peer_flags->qos;
|
|
|
|
|
|
if (sta->wme && sta->uapsd_queues) {
|
|
|
- arg->peer_flags |= WMI_PEER_APSD;
|
|
|
+ arg->peer_flags |= arvif->ar->wmi.peer_flags->apsd;
|
|
|
arg->peer_rate_caps |= WMI_RC_UAPSD_FLAG;
|
|
|
}
|
|
|
break;
|
|
|
case WMI_VDEV_TYPE_STA:
|
|
|
if (vif->bss_conf.qos)
|
|
|
- arg->peer_flags |= WMI_PEER_QOS;
|
|
|
+ arg->peer_flags |= arvif->ar->wmi.peer_flags->qos;
|
|
|
break;
|
|
|
case WMI_VDEV_TYPE_IBSS:
|
|
|
if (sta->wme)
|
|
|
- arg->peer_flags |= WMI_PEER_QOS;
|
|
|
+ arg->peer_flags |= arvif->ar->wmi.peer_flags->qos;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
ath10k_dbg(ar, ATH10K_DBG_MAC, "mac peer %pM qos %d\n",
|
|
|
- sta->addr, !!(arg->peer_flags & WMI_PEER_QOS));
|
|
|
+ sta->addr, !!(arg->peer_flags &
|
|
|
+ arvif->ar->wmi.peer_flags->qos));
|
|
|
}
|
|
|
|
|
|
static bool ath10k_mac_sta_has_ofdm_only(struct ieee80211_sta *sta)
|