Lines Matching defs:pdesc
114 struct mxs_dma_desc *pdesc;
128 pdesc = list_first_entry(&pchan->active, struct mxs_dma_desc, node);
129 if (pdesc == NULL)
133 if (!(pdesc->cmd.data & MXS_DMA_DESC_CHAIN))
141 pdesc = list_entry(pdesc->node.next,
143 writel(mxs_dma_cmd_address(pdesc),
153 writel(mxs_dma_cmd_address(pdesc),
340 struct mxs_dma_desc *pdesc;
344 pdesc = memalign(MXS_DMA_ALIGNMENT, size);
346 if (pdesc == NULL)
349 memset(pdesc, 0, sizeof(*pdesc));
350 pdesc->address = (dma_addr_t)pdesc;
352 return pdesc;
358 void mxs_dma_desc_free(struct mxs_dma_desc *pdesc)
360 if (pdesc == NULL)
363 free(pdesc);
405 int mxs_dma_desc_append(int channel, struct mxs_dma_desc *pdesc)
417 pdesc->cmd.next = mxs_dma_cmd_address(pdesc);
418 pdesc->flags |= MXS_DMA_DESC_FIRST | MXS_DMA_DESC_LAST;
424 pdesc->flags &= ~MXS_DMA_DESC_FIRST;
427 last->cmd.next = mxs_dma_cmd_address(pdesc);
432 pdesc->flags |= MXS_DMA_DESC_READY;
433 if (pdesc->flags & MXS_DMA_DESC_FIRST)
435 list_add_tail(&pdesc->node, &pchan->active);
437 mxs_dma_flush_desc(pdesc);
458 struct mxs_dma_desc *pdesc;
478 pdesc = list_entry(p, struct mxs_dma_desc, node);
479 pdesc->flags &= ~MXS_DMA_DESC_READY;
486 if (pdesc->flags & MXS_DMA_DESC_LAST)
552 void mxs_dma_circ_start(int chan, struct mxs_dma_desc *pdesc)
557 mxs_dma_flush_desc(pdesc);
561 writel(mxs_dma_cmd_address(pdesc),