diff options
author | wu guoxing <b39297@freescale.com> | 2012-01-13 09:57:41 +0800 |
---|---|---|
committer | Eric Miao <eric.miao@linaro.org> | 2012-01-19 19:05:04 +0800 |
commit | c021ab8bbc1d3aeb563d7af0c89e5e0d2f14f862 (patch) | |
tree | d1b02788f5ba19d78696fda1f0909cb9903a5840 /drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c | |
parent | 4026cfa27332f2e53cfbf72cc98cf4db8c2f2127 (diff) |
gpu-viv: change from mutex to completion for waiting pm events
viv code is using mutex to wait for pm events,
kernel will see this as a dead lock and give a warrning, as the mutex
can be hold for a long time.
Signed-off-by: Wu Guoxing <b39297@freescale.com>
Acked-by: Lily Zhang <r58066@freescale.com>
Signed-off-by: Eric Miao <eric.miao@linaro.org>
Diffstat (limited to 'drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c')
-rw-r--r-- | drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c index fe6c1a93bfe..16de8447b92 100644 --- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c +++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c @@ -510,8 +510,7 @@ gckHARDWARE_Construct( gcmkONERROR(gckOS_CreateSemaphore(Os, &hardware->globalSemaphore)); #if gcdPOWEROFF_TIMEOUT - gcmkONERROR(gckOS_CreateMutex(Os, &hardware->powerOffSema)); - gcmkONERROR(gckOS_AcquireMutex(Os, hardware->powerOffSema, gcvINFINITE)); + gcmkONERROR(gckOS_CreateSignal(Os, gcvFALSE, &hardware->powerOffSignal)); hardware->powerOffTimeout = gcdPOWEROFF_TIMEOUT; #endif @@ -543,9 +542,9 @@ OnError: } #if gcdPOWEROFF_TIMEOUT - if (hardware->powerOffSema != gcvNULL) + if (hardware->powerOffSignal != gcvNULL) { - gcmkVERIFY_OK(gckOS_DeleteMutex(Os, &hardware->powerOffSema)); + gcmkVERIFY_OK(gckOS_DestroySignal(Os, hardware->powerOffSignal)); } #endif @@ -595,7 +594,7 @@ gckHARDWARE_Destroy( gcmkVERIFY_OK(gckOS_DeleteMutex(Hardware->os, Hardware->powerMutex)); #if gcdPOWEROFF_TIMEOUT - gcmkVERIFY_OK(gckOS_DeleteMutex(Hardware->os, Hardware->powerOffSema)); + gcmkVERIFY_OK(gckOS_DestroySignal(Hardware->os, Hardware->powerOffSignal)); #endif /* Mark the object as unknown. */ @@ -3900,7 +3899,7 @@ gckHARDWARE_SetPowerManagementState( if (State == gcvPOWER_IDLE) { - gcmkONERROR(gckOS_ReleaseMutex(os, Hardware->powerOffSema)); + gcmkONERROR(gckOS_Signal(os, Hardware->powerOffSignal, gcvTRUE)); } #endif |