Since 2009 we have a nice asm-generic header implementing lots of DMA API functions for architectures using struct dma_map_ops, but unfortunately it's still missing a lot of APIs that all architectures still have to duplicate. This series consolidates the remaining functions, although we still need arch opt outs for two of them as a few architectures have very non-standard implementations. Changes since V1: - keep a modified comment about dma_alloc_noncoherent vs dma_cache_sync in the ARM asm/dma-mapping.h - keep the ARM dma_set_mask instances to deal with dmabounce