Procházet zdrojové kódy

qcacmn: Enabling TX FW metadata V2

As part of TX FW metadata V2 global sequence number based
and SVC ID based support added.

Change-Id: Iefee2c47ecbebf6edfec9a687ef67e0e270bbf06
CRs-Fixed: 3136931
Sai Rupesh Chevuru před 3 roky
rodič
revize
9e4a8f0f21
3 změnil soubory, kde provedl 44 přidání a 21 odebrání
  1. 42 19
      dp/wifi3.0/dp_htt.c
  2. 1 1
      dp/wifi3.0/dp_main.c
  3. 1 1
      dp/wifi3.0/dp_tx.c

+ 42 - 19
dp/wifi3.0/dp_htt.c

@@ -330,21 +330,21 @@ dp_htt_h2t_send_complete(void *context, HTC_PACKET *htc_pkt)
 
 #endif /* ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST */
 
-#ifdef WLAN_MCAST_MLO
 /*
- * dp_htt_h2t_add_tcl_metadata_verg() - Add tcl_metadata verion
+ * dp_htt_h2t_add_tcl_metadata_ver_v1() - Add tcl_metadata verion V1
  * @htt_soc:	HTT SOC handle
  * @msg:	Pointer to nbuf
  *
  * Return: 0 on success; error code on failure
  */
