Преглед изворни кода

qcacmn: Modify SGI value in case of VHT SIG TLV

In VHT case, for some packets SGI value is 3, which
represent 3.2us value. Which is not applicable for VHT.
So if value 3 received from HW for SGI, than convert that
to default value, which is 0.4us.

Change-Id: I92716f8041f0db20b60dcd5e5d6681fa1bfa708f
Keyur Parekh пре 7 година
родитељ
комит
49cdc74b40
2 измењених фајлова са 8 додато и 1 уклоњено
  1. 3 0
      dp/wifi3.0/dp_internal.h
  2. 5 1
      dp/wifi3.0/dp_rx_mon_status.c

+ 3 - 0
dp/wifi3.0/dp_internal.h

@@ -23,6 +23,9 @@
 
 #define RX_BUFFER_SIZE_PKTLOG_LITE 1024
 
+/* Macro For NYSM value received in VHT TLV */
+#define VHT_SGI_NYSM 3
+
 #if DP_PRINT_ENABLE
 #include <stdarg.h>       /* va_list */
 #include <qdf_types.h> /* qdf_vprint */

+ 5 - 1
dp/wifi3.0/dp_rx_mon_status.c

@@ -60,7 +60,11 @@ dp_rx_populate_cdp_indication_ppdu(struct dp_pdev *pdev,
 	cdp_rx_ppdu->other_msdu_count = ppdu_info->rx_status.other_msdu_count;
 	cdp_rx_ppdu->u.nss = ppdu_info->rx_status.nss;
 	cdp_rx_ppdu->u.mcs = ppdu_info->rx_status.mcs;
-	cdp_rx_ppdu->u.gi = ppdu_info->rx_status.sgi;
+	if ((ppdu_info->rx_status.sgi == VHT_SGI_NYSM) &&
+		(ppdu_info->rx_status.preamble_type == HAL_RX_PKT_TYPE_11AC))
+		cdp_rx_ppdu->u.gi = CDP_SGI_0_4_US;
+	else
+		cdp_rx_ppdu->u.gi = ppdu_info->rx_status.sgi;
 	cdp_rx_ppdu->u.ldpc = ppdu_info->rx_status.ldpc;
 	cdp_rx_ppdu->u.preamble = ppdu_info->rx_status.preamble_type;
 	cdp_rx_ppdu->u.ppdu_type = ppdu_info->rx_status.reception_type;