mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-20 10:51:27 +00:00
105 lines
4.2 KiB
Diff
105 lines
4.2 KiB
Diff
From 3bcb7eb3a92e7ffffe6f7ebb7dfc0534f0f528e1 Mon Sep 17 00:00:00 2001
|
|
From: Harshitha Prem <quic_hprem@quicinc.com>
|
|
Date: Wed, 22 Feb 2023 13:06:00 +0530
|
|
Subject: [PATCH] ath12k: add support for peer meta data version
|
|
|
|
Add new WMI Service command - WMI_TLV_SERVICE_PEER_METADATA_V1A_V1B_SUPPORT
|
|
to support multiple FW PeerMetaData Versions
|
|
|
|
if WMI_SERVICE_V1A_V1B_SUPPORTED service bit is set by FW,then from host
|
|
it will set rx_peer_meta_data_ver in wmi_resource_config's flags2 with
|
|
value 2 for WCN7850 to indicate as V1A and value 3 for QCN9274, IPQ5332 to
|
|
indicate as V1B meta version. Otherwise, no need to send it.
|
|
|
|
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
|
|
---
|
|
drivers/net/wireless/ath/ath12k/hw.c | 4 ++++
|
|
drivers/net/wireless/ath/ath12k/hw.h | 1 +
|
|
drivers/net/wireless/ath/ath12k/wmi.c | 6 +++++-
|
|
drivers/net/wireless/ath/ath12k/wmi.h | 2 ++
|
|
4 files changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/wmi.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/wmi.c
|
|
@@ -232,6 +232,10 @@ void ath12k_wmi_init_qcn9274(struct ath1
|
|
config->ema_max_vap_cnt = ab->num_radios;
|
|
config->ema_max_profile_period = TARGET_EMA_MAX_PROFILE_PERIOD;
|
|
config->beacon_tx_offload_max_vdev += config->ema_max_vap_cnt;
|
|
+
|
|
+ if (test_bit(WMI_TLV_SERVICE_PEER_METADATA_V1A_V1B_SUPPORT, ab->wmi_ab.svc_map))
|
|
+ config->dp_peer_meta_data_ver = TARGET_RX_PEER_METADATA_VER_V1B;
|
|
+
|
|
}
|
|
|
|
void ath12k_wmi_init_ipq5332(struct ath12k_base *ab,
|
|
@@ -292,6 +296,10 @@ void ath12k_wmi_init_ipq5332(struct ath1
|
|
config->ema_max_vap_cnt = ab->num_radios;
|
|
config->ema_max_profile_period = TARGET_EMA_MAX_PROFILE_PERIOD;
|
|
config->beacon_tx_offload_max_vdev += config->ema_max_vap_cnt;
|
|
+
|
|
+ if (test_bit(WMI_TLV_SERVICE_PEER_METADATA_V1A_V1B_SUPPORT, ab->wmi_ab.svc_map))
|
|
+ config->dp_peer_meta_data_ver = TARGET_RX_PEER_METADATA_VER_V1B;
|
|
+
|
|
}
|
|
|
|
|
|
@@ -339,6 +347,10 @@ void ath12k_wmi_init_wcn7850(struct ath1
|
|
config->num_multicast_filter_entries = 0x20;
|
|
config->num_wow_filters = 0x16;
|
|
config->num_keep_alive_pattern = 0;
|
|
+
|
|
+ if (test_bit(WMI_TLV_SERVICE_PEER_METADATA_V1A_V1B_SUPPORT, ab->wmi_ab.svc_map))
|
|
+ config->dp_peer_meta_data_ver = TARGET_RX_PEER_METADATA_VER_V1A;
|
|
+
|
|
}
|
|
|
|
#define PRIMAP(_hw_mode_) \
|
|
@@ -4661,7 +4673,9 @@ ath12k_wmi_copy_resource_config(struct w
|
|
wmi_cfg->twt_ap_pdev_count = tg_cfg->twt_ap_pdev_count;
|
|
wmi_cfg->twt_ap_sta_count = tg_cfg->twt_ap_sta_count;
|
|
wmi_cfg->flags2 = WMI_RSRC_CFG_FLAGS2_CALC_NEXT_DTIM_COUNT_SET |
|
|
- WMI_RSRC_CFG_FLAGS2_INTRABSS_MEC_WDS_LEARNING_DISABLE;
|
|
+ WMI_RSRC_CFG_FLAGS2_INTRABSS_MEC_WDS_LEARNING_DISABLE |
|
|
+ u32_encode_bits(tg_cfg->dp_peer_meta_data_ver,
|
|
+ WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION);
|
|
wmi_cfg->host_service_flags &= ~(1 << WMI_RSRC_CFG_HOST_SVC_FLAG_REG_CC_EXT_SUPPORT_BIT);
|
|
wmi_cfg->host_service_flags |= 1 << WMI_RSRC_CFG_HOST_SVC_FLAG_REG_CC_EXT_SUPPORT_BIT;
|
|
wmi_cfg->host_service_flags |= 1 << WMI_RSRC_CFG_HOST_SVC_FLAG_REO_QREF_SUPPORT_BIT;
|
|
--- a/drivers/net/wireless/ath/ath12k/wmi.h
|
|
+++ b/drivers/net/wireless/ath/ath12k/wmi.h
|
|
@@ -2208,6 +2208,7 @@ enum wmi_tlv_service {
|
|
WMI_TLV_SERVICE_DCS_AWGN_INT_SUPPORT = 286,
|
|
WMI_TLV_SERVICE_BE = 289,
|
|
WMI_TLV_SERVICE_PKTLOG_DECODE_INFO_SUPPORT = 320,
|
|
+ WMI_TLV_SERVICE_PEER_METADATA_V1A_V1B_SUPPORT = 365,
|
|
WMI_MAX_EXT2_SERVICE,
|
|
};
|
|
|
|
@@ -2526,6 +2527,7 @@ struct wmi_init_cmd {
|
|
|
|
#define WMI_RSRC_CFG_HOST_SVC_FLAG_REG_CC_EXT_SUPPORT_BIT 4
|
|
#define WMI_RSRC_CFG_HOST_SVC_FLAG_REO_QREF_SUPPORT_BIT 12
|
|
+#define WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION GENMASK(5,4)
|
|
#define WMI_RSRC_CFG_FLAGS2_CALC_NEXT_DTIM_COUNT_SET BIT(9)
|
|
#define WMI_RSRC_CFG_FLAGS2_INTRABSS_MEC_WDS_LEARNING_DISABLE BIT(15)
|
|
#define WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64 BIT(5)
|
|
@@ -6282,6 +6284,7 @@ struct target_resource_config {
|
|
bool is_reg_cc_ext_event_supported;
|
|
u32 ema_max_vap_cnt;
|
|
u32 ema_max_profile_period;
|
|
+ u8 dp_peer_meta_data_ver;
|
|
};
|
|
|
|
enum wmi_tpc_pream_bw {
|
|
--- a/drivers/net/wireless/ath/ath12k/hw.h
|
|
+++ b/drivers/net/wireless/ath/ath12k/hw.h
|
|
@@ -67,6 +67,8 @@
|
|
#define TARGET_DMA_BURST_SIZE 1
|
|
#define TARGET_RX_BATCHMODE 1
|
|
#define TARGET_EMA_MAX_PROFILE_PERIOD 8
|
|
+#define TARGET_RX_PEER_METADATA_VER_V1A 2
|
|
+#define TARGET_RX_PEER_METADATA_VER_V1B 3
|
|
|
|
#define ATH12K_HW_DEFAULT_QUEUE 0
|
|
|