qcacmn: Read 256 fcs_ok bitmap from user ext TLV
Read extra bits of fcs okay bit map from RX_PPDU_END_USER_STATS_EXT TLV and use the same to send first fcs okay packet in case of M COPY CRs-Fixed: 2499150 Change-Id: I1a25971ea789dd7fddddb312af8a18a4cccdc178
这个提交包含在:
@@ -202,8 +202,10 @@ dp_rx_populate_cdp_indication_ppdu_user(struct dp_pdev *pdev,
|
||||
rx_user_status->mpdu_cnt_fcs_ok;
|
||||
rx_stats_peruser->mpdu_cnt_fcs_err =
|
||||
rx_user_status->mpdu_cnt_fcs_err;
|
||||
rx_stats_peruser->mpdu_fcs_ok_bitmap =
|
||||
rx_user_status->mpdu_fcs_ok_bitmap;
|
||||
qdf_mem_copy(&rx_stats_peruser->mpdu_fcs_ok_bitmap,
|
||||
&rx_user_status->mpdu_fcs_ok_bitmap,
|
||||
HAL_RX_NUM_WORDS_PER_PPDU_BITMAP *
|
||||
sizeof(rx_user_status->mpdu_fcs_ok_bitmap[0]));
|
||||
rx_stats_peruser->mpdu_ok_byte_count =
|
||||
rx_user_status->mpdu_ok_byte_count;
|
||||
rx_stats_peruser->mpdu_err_byte_count =
|
||||
@@ -544,18 +546,19 @@ dp_rx_get_fcs_ok_msdu(struct dp_pdev *pdev,
|
||||
{
|
||||
uint16_t mpdu_fcs_ok;
|
||||
qdf_nbuf_t status_nbuf = NULL;
|
||||
unsigned long int fcs_ok_bitmap;
|
||||
|
||||
/* If fcs_ok_bitmap is zero, no need to procees further */
|
||||
if (qdf_unlikely(!ppdu_info->com_info.mpdu_fcs_ok_bitmap))
|
||||
return NULL;
|
||||
unsigned long *fcs_ok_bitmap;
|
||||
|
||||
/* Obtain fcs_ok passed index from bitmap
|
||||
* this index is used to get fcs passed first msdu payload
|
||||
*/
|
||||
|
||||
fcs_ok_bitmap = ppdu_info->com_info.mpdu_fcs_ok_bitmap;
|
||||
mpdu_fcs_ok = qdf_find_first_bit(&fcs_ok_bitmap, HAL_RX_MAX_MPDU);
|
||||
fcs_ok_bitmap =
|
||||
(unsigned long *)&ppdu_info->com_info.mpdu_fcs_ok_bitmap[0];
|
||||
mpdu_fcs_ok = qdf_find_first_bit(fcs_ok_bitmap,
|
||||
HAL_RX_MAX_MPDU);
|
||||
|
||||
if (mpdu_fcs_ok >= HAL_RX_MAX_MPDU)
|
||||
goto end;
|
||||
|
||||
/* Get status buffer by indexing mpdu_fcs_ok index
|
||||
* containing first msdu payload with fcs passed
|
||||
@@ -567,6 +570,7 @@ dp_rx_get_fcs_ok_msdu(struct dp_pdev *pdev,
|
||||
*/
|
||||
qdf_nbuf_ref(status_nbuf);
|
||||
|
||||
end:
|
||||
/* Free the ppdu status buffer queue */
|
||||
qdf_nbuf_queue_free(&pdev->rx_ppdu_buf_q);
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户