• Home
  • Raw
  • Download

Lines Matching refs:fp

880 		struct qede_fastpath *fp;  in qede_free_fp_array()  local
884 fp = &edev->fp_array[i]; in qede_free_fp_array()
886 kfree(fp->sb_info); in qede_free_fp_array()
891 if (fp->rxq && xdp_rxq_info_is_reg(&fp->rxq->xdp_rxq)) in qede_free_fp_array()
892 xdp_rxq_info_unreg(&fp->rxq->xdp_rxq); in qede_free_fp_array()
893 kfree(fp->rxq); in qede_free_fp_array()
894 kfree(fp->xdp_tx); in qede_free_fp_array()
895 kfree(fp->txq); in qede_free_fp_array()
908 struct qede_fastpath *fp; in qede_alloc_fp_array() local
936 fp = &edev->fp_array[i]; in qede_alloc_fp_array()
938 fp->sb_info = kzalloc(sizeof(*fp->sb_info), GFP_KERNEL); in qede_alloc_fp_array()
939 if (!fp->sb_info) { in qede_alloc_fp_array()
945 fp->type = QEDE_FASTPATH_RX; in qede_alloc_fp_array()
948 fp->type = QEDE_FASTPATH_COMBINED; in qede_alloc_fp_array()
951 fp->type = QEDE_FASTPATH_TX; in qede_alloc_fp_array()
954 if (fp->type & QEDE_FASTPATH_TX) { in qede_alloc_fp_array()
955 fp->txq = kcalloc(edev->dev_info.num_tc, in qede_alloc_fp_array()
956 sizeof(*fp->txq), GFP_KERNEL); in qede_alloc_fp_array()
957 if (!fp->txq) in qede_alloc_fp_array()
961 if (fp->type & QEDE_FASTPATH_RX) { in qede_alloc_fp_array()
962 fp->rxq = kzalloc(sizeof(*fp->rxq), GFP_KERNEL); in qede_alloc_fp_array()
963 if (!fp->rxq) in qede_alloc_fp_array()
967 fp->xdp_tx = kzalloc(sizeof(*fp->xdp_tx), in qede_alloc_fp_array()
969 if (!fp->xdp_tx) in qede_alloc_fp_array()
971 fp->type |= QEDE_FASTPATH_XDP; in qede_alloc_fp_array()
1627 static void qede_free_mem_fp(struct qede_dev *edev, struct qede_fastpath *fp) in qede_free_mem_fp() argument
1629 qede_free_mem_sb(edev, fp->sb_info, fp->id); in qede_free_mem_fp()
1631 if (fp->type & QEDE_FASTPATH_RX) in qede_free_mem_fp()
1632 qede_free_mem_rxq(edev, fp->rxq); in qede_free_mem_fp()
1634 if (fp->type & QEDE_FASTPATH_XDP) in qede_free_mem_fp()
1635 qede_free_mem_txq(edev, fp->xdp_tx); in qede_free_mem_fp()
1637 if (fp->type & QEDE_FASTPATH_TX) { in qede_free_mem_fp()
1641 qede_free_mem_txq(edev, &fp->txq[cos]); in qede_free_mem_fp()
1648 static int qede_alloc_mem_fp(struct qede_dev *edev, struct qede_fastpath *fp) in qede_alloc_mem_fp() argument
1652 rc = qede_alloc_mem_sb(edev, fp->sb_info, fp->id); in qede_alloc_mem_fp()
1656 if (fp->type & QEDE_FASTPATH_RX) { in qede_alloc_mem_fp()
1657 rc = qede_alloc_mem_rxq(edev, fp->rxq); in qede_alloc_mem_fp()
1662 if (fp->type & QEDE_FASTPATH_XDP) { in qede_alloc_mem_fp()
1663 rc = qede_alloc_mem_txq(edev, fp->xdp_tx); in qede_alloc_mem_fp()
1668 if (fp->type & QEDE_FASTPATH_TX) { in qede_alloc_mem_fp()
1672 rc = qede_alloc_mem_txq(edev, &fp->txq[cos]); in qede_alloc_mem_fp()
1687 struct qede_fastpath *fp = &edev->fp_array[i]; in qede_free_mem_load() local
1689 qede_free_mem_fp(edev, fp); in qede_free_mem_load()
1699 struct qede_fastpath *fp = &edev->fp_array[queue_id]; in qede_alloc_mem_load() local
1701 rc = qede_alloc_mem_fp(edev, fp); in qede_alloc_mem_load()
1757 struct qede_fastpath *fp; in qede_empty_tx_queues() local
1759 fp = &edev->fp_array[i]; in qede_empty_tx_queues()
1761 &fp->txq[cos]); in qede_empty_tx_queues()
1770 struct qede_fastpath *fp; in qede_init_fp() local
1774 fp = &edev->fp_array[queue_id]; in qede_init_fp()
1776 fp->edev = edev; in qede_init_fp()
1777 fp->id = queue_id; in qede_init_fp()
1779 if (fp->type & QEDE_FASTPATH_XDP) { in qede_init_fp()
1780 fp->xdp_tx->index = QEDE_TXQ_IDX_TO_XDP(edev, in qede_init_fp()
1782 fp->xdp_tx->is_xdp = 1; in qede_init_fp()
1784 spin_lock_init(&fp->xdp_tx->xdp_tx_lock); in qede_init_fp()
1788 if (fp->type & QEDE_FASTPATH_RX) { in qede_init_fp()
1789 fp->rxq->rxq_id = rxq_index++; in qede_init_fp()
1792 if (fp->type & QEDE_FASTPATH_XDP) in qede_init_fp()
1793 fp->rxq->data_direction = DMA_BIDIRECTIONAL; in qede_init_fp()
1795 fp->rxq->data_direction = DMA_FROM_DEVICE; in qede_init_fp()
1796 fp->rxq->dev = &edev->pdev->dev; in qede_init_fp()
1799 WARN_ON(xdp_rxq_info_reg(&fp->rxq->xdp_rxq, edev->ndev, in qede_init_fp()
1800 fp->rxq->rxq_id, 0) < 0); in qede_init_fp()
1802 if (xdp_rxq_info_reg_mem_model(&fp->rxq->xdp_rxq, in qede_init_fp()
1810 if (fp->type & QEDE_FASTPATH_TX) { in qede_init_fp()
1814 struct qede_tx_queue *txq = &fp->txq[cos]; in qede_init_fp()
1830 snprintf(fp->name, sizeof(fp->name), "%s-fp-%d", in qede_init_fp()
1916 struct qede_fastpath *fp = &edev->fp_array[i]; in qede_req_msix_irqs() local
1918 if (edev->ndev->rx_cpu_rmap && (fp->type & QEDE_FASTPATH_RX)) { in qede_req_msix_irqs()
1953 struct qede_fastpath *fp = (struct qede_fastpath *)cookie; in qede_simd_fp_handler() local
1955 napi_schedule_irqoff(&fp->napi); in qede_simd_fp_handler()
2033 struct qede_fastpath *fp; in qede_stop_queues() local
2056 fp = &edev->fp_array[i]; in qede_stop_queues()
2058 if (fp->type & QEDE_FASTPATH_TX) { in qede_stop_queues()
2062 rc = qede_drain_txq(edev, &fp->txq[cos], true); in qede_stop_queues()
2068 if (fp->type & QEDE_FASTPATH_XDP) { in qede_stop_queues()
2069 rc = qede_drain_txq(edev, fp->xdp_tx, true); in qede_stop_queues()
2077 fp = &edev->fp_array[i]; in qede_stop_queues()
2080 if (fp->type & QEDE_FASTPATH_TX) { in qede_stop_queues()
2084 rc = qede_stop_txq(edev, &fp->txq[cos], i); in qede_stop_queues()
2091 if (fp->type & QEDE_FASTPATH_RX) { in qede_stop_queues()
2092 rc = edev->ops->q_rx_stop(cdev, i, fp->rxq->handle); in qede_stop_queues()
2100 if (fp->type & QEDE_FASTPATH_XDP) { in qede_stop_queues()
2101 rc = qede_stop_txq(edev, fp->xdp_tx, i); in qede_stop_queues()
2105 bpf_prog_put(fp->rxq->xdp_prog); in qede_stop_queues()
2118 struct qede_fastpath *fp, in qede_start_txq() argument
2138 params.p_sb = fp->sb_info; in qede_start_txq()
2153 txq->hw_cons_ptr = &fp->sb_info->sb_virt->pi_array[sb_idx]; in qede_start_txq()
2210 struct qede_fastpath *fp = &edev->fp_array[i]; in qede_start_queues() local
2214 if (fp->type & QEDE_FASTPATH_RX) { in qede_start_queues()
2216 struct qede_rx_queue *rxq = fp->rxq; in qede_start_queues()
2223 q_params.p_sb = fp->sb_info; in qede_start_queues()
2245 val = &fp->sb_info->sb_virt->pi_array[RX_PI]; in qede_start_queues()
2251 if (fp->type & QEDE_FASTPATH_XDP) { in qede_start_queues()
2252 rc = qede_start_txq(edev, fp, fp->xdp_tx, i, XDP_PI); in qede_start_queues()
2257 fp->rxq->xdp_prog = edev->xdp_prog; in qede_start_queues()
2260 if (fp->type & QEDE_FASTPATH_TX) { in qede_start_queues()
2264 rc = qede_start_txq(edev, fp, &fp->txq[cos], i, in qede_start_queues()
2777 struct qede_fastpath *fp; in qede_get_eth_tlv_data() local
2803 fp = &edev->fp_array[i]; in qede_get_eth_tlv_data()
2804 if (fp->type & QEDE_FASTPATH_TX) { in qede_get_eth_tlv_data()
2805 struct qede_tx_queue *txq = QEDE_FP_TC0_TXQ(fp); in qede_get_eth_tlv_data()
2812 if (fp->type & QEDE_FASTPATH_RX) { in qede_get_eth_tlv_data()
2813 if (qede_has_rx_work(fp->rxq)) in qede_get_eth_tlv_data()
2820 if (le16_to_cpu(*fp->rxq->hw_cons_ptr) - in qede_get_eth_tlv_data()
2821 qed_chain_get_cons_idx(&fp->rxq->rx_comp_ring) > in qede_get_eth_tlv_data()