[allocator]: Add dma_heap allocator

The dma_heap is introduced in kernel 5.10.

Change-Id: Id3c116d996da461467fe380a79434ba5ea875033
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2022-06-22 17:42:17 +08:00
parent 8e15a4a492
commit 60f5fc234a
7 changed files with 379 additions and 8 deletions

View File

@@ -86,12 +86,20 @@ MppRuntimeService::MppRuntimeService()
allocator_valid[MPP_BUFFER_TYPE_NORMAL] = 1;
allocator_valid[MPP_BUFFER_TYPE_ION] = !access("/dev/ion", F_OK | R_OK | W_OK);
allocator_valid[MPP_BUFFER_TYPE_DRM] = !access("/dev/dri/card0", F_OK | R_OK | W_OK);
allocator_valid[MPP_BUFFER_TYPE_DMA_HEAP] = !access("/dev/dma_heap", F_OK | R_OK | W_OK);
if (!allocator_valid[MPP_BUFFER_TYPE_ION] && !allocator_valid[MPP_BUFFER_TYPE_DRM]) {
if (!allocator_valid[MPP_BUFFER_TYPE_ION] &&
!allocator_valid[MPP_BUFFER_TYPE_DRM] &&
!allocator_valid[MPP_BUFFER_TYPE_DMA_HEAP]) {
mpp_err("can NOT found any allocator\n");
return;
}
if (allocator_valid[MPP_BUFFER_TYPE_DMA_HEAP]) {
mpp_rt_dbg("use dma heap allocator\n");
return;
}
if (allocator_valid[MPP_BUFFER_TYPE_ION] && !allocator_valid[MPP_BUFFER_TYPE_DRM]) {
mpp_rt_dbg("use ion allocator\n");
return;