-static int dp_htt_h2t_add_tcl_metadata_ver(struct htt_soc *soc, qdf_nbuf_t *msg)
+static int dp_htt_h2t_add_tcl_metadata_ver_v1(struct htt_soc *soc,
+					      qdf_nbuf_t *msg)
 {
 	uint32_t *msg_word;
 
 	*msg = qdf_nbuf_alloc(
 		soc->osdev,
-		HTT_MSG_BUF_SIZE(HTT_VER_REQ_BYTES + HTT_TCL_METADATA_VER_SZ),
+		HTT_MSG_BUF_SIZE(HTT_VER_REQ_BYTES),
 		/* reserve room for the HTC header */
 		HTC_HEADER_LEN + HTC_HDR_ALIGNMENT_PADDING, 4, TRUE);
 	if (!*msg)
@@ -356,8 +356,7 @@ static int dp_htt_h2t_add_tcl_metadata_ver(struct htt_soc *soc, qdf_nbuf_t *msg)
 	 * separately during the below call to qdf_nbuf_push_head.
 	 * The contribution from the HTC header is added separately inside HTC.
 	 */
-	if (!qdf_nbuf_put_tail(*msg,
-			       HTT_VER_REQ_BYTES + HTT_TCL_METADATA_VER_SZ)) {
+	if (!qdf_nbuf_put_tail(*msg, HTT_VER_REQ_BYTES)) {
 		QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
 			  "%s: Failed to expand head for HTT_H2T_MSG_TYPE_VERSION_REQ msg",
 			  __func__);
@@ -373,31 +372,25 @@ static int dp_htt_h2t_add_tcl_metadata_ver(struct htt_soc *soc, qdf_nbuf_t *msg)
 	*msg_word = 0;
 	HTT_H2T_MSG_TYPE_SET(*msg_word, HTT_H2T_MSG_TYPE_VERSION_REQ);
 
-	/* word 1 */
-	msg_word++;
-	*msg_word = 0;
-	HTT_OPTION_TLV_TAG_SET(*msg_word, HTT_OPTION_TLV_TAG_TCL_METADATA_VER);
-	HTT_OPTION_TLV_LENGTH_SET(*msg_word, HTT_TCL_METADATA_VER_SZ);
-	HTT_OPTION_TLV_TCL_METADATA_VER_SET(*msg_word,
-					    HTT_OPTION_TLV_TCL_METADATA_V2);
-
 	return QDF_STATUS_SUCCESS;
 }
-#else
+
+#ifdef QCA_DP_TX_FW_METADATA_V2
 /*
- * dp_htt_h2t_add_tcl_metadata_verg() - Add tcl_metadata verion
+ * dp_htt_h2t_add_tcl_metadata_ver_v2() - Add tcl_metadata verion V2
  * @htt_soc:	HTT SOC handle
  * @msg:	Pointer to nbuf
  *
  * Return: 0 on success; error code on failure
  */
-static int dp_htt_h2t_add_tcl_metadata_ver(struct htt_soc *soc, qdf_nbuf_t *msg)
+static int dp_htt_h2t_add_tcl_metadata_ver_v2(struct htt_soc *soc,
+					      qdf_nbuf_t *msg)
 {
 	uint32_t *msg_word;
 
 	*msg = qdf_nbuf_alloc(
 		soc->osdev,
-		HTT_MSG_BUF_SIZE(HTT_VER_REQ_BYTES),
+		HTT_MSG_BUF_SIZE(HTT_VER_REQ_BYTES + HTT_TCL_METADATA_VER_SZ),
 		/* reserve room for the HTC header */
 		HTC_HEADER_LEN + HTC_HDR_ALIGNMENT_PADDING, 4, TRUE);
 	if (!*msg)
@@ -409,7 +402,8 @@ static int dp_htt_h2t_add_tcl_metadata_ver(struct htt_soc *soc, qdf_nbuf_t *msg)
 	 * separately during the below call to qdf_nbuf_push_head.
 	 * The contribution from the HTC header is added separately inside HTC.
 	 */
-	if (!qdf_nbuf_put_tail(*msg, HTT_VER_REQ_BYTES)) {
+	if (!qdf_nbuf_put_tail(*msg,
+			       HTT_VER_REQ_BYTES + HTT_TCL_METADATA_VER_SZ)) {
 		QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
 			  "%s: Failed to expand head for HTT_H2T_MSG_TYPE_VERSION_REQ msg",
 			  __func__);
@@ -425,8 +419,37 @@ static int dp_htt_h2t_add_tcl_metadata_ver(struct htt_soc *soc, qdf_nbuf_t *msg)
 	*msg_word = 0;
 	HTT_H2T_MSG_TYPE_SET(*msg_word, HTT_H2T_MSG_TYPE_VERSION_REQ);
 
+	/* word 1 */
+	msg_word++;
+	*msg_word = 0;
+	HTT_OPTION_TLV_TAG_SET(*msg_word, HTT_OPTION_TLV_TAG_TCL_METADATA_VER);
+	HTT_OPTION_TLV_LENGTH_SET(*msg_word, HTT_TCL_METADATA_VER_SZ);
+	HTT_OPTION_TLV_TCL_METADATA_VER_SET(*msg_word,
+					    HTT_OPTION_TLV_TCL_METADATA_V2);
+
 	return QDF_STATUS_SUCCESS;
 }
+
+/*
+ * dp_htt_h2t_add_tcl_metadata_ver() - Add tcl_metadata verion
+ * @htt_soc:	HTT SOC handle
+ * @msg:	Pointer to nbuf
+ *
+ * Return: 0 on success; error code on failure
+ */
+static int dp_htt_h2t_add_tcl_metadata_ver(struct htt_soc *soc, qdf_nbuf_t *msg)
+{
+	/* Use tcl_metadata_v1 when NSS offload is enabled */
+	if (wlan_cfg_get_dp_soc_nss_cfg(soc->dp_soc->wlan_cfg_ctx))
+		return dp_htt_h2t_add_tcl_metadata_ver_v1(soc, msg);
+	else
+		return dp_htt_h2t_add_tcl_metadata_ver_v2(soc, msg);
+}
+#else
+static int dp_htt_h2t_add_tcl_metadata_ver(struct htt_soc *soc, qdf_nbuf_t *msg)
+{
+	return dp_htt_h2t_add_tcl_metadata_ver_v1(soc, msg);
+}
 #endif
 
 /*

+ 1 - 1
dp/wifi3.0/dp_main.c

@@ -120,7 +120,7 @@ cdp_dump_flow_pool_info(struct cdp_soc_t *soc)
 #define TXCOMP_RING4_NUM WBM2SW_TXCOMP_RING4_NUM
 #endif
 
-#ifdef WLAN_MCAST_MLO
+#ifdef QCA_DP_TX_FW_METADATA_V2
 #define DP_TX_TCL_METADATA_PDEV_ID_SET(_var, _val) \
 		HTT_TX_TCL_METADATA_V2_PDEV_ID_SET(_var, _val)
 #else

+ 1 - 1
dp/wifi3.0/dp_tx.c

@@ -69,7 +69,7 @@
 
 #define DP_RETRY_COUNT 7
 
-#ifdef WLAN_MCAST_MLO
+#ifdef QCA_DP_TX_FW_METADATA_V2
 #define DP_TX_TCL_METADATA_PDEV_ID_SET(_var, _val)\
 	HTT_TX_TCL_METADATA_V2_PDEV_ID_SET(_var, _val)
 #define DP_TX_TCL_METADATA_VALID_HTT_SET(_var, _val) \