Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21a31846 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Vinod Koul
Browse files

dmaengine: edma: Remove alignment constraint for memcpy



Despite the claim by the original commit adding the memcpy
support, eDMA does not have constraint on the alignment of src, dst
or length in increment mode.

Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent e4e886c6
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -1324,6 +1324,7 @@ static struct dma_async_tx_descriptor *edma_prep_dma_memcpy(
	struct edma_desc *edesc;
	struct device *dev = chan->device->dev;
	struct edma_chan *echan = to_edma_chan(chan);
	unsigned int width;

	if (unlikely(!echan || !len))
		return NULL;
@@ -1336,8 +1337,12 @@ static struct dma_async_tx_descriptor *edma_prep_dma_memcpy(

	edesc->pset_nr = 1;

	width = 1 << __ffs((src | dest | len));
	if (width > DMA_SLAVE_BUSWIDTH_64_BYTES)
		width = DMA_SLAVE_BUSWIDTH_64_BYTES;

	ret = edma_config_pset(chan, &edesc->pset[0], src, dest, 1,
			       DMA_SLAVE_BUSWIDTH_4_BYTES, len, DMA_MEM_TO_MEM);
			       width, len, DMA_MEM_TO_MEM);
	if (ret < 0)
		return NULL;

@@ -1903,12 +1908,6 @@ static void edma_dma_init(struct edma_cc *ecc, struct dma_device *dma,

	dma->dev = dev;

	/*
	 * code using dma memcpy must make sure alignment of
	 * length is at dma->copy_align boundary.
	 */
	dma->copy_align = DMAENGINE_ALIGN_4_BYTES;

	INIT_LIST_HEAD(&dma->channels);
}