Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a634808 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Vinod Koul
Browse files

dmaengine: rcar-dmac: Allocate hardware descriptors with DMAC device



When wired to an IOMMU to access data, the DMAC accesses the hardware
descriptors through the IOMMU as well. We're using the DMA mapping API
to allocate the descriptors, but with a NULL device at the moment, which
prevents IOMMU mappings from being created. Fix this by passing the DMAC
device instead.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent f7638c90
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -655,8 +655,8 @@ static void rcar_dmac_realloc_hwdesc(struct rcar_dmac_chan *chan,
		return;

	if (desc->hwdescs.mem) {
		dma_free_coherent(NULL, desc->hwdescs.size, desc->hwdescs.mem,
				   desc->hwdescs.dma);
		dma_free_coherent(chan->chan.device->dev, desc->hwdescs.size,
				  desc->hwdescs.mem, desc->hwdescs.dma);
		desc->hwdescs.mem = NULL;
		desc->hwdescs.size = 0;
	}
@@ -664,8 +664,8 @@ static void rcar_dmac_realloc_hwdesc(struct rcar_dmac_chan *chan,
	if (!size)
		return;

	desc->hwdescs.mem = dma_alloc_coherent(NULL, size, &desc->hwdescs.dma,
					       GFP_NOWAIT);
	desc->hwdescs.mem = dma_alloc_coherent(chan->chan.device->dev, size,
					       &desc->hwdescs.dma, GFP_NOWAIT);
	if (!desc->hwdescs.mem)
		return;