Kaynağa Gözat

qcacmn: Fix per msdu info for Monitor mode

Add support to include per msdu header info for each msdu in monitor mode.
Set HTT_RX_RING_SELECTION_CFG_TLV_FILTER_IN_FLAG_RX_RESERVED in htt msg
from host. Enable per msdu bit and set it in the dp_htt to be used for
filtering.

Change-Id: I36217e893c40570c86b758f586c581d88633b557
CRs-fixed: 2101013
sumedh baikady 7 yıl önce
ebeveyn
işleme
308ff00498
3 değiştirilmiş dosya ile 6 ekleme ve 0 silme
  1. 3 0
      dp/wifi3.0/dp_htt.c
  2. 1 0
      dp/wifi3.0/dp_htt.h
  3. 2 0
      dp/wifi3.0/dp_main.c

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

@@ -1051,6 +1051,9 @@ int htt_h2t_rx_ring_cfg(void *htt_soc, int pdev_id, void *hal_srng,
 		htt_tlv_filter->ppdu_end_user_stats_ext);
 	htt_rx_ring_tlv_filter_in_enable_set(tlv_filter, PPDU_END_STATUS_DONE,
 		htt_tlv_filter->ppdu_end_status_done);
+	/* RESERVED bit maps to header_per_msdu in htt_tlv_filter*/
+	 htt_rx_ring_tlv_filter_in_enable_set(tlv_filter, RESERVED,
+		 htt_tlv_filter->header_per_msdu);
 
 	HTT_RX_RING_SELECTION_CFG_TLV_FILTER_IN_FLAG_SET(*msg_word, tlv_filter);
 

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

@@ -119,6 +119,7 @@ struct htt_rx_ring_tlv_filter {
 		ppdu_end_user_stats:1,
 		ppdu_end_user_stats_ext:1,
 		ppdu_end_status_done:1,
+		header_per_msdu:1,
 		enable_fp:1,
 		enable_md:1,
 		enable_mo:1;

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

@@ -3564,6 +3564,7 @@ static int dp_vdev_set_monitor_mode(struct cdp_vdev *vdev_handle,
 	htt_tlv_filter.ppdu_end_user_stats = 0;
 	htt_tlv_filter.ppdu_end_user_stats_ext = 0;
 	htt_tlv_filter.ppdu_end_status_done = 0;
+	htt_tlv_filter.header_per_msdu = 1;
 	htt_tlv_filter.enable_fp = 1;
 	htt_tlv_filter.enable_md = 0;
 	htt_tlv_filter.enable_mo = 1;
@@ -3584,6 +3585,7 @@ static int dp_vdev_set_monitor_mode(struct cdp_vdev *vdev_handle,
 	htt_tlv_filter.ppdu_end_user_stats = 1;
 	htt_tlv_filter.ppdu_end_user_stats_ext = 1;
 	htt_tlv_filter.ppdu_end_status_done = 1;
+	htt_tlv_filter.header_per_msdu = 0;
 	htt_tlv_filter.enable_fp = 1;
 	htt_tlv_filter.enable_md = 0;
 	htt_tlv_filter.enable_mo = 1;