qcacmn: WMI Service command for FW PeerMetaData Version

Add new WMI Service command to support multiple FW
PeerMetaData Versions

Change-Id: I3f94bd7515d2e024459dac7271b35f804f026b97
CRs-Fixed: 3399010
This commit is contained in:
Kenvish Butani
2023-01-25 14:43:13 +05:30
zatwierdzone przez Madan Koyyalamudi
rodzic a81eb57e42
commit 3ee53085d3
3 zmienionych plików z 27 dodań i 3 usunięć

Wyświetl plik

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2023 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
@@ -530,6 +530,9 @@ void init_deinit_prepare_send_init_cmd(
if (wmi_service_enabled(wmi_handle, wmi_service_ext2_msg))
init_deinit_derive_afc_dev_type_param(psoc, &init_param);
if (wmi_service_enabled(wmi_handle, wmi_service_v1a_v1b_supported))
info->wlan_res_cfg.dp_peer_meta_data_ver = 1;
target_if_ext_res_cfg_enable(psoc, tgt_hdl, NULL);
target_if_set_reo_shared_qref_feature(psoc, info);

Wyświetl plik

@@ -6233,6 +6233,7 @@ typedef enum {
#endif
wmi_service_wpa3_sha384_roam_support,
wmi_service_multiple_vdev_restart_bmap,
wmi_service_v1a_v1b_supported,
wmi_services_max,
} wmi_conv_service_ids;
#define WMI_SERVICE_UNAVAILABLE 0xFFFF
@@ -6602,6 +6603,7 @@ struct target_feature_set {
* @num_max_active_vdevs: max number of active virtual devices (VAPs) to
* support
* @notify_frame_support: capability to mark notify frames from host
* @dp_peer_meta_data_ver: datapath peer meta data version flag
*/
typedef struct {
uint32_t num_vdevs;
@@ -6729,6 +6731,7 @@ typedef struct {
bool reo_qdesc_shared_addr_table_enabled;
uint32_t num_max_active_vdevs;
uint8_t notify_frame_support;
uint8_t dp_peer_meta_data_ver;
} target_resource_config;
/**

Wyświetl plik

@@ -9269,9 +9269,24 @@ void wmi_copy_resource_config(wmi_resource_config *resource_cfg,
if (tgt_res_cfg->reo_qdesc_shared_addr_table_enabled)
WMI_RSRC_CFG_HOST_SERVICE_FLAG_REO_QREF_FEATURE_SUPPORT_SET(
resource_cfg->host_service_flags, 1);
/*
* DP Peer Meta data FW version
*/
if (tgt_res_cfg->dp_peer_meta_data_ver) {
#ifdef CONFIG_AP_PLATFORM
WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION_SET(
resource_cfg->flags2, 3);
#else
WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION_SET(
resource_cfg->flags2, 2);
#endif
} else {
WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION_SET(
resource_cfg->flags2,
WMI_TARGET_CAP_FLAGS_RX_PEER_METADATA_VERSION_GET(
tgt_res_cfg->target_cap_flags));
}
WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION_SET(resource_cfg->flags2,
tgt_res_cfg->target_cap_flags);
if (tgt_res_cfg->notify_frame_support)
WMI_RSRC_CFG_FLAGS2_NOTIFY_FRAME_CONFIG_ENABLE_SET(
resource_cfg->flags2, 1);
@@ -21901,6 +21916,9 @@ static void populate_tlv_service(uint32_t *wmi_service)
#endif
wmi_service[wmi_service_wpa3_sha384_roam_support] =
WMI_SERVICE_WMI_SERVICE_WPA3_SHA384_ROAM_SUPPORT;
/* TODO: Assign FW Enum after FW Shared header changes are merged */
wmi_service[wmi_service_v1a_v1b_supported] =
WMI_SERVICE_UNAVAILABLE;
}
/**