Lines Matching refs:soc
113 static QDF_STATUS __dp_ipa_handle_buf_smmu_mapping(struct dp_soc *soc, in __dp_ipa_handle_buf_smmu_mapping() argument
128 hdl = wlan_ipa_get_hdl(soc->ctrl_psoc, 0); in __dp_ipa_handle_buf_smmu_mapping()
133 qdf_update_mem_map_table(soc->osdev, &mem_map_table, in __dp_ipa_handle_buf_smmu_mapping()
161 QDF_STATUS dp_ipa_handle_rx_buf_smmu_mapping(struct dp_soc *soc, in dp_ipa_handle_rx_buf_smmu_mapping() argument
170 for (i = 0; i < soc->pdev_count; i++) { in dp_ipa_handle_rx_buf_smmu_mapping()
171 pdev = soc->pdev_list[i]; in dp_ipa_handle_rx_buf_smmu_mapping()
176 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx) || in dp_ipa_handle_rx_buf_smmu_mapping()
177 !qdf_mem_smmu_s1_enabled(soc->osdev)) in dp_ipa_handle_rx_buf_smmu_mapping()
185 if (!(qdf_atomic_read(&soc->ipa_pipes_enabled) && in dp_ipa_handle_rx_buf_smmu_mapping()
186 qdf_atomic_read(&soc->ipa_map_allowed))) { in dp_ipa_handle_rx_buf_smmu_mapping()
188 DP_STATS_INC(soc, rx.err.ipa_unmap_no_pipe, 1); in dp_ipa_handle_rx_buf_smmu_mapping()
196 DP_STATS_INC(soc, rx.err.ipa_smmu_map_dup, 1); in dp_ipa_handle_rx_buf_smmu_mapping()
198 DP_STATS_INC(soc, rx.err.ipa_smmu_unmap_dup, 1); in dp_ipa_handle_rx_buf_smmu_mapping()
205 return __dp_ipa_handle_buf_smmu_mapping(soc, nbuf, size, create, in dp_ipa_handle_rx_buf_smmu_mapping()
210 struct dp_soc *soc, in __dp_ipa_tx_buf_smmu_mapping() argument
218 uint32_t tx_buffer_cnt = soc->ipa_uc_tx_rsc.alloc_tx_buf_cnt; in __dp_ipa_tx_buf_smmu_mapping()
229 soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned[index]; in __dp_ipa_tx_buf_smmu_mapping()
233 ret = __dp_ipa_handle_buf_smmu_mapping(soc, nbuf, buf_len, in __dp_ipa_tx_buf_smmu_mapping()
241 static void dp_ipa_set_reo_ctx_mapping_lock_required(struct dp_soc *soc, in dp_ipa_set_reo_ctx_mapping_lock_required() argument
247 for (ring = 0; ring < soc->num_reo_dest_rings; ring++) { in dp_ipa_set_reo_ctx_mapping_lock_required()
248 hal_ring_hdl = soc->reo_dest_ring[ring].hal_srng; in dp_ipa_set_reo_ctx_mapping_lock_required()
250 soc->ipa_reo_ctx_lock_required[ring] = lock_required; in dp_ipa_set_reo_ctx_mapping_lock_required()
255 static void dp_ipa_set_reo_ctx_mapping_lock_required(struct dp_soc *soc, in dp_ipa_set_reo_ctx_mapping_lock_required() argument
263 static QDF_STATUS dp_ipa_handle_rx_buf_pool_smmu_mapping(struct dp_soc *soc, in dp_ipa_handle_rx_buf_pool_smmu_mapping() argument
281 if (!qdf_mem_smmu_s1_enabled(soc->osdev)) in dp_ipa_handle_rx_buf_pool_smmu_mapping()
285 rx_pool = &soc->rx_desc_buf[pdev_id]; in dp_ipa_handle_rx_buf_pool_smmu_mapping()
287 dp_ipa_set_reo_ctx_mapping_lock_required(soc, true); in dp_ipa_handle_rx_buf_pool_smmu_mapping()
289 dp_ipa_rx_buf_smmu_mapping_lock(soc); in dp_ipa_handle_rx_buf_pool_smmu_mapping()
306 DP_STATS_INC(soc, in dp_ipa_handle_rx_buf_pool_smmu_mapping()
309 DP_STATS_INC(soc, in dp_ipa_handle_rx_buf_pool_smmu_mapping()
316 ret = __dp_ipa_handle_buf_smmu_mapping(soc, nbuf, in dp_ipa_handle_rx_buf_pool_smmu_mapping()
320 dp_ipa_rx_buf_smmu_mapping_unlock(soc); in dp_ipa_handle_rx_buf_pool_smmu_mapping()
322 dp_ipa_set_reo_ctx_mapping_lock_required(soc, false); in dp_ipa_handle_rx_buf_pool_smmu_mapping()
328 struct dp_soc *soc, in dp_ipa_handle_rx_buf_pool_smmu_mapping() argument
342 if (!qdf_mem_smmu_s1_enabled(soc->osdev)) in dp_ipa_handle_rx_buf_pool_smmu_mapping()
346 rx_pool = &soc->rx_desc_buf[pdev_id]; in dp_ipa_handle_rx_buf_pool_smmu_mapping()
348 dp_ipa_set_reo_ctx_mapping_lock_required(soc, true); in dp_ipa_handle_rx_buf_pool_smmu_mapping()
350 dp_ipa_rx_buf_smmu_mapping_lock(soc); in dp_ipa_handle_rx_buf_pool_smmu_mapping()
361 DP_STATS_INC(soc, in dp_ipa_handle_rx_buf_pool_smmu_mapping()
364 DP_STATS_INC(soc, in dp_ipa_handle_rx_buf_pool_smmu_mapping()
371 __dp_ipa_handle_buf_smmu_mapping(soc, nbuf, rx_pool->buf_size, in dp_ipa_handle_rx_buf_pool_smmu_mapping()
374 dp_ipa_rx_buf_smmu_mapping_unlock(soc); in dp_ipa_handle_rx_buf_pool_smmu_mapping()
376 dp_ipa_set_reo_ctx_mapping_lock_required(soc, false); in dp_ipa_handle_rx_buf_pool_smmu_mapping()
384 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_set_smmu_mapped() local
386 qdf_atomic_set(&soc->ipa_map_allowed, val); in dp_ipa_set_smmu_mapped()
392 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_get_smmu_mapped() local
394 return qdf_atomic_read(&soc->ipa_map_allowed); in dp_ipa_get_smmu_mapped()
432 static QDF_STATUS dp_ipa_get_tx_bank_id(struct dp_soc *soc, uint8_t *bank_id) in dp_ipa_get_tx_bank_id() argument
434 if (soc->arch_ops.ipa_get_bank_id) { in dp_ipa_get_tx_bank_id()
435 *bank_id = soc->arch_ops.ipa_get_bank_id(soc); in dp_ipa_get_tx_bank_id()
449 static void dp_ipa_setup_tx_params_bank_id(struct dp_soc *soc, in dp_ipa_setup_tx_params_bank_id() argument
454 if (QDF_IS_STATUS_SUCCESS(dp_ipa_get_tx_bank_id(soc, &bank_id))) in dp_ipa_setup_tx_params_bank_id()
459 dp_ipa_setup_tx_smmu_params_bank_id(struct dp_soc *soc, in dp_ipa_setup_tx_smmu_params_bank_id() argument
464 if (QDF_IS_STATUS_SUCCESS(dp_ipa_get_tx_bank_id(soc, &bank_id))) in dp_ipa_setup_tx_smmu_params_bank_id()
469 dp_ipa_setup_tx_params_bank_id(struct dp_soc *soc, in dp_ipa_setup_tx_params_bank_id() argument
475 dp_ipa_setup_tx_smmu_params_bank_id(struct dp_soc *soc, in dp_ipa_setup_tx_smmu_params_bank_id() argument
483 dp_ipa_setup_tx_alt_params_pmac_id(struct dp_soc *soc, in dp_ipa_setup_tx_alt_params_pmac_id() argument
489 if (soc->pdev_count > 1) in dp_ipa_setup_tx_alt_params_pmac_id()
490 pmac_id = soc->pdev_list[soc->pdev_count - 1]->lmac_id; in dp_ipa_setup_tx_alt_params_pmac_id()
496 dp_ipa_setup_tx_alt_smmu_params_pmac_id(struct dp_soc *soc, in dp_ipa_setup_tx_alt_smmu_params_pmac_id() argument
502 if (soc->pdev_count > 1) in dp_ipa_setup_tx_alt_smmu_params_pmac_id()
503 pmac_id = soc->pdev_list[soc->pdev_count - 1]->lmac_id; in dp_ipa_setup_tx_alt_smmu_params_pmac_id()
509 dp_ipa_setup_tx_params_pmac_id(struct dp_soc *soc, in dp_ipa_setup_tx_params_pmac_id() argument
514 pmac_id = soc->pdev_list[0]->lmac_id; in dp_ipa_setup_tx_params_pmac_id()
520 dp_ipa_setup_tx_smmu_params_pmac_id(struct dp_soc *soc, in dp_ipa_setup_tx_smmu_params_pmac_id() argument
525 pmac_id = soc->pdev_list[0]->lmac_id; in dp_ipa_setup_tx_smmu_params_pmac_id()
531 dp_ipa_setup_tx_alt_params_pmac_id(struct dp_soc *soc, in dp_ipa_setup_tx_alt_params_pmac_id() argument
537 dp_ipa_setup_tx_alt_smmu_params_pmac_id(struct dp_soc *soc, in dp_ipa_setup_tx_alt_smmu_params_pmac_id() argument
543 dp_ipa_setup_tx_params_pmac_id(struct dp_soc *soc, in dp_ipa_setup_tx_params_pmac_id() argument
549 dp_ipa_setup_tx_smmu_params_pmac_id(struct dp_soc *soc, in dp_ipa_setup_tx_smmu_params_pmac_id() argument
556 static void dp_ipa_tx_alt_pool_detach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_ipa_tx_alt_pool_detach() argument
562 for (idx = 0; idx < soc->ipa_uc_tx_rsc_alt.alloc_tx_buf_cnt; idx++) { in dp_ipa_tx_alt_pool_detach()
564 soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned[idx]; in dp_ipa_tx_alt_pool_detach()
568 qdf_nbuf_unmap_single(soc->osdev, nbuf, QDF_DMA_BIDIRECTIONAL); in dp_ipa_tx_alt_pool_detach()
572 soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned[idx] = in dp_ipa_tx_alt_pool_detach()
576 qdf_mem_free(soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned); in dp_ipa_tx_alt_pool_detach()
577 soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned = NULL; in dp_ipa_tx_alt_pool_detach()
587 static int dp_ipa_tx_alt_pool_attach(struct dp_soc *soc) in dp_ipa_tx_alt_pool_attach() argument
593 soc->tx_comp_ring[IPA_TX_ALT_COMP_RING_IDX].hal_srng; in dp_ipa_tx_alt_pool_attach()
610 wbm_bm_id = wlan_cfg_get_rbm_id_for_index(soc->wlan_cfg_ctx, in dp_ipa_tx_alt_pool_attach()
613 hal_get_srng_params(soc->hal_soc, in dp_ipa_tx_alt_pool_attach()
628 soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned = in dp_ipa_tx_alt_pool_attach()
630 sizeof(*soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned)); in dp_ipa_tx_alt_pool_attach()
631 if (!soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned) { in dp_ipa_tx_alt_pool_attach()
636 hal_srng_access_start_unlocked(soc->hal_soc, in dp_ipa_tx_alt_pool_attach()
648 nbuf = qdf_nbuf_frag_alloc(soc->osdev, alloc_size, 0, in dp_ipa_tx_alt_pool_attach()
654 soc->hal_soc, in dp_ipa_tx_alt_pool_attach()
664 qdf_nbuf_map_single(soc->osdev, nbuf, in dp_ipa_tx_alt_pool_attach()
670 hal_rxdma_buff_addr_info_set(soc->hal_soc, ring_entry, in dp_ipa_tx_alt_pool_attach()
673 soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned[ in dp_ipa_tx_alt_pool_attach()
677 hal_srng_access_end_unlocked(soc->hal_soc, in dp_ipa_tx_alt_pool_attach()
680 soc->ipa_uc_tx_rsc_alt.alloc_tx_buf_cnt = tx_buffer_count; in dp_ipa_tx_alt_pool_attach()
687 soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned); in dp_ipa_tx_alt_pool_attach()
688 soc->ipa_uc_tx_rsc_alt.tx_buf_pool_vaddr_unaligned = NULL; in dp_ipa_tx_alt_pool_attach()
697 struct dp_soc *soc = pdev->soc; in dp_ipa_tx_alt_ring_get_resource() local
701 (uint32_t)soc->ipa_uc_tx_rsc_alt.alloc_tx_buf_cnt; in dp_ipa_tx_alt_ring_get_resource()
704 soc->osdev, &ipa_res->tx_alt_ring, in dp_ipa_tx_alt_ring_get_resource()
705 soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_base_vaddr, in dp_ipa_tx_alt_ring_get_resource()
706 soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_base_paddr, in dp_ipa_tx_alt_ring_get_resource()
707 soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_size); in dp_ipa_tx_alt_ring_get_resource()
710 soc->osdev, &ipa_res->tx_alt_comp_ring, in dp_ipa_tx_alt_ring_get_resource()
711 soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_base_vaddr, in dp_ipa_tx_alt_ring_get_resource()
712 soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_base_paddr, in dp_ipa_tx_alt_ring_get_resource()
713 soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_size); in dp_ipa_tx_alt_ring_get_resource()
715 if (!qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_tx_alt_ring_get_resource()
722 static void dp_ipa_tx_alt_ring_resource_setup(struct dp_soc *soc) in dp_ipa_tx_alt_ring_resource_setup() argument
724 struct hal_soc *hal_soc = (struct hal_soc *)soc->hal_soc; in dp_ipa_tx_alt_ring_resource_setup()
731 soc->tcl_data_ring[IPA_TX_ALT_RING_IDX].hal_srng; in dp_ipa_tx_alt_ring_resource_setup()
736 soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_base_paddr = in dp_ipa_tx_alt_ring_resource_setup()
738 soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_base_vaddr = in dp_ipa_tx_alt_ring_resource_setup()
740 soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_size = in dp_ipa_tx_alt_ring_resource_setup()
751 soc->ipa_uc_tx_rsc_alt.ipa_tcl_hp_paddr = in dp_ipa_tx_alt_ring_resource_setup()
757 (unsigned int)(soc->ipa_uc_tx_rsc_alt.ipa_tcl_hp_paddr), in dp_ipa_tx_alt_ring_resource_setup()
758 (void *)soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_base_paddr, in dp_ipa_tx_alt_ring_resource_setup()
759 (void *)soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_base_vaddr, in dp_ipa_tx_alt_ring_resource_setup()
761 soc->ipa_uc_tx_rsc_alt.ipa_tcl_ring_size); in dp_ipa_tx_alt_ring_resource_setup()
765 soc->tx_comp_ring[IPA_TX_ALT_COMP_RING_IDX].hal_srng; in dp_ipa_tx_alt_ring_resource_setup()
770 soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_base_paddr = in dp_ipa_tx_alt_ring_resource_setup()
772 soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_base_vaddr = in dp_ipa_tx_alt_ring_resource_setup()
774 soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_size = in dp_ipa_tx_alt_ring_resource_setup()
776 soc->ipa_uc_tx_rsc_alt.ipa_wbm_hp_shadow_paddr = in dp_ipa_tx_alt_ring_resource_setup()
781 soc->ipa_uc_tx_rsc_alt.ipa_wbm_tp_paddr = in dp_ipa_tx_alt_ring_resource_setup()
787 (unsigned int)(soc->ipa_uc_tx_rsc_alt.ipa_wbm_tp_paddr), in dp_ipa_tx_alt_ring_resource_setup()
788 (void *)soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_base_paddr, in dp_ipa_tx_alt_ring_resource_setup()
789 (void *)soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_base_vaddr, in dp_ipa_tx_alt_ring_resource_setup()
791 soc->ipa_uc_tx_rsc_alt.ipa_wbm_ring_size); in dp_ipa_tx_alt_ring_resource_setup()
799 struct dp_soc *soc = pdev->soc; in dp_ipa_map_ring_doorbell_paddr() local
809 if (qdf_mem_smmu_s1_enabled(soc->osdev)) { in dp_ipa_map_ring_doorbell_paddr()
810 ret = pld_smmu_map(soc->osdev->dev, in dp_ipa_map_ring_doorbell_paddr()
817 ret = pld_smmu_map(soc->osdev->dev, in dp_ipa_map_ring_doorbell_paddr()
836 if (qdf_mem_smmu_s1_enabled(soc->osdev)) { in dp_ipa_map_ring_doorbell_paddr()
837 ret = pld_smmu_map(soc->osdev->dev, in dp_ipa_map_ring_doorbell_paddr()
849 struct dp_soc *soc = pdev->soc; in dp_ipa_unmap_ring_doorbell_paddr() local
852 if (!qdf_mem_smmu_s1_enabled(soc->osdev)) in dp_ipa_unmap_ring_doorbell_paddr()
857 ret = pld_smmu_unmap(soc->osdev->dev, in dp_ipa_unmap_ring_doorbell_paddr()
863 ret = pld_smmu_unmap(soc->osdev->dev, in dp_ipa_unmap_ring_doorbell_paddr()
868 ret = pld_smmu_unmap(soc->osdev->dev, in dp_ipa_unmap_ring_doorbell_paddr()
874 static QDF_STATUS dp_ipa_tx_alt_buf_smmu_mapping(struct dp_soc *soc, in dp_ipa_tx_alt_buf_smmu_mapping() argument
891 rsc = &soc->ipa_uc_tx_rsc_alt; in dp_ipa_tx_alt_buf_smmu_mapping()
900 ret = __dp_ipa_handle_buf_smmu_mapping(soc, nbuf, buf_len, in dp_ipa_tx_alt_buf_smmu_mapping()
907 static void dp_ipa_wdi_tx_alt_pipe_params(struct dp_soc *soc, in dp_ipa_wdi_tx_alt_pipe_params() argument
914 qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_wdi_tx_alt_pipe_params()
917 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_tx_alt_pipe_params()
922 soc->ipa_uc_tx_rsc_alt.ipa_wbm_tp_paddr; in dp_ipa_wdi_tx_alt_pipe_params()
926 qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_wdi_tx_alt_pipe_params()
929 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_tx_alt_pipe_params()
934 soc->ipa_uc_tx_rsc_alt.ipa_tcl_hp_paddr; in dp_ipa_wdi_tx_alt_pipe_params()
942 dp_ipa_setup_tx_params_bank_id(soc, tx); in dp_ipa_wdi_tx_alt_pipe_params()
945 dp_ipa_setup_tx_alt_params_pmac_id(soc, tx); in dp_ipa_wdi_tx_alt_pipe_params()
949 dp_ipa_wdi_tx_alt_pipe_smmu_params(struct dp_soc *soc, in dp_ipa_wdi_tx_alt_pipe_smmu_params() argument
959 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_tx_alt_pipe_smmu_params()
963 soc->ipa_uc_tx_rsc_alt.ipa_wbm_tp_paddr; in dp_ipa_wdi_tx_alt_pipe_smmu_params()
970 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_tx_alt_pipe_smmu_params()
974 soc->ipa_uc_tx_rsc_alt.ipa_tcl_hp_paddr; in dp_ipa_wdi_tx_alt_pipe_smmu_params()
981 dp_ipa_setup_tx_smmu_params_bank_id(soc, tx_smmu); in dp_ipa_wdi_tx_alt_pipe_smmu_params()
984 dp_ipa_setup_tx_alt_smmu_params_pmac_id(soc, tx_smmu); in dp_ipa_wdi_tx_alt_pipe_smmu_params()
987 static void dp_ipa_setup_tx_alt_pipe(struct dp_soc *soc, in dp_ipa_setup_tx_alt_pipe() argument
997 if (qdf_mem_smmu_s1_enabled(soc->osdev)) { in dp_ipa_setup_tx_alt_pipe()
1000 dp_ipa_wdi_tx_alt_pipe_smmu_params(soc, res, tx_smmu); in dp_ipa_setup_tx_alt_pipe()
1004 dp_ipa_wdi_tx_alt_pipe_params(soc, res, tx); in dp_ipa_setup_tx_alt_pipe()
1039 static void dp_ipa_tx_comp_ring_init_hp(struct dp_soc *soc, in dp_ipa_tx_comp_ring_init_hp() argument
1046 soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_tx_comp_ring_init_hp()
1048 hal_srng_dst_init_hp(soc->hal_soc, wbm_srng, in dp_ipa_tx_comp_ring_init_hp()
1056 soc->tx_comp_ring[IPA_TX_ALT_COMP_RING_IDX].hal_srng; in dp_ipa_tx_comp_ring_init_hp()
1058 hal_srng_dst_init_hp(soc->hal_soc, wbm_srng, in dp_ipa_tx_comp_ring_init_hp()
1063 dp_ipa_tx_comp_ring_update_hp_addr(struct dp_soc *soc, in dp_ipa_tx_comp_ring_update_hp_addr() argument
1069 wbm_srng = soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_tx_comp_ring_update_hp_addr()
1070 hal_srng_dst_update_hp_addr(soc->hal_soc, wbm_srng); in dp_ipa_tx_comp_ring_update_hp_addr()
1075 wbm_srng = soc->tx_comp_ring[IPA_TX_ALT_COMP_RING_IDX].hal_srng; in dp_ipa_tx_comp_ring_update_hp_addr()
1076 hal_srng_dst_update_hp_addr(soc->hal_soc, wbm_srng); in dp_ipa_tx_comp_ring_update_hp_addr()
1079 static void dp_ipa_set_tx_doorbell_paddr(struct dp_soc *soc, in dp_ipa_set_tx_doorbell_paddr() argument
1085 soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_set_tx_doorbell_paddr()
1099 soc->tx_comp_ring[IPA_TX_ALT_COMP_RING_IDX].hal_srng; in dp_ipa_set_tx_doorbell_paddr()
1110 static QDF_STATUS dp_ipa_reset_tx_doorbell_pa(struct dp_soc *soc, in dp_ipa_reset_tx_doorbell_pa() argument
1116 wbm_srng = soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_reset_tx_doorbell_pa()
1120 hp_addr = soc->ipa_uc_tx_rsc.ipa_wbm_hp_shadow_paddr; in dp_ipa_reset_tx_doorbell_pa()
1127 wbm_srng = soc->tx_comp_ring[IPA_TX_ALT_COMP_RING_IDX].hal_srng; in dp_ipa_reset_tx_doorbell_pa()
1131 hp_addr = soc->ipa_uc_tx_rsc_alt.ipa_wbm_hp_shadow_paddr; in dp_ipa_reset_tx_doorbell_pa()
1144 void dp_ipa_tx_alt_pool_detach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_ipa_tx_alt_pool_detach() argument
1148 static inline void dp_ipa_tx_alt_ring_resource_setup(struct dp_soc *soc) in dp_ipa_tx_alt_ring_resource_setup() argument
1152 static inline int dp_ipa_tx_alt_pool_attach(struct dp_soc *soc) in dp_ipa_tx_alt_pool_attach() argument
1167 struct dp_soc *soc = pdev->soc; in dp_ipa_map_ring_doorbell_paddr() local
1177 if (qdf_mem_smmu_s1_enabled(soc->osdev)) { in dp_ipa_map_ring_doorbell_paddr()
1178 ret = pld_smmu_map(soc->osdev->dev, in dp_ipa_map_ring_doorbell_paddr()
1185 ret = pld_smmu_map(soc->osdev->dev, in dp_ipa_map_ring_doorbell_paddr()
1197 struct dp_soc *soc = pdev->soc; in dp_ipa_unmap_ring_doorbell_paddr() local
1200 if (!qdf_mem_smmu_s1_enabled(soc->osdev)) in dp_ipa_unmap_ring_doorbell_paddr()
1203 ret = pld_smmu_unmap(soc->osdev->dev, in dp_ipa_unmap_ring_doorbell_paddr()
1208 ret = pld_smmu_unmap(soc->osdev->dev, in dp_ipa_unmap_ring_doorbell_paddr()
1214 static inline QDF_STATUS dp_ipa_tx_alt_buf_smmu_mapping(struct dp_soc *soc, in dp_ipa_tx_alt_buf_smmu_mapping() argument
1224 void dp_ipa_setup_tx_alt_pipe(struct dp_soc *soc, struct dp_ipa_resources *res, in dp_ipa_setup_tx_alt_pipe() argument
1265 static inline void dp_ipa_tx_comp_ring_init_hp(struct dp_soc *soc, in dp_ipa_tx_comp_ring_init_hp() argument
1269 soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_tx_comp_ring_init_hp()
1271 hal_srng_dst_init_hp(soc->hal_soc, wbm_srng, in dp_ipa_tx_comp_ring_init_hp()
1276 dp_ipa_tx_comp_ring_update_hp_addr(struct dp_soc *soc, in dp_ipa_tx_comp_ring_update_hp_addr() argument
1282 wbm_srng = soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_tx_comp_ring_update_hp_addr()
1283 hal_srng_dst_update_hp_addr(soc->hal_soc, wbm_srng); in dp_ipa_tx_comp_ring_update_hp_addr()
1286 static void dp_ipa_set_tx_doorbell_paddr(struct dp_soc *soc, in dp_ipa_set_tx_doorbell_paddr() argument
1290 soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_set_tx_doorbell_paddr()
1301 static QDF_STATUS dp_ipa_reset_tx_doorbell_pa(struct dp_soc *soc, in dp_ipa_reset_tx_doorbell_pa() argument
1305 soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_reset_tx_doorbell_pa()
1311 hp_addr = soc->ipa_uc_tx_rsc.ipa_wbm_hp_shadow_paddr; in dp_ipa_reset_tx_doorbell_pa()
1332 static void dp_tx_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_tx_ipa_uc_detach() argument
1338 for (idx = 0; idx < soc->ipa_uc_tx_rsc.alloc_tx_buf_cnt; idx++) { in dp_tx_ipa_uc_detach()
1340 soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned[idx]; in dp_tx_ipa_uc_detach()
1343 qdf_nbuf_unmap_single(soc->osdev, nbuf, QDF_DMA_BIDIRECTIONAL); in dp_tx_ipa_uc_detach()
1347 soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned[idx] = in dp_tx_ipa_uc_detach()
1351 qdf_mem_free(soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned); in dp_tx_ipa_uc_detach()
1352 soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned = NULL; in dp_tx_ipa_uc_detach()
1370 static void dp_rx_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_rx_ipa_uc_detach() argument
1389 static void dp_rx_alt_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_rx_alt_ipa_uc_detach() argument
1401 void dp_rx_alt_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_rx_alt_ipa_uc_detach() argument
1416 static void dp_ipa_opt_wifi_dp_cleanup(struct dp_soc *soc, struct dp_pdev *pdev) in dp_ipa_opt_wifi_dp_cleanup() argument
1418 struct hal_soc *hal_soc = (struct hal_soc *)soc->hal_soc; in dp_ipa_opt_wifi_dp_cleanup()
1425 dp_ipa_pcie_link_down((struct cdp_soc_t *)soc); in dp_ipa_opt_wifi_dp_cleanup()
1430 void dp_ipa_opt_wifi_dp_cleanup(struct dp_soc *soc, struct dp_pdev *pdev) in dp_ipa_opt_wifi_dp_cleanup() argument
1435 int dp_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_ipa_uc_detach() argument
1437 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_uc_detach()
1441 dp_tx_ipa_uc_detach(soc, pdev); in dp_ipa_uc_detach()
1444 dp_ipa_tx_alt_pool_detach(soc, pdev); in dp_ipa_uc_detach()
1447 dp_rx_ipa_uc_detach(soc, pdev); in dp_ipa_uc_detach()
1450 dp_rx_alt_ipa_uc_detach(soc, pdev); in dp_ipa_uc_detach()
1452 dp_ipa_opt_wifi_dp_cleanup(soc, pdev); in dp_ipa_uc_detach()
1467 static int dp_tx_ipa_uc_attach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_tx_ipa_uc_attach() argument
1473 soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_tx_ipa_uc_attach()
1490 wbm_bm_id = wlan_cfg_get_rbm_id_for_index(soc->wlan_cfg_ctx, in dp_tx_ipa_uc_attach()
1493 hal_get_srng_params(soc->hal_soc, hal_srng_to_hal_ring_handle(wbm_srng), in dp_tx_ipa_uc_attach()
1507 soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned = in dp_tx_ipa_uc_attach()
1509 sizeof(*soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned)); in dp_tx_ipa_uc_attach()
1510 if (!soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned) { in dp_tx_ipa_uc_attach()
1515 hal_srng_access_start_unlocked(soc->hal_soc, in dp_tx_ipa_uc_attach()
1527 nbuf = qdf_nbuf_frag_alloc(soc->osdev, alloc_size, 0, in dp_tx_ipa_uc_attach()
1532 ring_entry = hal_srng_dst_get_next_hp(soc->hal_soc, in dp_tx_ipa_uc_attach()
1542 retval = qdf_nbuf_map_single(soc->osdev, nbuf, in dp_tx_ipa_uc_attach()
1559 hal_rxdma_buff_addr_info_set(soc->hal_soc, ring_entry, in dp_tx_ipa_uc_attach()
1562 soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned[tx_buffer_count] in dp_tx_ipa_uc_attach()
1566 hal_srng_access_end_unlocked(soc->hal_soc, in dp_tx_ipa_uc_attach()
1569 soc->ipa_uc_tx_rsc.alloc_tx_buf_cnt = tx_buffer_count; in dp_tx_ipa_uc_attach()
1575 qdf_mem_free(soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned); in dp_tx_ipa_uc_attach()
1576 soc->ipa_uc_tx_rsc.tx_buf_pool_vaddr_unaligned = NULL; in dp_tx_ipa_uc_attach()
1594 static int dp_rx_ipa_uc_attach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_rx_ipa_uc_attach() argument
1599 int dp_ipa_uc_attach(struct dp_soc *soc, struct dp_pdev *pdev) in dp_ipa_uc_attach() argument
1603 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_uc_attach()
1607 error = dp_tx_ipa_uc_attach(soc, pdev); in dp_ipa_uc_attach()
1613 dp_tx_ipa_uc_detach(soc, pdev); in dp_ipa_uc_attach()
1618 error = dp_ipa_tx_alt_pool_attach(soc); in dp_ipa_uc_attach()
1623 dp_tx_ipa_uc_detach(soc, pdev); in dp_ipa_uc_attach()
1628 error = dp_rx_ipa_uc_attach(soc, pdev); in dp_ipa_uc_attach()
1633 dp_ipa_tx_alt_pool_detach(soc, pdev); in dp_ipa_uc_attach()
1634 dp_tx_ipa_uc_detach(soc, pdev); in dp_ipa_uc_attach()
1650 void dp_ipa_rx_alt_ring_resource_setup(struct dp_soc *soc, struct dp_pdev *pdev) in dp_ipa_rx_alt_ring_resource_setup() argument
1652 struct hal_soc *hal_soc = (struct hal_soc *)soc->hal_soc; in dp_ipa_rx_alt_ring_resource_setup()
1667 soc->reo_dest_ring[IPA_ALT_REO_DEST_RING_IDX].hal_srng; in dp_ipa_rx_alt_ring_resource_setup()
1672 soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_base_paddr = in dp_ipa_rx_alt_ring_resource_setup()
1674 soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_base_vaddr = in dp_ipa_rx_alt_ring_resource_setup()
1676 soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_size = in dp_ipa_rx_alt_ring_resource_setup()
1680 soc->ipa_uc_rx_rsc_alt.ipa_reo_tp_paddr = in dp_ipa_rx_alt_ring_resource_setup()
1686 (unsigned int)(soc->ipa_uc_rx_rsc_alt.ipa_reo_tp_paddr), in dp_ipa_rx_alt_ring_resource_setup()
1687 (void *)soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_base_paddr, in dp_ipa_rx_alt_ring_resource_setup()
1688 (void *)soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_base_vaddr, in dp_ipa_rx_alt_ring_resource_setup()
1690 soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_size); in dp_ipa_rx_alt_ring_resource_setup()
1697 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_base_paddr = in dp_ipa_rx_alt_ring_resource_setup()
1699 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_base_vaddr = in dp_ipa_rx_alt_ring_resource_setup()
1701 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_size = in dp_ipa_rx_alt_ring_resource_setup()
1705 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_hp_paddr = in dp_ipa_rx_alt_ring_resource_setup()
1706 qdf_mem_paddr_from_dmaaddr(soc->osdev, hp_addr); in dp_ipa_rx_alt_ring_resource_setup()
1709 (unsigned int)(soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_hp_paddr), in dp_ipa_rx_alt_ring_resource_setup()
1710 (void *)soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_base_paddr, in dp_ipa_rx_alt_ring_resource_setup()
1711 (void *)soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_base_vaddr, in dp_ipa_rx_alt_ring_resource_setup()
1713 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_size); in dp_ipa_rx_alt_ring_resource_setup()
1717 void dp_ipa_rx_alt_ring_resource_setup(struct dp_soc *soc, struct dp_pdev *pdev) in dp_ipa_rx_alt_ring_resource_setup() argument
1720 int dp_ipa_ring_resource_setup(struct dp_soc *soc, in dp_ipa_ring_resource_setup() argument
1723 struct hal_soc *hal_soc = (struct hal_soc *)soc->hal_soc; in dp_ipa_ring_resource_setup()
1731 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_ring_resource_setup()
1736 soc->tcl_data_ring[IPA_TCL_DATA_RING_IDX].hal_srng; in dp_ipa_ring_resource_setup()
1741 soc->ipa_uc_tx_rsc.ipa_tcl_ring_base_paddr = in dp_ipa_ring_resource_setup()
1743 soc->ipa_uc_tx_rsc.ipa_tcl_ring_base_vaddr = in dp_ipa_ring_resource_setup()
1745 soc->ipa_uc_tx_rsc.ipa_tcl_ring_size = in dp_ipa_ring_resource_setup()
1756 soc->ipa_uc_tx_rsc.ipa_tcl_hp_paddr = in dp_ipa_ring_resource_setup()
1762 (unsigned int)(soc->ipa_uc_tx_rsc.ipa_tcl_hp_paddr), in dp_ipa_ring_resource_setup()
1763 (void *)soc->ipa_uc_tx_rsc.ipa_tcl_ring_base_paddr, in dp_ipa_ring_resource_setup()
1764 (void *)soc->ipa_uc_tx_rsc.ipa_tcl_ring_base_vaddr, in dp_ipa_ring_resource_setup()
1766 soc->ipa_uc_tx_rsc.ipa_tcl_ring_size); in dp_ipa_ring_resource_setup()
1770 soc->tx_comp_ring[IPA_TX_COMP_RING_IDX].hal_srng; in dp_ipa_ring_resource_setup()
1775 soc->ipa_uc_tx_rsc.ipa_wbm_ring_base_paddr = in dp_ipa_ring_resource_setup()
1777 soc->ipa_uc_tx_rsc.ipa_wbm_ring_base_vaddr = in dp_ipa_ring_resource_setup()
1779 soc->ipa_uc_tx_rsc.ipa_wbm_ring_size = in dp_ipa_ring_resource_setup()
1781 soc->ipa_uc_tx_rsc.ipa_wbm_hp_shadow_paddr = in dp_ipa_ring_resource_setup()
1786 soc->ipa_uc_tx_rsc.ipa_wbm_tp_paddr = in dp_ipa_ring_resource_setup()
1792 (unsigned int)(soc->ipa_uc_tx_rsc.ipa_wbm_tp_paddr), in dp_ipa_ring_resource_setup()
1793 (void *)soc->ipa_uc_tx_rsc.ipa_wbm_ring_base_paddr, in dp_ipa_ring_resource_setup()
1794 (void *)soc->ipa_uc_tx_rsc.ipa_wbm_ring_base_vaddr, in dp_ipa_ring_resource_setup()
1796 soc->ipa_uc_tx_rsc.ipa_wbm_ring_size); in dp_ipa_ring_resource_setup()
1798 dp_ipa_tx_alt_ring_resource_setup(soc); in dp_ipa_ring_resource_setup()
1802 soc->reo_dest_ring[IPA_REO_DEST_RING_IDX].hal_srng; in dp_ipa_ring_resource_setup()
1807 soc->ipa_uc_rx_rsc.ipa_reo_ring_base_paddr = in dp_ipa_ring_resource_setup()
1809 soc->ipa_uc_rx_rsc.ipa_reo_ring_base_vaddr = in dp_ipa_ring_resource_setup()
1811 soc->ipa_uc_rx_rsc.ipa_reo_ring_size = in dp_ipa_ring_resource_setup()
1815 soc->ipa_uc_rx_rsc.ipa_reo_tp_paddr = in dp_ipa_ring_resource_setup()
1821 (unsigned int)(soc->ipa_uc_rx_rsc.ipa_reo_tp_paddr), in dp_ipa_ring_resource_setup()
1822 (void *)soc->ipa_uc_rx_rsc.ipa_reo_ring_base_paddr, in dp_ipa_ring_resource_setup()
1823 (void *)soc->ipa_uc_rx_rsc.ipa_reo_ring_base_vaddr, in dp_ipa_ring_resource_setup()
1825 soc->ipa_uc_rx_rsc.ipa_reo_ring_size); in dp_ipa_ring_resource_setup()
1832 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_base_paddr = in dp_ipa_ring_resource_setup()
1834 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_base_vaddr = in dp_ipa_ring_resource_setup()
1836 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_size = in dp_ipa_ring_resource_setup()
1840 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_hp_paddr = in dp_ipa_ring_resource_setup()
1841 qdf_mem_paddr_from_dmaaddr(soc->osdev, hp_addr); in dp_ipa_ring_resource_setup()
1844 (unsigned int)(soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_hp_paddr), in dp_ipa_ring_resource_setup()
1845 (void *)soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_base_paddr, in dp_ipa_ring_resource_setup()
1846 (void *)soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_base_vaddr, in dp_ipa_ring_resource_setup()
1848 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_size); in dp_ipa_ring_resource_setup()
1864 ix0 = hal_gen_reo_remap_val(soc->hal_soc, HAL_REO_REMAP_REG_IX0, in dp_ipa_ring_resource_setup()
1867 hal_reo_read_write_ctrl_ix(soc->hal_soc, false, &ix0, NULL, NULL, NULL); in dp_ipa_ring_resource_setup()
1869 dp_ipa_rx_alt_ring_resource_setup(soc, pdev); in dp_ipa_ring_resource_setup()
1882 struct dp_soc *soc = pdev->soc; in dp_ipa_rx_alt_ring_get_resource() local
1888 dp_ipa_get_shared_mem_info(soc->osdev, &ipa_res->rx_alt_rdy_ring, in dp_ipa_rx_alt_ring_get_resource()
1889 soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_base_vaddr, in dp_ipa_rx_alt_ring_get_resource()
1890 soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_base_paddr, in dp_ipa_rx_alt_ring_get_resource()
1891 soc->ipa_uc_rx_rsc_alt.ipa_reo_ring_size); in dp_ipa_rx_alt_ring_get_resource()
1894 soc->osdev, &ipa_res->rx_alt_refill_ring, in dp_ipa_rx_alt_ring_get_resource()
1895 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_base_vaddr, in dp_ipa_rx_alt_ring_get_resource()
1896 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_base_paddr, in dp_ipa_rx_alt_ring_get_resource()
1897 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_ring_size); in dp_ipa_rx_alt_ring_get_resource()
1899 if (!qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_rx_alt_ring_get_resource()
1901 !qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_rx_alt_ring_get_resource()
1916 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_get_resource() local
1918 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_get_resource()
1927 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_get_resource()
1931 (uint32_t)soc->ipa_uc_tx_rsc.alloc_tx_buf_cnt; in dp_ipa_get_resource()
1933 dp_ipa_get_shared_mem_info(soc->osdev, &ipa_res->tx_ring, in dp_ipa_get_resource()
1934 soc->ipa_uc_tx_rsc.ipa_tcl_ring_base_vaddr, in dp_ipa_get_resource()
1935 soc->ipa_uc_tx_rsc.ipa_tcl_ring_base_paddr, in dp_ipa_get_resource()
1936 soc->ipa_uc_tx_rsc.ipa_tcl_ring_size); in dp_ipa_get_resource()
1938 dp_ipa_get_shared_mem_info(soc->osdev, &ipa_res->tx_comp_ring, in dp_ipa_get_resource()
1939 soc->ipa_uc_tx_rsc.ipa_wbm_ring_base_vaddr, in dp_ipa_get_resource()
1940 soc->ipa_uc_tx_rsc.ipa_wbm_ring_base_paddr, in dp_ipa_get_resource()
1941 soc->ipa_uc_tx_rsc.ipa_wbm_ring_size); in dp_ipa_get_resource()
1943 dp_ipa_get_shared_mem_info(soc->osdev, &ipa_res->rx_rdy_ring, in dp_ipa_get_resource()
1944 soc->ipa_uc_rx_rsc.ipa_reo_ring_base_vaddr, in dp_ipa_get_resource()
1945 soc->ipa_uc_rx_rsc.ipa_reo_ring_base_paddr, in dp_ipa_get_resource()
1946 soc->ipa_uc_rx_rsc.ipa_reo_ring_size); in dp_ipa_get_resource()
1949 soc->osdev, &ipa_res->rx_refill_ring, in dp_ipa_get_resource()
1950 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_base_vaddr, in dp_ipa_get_resource()
1951 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_base_paddr, in dp_ipa_get_resource()
1952 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_ring_size); in dp_ipa_get_resource()
1954 if (!qdf_mem_get_dma_addr(soc->osdev, &ipa_res->tx_ring.mem_info) || in dp_ipa_get_resource()
1955 !qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_get_resource()
1957 !qdf_mem_get_dma_addr(soc->osdev, &ipa_res->rx_rdy_ring.mem_info) || in dp_ipa_get_resource()
1958 !qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_get_resource()
1972 #define DP_IPA_SET_TX_DB_PADDR(soc, ipa_res) argument
1974 #define DP_IPA_SET_TX_DB_PADDR(soc, ipa_res) \ argument
1975 dp_ipa_set_tx_doorbell_paddr(soc, ipa_res)
1989 struct dp_soc *soc = pdev->soc; in dp_ipa_map_rx_alt_ring_doorbell_paddr() local
1991 soc->reo_dest_ring[IPA_ALT_REO_DEST_RING_IDX].hal_srng; in dp_ipa_map_rx_alt_ring_doorbell_paddr()
1997 if (qdf_mem_smmu_s1_enabled(soc->osdev)) { in dp_ipa_map_rx_alt_ring_doorbell_paddr()
1998 ret = pld_smmu_map(soc->osdev->dev, in dp_ipa_map_rx_alt_ring_doorbell_paddr()
2020 struct dp_soc *soc = pdev->soc; in dp_ipa_unmap_rx_alt_ring_doorbell_paddr() local
2026 if (!qdf_mem_smmu_s1_enabled(soc->osdev)) in dp_ipa_unmap_rx_alt_ring_doorbell_paddr()
2029 ret = pld_smmu_unmap(soc->osdev->dev, in dp_ipa_unmap_rx_alt_ring_doorbell_paddr()
2044 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_set_doorbell_paddr() local
2046 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_set_doorbell_paddr()
2049 soc->reo_dest_ring[IPA_REO_DEST_RING_IDX].hal_srng; in dp_ipa_set_doorbell_paddr()
2057 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_set_doorbell_paddr()
2063 DP_IPA_SET_TX_DB_PADDR(soc, ipa_res); in dp_ipa_set_doorbell_paddr()
2080 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_iounmap_doorbell_vaddr() local
2082 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_iounmap_doorbell_vaddr()
2085 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_iounmap_doorbell_vaddr()
2103 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_op_response() local
2105 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_op_response()
2112 if (!wlan_cfg_is_ipa_enabled(pdev->soc->wlan_cfg_ctx)) in dp_ipa_op_response()
2131 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_register_op_cb() local
2133 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_register_op_cb()
2140 if (!wlan_cfg_is_ipa_enabled(pdev->soc->wlan_cfg_ctx)) in dp_ipa_register_op_cb()
2151 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_deregister_op_cb() local
2152 struct dp_pdev *pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_deregister_op_cb()
2195 bool dp_ipa_is_target_ready(struct dp_soc *soc) in dp_ipa_is_target_ready() argument
2197 if (hif_get_target_status(soc->hif_handle) == TARGET_STATUS_RESET) in dp_ipa_is_target_ready()
2242 bool dp_ipa_is_target_ready(struct dp_soc *soc) in dp_ipa_is_target_ready() argument
2264 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_enable_autonomy() local
2266 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_enable_autonomy()
2276 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_enable_autonomy()
2279 if (!hif_is_target_ready(HIF_GET_SOFTC(soc->hif_handle))) in dp_ipa_enable_autonomy()
2282 if (!dp_ipa_is_target_ready(soc)) in dp_ipa_enable_autonomy()
2298 ix0 = hal_gen_reo_remap_val(soc->hal_soc, HAL_REO_REMAP_REG_IX0, in dp_ipa_enable_autonomy()
2301 if (wlan_cfg_is_rx_hash_enabled(soc->wlan_cfg_ctx)) { in dp_ipa_enable_autonomy()
2311 ix2 = hal_gen_reo_remap_val(soc->hal_soc, HAL_REO_REMAP_REG_IX2, in dp_ipa_enable_autonomy()
2314 hal_reo_read_write_ctrl_ix(soc->hal_soc, false, &ix0, NULL, in dp_ipa_enable_autonomy()
2318 hal_reo_read_write_ctrl_ix(soc->hal_soc, false, &ix0, NULL, in dp_ipa_enable_autonomy()
2328 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_disable_autonomy() local
2330 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_disable_autonomy()
2342 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_disable_autonomy()
2345 if (!hif_is_target_ready(HIF_GET_SOFTC(soc->hif_handle))) in dp_ipa_disable_autonomy()
2348 if (!dp_ipa_is_target_ready(soc)) in dp_ipa_disable_autonomy()
2361 ix0 = hal_gen_reo_remap_val(soc->hal_soc, HAL_REO_REMAP_REG_IX0, in dp_ipa_disable_autonomy()
2364 if (wlan_cfg_is_rx_hash_enabled(soc->wlan_cfg_ctx)) { in dp_ipa_disable_autonomy()
2365 dp_reo_remap_config(soc, &ix1, &ix2, &ix3); in dp_ipa_disable_autonomy()
2367 hal_reo_read_write_ctrl_ix(soc->hal_soc, false, &ix0, NULL, in dp_ipa_disable_autonomy()
2371 hal_reo_read_write_ctrl_ix(soc->hal_soc, false, &ix0, NULL, in dp_ipa_disable_autonomy()
2407 static void dp_ipa_wdi_tx_params(struct dp_soc *soc, in dp_ipa_wdi_tx_params() argument
2418 qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_wdi_tx_params()
2421 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_tx_params()
2426 soc->ipa_uc_tx_rsc.ipa_wbm_tp_paddr; in dp_ipa_wdi_tx_params()
2430 qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_wdi_tx_params()
2433 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_tx_params()
2438 soc->ipa_uc_tx_rsc.ipa_tcl_hp_paddr; in dp_ipa_wdi_tx_params()
2446 dp_ipa_setup_tx_params_bank_id(soc, tx); in dp_ipa_wdi_tx_params()
2449 dp_ipa_setup_tx_params_pmac_id(soc, tx); in dp_ipa_wdi_tx_params()
2452 static void dp_ipa_wdi_rx_params(struct dp_soc *soc, in dp_ipa_wdi_rx_params() argument
2465 qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_wdi_rx_params()
2468 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_rx_params()
2473 soc->ipa_uc_rx_rsc.ipa_reo_tp_paddr; in dp_ipa_wdi_rx_params()
2477 qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_wdi_rx_params()
2480 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_rx_params()
2485 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_hp_paddr; in dp_ipa_wdi_rx_params()
2489 soc->rx_pkt_tlv_size + L3_HEADER_PADDING; in dp_ipa_wdi_rx_params()
2493 dp_ipa_wdi_tx_smmu_params(struct dp_soc *soc, in dp_ipa_wdi_tx_smmu_params() argument
2518 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_tx_smmu_params()
2522 soc->ipa_uc_tx_rsc.ipa_wbm_tp_paddr; in dp_ipa_wdi_tx_smmu_params()
2523 dp_ipa_update_txr_db_status(soc->osdev->dev, tx_smmu); in dp_ipa_wdi_tx_smmu_params()
2529 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_tx_smmu_params()
2533 soc->ipa_uc_tx_rsc.ipa_tcl_hp_paddr; in dp_ipa_wdi_tx_smmu_params()
2534 dp_ipa_update_evt_db_status(soc->osdev->dev, tx_smmu); in dp_ipa_wdi_tx_smmu_params()
2540 dp_ipa_setup_tx_smmu_params_bank_id(soc, tx_smmu); in dp_ipa_wdi_tx_smmu_params()
2543 dp_ipa_setup_tx_smmu_params_pmac_id(soc, tx_smmu); in dp_ipa_wdi_tx_smmu_params()
2547 dp_ipa_wdi_rx_smmu_params(struct dp_soc *soc, in dp_ipa_wdi_rx_smmu_params() argument
2572 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_rx_smmu_params()
2576 soc->ipa_uc_rx_rsc.ipa_reo_tp_paddr; in dp_ipa_wdi_rx_smmu_params()
2577 dp_ipa_update_txr_db_status(soc->osdev->dev, rx_smmu); in dp_ipa_wdi_rx_smmu_params()
2583 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_rx_smmu_params()
2588 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_hp_paddr; in dp_ipa_wdi_rx_smmu_params()
2592 soc->rx_pkt_tlv_size + L3_HEADER_PADDING; in dp_ipa_wdi_rx_smmu_params()
2607 dp_ipa_wdi_rx_alt_pipe_smmu_params(struct dp_soc *soc, in dp_ipa_wdi_rx_alt_pipe_smmu_params() argument
2635 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_rx_alt_pipe_smmu_params()
2639 soc->ipa_uc_rx_rsc_alt.ipa_reo_tp_paddr; in dp_ipa_wdi_rx_alt_pipe_smmu_params()
2646 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_rx_alt_pipe_smmu_params()
2651 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_hp_paddr; in dp_ipa_wdi_rx_alt_pipe_smmu_params()
2655 soc->rx_pkt_tlv_size + L3_HEADER_PADDING; in dp_ipa_wdi_rx_alt_pipe_smmu_params()
2668 static void dp_ipa_wdi_rx_alt_pipe_params(struct dp_soc *soc, in dp_ipa_wdi_rx_alt_pipe_params() argument
2693 qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_wdi_rx_alt_pipe_params()
2696 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_rx_alt_pipe_params()
2701 soc->ipa_uc_rx_rsc_alt.ipa_reo_tp_paddr; in dp_ipa_wdi_rx_alt_pipe_params()
2705 qdf_mem_get_dma_addr(soc->osdev, in dp_ipa_wdi_rx_alt_pipe_params()
2708 qdf_mem_get_dma_size(soc->osdev, in dp_ipa_wdi_rx_alt_pipe_params()
2713 soc->ipa_uc_rx_rsc_alt.ipa_rx_refill_buf_hp_paddr; in dp_ipa_wdi_rx_alt_pipe_params()
2717 soc->rx_pkt_tlv_size + L3_HEADER_PADDING; in dp_ipa_wdi_rx_alt_pipe_params()
2730 static void dp_ipa_setup_rx_alt_pipe(struct dp_soc *soc, in dp_ipa_setup_rx_alt_pipe() argument
2744 if (qdf_mem_smmu_s1_enabled(soc->osdev)) { in dp_ipa_setup_rx_alt_pipe()
2747 dp_ipa_wdi_rx_alt_pipe_smmu_params(soc, res, rx_smmu, in dp_ipa_setup_rx_alt_pipe()
2752 dp_ipa_wdi_rx_alt_pipe_params(soc, res, rx, over_gsi, hdl); in dp_ipa_setup_rx_alt_pipe()
2790 void dp_ipa_setup_rx_alt_pipe(struct dp_soc *soc, in dp_ipa_setup_rx_alt_pipe() argument
2813 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_setup() local
2815 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_setup()
2833 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_setup()
2873 dp_ipa_wdi_tx_smmu_params(soc, ipa_res, tx_smmu, over_gsi, id); in dp_ipa_setup()
2875 dp_ipa_wdi_tx_params(soc, ipa_res, tx, over_gsi); in dp_ipa_setup()
2877 dp_ipa_setup_tx_alt_pipe(soc, ipa_res, pipe_in); in dp_ipa_setup()
2909 dp_ipa_wdi_rx_smmu_params(soc, ipa_res, rx_smmu, over_gsi, id); in dp_ipa_setup()
2911 dp_ipa_wdi_rx_params(soc, ipa_res, rx, over_gsi); in dp_ipa_setup()
2914 dp_ipa_setup_rx_alt_pipe(soc, ipa_res, pipe_in, over_gsi, id); in dp_ipa_setup()
2943 soc->ipa_first_tx_db_access = true; in dp_ipa_setup()
2946 qdf_spinlock_create(&soc->ipa_rx_buf_map_lock); in dp_ipa_setup()
2947 soc->ipa_rx_buf_map_lock_initialized = true; in dp_ipa_setup()
3189 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_setup() local
3191 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_setup()
3208 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx)) in dp_ipa_setup()
3238 soc->ipa_uc_tx_rsc.ipa_wbm_tp_paddr; in dp_ipa_setup()
3244 soc->ipa_uc_tx_rsc.ipa_tcl_hp_paddr; in dp_ipa_setup()
3286 soc->ipa_uc_rx_rsc.ipa_reo_tp_paddr; in dp_ipa_setup()
3293 soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_hp_paddr; in dp_ipa_setup()
3294 QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(rx) = soc->rx_pkt_tlv_size + in dp_ipa_setup()
3322 soc->ipa_first_tx_db_access = true; in dp_ipa_setup()
3324 qdf_spinlock_create(&soc->ipa_rx_buf_map_lock); in dp_ipa_setup()
3325 soc->ipa_rx_buf_map_lock_initialized = true; in dp_ipa_setup()
3432 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_cleanup() local
3444 if (soc->ipa_rx_buf_map_lock_initialized) { in dp_ipa_cleanup()
3445 qdf_spinlock_destroy(&soc->ipa_rx_buf_map_lock); in dp_ipa_cleanup()
3446 soc->ipa_rx_buf_map_lock_initialized = false; in dp_ipa_cleanup()
3449 pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_cleanup()
3479 #define DP_IPA_EP_SET_TX_DB_PA(soc, ipa_res) \ argument
3480 dp_ipa_set_tx_doorbell_paddr((soc), (ipa_res))
3481 #define DP_IPA_RESET_TX_DB_PA(soc, ipa_res) \ argument
3482 dp_ipa_reset_tx_doorbell_pa((soc), (ipa_res))
3484 #define DP_IPA_EP_SET_TX_DB_PA(soc, ipa_res) argument
3485 #define DP_IPA_RESET_TX_DB_PA(soc, ipa_res) argument
3491 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_enable_pipes() local
3493 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_enable_pipes()
3504 qdf_atomic_set(&soc->ipa_pipes_enabled, 1); in dp_ipa_enable_pipes()
3505 DP_IPA_EP_SET_TX_DB_PA(soc, ipa_res); in dp_ipa_enable_pipes()
3508 qdf_atomic_set(&soc->ipa_map_allowed, 1); in dp_ipa_enable_pipes()
3509 dp_ipa_handle_rx_buf_pool_smmu_mapping(soc, pdev, true, in dp_ipa_enable_pipes()
3518 qdf_atomic_set(&soc->ipa_pipes_enabled, 0); in dp_ipa_enable_pipes()
3519 DP_IPA_RESET_TX_DB_PA(soc, ipa_res); in dp_ipa_enable_pipes()
3520 if (qdf_atomic_read(&soc->ipa_map_allowed)) { in dp_ipa_enable_pipes()
3521 qdf_atomic_set(&soc->ipa_map_allowed, 0); in dp_ipa_enable_pipes()
3523 soc, pdev, false, __func__, __LINE__); in dp_ipa_enable_pipes()
3528 if (soc->ipa_first_tx_db_access) { in dp_ipa_enable_pipes()
3529 dp_ipa_tx_comp_ring_init_hp(soc, ipa_res); in dp_ipa_enable_pipes()
3530 soc->ipa_first_tx_db_access = false; in dp_ipa_enable_pipes()
3532 dp_ipa_tx_comp_ring_update_hp_addr(soc, ipa_res); in dp_ipa_enable_pipes()
3541 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); in dp_ipa_disable_pipes() local
3543 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); in dp_ipa_disable_pipes()
3560 DP_IPA_RESET_TX_DB_PA(soc, ipa_res); in dp_ipa_disable_pipes()
3571 qdf_atomic_set(&soc->ipa_pipes_enabled, 0); in dp_ipa_disable_pipes()
3574 qdf_atomic_set(&soc->ipa_map_allowed, 0); in dp_ipa_disable_pipes()
3575 dp_ipa_handle_rx_buf_pool_smmu_mapping(soc, pdev, false, in dp_ipa_disable_pipes()
3648 vdev_peer = dp_vdev_bss_peer_ref_n_get(pdev->soc, vdev, DP_MOD_ID_IPA);
3660 if (dp_tx_send((struct cdp_soc_t *)pdev->soc, vdev->vdev_id, nbuf)) {
3686 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
3688 return htt_h2t_rx_cce_super_rule_setup(soc->htt_handle, flt_params);
3707 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
3708 struct hal_soc *hal_soc = (struct hal_soc *)soc->hal_soc;
3717 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
3718 struct hal_soc *hal_soc = (struct hal_soc *)soc->hal_soc;
3760 static inline bool dp_ipa_peer_check(struct dp_soc *soc,
3766 qdf_spin_lock_bh(&soc->ast_lock);
3767 ast_entry = dp_peer_ast_hash_find_soc(soc, peer_mac_addr);
3771 qdf_spin_unlock_bh(&soc->ast_lock);
3775 peer = dp_peer_get_ref_by_id(soc, ast_entry->peer_id,
3779 qdf_spin_unlock_bh(&soc->ast_lock);
3784 qdf_spin_unlock_bh(&soc->ast_lock);
3788 qdf_spin_unlock_bh(&soc->ast_lock);
3793 static inline bool dp_ipa_peer_check(struct dp_soc *soc,
3802 peer = dp_peer_hash_find_wrapper(soc, &peer_info, DP_MOD_ID_IPA);
3815 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
3816 struct dp_vdev *vdev = dp_vdev_get_ref_by_id(soc, vdev_id,
3863 if (!dp_ipa_peer_check(soc, eh->h_dest, vdev->vdev_id))
3866 if (!dp_ipa_peer_check(soc, eh->h_source, vdev->vdev_id))
3883 dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_IPA);
3906 static qdf_nbuf_t dp_ipa_frag_nbuf_linearize(struct dp_soc *soc,
3918 buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
3920 dst_nbuf = qdf_nbuf_alloc(soc->osdev, buf_size,
3942 soc->rx_pkt_tlv_size);
3944 dst_nbuf_data += (soc->rx_pkt_tlv_size +
3946 src_nbuf_data += soc->rx_pkt_tlv_size;
3948 soc->rx_pkt_tlv_size;
3966 qdf_nbuf_t dp_ipa_handle_rx_reo_reinject(struct dp_soc *soc, qdf_nbuf_t nbuf)
3969 if (!wlan_cfg_is_ipa_enabled(soc->wlan_cfg_ctx))
3973 if (!qdf_atomic_read(&soc->ipa_pipes_enabled))
3980 return dp_ipa_frag_nbuf_linearize(soc, nbuf);
3989 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
3991 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
3998 if (!qdf_mem_smmu_s1_enabled(soc->osdev)) {
4002 ret = __dp_ipa_tx_buf_smmu_mapping(soc, pdev, true, func, line);
4006 ret = dp_ipa_tx_alt_buf_smmu_mapping(soc, pdev, true, func, line);
4008 __dp_ipa_tx_buf_smmu_mapping(soc, pdev, false, func, line);
4016 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
4018 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
4020 if (!qdf_mem_smmu_s1_enabled(soc->osdev)) {
4030 if (__dp_ipa_tx_buf_smmu_mapping(soc, pdev, false, func, line) ||
4031 dp_ipa_tx_alt_buf_smmu_mapping(soc, pdev, false, func, line))
4041 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
4043 dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
4050 if (!qdf_mem_smmu_s1_enabled(soc->osdev)) {
4055 dp_ipa_handle_rx_buf_pool_smmu_mapping(soc, pdev, create, func, line);
4062 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
4075 peer = dp_peer_get_ref_by_id(soc, ast_info->ta_peer_id,
4082 hal_rx_msdu_metadata_get(soc->hal_soc, rx_tlv_hdr, &msdu_metadata);
4084 dp_rx_ipa_wds_srcport_learn(soc, peer, ast_info->skb, msdu_metadata,
4095 QDF_STATUS dp_ipa_update_peer_rx_stats(struct cdp_soc_t *soc,
4099 struct dp_peer *peer = dp_peer_find_hash_find((struct dp_soc *)soc,
4169 void dp_ipa_update_vdev_stats(struct dp_soc *soc, struct dp_peer *srcobj,
4173 dp_update_vdev_stats(soc, srcobj, arg);
4187 struct dp_soc *soc = NULL;
4192 soc = vdev->pdev->soc;
4224 struct dp_soc *soc;
4230 pdev->soc);
4234 soc = pdev->soc;
4284 dp_ipa_txrx_get_pdev_stats(struct cdp_soc_t *soc, uint8_t pdev_id,
4288 dp_get_pdev_from_soc_pdev_id_wifi3((struct dp_soc *)soc,
4302 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
4304 struct dp_vdev *vdev = dp_vdev_get_ref_by_id(soc, vdev_id,
4312 dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_IPA);
4317 QDF_STATUS dp_ipa_txrx_get_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id,
4327 peer = dp_peer_hash_find_wrapper((struct dp_soc *)soc, &peer_info,
4353 struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
4355 if (soc->arch_ops.ipa_get_wdi_ver)
4356 soc->arch_ops.ipa_get_wdi_ver(wdi_ver);
4362 bool dp_ipa_is_ring_ipa_tx(struct dp_soc *soc, uint8_t ring_id)
4364 if (!soc->wlan_cfg_ctx->ipa_enabled)
4369 wlan_cfg_is_ipa_two_tx_pipes_enabled(soc->wlan_cfg_ctx));
4372 bool dp_ipa_is_ring_ipa_tx(struct dp_soc *soc, uint8_t ring_id)
4374 if (!soc->wlan_cfg_ctx->ipa_enabled)