On Tuesday 12 May 2015 18:24:43 Brian King wrote: > > Commit 5fb1bf8aaa832e1e9ca3198de7bbecb8eff7db9c broke 64 bit DMA for mpt2sas > on Power. > That commit changed the sequence for setting up the DMA and coherent DMA > masks so > that during initialization the driver requests a 64 bit DMA mask and a 32 bit > consistent > DMA mask, then later requests a 64 bit consistent DMA mask. The Power > architecture does > not currently support this, which results in always falling back to a 32 bit > DMA window, > which has a negative impact on performance. Tweak this algorithm slightly so > that > if requesting a 32 bit consistent mask fails after we've successfully set a > 64 bit > DMA mask, just try to get a 64 bit consistent mask. This should preserve > existing > behavior on platforms that support mixed mask setting and restore previous > functionality > to those that do not. > > Signed-off-by: Brian King <brk...@linux.vnet.ibm.com>
I believe the way the API is designed, it should guarantee that after dma_set_mask() succeeds for a device, dma_set_coherent_mask() with the same mask will also succeed. Could you just call dma_set_mask_and_coherent() here to avoid that complex logic? Arnd _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev