qcacmn: Fix the issue on setup monitor mode ring

The pdev id in host is not the same as firmware MAC id
Add host pdevid to firmware MAC id mapping code
in set pdev id for htt sring setup and
set pdev id for htt rx ring selection cfg

The mon_ppdu_status is not synchronized
Fix the issue on pdev mon_ppdu_status by reset
mon_ppdu_status to DP_PPDU_STATUS_START after
monitor destination ring is processed

Add code for mpdu fcs error for later use

Change-Id: Ia6245cc9441e3339bcd01ed18fdce2f33f3f7699
This commit is contained in:
Kai Chen
2017-06-12 20:06:35 -07:00
committed by snandini
parent d7f096602a
commit cbe4c342b6
4 changed files with 33 additions and 5 deletions

View File

@@ -205,13 +205,15 @@ uint32_t hal_rx_desc_is_first_msdu(void *hw_desc_addr)
* the current descriptor
* @ buf_info: structure to return the buffer information
* @ msdu_cnt: pointer to msdu count in MPDU
* @ mpdu_fcs_err: pointer to valuable of mpdu fcs error
* Return: void
*/
static inline
void hal_rx_reo_ent_buf_paddr_get(void *rx_desc,
struct hal_buf_info *buf_info,
void **pp_buf_addr_info,
uint32_t *msdu_cnt
uint32_t *msdu_cnt,
bool *mpdu_fcs_err
)
{
struct reo_entrance_ring *reo_ent_ring =
@@ -219,10 +221,24 @@ void hal_rx_reo_ent_buf_paddr_get(void *rx_desc,
struct buffer_addr_info *buf_addr_info;
struct rx_mpdu_desc_info *rx_mpdu_desc_info_details;
uint32_t loop_cnt;
uint32_t rxdma_push_reason;
uint32_t rxdma_error_code;
rx_mpdu_desc_info_details =
&reo_ent_ring->reo_level_mpdu_frame_info.rx_mpdu_desc_info_details;
rxdma_push_reason = HAL_RX_GET(reo_ent_ring, REO_ENTRANCE_RING_6,
RXDMA_PUSH_REASON);
*mpdu_fcs_err = false;
if (rxdma_push_reason == HAL_RX_WBM_RXDMA_PSH_RSN_ERROR) {
rxdma_error_code = HAL_RX_GET(reo_ent_ring,
REO_ENTRANCE_RING_6, RXDMA_ERROR_CODE);
if (rxdma_error_code == HAL_RXDMA_ERR_FCS)
*mpdu_fcs_err = true;
}
*msdu_cnt = HAL_RX_GET(rx_mpdu_desc_info_details,
RX_MPDU_DESC_INFO_0, MSDU_COUNT);