diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index a257445fe6..df798353aa 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -3236,7 +3236,7 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id) offset = count % pages->num_element_per_page; cookie = LINK_DESC_COOKIE(count, page_idx); - hal_set_link_desc_addr(desc, cookie, + hal_set_link_desc_addr(soc->hal_soc, desc, cookie, dma_pages[page_idx].page_p_addr + (offset * link_desc_size)); count++; @@ -3263,7 +3263,8 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id) page_idx = count / num_descs_per_page; offset = count % num_descs_per_page; cookie = LINK_DESC_COOKIE(count, page_idx); - hal_set_link_desc_addr((void *)scatter_buf_ptr, + hal_set_link_desc_addr(soc->hal_soc, + (void *)scatter_buf_ptr, cookie, dma_pages[page_idx].page_p_addr + (offset * link_desc_size)); diff --git a/dp/wifi3.0/dp_rx_mon.h b/dp/wifi3.0/dp_rx_mon.h index 6ec718c415..ec86cf21bb 100644 --- a/dp/wifi3.0/dp_rx_mon.h +++ b/dp/wifi3.0/dp_rx_mon.h @@ -333,17 +333,20 @@ dp_rx_mon_link_desc_return(struct dp_pdev *dp_pdev, * multiple nbufs. This function * is to return data length in * fragmented buffer - * + * @soc: Datapath soc handle * @total_len: pointer to remaining data length. * @frag_len: pointer to data length in this fragment. * @l2_hdr_pad: l2 header padding */ -static inline void dp_mon_adjust_frag_len(uint32_t *total_len, +static inline void dp_mon_adjust_frag_len(struct dp_soc *soc, + uint32_t *total_len, uint32_t *frag_len, uint16_t l2_hdr_pad) { - if (*total_len >= (RX_MONITOR_BUFFER_SIZE - RX_PKT_TLVS_LEN)) { - *frag_len = RX_MONITOR_BUFFER_SIZE - RX_PKT_TLVS_LEN - + uint32_t rx_pkt_tlv_len = soc->rx_pkt_tlv_size; + + if (*total_len >= (RX_MONITOR_BUFFER_SIZE - rx_pkt_tlv_len)) { + *frag_len = RX_MONITOR_BUFFER_SIZE - rx_pkt_tlv_len - l2_hdr_pad; *total_len -= *frag_len; } else { @@ -551,7 +554,7 @@ dp_rx_mon_parse_desc_buffer(struct dp_soc *dp_soc, { struct hal_rx_mon_dest_buf_info frame_info; uint16_t tot_payload_len = - RX_MONITOR_BUFFER_SIZE - RX_PKT_TLVS_LEN; + RX_MONITOR_BUFFER_SIZE - soc->rx_pkt_tlv_size; if (msdu_info->msdu_flags & HAL_MSDU_F_MSDU_CONTINUATION) { /* First buffer of MSDU */ @@ -561,7 +564,8 @@ dp_rx_mon_parse_desc_buffer(struct dp_soc *dp_soc, *is_frag_p = true; if (HAL_HW_RX_DECAP_FORMAT_RAW == - HAL_RX_DESC_GET_DECAP_FORMAT(rx_desc_tlv)) { + hal_rx_tlv_decap_format_get(dp_soc->hal_soc, + rx_desc_tlv)) { *l2_hdr_offset_p = DP_RX_MON_RAW_L2_HDR_PAD_BYTE; frame_info.is_decap_raw = 1; @@ -627,7 +631,8 @@ dp_rx_mon_parse_desc_buffer(struct dp_soc *dp_soc, /* MSDU with single buffer */ *frag_len_p = msdu_info->msdu_len; if (HAL_HW_RX_DECAP_FORMAT_RAW == - HAL_RX_DESC_GET_DECAP_FORMAT(rx_desc_tlv)) { + hal_rx_tlv_decap_format_get(dp_soc->hal_soc, + rx_desc_tlv)) { *l2_hdr_offset_p = DP_RX_MON_RAW_L2_HDR_PAD_BYTE; frame_info.is_decap_raw = 1; @@ -658,7 +663,7 @@ static inline void dp_rx_mon_buffer_set_pktlen(qdf_nbuf_t msdu, uint32_t size) /** * dp_rx_mon_add_msdu_to_list()- Add msdu to list and update head_msdu * It will add reaped buffer frag to nr frag of parent msdu. - * + * @soc: DP soc handle * @head_msdu: NULL if first time called else &msdu * @msdu: Msdu where frag address needs to be added via nr_frag * @last: Used to traverse in list if this feature is disabled. @@ -667,9 +672,9 @@ static inline void dp_rx_mon_buffer_set_pktlen(qdf_nbuf_t msdu, uint32_t size) * @l2_hdr_offset: l2 hdr padding */ static inline -QDF_STATUS dp_rx_mon_add_msdu_to_list(qdf_nbuf_t *head_msdu, qdf_nbuf_t msdu, - qdf_nbuf_t *last, qdf_frag_t rx_desc_tlv, - uint32_t frag_len, +QDF_STATUS dp_rx_mon_add_msdu_to_list(struct dp_soc *soc, qdf_nbuf_t *head_msdu, + qdf_nbuf_t msdu, qdf_nbuf_t *last, + qdf_frag_t rx_desc_tlv, uint32_t frag_len, uint32_t l2_hdr_offset) { uint32_t num_frags; @@ -699,7 +704,7 @@ QDF_STATUS dp_rx_mon_add_msdu_to_list(qdf_nbuf_t *head_msdu, qdf_nbuf_t msdu, num_frags = qdf_nbuf_get_nr_frags(msdu_curr); if (num_frags < QDF_NBUF_MAX_FRAGS) { qdf_nbuf_add_rx_frag(rx_desc_tlv, msdu_curr, - SIZE_OF_MONITOR_TLV, + soc->rx_mon_pkt_tlv_size, frag_len + l2_hdr_offset, RX_MONITOR_BUFFER_SIZE, false); @@ -714,7 +719,7 @@ QDF_STATUS dp_rx_mon_add_msdu_to_list(qdf_nbuf_t *head_msdu, qdf_nbuf_t msdu, != QDF_STATUS_SUCCESS) return QDF_STATUS_E_FAILURE; - qdf_nbuf_add_rx_frag(rx_desc_tlv, msdu_curr, SIZE_OF_MONITOR_TLV, + qdf_nbuf_add_rx_frag(rx_desc_tlv, msdu_curr, soc->rx_mon_pkt_tlv_size, frag_len + l2_hdr_offset, RX_MONITOR_BUFFER_SIZE, false); @@ -754,11 +759,13 @@ void dp_rx_mon_init_tail_msdu(qdf_nbuf_t *head_msdu, qdf_nbuf_t msdu, * * If feature is disabled, then removal happens in restitch logic. * + * @soc: Datapath soc handle * @head_msdu: Head msdu * @tail_msdu: Tail msdu */ static inline -void dp_rx_mon_remove_raw_frame_fcs_len(qdf_nbuf_t *head_msdu, +void dp_rx_mon_remove_raw_frame_fcs_len(struct dp_soc *soc, + qdf_nbuf_t *head_msdu, qdf_nbuf_t *tail_msdu) { qdf_frag_t addr; @@ -772,9 +779,8 @@ void dp_rx_mon_remove_raw_frame_fcs_len(qdf_nbuf_t *head_msdu, /* Strip FCS_LEN for Raw frame */ addr = qdf_nbuf_get_frag_addr(*head_msdu, 0); - addr -= SIZE_OF_MONITOR_TLV; - if (HAL_RX_DESC_GET_DECAP_FORMAT(addr) == - HAL_HW_RX_DECAP_FORMAT_RAW) { + addr -= soc->rx_mon_pkt_tlv_size; + if (hal_rx_tlv_decap_format_get(addr) == HAL_HW_RX_DECAP_FORMAT_RAW) { qdf_nbuf_trim_add_frag_size(*tail_msdu, qdf_nbuf_get_nr_frags(*tail_msdu) - 1, -HAL_RX_FCS_LEN, 0); @@ -886,11 +892,12 @@ dp_rx_mon_parse_desc_buffer(struct dp_soc *dp_soc, *total_frag_len_p = msdu_info->msdu_len; *is_frag_p = true; } - dp_mon_adjust_frag_len(total_frag_len_p, frag_len_p, + dp_mon_adjust_frag_len(dp_soc, total_frag_len_p, frag_len_p, *l2_hdr_offset_p); } else { if (*is_frag_p) { - dp_mon_adjust_frag_len(total_frag_len_p, frag_len_p, + dp_mon_adjust_frag_len(dp_soc, total_frag_len_p, + frag_len_p, *l2_hdr_offset_p); } else { *frag_len_p = msdu_info->msdu_len; @@ -905,9 +912,9 @@ static inline void dp_rx_mon_buffer_set_pktlen(qdf_nbuf_t msdu, uint32_t size) } static inline -QDF_STATUS dp_rx_mon_add_msdu_to_list(qdf_nbuf_t *head_msdu, qdf_nbuf_t msdu, - qdf_nbuf_t *last, qdf_frag_t rx_desc_tlv, - uint32_t frag_len, +QDF_STATUS dp_rx_mon_add_msdu_to_list(struct dp_soc *soc, qdf_nbuf_t *head_msdu, + qdf_nbuf_t msdu, qdf_nbuf_t *last, + qdf_frag_t rx_desc_tlv, uint32_t frag_len, uint32_t l2_hdr_offset) { if (head_msdu && !*head_msdu) { @@ -931,7 +938,8 @@ void dp_rx_mon_init_tail_msdu(qdf_nbuf_t *head_msdu, qdf_nbuf_t msdu, } static inline -void dp_rx_mon_remove_raw_frame_fcs_len(qdf_nbuf_t *head_msdu, +void dp_rx_mon_remove_raw_frame_fcs_len(struct dp_soc *soc, + qdf_nbuf_t *head_msdu, qdf_nbuf_t *tail_msdu) { } diff --git a/dp/wifi3.0/dp_rx_mon_dest.c b/dp/wifi3.0/dp_rx_mon_dest.c index decc4dfe31..9116210d48 100644 --- a/dp/wifi3.0/dp_rx_mon_dest.c +++ b/dp/wifi3.0/dp_rx_mon_dest.c @@ -198,7 +198,8 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id, last = NULL; - hal_rx_reo_ent_buf_paddr_get(rxdma_dst_ring_desc, &buf_info, &msdu_cnt); + hal_rx_reo_ent_buf_paddr_get(soc->hal_soc, rxdma_dst_ring_desc, + &buf_info, &msdu_cnt); rs = &dp_pdev->rx_mon_recv_status; rs->cdp_rs_rxdma_err = false; @@ -383,7 +384,7 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id, total_frag_len, frag_len, msdu_list.msdu_info[i].msdu_flags); - rx_pkt_offset = SIZE_OF_MONITOR_TLV; + rx_pkt_offset = soc->rx_mon_pkt_tlv_size; rx_buf_size = rx_pkt_offset + l2_hdr_offset + frag_len; @@ -414,9 +415,9 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id, msdu_list.msdu_info[i].msdu_len, frag_len); - if (dp_rx_mon_add_msdu_to_list(head_msdu, msdu, &last, - rx_desc_tlv, frag_len, - l2_hdr_offset) + if (dp_rx_mon_add_msdu_to_list(soc, head_msdu, msdu, + &last, rx_desc_tlv, + frag_len, l2_hdr_offset) != QDF_STATUS_SUCCESS) { dp_rx_mon_add_msdu_to_list_failure_handler(rx_desc_tlv, dp_pdev, &last, head_msdu, @@ -436,10 +437,12 @@ next_msdu: * Store the current link buffer into to the local * structure to be used for release purpose. */ - hal_rxdma_buff_addr_info_set(rx_link_buf_info, buf_info.paddr, + hal_rxdma_buff_addr_info_set(soc->hal_soc, rx_link_buf_info, + buf_info.paddr, buf_info.sw_cookie, buf_info.rbm); - hal_rx_mon_next_link_desc_get(rx_msdu_link_desc, &buf_info); + hal_rx_mon_next_link_desc_get(soc->hal_soc, rx_msdu_link_desc, + &buf_info); if (dp_rx_monitor_link_desc_return(dp_pdev, (hal_buff_addrinfo_t) rx_link_buf_info, @@ -450,7 +453,7 @@ next_msdu: } while (buf_info.paddr && msdu_cnt); dp_rx_mon_init_tail_msdu(head_msdu, msdu, last, tail_msdu); - dp_rx_mon_remove_raw_frame_fcs_len(head_msdu, tail_msdu); + dp_rx_mon_remove_raw_frame_fcs_len(soc, head_msdu, tail_msdu); return rx_bufs_used; } @@ -462,7 +465,7 @@ void dp_rx_msdus_set_payload(struct dp_soc *soc, qdf_nbuf_t msdu) uint32_t rx_pkt_offset, l2_hdr_offset; data = qdf_nbuf_data(msdu); - rx_pkt_offset = SIZE_OF_MONITOR_TLV; + rx_pkt_offset = soc->rx_mon_pkt_tlv_size; l2_hdr_offset = hal_rx_msdu_end_l3_hdr_padding_get(soc->hal_soc, data); qdf_nbuf_pull_head(msdu, rx_pkt_offset + l2_hdr_offset); } @@ -544,6 +547,7 @@ qdf_nbuf_t dp_rx_mon_frag_restitch_mpdu_from_msdus(struct dp_soc *soc, struct hal_rx_mon_dest_buf_info buf_info; uint32_t pad_byte_pholder = 0; qdf_nbuf_t msdu_curr; + uint16_t rx_mon_tlv_size = soc->rx_mon_pkt_tlv_size; if (qdf_unlikely(!dp_pdev)) { dp_rx_mon_dest_debug("%pK: pdev is null for mac_id = %d", soc, mac_id); @@ -554,9 +558,9 @@ qdf_nbuf_t dp_rx_mon_frag_restitch_mpdu_from_msdus(struct dp_soc *soc, if (!head_msdu || !tail_msdu) goto mpdu_stitch_fail; - rx_desc = qdf_nbuf_get_frag_addr(head_msdu, 0) - SIZE_OF_MONITOR_TLV; + rx_desc = qdf_nbuf_get_frag_addr(head_msdu, 0) - rx_mon_tlv_size; - if (HAL_RX_DESC_GET_MPDU_LENGTH_ERR(rx_desc)) { + if (hal_rx_tlv_mpdu_len_err_get(soc->hal_soc, rx_desc)) { /* It looks like there is some issue on MPDU len err */ /* Need further investigate if drop the packet */ DP_STATS_INC(dp_pdev, dropped.mon_rx_drop, 1); @@ -565,14 +569,13 @@ qdf_nbuf_t dp_rx_mon_frag_restitch_mpdu_from_msdus(struct dp_soc *soc, /* Look for FCS error */ num_frags = qdf_nbuf_get_nr_frags(tail_msdu); - rx_desc = - qdf_nbuf_get_frag_addr(tail_msdu, - num_frags - 1) - SIZE_OF_MONITOR_TLV; - rx_status->cdp_rs_fcs_err = HAL_RX_DESC_GET_MPDU_FCS_ERR(rx_desc); - dp_pdev->ppdu_info.rx_status.rs_fcs_err = - HAL_RX_DESC_GET_MPDU_FCS_ERR(rx_desc); + rx_desc = qdf_nbuf_get_frag_addr(tail_msdu, num_frags - 1) - + rx_mon_tlv_size; + rx_status->cdp_rs_fcs_err = hal_rx_tlv_mpdu_fcs_err_get(soc->hal_soc, + rx_desc); + dp_pdev->ppdu_info.rx_status.rs_fcs_err = rx_status->cdp_rs_fcs_err; - rx_desc = qdf_nbuf_get_frag_addr(head_msdu, 0) - SIZE_OF_MONITOR_TLV; + rx_desc = qdf_nbuf_get_frag_addr(head_msdu, 0) - rx_mon_tlv_size; hal_rx_mon_dest_get_buffer_info_from_tlv(rx_desc, &buf_info); /* Easy case - The MSDU status indicates that this is a non-decapped @@ -590,7 +593,7 @@ qdf_nbuf_t dp_rx_mon_frag_restitch_mpdu_from_msdus(struct dp_soc *soc, * on the decap type and the corresponding number of raw bytes to copy * status header */ - hdr_desc = HAL_RX_DESC_GET_80211_HDR(rx_desc); + hdr_desc = hal_rx_desc_get_80211_hdr(soc->hal_soc, rx_desc); dp_rx_mon_dest_debug("%pK: decap format not raw", soc); @@ -768,7 +771,7 @@ qdf_nbuf_t dp_rx_mon_frag_restitch_mpdu_from_msdus(struct dp_soc *soc, */ frag_addr = qdf_nbuf_get_frag_addr(msdu_curr, frags_iter); - rx_desc = frag_addr - SIZE_OF_MONITOR_TLV; + rx_desc = frag_addr - rx_mon_tlv_size; /* * Update protocol and flow tag for MSDU @@ -822,7 +825,8 @@ qdf_nbuf_t dp_rx_mon_frag_restitch_mpdu_from_msdus(struct dp_soc *soc, if (buf_info.first_buffer) { /* Src addr from where llc header needs to be copied */ rx_src_desc = - HAL_RX_DESC_GET_80211_HDR(rx_desc); + hal_rx_desc_get_80211_hdr(soc->hal_soc, + rx_desc); /* Size of buffer with llc header */ frag_size = frag_size - @@ -944,7 +948,7 @@ qdf_nbuf_t dp_rx_mon_restitch_mpdu_from_msdus(struct dp_soc *soc, rx_desc = qdf_nbuf_data(msdu_orig); - if (HAL_RX_DESC_GET_MPDU_LENGTH_ERR(rx_desc)) { + if (hal_rx_tlv_mpdu_len_err_get(soc->hal_soc, rx_desc)) { /* It looks like there is some issue on MPDU len err */ /* Need further investigate if drop the packet */ DP_STATS_INC(dp_pdev, dropped.mon_rx_drop, 1); @@ -953,16 +957,16 @@ qdf_nbuf_t dp_rx_mon_restitch_mpdu_from_msdus(struct dp_soc *soc, rx_desc = qdf_nbuf_data(last_msdu); - rx_status->cdp_rs_fcs_err = HAL_RX_DESC_GET_MPDU_FCS_ERR(rx_desc); - dp_pdev->ppdu_info.rx_status.rs_fcs_err = - HAL_RX_DESC_GET_MPDU_FCS_ERR(rx_desc); + rx_status->cdp_rs_fcs_err = hal_rx_tlv_mpdu_fcs_err_get(soc->hal_soc, + rx_desc); + dp_pdev->ppdu_info.rx_status.rs_fcs_err = rx_status->cdp_rs_fcs_err; /* Fill out the rx_status from the PPDU start and end fields */ /* HAL_RX_GET_PPDU_STATUS(soc, mac_id, rx_status); */ rx_desc = qdf_nbuf_data(head_msdu); - decap_format = HAL_RX_DESC_GET_DECAP_FORMAT(rx_desc); + decap_format = hal_rx_tlv_decap_format_get(soc->hal_soc, rx_desc); /* Easy case - The MSDU status indicates that this is a non-decapped * packet in RAW mode. @@ -1030,7 +1034,7 @@ qdf_nbuf_t dp_rx_mon_restitch_mpdu_from_msdus(struct dp_soc *soc, */ rx_desc = qdf_nbuf_data(head_msdu); - hdr_desc = HAL_RX_DESC_GET_80211_HDR(rx_desc); + hdr_desc = hal_rx_desc_get_80211_hdr(soc->hal_soc, rx_desc); dp_rx_mon_dest_debug("%pK: decap format not raw", soc); @@ -1123,7 +1127,8 @@ qdf_nbuf_t dp_rx_mon_restitch_mpdu_from_msdus(struct dp_soc *soc, } else { /* Reload the hdr ptr only on non-first MSDUs */ rx_desc = qdf_nbuf_data(msdu_orig); - hdr_desc = HAL_RX_DESC_GET_80211_HDR(rx_desc); + hdr_desc = hal_rx_desc_get_80211_hdr(soc->hal_soc, + rx_desc); } /* Copy this buffers MSDU related status into the prev buffer */ @@ -1426,7 +1431,7 @@ static QDF_STATUS dp_rx_mon_process_dest_pktlog(struct dp_soc *soc, uint32_t mac_id, qdf_nbuf_t mpdu) { - uint32_t event, msdu_timestamp; + uint32_t event, msdu_timestamp = 0; struct dp_pdev *pdev = dp_get_pdev_for_lmac_id(soc, mac_id); void *data; struct ieee80211_frame *wh; @@ -1840,7 +1845,7 @@ dp_rx_pdev_mon_buf_desc_pool_init(struct dp_pdev *pdev, uint32_t mac_id) rx_desc_pool_size = wlan_cfg_get_dp_soc_rx_sw_desc_weight(soc_cfg_ctx) * num_entries; - rx_desc_pool->owner = HAL_RX_BUF_RBM_SW3_BM; + rx_desc_pool->owner = HAL_RX_BUF_RBM_SW3_BM(soc->wbm_sw0_bm_id); rx_desc_pool->buf_size = RX_MONITOR_BUFFER_SIZE; rx_desc_pool->buf_alignment = RX_MONITOR_BUFFER_ALIGNMENT; /* Enable frag processing if feature is enabled */ @@ -2124,7 +2129,7 @@ dp_mon_dest_srng_drop_for_mac(struct dp_pdev *pdev, uint32_t mac_id) uint32_t rx_bufs_used = 0; void *rx_msdu_link_desc; uint32_t msdu_count = 0; - uint16 num_msdus; + uint16_t num_msdus; struct hal_buf_info buf_info; struct hal_rx_msdu_list msdu_list; qdf_nbuf_t nbuf; @@ -2157,7 +2162,7 @@ dp_mon_dest_srng_drop_for_mac(struct dp_pdev *pdev, uint32_t mac_id) hal_srng_dst_peek(hal_soc, mon_dst_srng)) && reap_cnt < MON_DROP_REAP_LIMIT) { - hal_rx_reo_ent_buf_paddr_get(rxdma_dst_ring_desc, + hal_rx_reo_ent_buf_paddr_get(hal_soc, rxdma_dst_ring_desc, &buf_info, &msdu_count); do { @@ -2217,12 +2222,14 @@ dp_mon_dest_srng_drop_for_mac(struct dp_pdev *pdev, uint32_t mac_id) * Store the current link buffer into to the local * structure to be used for release purpose. */ - hal_rxdma_buff_addr_info_set(rx_link_buf_info, + hal_rxdma_buff_addr_info_set(soc->hal_soc, + rx_link_buf_info, buf_info.paddr, buf_info.sw_cookie, buf_info.rbm); - hal_rx_mon_next_link_desc_get(rx_msdu_link_desc, + hal_rx_mon_next_link_desc_get(soc->hal_soc, + rx_msdu_link_desc, &buf_info); if (dp_rx_monitor_link_desc_return(pdev, (hal_buff_addrinfo_t) diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c index 34a2d437c6..3d43f7e528 100644 --- a/dp/wifi3.0/dp_rx_mon_status.c +++ b/dp/wifi3.0/dp_rx_mon_status.c @@ -76,7 +76,7 @@ dp_rx_mon_handle_status_buf_done(struct dp_pdev *pdev, struct dp_soc *soc = pdev->soc; hal_soc_handle_t hal_soc; void *ring_entry; - uint32_t rx_buf_cookie; + struct hal_buf_info hbi; qdf_nbuf_t status_nbuf; struct dp_rx_desc *rx_desc; void *rx_tlv; @@ -91,8 +91,10 @@ dp_rx_mon_handle_status_buf_done(struct dp_pdev *pdev, soc, mon_status_srng); return DP_MON_STATUS_NO_DMA; } - rx_buf_cookie = HAL_RX_BUF_COOKIE_GET(ring_entry); - rx_desc = dp_rx_cookie_2_va_mon_status(soc, rx_buf_cookie); + + hal_rx_buf_cookie_rbm_get(soc->hal_soc, (uint32_t *)ring_entry, + &hbi); + rx_desc = dp_rx_cookie_2_va_mon_status(soc, hbi.sw_cookie); qdf_assert_always(rx_desc); @@ -1954,7 +1956,7 @@ dp_rx_mon_status_srng_process(struct dp_soc *soc, struct dp_intr *int_ctx, while (qdf_likely((rxdma_mon_status_ring_entry = hal_srng_src_peek_n_get_next(hal_soc, mon_status_srng)) && quota--)) { - uint32_t rx_buf_cookie; + struct hal_buf_info hbi; qdf_nbuf_t status_nbuf; struct dp_rx_desc *rx_desc; uint8_t *status_buf; @@ -1971,11 +1973,11 @@ dp_rx_mon_status_srng_process(struct dp_soc *soc, struct dp_intr *int_ctx, if (qdf_likely(buf_addr)) { - rx_buf_cookie = - HAL_RX_BUF_COOKIE_GET( - rxdma_mon_status_ring_entry); + hal_rx_buf_cookie_rbm_get(soc->hal_soc, + (uint32_t *)rxdma_mon_status_ring_entry, + &hbi); rx_desc = dp_rx_cookie_2_va_mon_status(soc, - rx_buf_cookie); + hbi.sw_cookie); qdf_assert_always(rx_desc); @@ -2085,8 +2087,9 @@ buf_replenish: &tail, mac_id, rx_desc_pool); hal_rxdma_buff_addr_info_set( - rxdma_mon_status_ring_entry, - 0, 0, HAL_RX_BUF_RBM_SW3_BM); + hal_soc, rxdma_mon_status_ring_entry, + 0, 0, + HAL_RX_BUF_RBM_SW3_BM(soc->wbm_sw0_bm_id)); work_done++; break; } @@ -2097,8 +2100,10 @@ buf_replenish: rx_desc->in_use = 1; rx_desc->unmapped = 0; - hal_rxdma_buff_addr_info_set(rxdma_mon_status_ring_entry, - paddr, rx_desc->cookie, HAL_RX_BUF_RBM_SW3_BM); + hal_rxdma_buff_addr_info_set(hal_soc, + rxdma_mon_status_ring_entry, + paddr, rx_desc->cookie, + HAL_RX_BUF_RBM_SW3_BM(soc->wbm_sw0_bm_id)); hal_srng_src_get_next(hal_soc, mon_status_srng); work_done++; @@ -2168,7 +2173,7 @@ dp_rx_pdev_mon_status_buffers_alloc(struct dp_pdev *pdev, uint32_t mac_id) return dp_rx_mon_status_buffers_replenish(soc, mac_id, mon_status_ring, rx_desc_pool, num_entries, &desc_list, &tail, - HAL_RX_BUF_RBM_SW3_BM); + HAL_RX_BUF_RBM_SW3_BM(soc->wbm_sw0_bm_id)); } QDF_STATUS @@ -2215,7 +2220,7 @@ dp_rx_pdev_mon_status_desc_pool_init(struct dp_pdev *pdev, uint32_t mac_id) dp_debug("Mon RX Desc status Pool[%d] init entries=%u", pdev_id, num_entries); - rx_desc_pool->owner = HAL_RX_BUF_RBM_SW3_BM; + rx_desc_pool->owner = HAL_RX_BUF_RBM_SW3_BM(soc->wbm_sw0_bm_id); rx_desc_pool->buf_size = RX_MON_STATUS_BUF_SIZE; rx_desc_pool->buf_alignment = RX_DATA_BUFFER_ALIGNMENT; /* Disable frag processing flag */ @@ -2414,8 +2419,10 @@ QDF_STATUS dp_rx_mon_status_buffers_replenish(struct dp_soc *dp_soc, (*desc_list)->rx_desc.unmapped = 0; count++; - hal_rxdma_buff_addr_info_set(rxdma_ring_entry, paddr, - (*desc_list)->rx_desc.cookie, owner); + hal_rxdma_buff_addr_info_set(dp_soc->hal_soc, + rxdma_ring_entry, paddr, + (*desc_list)->rx_desc.cookie, + owner); dp_rx_mon_status_debug("%pK: rx_desc=%pK, cookie=%d, nbuf=%pK, paddr=%pK", dp_soc, &(*desc_list)->rx_desc, @@ -2482,7 +2489,7 @@ dp_mon_status_srng_drop_for_mac(struct dp_pdev *pdev, uint32_t mac_id, hal_srng_src_peek_n_get_next(hal_soc, mon_status_srng)) && reap_cnt < MON_DROP_REAP_LIMIT && quota--) { uint64_t buf_addr; - uint32_t rx_buf_cookie; + struct hal_buf_info hbi; struct dp_rx_desc *rx_desc; qdf_nbuf_t status_nbuf; uint8_t *status_buf; @@ -2496,9 +2503,11 @@ dp_mon_status_srng_drop_for_mac(struct dp_pdev *pdev, uint32_t mac_id, ((uint64_t)(HAL_RX_BUFFER_ADDR_39_32_GET(ring_desc)) << 32)); if (qdf_likely(buf_addr)) { - rx_buf_cookie = HAL_RX_BUF_COOKIE_GET(ring_desc); + hal_rx_buf_cookie_rbm_get(soc->hal_soc, + (uint32_t *)ring_desc, + &hbi); rx_desc = dp_rx_cookie_2_va_mon_status(soc, - rx_buf_cookie); + hbi.sw_cookie); qdf_assert_always(rx_desc); @@ -2562,8 +2571,8 @@ dp_mon_status_srng_drop_for_mac(struct dp_pdev *pdev, uint32_t mac_id, &tail, mac_id, rx_desc_pool); - hal_rxdma_buff_addr_info_set(ring_desc, 0, 0, - HAL_RX_BUF_RBM_SW3_BM); + hal_rxdma_buff_addr_info_set(hal_soc, ring_desc, 0, 0, + HAL_RX_BUF_RBM_SW3_BM(soc->wbm_sw0_bm_id)); break; } @@ -2572,8 +2581,9 @@ dp_mon_status_srng_drop_for_mac(struct dp_pdev *pdev, uint32_t mac_id, rx_desc->nbuf = status_nbuf; rx_desc->in_use = 1; - hal_rxdma_buff_addr_info_set(ring_desc, iova, rx_desc->cookie, - HAL_RX_BUF_RBM_SW3_BM); + hal_rxdma_buff_addr_info_set(hal_soc, ring_desc, iova, + rx_desc->cookie, + HAL_RX_BUF_RBM_SW3_BM(soc->wbm_sw0_bm_id)); reap_cnt++; hal_srng_src_get_next(hal_soc, mon_status_srng);