Selaa lähdekoodia

qcacmn: Add error print for matching ppdu_id during HAL processing

When matching ppdu_id is detected during HAL processing, then print the
error message instead of going for assert.

Change-Id: I8f58359a66fbeaf2ebc98477f65bab446c0a784b
CRs-Fixed: 2747953
Harsh Kumar Bijlani 4 vuotta sitten
vanhempi
sitoutus
c58c061890
3 muutettua tiedostoa jossa 14 lisäystä ja 11 poistoa
  1. 2 2
      dp/wifi3.0/dp_rx_mon_status.c
  2. 1 0
      hal/wifi3.0/hal_api_mon.h
  3. 11 9
      hal/wifi3.0/hal_generic_api.h

+ 2 - 2
dp/wifi3.0/dp_rx_mon_status.c

@@ -2039,10 +2039,10 @@ dp_rx_pdev_mon_status_desc_pool_init(struct dp_pdev *pdev, uint32_t mac_id)
 	qdf_mem_zero(&pdev->ppdu_info, sizeof(pdev->ppdu_info));
 
 	/*
-	 * Set ppdu_id to HAL_INVALID_PPDU_ID in order to avoid ppdu_id
+	 * Set last_ppdu_id to HAL_INVALID_PPDU_ID in order to avoid ppdu_id
 	 * match with '0' ppdu_id from monitor status ring
 	 */
-	pdev->ppdu_info.com_info.ppdu_id = HAL_INVALID_PPDU_ID;
+	pdev->ppdu_info.com_info.last_ppdu_id = HAL_INVALID_PPDU_ID;
 
 	qdf_mem_zero(&pdev->rx_mon_stats, sizeof(pdev->rx_mon_stats));
 

+ 1 - 0
hal/wifi3.0/hal_api_mon.h

@@ -480,6 +480,7 @@ struct hal_rx_ppdu_common_info {
 	uint32_t mpdu_cnt_fcs_ok;
 	uint32_t mpdu_cnt_fcs_err;
 	uint32_t mpdu_fcs_ok_bitmap[HAL_RX_NUM_WORDS_PER_PPDU_BITMAP];
+	uint32_t last_ppdu_id;
 	uint32_t mpdu_cnt;
 	uint8_t num_users;
 };

+ 11 - 9
hal/wifi3.0/hal_generic_api.h

@@ -568,17 +568,19 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
 
 	case WIFIRX_PPDU_START_E:
 	{
-		if (qdf_likely(ppdu_info->com_info.ppdu_id !=
+		if (qdf_unlikely(ppdu_info->com_info.last_ppdu_id ==
 		    HAL_RX_GET(rx_tlv, RX_PPDU_START_0, PHY_PPDU_ID)))
-			/* Reset ppdu_info before processing the ppdu */
-			qdf_mem_zero(ppdu_info,
-				     sizeof(struct hal_rx_ppdu_info));
-		else
-			qdf_assert_always(0);
+			hal_err("Matching ppdu_id(%u) detected",
+				 ppdu_info->com_info.last_ppdu_id);
+
+		/* Reset ppdu_info before processing the ppdu */
+		qdf_mem_zero(ppdu_info,
+			     sizeof(struct hal_rx_ppdu_info));
 
-		ppdu_info->com_info.ppdu_id =
-			HAL_RX_GET(rx_tlv, RX_PPDU_START_0,
-				PHY_PPDU_ID);
+		ppdu_info->com_info.last_ppdu_id =
+			ppdu_info->com_info.ppdu_id =
+				HAL_RX_GET(rx_tlv, RX_PPDU_START_0,
+					PHY_PPDU_ID);
 
 		/* channel number is set in PHY meta data */
 		ppdu_info->rx_status.chan_num =