Lines Matching refs:tx_desc
98 struct dp_tx_desc_s *tx_desc; in dp_tx_comp_find_tx_desc_rh() local
104 tx_desc = dp_tx_desc_find(soc, pool_id, in dp_tx_comp_find_tx_desc_rh()
110 if (tx_desc && tx_desc->pool_id != pool_id) { in dp_tx_comp_find_tx_desc_rh()
112 pool_id, tx_desc->pool_id); in dp_tx_comp_find_tx_desc_rh()
117 return tx_desc; in dp_tx_comp_find_tx_desc_rh()
121 struct dp_tx_desc_s *tx_desc, in dp_tx_process_htt_completion_rh() argument
277 struct dp_tx_desc_s *tx_desc, uint16_t fw_metadata, in dp_tx_hw_enqueue_rh() argument
284 qdf_nbuf_t nbuf = tx_desc->nbuf; in dp_tx_hw_enqueue_rh()
302 if (!dp_tx_is_desc_id_valid(soc, tx_desc->id)) { in dp_tx_hw_enqueue_rh()
303 dp_err_rl("Invalid tx desc id:%d", tx_desc->id); in dp_tx_hw_enqueue_rh()
310 tx_desc->dma_addr, 0, tx_desc->id, in dp_tx_hw_enqueue_rh()
311 (tx_desc->flags & DP_TX_DESC_FLAG_FRAG)); in dp_tx_hw_enqueue_rh()
325 hal_tx_desc_set_buf_length(hal_tx_desc_cached, tx_desc->length); in dp_tx_hw_enqueue_rh()
326 hal_tx_desc_set_buf_offset(hal_tx_desc_cached, tx_desc->pkt_offset); in dp_tx_hw_enqueue_rh()
327 hal_tx_desc_set_encap_type(hal_tx_desc_cached, tx_desc->tx_encap_type); in dp_tx_hw_enqueue_rh()
331 if (tx_desc->flags & DP_TX_DESC_FLAG_TO_FW) in dp_tx_hw_enqueue_rh()
344 if (tx_desc->flags & DP_TX_DESC_FLAG_MESH) in dp_tx_hw_enqueue_rh()
347 if (!dp_tx_desc_set_ktimestamp(vdev, tx_desc)) in dp_tx_hw_enqueue_rh()
348 dp_tx_desc_set_timestamp(tx_desc); in dp_tx_hw_enqueue_rh()
351 tx_desc->length, in dp_tx_hw_enqueue_rh()
352 (tx_desc->flags & DP_TX_DESC_FLAG_FRAG), in dp_tx_hw_enqueue_rh()
353 (uint64_t)tx_desc->dma_addr, tx_desc->pkt_offset, in dp_tx_hw_enqueue_rh()
354 tx_desc->id); in dp_tx_hw_enqueue_rh()
356 hal_tx_desc_sync(hal_tx_desc_cached, tx_desc->tcl_cmd_vaddr); in dp_tx_hw_enqueue_rh()
359 (char *)tx_desc->tcl_cmd_vaddr, in dp_tx_hw_enqueue_rh()
360 tx_desc->tcl_cmd_paddr); in dp_tx_hw_enqueue_rh()
385 coalesce = dp_tx_attempt_coalescing(soc, vdev, tx_desc, tid, in dp_tx_hw_enqueue_rh()
391 tx_desc->flags |= DP_TX_DESC_FLAG_QUEUED_TX; in dp_tx_hw_enqueue_rh()
394 tx_desc->length); in dp_tx_hw_enqueue_rh()
397 dp_tx_update_stats(soc, tx_desc, 0); in dp_tx_hw_enqueue_rh()
404 qdf_get_log_timestamp(), tx_desc->nbuf); in dp_tx_hw_enqueue_rh()
537 struct dp_tx_desc_s *tx_desc, in dp_tx_alloc_tcl_desc_rh() argument
544 tx_desc->tcl_cmd_vaddr = (void *)tcl_desc_pool->freelist; in dp_tx_alloc_tcl_desc_rh()
554 tx_desc->tcl_cmd_paddr = in dp_tx_alloc_tcl_desc_rh()
565 struct dp_tx_desc_s *tx_desc; in dp_tx_desc_pool_init_rh() local
595 tx_desc_pool = &soc->tx_desc[pool_id]; in dp_tx_desc_pool_init_rh()
597 tx_desc = tx_desc_pool->freelist; in dp_tx_desc_pool_init_rh()
601 while (tx_desc) { in dp_tx_desc_pool_init_rh()
607 tx_desc->id = id; in dp_tx_desc_pool_init_rh()
608 tx_desc->pool_id = pool_id; in dp_tx_desc_pool_init_rh()
609 dp_tx_desc_set_magic(tx_desc, DP_TX_MAGIC_PATTERN_FREE); in dp_tx_desc_pool_init_rh()
610 dp_tx_alloc_tcl_desc_rh(tcl_desc_pool, tx_desc, count); in dp_tx_desc_pool_init_rh()
611 tx_desc = tx_desc->next; in dp_tx_desc_pool_init_rh()
700 struct dp_tx_desc_s *tx_desc = NULL; in dp_tx_compl_handler_rh() local
719 tx_desc = dp_tx_comp_find_tx_desc_rh(soc, sw_cookie); in dp_tx_compl_handler_rh()
720 if (!tx_desc) { in dp_tx_compl_handler_rh()
729 if (qdf_unlikely((tx_desc->vdev_id == DP_INVALID_VDEV_ID) && in dp_tx_compl_handler_rh()
730 !tx_desc->flags)) { in dp_tx_compl_handler_rh()
732 tx_desc->id); in dp_tx_compl_handler_rh()
734 dp_tx_desc_check_corruption(tx_desc); in dp_tx_compl_handler_rh()
738 if (qdf_unlikely(tx_desc->pdev->is_pdev_down)) { in dp_tx_compl_handler_rh()
740 tx_desc->id); in dp_tx_compl_handler_rh()
741 tx_desc->flags |= DP_TX_DESC_FLAG_TX_COMP_ERR; in dp_tx_compl_handler_rh()
742 dp_tx_comp_free_buf(soc, tx_desc, false); in dp_tx_compl_handler_rh()
743 dp_tx_desc_release(soc, tx_desc, tx_desc->pool_id); in dp_tx_compl_handler_rh()
747 if (!(tx_desc->flags & DP_TX_DESC_FLAG_ALLOCATED) || in dp_tx_compl_handler_rh()
748 !(tx_desc->flags & DP_TX_DESC_FLAG_QUEUED_TX)) { in dp_tx_compl_handler_rh()
750 tx_desc->flags, tx_desc->id); in dp_tx_compl_handler_rh()
756 tx_desc->buffer_src = HAL_TX_COMP_RELEASE_SOURCE_FW; in dp_tx_compl_handler_rh()
758 tx_desc->buffer_src = HAL_TX_COMP_RELEASE_SOURCE_TQM; in dp_tx_compl_handler_rh()
760 tx_desc->peer_id = HTT_TX_MSDU_INFO_SW_PEER_ID_GET(*(msg_word + 2)); in dp_tx_compl_handler_rh()
763 tx_desc->tx_status = in dp_tx_compl_handler_rh()
767 qdf_mem_copy(&tx_desc->comp, msg_word, HTT_TX_MSDU_INFO_SIZE); in dp_tx_compl_handler_rh()
769 DP_HIST_PACKET_COUNT_INC(tx_desc->pdev->pdev_id); in dp_tx_compl_handler_rh()
773 head_desc = tx_desc; in dp_tx_compl_handler_rh()
774 tail_desc = tx_desc; in dp_tx_compl_handler_rh()
777 tail_desc->next = tx_desc; in dp_tx_compl_handler_rh()
778 tx_desc->next = NULL; in dp_tx_compl_handler_rh()
779 tail_desc = tx_desc; in dp_tx_compl_handler_rh()