Hi Geert, Magnus > >> 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. Unfortunately, this patch breaks H3 IPMMU at least on SCIF/MSOIF/Sound. It could start works if we reverted this patch (= 3e58e24ad844a41389c849cfc581e3339299690e) I'm using renesas-drivers-next-2016-12-13-v4.9 Best regards --- Kuninori Morimoto