Lines Matching refs:dma_chan
37 static void mv_xor_issue_pending(struct dma_chan *chan);
434 static int mv_xor_alloc_chan_resources(struct dma_chan *chan)
555 mv_xor_prep_dma_xor(struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src,
599 mv_xor_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
610 mv_xor_prep_dma_interrupt(struct dma_chan *chan, unsigned long flags)
627 static void mv_xor_free_chan_resources(struct dma_chan *chan)
674 static enum dma_status mv_xor_status(struct dma_chan *chan,
747 static void mv_xor_issue_pending(struct dma_chan *chan)
766 struct dma_chan *dma_chan;
786 dma_chan = &mv_chan->dmachan;
787 if (mv_xor_alloc_chan_resources(dma_chan) < 1) {
792 unmap = dmaengine_get_unmap_data(dma_chan->device->dev, 2, GFP_KERNEL);
798 src_dma = dma_map_page(dma_chan->device->dev, virt_to_page(src),
803 ret = dma_mapping_error(dma_chan->device->dev, src_dma);
810 dest_dma = dma_map_page(dma_chan->device->dev, virt_to_page(dest),
815 ret = dma_mapping_error(dma_chan->device->dev, dest_dma);
823 tx = mv_xor_prep_dma_memcpy(dma_chan, dest_dma, src_dma,
826 dev_err(dma_chan->device->dev,
834 dev_err(dma_chan->device->dev,
840 mv_xor_issue_pending(dma_chan);
844 if (mv_xor_status(dma_chan, cookie, NULL) !=
846 dev_err(dma_chan->device->dev,
852 dma_sync_single_for_cpu(dma_chan->device->dev, dest_dma,
855 dev_err(dma_chan->device->dev,
863 mv_xor_free_chan_resources(dma_chan);
881 struct dma_chan *dma_chan;
919 dma_chan = &mv_chan->dmachan;
920 if (mv_xor_alloc_chan_resources(dma_chan) < 1) {
925 unmap = dmaengine_get_unmap_data(dma_chan->device->dev, src_count + 1,
934 unmap->addr[i] = dma_map_page(dma_chan->device->dev, xor_srcs[i],
937 ret = dma_mapping_error(dma_chan->device->dev, unmap->addr[i]);
945 unmap->addr[src_count] = dma_map_page(dma_chan->device->dev, dest, 0, PAGE_SIZE,
948 ret = dma_mapping_error(dma_chan->device->dev, unmap->addr[src_count]);
956 tx = mv_xor_prep_dma_xor(dma_chan, dest_dma, dma_srcs,
959 dev_err(dma_chan->device->dev,
967 dev_err(dma_chan->device->dev,
973 mv_xor_issue_pending(dma_chan);
977 if (mv_xor_status(dma_chan, cookie, NULL) !=
979 dev_err(dma_chan->device->dev,
985 dma_sync_single_for_cpu(dma_chan->device->dev, dest_dma,
990 dev_err(dma_chan->device->dev,
1000 mv_xor_free_chan_resources(dma_chan);
1011 struct dma_chan *chan, *_chan;