diff --git a/target_if/core/inc/target_if.h b/target_if/core/inc/target_if.h index c0df54b8af..7a98371e3c 100644 --- a/target_if/core/inc/target_if.h +++ b/target_if/core/inc/target_if.h @@ -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 * for a hw-mode * @psoc_info: pointer to structure target_psoc_info + * @mode: hw mode * * API to get mac_phy_cap for a specified hw-mode * diff --git a/target_if/init_deinit/inc/service_ready_param.h b/target_if/init_deinit/inc/service_ready_param.h index 40fd2fe77c..2277ef9e5a 100644 --- a/target_if/init_deinit/inc/service_ready_param.h +++ b/target_if/init_deinit/inc/service_ready_param.h @@ -251,6 +251,13 @@ struct wlan_psoc_host_hw_mode_caps { * @pdev_id: Pdev id * @phy_id: Phy id * @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 { uint32_t hw_mode_id; diff --git a/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h b/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h index e617a6cc5b..3051e5c620 100644 --- a/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h +++ b/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h @@ -470,6 +470,8 @@ enum element_ie { * @WLAN_EXTN_ELEMID_HE_6G_CAP: HE 6GHz Band Capabilities IE * @WLAN_EXTN_ELEMID_SRP: spatial reuse parameter 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 { WLAN_EXTN_ELEMID_MAX_CHAN_SWITCH_TIME = 34, @@ -1421,8 +1423,8 @@ struct wlan_ie_hecaps { * @elem_id: EHT caps IE * @elem_len: EHT caps IE len * @elem_id_extn: EHT caps extension id - * @he_mac_cap: EHT mac capabilities - * @he_phy_cap: EHT phy capabilities + * @eht_mac_cap: EHT mac capabilities + * @eht_phy_cap: EHT phy capabilities * @phy_cap_bytes: EHT phy capability bytes * @supported_ch_width_set: Supported channel width set * @mcs_bw_map: MCS NSS map per bandwidth @@ -1448,7 +1450,7 @@ struct wlan_ie_ehtcaps { } qdf_packed; /** - * struct wlan_ie_heops - EHT operation element + * struct wlan_ie_ehtops - EHT operation element * @elem_id: EHT caps IE * @elem_len: EHT caps IE len * @elem_id_extn: EHT caps extension id diff --git a/umac/scan/dispatcher/inc/wlan_scan_utils_api.h b/umac/scan/dispatcher/inc/wlan_scan_utils_api.h index 825807abdd..faaf09b2e3 100644 --- a/umac/scan/dispatcher/inc/wlan_scan_utils_api.h +++ b/umac/scan/dispatcher/inc/wlan_scan_utils_api.h @@ -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->rsnxe = conv_ptr(ie_lst->rsnxe, old_ptr, new_ptr); #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->ehtop = conv_ptr(ie_lst->ehtop, old_ptr, new_ptr); #endif diff --git a/umac/scan/dispatcher/src/wlan_scan_utils_api.c b/umac/scan/dispatcher/src/wlan_scan_utils_api.c index d751ed9c90..c6f0593273 100644 --- a/umac/scan/dispatcher/src/wlan_scan_utils_api.c +++ b/umac/scan/dispatcher/src/wlan_scan_utils_api.c @@ -186,10 +186,10 @@ static bool util_is_pureg_rate(uint8_t *rates, uint8_t nrates) #ifdef WLAN_FEATURE_11BE static enum wlan_phymode -util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev, - struct scan_cache_entry *scan_params, - enum wlan_phymode phymode, - uint8_t band_mask) +util_scan_get_phymode_11be(struct wlan_objmgr_pdev *pdev, + struct scan_cache_entry *scan_params, + enum wlan_phymode phymode, + uint8_t band_mask) { struct wlan_ie_ehtops *eht_ops; @@ -231,10 +231,10 @@ util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev, } #else static enum wlan_phymode -util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev, - struct scan_cache_entry *scan_params, - enum wlan_phymode phymode, - uint8_t band_mask) +util_scan_get_phymode_11be(struct wlan_objmgr_pdev *pdev, + struct scan_cache_entry *scan_params, + enum wlan_phymode phymode, + uint8_t band_mask) { return phymode; } @@ -392,8 +392,8 @@ util_scan_get_phymode_6g(struct wlan_objmgr_pdev *pdev, he_6g_params->chan_freq_seg1, band_mask); - phymode = util_scan_get_phymode_5g_11be(pdev, scan_params, - phymode, band_mask); + phymode = util_scan_get_phymode_11be(pdev, scan_params, + phymode, band_mask); return phymode; } @@ -528,8 +528,8 @@ util_scan_get_phymode_5g(struct wlan_objmgr_pdev *pdev, break; } - phymode = util_scan_get_phymode_5g_11be(pdev, scan_params, - phymode, band_mask); + phymode = util_scan_get_phymode_11be(pdev, scan_params, + phymode, band_mask); return phymode; } diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 6abe8549f9..6482734a17 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -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_tx_mcs_set[WMI_HOST_MAX_HE_RATE_SET]; #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_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_rx_mcs_set[WMI_HOST_MAX_EHT_RATE_SET]; uint32_t peer_eht_tx_mcs_set[WMI_HOST_MAX_EHT_RATE_SET]; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 06623adbc7..6d0d00cc32 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -2584,34 +2584,30 @@ static inline void update_peer_flags_tlv_ehtinfo( wmi_peer_assoc_complete_cmd_fixed_param * cmd, struct peer_assoc_params *param, uint8_t *buf_ptr) { - wmi_he_rate_set *eht_mcs; + wmi_eht_rate_set *eht_mcs; 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; + qdf_mem_copy(&cmd->peer_eht_cap_mac, ¶m->peer_eht_cap_macinfo, + sizeof(param->peer_eht_cap_macinfo)); qdf_mem_copy(&cmd->peer_eht_cap_phy, ¶m->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, - (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; /* Loop through the EHT rate set */ for (i = 0; i < param->peer_eht_mcs_count; i++) { - eht_mcs = (wmi_he_rate_set *)buf_ptr; - WMITLV_SET_HDR(eht_mcs, WMITLV_TAG_STRUC_wmi_he_rate_set, - WMITLV_GET_STRUCT_TLVLEN(wmi_he_rate_set)); + eht_mcs = (wmi_eht_rate_set *)buf_ptr; + WMITLV_SET_HDR(eht_mcs, WMITLV_TAG_STRUC_wmi_eht_rate_set, + WMITLV_GET_STRUCT_TLVLEN(wmi_eht_rate_set)); eht_mcs->rx_mcs_set = param->peer_eht_rx_mcs_set[i]; eht_mcs->tx_mcs_set = param->peer_eht_tx_mcs_set[i]; wmi_debug("EHT idx %d RxMCSmap %x TxMCSmap %x ", 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) && @@ -2629,9 +2625,9 @@ static inline void update_peer_flags_tlv_ehtinfo( 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 ", - cmd->peer_eht_cap_info, - cmd->peer_eht_ops, cmd->peer_he_cap_info_ext, + wmi_debug("EHT cap_mac %x %x ehtops %x EHT phy %x %x %x ", + cmd->peer_eht_cap_mac[0], + 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[2]); } @@ -11419,18 +11415,17 @@ static void extract_mac_phy_cap_ehtcaps( { 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_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_cap_info_internal = mac_phy_caps->eht_cap_info_internal; + qdf_mem_copy(¶m->eht_cap_info_2G, + &mac_phy_caps->eht_cap_mac_info_2G, + sizeof(param->eht_cap_info_2G)); + qdf_mem_copy(¶m->eht_cap_info_5G, + &mac_phy_caps->eht_cap_mac_info_5G, + sizeof(param->eht_cap_info_5G)); + qdf_mem_copy(¶m->eht_cap_phy_info_2G, &mac_phy_caps->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, 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", - mac_phy_caps->eht_cap_info_2G, - mac_phy_caps->eht_cap_info_2G_ext, - mac_phy_caps->eht_cap_info_5G, - mac_phy_caps->eht_cap_info_5G_ext, + 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_mac_info_2G[0], + mac_phy_caps->eht_cap_mac_info_2G[1], + mac_phy_caps->eht_cap_mac_info_5G[0], + 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_cap_info_internal);