|
@@ -568,11 +568,18 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
|
|
|
|
|
|
case WIFIRX_PPDU_START_E:
|
|
|
{
|
|
|
- struct hal_rx_ppdu_common_info *com_info = &ppdu_info->com_info;
|
|
|
+ if (qdf_likely(ppdu_info->com_info.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);
|
|
|
|
|
|
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 =
|
|
|
(HAL_RX_GET(rx_tlv, RX_PPDU_START_1,
|
|
@@ -594,20 +601,6 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
|
|
|
ppdu_info->com_info.ppdu_timestamp;
|
|
|
ppdu_info->rx_state = HAL_RX_MON_PPDU_START;
|
|
|
|
|
|
- /* If last ppdu_id doesn't match new ppdu_id,
|
|
|
- * 1. reset mpdu_cnt
|
|
|
- * 2. update last_ppdu_id with new
|
|
|
- * 3. reset mpdu fcs bitmap
|
|
|
- */
|
|
|
- if (com_info->ppdu_id != com_info->last_ppdu_id) {
|
|
|
- com_info->mpdu_cnt = 0;
|
|
|
- com_info->last_ppdu_id =
|
|
|
- com_info->ppdu_id;
|
|
|
- com_info->num_users = 0;
|
|
|
- qdf_mem_zero(&com_info->mpdu_fcs_ok_bitmap,
|
|
|
- HAL_RX_NUM_WORDS_PER_PPDU_BITMAP *
|
|
|
- sizeof(com_info->mpdu_fcs_ok_bitmap[0]));
|
|
|
- }
|
|
|
break;
|
|
|
}
|
|
|
|