Lines Matching refs:fd
1363 const struct qm_fd *fd) in dpaa_fd_release() argument
1372 bm_buffer_set64(&bmb, qm_fd_addr(fd)); in dpaa_fd_release()
1374 dpaa_bp = dpaa_bpid2pool(fd->bpid); in dpaa_fd_release()
1378 if (qm_fd_get_format(fd) == qm_fd_sg) { in dpaa_fd_release()
1379 vaddr = phys_to_virt(qm_fd_addr(fd)); in dpaa_fd_release()
1380 sgt = vaddr + qm_fd_get_offset(fd); in dpaa_fd_release()
1382 dma_unmap_page(dpaa_bp->priv->rx_dma_dev, qm_fd_addr(fd), in dpaa_fd_release()
1443 struct qm_fd *fd, in dpaa_enable_tx_csum() argument
1522 fd->cmd |= cpu_to_be32(FM_FD_CMD_RPD | FM_FD_CMD_DTC); in dpaa_enable_tx_csum()
1653 const struct qm_fd *fd, bool ts) in dpaa_cleanup_tx_fd() argument
1658 dma_addr_t addr = qm_fd_addr(fd); in dpaa_cleanup_tx_fd()
1666 if (unlikely(qm_fd_get_format(fd) == qm_fd_sg)) { in dpaa_cleanup_tx_fd()
1668 qm_fd_get_offset(fd) + DPAA_SGT_SIZE, in dpaa_cleanup_tx_fd()
1674 sgt = vaddr + qm_fd_get_offset(fd); in dpaa_cleanup_tx_fd()
1690 qm_fd_get_offset(fd) + qm_fd_get_length(fd), in dpaa_cleanup_tx_fd()
1719 if (qm_fd_get_format(fd) == qm_fd_sg) in dpaa_cleanup_tx_fd()
1726 static u8 rx_csum_offload(const struct dpaa_priv *priv, const struct qm_fd *fd) in rx_csum_offload() argument
1733 (be32_to_cpu(fd->status) & FM_FD_STAT_L4CV)) in rx_csum_offload()
1750 const struct qm_fd *fd) in contig_fd_to_skb() argument
1752 ssize_t fd_off = qm_fd_get_offset(fd); in contig_fd_to_skb()
1753 dma_addr_t addr = qm_fd_addr(fd); in contig_fd_to_skb()
1761 dpaa_bp = dpaa_bpid2pool(fd->bpid); in contig_fd_to_skb()
1770 skb_put(skb, qm_fd_get_length(fd)); in contig_fd_to_skb()
1772 skb->ip_summed = rx_csum_offload(priv, fd); in contig_fd_to_skb()
1787 const struct qm_fd *fd) in sg_fd_to_skb() argument
1789 ssize_t fd_off = qm_fd_get_offset(fd); in sg_fd_to_skb()
1790 dma_addr_t addr = qm_fd_addr(fd); in sg_fd_to_skb()
1832 skb->ip_summed = rx_csum_offload(priv, fd); in sg_fd_to_skb()
1911 struct sk_buff *skb, struct qm_fd *fd, in skb_to_contig_fd() argument
1924 fd->bpid = FSL_DPAA_BPID_INV; in skb_to_contig_fd()
1936 err = dpaa_enable_tx_csum(priv, skb, fd, in skb_to_contig_fd()
1946 qm_fd_set_contig(fd, priv->tx_headroom, skb->len); in skb_to_contig_fd()
1947 fd->cmd |= cpu_to_be32(FM_FD_CMD_FCO); in skb_to_contig_fd()
1957 qm_fd_addr_set64(fd, addr); in skb_to_contig_fd()
1963 struct sk_buff *skb, struct qm_fd *fd) in skb_to_sg_fd() argument
1990 err = dpaa_enable_tx_csum(priv, skb, fd, in skb_to_sg_fd()
2039 qm_fd_set_sg(fd, priv->tx_headroom, skb->len); in skb_to_sg_fd()
2053 fd->bpid = FSL_DPAA_BPID_INV; in skb_to_sg_fd()
2054 fd->cmd |= cpu_to_be32(FM_FD_CMD_FCO); in skb_to_sg_fd()
2055 qm_fd_addr_set64(fd, addr); in skb_to_sg_fd()
2074 struct qm_fd *fd) in dpaa_xmit() argument
2080 if (fd->bpid == FSL_DPAA_BPID_INV) in dpaa_xmit()
2081 fd->cmd |= cpu_to_be32(qman_fq_fqid(priv->conf_fqs[queue])); in dpaa_xmit()
2084 trace_dpaa_tx_fd(priv->net_dev, egress_fq, fd); in dpaa_xmit()
2087 err = qman_enqueue(egress_fq, fd); in dpaa_xmit()
2098 percpu_stats->tx_bytes += qm_fd_get_length(fd); in dpaa_xmit()
2269 struct qm_fd fd; in dpaa_start_xmit() local
2277 qm_fd_clear_fd(&fd); in dpaa_start_xmit()
2316 err = skb_to_sg_fd(priv, skb, &fd); in dpaa_start_xmit()
2320 err = skb_to_contig_fd(priv, skb, &fd, &offset); in dpaa_start_xmit()
2331 fd.cmd |= cpu_to_be32(FM_FD_CMD_UPD); in dpaa_start_xmit()
2335 if (likely(dpaa_xmit(priv, percpu_stats, queue_mapping, &fd) == 0)) in dpaa_start_xmit()
2338 dpaa_cleanup_tx_fd(priv, &fd, false); in dpaa_start_xmit()
2349 const struct qm_fd *fd, in dpaa_rx_error() argument
2354 be32_to_cpu(fd->status) & FM_FD_STAT_RX_ERRORS); in dpaa_rx_error()
2358 if (be32_to_cpu(fd->status) & FM_FD_ERR_DMA) in dpaa_rx_error()
2360 if (be32_to_cpu(fd->status) & FM_FD_ERR_PHYSICAL) in dpaa_rx_error()
2362 if (be32_to_cpu(fd->status) & FM_FD_ERR_SIZE) in dpaa_rx_error()
2364 if (be32_to_cpu(fd->status) & FM_FD_ERR_PRS_HDR_ERR) in dpaa_rx_error()
2367 dpaa_fd_release(net_dev, fd); in dpaa_rx_error()
2373 const struct qm_fd *fd, in dpaa_tx_error() argument
2380 be32_to_cpu(fd->status) & FM_FD_STAT_TX_ERRORS); in dpaa_tx_error()
2384 skb = dpaa_cleanup_tx_fd(priv, fd, false); in dpaa_tx_error()
2414 const struct qm_fd *fd, in dpaa_tx_conf() argument
2419 if (unlikely(be32_to_cpu(fd->status) & FM_FD_STAT_TX_ERRORS)) { in dpaa_tx_conf()
2422 be32_to_cpu(fd->status) & in dpaa_tx_conf()
2430 skb = dpaa_cleanup_tx_fd(priv, fd, true); in dpaa_tx_conf()
2463 dpaa_bp = dpaa_bpid2pool(dq->fd.bpid); in rx_error_dqrr()
2473 dpaa_rx_error(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in rx_error_dqrr()
2487 struct qm_fd fd; in dpaa_xdp_xmit_frame() local
2517 qm_fd_clear_fd(&fd); in dpaa_xdp_xmit_frame()
2518 fd.bpid = FSL_DPAA_BPID_INV; in dpaa_xdp_xmit_frame()
2519 fd.cmd |= cpu_to_be32(FM_FD_CMD_FCO); in dpaa_xdp_xmit_frame()
2520 qm_fd_set_contig(&fd, xdpf->headroom, xdpf->len); in dpaa_xdp_xmit_frame()
2530 qm_fd_addr_set64(&fd, addr); in dpaa_xdp_xmit_frame()
2536 err = dpaa_xmit(priv, percpu_stats, smp_processor_id(), &fd); in dpaa_xdp_xmit_frame()
2539 qm_fd_get_offset(&fd) + qm_fd_get_length(&fd), in dpaa_xdp_xmit_frame()
2551 static u32 dpaa_run_xdp(struct dpaa_priv *priv, struct qm_fd *fd, void *vaddr, in dpaa_run_xdp() argument
2554 ssize_t fd_off = qm_fd_get_offset(fd); in dpaa_run_xdp()
2568 XDP_PACKET_HEADROOM, qm_fd_get_length(fd), true); in dpaa_run_xdp()
2587 qm_fd_set_contig(fd, xdp.data - vaddr, xdp.data_end - xdp.data); in dpaa_run_xdp()
2650 const struct qm_fd *fd = &dq->fd; in rx_default_dqrr() local
2651 dma_addr_t addr = qm_fd_addr(fd); in rx_default_dqrr()
2668 fd_status = be32_to_cpu(fd->status); in rx_default_dqrr()
2669 fd_format = qm_fd_get_format(fd); in rx_default_dqrr()
2672 dpaa_bp = dpaa_bpid2pool(dq->fd.bpid); in rx_default_dqrr()
2677 trace_dpaa_rx_fd(net_dev, fq, &dq->fd); in rx_default_dqrr()
2692 dpaa_fd_release(net_dev, &dq->fd); in rx_default_dqrr()
2702 dpaa_fd_release(net_dev, fd); in rx_default_dqrr()
2711 prefetch(vaddr + qm_fd_get_offset(fd)); in rx_default_dqrr()
2739 xdp_act = dpaa_run_xdp(priv, (struct qm_fd *)fd, vaddr, in rx_default_dqrr()
2744 percpu_stats->rx_bytes += qm_fd_get_length(fd); in rx_default_dqrr()
2747 skb = contig_fd_to_skb(priv, fd); in rx_default_dqrr()
2754 sgt = vaddr + qm_fd_get_offset(fd); in rx_default_dqrr()
2759 skb = sg_fd_to_skb(priv, fd); in rx_default_dqrr()
2781 type = be32_to_cpu(fd->status) & FM_FD_STAT_L4CV ? in rx_default_dqrr()
2816 dpaa_tx_error(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in conf_error_dqrr()
2834 trace_dpaa_tx_conf_fd(net_dev, fq, &dq->fd); in conf_dflt_dqrr()
2841 dpaa_tx_conf(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in conf_dflt_dqrr()
2850 const struct qm_fd *fd = &msg->ern.fd; in egress_ern() local
2864 skb = dpaa_cleanup_tx_fd(priv, fd, false); in egress_ern()