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:

committed by
snandini

parent
a8e24fd6c0
commit
216478aaae
@@ -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
|
||||||
*
|
*
|
||||||
|
@@ -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;
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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];
|
||||||
|
@@ -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, ¶m->peer_eht_cap_macinfo,
|
||||||
|
sizeof(param->peer_eht_cap_macinfo));
|
||||||
qdf_mem_copy(&cmd->peer_eht_cap_phy, ¶m->peer_eht_cap_phyinfo,
|
qdf_mem_copy(&cmd->peer_eht_cap_phy, ¶m->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(¶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,
|
qdf_mem_copy(¶m->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);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user