qcacmn: Fill peer assoc mlo params in peer assoc request
Fill peer assoc mlo params in peer assoc request command. Also add definitions to the WMI_SERVICE_11BE. Change-Id: Ied7959e022ee27f3bd698b84dc801491175f85b3 CRs-Fixed: 2934417
This commit is contained in:

committed by
Madan Koyyalamudi

parent
c68ad7037a
commit
17f12e5b39
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2014-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -192,6 +192,10 @@ enum mgmt_dot11_mode {
|
|||||||
DOT11_MODE_AUTO = 0x09,
|
DOT11_MODE_AUTO = 0x09,
|
||||||
DOT11_MODE_11AX = 0x0a,
|
DOT11_MODE_11AX = 0x0a,
|
||||||
DOT11_MODE_11AX_ONLY = 0x0b,
|
DOT11_MODE_11AX_ONLY = 0x0b,
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
DOT11_MODE_11BE = 0x0c,
|
||||||
|
DOT11_MODE_11BE_ONLY = 0x0d,
|
||||||
|
#endif
|
||||||
DOT11_MODE_MAX = 0xff,
|
DOT11_MODE_MAX = 0xff,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -5186,6 +5186,9 @@ typedef enum {
|
|||||||
wmi_service_dcs_awgn_int_support,
|
wmi_service_dcs_awgn_int_support,
|
||||||
#ifdef WLAN_FEATURE_IGMP_OFFLOAD
|
#ifdef WLAN_FEATURE_IGMP_OFFLOAD
|
||||||
wmi_service_igmp_offload_support,
|
wmi_service_igmp_offload_support,
|
||||||
|
#endif
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
wmi_service_11be,
|
||||||
#endif
|
#endif
|
||||||
wmi_services_max,
|
wmi_services_max,
|
||||||
} wmi_conv_service_ids;
|
} wmi_conv_service_ids;
|
||||||
|
@@ -2641,14 +2641,39 @@ static inline void update_peer_flags_tlv_ehtinfo(
|
|||||||
|
|
||||||
#ifdef WLAN_FEATURE_11BE
|
#ifdef WLAN_FEATURE_11BE
|
||||||
static
|
static
|
||||||
uint32_t wmi_eht_rate_set_len(struct peer_assoc_params *param)
|
uint32_t wmi_eht_peer_assoc_params_len(struct peer_assoc_params *param)
|
||||||
{
|
{
|
||||||
return (sizeof(wmi_he_rate_set) * param->peer_eht_mcs_count
|
return (sizeof(wmi_peer_assoc_mlo_params) + WMI_TLV_HDR_SIZE) +
|
||||||
|
(sizeof(wmi_he_rate_set) * param->peer_eht_mcs_count
|
||||||
+ WMI_TLV_HDR_SIZE);
|
+ WMI_TLV_HDR_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void wmi_populate_service_11be(uint32_t *wmi_service)
|
||||||
|
{
|
||||||
|
wmi_service[wmi_service_11be] = WMI_SERVICE_11BE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t wmi_update_peer_assoc_mlo_params(uint8_t *buf_ptr)
|
||||||
|
{
|
||||||
|
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
|
||||||
|
sizeof(wmi_peer_assoc_mlo_params));
|
||||||
|
WMITLV_SET_HDR(buf_ptr + WMI_TLV_HDR_SIZE,
|
||||||
|
WMITLV_TAG_STRUC_wmi_peer_assoc_mlo_params,
|
||||||
|
WMITLV_GET_STRUCT_TLVLEN(wmi_peer_assoc_mlo_params));
|
||||||
|
return WMI_TLV_HDR_SIZE + sizeof(wmi_peer_assoc_mlo_params);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
static
|
static
|
||||||
uint32_t wmi_eht_rate_set_len(struct peer_assoc_params *param)
|
uint32_t wmi_eht_peer_assoc_params_len(struct peer_assoc_params *param)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void wmi_populate_service_11be(uint32_t *wmi_service)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t wmi_update_peer_assoc_mlo_params(uint8_t *buf_ptr)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -2686,7 +2711,7 @@ static QDF_STATUS send_peer_assoc_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
sizeof(wmi_vht_rate_set) +
|
sizeof(wmi_vht_rate_set) +
|
||||||
(sizeof(wmi_he_rate_set) * param->peer_he_mcs_count
|
(sizeof(wmi_he_rate_set) * param->peer_he_mcs_count
|
||||||
+ WMI_TLV_HDR_SIZE)
|
+ WMI_TLV_HDR_SIZE)
|
||||||
+ wmi_eht_rate_set_len(param);
|
+ wmi_eht_peer_assoc_params_len(param);
|
||||||
|
|
||||||
buf = wmi_buf_alloc(wmi_handle, len);
|
buf = wmi_buf_alloc(wmi_handle, len);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
@@ -2804,7 +2829,7 @@ static QDF_STATUS send_peer_assoc_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
QDF_MAC_ADDR_REF(param->peer_mac));
|
QDF_MAC_ADDR_REF(param->peer_mac));
|
||||||
}
|
}
|
||||||
|
|
||||||
wmi_debug("vdev_id %d associd %d peer_flags %x rate_caps %x "
|
pr_err("vdev_id %d associd %d peer_flags %x rate_caps %x "
|
||||||
"peer_caps %x listen_intval %d ht_caps %x max_mpdu %d "
|
"peer_caps %x listen_intval %d ht_caps %x max_mpdu %d "
|
||||||
"nss %d phymode %d peer_mpdu_density %d "
|
"nss %d phymode %d peer_mpdu_density %d "
|
||||||
"cmd->peer_vht_caps %x "
|
"cmd->peer_vht_caps %x "
|
||||||
@@ -2823,6 +2848,8 @@ static QDF_STATUS send_peer_assoc_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
cmd->peer_he_cap_phy[2],
|
cmd->peer_he_cap_phy[2],
|
||||||
cmd->peer_bw_rxnss_override);
|
cmd->peer_bw_rxnss_override);
|
||||||
|
|
||||||
|
buf_ptr += wmi_update_peer_assoc_mlo_params(buf_ptr);
|
||||||
|
|
||||||
update_peer_flags_tlv_ehtinfo(cmd, param, buf_ptr);
|
update_peer_flags_tlv_ehtinfo(cmd, param, buf_ptr);
|
||||||
|
|
||||||
wmi_mtrace(WMI_PEER_ASSOC_CMDID, cmd->vdev_id, 0);
|
wmi_mtrace(WMI_PEER_ASSOC_CMDID, cmd->vdev_id, 0);
|
||||||
@@ -16078,6 +16105,7 @@ static void populate_tlv_service(uint32_t *wmi_service)
|
|||||||
#endif
|
#endif
|
||||||
wmi_service[wmi_service_dcs_awgn_int_support] =
|
wmi_service[wmi_service_dcs_awgn_int_support] =
|
||||||
WMI_SERVICE_DCS_AWGN_INT_SUPPORT;
|
WMI_SERVICE_DCS_AWGN_INT_SUPPORT;
|
||||||
|
wmi_populate_service_11be(wmi_service);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user