diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index c0378ccf3daa..888bdb4c13d4 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -1429,7 +1429,15 @@ static void dp_rx_msdu_stats_update(struct dp_soc *soc, pkt_type = hal_rx_msdu_start_get_pkt_type(rx_tlv_hdr); DP_STATS_INC(peer, rx.bw[bw], 1); - DP_STATS_INC(peer, rx.nss[nss], 1); + /* + * only if nss > 0 and pkt_type is 11N/AC/AX, + * then increase index [nss - 1] in array counter. + */ + if (nss > 0 && (pkt_type == DOT11_N || + pkt_type == DOT11_AC || + pkt_type == DOT11_AX)) + DP_STATS_INC(peer, rx.nss[nss - 1], 1); + DP_STATS_INC(peer, rx.sgi_count[sgi], 1); DP_STATS_INCC(peer, rx.err.mic_err, 1, hal_rx_mpdu_end_mic_err_get(rx_tlv_hdr)); diff --git a/hal/wifi3.0/qca6390/hal_6390_rx.h b/hal/wifi3.0/qca6390/hal_6390_rx.h index 3a6176245719..c0eb0076558d 100644 --- a/hal/wifi3.0/qca6390/hal_6390_rx.h +++ b/hal/wifi3.0/qca6390/hal_6390_rx.h @@ -55,16 +55,11 @@ hal_rx_msdu_start_nss_get_6390(uint8_t *buf) struct rx_msdu_start *msdu_start = &pkt_tlvs->msdu_start_tlv.rx_msdu_start; uint8_t mimo_ss_bitmap; - uint32_t ss_index; mimo_ss_bitmap = HAL_RX_MSDU_START_MIMO_SS_BITMAP(msdu_start); - ss_index = qdf_get_hweight8(mimo_ss_bitmap); - /* Hot fix only, maxinum nss number for MCL set to 1 (nss 2)*/ - if ((ss_index > 1) && (ss_index <= 3)) - ss_index = 1; + return qdf_get_hweight8(mimo_ss_bitmap); - return ss_index; } /**