diff options
| -rw-r--r-- | include/linux/dmapool.h | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/include/linux/dmapool.h b/include/linux/dmapool.h index 53ba737505df..f632ecfb4238 100644 --- a/include/linux/dmapool.h +++ b/include/linux/dmapool.h | |||
| @@ -16,6 +16,8 @@ | |||
| 16 | 16 | ||
| 17 | struct device; | 17 | struct device; |
| 18 | 18 | ||
| 19 | #ifdef CONFIG_HAS_DMA | ||
| 20 | |||
| 19 | struct dma_pool *dma_pool_create(const char *name, struct device *dev, | 21 | struct dma_pool *dma_pool_create(const char *name, struct device *dev, |
| 20 | size_t size, size_t align, size_t allocation); | 22 | size_t size, size_t align, size_t allocation); |
| 21 | 23 | ||
| @@ -23,13 +25,6 @@ void dma_pool_destroy(struct dma_pool *pool); | |||
| 23 | 25 | ||
| 24 | void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, | 26 | void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, |
| 25 | dma_addr_t *handle); | 27 | dma_addr_t *handle); |
| 26 | |||
| 27 | static inline void *dma_pool_zalloc(struct dma_pool *pool, gfp_t mem_flags, | ||
| 28 | dma_addr_t *handle) | ||
| 29 | { | ||
| 30 | return dma_pool_alloc(pool, mem_flags | __GFP_ZERO, handle); | ||
| 31 | } | ||
| 32 | |||
| 33 | void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr); | 28 | void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr); |
| 34 | 29 | ||
| 35 | /* | 30 | /* |
| @@ -39,5 +34,26 @@ struct dma_pool *dmam_pool_create(const char *name, struct device *dev, | |||
| 39 | size_t size, size_t align, size_t allocation); | 34 | size_t size, size_t align, size_t allocation); |
| 40 | void dmam_pool_destroy(struct dma_pool *pool); | 35 | void dmam_pool_destroy(struct dma_pool *pool); |
| 41 | 36 | ||
| 37 | #else /* !CONFIG_HAS_DMA */ | ||
| 38 | static inline struct dma_pool *dma_pool_create(const char *name, | ||
| 39 | struct device *dev, size_t size, size_t align, size_t allocation) | ||
| 40 | { return NULL; } | ||
| 41 | static inline void dma_pool_destroy(struct dma_pool *pool) { } | ||
| 42 | static inline void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, | ||
| 43 | dma_addr_t *handle) { return NULL; } | ||
| 44 | static inline void dma_pool_free(struct dma_pool *pool, void *vaddr, | ||
| 45 | dma_addr_t addr) { } | ||
| 46 | static inline struct dma_pool *dmam_pool_create(const char *name, | ||
| 47 | struct device *dev, size_t size, size_t align, size_t allocation) | ||
| 48 | { return NULL; } | ||
| 49 | static inline void dmam_pool_destroy(struct dma_pool *pool) { } | ||
| 50 | #endif /* !CONFIG_HAS_DMA */ | ||
| 51 | |||
| 52 | static inline void *dma_pool_zalloc(struct dma_pool *pool, gfp_t mem_flags, | ||
| 53 | dma_addr_t *handle) | ||
| 54 | { | ||
| 55 | return dma_pool_alloc(pool, mem_flags | __GFP_ZERO, handle); | ||
| 56 | } | ||
| 57 | |||
| 42 | #endif | 58 | #endif |
| 43 | 59 | ||
