From 308ff004985e335518e5f73b7e6bf78ce4daeec6 Mon Sep 17 00:00:00 2001 From: sumedh baikady Date: Mon, 18 Sep 2017 16:24:36 -0700 Subject: [PATCH] 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 --- dp/wifi3.0/dp_htt.c | 3 +++ dp/wifi3.0/dp_htt.h | 1 + dp/wifi3.0/dp_main.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/dp/wifi3.0/dp_htt.c b/dp/wifi3.0/dp_htt.c index 223ea9f8efaf..8bf87996ade0 100644 --- a/dp/wifi3.0/dp_htt.c +++ b/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); diff --git a/dp/wifi3.0/dp_htt.h b/dp/wifi3.0/dp_htt.h index 6a4e45509843..2a2c7bcb0df2 100644 --- a/dp/wifi3.0/dp_htt.h +++ b/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; diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 785dcfae176a..f8091db1ef38 100644 --- a/dp/wifi3.0/dp_main.c +++ b/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;