On Fri, 2014-05-16 at 13:55 +0100, Catalin Marinas wrote:
[...]
> > It could if arm64 would restrict the DMA addresses to 32-bit, but it doesn't
> > and I end up on my platform with USB DMA buffers allocated >4GB address.
> 
> dma_alloc_coherent() on arm64 should return 32-bit addresses if the
> coherent_dma_mask is set to 32-bit.

Not if you have CONFIG_DMA_CMA. Unless I have misread the code, enabling
CMA means memory comes from a common pool carved out at boot with no way
for drivers to specify it's restrictions [1]. It's what I've spent most
of the week trying to work around in a clean way, and have finally given
up.

[1] There is a partial, stalled attempt at doing device specific CMA
allocation: http://lkml.org/lkml/2014/2/28/237

-- 
Tixy

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to