@@ -1267,6 +1267,7 @@ static void ath11k_peer_assoc_h_he(struct ath11k *ar,
sizeof(arg->peer_he_cap_phyinfo));
memcpy(&arg->peer_he_ops, &vif->bss_conf.he_operation,
sizeof(arg->peer_he_ops));
+ arg->peer_he_cap_macinfo_internal = 0x0;
if (he_cap->he_cap_elem.phy_cap_info[6] &
IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) {
@@ -1707,7 +1707,9 @@ int ath11k_wmi_send_peer_assoc_cmd(struct ath11k *ar,
cmd->peer_phymode = param->peer_phymode;
/* Update 11ax capabilities */
- cmd->peer_he_cap_info = param->peer_he_cap_macinfo;
+ cmd->peer_he_cap_info = param->peer_he_cap_macinfo[0];
+ cmd->peer_he_cap_info_ext = param->peer_he_cap_macinfo[1];
+ cmd->peer_he_cap_info_internal = param->peer_he_cap_macinfo_internal;
cmd->peer_he_ops = param->peer_he_ops;
memcpy(&cmd->peer_he_cap_phy, ¶m->peer_he_cap_phyinfo,
sizeof(param->peer_he_cap_phyinfo));
@@ -3971,7 +3971,8 @@ struct peer_assoc_params {
u8 peer_mac[ETH_ALEN];
bool he_flag;
- u32 peer_he_cap_macinfo;
+ u32 peer_he_cap_macinfo[2];
+ u32 peer_he_cap_macinfo_internal;
u32 peer_he_ops;
u32 peer_he_cap_phyinfo[WMI_HOST_MAX_HECAP_PHY_SIZE];
u32 peer_he_mcs_count;
@@ -4007,6 +4008,8 @@ struct wmi_peer_assoc_complete_cmd {
u32 peer_he_ops;
u32 peer_he_cap_phy[WMI_MAX_HECAP_PHY_SIZE];
u32 peer_he_mcs;
+ u32 peer_he_cap_info_ext;
+ u32 peer_he_cap_info_internal;
} __packed;
struct wmi_stop_scan_cmd {
The firmware can take 2 additional values for he_mac_cap that were not set yet. Signed-off-by: John Crispin <john@phrozen.org> --- drivers/net/wireless/ath/ath11k/mac.c | 1 + drivers/net/wireless/ath/ath11k/wmi.c | 4 +++- drivers/net/wireless/ath/ath11k/wmi.h | 5 ++++- 3 files changed, 8 insertions(+), 2 deletions(-)