Explorar o código

qcacmn: Fixes for compilation issues

- Fixes for compilation issues after enabling
  monitor 2.0 support.
- change copyright year for all files in the chain.

Change-Id: I885e257bd8ca83850656d8a1f408c1bc34920d7a
CRs-Fixed: 3086483
Naga %!s(int64=3) %!d(string=hai) anos
pai
achega
7798784bc5

+ 6 - 1
dp/wifi3.0/be/dp_be.c

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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
@@ -23,6 +23,9 @@
 #include "dp_be.h"
 #include "dp_be_tx.h"
 #include "dp_be_rx.h"
+#ifdef QCA_MONITOR_2_0_SUPPORT
+#include "dp_mon_2.0.h"
+#endif
 #include <hal_be_api.h>
 
 /* Generic AST entry aging timer value */
@@ -73,6 +76,8 @@ qdf_size_t dp_get_context_size_be(enum dp_context_type context_type)
 		return sizeof(struct dp_vdev_be);
 	case DP_CONTEXT_TYPE_PEER:
 		return sizeof(struct dp_peer_be);
+	case DP_CONTEXT_TYPE_MON_PDEV:
+		return dp_get_mon_obj_be_size(DP_CONTEXT_TYPE_MON_PDEV);
 	default:
 		return 0;
 	}

+ 28 - 7
dp/wifi3.0/be/dp_be.h

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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
@@ -26,6 +26,7 @@
 #else
 #include <dp_peer.h>
 #endif
+#include <dp_mon.h>
 
 /* maximum number of entries in one page of secondary page table */
 #define DP_CC_SPT_PAGE_MAX_ENTRIES 512
