mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-04 08:46:24 +08:00
[osal]: reorder dma heap type select priority
Change-Id: Ifd2286ecf97fb4477693c24cdaec10c1df15eacf Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
This commit is contained in:
@@ -145,11 +145,13 @@ typedef enum {
|
||||
* flags originate from drm_rockchip_gem_mem_type
|
||||
*/
|
||||
|
||||
#define MPP_BUFFER_FLAGS_MASK 0x000f0000 //ROCKCHIP_BO_MASK << 16
|
||||
#define MPP_BUFFER_FLAGS_MASK 0x003f0000 //ROCKCHIP_BO_MASK << 16
|
||||
#define MPP_BUFFER_FLAGS_CONTIG 0x00010000 //ROCKCHIP_BO_CONTIG << 16
|
||||
#define MPP_BUFFER_FLAGS_CACHABLE 0x00020000 //ROCKCHIP_BO_CACHABLE << 16
|
||||
#define MPP_BUFFER_FLAGS_WC 0x00040000 //ROCKCHIP_BO_WC << 16
|
||||
#define MPP_BUFFER_FLAGS_SECURE 0x00080000 //ROCKCHIP_BO_SECURE << 16
|
||||
#define MPP_BUFFER_FLAGS_ALLOC_KMAP 0x00100000 //ROCKCHIP_BO_ALLOC_KMAP << 16
|
||||
#define MPP_BUFFER_FLAGS_DMA32 0x00200000 //ROCKCHIP_BO_DMA32 << 16
|
||||
|
||||
/*
|
||||
* MppBufferInfo variable's meaning is different in different MppBufferType
|
||||
|
@@ -68,20 +68,20 @@ typedef struct {
|
||||
typedef enum DmaHeapType_e {
|
||||
DMA_HEAP_CMA = (1 << 0),
|
||||
DMA_HEAP_CACHABLE = (1 << 1),
|
||||
DMA_HEAP_DMA64 = (1 << 2),
|
||||
DMA_HEAP_TYPE_MASK = DMA_HEAP_CMA | DMA_HEAP_CACHABLE | DMA_HEAP_DMA64,
|
||||
DMA_HEAP_DMA32 = (1 << 2),
|
||||
DMA_HEAP_TYPE_MASK = DMA_HEAP_CMA | DMA_HEAP_CACHABLE | DMA_HEAP_DMA32,
|
||||
DMA_HEAP_TYPE_NB,
|
||||
} DmaHeapType;
|
||||
|
||||
static const char *heap_names[] = {
|
||||
"system-uncached-dma32", /* 0 - default */
|
||||
"system-uncached", /* 0 - default */
|
||||
"cma-uncached", /* 1 - DMA_HEAP_CMA */
|
||||
"system-dma32", /* 2 - DMA_HEAP_CACHABLE */
|
||||
"system", /* 2 - DMA_HEAP_CACHABLE */
|
||||
"cma", /* 3 - DMA_HEAP_CACHABLE | DMA_HEAP_CMA */
|
||||
"system-uncached", /* 4 - DMA_HEAP_DMA64 */
|
||||
"cma-uncached", /* 5 - DMA_HEAP_DMA64 | DMA_HEAP_CMA */
|
||||
"system", /* 6 - DMA_HEAP_DMA64 | DMA_HEAP_CACHABLE */
|
||||
"cma", /* 7 - DMA_HEAP_DMA64 | DMA_HEAP_CACHABLE | DMA_HEAP_CMA */
|
||||
"system-uncached-dma32", /* 4 - DMA_HEAP_DMA32 */
|
||||
"cma-uncached", /* 5 - DMA_HEAP_DMA32 | DMA_HEAP_CMA */
|
||||
"system-dma32", /* 6 - DMA_HEAP_DMA32 | DMA_HEAP_CACHABLE */
|
||||
"cma", /* 7 - DMA_HEAP_DMA32 | DMA_HEAP_CACHABLE | DMA_HEAP_CMA */
|
||||
};
|
||||
|
||||
static int heap_fds[DMA_HEAP_TYPE_NB];
|
||||
@@ -168,6 +168,9 @@ static MPP_RET os_allocator_dma_heap_open(void **ctx, MppAllocatorCfg *cfg)
|
||||
if (cfg->flags & (MPP_BUFFER_FLAGS_CACHABLE >> 16))
|
||||
type |= DMA_HEAP_CACHABLE;
|
||||
|
||||
if (cfg->flags & (MPP_BUFFER_FLAGS_DMA32 >> 16))
|
||||
type |= DMA_HEAP_DMA32;
|
||||
|
||||
fd = heap_fd_open(type);
|
||||
if (fd < 0) {
|
||||
mpp_err_f("open dma heap type %x failed!\n", type);
|
||||
|
Reference in New Issue
Block a user