On 19 July 2016 at 18:53, Ben Greear <[email protected]> wrote: > On 07/19/2016 09:13 AM, Adrian Chadd wrote: [...] >> Try allocating WMI memory with GFP_DMA32. The way it currently is >> working in linux is that caling dma map ends up allocating iommu slots >> to map that 64 bit memory back into 32 bit space, /or/ it will end up >> allocating bounce buffers. >> >> The WMI memory alloc routine is being used for the swap space too, >> which ends up with 700kbyte or more allocated twice - once for the >> initial alloc, and another for the dma map call. >> >> You should try GFP_DMA32 and see if that fixes it. You need contig, < >> 32 bit physical memory allocated, and bounce buffers are really >> supposed to be ephemeral. > > > I briefly tested with the GFP_DMA32 and it worked on my 9984 test rig.
Doesn't GFP_DMA32 alter the address space your pointers refer to in a similar way dma-coherent allocations do (compared to regular kmalloc+dma-map-single)? This would support my theory about firmware/hardware getting confused if host mem chunks have some MSBs set. MichaĆ _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