@@ -202,9 +203,6 @@ struct dp_soc_be {
 	struct dp_srng ppe2tcl_ring;
 	struct dp_srng ppe_release_ring;
 #endif
-#if !defined(DISABLE_MON_CONFIG)
-	struct dp_mon_soc_be *monitor_soc_be;
-#endif
 #ifdef WLAN_FEATURE_11BE_MLO
 #ifdef WLAN_MLO_MULTI_CHIP
 	uint8_t mlo_enabled;
@@ -234,9 +232,6 @@ struct dp_soc_be {
  */
 struct dp_pdev_be {
 	struct dp_pdev pdev;
-#if !defined(DISABLE_MON_CONFIG)
-	struct dp_mon_pdev_be *monitor_pdev_be;
-#endif
 #ifdef WLAN_MLO_MULTI_CHIP
 	uint8_t mlo_link_id;
 #endif
@@ -688,4 +683,30 @@ QDF_STATUS dp_txrx_set_vdev_param_be(struct dp_soc *soc,
 				     enum cdp_vdev_param_type param,
 				     cdp_config_param_type val);
 
+/*
+ * dp_get_mon_obj_be_size: get monitor context size
+ * @context_type: context type
+ *
+ * return: size of context
+ */
+#ifdef QCA_MONITOR_2_0_SUPPORT
+static inline qdf_size_t
+dp_get_mon_obj_be_size(enum dp_context_type context_type)
+{
+	switch (context_type) {
+	case DP_CONTEXT_TYPE_MON_PDEV:
+		return sizeof(struct dp_mon_pdev_be);
+	break;
+
+	default:
+		return 0;
+	}
+}
+#else
+static inline qdf_size_t
+dp_get_mon_obj_be_size(enum dp_context_type context_type)
+{
+	return sizeof(struct dp_mon_pdev);
+}
+#endif
 #endif

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

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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

+ 1 - 1
dp/wifi3.0/dp_htt.h

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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

+ 4 - 2
dp/wifi3.0/dp_main.c

@@ -5117,7 +5117,9 @@ QDF_STATUS dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
 
 	pdev_context_size =
 		soc->arch_ops.txrx_get_context_size(DP_CONTEXT_TYPE_PDEV);
-	pdev = dp_context_alloc_mem(soc, DP_PDEV_TYPE, pdev_context_size);
+	if (pdev_context_size)
+		pdev = dp_context_alloc_mem(soc, DP_PDEV_TYPE, pdev_context_size);
+
 	if (!pdev) {
 		dp_init_err("%pK: DP PDEV memory allocation failed",
 			    soc);
@@ -12927,7 +12929,7 @@ dp_soc_attach(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
 		goto fail0;
 	}
 
-	dp_info("soc memory allocated %pk", soc);
+	dp_info("soc memory allocated %pK", soc);
 	soc->hif_handle = hif_handle;
 	soc->hal_soc = hif_get_hal_handle(soc->hif_handle);
 	if (!soc->hal_soc)

+ 1 - 0
dp/wifi3.0/li/dp_li.h

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022 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

+ 1 - 1
dp/wifi3.0/monitor/1.0/dp_mon_1.0.c

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 1 - 0
dp/wifi3.0/monitor/1.0/dp_mon_filter_1.0.c

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 1 - 0
dp/wifi3.0/monitor/1.0/dp_mon_filter_1.0.h

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 1 - 1
dp/wifi3.0/monitor/2.0/dp_mon_2.0.c

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 9 - 4
dp/wifi3.0/monitor/2.0/dp_mon_2.0.h

@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above
@@ -21,6 +21,9 @@
 #if !defined(DISABLE_MON_CONFIG)
 #include <qdf_lock.h>
 #include <dp_types.h>
+#include <dp_mon.h>
+#include <dp_mon_filter.h>
+#include <dp_htt.h>
 
 #define DP_MON_RING_FILL_LEVEL_DEFAULT 2048
 #define DP_MON_DATA_BUFFER_SIZE     2048
@@ -33,7 +36,9 @@
  */
 struct dp_mon_filter_be {
 	struct dp_mon_filter rx_tlv_filter;
+#ifdef QCA_MONITOR_2_0_SUPPORT
 	struct htt_tx_ring_tlv_filter tx_tlv_filter;
+#endif
 	bool tx_valid;
 };
 
@@ -91,8 +96,8 @@ struct dp_mon_desc_pool {
  * @mon_pdev: monitor pdev structure
  */
 struct dp_mon_pdev_be {
-	struct dp_mon_filter_be **filter_be;
 	struct dp_mon_pdev mon_pdev;
+	struct dp_mon_filter_be **filter_be;
 };
 
 /**
@@ -200,7 +205,7 @@ QDF_STATUS dp_mon_buffers_replenish(struct dp_soc *dp_soc,
  * @mode: The filter modes
  * @tlv_filter: tlv filter
  */
-void dp_mon_filter_show_filter_be(struct dp_mon_pdev *mon_pdev,
+void dp_mon_filter_show_filter_be(struct dp_mon_pdev_be *mon_pdev,
 				  enum dp_mon_filter_mode mode,
 				  struct dp_mon_filter_be *filter);
 #endif /* _DP_MON_2_0_H_ */

+ 22 - 27
dp/wifi3.0/monitor/2.0/dp_mon_filter_2.0.c

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above
@@ -28,6 +29,7 @@
 #include <dp_mon_2.0.h>
 #include <dp_rx_mon_2.0.h>
 #include <dp_mon_filter_2.0.h>
+#include <dp_be.h>
 
 #define HTT_MSG_BUF_SIZE(msg_bytes) \
    ((msg_bytes) + HTC_HEADER_LEN + HTC_HDR_ALIGNMENT_PADDING)
@@ -1061,7 +1063,7 @@ void dp_mon_filter_setup_rx_pkt_log_full_2_0(struct dp_pdev *pdev)
 	enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_FULL_MODE;
 	enum dp_mon_filter_srng_type srng_type =
 		DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
-	struct dp_pdev_be *pdev_be;
+	struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
 	struct dp_mon_pdev_be *mon_pdev_be;
 	struct htt_rx_ring_tlv_filter *rx_tlv_filter =
 		&filter.rx_tlv_filter.tlv_filter;
@@ -1071,11 +1073,10 @@ void dp_mon_filter_setup_rx_pkt_log_full_2_0(struct dp_pdev *pdev)
 		return;
 	}
 
-	pdev_be = (struct dp_pdev_be *)pdev;
 	mon_pdev_be = pdev_be->monitor_pdev_be;
 	/* Enabled the filter */
 	filter.rx_tlv_filter.valid = true;
-	dp_mon_filter_set_status_cmn(mon_pdev_be->mon_pdev,
+	dp_mon_filter_set_status_cmn(&mon_pdev_be->mon_pdev,
 				     &filter.rx_tlv_filter);
 
 	/* Setup the filter */
@@ -1095,7 +1096,7 @@ void dp_mon_filter_reset_rx_pkt_log_full_2_0(struct dp_pdev *pdev)
 	enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_FULL_MODE;
 	enum dp_mon_filter_srng_type srng_type =
 		DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
-	struct dp_pdev_be *pdev_be;
+	struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
 	struct dp_mon_pdev_be *mon_pdev_be;
 
 	if (!pdev) {
@@ -1103,7 +1104,6 @@ void dp_mon_filter_reset_rx_pkt_log_full_2_0(struct dp_pdev *pdev)
 		return;
 	}
 
-	pdev_be = (struct dp_pdev_be *)pdev;
 	mon_pdev_be = pdev_be->monitor_pdev_be;
 
 	mon_pdev_be->filter_be[mode][srng_type] = filter;
@@ -1115,7 +1115,7 @@ void dp_mon_filter_setup_rx_pkt_log_lite_2_0(struct dp_pdev *pdev)
 	enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_LITE_MODE;
 	enum dp_mon_filter_srng_type srng_type =
 		DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
-	struct dp_pdev_be *pdev_be;
+	struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
 	struct dp_mon_pdev_be *mon_pdev_be;
 
 	if (!pdev) {
@@ -1123,15 +1123,14 @@ void dp_mon_filter_setup_rx_pkt_log_lite_2_0(struct dp_pdev *pdev)
 		return;
 	}
 
-	pdev_be = (struct dp_pdev_be *)pdev;
 	mon_pdev_be = pdev_be->monitor_pdev_be;
 	/* Enabled the filter */
 	filter.rx_tlv_filter.valid = true;
-	dp_mon_filter_set_status_cmn(mon_pdev_be->mon_pdev,
+	dp_mon_filter_set_status_cmn(&mon_pdev_be->mon_pdev,
 				     &filter.rx_tlv_filter);
 
 	dp_mon_filter_show_filter_be(mon_pdev_be, mode, &filter);
-	mon_pdev_be->filter[mode][srng_type] = filter;
+	mon_pdev_be->filter_be[mode][srng_type] = filter;
 }
 
 void dp_mon_filter_reset_rx_pkt_log_lite_2_0(struct dp_pdev *pdev)
@@ -1140,7 +1139,7 @@ void dp_mon_filter_reset_rx_pkt_log_lite_2_0(struct dp_pdev *pdev)
 	enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_LITE_MODE;
 	enum dp_mon_filter_srng_type srng_type =
 		DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
-	struct dp_pdev_be *pdev_be;
+	struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
 	struct dp_mon_pdev_be *mon_pdev_be;
 
 	if (!pdev) {
@@ -1159,25 +1158,24 @@ static void
 dp_mon_filter_set_reset_rx_pkt_log_cbf_dest_2_0(struct dp_pdev_be *pdev_be,
 						struct dp_mon_filter_be *filter)
 {
-	struct dp_soc *soc = pdev_be->pdev->soc;
+	struct dp_soc *soc = pdev_be->pdev.soc;
 	enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_CBF_MODE;
 	enum dp_mon_filter_srng_type srng_type;
 	struct dp_mon_pdev_be *mon_pdev_be;
-	struct htt_rx_ring_tlv_filter *rx_tlv_filter =
-		&filter->rx_tlv_filter->tlv_filter;
 
 	srng_type = ((soc->wlan_cfg_ctx->rxdma1_enable) ?
 		     DP_MON_FILTER_SRNG_TYPE_RXDMA_MON_BUF :
 		     DP_MON_FILTER_SRNG_TYPE_RXDMA_BUF);
 
 	/*set the filter */
-	if (filter->rx_tlv_filter->valid) {
-		dp_mon_filter_set_cbf_cmn(pdev_be->pdev, filter->rx_tlv_filter);
+	if (filter->rx_tlv_filter.valid) {
+		dp_mon_filter_set_cbf_cmn(&pdev_be->pdev,
+					  &filter->rx_tlv_filter);
 
 		dp_mon_filter_show_filter_be(mon_pdev_be, mode, filter);
-		mon_pdev_be->filter[mode][srng_type] = *filter;
+		mon_pdev_be->filter_be[mode][srng_type] = *filter;
 	} else /* reset the filter */
-		mon_pdev_be->filter[mode][srng_type] = *filter;
+		mon_pdev_be->filter_be[mode][srng_type] = *filter;
 }
 #else
 static void
@@ -1194,7 +1192,7 @@ void dp_mon_filter_setup_rx_pkt_log_cbf_2_0(struct dp_pdev *pdev)
 	enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_CBF_MODE;
 	enum dp_mon_filter_srng_type srng_type =
 		DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
-	struct dp_pdev_be *pdev_be;
+	struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
 	struct dp_mon_pdev_be *mon_pdev_be;
 
 	if (!pdev) {
@@ -1208,14 +1206,13 @@ void dp_mon_filter_setup_rx_pkt_log_cbf_2_0(struct dp_pdev *pdev)
 		return;
 	}
 
-	pdev_be = (struct dp_pdev_be *)pdev;
 	mon_pdev_be = pdev_be->monitor_pdev_be;
 	/* Enabled the filter */
 	filter.rx_tlv_filter.valid = true;
 
-	dp_mon_filter_set_status_cbf(pdev_be->pdev, &filter.rx_tlv_filter);
+	dp_mon_filter_set_status_cbf(&pdev_be->pdev, &filter.rx_tlv_filter);
 	dp_mon_filter_show_filter_be(mon_pdev_be, mode, &filter);
-	mon_pdev_be->filter[mode][srng_type] = filter;
+	mon_pdev_be->filter_be[mode][srng_type] = filter;
 
 	/* Clear the filter as the same filter will be used to set the
 	 * monitor status ring
@@ -1234,6 +1231,7 @@ void dp_mon_filter_reset_rx_pktlog_cbf_2_0(struct dp_pdev *pdev)
 	enum dp_mon_filter_srng_type srng_type =
 		DP_MON_FILTER_SRNG_TYPE_RXDMA_BUF;
 	struct dp_mon_pdev_be *mon_pdev_be;
+	struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
 
 	if (!pdev) {
 		QDF_TRACE(QDF_MODULE_ID_MON_FILTER, QDF_TRACE_LEVEL_ERROR,
@@ -1247,7 +1245,6 @@ void dp_mon_filter_reset_rx_pktlog_cbf_2_0(struct dp_pdev *pdev)
 		return;
 	}
 
-	pdev_be = (struct dp_pdev_be *)pdev;
 	mon_pdev_be = pdev_be->monitor_pdev_be;
 	/* Enabled the filter */
 	filter.rx_tlv_filter.valid = true;
@@ -1255,7 +1252,7 @@ void dp_mon_filter_reset_rx_pktlog_cbf_2_0(struct dp_pdev *pdev)
 	dp_mon_filter_set_reset_rx_pkt_log_cbf_dest_2_0(pdev_be, &filter);
 
 	srng_type = DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
-	mon_pdev_be->filter[mode][srng_type] = filter;
+	mon_pdev_be->filter_be[mode][srng_type] = filter;
 }
 
 void dp_mon_filter_setup_pktlog_hybrid_2_0(struct dp_pdev *pdev)
@@ -1264,7 +1261,7 @@ void dp_mon_filter_setup_pktlog_hybrid_2_0(struct dp_pdev *pdev)
 	enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_HYBRID_MODE;
 	enum dp_mon_filter_srng_type srng_type =
 		DP_MON_FILTER_SRNG_TYPE_TXMON_DEST;
-	struct dp_pdev_be *pdev_be;
+	struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
 	struct dp_mon_pdev_be *mon_pdev_be;
 	struct htt_tx_ring_tlv_filter *tlv_filter = &filter.tx_tlv_filter;
 
@@ -1273,7 +1270,6 @@ void dp_mon_filter_setup_pktlog_hybrid_2_0(struct dp_pdev *pdev)
 		return;
 	}
 
-	pdev_be = (struct dp_pdev_be *)pdev;
 	mon_pdev_be = pdev_be->monitor_pdev_be;
 	/* Enabled the filter */
 	filter.tx_valid = true;
@@ -1303,7 +1299,7 @@ void dp_mon_filter_reset_pktlog_hybrid_2_0(struct dp_pdev *pdev)
 	enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_HYBRID_MODE;
 	enum dp_mon_filter_srng_type srng_type =
 		DP_MON_FILTER_SRNG_TYPE_TXMON_DEST;
-	struct dp_pdev_be *pdev_be;
+	struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
 	struct dp_mon_pdev_be *mon_pdev_be;
 
 	if (!pdev) {
@@ -1311,7 +1307,6 @@ void dp_mon_filter_reset_pktlog_hybrid_2_0(struct dp_pdev *pdev)
 		return;
 	}
 
-	pdev_be = (struct dp_pdev_be *)pdev;
 	mon_pdev_be = pdev_be->monitor_pdev_be;
 
 	mon_pdev_be->filter_be[mode][srng_type] = filter;

+ 1 - 0
dp/wifi3.0/monitor/2.0/dp_mon_filter_2.0.h

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 1 - 1
dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 1 - 0
dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.h

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 4 - 0
dp/wifi3.0/monitor/2.0/dp_rx_mon_status_2.0.c

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above
@@ -22,6 +23,8 @@
 #include <dp_mon.h>
 #include <dp_mon_2.0.h>
 #include <dp_rx_mon_2.0.h>
+#include <dp_rx.h>
+#include <dp_rx_mon.h>
 
 void dp_rx_mon_process_status_tlv(struct dp_soc *soc,
 				  struct dp_pdev *pdev,
@@ -38,6 +41,7 @@ dp_rx_process_pktlog(struct dp_soc *soc,
 {
 	struct dp_mon_pdev *mon_pdev;
 	qdf_nbuf_t nbuf = NULL;
+	enum WDI_EVENT pktlog_mode = WDI_NO_VAL;
 
 	nbuf = qdf_nbuf_alloc(soc->osdev, RX_MON_MIN_HEAD_ROOM,
 			      RX_BUFFER_RESERVATION, 0, FALSE);

+ 1 - 0
dp/wifi3.0/monitor/2.0/dp_tx_mon_2.0.c

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 1 - 0
dp/wifi3.0/monitor/2.0/dp_tx_mon_2.0.h

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021,2022 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 above

+ 6 - 0
dp/wifi3.0/monitor/dp_mon.c

@@ -4599,7 +4599,13 @@ QDF_STATUS dp_mon_pdev_detach(struct dp_pdev *pdev)
 		dp_mon_err("pdev is NULL");
 		return QDF_STATUS_E_FAILURE;
 	}
+
 	mon_pdev = pdev->monitor_pdev;
+	if (!mon_pdev) {
+		dp_mon_err("Monitor pdev is NULL");
+		return QDF_STATUS_E_FAILURE;
+	}
+
 	mon_ops = dp_mon_ops_get(pdev->soc);
 	if (!mon_ops) {
 		dp_mon_err("Monitor ops is NULL");

+ 2 - 1
dp/wifi3.0/monitor/dp_mon.h

@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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 above
  * copyright notice and this permission notice appear in all copies.

+ 1 - 1
dp/wifi3.0/monitor/dp_mon_filter.c

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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

+ 1 - 1
dp/wifi3.0/monitor/dp_mon_filter.h

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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

+ 28 - 28
hal/wifi3.0/be/hal_be_api_mon.h

@@ -1,5 +1,6 @@
 /*
- * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021-2022, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021-2022 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 above
@@ -96,6 +97,32 @@ struct hal_mon_desc {
 		 looping_count:4;
 };
 
+/**
+ * hal_be_get_mon_dest_status() - Get monitor descriptor
+ * @hal_soc_hdl: HAL Soc handle
+ * @desc: HAL monitor descriptor
+ *
+ * Return: none
+ */
+static inline void
+hal_be_get_mon_dest_status(hal_soc_handle_t hal_soc,
+			   void *hw_desc,
+			   struct hal_mon_desc *status)
+{
+	struct mon_destination_ring *desc = hw_desc;
+	uint32_t stat_buf_virt_addr_31_0 = desc->stat_buf_virt_addr_31_0;
+	uint32_t stat_buf_virt_addr_63_32 = desc->stat_buf_virt_addr_63_32;
+
+	status->buf_addr = (HAL_MON_BUFFER_ADDR_31_0_GET(&stat_buf_virt_addr_31_0) |
+			((uint64_t)(HAL_MON_BUFFER_ADDR_39_32_GET(&stat_buf_virt_addr_63_32)) << 32));
+	status->ppdu_id = desc->ppdu_id;
+	status->end_offset = desc->end_offset;
+	status->end_reason = desc->end_reason;
+	status->initiator = desc->initiator;
+	status->empty_descriptor = desc->empty_descriptor;
+	status->looping_count = desc->looping_count;
+}
+
 /**
  * hal_mon_buff_addr_info_set() - set desc address in cookie
  * @hal_soc_hdl: HAL Soc handle
@@ -121,31 +148,4 @@ void hal_mon_buff_addr_info_set(hal_soc_handle_t hal_soc_hdl,
 	HAL_MON_VADDR_HI_SET(mon_entry, vaddr_hi);
 }
 
-/**
- * hal_mon_buf_get() - Get monitor descriptor
- * @hal_soc_hdl: HAL Soc handle
- * @desc: HAL monitor descriptor
- *
- * Return: none
- */
-static inline
-void hal_mon_buf_get(hal_soc_handle_t hal_soc_hdl,
-		     void *dst_ring_desc,
-		     struct hal_mon_desc *mon_desc)
-{
-	struct mon_destination_ring *hal_dst_ring =
-			(struct mon_destination_ring *)dst_ring_desc;
-
-	mon_desc->buf_addr =
-		((u64)hal_dst_ring->stat_buf_virt_addr_31_0 |
-		 ((u64)hal_dst_ring->stat_buf_virt_addr_63_32 << 32));
-	mon_desc->ppdu_id = hal_dst_ring->ppdu_id;
-	mon_desc->end_offset = hal_dst_ring->end_offset;
-	mon_desc->end_reason = hal_dst_ring->end_reason;
-	mon_desc->initiator = hal_dst_ring->initiator;
-	mon_desc->ring_id = hal_dst_ring->ring_id;
-	mon_desc->empty_descriptor = hal_dst_ring->empty_descriptor;
-	mon_desc->looping_count = hal_dst_ring->looping_count;
-}
-
 #endif /* _HAL_BE_API_MON_H_ */

+ 1 - 1
hal/wifi3.0/hal_internal.h

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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

+ 2 - 30
hal/wifi3.0/kiwi/hal_kiwi.c

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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
@@ -33,39 +33,11 @@
 #include "rx_flow_search_entry.h"
 #include "hal_rx_flow_info.h"
 #include "hal_be_api.h"
+#include "hal_be_api_mon.h"
 #include "reo_destination_ring_with_pn.h"
 
 #include <hal_be_rx.h>
 
-#define UNIFIED_RXPCU_PPDU_END_INFO_8_RX_PPDU_DURATION_OFFSET \
-	RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_OFFSET
-#define UNIFIED_RXPCU_PPDU_END_INFO_8_RX_PPDU_DURATION_MASK \
-	RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_MASK
-#define UNIFIED_RXPCU_PPDU_END_INFO_8_RX_PPDU_DURATION_LSB \
-	RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_LSB
-#define UNIFIED_PHYRX_HT_SIG_0_HT_SIG_INFO_PHYRX_HT_SIG_INFO_DETAILS_OFFSET \
-	PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_OFFSET
-#define UNIFIED_PHYRX_L_SIG_B_0_L_SIG_B_INFO_PHYRX_L_SIG_B_INFO_DETAILS_OFFSET \
-	PHYRX_L_SIG_B_PHYRX_L_SIG_B_INFO_DETAILS_RATE_OFFSET
-#define UNIFIED_PHYRX_L_SIG_A_0_L_SIG_A_INFO_PHYRX_L_SIG_A_INFO_DETAILS_OFFSET \
-	PHYRX_L_SIG_A_PHYRX_L_SIG_A_INFO_DETAILS_RATE_OFFSET
-#define UNIFIED_PHYRX_VHT_SIG_A_0_VHT_SIG_A_INFO_PHYRX_VHT_SIG_A_INFO_DETAILS_OFFSET \
-	PHYRX_VHT_SIG_A_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET
-#define UNIFIED_PHYRX_HE_SIG_A_SU_0_HE_SIG_A_SU_INFO_PHYRX_HE_SIG_A_SU_INFO_DETAILS_OFFSET \
-	PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_OFFSET
-#define UNIFIED_PHYRX_HE_SIG_A_MU_DL_0_HE_SIG_A_MU_DL_INFO_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_OFFSET \
-	PHYRX_HE_SIG_A_MU_DL_PHYRX_HE_SIG_A_MU_DL_INFO_DETAILS_DL_UL_FLAG_OFFSET
-#define UNIFIED_PHYRX_HE_SIG_B1_MU_0_HE_SIG_B1_MU_INFO_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_OFFSET \
-	PHYRX_HE_SIG_B1_MU_PHYRX_HE_SIG_B1_MU_INFO_DETAILS_RU_ALLOCATION_OFFSET
-#define UNIFIED_PHYRX_HE_SIG_B2_MU_0_HE_SIG_B2_MU_INFO_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_OFFSET \
-	PHYRX_HE_SIG_B2_MU_PHYRX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_OFFSET
-#define UNIFIED_PHYRX_HE_SIG_B2_OFDMA_0_HE_SIG_B2_OFDMA_INFO_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_OFFSET \
-	PHYRX_HE_SIG_B2_OFDMA_PHYRX_HE_SIG_B2_OFDMA_INFO_DETAILS_STA_ID_OFFSET
-
-#define UNIFIED_PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET \
-	PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET
-#define UNIFIED_PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET \
-	PHYRX_RSSI_LEGACY_PREAMBLE_RSSI_INFO_DETAILS_RSSI_PRI20_CHAIN0_OFFSET
 #define UNIFIED_RX_MPDU_START_0_RX_MPDU_INFO_RX_MPDU_INFO_DETAILS_OFFSET \
 	RX_MPDU_START_0_RX_MPDU_INFO_DETAILS_RXPT_CLASSIFY_INFO_DETAILS_REO_DESTINATION_INDICATION_OFFSET
 #define UNIFIED_RX_MSDU_LINK_8_RX_MSDU_DETAILS_MSDU_0_OFFSET \

+ 1 - 1
hal/wifi3.0/qcn9224/hal_9224.c

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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

+ 1 - 1
wlan_cfg/cfg_dp.h

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021,2022 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