qcacmn: Initialization changes for 11be

EHT capapilities will be received as part of ext2 service ready message.
Update the structure as per firmware common header file and extract the
EHT capabilities field.

Change-Id: Id2dd170db4de588008742f95493d4d06a6431f1c
CRs-Fixed: 2857802
This commit is contained in:
Venkateswara Swamy Bandaru
2021-02-19 20:26:15 +05:30
committed by snandini
parent 94310d764e
commit 11f4850bfd
5 changed files with 189 additions and 5 deletions

View File

@@ -11150,6 +11150,31 @@ static QDF_STATUS extract_hw_mode_cap_service_ready_ext_tlv(
return QDF_STATUS_SUCCESS;
}
/**
* extract_mac_phy_cap_service_ready_11be_support - api to extract 11be support
* @param param: host mac phy capabilities
* @param mac_phy_caps: mac phy capabilities
*
* Return: void
*/
#ifdef WLAN_FEATURE_11BE
static void
extract_service_ready_11be_support(struct wlan_psoc_host_mac_phy_caps *param,
WMI_MAC_PHY_CAPABILITIES *mac_phy_caps)
{
param->supports_11be =
WMI_SUPPORT_11BE_GET(mac_phy_caps->supported_flags);
wmi_debug("11be support %d", param->supports_11be);
}
#else
static void
extract_service_ready_11be_support(struct wlan_psoc_host_mac_phy_caps *param,
WMI_MAC_PHY_CAPABILITIES *mac_phy_caps)
{
}
#endif
/**
* extract_mac_phy_cap_service_ready_ext_tlv() -
* extract MAC phy cap from service ready event
@@ -11226,6 +11251,8 @@ static QDF_STATUS extract_mac_phy_cap_service_ready_ext_tlv(
param->supports_11ax =
WMI_SUPPORT_11AX_GET(mac_phy_caps->supported_flags);
extract_service_ready_11be_support(param, mac_phy_caps);
param->supported_bands = mac_phy_caps->supported_bands;
param->ampdu_density = mac_phy_caps->ampdu_density;
param->max_bw_supported_2G = mac_phy_caps->max_bw_supported_2G;
@@ -11276,6 +11303,67 @@ static QDF_STATUS extract_mac_phy_cap_service_ready_ext_tlv(
return QDF_STATUS_SUCCESS;
}
/**
* extract_mac_phy_cap_ehtcaps- api to extract eht mac phy caps
* @param param: host ext2 mac phy capabilities
* @param mac_phy_caps: ext mac phy capabilities
*
* Return: void
*/
#ifdef WLAN_FEATURE_11BE
static void extract_mac_phy_cap_ehtcaps(
struct wlan_psoc_host_mac_phy_caps_ext2 *param,
WMI_MAC_PHY_CAPABILITIES_EXT *mac_phy_caps)
{
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(&param->eht_cap_phy_info_2G,
&mac_phy_caps->eht_cap_phy_info_2G,
sizeof(param->eht_cap_phy_info_2G));
qdf_mem_copy(&param->eht_cap_phy_info_5G,
&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,
mac_phy_caps->eht_supp_mcs_2G, mac_phy_caps->eht_supp_mcs_5G,
mac_phy_caps->eht_cap_info_internal);
wmi_nofl_debug("EHT phy caps: ");
wmi_nofl_debug("2G: ");
for (i = 0; i < PSOC_HOST_MAX_PHY_SIZE; i++) {
wmi_nofl_debug("index %d value %d",
i, param->eht_cap_phy_info_2G[i]);
}
wmi_nofl_debug("5G: ");
for (i = 0; i < PSOC_HOST_MAX_PHY_SIZE; i++) {
wmi_nofl_debug("index %d value %d",
i, param->eht_cap_phy_info_5G[i]);
}
}
#else
static void extract_mac_phy_cap_ehtcaps(
struct wlan_psoc_host_mac_phy_caps_ext2 *param,
WMI_MAC_PHY_CAPABILITIES_EXT *mac_phy_caps)
{
}
#endif
static QDF_STATUS extract_mac_phy_cap_service_ready_ext2_tlv(
wmi_unified_t wmi_handle,
uint8_t *event, uint8_t hw_mode_id, uint8_t phy_id,
@@ -11311,6 +11399,8 @@ static QDF_STATUS extract_mac_phy_cap_service_ready_ext2_tlv(
param->wireless_modes_ext = convert_wireless_modes_ext_tlv(
mac_phy_caps->wireless_modes_ext);
extract_mac_phy_cap_ehtcaps(param, mac_phy_caps);
return QDF_STATUS_SUCCESS;
}