Lines Matching full:dp
30 /* TODO: Any other peer specific DP cleanup */ in ath11k_dp_peer_cleanup()
55 reo_dest = ar->dp.mac_id + 1; in ath11k_dp_peer_setup()
192 ret = ath11k_get_user_msi_vector(ab, "DP", in ath11k_dp_srng_msi_setup()
319 ath11k_warn(ab, "Not a valid ring type in dp :%d\n", type); in ath11k_dp_srng_setup()
348 ath11k_dp_shadow_stop_timer(ab, &ab->dp.tx_ring_timer[i]); in ath11k_dp_stop_shadow_timers()
350 ath11k_dp_shadow_stop_timer(ab, &ab->dp.reo_cmd_timer); in ath11k_dp_stop_shadow_timers()
355 struct ath11k_dp *dp = &ab->dp; in ath11k_dp_srng_common_cleanup() local
359 ath11k_dp_srng_cleanup(ab, &dp->wbm_desc_rel_ring); in ath11k_dp_srng_common_cleanup()
360 ath11k_dp_srng_cleanup(ab, &dp->tcl_cmd_ring); in ath11k_dp_srng_common_cleanup()
361 ath11k_dp_srng_cleanup(ab, &dp->tcl_status_ring); in ath11k_dp_srng_common_cleanup()
363 ath11k_dp_srng_cleanup(ab, &dp->tx_ring[i].tcl_data_ring); in ath11k_dp_srng_common_cleanup()
364 ath11k_dp_srng_cleanup(ab, &dp->tx_ring[i].tcl_comp_ring); in ath11k_dp_srng_common_cleanup()
366 ath11k_dp_srng_cleanup(ab, &dp->reo_reinject_ring); in ath11k_dp_srng_common_cleanup()
367 ath11k_dp_srng_cleanup(ab, &dp->rx_rel_ring); in ath11k_dp_srng_common_cleanup()
368 ath11k_dp_srng_cleanup(ab, &dp->reo_except_ring); in ath11k_dp_srng_common_cleanup()
369 ath11k_dp_srng_cleanup(ab, &dp->reo_cmd_ring); in ath11k_dp_srng_common_cleanup()
370 ath11k_dp_srng_cleanup(ab, &dp->reo_status_ring); in ath11k_dp_srng_common_cleanup()
375 struct ath11k_dp *dp = &ab->dp; in ath11k_dp_srng_common_setup() local
380 ret = ath11k_dp_srng_setup(ab, &dp->wbm_desc_rel_ring, in ath11k_dp_srng_common_setup()
389 ret = ath11k_dp_srng_setup(ab, &dp->tcl_cmd_ring, HAL_TCL_CMD, 0, 0, in ath11k_dp_srng_common_setup()
396 ret = ath11k_dp_srng_setup(ab, &dp->tcl_status_ring, HAL_TCL_STATUS, in ath11k_dp_srng_common_setup()
407 ret = ath11k_dp_srng_setup(ab, &dp->tx_ring[i].tcl_data_ring, in ath11k_dp_srng_common_setup()
416 ret = ath11k_dp_srng_setup(ab, &dp->tx_ring[i].tcl_comp_ring, in ath11k_dp_srng_common_setup()
425 srng = &ab->hal.srng_list[dp->tx_ring[i].tcl_data_ring.ring_id]; in ath11k_dp_srng_common_setup()
428 ath11k_dp_shadow_init_timer(ab, &dp->tx_ring_timer[i], in ath11k_dp_srng_common_setup()
430 dp->tx_ring[i].tcl_data_ring.ring_id); in ath11k_dp_srng_common_setup()
433 ret = ath11k_dp_srng_setup(ab, &dp->reo_reinject_ring, HAL_REO_REINJECT, in ath11k_dp_srng_common_setup()
441 ret = ath11k_dp_srng_setup(ab, &dp->rx_rel_ring, HAL_WBM2SW_RELEASE, in ath11k_dp_srng_common_setup()
448 ret = ath11k_dp_srng_setup(ab, &dp->reo_except_ring, HAL_REO_EXCEPTION, in ath11k_dp_srng_common_setup()
456 ret = ath11k_dp_srng_setup(ab, &dp->reo_cmd_ring, HAL_REO_CMD, in ath11k_dp_srng_common_setup()
463 srng = &ab->hal.srng_list[dp->reo_cmd_ring.ring_id]; in ath11k_dp_srng_common_setup()
466 ath11k_dp_shadow_init_timer(ab, &dp->reo_cmd_timer, in ath11k_dp_srng_common_setup()
468 dp->reo_cmd_ring.ring_id); in ath11k_dp_srng_common_setup()
470 ret = ath11k_dp_srng_setup(ab, &dp->reo_status_ring, HAL_REO_STATUS, in ath11k_dp_srng_common_setup()
492 struct ath11k_dp *dp = &ab->dp; in ath11k_dp_scatter_idle_link_desc_cleanup() local
493 struct hal_wbm_idle_scatter_list *slist = dp->scatter_list; in ath11k_dp_scatter_idle_link_desc_cleanup()
512 struct ath11k_dp *dp = &ab->dp; in ath11k_dp_scatter_idle_link_desc_setup() local
513 struct dp_link_desc_bank *link_desc_banks = dp->link_desc_banks; in ath11k_dp_scatter_idle_link_desc_setup()
514 struct hal_wbm_idle_scatter_list *slist = dp->scatter_list; in ath11k_dp_scatter_idle_link_desc_setup()
608 struct ath11k_dp *dp = &ab->dp; in ath11k_dp_link_desc_bank_alloc() local
637 ath11k_dp_link_desc_bank_free(ab, dp->link_desc_banks); in ath11k_dp_link_desc_bank_alloc()
656 struct ath11k_dp *dp = &ab->dp; in ath11k_wbm_idle_ring_setup() local
681 ret = ath11k_dp_srng_setup(ab, &dp->wbm_idle_ring, in ath11k_wbm_idle_ring_setup()
869 struct ath11k_pdev_dp *dp = &ar->dp; in ath11k_dp_service_srng() local
870 struct dp_rxdma_ring *rx_ring = &dp->rx_refill_buf_ring; in ath11k_dp_service_srng()
903 struct ath11k_pdev_dp *dp; in ath11k_dp_pdev_pre_alloc() local
909 dp = &ar->dp; in ath11k_dp_pdev_pre_alloc()
910 dp->mac_id = i; in ath11k_dp_pdev_pre_alloc()
911 idr_init(&dp->rx_refill_buf_ring.bufs_idr); in ath11k_dp_pdev_pre_alloc()
912 spin_lock_init(&dp->rx_refill_buf_ring.idr_lock); in ath11k_dp_pdev_pre_alloc()
913 atomic_set(&dp->num_tx_pending, 0); in ath11k_dp_pdev_pre_alloc()
914 init_waitqueue_head(&dp->tx_empty_waitq); in ath11k_dp_pdev_pre_alloc()
916 idr_init(&dp->rx_mon_status_refill_ring[j].bufs_idr); in ath11k_dp_pdev_pre_alloc()
917 spin_lock_init(&dp->rx_mon_status_refill_ring[j].idr_lock); in ath11k_dp_pdev_pre_alloc()
919 idr_init(&dp->rxdma_mon_buf_ring.bufs_idr); in ath11k_dp_pdev_pre_alloc()
920 spin_lock_init(&dp->rxdma_mon_buf_ring.idr_lock); in ath11k_dp_pdev_pre_alloc()
955 int ath11k_dp_htt_connect(struct ath11k_dp *dp) in ath11k_dp_htt_connect() argument
970 status = ath11k_htc_connect_service(&dp->ab->htc, &conn_req, in ath11k_dp_htt_connect()
976 dp->eid = conn_resp.eid; in ath11k_dp_htt_connect()
1038 struct ath11k_dp *dp = &ab->dp; in ath11k_dp_free() local
1041 ath11k_dp_link_desc_cleanup(ab, dp->link_desc_banks, in ath11k_dp_free()
1042 HAL_WBM_IDLE_LINK, &dp->wbm_idle_ring); in ath11k_dp_free()
1049 spin_lock_bh(&dp->tx_ring[i].tx_idr_lock); in ath11k_dp_free()
1050 idr_for_each(&dp->tx_ring[i].txbuf_idr, in ath11k_dp_free()
1052 idr_destroy(&dp->tx_ring[i].txbuf_idr); in ath11k_dp_free()
1053 spin_unlock_bh(&dp->tx_ring[i].tx_idr_lock); in ath11k_dp_free()
1054 kfree(dp->tx_ring[i].tx_status); in ath11k_dp_free()
1062 struct ath11k_dp *dp = &ab->dp; in ath11k_dp_alloc() local
1069 dp->ab = ab; in ath11k_dp_alloc()
1071 INIT_LIST_HEAD(&dp->reo_cmd_list); in ath11k_dp_alloc()
1072 INIT_LIST_HEAD(&dp->reo_cmd_cache_flush_list); in ath11k_dp_alloc()
1073 INIT_LIST_HEAD(&dp->dp_full_mon_mpdu_list); in ath11k_dp_alloc()
1074 spin_lock_init(&dp->reo_cmd_lock); in ath11k_dp_alloc()
1076 dp->reo_cmd_cache_flush_count = 0; in ath11k_dp_alloc()
1084 srng = &ab->hal.srng_list[dp->wbm_idle_ring.ring_id]; in ath11k_dp_alloc()
1086 ret = ath11k_dp_link_desc_setup(ab, dp->link_desc_banks, in ath11k_dp_alloc()
1100 idr_init(&dp->tx_ring[i].txbuf_idr); in ath11k_dp_alloc()
1101 spin_lock_init(&dp->tx_ring[i].tx_idr_lock); in ath11k_dp_alloc()
1102 dp->tx_ring[i].tcl_data_ring_id = i; in ath11k_dp_alloc()
1104 dp->tx_ring[i].tx_status_head = 0; in ath11k_dp_alloc()
1105 dp->tx_ring[i].tx_status_tail = DP_TX_COMP_RING_SIZE - 1; in ath11k_dp_alloc()
1106 dp->tx_ring[i].tx_status = kmalloc(size, GFP_KERNEL); in ath11k_dp_alloc()
1107 if (!dp->tx_ring[i].tx_status) { in ath11k_dp_alloc()
1116 /* Init any SOC level resource for DP */ in ath11k_dp_alloc()
1124 ath11k_dp_link_desc_cleanup(ab, dp->link_desc_banks, in ath11k_dp_alloc()
1125 HAL_WBM_IDLE_LINK, &dp->wbm_idle_ring); in ath11k_dp_alloc()