From: Russell King Date: Thu, 27 Jun 2013 11:21:45 +0000 (+0100) Subject: DMA-API: provide a helper to setup DMA masks X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=fa6a8d6d65b19ab44e5244ea499bcd553cc72343;p=linux-beck.git DMA-API: provide a helper to setup DMA masks Many drivers contain code such as: dev->dma_mask = &dev->coherent_dma_mask; dev->coherent_dma_mask = MASK; Let's move this pattern out of drivers and have the DMA API provide a helper for it. This helper uses dma_set_mask_and_coherent() to allow platform issues to be properly dealt with via dma_set_mask()/ dma_is_supported(). Signed-off-by: Russell King --- diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index ec951f98e3d9..27d1421ad42c 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -111,6 +111,16 @@ static inline int dma_set_mask_and_coherent(struct device *dev, u64 mask) return rc; } +/* + * Similar to the above, except it deals with the case where the device + * does not have dev->dma_mask appropriately setup. + */ +static inline int dma_coerce_mask_and_coherent(struct device *dev, u64 mask) +{ + dev->dma_mask = &dev->coherent_dma_mask; + return dma_set_mask_and_coherent(dev, mask); +} + extern u64 dma_get_required_mask(struct device *dev); static inline unsigned int dma_get_max_seg_size(struct device *dev)