wifi: ath12k: Update HTT_TCL_METADATA version and bit mask definitions

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>
This commit is contained in:
Balamurugan Mahalingam 2025-02-03 13:26:46 -08:00 committed by Jeff Johnson
parent 63b7af4949
commit 5d964966bd
2 changed files with 23 additions and 9 deletions

View file

@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* SPDX-License-Identifier: BSD-3-Clause-Clear */
/* /*
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. * 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 #ifndef ATH12K_DP_H
@ -372,17 +372,18 @@ struct ath12k_dp {
}; };
/* HTT definitions */ /* HTT definitions */
#define HTT_TAG_TCL_METADATA_VERSION 5
#define HTT_TCL_META_DATA_TYPE BIT(0) #define HTT_TCL_META_DATA_TYPE GENMASK(1, 0)
#define HTT_TCL_META_DATA_VALID_HTT BIT(1) #define HTT_TCL_META_DATA_VALID_HTT BIT(2)
/* vdev meta data */ /* vdev meta data */
#define HTT_TCL_META_DATA_VDEV_ID GENMASK(9, 2) #define HTT_TCL_META_DATA_VDEV_ID GENMASK(10, 3)
#define HTT_TCL_META_DATA_PDEV_ID GENMASK(11, 10) #define HTT_TCL_META_DATA_PDEV_ID GENMASK(12, 11)
#define HTT_TCL_META_DATA_HOST_INSPECTED BIT(12) #define HTT_TCL_META_DATA_HOST_INSPECTED_MISSION BIT(13)
/* peer meta data */ /* 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 */ /* HTT tx completion is overlaid in wbm_release_ring */
#define HTT_TX_WBM_COMP_INFO0_STATUS GENMASK(16, 13) #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_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 { struct htt_ver_req_cmd {
__le32 ver_reg_info; __le32 ver_reg_info;
__le32 tcl_metadata_version;
} __packed; } __packed;
enum htt_srng_ring_type { enum htt_srng_ring_type {

View file

@ -1,7 +1,7 @@
// SPDX-License-Identifier: BSD-3-Clause-Clear // SPDX-License-Identifier: BSD-3-Clause-Clear
/* /*
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. * 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" #include "core.h"
@ -1103,7 +1103,14 @@ int ath12k_dp_tx_htt_h2t_ver_req_msg(struct ath12k_base *ab)
skb_put(skb, len); skb_put(skb, len);
cmd = (struct htt_ver_req_cmd *)skb->data; cmd = (struct htt_ver_req_cmd *)skb->data;
cmd->ver_reg_info = le32_encode_bits(HTT_H2T_MSG_TYPE_VERSION_REQ, 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); ret = ath12k_htc_send(&ab->htc, dp->eid, skb);
if (ret) { if (ret) {