qcacmn: Add EHT PPE threshold support

Add support for EHT PPE threshold's. Store 2G and 5G thresholds received
in service ready. Fill peer PPE thresholds for EHT peer.

Change-Id: Id5c8310cbf34c59a3d88072b37ce3f871354ed17
CRs-Fixed: 3128586
This commit is contained in:
Venkateswara Swamy Bandaru
2022-02-14 21:57:18 +05:30
committed by Madan Koyyalamudi
parent 0de5f8943a
commit 804b9e2382
3 changed files with 32 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -265,6 +265,8 @@ struct wlan_psoc_host_hw_mode_caps {
* @eht_cap_info_internal: EHT PHY internal feature capability
* @eht_supp_mcs_ext_2G: 2G EHT Supported MCS Set for Rx/Tx as per 11be D1.2
* @eht_supp_mcs_ext_5G: 5G EHT Supported MCS Set for Rx/Tx as per 11be D1.2
* @eht_ppet2G: 2G EHT PPET info
* @eht_ppet5G: 5G EHT PPET info
*/
struct wlan_psoc_host_mac_phy_caps_ext2 {
uint32_t hw_mode_id;
@@ -281,6 +283,8 @@ struct wlan_psoc_host_mac_phy_caps_ext2 {
uint32_t eht_cap_info_internal;
uint32_t eht_supp_mcs_ext_2G[PSOC_HOST_EHT_MCS_NSS_MAP_2G_SIZE];
uint32_t eht_supp_mcs_ext_5G[PSOC_HOST_EHT_MCS_NSS_MAP_5G_SIZE];
struct wlan_psoc_host_ppe_threshold eht_ppet2G;
struct wlan_psoc_host_ppe_threshold eht_ppet5G;
#endif
};

View File

@@ -1145,6 +1145,7 @@ struct peer_assoc_ml_partner_links {
* @peer_eht_mcs_count: Peer EHT MCS TX/RX MAP count
* @peer_eht_rx_mcs_set: Peer EHT RX MCS MAP
* @peer_eht_tx_mcs_set: Peer EHT TX MCS MAP
* @peer_eht_ppet: Peer EHT PPET info
* @peer_ppet: Peer HE PPET info
* @peer_bss_max_idle_option: Peer BSS Max Idle option update
* @akm: AKM info
@@ -1224,6 +1225,7 @@ struct peer_assoc_params {
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];
uint16_t puncture_pattern;
struct wmi_host_ppe_threshold peer_eht_ppet;
#endif
struct wmi_host_ppe_threshold peer_ppet;
u_int8_t peer_bsscolor_rept_info;

View File

@@ -2757,6 +2757,8 @@ static uint8_t *update_peer_flags_tlv_ehtinfo(
sizeof(param->peer_eht_cap_macinfo));
qdf_mem_copy(&cmd->peer_eht_cap_phy, &param->peer_eht_cap_phyinfo,
sizeof(param->peer_eht_cap_phyinfo));
qdf_mem_copy(&cmd->peer_eht_ppet, &param->peer_eht_ppet,
sizeof(param->peer_eht_ppet));
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
(param->peer_eht_mcs_count * sizeof(wmi_eht_rate_set)));
@@ -12645,6 +12647,11 @@ static void extract_mac_phy_cap_ehtcaps(
&mac_phy_caps->eht_supp_mcs_ext_5G,
sizeof(param->eht_supp_mcs_ext_5G));
qdf_mem_copy(&param->eht_ppet2G, &mac_phy_caps->eht_ppet2G,
sizeof(param->eht_ppet2G));
qdf_mem_copy(&param->eht_ppet5G, &mac_phy_caps->eht_ppet5G,
sizeof(param->eht_ppet5G));
wmi_debug("EHT mac caps: mac cap_info_2G %x, mac cap_info_5G %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_5G[0],
@@ -12655,24 +12662,38 @@ static void extract_mac_phy_cap_ehtcaps(
wmi_nofl_debug("2G:");
for (i = 0; i < PSOC_HOST_MAX_EHT_PHY_SIZE; i++) {
wmi_nofl_debug("index %d value %d",
wmi_nofl_debug("index %d value %x",
i, param->eht_cap_phy_info_2G[i]);
}
wmi_nofl_debug("5G:");
for (i = 0; i < PSOC_HOST_MAX_EHT_PHY_SIZE; i++) {
wmi_nofl_debug("index %d value %d",
wmi_nofl_debug("index %d value %x",
i, param->eht_cap_phy_info_5G[i]);
}
wmi_nofl_debug("2G MCS ext Map:");
for (i = 0; i < PSOC_HOST_EHT_MCS_NSS_MAP_2G_SIZE; i++) {
wmi_nofl_debug("index %d value %d",
wmi_nofl_debug("index %d value %x",
i, param->eht_supp_mcs_ext_2G[i]);
}
wmi_nofl_debug("5G MCS ext Map:");
for (i = 0; i < PSOC_HOST_EHT_MCS_NSS_MAP_5G_SIZE; i++) {
wmi_nofl_debug("index %d value %d",
wmi_nofl_debug("index %d value %x",
i, param->eht_supp_mcs_ext_5G[i]);
}
wmi_nofl_debug("2G PPET: numss_m1 %x ru_bit_mask %x",
param->eht_ppet2G.numss_m1,
param->eht_ppet2G.ru_bit_mask);
for (i = 0; i < PSOC_HOST_MAX_NUM_SS; i++) {
wmi_nofl_debug("index %d value %x",
i, param->eht_ppet2G.ppet16_ppet8_ru3_ru0[i]);
}
wmi_nofl_debug("5G PPET: numss_m1 %x ru_bit_mask %x",
param->eht_ppet5G.numss_m1,
param->eht_ppet5G.ru_bit_mask);
for (i = 0; i < PSOC_HOST_MAX_NUM_SS; i++) {
wmi_nofl_debug("index %d value %x",
i, param->eht_ppet5G.ppet16_ppet8_ru3_ru0[i]);
}
}
#else
static void extract_mac_phy_cap_ehtcaps(