qcacmn: Support for smart monitor on HKv2

Add support for smart monitor feature on HKv2.
For HKv2, NAC filtering is done by HW and NAC is
programmed directly in the AST table. The NAC entries
in AST table have monitor direct bit set and this
is obtained by host via monitor status ring.
host subscribes for packet header in MD packets.

To these filtered packets radiotap header is added
and delivered to the stack.

Change-Id: I123f986531943e376ac5c492540e01f0b03348c4
diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c
index a6425dd..10d1bfc 100644
--- a/dp/wifi3.0/dp_rx_mon_status.c
+++ b/dp/wifi3.0/dp_rx_mon_status.c
@@ -333,9 +333,9 @@
 		return 1;
 	}
 
-	/* Include 2 bytes of reserved space appended to the msdu payload */
+	/* Adding 4 bytes to get to start of 802.11 frame after phy_ppdu_id */
 	size = (ppdu_info->msdu_info.first_msdu_payload -
-		qdf_nbuf_data(nbuf)) + 2;
+		qdf_nbuf_data(nbuf)) + 4;
 	ppdu_info->msdu_info.first_msdu_payload = NULL;
 
 	if (qdf_nbuf_pull_head(nbuf, size) == NULL) {
@@ -345,14 +345,14 @@
 		return 1;
 	}
 
-	/* only retain RX MSDU payload in the skb */
+	/* Only retain RX MSDU payload in the skb */
 	qdf_nbuf_trim_tail(nbuf, qdf_nbuf_len(nbuf) -
 			   ppdu_info->msdu_info.payload_len);
 	qdf_nbuf_update_radiotap(&(pdev->ppdu_info.rx_status),
 				 nbuf, sizeof(struct rx_pkt_tlvs));
 	pdev->monitor_vdev->osif_rx_mon(pdev->monitor_vdev->osif_vdev,
 					nbuf, NULL);
-
+	pdev->ppdu_info.rx_status.monitor_direct_used = 0;
 	return 0;
 }