Lines Matching refs:mdesc
120 struct hidma_desc *mdesc;
133 list_for_each_entry_safe(mdesc, next, &list, node) {
138 desc = &mdesc->desc;
141 llstat = hidma_ll_status(mdma->lldev, mdesc->tre_ch);
159 list_move(&mdesc->node, &mchan->free);
173 struct hidma_desc *mdesc = data;
174 struct hidma_chan *mchan = to_hidma_chan(mdesc->desc.chan);
181 if (mdesc->node.next) {
183 list_move_tail(&mdesc->node, &mchan->completed);
321 struct hidma_desc *mdesc;
334 mdesc = container_of(txd, struct hidma_desc, desc);
338 list_move_tail(&mdesc->node, &mchan->queued);
352 struct hidma_desc *mdesc, *tmp;
363 mdesc = kzalloc(sizeof(struct hidma_desc), GFP_NOWAIT);
364 if (!mdesc) {
368 dma_async_tx_descriptor_init(&mdesc->desc, dmach);
369 mdesc->desc.tx_submit = hidma_tx_submit;
372 "DMA engine", hidma_callback, mdesc,
373 &mdesc->tre_ch);
377 kfree(mdesc);
380 list_add_tail(&mdesc->node, &descs);
385 list_for_each_entry_safe(mdesc, tmp, &descs, node) {
386 hidma_ll_free(dmadev->lldev, mdesc->tre_ch);
387 kfree(mdesc);
404 struct hidma_desc *mdesc = NULL;
411 mdesc = list_first_entry(&mchan->free, struct hidma_desc, node);
412 list_del(&mdesc->node);
416 if (!mdesc)
419 mdesc->desc.flags = flags;
420 hidma_ll_set_transfer_params(mdma->lldev, mdesc->tre_ch,
426 list_add_tail(&mdesc->node, &mchan->prepared);
429 return &mdesc->desc;
437 struct hidma_desc *mdesc = NULL;
444 mdesc = list_first_entry(&mchan->free, struct hidma_desc, node);
445 list_del(&mdesc->node);
449 if (!mdesc)
452 mdesc->desc.flags = flags;
453 hidma_ll_set_transfer_params(mdma->lldev, mdesc->tre_ch,
459 list_add_tail(&mdesc->node, &mchan->prepared);
462 return &mdesc->desc;
469 struct hidma_desc *tmp, *mdesc;
494 list_for_each_entry_safe(mdesc, tmp, &list, node) {
495 struct dma_async_tx_descriptor *txd = &mdesc->desc;
502 list_move(&mdesc->node, &mchan->free);
534 struct hidma_desc *mdesc, *tmp;
547 list_for_each_entry_safe(mdesc, tmp, &descs, node) {
548 hidma_ll_free(mdma->lldev, mdesc->tre_ch);
549 list_del(&mdesc->node);
550 kfree(mdesc);