dmaengine: rcar-dmac: Widen DMA mask to 40 bits
authorGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 13 Feb 2017 11:00:26 +0000 (12:00 +0100)
committerVinod Koul <vinod.koul@intel.com>
Tue, 14 Feb 2017 07:53:02 +0000 (13:23 +0530)
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 <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/sh/rcar-dmac.c

index 2e441d0ccd79a37a5486d394310839c2cdc47f01..93a69b992a51a7aaffbea2458c831e3c8d459945 100644 (file)
@@ -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)