Hi Geert, On Fri, Nov 25, 2016 at 6:00 PM, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > On Mon, Oct 31, 2016 at 6:08 PM, Geert Uytterhoeven > <geert+renesas@xxxxxxxxx> wrote: >> 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@xxxxxxxxx> > > Any comments? Thanks! > >> --- >> drivers/dma/sh/rcar-dmac.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c >> index 2e441d0ccd79a37a..93a69b992a51a7aa 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)); This makes sense to me since the hardware and the driver both can access more than 32-bits of physical address space. Cheers, / magnus