From: Geert Uytterhoeven Date: Mon, 13 Feb 2017 11:00:26 +0000 (+0100) Subject: dmaengine: rcar-dmac: Widen DMA mask to 40 bits X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=dc312349e87526dfe6387c1a82fafded706f0572;p=openwrt%2Fstaging%2Fblogic.git dmaengine: rcar-dmac: Widen DMA mask to 40 bits By default, the DMA mask covers only the low 32-bit address space, which causes SWIOTLB on arm64 to fall back to a bounce buffer for DMA transfers involving memory outside the 32-bit address space. The R-Car DMA controller hardware supports a 40-bit address space, hence widen the DMA mask to 40 bits to actually make use of this feature. Signed-off-by: Geert Uytterhoeven Signed-off-by: Vinod Koul --- diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 2e441d0ccd79..93a69b992a51 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -1716,6 +1716,7 @@ static int rcar_dmac_probe(struct platform_device *pdev) dmac->dev = &pdev->dev; platform_set_drvdata(pdev, dmac); + dma_set_mask_and_coherent(dmac->dev, DMA_BIT_MASK(40)); ret = rcar_dmac_parse_of(&pdev->dev, dmac); if (ret < 0)