• Home
  • Raw
  • Download

Lines Matching refs:fp

528 static void qede_fp_sb_dump(struct qede_dev *edev, struct qede_fastpath *fp)  in qede_fp_sb_dump()  argument
530 char *p_sb = (char *)fp->sb_info->sb_virt; in qede_fp_sb_dump()
544 struct qede_fastpath *fp, struct qede_tx_queue *txq) in qede_txq_fp_log_metadata() argument
551 fp->id, fp->sb_info->igu_sb_id, txq->index, txq->ndev_txq_id, txq->cos, in qede_txq_fp_log_metadata()
562 qede_tx_log_print(struct qede_dev *edev, struct qede_fastpath *fp, struct qede_tx_queue *txq) in qede_tx_log_print() argument
568 qede_fp_sb_dump(edev, fp); in qede_tx_log_print()
571 rc = edev->ops->common->get_sb_info(edev->cdev, fp->sb_info, (u16)fp->id, &sb_dbg); in qede_tx_log_print()
585 txq->index, fp->sb_info->igu_sb_id, in qede_tx_log_print()
600 struct qede_fastpath *fp; in qede_tx_timeout() local
603 fp = &edev->fp_array[i]; in qede_tx_timeout()
604 if (!(fp->type & QEDE_FASTPATH_TX)) in qede_tx_timeout()
608 txq = &fp->txq[cos]; in qede_tx_timeout()
611 qede_txq_fp_log_metadata(edev, fp, txq); in qede_tx_timeout()
615 qede_tx_log_print(edev, fp, txq); in qede_tx_timeout()
953 struct qede_fastpath *fp; in qede_free_fp_array() local
957 fp = &edev->fp_array[i]; in qede_free_fp_array()
959 kfree(fp->sb_info); in qede_free_fp_array()
964 if (fp->rxq && xdp_rxq_info_is_reg(&fp->rxq->xdp_rxq)) in qede_free_fp_array()
965 xdp_rxq_info_unreg(&fp->rxq->xdp_rxq); in qede_free_fp_array()
966 kfree(fp->rxq); in qede_free_fp_array()
967 kfree(fp->xdp_tx); in qede_free_fp_array()
968 kfree(fp->txq); in qede_free_fp_array()
981 struct qede_fastpath *fp; in qede_alloc_fp_array() local
1009 fp = &edev->fp_array[i]; in qede_alloc_fp_array()
1011 fp->sb_info = kzalloc(sizeof(*fp->sb_info), GFP_KERNEL); in qede_alloc_fp_array()
1012 if (!fp->sb_info) { in qede_alloc_fp_array()
1018 fp->type = QEDE_FASTPATH_RX; in qede_alloc_fp_array()
1021 fp->type = QEDE_FASTPATH_COMBINED; in qede_alloc_fp_array()
1024 fp->type = QEDE_FASTPATH_TX; in qede_alloc_fp_array()
1027 if (fp->type & QEDE_FASTPATH_TX) { in qede_alloc_fp_array()
1028 fp->txq = kcalloc(edev->dev_info.num_tc, in qede_alloc_fp_array()
1029 sizeof(*fp->txq), GFP_KERNEL); in qede_alloc_fp_array()
1030 if (!fp->txq) in qede_alloc_fp_array()
1034 if (fp->type & QEDE_FASTPATH_RX) { in qede_alloc_fp_array()
1035 fp->rxq = kzalloc(sizeof(*fp->rxq), GFP_KERNEL); in qede_alloc_fp_array()
1036 if (!fp->rxq) in qede_alloc_fp_array()
1040 fp->xdp_tx = kzalloc(sizeof(*fp->xdp_tx), in qede_alloc_fp_array()
1042 if (!fp->xdp_tx) in qede_alloc_fp_array()
1044 fp->type |= QEDE_FASTPATH_XDP; in qede_alloc_fp_array()
1700 static void qede_free_mem_fp(struct qede_dev *edev, struct qede_fastpath *fp) in qede_free_mem_fp() argument
1702 qede_free_mem_sb(edev, fp->sb_info, fp->id); in qede_free_mem_fp()
1704 if (fp->type & QEDE_FASTPATH_RX) in qede_free_mem_fp()
1705 qede_free_mem_rxq(edev, fp->rxq); in qede_free_mem_fp()
1707 if (fp->type & QEDE_FASTPATH_XDP) in qede_free_mem_fp()
1708 qede_free_mem_txq(edev, fp->xdp_tx); in qede_free_mem_fp()
1710 if (fp->type & QEDE_FASTPATH_TX) { in qede_free_mem_fp()
1714 qede_free_mem_txq(edev, &fp->txq[cos]); in qede_free_mem_fp()
1721 static int qede_alloc_mem_fp(struct qede_dev *edev, struct qede_fastpath *fp) in qede_alloc_mem_fp() argument
1725 rc = qede_alloc_mem_sb(edev, fp->sb_info, fp->id); in qede_alloc_mem_fp()
1729 if (fp->type & QEDE_FASTPATH_RX) { in qede_alloc_mem_fp()
1730 rc = qede_alloc_mem_rxq(edev, fp->rxq); in qede_alloc_mem_fp()
1735 if (fp->type & QEDE_FASTPATH_XDP) { in qede_alloc_mem_fp()
1736 rc = qede_alloc_mem_txq(edev, fp->xdp_tx); in qede_alloc_mem_fp()
1741 if (fp->type & QEDE_FASTPATH_TX) { in qede_alloc_mem_fp()
1745 rc = qede_alloc_mem_txq(edev, &fp->txq[cos]); in qede_alloc_mem_fp()
1760 struct qede_fastpath *fp = &edev->fp_array[i]; in qede_free_mem_load() local
1762 qede_free_mem_fp(edev, fp); in qede_free_mem_load()
1772 struct qede_fastpath *fp = &edev->fp_array[queue_id]; in qede_alloc_mem_load() local
1774 rc = qede_alloc_mem_fp(edev, fp); in qede_alloc_mem_load()
1830 struct qede_fastpath *fp; in qede_empty_tx_queues() local
1832 fp = &edev->fp_array[i]; in qede_empty_tx_queues()
1834 &fp->txq[cos]); in qede_empty_tx_queues()
1843 struct qede_fastpath *fp; in qede_init_fp() local
1847 fp = &edev->fp_array[queue_id]; in qede_init_fp()
1849 fp->edev = edev; in qede_init_fp()
1850 fp->id = queue_id; in qede_init_fp()
1852 if (fp->type & QEDE_FASTPATH_XDP) { in qede_init_fp()
1853 fp->xdp_tx->index = QEDE_TXQ_IDX_TO_XDP(edev, in qede_init_fp()
1855 fp->xdp_tx->is_xdp = 1; in qede_init_fp()
1857 spin_lock_init(&fp->xdp_tx->xdp_tx_lock); in qede_init_fp()
1861 if (fp->type & QEDE_FASTPATH_RX) { in qede_init_fp()
1862 fp->rxq->rxq_id = rxq_index++; in qede_init_fp()
1865 if (fp->type & QEDE_FASTPATH_XDP) in qede_init_fp()
1866 fp->rxq->data_direction = DMA_BIDIRECTIONAL; in qede_init_fp()
1868 fp->rxq->data_direction = DMA_FROM_DEVICE; in qede_init_fp()
1869 fp->rxq->dev = &edev->pdev->dev; in qede_init_fp()
1872 WARN_ON(xdp_rxq_info_reg(&fp->rxq->xdp_rxq, edev->ndev, in qede_init_fp()
1873 fp->rxq->rxq_id, 0) < 0); in qede_init_fp()
1875 if (xdp_rxq_info_reg_mem_model(&fp->rxq->xdp_rxq, in qede_init_fp()
1883 if (fp->type & QEDE_FASTPATH_TX) { in qede_init_fp()
1887 struct qede_tx_queue *txq = &fp->txq[cos]; in qede_init_fp()
1903 snprintf(fp->name, sizeof(fp->name), "%s-fp-%d", in qede_init_fp()
1987 struct qede_fastpath *fp = &edev->fp_array[i]; in qede_req_msix_irqs() local
1989 if (edev->ndev->rx_cpu_rmap && (fp->type & QEDE_FASTPATH_RX)) { in qede_req_msix_irqs()
2024 struct qede_fastpath *fp = (struct qede_fastpath *)cookie; in qede_simd_fp_handler() local
2026 napi_schedule_irqoff(&fp->napi); in qede_simd_fp_handler()
2104 struct qede_fastpath *fp; in qede_stop_queues() local
2127 fp = &edev->fp_array[i]; in qede_stop_queues()
2129 if (fp->type & QEDE_FASTPATH_TX) { in qede_stop_queues()
2133 rc = qede_drain_txq(edev, &fp->txq[cos], true); in qede_stop_queues()
2139 if (fp->type & QEDE_FASTPATH_XDP) { in qede_stop_queues()
2140 rc = qede_drain_txq(edev, fp->xdp_tx, true); in qede_stop_queues()
2148 fp = &edev->fp_array[i]; in qede_stop_queues()
2151 if (fp->type & QEDE_FASTPATH_TX) { in qede_stop_queues()
2155 rc = qede_stop_txq(edev, &fp->txq[cos], i); in qede_stop_queues()
2162 if (fp->type & QEDE_FASTPATH_RX) { in qede_stop_queues()
2163 rc = edev->ops->q_rx_stop(cdev, i, fp->rxq->handle); in qede_stop_queues()
2171 if (fp->type & QEDE_FASTPATH_XDP) { in qede_stop_queues()
2172 rc = qede_stop_txq(edev, fp->xdp_tx, i); in qede_stop_queues()
2176 bpf_prog_put(fp->rxq->xdp_prog); in qede_stop_queues()
2189 struct qede_fastpath *fp, in qede_start_txq() argument
2209 params.p_sb = fp->sb_info; in qede_start_txq()
2224 txq->hw_cons_ptr = &fp->sb_info->sb_virt->pi_array[sb_idx]; in qede_start_txq()
2281 struct qede_fastpath *fp = &edev->fp_array[i]; in qede_start_queues() local
2285 if (fp->type & QEDE_FASTPATH_RX) { in qede_start_queues()
2287 struct qede_rx_queue *rxq = fp->rxq; in qede_start_queues()
2294 q_params.p_sb = fp->sb_info; in qede_start_queues()
2316 val = &fp->sb_info->sb_virt->pi_array[RX_PI]; in qede_start_queues()
2322 if (fp->type & QEDE_FASTPATH_XDP) { in qede_start_queues()
2323 rc = qede_start_txq(edev, fp, fp->xdp_tx, i, XDP_PI); in qede_start_queues()
2328 fp->rxq->xdp_prog = edev->xdp_prog; in qede_start_queues()
2331 if (fp->type & QEDE_FASTPATH_TX) { in qede_start_queues()
2335 rc = qede_start_txq(edev, fp, &fp->txq[cos], i, in qede_start_queues()
2848 struct qede_fastpath *fp; in qede_get_eth_tlv_data() local
2874 fp = &edev->fp_array[i]; in qede_get_eth_tlv_data()
2875 if (fp->type & QEDE_FASTPATH_TX) { in qede_get_eth_tlv_data()
2876 struct qede_tx_queue *txq = QEDE_FP_TC0_TXQ(fp); in qede_get_eth_tlv_data()
2883 if (fp->type & QEDE_FASTPATH_RX) { in qede_get_eth_tlv_data()
2884 if (qede_has_rx_work(fp->rxq)) in qede_get_eth_tlv_data()
2891 if (le16_to_cpu(*fp->rxq->hw_cons_ptr) - in qede_get_eth_tlv_data()
2892 qed_chain_get_cons_idx(&fp->rxq->rx_comp_ring) > in qede_get_eth_tlv_data()