Lines Matching full:lli
176 /* allocate memory for querying the current lli */ in ls1x_dma_alloc_chan_resources()
193 struct ls1x_dma_lli *lli, *_lli; in ls1x_dma_free_desc() local
195 list_for_each_entry_safe(lli, _lli, &desc->lli_list, node) { in ls1x_dma_free_desc()
196 list_del(&lli->node); in ls1x_dma_free_desc()
197 dma_pool_free(chan->lli_pool, lli, lli->phys); in ls1x_dma_free_desc()
221 struct ls1x_dma_lli *lli, *prev = NULL, *first = NULL; in ls1x_dma_prep_lli() local
255 lli = dma_pool_zalloc(chan->lli_pool, GFP_NOWAIT, &phys); in ls1x_dma_prep_lli()
256 if (!lli) { in ls1x_dma_prep_lli()
257 dev_err(dev, "failed to alloc lli %u\n", i); in ls1x_dma_prep_lli()
262 lli->phys = phys; in ls1x_dma_prep_lli()
263 lli->hw[LS1X_DMADESC_SADDR] = buf_addr; in ls1x_dma_prep_lli()
264 lli->hw[LS1X_DMADESC_DADDR] = dev_addr; in ls1x_dma_prep_lli()
265 lli->hw[LS1X_DMADESC_LENGTH] = buf_len / chan->bus_width; in ls1x_dma_prep_lli()
266 lli->hw[LS1X_DMADESC_STRIDE] = 0; in ls1x_dma_prep_lli()
267 lli->hw[LS1X_DMADESC_CYCLES] = 1; in ls1x_dma_prep_lli()
268 lli->hw[LS1X_DMADESC_CMD] = cmd; in ls1x_dma_prep_lli()
272 lli->phys | LS1X_DMA_NEXT_VALID; in ls1x_dma_prep_lli()
273 prev = lli; in ls1x_dma_prep_lli()
276 first = lli; in ls1x_dma_prep_lli()
278 list_add_tail(&lli->node, &desc->lli_list); in ls1x_dma_prep_lli()
282 lli->hw[LS1X_DMADESC_NEXT] = first->phys | LS1X_DMA_NEXT_VALID; in ls1x_dma_prep_lli()
287 lli = list_entry(pos, struct ls1x_dma_lli, node); in ls1x_dma_prep_lli()
288 print_hex_dump_debug("LLI: ", DUMP_PREFIX_OFFSET, 16, 4, in ls1x_dma_prep_lli()
289 lli, sizeof(*lli), false); in ls1x_dma_prep_lli()
380 /* save the current lli */ in ls1x_dma_pause()
440 struct ls1x_dma_lli *lli; in ls1x_dma_tx_status() local
443 /* get the current lli */ in ls1x_dma_tx_status()
447 /* locate the current lli */ in ls1x_dma_tx_status()
449 list_for_each_entry(lli, &desc->lli_list, node) in ls1x_dma_tx_status()
450 if (lli->hw[LS1X_DMADESC_NEXT] == next_phys) in ls1x_dma_tx_status()
454 &lli->phys); in ls1x_dma_tx_status()
457 list_for_each_entry_from(lli, &desc->lli_list, node) in ls1x_dma_tx_status()
458 bytes += lli->hw[LS1X_DMADESC_LENGTH] * in ls1x_dma_tx_status()
479 struct ls1x_dma_lli *lli; in ls1x_dma_issue_pending() local
481 lli = list_first_entry(&desc->lli_list, in ls1x_dma_issue_pending()
483 ls1x_dma_start(chan, &lli->phys); in ls1x_dma_issue_pending()