diff options
author | Xianzhong <xianzhong.li@nxp.com> | 2018-04-26 04:00:09 +0800 |
---|---|---|
committer | Leonard Crestez <leonard.crestez@nxp.com> | 2018-08-24 12:41:33 +0300 |
commit | fab785aea33b6bab760425c07ff6e60ba56839ef (patch) | |
tree | 78614f02c9af320e890f037a1274a590b10ec066 /drivers/mxc/gpu-viv | |
parent | 144c2dc76402a02428d50b2b302f2b82ad95995c (diff) |
MGS-3848-4 [#imx-854] correct hw-event synchronization between pm and other threads
When pm is running power ON to OFF (not broadcast), gckCOMMAND_Stall is called for synchronization.
But it does not blocks more events.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Diffstat (limited to 'drivers/mxc/gpu-viv')
-rw-r--r-- | drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c index e67e2f59f6dc..eb081cc7a890 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c +++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c @@ -8009,6 +8009,18 @@ gckHARDWARE_SetPowerManagementState( { /* Wait to finish all commands. */ gcmkONERROR(gckCOMMAND_Stall(command, gcvTRUE)); + + for (;;) + { + gcmkONERROR(gckHARDWARE_QueryIdle(Hardware, &idle)); + + if (idle) + { + break; + } + + gcmkVERIFY_OK(gckOS_Delay(Hardware->os, 1)); + } } } |