diff --git a/drivers/dma-buf/rk_heaps/rk-dma-heap.c b/drivers/dma-buf/rk_heaps/rk-dma-heap.c index 45e53acf6276..f920962c1967 100644 --- a/drivers/dma-buf/rk_heaps/rk-dma-heap.c +++ b/drivers/dma-buf/rk_heaps/rk-dma-heap.c @@ -143,6 +143,7 @@ int rk_dma_heap_set_dev(struct device *heap_dev) return 0; } +EXPORT_SYMBOL_GPL(rk_dma_heap_set_dev); struct rk_dma_heap *rk_dma_heap_find(const char *name) { @@ -159,11 +160,13 @@ struct rk_dma_heap *rk_dma_heap_find(const char *name) mutex_unlock(&rk_heap_list_lock); return NULL; } +EXPORT_SYMBOL_GPL(rk_dma_heap_find); void rk_dma_heap_buffer_free(struct dma_buf *dmabuf) { dma_buf_put(dmabuf); } +EXPORT_SYMBOL_GPL(rk_dma_heap_buffer_free); struct dma_buf *rk_dma_heap_buffer_alloc(struct rk_dma_heap *heap, size_t len, unsigned int fd_flags, @@ -185,6 +188,7 @@ struct dma_buf *rk_dma_heap_buffer_alloc(struct rk_dma_heap *heap, size_t len, return heap->ops->allocate(heap, len, fd_flags, heap_flags, name); } +EXPORT_SYMBOL_GPL(rk_dma_heap_buffer_alloc); int rk_dma_heap_bufferfd_alloc(struct rk_dma_heap *heap, size_t len, unsigned int fd_flags, @@ -208,6 +212,7 @@ int rk_dma_heap_bufferfd_alloc(struct rk_dma_heap *heap, size_t len, return fd; } +EXPORT_SYMBOL_GPL(rk_dma_heap_bufferfd_alloc); struct page *rk_dma_heap_alloc_contig_pages(struct rk_dma_heap *heap, size_t len, const char *name) @@ -223,6 +228,7 @@ struct page *rk_dma_heap_alloc_contig_pages(struct rk_dma_heap *heap, return heap->ops->alloc_contig_pages(heap, len, name); } +EXPORT_SYMBOL_GPL(rk_dma_heap_alloc_contig_pages); void rk_dma_heap_free_contig_pages(struct rk_dma_heap *heap, struct page *pages, size_t len, @@ -235,6 +241,7 @@ void rk_dma_heap_free_contig_pages(struct rk_dma_heap *heap, return heap->ops->free_contig_pages(heap, pages, len, name); } +EXPORT_SYMBOL_GPL(rk_dma_heap_free_contig_pages); void rk_dma_heap_total_inc(struct rk_dma_heap *heap, size_t len) { diff --git a/drivers/dma-buf/rk_heaps/rk-dma-heap.h b/drivers/dma-buf/rk_heaps/rk-dma-heap.h index ac6b03810bb5..533ad66f7c0c 100644 --- a/drivers/dma-buf/rk_heaps/rk-dma-heap.h +++ b/drivers/dma-buf/rk_heaps/rk-dma-heap.h @@ -168,74 +168,6 @@ struct rk_dma_heap *rk_dma_heap_add(const struct rk_dma_heap_export_info *exp_in */ void rk_dma_heap_put(struct rk_dma_heap *heap); -/** - * rk_dma_heap_set_dev - set heap dev dma param - * @heap: DMA-Heap to retrieve private data for - * - * Returns: - * Zero on success, ERR_PTR(-errno) on error - */ -int rk_dma_heap_set_dev(struct device *heap_dev); - -/** - * rk_dma_heap_find - Returns the registered dma_heap with the specified name - * @name: Name of the heap to find - * - * NOTE: dma_heaps returned from this function MUST be released - * using rk_dma_heap_put() when the user is done. - */ -struct rk_dma_heap *rk_dma_heap_find(const char *name); - -/** - * rk_dma_heap_buffer_alloc - Allocate dma-buf from a dma_heap - * @heap: dma_heap to allocate from - * @len: size to allocate - * @fd_flags: flags to set on returned dma-buf fd - * @heap_flags: flags to pass to the dma heap - * - * This is for internal dma-buf allocations only. - */ -struct dma_buf *rk_dma_heap_buffer_alloc(struct rk_dma_heap *heap, size_t len, - unsigned int fd_flags, - unsigned int heap_flags, - const char *name); - -/** rk_dma_heap_buffer_free - Free dma_buf allocated by rk_dma_heap_buffer_alloc - * @dma_buf: dma_buf to free - * - * This is really only a simple wrapper to dma_buf_put() - */ -void rk_dma_heap_buffer_free(struct dma_buf *dmabuf); - -/** - * rk_dma_heap_bufferfd_alloc - Allocate dma-buf fd from a dma_heap - * @heap: dma_heap to allocate from - * @len: size to allocate - * @fd_flags: flags to set on returned dma-buf fd - * @heap_flags: flags to pass to the dma heap - */ -int rk_dma_heap_bufferfd_alloc(struct rk_dma_heap *heap, size_t len, - unsigned int fd_flags, - unsigned int heap_flags, - const char *name); - -/** - * rk_dma_heap_alloc_contig_pages - Allocate contiguous pages from a dma_heap - * @heap: dma_heap to allocate from - * @len: size to allocate - * @name: the name who allocate - */ -struct page *rk_dma_heap_alloc_contig_pages(struct rk_dma_heap *heap, - size_t len, const char *name); -/** - * rk_dma_heap_free_contig_pages - Free contiguous pages to a dma_heap - * @heap: dma_heap to free to - * @pages: pages to free to - * @len: size to free - * @name: the name who allocate - */ -void rk_dma_heap_free_contig_pages(struct rk_dma_heap *heap, - struct page *pages, size_t len, const char *name); /** * rk_vmap_contig_pfn - Map contiguous pfn to vm area * @pfn: indicate the first pfn of contig diff --git a/include/linux/rk-dma-heap.h b/include/linux/rk-dma-heap.h index 4ffa2165886e..e42bc227dd04 100644 --- a/include/linux/rk-dma-heap.h +++ b/include/linux/rk-dma-heap.h @@ -8,15 +8,130 @@ * Author: Simon Xue */ -#ifndef _DMA_HEAPS_H -#define _DMA_HEAPS_H +#ifndef _RK_DMA_HEAPS_H_ +#define _RK_DMA_HEAPS_H_ +#include + +struct rk_dma_heap; #if defined(CONFIG_DMABUF_HEAPS_ROCKCHIP) int rk_dma_heap_cma_setup(void); + +/** + * rk_dma_heap_set_dev - set heap dev dma param + * @heap: DMA-Heap to retrieve private data for + * + * Returns: + * Zero on success, ERR_PTR(-errno) on error + */ +int rk_dma_heap_set_dev(struct device *heap_dev); + +/** + * rk_dma_heap_find - Returns the registered dma_heap with the specified name + * @name: Name of the heap to find + * + * NOTE: dma_heaps returned from this function MUST be released + * using rk_dma_heap_put() when the user is done. + */ +struct rk_dma_heap *rk_dma_heap_find(const char *name); + +/** rk_dma_heap_buffer_free - Free dma_buf allocated by rk_dma_heap_buffer_alloc + * @dma_buf: dma_buf to free + * + * This is really only a simple wrapper to dma_buf_put() + */ +void rk_dma_heap_buffer_free(struct dma_buf *dmabuf); + +/** + * rk_dma_heap_buffer_alloc - Allocate dma-buf from a dma_heap + * @heap: dma_heap to allocate from + * @len: size to allocate + * @fd_flags: flags to set on returned dma-buf fd + * @heap_flags: flags to pass to the dma heap + * + * This is for internal dma-buf allocations only. + */ +struct dma_buf *rk_dma_heap_buffer_alloc(struct rk_dma_heap *heap, size_t len, + unsigned int fd_flags, + unsigned int heap_flags, + const char *name); + +/** + * rk_dma_heap_bufferfd_alloc - Allocate dma-buf fd from a dma_heap + * @heap: dma_heap to allocate from + * @len: size to allocate + * @fd_flags: flags to set on returned dma-buf fd + * @heap_flags: flags to pass to the dma heap + */ +int rk_dma_heap_bufferfd_alloc(struct rk_dma_heap *heap, size_t len, + unsigned int fd_flags, + unsigned int heap_flags, + const char *name); + +/** + * rk_dma_heap_alloc_contig_pages - Allocate contiguous pages from a dma_heap + * @heap: dma_heap to allocate from + * @len: size to allocate + * @name: the name who allocate + */ +struct page *rk_dma_heap_alloc_contig_pages(struct rk_dma_heap *heap, + size_t len, const char *name); + +/** + * rk_dma_heap_free_contig_pages - Free contiguous pages to a dma_heap + * @heap: dma_heap to free to + * @pages: pages to free to + * @len: size to free + * @name: the name who allocate + */ +void rk_dma_heap_free_contig_pages(struct rk_dma_heap *heap, struct page *pages, + size_t len, const char *name); + #else static inline int rk_dma_heap_cma_setup(void) { return -ENODEV; } + +static inline int rk_dma_heap_set_dev(struct device *heap_dev) +{ + return -ENODEV; +} + +static inline struct rk_dma_heap *rk_dma_heap_find(const char *name) +{ + return NULL; +} + +static inline void rk_dma_heap_buffer_free(struct dma_buf *dmabuf) +{ +} + +static inline struct dma_buf *rk_dma_heap_buffer_alloc(struct rk_dma_heap *heap, size_t len, + unsigned int fd_flags, + unsigned int heap_flags, + const char *name) +{ + return NULL; +} + +static inline int rk_dma_heap_bufferfd_alloc(struct rk_dma_heap *heap, size_t len, + unsigned int fd_flags, + unsigned int heap_flags, + const char *name) +{ + return -ENODEV; +} + +static inline struct page *rk_dma_heap_alloc_contig_pages(struct rk_dma_heap *heap, + size_t len, const char *name) +{ + return NULL; +} + +static inline void rk_dma_heap_free_contig_pages(struct rk_dma_heap *heap, struct page *pages, + size_t len, const char *name) +{ +} #endif #endif /* _DMA_HEAPS_H */