DMABOUNCE in pci-rcar

Arnd Bergmann arnd at arndb.de
Thu Mar 20 12:09:57 EDT 2014


On Thursday 20 March 2014 16:04:36 Ben Dooks wrote:
> On 26/02/14 20:57, Arnd Bergmann wrote:
> > On Wednesday 26 February 2014 12:48:17 Bjorn Helgaas wrote:
> >> On Mon, Feb 24, 2014 at 4:00 AM, Arnd Bergmann <arnd at arndb.de> wrote:
> >>> Hi Magnus,
> >>>
> >>> I noticed during randconfig testing that you enabled DMABOUNCE for the
> >>> pci-rcar-gen2 driver as posted in this patch https://lkml.org/lkml/2014/2/5/30
> >>>
> >>> I didn't see the original post unfortunately, but I fear we have to
> >>> revert it and come up with a better solution, ...
> >>
> >> Sounds like I should drop the following patches from my pci/host-rcar
> >> branch for now?
> >>
> >>    PCI: rcar: Add DMABOUNCE support
> >>    PCI: rcar: Enable BOUNCE in case of HIGHMEM
> >>    PCI: rcar: Make the Kconfig dependencies more generic
> >
> > Sounds good to me. The last patch is actually fine, but you'll have to
> > fix the context to apply it without the other two.
> 
> As a note, if we now boot a Lager with DT on 3.14-rc3 series the USB
> controllers no longer work with full 2GiB RAM enabled in the device
> tree.

Did it work before these patches got applied initially?

> Could we work around this by having 1GiB of memory defined in the
> 32bit memory and then add the rest of the 3GiB from the >32bit
> area via LPAE? Will the kernel ever try to allocate DMA memory from
> anything >32bit?

You can solve the case for dma_alloc_coherent() this way, or by
setting the mask correctly. It won't help you for dma_map_* though,
which still requires someone to add support for swiotlb or using
an IOMMU if present.

	Arnd



More information about the linux-arm-kernel mailing list