dma_info
struct dma_info *info = get_dma_info(chan);
struct dma_info *info = get_dma_info(chan);
struct dma_info *info = get_dma_info(chan);
struct dma_info *info = get_dma_info(chan);
struct dma_info *info = v;
int register_dmac(struct dma_info *info)
struct dma_info *get_dma_info(unsigned int chan)
void unregister_dmac(struct dma_info *info)
struct dma_info *info;
struct dma_info *info;
struct dma_info *info = get_dma_info(chan);
struct dma_info *info = get_dma_info(chan);
struct dma_info *info = get_dma_info(chan);
static struct dma_info g2_dma_info = {
struct dma_info *info = dev_id;
static struct dma_info pvr2_dma_info = {
static struct dma_info sh_dmac_info = {
struct dma_info *info = &sh_dmac_info;
int dma_create_sysfs_files(struct dma_channel *chan, struct dma_info *info)
void dma_remove_sysfs_files(struct dma_channel *chan, struct dma_info *info)
struct dma_info *info = get_dma_info(i);
extern struct dma_info *get_dma_info(unsigned int chan);
extern int register_dmac(struct dma_info *info);
extern void unregister_dmac(struct dma_info *info);
extern int dma_create_sysfs_files(struct dma_channel *, struct dma_info *);
extern void dma_remove_sysfs_files(struct dma_channel *, struct dma_info *);
struct nouveau_dmem_dma_info *dma_info)
dma_info->dma_addr = dma_map_page(dev, dpage, 0, page_size(dpage),
dma_info->size = page_size(dpage);
if (dma_mapping_error(dev, dma_info->dma_addr))
NOUVEAU_APER_HOST, dma_info->dma_addr,
dma_unmap_page(dev, dma_info->dma_addr, page_size(dpage),
struct nouveau_dmem_dma_info dma_info;
err = nouveau_dmem_copy_folio(drm, sfolio, dfolio, &dma_info);
dma_unmap_page(drm->dev->dev, dma_info.dma_addr, PAGE_SIZE,
struct nouveau_dmem_dma_info *dma_info;
dma_info = kvzalloc_objs(*dma_info, npages, GFP_KERNEL | __GFP_NOFAIL);
&dma_info[i]);
dma_unmap_page(chunk->drm->dev->dev, dma_info[i].dma_addr,
dma_info[i].size, DMA_BIDIRECTIONAL);
kvfree(dma_info);
struct nouveau_dmem_dma_info *dma_info, u64 *pfn)
dma_info->dma_addr = dma_map_page(dev, spage, 0, page_size(spage),
dma_info->size = page_size(spage);
if (dma_mapping_error(dev, dma_info->dma_addr))
dma_info->dma_addr))
dma_info->dma_addr = DMA_MAPPING_ERROR;
dma_unmap_page(dev, dma_info->dma_addr, PAGE_SIZE, DMA_BIDIRECTIONAL);
struct nouveau_dmem_dma_info *dma_info, u64 *pfns)
args->src[i], dma_info + nr_dma, pfns + i);
if (!dma_mapping_error(drm->dev->dev, dma_info[nr_dma].dma_addr))
dma_unmap_page(drm->dev->dev, dma_info[nr_dma].dma_addr,
dma_info[nr_dma].size, DMA_BIDIRECTIONAL);
struct nouveau_dmem_dma_info *dma_info;
dma_info = kmalloc_objs(*dma_info, max);
if (!dma_info)
nouveau_dmem_migrate_chunk(drm, svmm, &args, dma_info,
kfree(dma_info);
if (dma_mapping_error(&pdev->dev, dma_info[0].dma))
dma_info[0].len = skb_headlen(skb);
wqe_desc->hi_addr = cpu_to_le32(upper_32_bits(dma_info[0].dma));
wqe_desc->lo_addr = cpu_to_le32(lower_32_bits(dma_info[0].dma));
wqe_desc->ctrl_len = cpu_to_le32(dma_info[0].len);
dma_info[idx].dma = skb_frag_dma_map(&pdev->dev, frag, 0,
if (dma_mapping_error(&pdev->dev, dma_info[idx].dma)) {
dma_info[idx].len = skb_frag_size(frag);
hinic3_set_buf_desc(buf_desc, dma_info[idx].dma,
dma_info[idx].len);
dma_unmap_page(&pdev->dev, dma_info[idx].dma,
dma_info[idx].len, DMA_TO_DEVICE);
dma_unmap_single(&pdev->dev, dma_info[0].dma, dma_info[0].len,
struct hinic3_dma_info *dma_info)
dma_info[i].dma,
dma_info[i].len, DMA_TO_DEVICE);
dma_unmap_single(&pdev->dev, dma_info[0].dma,
dma_info[0].len, DMA_TO_DEVICE);
tx_info->dma_info);
txq->tx_info[idx].dma_info =
hinic3_tx_unmap_skb(netdev, tx_info->skb, tx_info->dma_info);
struct hinic3_dma_info *dma_info = tx_info->dma_info;
dma_info[0].dma = dma_map_single(&pdev->dev, skb->data,
struct hinic3_dma_info *dma_info;
static bool dma64_txidle(struct dma_info *di)
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
static void dma_txenq(struct dma_info *di, struct sk_buff *p)
static void ampdu_finalize(struct dma_info *di)
static void prep_ampdu_frame(struct dma_info *di, struct sk_buff *p)
static void dma_update_txavail(struct dma_info *di)
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(pub, struct dma_info, dma);
struct dma_info *di = container_of(dmah, struct dma_info, dma);
static uint txd(struct dma_info *di, uint x)
static uint rxd(struct dma_info *di, uint x)
static uint nexttxd(struct dma_info *di, uint i)
static uint prevtxd(struct dma_info *di, uint i)
static uint nextrxd(struct dma_info *di, uint i)
static uint ntxdactive(struct dma_info *di, uint h, uint t)
static uint nrxdactive(struct dma_info *di, uint h, uint t)
static uint _dma_ctrlflags(struct dma_info *di, uint mask, uint flags)
static bool _dma64_addrext(struct dma_info *di, uint ctrl_offset)
static bool _dma_isaddrext(struct dma_info *di)
static bool _dma_descriptor_align(struct dma_info *di)
static void *dma_alloc_consistent(struct dma_info *di, uint size,
static void *dma_ringalloc(struct dma_info *di, u32 boundary, uint size,
static bool dma64_alloc(struct dma_info *di, uint direction)
static bool _dma_alloc(struct dma_info *di, uint direction)
struct dma_info *di;
dma64_dd_upd(struct dma_info *di, struct dma64desc *ddring,
struct dma_info *di = container_of(pub, struct dma_info, dma);
_dma_ddtable_init(struct dma_info *di, uint direction, dma_addr_t pa)
static void _dma_rxenable(struct dma_info *di)
struct dma_info *di = container_of(pub, struct dma_info, dma);
static struct sk_buff *dma64_getnextrxp(struct dma_info *di, bool forceall)
static struct sk_buff *_dma_getnextrxp(struct dma_info *di, bool forceall)
struct dma_info *di = container_of(pub, struct dma_info, dma);
static bool dma64_rxidle(struct dma_info *di)
char dma_info[] = "no DMA";
snprintf(dma_info, sizeof(dma_info), "DMA %d", sh->dma_channel);
sh->this_id, base_io, sh->irq, dma_info);
INIT_LIST_HEAD(&meminfo->dma_info.qe);
struct bfa_mem_dma_s *dma_info, *dma_elem;
dma_info = &meminfo->dma_info;
dma_info->kva_curp = dma_info->kva;
dma_info->dma_curp = dma_info->dma;
list_for_each(dm_qe, &dma_info->qe) {
struct bfa_mem_dma_s dma_info;
list_add_tail(&dm_ptr->qe, &meminfo->dma_info.qe);
struct bfa_mem_dma_s *dma_info, *dma_elem;
dma_info = &hal_meminfo->dma_info;
list_for_each(dm_qe, &dma_info->qe) {
struct bfa_mem_dma_s *dma_info, *dma_elem;
dma_info = &hal_meminfo->dma_info;
list_for_each(dm_qe, &dma_info->qe) {