]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: ath12k: Update HTT_TCL_METADATA version and bit mask definitions
authorBalamurugan Mahalingam <quic_bmahalin@quicinc.com>
Mon, 3 Feb 2025 21:26:46 +0000 (13:26 -0800)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Tue, 11 Feb 2025 15:27:10 +0000 (07:27 -0800)
Update the HTT_TCL_METADATA version to the latest version (2)
as the bit definitions have changed a little to support more
features. This new version allows the host to submit a packet with
more information to the firmware. Firmware uses this additional
information to do special processing for certain frames.

All the firmware binaries available in upstream/public are compatible with
this HTT version update.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

Signed-off-by: Balamurugan Mahalingam <quic_bmahalin@quicinc.com>
Reviewed-by: Aditya Kumar Singh <aditya.kumar.singh@oss.qualcomm.com>
Link: https://patch.msgid.link/20250203212647.2694566-2-quic_bmahalin@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath12k/dp.h
drivers/net/wireless/ath/ath12k/dp_tx.c

index f68bb78d4a11068f09829d604130fce470e53ba6..7cdc62aa35be13e18c2fefc600c8aab93bcbd52e 100644 (file)
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: BSD-3-Clause-Clear */
 /*
  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef ATH12K_DP_H
@@ -372,17 +372,18 @@ struct ath12k_dp {
 };
 
 /* HTT definitions */
+#define HTT_TAG_TCL_METADATA_VERSION           5
 
-#define HTT_TCL_META_DATA_TYPE                 BIT(0)
-#define HTT_TCL_META_DATA_VALID_HTT            BIT(1)
+#define HTT_TCL_META_DATA_TYPE                 GENMASK(1, 0)
+#define HTT_TCL_META_DATA_VALID_HTT            BIT(2)
 
 /* vdev meta data */
-#define HTT_TCL_META_DATA_VDEV_ID              GENMASK(9, 2)
-#define HTT_TCL_META_DATA_PDEV_ID              GENMASK(11, 10)
-#define HTT_TCL_META_DATA_HOST_INSPECTED       BIT(12)
+#define HTT_TCL_META_DATA_VDEV_ID               GENMASK(10, 3)
+#define HTT_TCL_META_DATA_PDEV_ID               GENMASK(12, 11)
+#define HTT_TCL_META_DATA_HOST_INSPECTED_MISSION BIT(13)
 
 /* peer meta data */
-#define HTT_TCL_META_DATA_PEER_ID              GENMASK(15, 2)
+#define HTT_TCL_META_DATA_PEER_ID              GENMASK(15, 3)
 
 /* HTT tx completion is overlaid in wbm_release_ring */
 #define HTT_TX_WBM_COMP_INFO0_STATUS           GENMASK(16, 13)
@@ -413,9 +414,15 @@ enum htt_h2t_msg_type {
 };
 
 #define HTT_VER_REQ_INFO_MSG_ID                GENMASK(7, 0)
+#define HTT_OPTION_TCL_METADATA_VER_V2 2
+#define HTT_OPTION_TAG                 GENMASK(7, 0)
+#define HTT_OPTION_LEN                 GENMASK(15, 8)
+#define HTT_OPTION_VALUE               GENMASK(31, 16)
+#define HTT_TCL_METADATA_VER_SZ                4
 
 struct htt_ver_req_cmd {
        __le32 ver_reg_info;
+       __le32 tcl_metadata_version;
 } __packed;
 
 enum htt_srng_ring_type {
index 94310bcc620cb935cab11c3cfb4150ba398dae8a..da30d1054f61e64b9407d492d77967765baa7a7d 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: BSD-3-Clause-Clear
 /*
  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include "core.h"
@@ -1103,7 +1103,14 @@ int ath12k_dp_tx_htt_h2t_ver_req_msg(struct ath12k_base *ab)
        skb_put(skb, len);
        cmd = (struct htt_ver_req_cmd *)skb->data;
        cmd->ver_reg_info = le32_encode_bits(HTT_H2T_MSG_TYPE_VERSION_REQ,
-                                            HTT_VER_REQ_INFO_MSG_ID);
+                                            HTT_OPTION_TAG);
+
+       cmd->tcl_metadata_version = le32_encode_bits(HTT_TAG_TCL_METADATA_VERSION,
+                                                    HTT_OPTION_TAG) |
+                                   le32_encode_bits(HTT_TCL_METADATA_VER_SZ,
+                                                    HTT_OPTION_LEN) |
+                                   le32_encode_bits(HTT_OPTION_TCL_METADATA_VER_V2,
+                                                    HTT_OPTION_VALUE);
 
        ret = ath12k_htc_send(&ab->htc, dp->eid, skb);
        if (ret) {