Skip to content

Commit

Permalink
dmaengine: edma: Remove alignment constraint for memcpy
Browse files Browse the repository at this point in the history
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: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  • Loading branch information
Peter Ujfalusi authored and Vinod Koul committed Oct 27, 2015
1 parent e4e886c commit 21a3184
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions drivers/dma/edma.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;

Expand Down Expand Up @@ -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);
}

Expand Down

0 comments on commit 21a3184

Please sign in to comment.