Переглянути джерело

qcacmn: Enable peer filtering for enhanced RX capture

Enable peer filtering for enhanced RX capture.

Change-Id: Ic8d27b575721f6fe3bae06ed7d23b1ff300306c9
Kai Chen 5 роки тому
батько
коміт
99efa0dce4

+ 10 - 0
dp/inc/cdp_txrx_cmn_struct.h

@@ -914,6 +914,16 @@ enum cdp_rx_enh_capture_mode {
 	CDP_RX_ENH_CAPTURE_MPDU_MSDU,
 };
 
+/**
+ * cdp_rx_enh_capture_peer - Rx enhanced capture peer filtering
+ * @CDP_RX_ENH_CAPTURE_PEER_DISABLED: Disable Rx ENH capture peer filtering
+ * @CDP_RX_ENH_CAPTURE_PEER_ENABLED: Enable Rx ENH capture peer filtering
+ */
+enum cdp_rx_enh_capture_peer {
+	CDP_RX_ENH_CAPTURE_PEER_DISABLED = 0,
+	CDP_RX_ENH_CAPTURE_PEER_ENABLED,
+};
+
 /**
  * cdp_tx_enh_capture_mode - Tx enhanced capture modes
  * @CDP_TX_ENH_CAPTURE_DISABLED: Disable Tx enhance capture for all peers

+ 1 - 1
dp/inc/cdp_txrx_ctrl.h

@@ -499,7 +499,7 @@ cdp_peer_set_vlan_id(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
 static inline QDF_STATUS cdp_txrx_set_pdev_param(ol_txrx_soc_handle soc,
 						 struct cdp_pdev *pdev,
 						 enum cdp_pdev_param_type type,
-						 uint8_t val)
+						 uint32_t val)
 {
 	if (!soc || !soc->ops) {
 		QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,

+ 1 - 1
dp/inc/cdp_txrx_ops.h

@@ -639,7 +639,7 @@ struct cdp_ctrl_ops {
 	 */
 	QDF_STATUS (*txrx_set_pdev_param)(struct cdp_pdev *pdev,
 					  enum cdp_pdev_param_type type,
-					  uint8_t val);
+					  uint32_t val);
 	void * (*txrx_get_pldev)(struct cdp_pdev *pdev);
 
 #ifdef ATH_SUPPORT_NAC_RSSI

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

@@ -7541,7 +7541,7 @@ dp_get_htt_stats(struct cdp_pdev *pdev_handle, void *data, uint32_t data_len)
  */
 static QDF_STATUS dp_set_pdev_param(struct cdp_pdev *pdev_handle,
 				    enum cdp_pdev_param_type param,
-				    uint8_t val)
+				    uint32_t val)
 {
 	struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
 	switch (param) {

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

@@ -908,7 +908,7 @@ dp_rx_process_peer_based_pktlog(struct dp_soc *soc,
 	uint32_t ast_index;
 
 	ast_index = ppdu_info->rx_status.ast_index;
-	if (ast_index < (WLAN_UMAC_PSOC_MAX_PEERS * 2)) {
+	if (ast_index < wlan_cfg_get_max_ast_idx(soc->wlan_cfg_ctx)) {
 		ast_entry = soc->ast_table[ast_index];
 		if (ast_entry) {
 			peer = ast_entry->peer;

+ 4 - 1
dp/wifi3.0/dp_types.h

@@ -1503,11 +1503,14 @@ struct dp_pdev {
 	struct msdu_list msdu_list[MAX_MU_USERS];
 	/* RX enhanced capture mode */
 	uint8_t rx_enh_capture_mode;
+	/* Rx per peer enhanced capture mode */
+	bool rx_enh_capture_peer;
+	struct dp_vdev *rx_enh_monitor_vdev;
 	/* RX enhanced capture trailer enable/disable flag */
 	bool is_rx_enh_capture_trailer_enabled;
 #ifdef WLAN_RX_PKT_CAPTURE_ENH
 	/* RX per MPDU/PPDU information */
-	struct cdp_rx_indication_mpdu mpdu_ind[MAX_MU_USERS];
+	struct cdp_rx_indication_mpdu mpdu_ind;
 #endif
 	/* pool addr for mcast enhance buff */
 	struct {