diff --git a/target_if/init_deinit/src/init_cmd_api.c b/target_if/init_deinit/src/init_cmd_api.c index 1de368bc79..870ca01891 100644 --- a/target_if/init_deinit/src/init_cmd_api.c +++ b/target_if/init_deinit/src/init_cmd_api.c @@ -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); diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 9e9cb2ebf0..45596072b9 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -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; /** diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index b26b4fdacd..bf0bb8b336 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -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; } /**