diff options
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c')
-rw-r--r-- | drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c index 6a0f8e0e2856..69bbc1cf7295 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c @@ -1122,6 +1122,7 @@ gckKERNEL_DestroyProcessDB( gcuVIDMEM_NODE_PTR node; gckKERNEL kernel = Kernel; gctUINT32 i; + gceSURF_TYPE type; gctBOOL acquired = gcvFALSE; gcmkHEADER_ARG("Kernel=0x%x ProcessID=%d", Kernel, ProcessID); @@ -1265,6 +1266,11 @@ gckKERNEL_DestroyProcessDB( case gcvDB_VIDEO_MEMORY_LOCKED: node = gcmUINT64_TO_PTR(record->data); + + type = (node->VidMem.memory->object.type == gcvOBJ_VIDMEM) + ? node->VidMem.type + : node->Virtual.type; + /* Unlock what we still locked */ status = gckVIDMEM_Unlock(record->kernel, node, @@ -1273,11 +1279,11 @@ gckKERNEL_DestroyProcessDB( if (gcmIS_SUCCESS(status) && (gcvTRUE == asynchronous)) { - /* TODO: we maybe need to schedule a event here */ - status = gckVIDMEM_Unlock(record->kernel, - node, - gcvSURF_TYPE_UNKNOWN, - gcvNULL); + + status = gckEVENT_Unlock(record->kernel->eventObj, + gcvKERNEL_PIXEL, + node, + type); } gcmkTRACE_ZONE(gcvLEVEL_WARNING, gcvZONE_DATABASE, |