Browse Source

qcacmn: Enable all mgmt, ctrl and data fields in pkt_tlv

Currently all mgmt, ctrl and data frames are not enabled
while requesting for the pkt_tlv configuration for the
monitor mode. Adding changes to enable these while sending
HTT ring configuration message.

Change-Id: Ifa23edb55562512e18bb2ee4c426fa0b5e45a577
CRs-Fixed: 2071602
Ravi Joshi 7 years ago
parent
commit
2320b6fe68
1 changed files with 132 additions and 84 deletions
  1. 132 84
      dp/wifi3.0/dp_htt.c

+ 132 - 84
dp/wifi3.0/dp_htt.c

@@ -597,107 +597,118 @@ int htt_h2t_rx_ring_cfg(void *htt_soc, int pdev_id, void *hal_srng,
 
 	if (htt_tlv_filter->enable_fp) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 0000, 1);
+				MGMT, 0000, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 0001, 1);
+				MGMT, 0001, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 0010, 1);
+				MGMT, 0010, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 0011, 1);
+				MGMT, 0011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 0100, 1);
+				MGMT, 0100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 0101, 1);
+				MGMT, 0101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 0110, 1);
+				MGMT, 0110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 1000, 1);
+				MGMT, 0111, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
-			MGMT, 1001, 1);
+				MGMT, 1000, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, FP,
+				MGMT, 1001, 1);
 	}
 
 	if (htt_tlv_filter->enable_md) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 0000, 1);
+				MGMT, 0000, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
+				MGMT, 0001, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 0001, 1);
+				MGMT, 0010, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 0010, 1);
+				MGMT, 0011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 0011, 1);
+				MGMT, 0100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 0100, 1);
+				MGMT, 0101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 0101, 1);
+				MGMT, 0110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 0110, 1);
+				MGMT, 0111, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 1000, 1);
+				MGMT, 1000, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MD,
-			MGMT, 1001, 1);
+				MGMT, 1001, 1);
 	}
 
 	if (htt_tlv_filter->enable_mo) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 0000, 1);
+				MGMT, 0000, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 0001, 1);
+				MGMT, 0001, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 0010, 1);
+				MGMT, 0010, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 0011, 1);
+				MGMT, 0011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 0100, 1);
+				MGMT, 0100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 0101, 1);
+				MGMT, 0101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 0110, 1);
+				MGMT, 0110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 1000, 1);
+				MGMT, 0111, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
-			MGMT, 1001, 1);
+				MGMT, 1000, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG0, MO,
+				MGMT, 1001, 1);
 	}
+
 	/* word 3 */
 	msg_word++;
 	*msg_word = 0;
 
 	if (htt_tlv_filter->enable_fp) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, FP,
-			MGMT, 1010, 1);
+				MGMT, 1010, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, FP,
-			MGMT, 1011, 1);
+				MGMT, 1011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, FP,
-			MGMT, 1100, 1);
+				MGMT, 1100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, FP,
-			MGMT, 1101, 1);
+				MGMT, 1101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, FP,
-			MGMT,	1110, 1);
+				MGMT, 1110, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, FP,
+				MGMT, 1111, 1);
 	}
 
 	if (htt_tlv_filter->enable_md) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MD,
-			MGMT, 1010, 1);
+				MGMT, 1010, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MD,
-			MGMT, 1011, 1);
+				MGMT, 1011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MD,
-			MGMT, 1100, 1);
+				MGMT, 1100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MD,
-			MGMT, 1101, 1);
+				MGMT, 1101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MD,
-			MGMT, 1110, 1);
+				MGMT, 1110, 1);
 	}
 
 	if (htt_tlv_filter->enable_mo) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MO,
-			MGMT, 1010, 1);
+				MGMT, 1010, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MO,
+				MGMT, 1011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MO,
-			MGMT, 1011, 1);
+				MGMT, 1100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MO,
-			MGMT, 1100, 1);
+				MGMT, 1101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MO,
-			MGMT, 1101, 1);
+				MGMT, 1110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG1, MO,
-			MGMT, 1110, 1);
+				MGMT, 1111, 1);
 	}
 
 	/* word 4 */
