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()
429 struct dpaa2_eth_fq *fq) in dpaa2_eth_rx() argument
459 xdp_act = dpaa2_eth_run_xdp(priv, ch, fq, (struct dpaa2_fd *)fd, vaddr); in dpaa2_eth_rx()
507 skb_record_rx_queue(skb, fq->flowid); in dpaa2_eth_rx()
528 struct dpaa2_eth_fq *fq __always_unused) in dpaa2_eth_rx_err()
584 struct dpaa2_eth_fq *fq = NULL; in dpaa2_eth_consume_frames() local
607 fq = (struct dpaa2_eth_fq *)(uintptr_t)dpaa2_dq_fqd_ctx(dq); in dpaa2_eth_consume_frames()
609 fq->consume(priv, ch, fd, fq); in dpaa2_eth_consume_frames()
617 fq->stats.frames += cleaned; in dpaa2_eth_consume_frames()
624 *src = fq; in dpaa2_eth_consume_frames()
972 struct dpaa2_eth_fq *fq, in dpaa2_eth_free_tx_fd() argument
1034 fq->dq_frames++; in dpaa2_eth_free_tx_fd()
1035 fq->dq_bytes += fd_len; in dpaa2_eth_free_tx_fd()
1082 struct dpaa2_eth_fq *fq; in __dpaa2_eth_tx() local
1151 fq = &priv->fq[queue_mapping]; in __dpaa2_eth_tx()
1161 err = priv->enqueue(priv, fq, &fd, prio, 1, NULL); in __dpaa2_eth_tx()
1169 dpaa2_eth_free_tx_fd(priv, fq, &fd, false); in __dpaa2_eth_tx()
1245 struct dpaa2_eth_fq *fq) in dpaa2_eth_tx_conf() argument
1261 dpaa2_eth_free_tx_fd(priv, fq, fd, true); in dpaa2_eth_tx_conf()
1519 struct dpaa2_eth_fq *fq, *txc_fq = NULL; in dpaa2_eth_poll() local
1542 store_cleaned = dpaa2_eth_consume_frames(ch, &fq); in dpaa2_eth_poll()
1545 if (fq->type == DPAA2_RX_FQ) { in dpaa2_eth_poll()
1547 flowid = fq->flowid; in dpaa2_eth_poll()
1551 txc_fq = fq; in dpaa2_eth_poll()
1591 dpaa2_eth_xdp_tx_flush(priv, ch, &priv->fq[flowid]); in dpaa2_eth_poll()
1622 struct dpaa2_eth_fq *fq; in dpaa2_eth_set_rx_taildrop() local
1638 fq = &priv->fq[i]; in dpaa2_eth_set_rx_taildrop()
1639 if (fq->type != DPAA2_RX_FQ) in dpaa2_eth_set_rx_taildrop()
1643 fq->tc, fq->flowid, &td); in dpaa2_eth_set_rx_taildrop()
1779 struct dpaa2_eth_fq *fq; in dpaa2_eth_ingress_fq_count() local
1784 fq = &priv->fq[i]; in dpaa2_eth_ingress_fq_count()
1785 err = dpaa2_io_query_fq_count(NULL, fq->fqid, &fcnt, &bcnt); in dpaa2_eth_ingress_fq_count()
2348 struct dpaa2_eth_fq *fq; in dpaa2_eth_xdp_xmit() local
2358 fq = &priv->fq[smp_processor_id()]; in dpaa2_eth_xdp_xmit()
2359 xdp_redirect_fds = &fq->xdp_redirect_fds; in dpaa2_eth_xdp_xmit()
2373 enqueued = dpaa2_eth_xdp_flush(priv, fq, xdp_redirect_fds); in dpaa2_eth_xdp_xmit()
2389 struct dpaa2_eth_fq *fq; in update_xps() local
2400 fq = &priv->fq[i % num_queues]; in update_xps()
2403 cpumask_set_cpu(fq->target_cpu, &xps_mask); in update_xps()
2774 struct dpaa2_eth_fq *fq; in dpaa2_eth_set_fq_affinity() local
2785 fq = &priv->fq[i]; in dpaa2_eth_set_fq_affinity()
2786 switch (fq->type) { in dpaa2_eth_set_fq_affinity()
2789 fq->target_cpu = rx_cpu; in dpaa2_eth_set_fq_affinity()
2795 fq->target_cpu = txc_cpu; in dpaa2_eth_set_fq_affinity()
2801 dev_err(dev, "Unknown FQ type: %d\n", fq->type); in dpaa2_eth_set_fq_affinity()
2803 fq->channel = dpaa2_eth_get_affine_channel(priv, fq->target_cpu); in dpaa2_eth_set_fq_affinity()
2818 priv->fq[priv->num_fqs].type = DPAA2_TX_CONF_FQ; in dpaa2_eth_setup_fqs()
2819 priv->fq[priv->num_fqs].consume = dpaa2_eth_tx_conf; in dpaa2_eth_setup_fqs()
2820 priv->fq[priv->num_fqs++].flowid = (u16)i; in dpaa2_eth_setup_fqs()
2825 priv->fq[priv->num_fqs].type = DPAA2_RX_FQ; in dpaa2_eth_setup_fqs()
2826 priv->fq[priv->num_fqs].consume = dpaa2_eth_rx; in dpaa2_eth_setup_fqs()
2827 priv->fq[priv->num_fqs].tc = (u8)j; in dpaa2_eth_setup_fqs()
2828 priv->fq[priv->num_fqs++].flowid = (u16)i; in dpaa2_eth_setup_fqs()
2833 priv->fq[priv->num_fqs].type = DPAA2_RX_ERR_FQ; in dpaa2_eth_setup_fqs()
2834 priv->fq[priv->num_fqs++].consume = dpaa2_eth_rx_err; in dpaa2_eth_setup_fqs()
2993 struct dpaa2_eth_fq *fq, in dpaa2_eth_enqueue_qd() argument
3000 err = dpaa2_io_service_enqueue_qd(fq->channel->dpio, in dpaa2_eth_enqueue_qd()
3002 fq->tx_qdbin, fd); in dpaa2_eth_enqueue_qd()
3009 struct dpaa2_eth_fq *fq, in dpaa2_eth_enqueue_fq_multiple() argument
3016 err = dpaa2_io_service_enqueue_multiple_fq(fq->channel->dpio, in dpaa2_eth_enqueue_fq_multiple()
3017 fq->tx_fqid[prio], in dpaa2_eth_enqueue_fq_multiple()
3067 struct dpaa2_eth_fq *fq; in dpaa2_eth_update_tx_fqids() local
3079 fq = &priv->fq[i]; in dpaa2_eth_update_tx_fqids()
3080 if (fq->type != DPAA2_TX_CONF_FQ) in dpaa2_eth_update_tx_fqids()
3084 DPNI_QUEUE_TX, j, fq->flowid, in dpaa2_eth_update_tx_fqids()
3089 fq->tx_fqid[j] = qid.fqid; in dpaa2_eth_update_tx_fqids()
3090 if (fq->tx_fqid[j] == 0) in dpaa2_eth_update_tx_fqids()
3312 struct dpaa2_eth_fq *fq) in dpaa2_eth_setup_rx_flow() argument
3320 DPNI_QUEUE_RX, fq->tc, fq->flowid, &queue, &qid); in dpaa2_eth_setup_rx_flow()
3326 fq->fqid = qid.fqid; in dpaa2_eth_setup_rx_flow()
3328 queue.destination.id = fq->channel->dpcon_id; in dpaa2_eth_setup_rx_flow()
3331 queue.user_context = (u64)(uintptr_t)fq; in dpaa2_eth_setup_rx_flow()
3333 DPNI_QUEUE_RX, fq->tc, fq->flowid, in dpaa2_eth_setup_rx_flow()
3343 if (fq->tc > 0) in dpaa2_eth_setup_rx_flow()
3346 err = xdp_rxq_info_reg(&fq->channel->xdp_rxq, priv->net_dev, in dpaa2_eth_setup_rx_flow()
3347 fq->flowid); in dpaa2_eth_setup_rx_flow()
3353 err = xdp_rxq_info_reg_mem_model(&fq->channel->xdp_rxq, in dpaa2_eth_setup_rx_flow()
3364 struct dpaa2_eth_fq *fq) in dpaa2_eth_setup_tx_flow() argument
3373 DPNI_QUEUE_TX, i, fq->flowid, in dpaa2_eth_setup_tx_flow()
3379 fq->tx_fqid[i] = qid.fqid; in dpaa2_eth_setup_tx_flow()
3383 fq->tx_qdbin = qid.qdbin; in dpaa2_eth_setup_tx_flow()
3386 DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid, in dpaa2_eth_setup_tx_flow()
3393 fq->fqid = qid.fqid; in dpaa2_eth_setup_tx_flow()
3395 queue.destination.id = fq->channel->dpcon_id; in dpaa2_eth_setup_tx_flow()
3398 queue.user_context = (u64)(uintptr_t)fq; in dpaa2_eth_setup_tx_flow()
3400 DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid, in dpaa2_eth_setup_tx_flow()
3412 struct dpaa2_eth_fq *fq) in setup_rx_err_flow() argument
3427 fq->fqid = qid.fqid; in setup_rx_err_flow()
3429 q.destination.id = fq->channel->dpcon_id; in setup_rx_err_flow()
3432 q.user_context = (u64)(uintptr_t)fq; in setup_rx_err_flow()
3834 switch (priv->fq[i].type) { in dpaa2_eth_bind_dpni()
3836 err = dpaa2_eth_setup_rx_flow(priv, &priv->fq[i]); in dpaa2_eth_bind_dpni()
3839 err = dpaa2_eth_setup_tx_flow(priv, &priv->fq[i]); in dpaa2_eth_bind_dpni()
3842 err = setup_rx_err_flow(priv, &priv->fq[i]); in dpaa2_eth_bind_dpni()
3845 dev_err(dev, "Invalid FQ type %d\n", priv->fq[i].type); in dpaa2_eth_bind_dpni()