qcacmn: Enable promiscuous mode for M-copy feature

In existing code M-copy feature was designed to provide
first 100bytes of payload of self BSS packets.

Add change to enable promiscusous mode and provide metadata and
100bytes of payload of all the packets received by the radio.

Change-Id: I5b1f168028a4fba3a24e9d2ccd0d68c246661d76
diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c
index 818b144..2d316bd 100644
--- a/dp/wifi3.0/dp_rx_mon_status.c
+++ b/dp/wifi3.0/dp_rx_mon_status.c
@@ -218,12 +218,13 @@
 	if (ppdu_info->first_msdu_payload == NULL)
 		return QDF_STATUS_SUCCESS;
 
-	if (pdev->am_copy_id.rx_ppdu_id == ppdu_info->com_info.ppdu_id)
+	if (pdev->m_copy_id.rx_ppdu_id == ppdu_info->com_info.ppdu_id)
 		return QDF_STATUS_SUCCESS;
 
-	pdev->am_copy_id.rx_ppdu_id = ppdu_info->com_info.ppdu_id;
+	pdev->m_copy_id.rx_ppdu_id = ppdu_info->com_info.ppdu_id;
 
-	size = ppdu_info->first_msdu_payload - qdf_nbuf_data(nbuf);
+	/* Include 2 bytes of reserved space appended to the msdu payload */
+	size = (ppdu_info->first_msdu_payload - qdf_nbuf_data(nbuf)) + 2;
 	ppdu_info->first_msdu_payload = NULL;
 
 	if (qdf_nbuf_pull_head(nbuf, size) == NULL)
@@ -287,8 +288,13 @@
 			dp_wdi_event_handler(WDI_EVENT_RX_PPDU_DESC, soc,
 					ppdu_nbuf, cdp_rx_ppdu->peer_id,
 					WDI_NO_VAL, pdev->pdev_id);
-		} else
+		} else if (pdev->mcopy_mode) {
+			dp_wdi_event_handler(WDI_EVENT_RX_PPDU_DESC, soc,
+					ppdu_nbuf, HTT_INVALID_PEER,
+					WDI_NO_VAL, pdev->pdev_id);
+		} else {
 			qdf_nbuf_free(ppdu_nbuf);
+		}
 	}
 }
 #else
@@ -317,7 +323,7 @@
 	uint8_t *rx_tlv;
 	uint8_t *rx_tlv_start;
 	uint32_t tlv_status = HAL_TLV_STATUS_BUF_DONE;
-	QDF_STATUS am_copy_status = QDF_STATUS_SUCCESS;
+	QDF_STATUS m_copy_status = QDF_STATUS_SUCCESS;
 
 	ppdu_info = &pdev->ppdu_info;
 
@@ -336,7 +342,8 @@
 			status_nbuf, HTT_INVALID_PEER, WDI_NO_VAL, mac_id);
 #endif
 #endif
-		if ((pdev->monitor_vdev != NULL) || (pdev->enhanced_stats_en)) {
+		if ((pdev->monitor_vdev != NULL) || (pdev->enhanced_stats_en) ||
+				pdev->mcopy_mode) {
 
 			do {
 				tlv_status = hal_rx_status_get_tlv_info(rx_tlv,
@@ -350,9 +357,9 @@
 		}
 
 		if (pdev->mcopy_mode) {
-			am_copy_status = dp_rx_handle_mcopy_mode(soc,
+			m_copy_status = dp_rx_handle_mcopy_mode(soc,
 						pdev, ppdu_info, status_nbuf);
-			if (am_copy_status == QDF_STATUS_SUCCESS)
+			if (m_copy_status == QDF_STATUS_SUCCESS)
 				qdf_nbuf_free(status_nbuf);
 		} else {
 			qdf_nbuf_free(status_nbuf);