qcacmn: EHT changes as per latest fw cmn headers

Updated the EHT related variables as per latest fw cmn headers.
Address review comments from previous EHT gerrits.

Change-Id: I67cd58a4efcf3e06d2ca3b5570432593b1d80825
CRs-Fixed: 2902607
This commit is contained in:
Venkateswara Swamy Bandaru
2021-03-30 14:30:05 +05:30
committed by snandini
parent a8e24fd6c0
commit 216478aaae
7 changed files with 51 additions and 45 deletions

View File

@@ -1440,6 +1440,7 @@ static inline struct wlan_psoc_host_mac_phy_caps
* target_psoc_get_mac_phy_cap_ext2_for_mode() - get mac_phy_caps_ext2 * target_psoc_get_mac_phy_cap_ext2_for_mode() - get mac_phy_caps_ext2
* for a hw-mode * for a hw-mode
* @psoc_info: pointer to structure target_psoc_info * @psoc_info: pointer to structure target_psoc_info
* @mode: hw mode
* *
* API to get mac_phy_cap for a specified hw-mode * API to get mac_phy_cap for a specified hw-mode
* *

View File

@@ -251,6 +251,13 @@ struct wlan_psoc_host_hw_mode_caps {
* @pdev_id: Pdev id * @pdev_id: Pdev id
* @phy_id: Phy id * @phy_id: Phy id
* @wireless_modes_ext: Extended wireless modes * @wireless_modes_ext: Extended wireless modes
* @eht_cap_info_2G[]: EHT capability info field of 802.11ax, WMI_HE_CAP defines
* @eht_supp_mcs_2G: EHT Supported MCS Set field Rx/Tx same
* @eht_cap_info_5G[]: EHT capability info field of 802.11ax, WMI_HE_CAP defines
* @eht_supp_mcs_5G: EHT Supported MCS Set field Rx/Tx same
* @eht_cap_phy_info_2G: 2G EHT capability phy field
* @eht_cap_phy_info_5G: 5G EHT capability phy field
* @eht_cap_info_internal: EHT PHY internal feature capability
*/ */
struct wlan_psoc_host_mac_phy_caps_ext2 { struct wlan_psoc_host_mac_phy_caps_ext2 {
uint32_t hw_mode_id; uint32_t hw_mode_id;

View File

@@ -470,6 +470,8 @@ enum element_ie {
* @WLAN_EXTN_ELEMID_HE_6G_CAP: HE 6GHz Band Capabilities IE * @WLAN_EXTN_ELEMID_HE_6G_CAP: HE 6GHz Band Capabilities IE
* @WLAN_EXTN_ELEMID_SRP: spatial reuse parameter IE * @WLAN_EXTN_ELEMID_SRP: spatial reuse parameter IE
* @WLAN_EXTN_ELEMID_NONINHERITANCE: Non inheritance IE * @WLAN_EXTN_ELEMID_NONINHERITANCE: Non inheritance IE
* @WLAN_EXTN_ELEMID_EHTCAP: EHT Capabilities IE
* @WLAN_EXTN_ELEMID_EHTOP: EHT Operation IE
*/ */
enum extn_element_ie { enum extn_element_ie {
WLAN_EXTN_ELEMID_MAX_CHAN_SWITCH_TIME = 34, WLAN_EXTN_ELEMID_MAX_CHAN_SWITCH_TIME = 34,
@@ -1421,8 +1423,8 @@ struct wlan_ie_hecaps {
* @elem_id: EHT caps IE * @elem_id: EHT caps IE
* @elem_len: EHT caps IE len * @elem_len: EHT caps IE len
* @elem_id_extn: EHT caps extension id * @elem_id_extn: EHT caps extension id
* @he_mac_cap: EHT mac capabilities * @eht_mac_cap: EHT mac capabilities
* @he_phy_cap: EHT phy capabilities * @eht_phy_cap: EHT phy capabilities
* @phy_cap_bytes: EHT phy capability bytes * @phy_cap_bytes: EHT phy capability bytes
* @supported_ch_width_set: Supported channel width set * @supported_ch_width_set: Supported channel width set
* @mcs_bw_map: MCS NSS map per bandwidth * @mcs_bw_map: MCS NSS map per bandwidth
@@ -1448,7 +1450,7 @@ struct wlan_ie_ehtcaps {
} qdf_packed; } qdf_packed;
/** /**
* struct wlan_ie_heops - EHT operation element * struct wlan_ie_ehtops - EHT operation element
* @elem_id: EHT caps IE * @elem_id: EHT caps IE
* @elem_len: EHT caps IE len * @elem_len: EHT caps IE len
* @elem_id_extn: EHT caps extension id * @elem_id_extn: EHT caps extension id

View File

@@ -730,6 +730,7 @@ util_scan_copy_beacon_data(struct scan_cache_entry *new_entry,
ie_lst->single_pmk = conv_ptr(ie_lst->single_pmk, old_ptr, new_ptr); ie_lst->single_pmk = conv_ptr(ie_lst->single_pmk, old_ptr, new_ptr);
ie_lst->rsnxe = conv_ptr(ie_lst->rsnxe, old_ptr, new_ptr); ie_lst->rsnxe = conv_ptr(ie_lst->rsnxe, old_ptr, new_ptr);
#ifdef WLAN_FEATURE_11BE #ifdef WLAN_FEATURE_11BE
/* This macro will be removed once 11be is enabled */
ie_lst->ehtcap = conv_ptr(ie_lst->ehtcap, old_ptr, new_ptr); ie_lst->ehtcap = conv_ptr(ie_lst->ehtcap, old_ptr, new_ptr);
ie_lst->ehtop = conv_ptr(ie_lst->ehtop, old_ptr, new_ptr); ie_lst->ehtop = conv_ptr(ie_lst->ehtop, old_ptr, new_ptr);
#endif #endif

View File

@@ -186,10 +186,10 @@ static bool util_is_pureg_rate(uint8_t *rates, uint8_t nrates)
#ifdef WLAN_FEATURE_11BE #ifdef WLAN_FEATURE_11BE
static enum wlan_phymode static enum wlan_phymode
util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev, util_scan_get_phymode_11be(struct wlan_objmgr_pdev *pdev,
struct scan_cache_entry *scan_params, struct scan_cache_entry *scan_params,
enum wlan_phymode phymode, enum wlan_phymode phymode,
uint8_t band_mask) uint8_t band_mask)
{ {
struct wlan_ie_ehtops *eht_ops; struct wlan_ie_ehtops *eht_ops;
@@ -231,10 +231,10 @@ util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev,
} }
#else #else
static enum wlan_phymode static enum wlan_phymode
util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev, util_scan_get_phymode_11be(struct wlan_objmgr_pdev *pdev,
struct scan_cache_entry *scan_params, struct scan_cache_entry *scan_params,
enum wlan_phymode phymode, enum wlan_phymode phymode,
uint8_t band_mask) uint8_t band_mask)
{ {
return phymode; return phymode;
} }
@@ -392,8 +392,8 @@ util_scan_get_phymode_6g(struct wlan_objmgr_pdev *pdev,
he_6g_params->chan_freq_seg1, he_6g_params->chan_freq_seg1,
band_mask); band_mask);
phymode = util_scan_get_phymode_5g_11be(pdev, scan_params, phymode = util_scan_get_phymode_11be(pdev, scan_params,
phymode, band_mask); phymode, band_mask);
return phymode; return phymode;
} }
@@ -528,8 +528,8 @@ util_scan_get_phymode_5g(struct wlan_objmgr_pdev *pdev,
break; break;
} }
phymode = util_scan_get_phymode_5g_11be(pdev, scan_params, phymode = util_scan_get_phymode_11be(pdev, scan_params,
phymode, band_mask); phymode, band_mask);
return phymode; return phymode;
} }

