Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma

Pull slave-dmaengine fixes from Vinod Koul:
"A few fixes on slave dmanengine. There are trivial fixes in imx-dma,
tegra-dma & ioat driver"

* 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
dma: tegra: implement flags parameters for cyclic transfer
dmaengine: imx-dma: Disable use of hw_chain to fix sg_dma transfers.
ioat: Fix DMA memory sync direction correct flag

+9 -6
+2 -3
drivers/dma/imx-dma.c
··· 684 684 break; 685 685 } 686 686 687 - imxdmac->hw_chaining = 1; 688 - if (!imxdma_hw_chain(imxdmac)) 689 - return -EINVAL; 687 + imxdmac->hw_chaining = 0; 688 + 690 689 imxdmac->ccr_from_device = (mode | IMX_DMA_TYPE_FIFO) | 691 690 ((IMX_DMA_MEMSIZE_32 | IMX_DMA_TYPE_LINEAR) << 2) | 692 691 CCR_REN;
+1 -1
drivers/dma/ioat/dma_v3.c
··· 951 951 goto free_resources; 952 952 } 953 953 } 954 - dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_TO_DEVICE); 954 + dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_FROM_DEVICE); 955 955 956 956 /* skip validate if the capability is not present */ 957 957 if (!dma_has_cap(DMA_XOR_VAL, dma_chan->device->cap_mask))
+6 -2
drivers/dma/tegra20-apb-dma.c
··· 266 266 if (async_tx_test_ack(&dma_desc->txd)) { 267 267 list_del(&dma_desc->node); 268 268 spin_unlock_irqrestore(&tdc->lock, flags); 269 + dma_desc->txd.flags = 0; 269 270 return dma_desc; 270 271 } 271 272 } ··· 1051 1050 TEGRA_APBDMA_AHBSEQ_WRAP_SHIFT; 1052 1051 ahb_seq |= TEGRA_APBDMA_AHBSEQ_BUS_WIDTH_32; 1053 1052 1054 - csr |= TEGRA_APBDMA_CSR_FLOW | TEGRA_APBDMA_CSR_IE_EOC; 1053 + csr |= TEGRA_APBDMA_CSR_FLOW; 1054 + if (flags & DMA_PREP_INTERRUPT) 1055 + csr |= TEGRA_APBDMA_CSR_IE_EOC; 1055 1056 csr |= tdc->dma_sconfig.slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT; 1056 1057 1057 1058 apb_seq |= TEGRA_APBDMA_APBSEQ_WRAP_WORD_1; ··· 1098 1095 mem += len; 1099 1096 } 1100 1097 sg_req->last_sg = true; 1101 - dma_desc->txd.flags = 0; 1098 + if (flags & DMA_CTRL_ACK) 1099 + dma_desc->txd.flags = DMA_CTRL_ACK; 1102 1100 1103 1101 /* 1104 1102 * Make sure that mode should not be conflicting with currently