@@ -705,30 +716,72 @@ int htt_h2t_rx_ring_cfg(void *htt_soc, int pdev_id, void *hal_srng,
 	*msg_word = 0;
 
 	if (htt_tlv_filter->enable_fp) {
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0000, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0001, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0010, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0011, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0100, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0101, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, FP,
-			CTRL, 0111, 1);
+				CTRL, 0111, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, FP,
-			CTRL, 1000, 1);
+				CTRL, 1000, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, FP,
-			CTRL, 1001, 1);
+				CTRL, 1001, 1);
 	}
 
 	if (htt_tlv_filter->enable_md) {
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0000, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0001, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0010, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0011, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0100, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0101, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MD,
-			CTRL, 0111, 1);
+				CTRL, 0111, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MD,
-			CTRL, 1000, 1);
+				CTRL, 1000, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MD,
-			CTRL, 1001, 1);
+				CTRL, 1001, 1);
 	}
 
 	if (htt_tlv_filter->enable_mo) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
-			CTRL, 0111, 1);
+				CTRL, 0000, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0001, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0010, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0011, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
-			CTRL, 1000, 1);
+				CTRL, 0101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
-			CTRL, 1001, 1);
+				CTRL, 0110, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 0111, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 1000, 1);
+		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG2, MO,
+				CTRL, 1001, 1);
 	}
 
 	/* word 5 */
@@ -736,70 +789,65 @@ int htt_h2t_rx_ring_cfg(void *htt_soc, int pdev_id, void *hal_srng,
 	*msg_word = 0;
 	if (htt_tlv_filter->enable_fp) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			CTRL, 1010, 1);
-		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			CTRL, 1011, 1);
+				CTRL, 1010, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			CTRL, 1100, 1);
+				CTRL, 1011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			CTRL, 1101, 1);
+				CTRL, 1100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			CTRL, 1110, 1);
+				CTRL, 1101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			CTRL, 1111, 1);
+				CTRL, 1110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			CTRL, 1111, 1);
+				CTRL, 1111, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			DATA, MCAST, 1);
+				DATA, MCAST, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			DATA, UCAST, 1);
+				DATA, UCAST, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, FP,
-			DATA, NULL, 1);
+				DATA, NULL, 1);
 	}
 
 	if (htt_tlv_filter->enable_md) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			CTRL, 1010, 1);
+				CTRL, 1010, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			CTRL, 1011, 1);
+				CTRL, 1011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			CTRL, 1100, 1);
+				CTRL, 1100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			CTRL, 1101, 1);
+				CTRL, 1101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			CTRL, 1110, 1);
+				CTRL, 1110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			CTRL, 1111, 1);
+				CTRL, 1111, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			CTRL, 1111, 1);
+				DATA, MCAST, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			DATA, MCAST, 1);
+				DATA, UCAST, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			DATA, UCAST, 1);
-		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MD,
-			DATA, NULL, 1);
+				DATA, NULL, 1);
 	}
+
 	if (htt_tlv_filter->enable_mo) {
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			CTRL, 1010, 1);
-		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			CTRL, 1011, 1);
+				CTRL, 1010, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			CTRL, 1100, 1);
+				CTRL, 1011, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			CTRL, 1101, 1);
+				CTRL, 1100, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			CTRL, 1110, 1);
+				CTRL, 1101, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			CTRL, 1111, 1);
+				CTRL, 1110, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			CTRL, 1111, 1);
+				CTRL, 1111, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			DATA, MCAST, 1);
+				DATA, MCAST, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			DATA, UCAST, 1);
+				DATA, UCAST, 1);
 		htt_rx_ring_pkt_enable_subtype_set(*msg_word, FLAG3, MO,
-			DATA, NULL, 1);
+				DATA, NULL, 1);
 	}
 
 	/* word 6 */