diff --git a/display_server/drivers/hal/drm_backend/display_gralloc/display_gralloc.cpp b/display_server/drivers/hal/drm_backend/display_gralloc/display_gralloc.cpp index 7ff429bf6bd9c734e33ebefccebe74d04ff5e23f..987a06e5180dd6b6cf00567499ce72bdb42a5549 100644 --- a/display_server/drivers/hal/drm_backend/display_gralloc/display_gralloc.cpp +++ b/display_server/drivers/hal/drm_backend/display_gralloc/display_gralloc.cpp @@ -101,7 +101,7 @@ int32_t Unmap(BufferHandle *handle) return DISPLAY_NULL_PTR; } - return allocator->InvalidateCache(*handle); + return allocator->Unmap(*handle); } int32_t FlushCache(BufferHandle *handle) diff --git a/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp b/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp index 2ac7bb84caa3e88d1bd85b003a54b3122f24a3f4..fa0e521529adfaacbd5d62c9e700ad2b83585b68 100644 --- a/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp +++ b/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp @@ -191,6 +191,7 @@ void *GbmAllocator::Mmap(BufferHandle &buffer) &mapData); // map_data & return address is the same buffer.virAddr = virAddr; + buffer.mapData = mapData; LOG_DEBUG("[Gralloc::GbmAllocator::Mmap] Mmap done."); return virAddr; } @@ -216,8 +217,8 @@ int32_t GbmAllocator::Unmap(BufferHandle &buffer) return DISPLAY_NULL_PTR; } - gbm_bo_unmap(gbmBo, buffer.virAddr); - buffer.virAddr = nullptr; + gbm_bo_unmap(gbmBo, buffer.mapData); + buffer.mapData = nullptr; LOG_DEBUG("[Gralloc::GbmAllocator::Unmap] Unmap done.");