Message ID | 20190326140520.28475-1-alexandru.ardelean@analog.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [V3] dmaengine: axi-dmac: Don't check the number of frames for alignment | expand |
On 26-03-19, 16:05, Alexandru Ardelean wrote: > In 2D transfers (for the AXI DMAC), the number of frames (numf) represents > Y_LENGTH, and the length of a frame is X_LENGTH. 2D transfers are useful > for video transfers where screen resolutions ( X * Y ) are typically > aligned for X, but not for Y. > > There is no requirement for Y_LENGTH to be aligned to the bus-width (or > anything), and this is also true for AXI DMAC. > > Checking the Y_LENGTH for alignment causes false errors when initiating DMA > transfers. This change fixes this by checking only that the Y_LENGTH is > non-zero. Applied, thanks
diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c index 0fe3a931d8d5..0e0c457a7b27 100644 --- a/drivers/dma/dma-axi-dmac.c +++ b/drivers/dma/dma-axi-dmac.c @@ -526,7 +526,7 @@ static struct dma_async_tx_descriptor *axi_dmac_prep_interleaved( if (chan->hw_2d) { if (!axi_dmac_check_len(chan, xt->sgl[0].size) || - !axi_dmac_check_len(chan, xt->numf)) + xt->numf == 0) return NULL; if (xt->sgl[0].size + dst_icg > chan->max_length || xt->sgl[0].size + src_icg > chan->max_length)
In 2D transfers (for the AXI DMAC), the number of frames (numf) represents Y_LENGTH, and the length of a frame is X_LENGTH. 2D transfers are useful for video transfers where screen resolutions ( X * Y ) are typically aligned for X, but not for Y. There is no requirement for Y_LENGTH to be aligned to the bus-width (or anything), and this is also true for AXI DMAC. Checking the Y_LENGTH for alignment causes false errors when initiating DMA transfers. This change fixes this by checking only that the Y_LENGTH is non-zero. Fixes: 0e3b67b348b8 ("dmaengine: Add support for the Analog Devices AXI-DMAC DMA controller") Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> --- Changelog v2->v3: * Fixed typo in `Fixes` commit drivers/dma/dma-axi-dmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)