Lines Matching refs:fq

254 			       struct dpaa2_eth_fq *fq,  in dpaa2_eth_xdp_flush()  argument
269 err = priv->enqueue(priv, fq, &fds[total_enqueued], in dpaa2_eth_xdp_flush()
284 struct dpaa2_eth_fq *fq) in dpaa2_eth_xdp_tx_flush() argument
293 enqueued = dpaa2_eth_xdp_flush(priv, fq, &fq->xdp_tx_fds); in dpaa2_eth_xdp_tx_flush()
297 fds = fq->xdp_tx_fds.fds; in dpaa2_eth_xdp_tx_flush()
302 for (i = enqueued; i < fq->xdp_tx_fds.num; i++) { in dpaa2_eth_xdp_tx_flush()
307 fq->xdp_tx_fds.num = 0; in dpaa2_eth_xdp_tx_flush()
317 struct dpaa2_eth_fq *fq; in dpaa2_eth_xdp_enqueue() local
334 fq = &priv->fq[queue_id]; in dpaa2_eth_xdp_enqueue()
335 dest_fd = &fq->xdp_tx_fds.fds[fq->xdp_tx_fds.num++]; in dpaa2_eth_xdp_enqueue()
338 if (fq->xdp_tx_fds.num < DEV_MAP_BULK_SIZE) in dpaa2_eth_xdp_enqueue()
341 dpaa2_eth_xdp_tx_flush(priv, ch, fq); in dpaa2_eth_xdp_enqueue()
451 struct dpaa2_eth_fq *fq) in dpaa2_eth_rx() argument
481 xdp_act = dpaa2_eth_run_xdp(priv, ch, fq, (struct dpaa2_fd *)fd, vaddr); in dpaa2_eth_rx()
532 skb_record_rx_queue(skb, fq->flowid); in dpaa2_eth_rx()
554 struct dpaa2_eth_fq *fq __always_unused) in dpaa2_eth_rx_err()
610 struct dpaa2_eth_fq *fq = NULL; in dpaa2_eth_consume_frames() local
633 fq = (struct dpaa2_eth_fq *)(uintptr_t)dpaa2_dq_fqd_ctx(dq); in dpaa2_eth_consume_frames()
635 fq->consume(priv, ch, fd, fq); in dpaa2_eth_consume_frames()
643 fq->stats.frames += cleaned; in dpaa2_eth_consume_frames()
651 *src = fq; in dpaa2_eth_consume_frames()
998 struct dpaa2_eth_fq *fq, in dpaa2_eth_free_tx_fd() argument
1060 fq->dq_frames++; in dpaa2_eth_free_tx_fd()
1061 fq->dq_bytes += fd_len; in dpaa2_eth_free_tx_fd()
1108 struct dpaa2_eth_fq *fq; in __dpaa2_eth_tx() local
1177 fq = &priv->fq[queue_mapping]; in __dpaa2_eth_tx()
1187 err = priv->enqueue(priv, fq, &fd, prio, 1, NULL); in __dpaa2_eth_tx()
1195 dpaa2_eth_free_tx_fd(priv, fq, &fd, false); in __dpaa2_eth_tx()
1271 struct dpaa2_eth_fq *fq) in dpaa2_eth_tx_conf() argument
1288 dpaa2_eth_free_tx_fd(priv, fq, fd, true); in dpaa2_eth_tx_conf()
1562 struct dpaa2_eth_fq *fq, *txc_fq = NULL; in dpaa2_eth_poll() local
1585 store_cleaned = dpaa2_eth_consume_frames(ch, &fq); in dpaa2_eth_poll()
1588 if (fq->type == DPAA2_RX_FQ) { in dpaa2_eth_poll()
1590 flowid = fq->flowid; in dpaa2_eth_poll()
1594 txc_fq = fq; in dpaa2_eth_poll()
1640 dpaa2_eth_xdp_tx_flush(priv, ch, &priv->fq[flowid]); in dpaa2_eth_poll()
1671 struct dpaa2_eth_fq *fq; in dpaa2_eth_set_rx_taildrop() local
1687 fq = &priv->fq[i]; in dpaa2_eth_set_rx_taildrop()
1688 if (fq->type != DPAA2_RX_FQ) in dpaa2_eth_set_rx_taildrop()
1692 fq->tc, fq->flowid, &td); in dpaa2_eth_set_rx_taildrop()
1828 struct dpaa2_eth_fq *fq; in dpaa2_eth_ingress_fq_count() local
1833 fq = &priv->fq[i]; in dpaa2_eth_ingress_fq_count()
1834 err = dpaa2_io_query_fq_count(NULL, fq->fqid, &fcnt, &bcnt); in dpaa2_eth_ingress_fq_count()
2441 struct dpaa2_eth_fq *fq; in dpaa2_eth_xdp_xmit() local
2451 fq = &priv->fq[smp_processor_id()]; in dpaa2_eth_xdp_xmit()
2452 xdp_redirect_fds = &fq->xdp_redirect_fds; in dpaa2_eth_xdp_xmit()
2466 enqueued = dpaa2_eth_xdp_flush(priv, fq, xdp_redirect_fds); in dpaa2_eth_xdp_xmit()
2480 struct dpaa2_eth_fq *fq; in update_xps() local
2491 fq = &priv->fq[i % num_queues]; in update_xps()
2494 cpumask_set_cpu(fq->target_cpu, &xps_mask); in update_xps()
2867 struct dpaa2_eth_fq *fq; in dpaa2_eth_set_fq_affinity() local
2878 fq = &priv->fq[i]; in dpaa2_eth_set_fq_affinity()
2879 switch (fq->type) { in dpaa2_eth_set_fq_affinity()
2882 fq->target_cpu = rx_cpu; in dpaa2_eth_set_fq_affinity()
2888 fq->target_cpu = txc_cpu; in dpaa2_eth_set_fq_affinity()
2894 dev_err(dev, "Unknown FQ type: %d\n", fq->type); in dpaa2_eth_set_fq_affinity()
2896 fq->channel = dpaa2_eth_get_affine_channel(priv, fq->target_cpu); in dpaa2_eth_set_fq_affinity()
2911 priv->fq[priv->num_fqs].type = DPAA2_TX_CONF_FQ; in dpaa2_eth_setup_fqs()
2912 priv->fq[priv->num_fqs].consume = dpaa2_eth_tx_conf; in dpaa2_eth_setup_fqs()
2913 priv->fq[priv->num_fqs++].flowid = (u16)i; in dpaa2_eth_setup_fqs()
2918 priv->fq[priv->num_fqs].type = DPAA2_RX_FQ; in dpaa2_eth_setup_fqs()
2919 priv->fq[priv->num_fqs].consume = dpaa2_eth_rx; in dpaa2_eth_setup_fqs()
2920 priv->fq[priv->num_fqs].tc = (u8)j; in dpaa2_eth_setup_fqs()
2921 priv->fq[priv->num_fqs++].flowid = (u16)i; in dpaa2_eth_setup_fqs()
2926 priv->fq[priv->num_fqs].type = DPAA2_RX_ERR_FQ; in dpaa2_eth_setup_fqs()
2927 priv->fq[priv->num_fqs++].consume = dpaa2_eth_rx_err; in dpaa2_eth_setup_fqs()
3086 struct dpaa2_eth_fq *fq, in dpaa2_eth_enqueue_qd() argument
3093 err = dpaa2_io_service_enqueue_qd(fq->channel->dpio, in dpaa2_eth_enqueue_qd()
3095 fq->tx_qdbin, fd); in dpaa2_eth_enqueue_qd()
3102 struct dpaa2_eth_fq *fq, in dpaa2_eth_enqueue_fq_multiple() argument
3109 err = dpaa2_io_service_enqueue_multiple_fq(fq->channel->dpio, in dpaa2_eth_enqueue_fq_multiple()
3110 fq->tx_fqid[prio], in dpaa2_eth_enqueue_fq_multiple()
3160 struct dpaa2_eth_fq *fq; in dpaa2_eth_update_tx_fqids() local
3172 fq = &priv->fq[i]; in dpaa2_eth_update_tx_fqids()
3173 if (fq->type != DPAA2_TX_CONF_FQ) in dpaa2_eth_update_tx_fqids()
3177 DPNI_QUEUE_TX, j, fq->flowid, in dpaa2_eth_update_tx_fqids()
3182 fq->tx_fqid[j] = qid.fqid; in dpaa2_eth_update_tx_fqids()
3183 if (fq->tx_fqid[j] == 0) in dpaa2_eth_update_tx_fqids()
3405 struct dpaa2_eth_fq *fq) in dpaa2_eth_setup_rx_flow() argument
3413 DPNI_QUEUE_RX, fq->tc, fq->flowid, &queue, &qid); in dpaa2_eth_setup_rx_flow()
3419 fq->fqid = qid.fqid; in dpaa2_eth_setup_rx_flow()
3421 queue.destination.id = fq->channel->dpcon_id; in dpaa2_eth_setup_rx_flow()
3424 queue.user_context = (u64)(uintptr_t)fq; in dpaa2_eth_setup_rx_flow()
3426 DPNI_QUEUE_RX, fq->tc, fq->flowid, in dpaa2_eth_setup_rx_flow()
3436 if (fq->tc > 0) in dpaa2_eth_setup_rx_flow()
3439 err = xdp_rxq_info_reg(&fq->channel->xdp_rxq, priv->net_dev, in dpaa2_eth_setup_rx_flow()
3440 fq->flowid, 0); in dpaa2_eth_setup_rx_flow()
3446 err = xdp_rxq_info_reg_mem_model(&fq->channel->xdp_rxq, in dpaa2_eth_setup_rx_flow()
3457 struct dpaa2_eth_fq *fq) in dpaa2_eth_setup_tx_flow() argument
3466 DPNI_QUEUE_TX, i, fq->flowid, in dpaa2_eth_setup_tx_flow()
3472 fq->tx_fqid[i] = qid.fqid; in dpaa2_eth_setup_tx_flow()
3476 fq->tx_qdbin = qid.qdbin; in dpaa2_eth_setup_tx_flow()
3479 DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid, in dpaa2_eth_setup_tx_flow()
3486 fq->fqid = qid.fqid; in dpaa2_eth_setup_tx_flow()
3488 queue.destination.id = fq->channel->dpcon_id; in dpaa2_eth_setup_tx_flow()
3491 queue.user_context = (u64)(uintptr_t)fq; in dpaa2_eth_setup_tx_flow()
3493 DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid, in dpaa2_eth_setup_tx_flow()
3505 struct dpaa2_eth_fq *fq) in setup_rx_err_flow() argument
3520 fq->fqid = qid.fqid; in setup_rx_err_flow()
3522 q.destination.id = fq->channel->dpcon_id; in setup_rx_err_flow()
3525 q.user_context = (u64)(uintptr_t)fq; in setup_rx_err_flow()
3927 switch (priv->fq[i].type) { in dpaa2_eth_bind_dpni()
3929 err = dpaa2_eth_setup_rx_flow(priv, &priv->fq[i]); in dpaa2_eth_bind_dpni()
3932 err = dpaa2_eth_setup_tx_flow(priv, &priv->fq[i]); in dpaa2_eth_bind_dpni()
3935 err = setup_rx_err_flow(priv, &priv->fq[i]); in dpaa2_eth_bind_dpni()
3938 dev_err(dev, "Invalid FQ type %d\n", priv->fq[i].type); in dpaa2_eth_bind_dpni()