Lines Matching refs:lli

173  * @lli_list: link list of lli nodes
336 static u32 llc_hw_flen(struct owl_dma_lli *lli)
338 return lli->hw[OWL_DMADESC_FLEN] & GENMASK(19, 0);
342 struct owl_dma_lli *lli)
344 list_del(&lli->node);
345 dma_pool_free(od->lli_pool, lli, lli->phys);
350 struct owl_dma_lli *lli;
353 lli = dma_pool_alloc(od->lli_pool, GFP_NOWAIT, &phys);
354 if (!lli)
357 INIT_LIST_HEAD(&lli->node);
358 lli->phys = phys;
360 return lli;
381 struct owl_dma_lli *lli,
429 lli->hw[OWL_DMADESC_CTRLA] = llc_hw_ctrla(mode,
438 lli->hw[OWL_DMADESC_NEXT_LLI] = 0; /* One link list by default */
439 lli->hw[OWL_DMADESC_SADDR] = src;
440 lli->hw[OWL_DMADESC_DADDR] = dst;
441 lli->hw[OWL_DMADESC_SRC_STRIDE] = 0;
442 lli->hw[OWL_DMADESC_DST_STRIDE] = 0;
446 lli->hw[OWL_DMADESC_FLEN] = len;
452 lli->hw[OWL_DMADESC_CTRLB] = FCNT_VAL | ctrlb;
460 lli->hw[OWL_DMADESC_FLEN] = len | FCNT_VAL << 20;
461 lli->hw[OWL_DMADESC_CTRLB] = ctrlb;
540 struct owl_dma_lli *lli;
552 lli = list_first_entry(&txd->lli_list,
563 pchan_writel(pchan, OWL_DMAX_NEXT_DESCRIPTOR, lli->phys);
677 struct owl_dma_lli *lli, *_lli;
682 list_for_each_entry_safe(lli, _lli, &txd->lli_list, node)
683 owl_dma_free_lli(od, lli);
774 struct owl_dma_lli *lli;
790 list_for_each_entry(lli, &txd->lli_list, node) {
792 if (lli->phys == next_lli_phy) {
793 list_for_each_entry(lli, &txd->lli_list, node)
794 bytes += llc_hw_flen(lli);
808 struct owl_dma_lli *lli;
824 list_for_each_entry(lli, &txd->lli_list, node)
825 bytes += llc_hw_flen(lli);
873 struct owl_dma_lli *lli, *prev = NULL;
888 lli = owl_dma_alloc_lli(od);
889 if (!lli) {
890 dev_warn(chan2dev(chan), "failed to allocate lli\n");
896 ret = owl_dma_cfg_lli(vchan, lli, src + offset, dst + offset,
900 dev_warn(chan2dev(chan), "failed to config lli\n");
904 prev = owl_dma_add_lli(txd, prev, lli, false);
925 struct owl_dma_lli *lli, *prev = NULL;
947 lli = owl_dma_alloc_lli(od);
948 if (!lli) {
949 dev_err(chan2dev(chan), "failed to allocate lli");
961 ret = owl_dma_cfg_lli(vchan, lli, src, dst, len, dir, sconfig,
964 dev_warn(chan2dev(chan), "failed to config lli");
968 prev = owl_dma_add_lli(txd, prev, lli, false);
990 struct owl_dma_lli *lli, *prev = NULL, *first = NULL;
1003 lli = owl_dma_alloc_lli(od);
1004 if (!lli) {
1005 dev_warn(chan2dev(chan), "failed to allocate lli");
1017 ret = owl_dma_cfg_lli(vchan, lli, src, dst, period_len,
1020 dev_warn(chan2dev(chan), "failed to config lli");
1025 first = lli;
1027 prev = owl_dma_add_lli(txd, prev, lli, false);