View File

@@ -1129,9 +1129,9 @@ struct peer_assoc_params {
uint32_t peer_he_rx_mcs_set[WMI_HOST_MAX_HE_RATE_SET]; uint32_t peer_he_rx_mcs_set[WMI_HOST_MAX_HE_RATE_SET];
uint32_t peer_he_tx_mcs_set[WMI_HOST_MAX_HE_RATE_SET]; uint32_t peer_he_tx_mcs_set[WMI_HOST_MAX_HE_RATE_SET];
#ifdef WLAN_FEATURE_11BE #ifdef WLAN_FEATURE_11BE
uint32_t peer_eht_cap_macinfo[WMI_HOST_MAX_HECAP_MAC_SIZE]; uint32_t peer_eht_cap_macinfo[WMI_HOST_MAX_EHTCAP_MAC_SIZE];
uint32_t peer_eht_ops; uint32_t peer_eht_ops;
uint32_t peer_eht_cap_phyinfo[WMI_HOST_MAX_HECAP_PHY_SIZE]; uint32_t peer_eht_cap_phyinfo[WMI_HOST_MAX_EHTCAP_PHY_SIZE];
uint32_t peer_eht_mcs_count; uint32_t peer_eht_mcs_count;
uint32_t peer_eht_rx_mcs_set[WMI_HOST_MAX_EHT_RATE_SET]; uint32_t peer_eht_rx_mcs_set[WMI_HOST_MAX_EHT_RATE_SET];
uint32_t peer_eht_tx_mcs_set[WMI_HOST_MAX_EHT_RATE_SET]; uint32_t peer_eht_tx_mcs_set[WMI_HOST_MAX_EHT_RATE_SET];

View File

@@ -2584,34 +2584,30 @@ static inline void update_peer_flags_tlv_ehtinfo(
wmi_peer_assoc_complete_cmd_fixed_param * cmd, wmi_peer_assoc_complete_cmd_fixed_param * cmd,
struct peer_assoc_params *param, uint8_t *buf_ptr) struct peer_assoc_params *param, uint8_t *buf_ptr)
{ {
wmi_he_rate_set *eht_mcs; wmi_eht_rate_set *eht_mcs;
int i; int i;
cmd->peer_eht_cap_info =
param->peer_eht_cap_macinfo[WMI_HOST_EHTCAP_MAC_WORD1];
cmd->peer_eht_cap_info_ext =
param->peer_eht_cap_macinfo[WMI_HOST_EHTCAP_MAC_WORD2];
cmd->peer_eht_ops = param->peer_eht_ops; cmd->peer_eht_ops = param->peer_eht_ops;
qdf_mem_copy(&cmd->peer_eht_cap_mac, &param->peer_eht_cap_macinfo,
sizeof(param->peer_eht_cap_macinfo));
qdf_mem_copy(&cmd->peer_eht_cap_phy, &param->peer_eht_cap_phyinfo, qdf_mem_copy(&cmd->peer_eht_cap_phy, &param->peer_eht_cap_phyinfo,
sizeof(param->peer_eht_cap_phyinfo)); sizeof(param->peer_eht_cap_phyinfo));
cmd->peer_eht_num_mcs = param->peer_eht_mcs_count;
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC, WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
(param->peer_eht_mcs_count * sizeof(wmi_he_rate_set))); (param->peer_eht_mcs_count * sizeof(wmi_eht_rate_set)));
buf_ptr += WMI_TLV_HDR_SIZE; buf_ptr += WMI_TLV_HDR_SIZE;
/* Loop through the EHT rate set */ /* Loop through the EHT rate set */
for (i = 0; i < param->peer_eht_mcs_count; i++) { for (i = 0; i < param->peer_eht_mcs_count; i++) {
eht_mcs = (wmi_he_rate_set *)buf_ptr; eht_mcs = (wmi_eht_rate_set *)buf_ptr;
WMITLV_SET_HDR(eht_mcs, WMITLV_TAG_STRUC_wmi_he_rate_set, WMITLV_SET_HDR(eht_mcs, WMITLV_TAG_STRUC_wmi_eht_rate_set,
WMITLV_GET_STRUCT_TLVLEN(wmi_he_rate_set)); WMITLV_GET_STRUCT_TLVLEN(wmi_eht_rate_set));
eht_mcs->rx_mcs_set = param->peer_eht_rx_mcs_set[i]; eht_mcs->rx_mcs_set = param->peer_eht_rx_mcs_set[i];
eht_mcs->tx_mcs_set = param->peer_eht_tx_mcs_set[i]; eht_mcs->tx_mcs_set = param->peer_eht_tx_mcs_set[i];
wmi_debug("EHT idx %d RxMCSmap %x TxMCSmap %x ", wmi_debug("EHT idx %d RxMCSmap %x TxMCSmap %x ",
i, eht_mcs->rx_mcs_set, eht_mcs->tx_mcs_set); i, eht_mcs->rx_mcs_set, eht_mcs->tx_mcs_set);
buf_ptr += sizeof(wmi_he_rate_set); buf_ptr += sizeof(wmi_eht_rate_set);
} }
if ((param->eht_flag) && (param->peer_eht_mcs_count > 1) && if ((param->eht_flag) && (param->peer_eht_mcs_count > 1) &&
@@ -2629,9 +2625,9 @@ static inline void update_peer_flags_tlv_ehtinfo(
QDF_MAC_ADDR_REF(param->peer_mac)); QDF_MAC_ADDR_REF(param->peer_mac));
} }
wmi_debug("EHT cap_info %x ops %x EHT cap_info_ext %x EHT phy %x %x %x ", wmi_debug("EHT cap_mac %x %x ehtops %x EHT phy %x %x %x ",
cmd->peer_eht_cap_info, cmd->peer_eht_cap_mac[0],
cmd->peer_eht_ops, cmd->peer_he_cap_info_ext, cmd->peer_eht_cap_mac[1], cmd->peer_eht_ops,
cmd->peer_eht_cap_phy[0], cmd->peer_he_cap_phy[1], cmd->peer_eht_cap_phy[0], cmd->peer_he_cap_phy[1],
cmd->peer_eht_cap_phy[2]); cmd->peer_eht_cap_phy[2]);
} }
@@ -11419,18 +11415,17 @@ static void extract_mac_phy_cap_ehtcaps(
{ {
uint32_t i; uint32_t i;
param->eht_cap_info_2G[WMI_HOST_EHTCAP_MAC_WORD1] =
mac_phy_caps->eht_cap_info_2G;
param->eht_cap_info_2G[WMI_HOST_EHTCAP_MAC_WORD2] =
mac_phy_caps->eht_cap_info_2G_ext;
param->eht_supp_mcs_2G = mac_phy_caps->eht_supp_mcs_2G; param->eht_supp_mcs_2G = mac_phy_caps->eht_supp_mcs_2G;
param->eht_cap_info_5G[WMI_HOST_EHTCAP_MAC_WORD1] =
mac_phy_caps->eht_cap_info_5G;
param->eht_cap_info_5G[WMI_HOST_EHTCAP_MAC_WORD2] =
mac_phy_caps->eht_cap_info_5G_ext;
param->eht_supp_mcs_5G = mac_phy_caps->eht_supp_mcs_5G; param->eht_supp_mcs_5G = mac_phy_caps->eht_supp_mcs_5G;
param->eht_cap_info_internal = mac_phy_caps->eht_cap_info_internal; param->eht_cap_info_internal = mac_phy_caps->eht_cap_info_internal;
qdf_mem_copy(&param->eht_cap_info_2G,
&mac_phy_caps->eht_cap_mac_info_2G,
sizeof(param->eht_cap_info_2G));
qdf_mem_copy(&param->eht_cap_info_5G,
&mac_phy_caps->eht_cap_mac_info_5G,
sizeof(param->eht_cap_info_5G));
qdf_mem_copy(&param->eht_cap_phy_info_2G, qdf_mem_copy(&param->eht_cap_phy_info_2G,
&mac_phy_caps->eht_cap_phy_info_2G, &mac_phy_caps->eht_cap_phy_info_2G,
sizeof(param->eht_cap_phy_info_2G)); sizeof(param->eht_cap_phy_info_2G));
@@ -11438,11 +11433,11 @@ static void extract_mac_phy_cap_ehtcaps(
&mac_phy_caps->eht_cap_phy_info_5G, &mac_phy_caps->eht_cap_phy_info_5G,
sizeof(param->eht_cap_phy_info_5G)); sizeof(param->eht_cap_phy_info_5G));
wmi_debug("EHT mac caps: cap_info_2G %x, cap_info_2G_ext %x, cap_info_5G %x, cap_info_5G_ext %x, supp_mcs_2G %x, supp_mcs_5G %x, info_internal %x", wmi_debug("EHT mac caps: mac cap_info_2G %x %x, mac cap_info_5G %x %x, supp_mcs_2G %x, supp_mcs_5G %x, info_internal %x",
mac_phy_caps->eht_cap_info_2G, mac_phy_caps->eht_cap_mac_info_2G[0],
mac_phy_caps->eht_cap_info_2G_ext, mac_phy_caps->eht_cap_mac_info_2G[1],
mac_phy_caps->eht_cap_info_5G, mac_phy_caps->eht_cap_mac_info_5G[0],
mac_phy_caps->eht_cap_info_5G_ext, mac_phy_caps->eht_cap_mac_info_5G[1],
mac_phy_caps->eht_supp_mcs_2G, mac_phy_caps->eht_supp_mcs_5G, mac_phy_caps->eht_supp_mcs_2G, mac_phy_caps->eht_supp_mcs_5G,
mac_phy_caps->eht_cap_info_internal); mac_phy_caps->eht_cap_info_internal);