On Wed, 15 May 2013, Sarah Sharp wrote: > > If you're using 64-bit DMA then you almost certainly do want to call > > dma_set_coherent_mask(). On the plus side, it is guaranteed that if > > dma_set_mask() succeeds with a particular mask value then > > dma_set_coherent_mask() for the same mask value will also succeed. > > So we need to call both dma_set_coherent_mask() and dma_set_mask()? Or > just dma_set_coherent_mask()? It depends on what kind of DMA transfers you're going to do. For streaming transfers (the ones that use dma_map_single() or dma_map_sg(), for example), you need to call dma_set_mask(). For coherent transfers (the ones that use dma_alloc_coherent() or dma_pool_create()), you need to call dma_set_coherent_mask(). If you want to do both kinds of transfers then you need to call both routines. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html