• Home
  • Raw
  • Download

Lines Matching refs:chunk

43 static struct dw_edma_burst *dw_edma_alloc_burst(struct dw_edma_chunk *chunk)  in dw_edma_alloc_burst()  argument
52 if (chunk->burst) { in dw_edma_alloc_burst()
54 chunk->bursts_alloc++; in dw_edma_alloc_burst()
55 list_add_tail(&burst->list, &chunk->burst->list); in dw_edma_alloc_burst()
58 chunk->bursts_alloc = 0; in dw_edma_alloc_burst()
59 chunk->burst = burst; in dw_edma_alloc_burst()
69 struct dw_edma_chunk *chunk; in dw_edma_alloc_chunk() local
71 chunk = kzalloc(sizeof(*chunk), GFP_NOWAIT); in dw_edma_alloc_chunk()
72 if (unlikely(!chunk)) in dw_edma_alloc_chunk()
75 INIT_LIST_HEAD(&chunk->list); in dw_edma_alloc_chunk()
76 chunk->chan = chan; in dw_edma_alloc_chunk()
83 chunk->cb = !(desc->chunks_alloc % 2); in dw_edma_alloc_chunk()
85 chunk->ll_region.paddr = dw->ll_region_wr[chan->id].paddr; in dw_edma_alloc_chunk()
86 chunk->ll_region.vaddr = dw->ll_region_wr[chan->id].vaddr; in dw_edma_alloc_chunk()
88 chunk->ll_region.paddr = dw->ll_region_rd[chan->id].paddr; in dw_edma_alloc_chunk()
89 chunk->ll_region.vaddr = dw->ll_region_rd[chan->id].vaddr; in dw_edma_alloc_chunk()
92 if (desc->chunk) { in dw_edma_alloc_chunk()
94 if (!dw_edma_alloc_burst(chunk)) { in dw_edma_alloc_chunk()
95 kfree(chunk); in dw_edma_alloc_chunk()
99 list_add_tail(&chunk->list, &desc->chunk->list); in dw_edma_alloc_chunk()
102 chunk->burst = NULL; in dw_edma_alloc_chunk()
104 desc->chunk = chunk; in dw_edma_alloc_chunk()
107 return chunk; in dw_edma_alloc_chunk()
127 static void dw_edma_free_burst(struct dw_edma_chunk *chunk) in dw_edma_free_burst() argument
132 list_for_each_entry_safe(child, _next, &chunk->burst->list, list) { in dw_edma_free_burst()
135 chunk->bursts_alloc--; in dw_edma_free_burst()
140 chunk->burst = NULL; in dw_edma_free_burst()
147 if (!desc->chunk) in dw_edma_free_chunk()
151 list_for_each_entry_safe(child, _next, &desc->chunk->list, list) { in dw_edma_free_chunk()
160 desc->chunk = NULL; in dw_edma_free_chunk()
188 child = list_first_entry_or_null(&desc->chunk->list, in dw_edma_start_transfer()
339 struct dw_edma_chunk *chunk; in dw_edma_device_transfer() local
384 chunk = dw_edma_alloc_chunk(desc); in dw_edma_device_transfer()
385 if (unlikely(!chunk)) in dw_edma_device_transfer()
412 if (chunk->bursts_alloc == chan->ll_max) { in dw_edma_device_transfer()
413 chunk = dw_edma_alloc_chunk(desc); in dw_edma_device_transfer()
414 if (unlikely(!chunk)) in dw_edma_device_transfer()
418 burst = dw_edma_alloc_burst(chunk); in dw_edma_device_transfer()
429 chunk->ll_region.sz += burst->sz; in dw_edma_device_transfer()